最近在做功率谱密度分析的时候,发现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博客