qq_47361278 2023-12-09 16:44 采纳率: 62.2%
浏览 6
已结题

MATLAB中的fft问题

我的导师告诉我功率谱密度函数应该按照下面这个图中的公式算

img

所以我根据公式把代码改成如下所示:figure;N =length(a);Fs = 500; U = fft(a);P2 = abs(U.^2/2piNFs);P = P2(1:N/2+1);P(2:end-1) = 2P(2:end-1);f = Fs*(0:(N/2))/N;semilogx(f, P);
但是画出来的图纵坐标PSD非常大,如下图已经圈出来了(达到了10的17次方,也太大了):

img


但是实际上纵坐标PSD应该是如下图这样的几千的范围内:

img


那么问题是,在导师给的公式没错的前提下,我应该怎么改代码或者设置图像能使我的图的纵坐标PSD恢复到像最后一个图这样几千几千的范围?请根据导师给的公式帮我改一下代码解决我的问题。

  • 写回答

4条回答 默认 最新

  • Wayne_Fine Matlab领域优质创作者 2023-12-10 02:07
    关注

    abs(U.^2/2piNFs)你这里是不是写成了

    abs((U.^2/2)*pi*N*Fs)
    

    的意思了呀?
    应该是

    abs(U.^2/(2*pi*N*Fs))
    
    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月10日
  • 请采纳用户回复 12月9日
  • 修改了问题 12月9日
  • 修改了问题 12月9日
  • 展开全部