matlab的幅值谱和功率谱

来源:百度知道 编辑:UC知道 时间:2024/06/18 23:06:09
我的matlab的程序如下:
>> Fs=1024;
>> t = 0:1/Fs:1;
>> s1=5*sin(2*pi*20*t);
>> Y=fft(s1);
>> plot(abs(Y))
我是想求信号s1的幅值谱,但不知为什么画出的幅值谱的幅值达到了2500多了,我想幅值应该是5左右吧,谁能给我讲一下怎么改我的程序。
还有我想求该信号的功率谱,幅值也很大,谁能给我解释一下。谢谢。

2500多也是正常的 因为你这个函数在频域中应该只是一条在f=20处的竖线,而这个竖线的幅值应该对应的是时域中该函数图像的面积,而matlab里则用一个峰值来表示这条竖线,所以这个峰值大点也没什么问题,是正常的。功率谱其实是幅值谱的平方,所以这个值会更大。

我遇到过这个情况,原因是fft后幅值是信号时域幅值的n/2倍,所以画幅值谱图时应该乘以2/n这样才能恢复原来的幅值,你试试,这下子幅值就应该是5了。即plot(abs(y).*2/n).