声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2090|回复: 6

[FFT] 为何MATLAB用定义求出来的自功率谱不是实数序列?

[复制链接]
发表于 2009-7-15 15:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
先求时域实数序列的自相关函数,然后对自相关函数做FFT,得到的功率谱却不是实序列,为何?
MATLAB代码如下:
x=wavread('file.wav');
rx=xcorr(x,x);
Px=fft(rx);
最后通过对Px画图及查看Px中的数据发现,Px是一个复数序列而不是实数序列,理论上讲Px应该是正实数序列才对啊,实在搞不懂,还请知道的朋友指教指教,谢谢!
回复
分享到:

使用道具 举报

发表于 2009-7-15 18:55 | 显示全部楼层

回复 楼主 rabbit555 的帖子

功率谱是
Px=abs(fft(rx));
发表于 2009-7-15 19:06 | 显示全部楼层
fft的计算起点是0,而不是中心。如果用时移定理移到中心就变成实数了。
发表于 2009-7-15 22:23 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-8 15:39 编辑
原帖由 VibrationMaster 于 2009-7-15 19:06 发表
fft的计算起点是0,而不是中心。如果用时移定理移到中心就变成实数了。

可否说清楚些!? 谢谢!
可以的话说简单点, 个人水平有限!:@)

[ 本帖最后由 ChaChing 于 2009-7-15 22:26 编辑 ]
发表于 2009-7-16 18:19 | 显示全部楼层
打公式太复杂了
傅立叶变换.JPG

评分

1

查看全部评分

 楼主| 发表于 2009-7-16 20:51 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-8 15:39 编辑
原帖由 VibrationMaster 于 2009-7-15 19:06 发表
fft的计算起点是0,而不是中心。如果用时移定理移到中心就变成实数了。

多谢!也就是说起点不在中心做出来的就不再是自功率谱了?
发表于 2012-11-21 23:46 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-15 05:36 , Processed in 0.069757 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表