最近在做功率谱密度分析的时候,发现simulink中有些模块可以实现和matlab库函数一样的效果,简而言之,这些模块等价于matlab的频谱分析库函数,也不知道对不对,没有系统的学习过信号处理,这里只是为了方便自己的学习,如果有什么错误欢迎指导,谢谢理解!
对一组数据进行频谱分析可以是simulink模块仿真直接得到的,也可以是外界导入到工作区间的,这里以simulink模块生成的数据进行频谱分析。
模块长这个样子,模块直接在空白处搜索或者在库里面拖出
使用这个模块会经常遇到两个问题:
(1)Spectrum cannot be displayed for continuous or infinite sample times.
意思就是说采样时间不连续,尝试的解决方法:
①将模块的采样时间和仿真步长设置为离散的
如使用白噪声模块:
仿真时间设置为定步长:
②在谱分析结果显示前添加一个零阶保持器模块,如下:
(2)The Snectrum Analvzer reauires 3391 samples to update the display. Run the simulation for a longer time to see results.
意思就是说采样的点不够,尝试解决方法:
①将产生数据的模块采样时间减小,如刚才的白噪声模块0.1改为0.01
②将仿真时间加长
仿真结果如下:
比如加窗选择:
这个模块长这个样子
通常选择离散的
选择FFT Analasys
此前需要将数据导入到工作区间,之后再Avalabel signals选择我们要显示的数据,如果利用scope模块导入工作区间,一般是这样操作的(记得选择Structure with Time):
打开之后常常会遇到这样的问题:The sampling period of the selected signal is not small enough for thegiven fundamental frequency.
意思还是说选择的信号采样的频率不够小,尝试解决方法:
将Fundamental frequencey调小一点,调整结果如下:
一般使用的组合形式是这样的(目前还没搞懂怎么测试):
未完待续.......
注:只是为了方便自己学习使用,如果错误的地方欢迎指正批评,谢谢!
参考资料:
用simulink分析傅里叶变换、短时傅里叶变换和小波变换_lijil168的博客-CSDN博客_simulink傅里叶分析
功率谱学习及matlab代码_人间不想清醒的博客-CSDN博客_matlab 功率谱
解决Simulink中使用Spectrum Analyzer观察信号频谱2个常见的问题_仰头向前走的博客-CSDN博客_simulink中spectrum
simulink中使用FFT tool进行信号频域分析方法_ZHYAXC的博客-CSDN博客