qq_47361278 2023-12-10 00:44 采纳率: 47.9%
浏览 5
已结题

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条回答 默认 最新

  • 鹅毛在路上了 Matlab领域优质创作者 2023-12-10 10:07
    关注

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

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

    的意思了呀?
    应该是

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥50 python如何用抖音这个接口输入抖音ID查询用户信息
  • ¥30 关于移动Web网页使用TinyMCE富文本编辑器上传图片后的光标定位、压缩等几个问题如何解决:
  • ¥25 activeMq在同服务器centos8下消费很慢
  • ¥20 为什么zynq CAN IP 无法进入config配置模式,XCan_SelfTest函数失效?
  • ¥15 Pycharm中程序直接运行可以但进入调试报错
  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥15 我的显卡支持CUDA最高版本是12.3,这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8,需要下载旧版本的VS2022吗
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!