声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 14998|回复: 14

[FFT] [请教]IFFT变换后得到的复数的物理意义

[复制链接]
发表于 2012-5-17 13:28 | 显示全部楼层 |阅读模式

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

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

x
采样频率4096Hz ,我每次把采样到的512个点(C)进行FFT变换,得到一个频域上的信号(复数数组A),然后再把A进行IFFT变换又重新得到时域上的信号(一个复数数组B),我想知道,B中的每个复数物理意义是什么,它和振幅有什么关系,或者说怎么把B转换为实数数组,而这个实数数组代表的是时域上每个点的振幅,本人外行,在做一个软件,有很多困惑,请高手帮忙解答,谢谢
回复
分享到:

使用道具 举报

发表于 2012-5-17 13:53 | 显示全部楼层
B数组虚部应该=0
 楼主| 发表于 2012-5-17 15:05 | 显示全部楼层
回复 2 # hcharlie 的帖子

恩,我不改A的数据确实出来的B虚部非常小接近0,但是我把A中几个频率上的复数值清零(我想过滤这个频率的声音,我自己事这样想的,不知道对不对),然后A再进行IFFT变换出来的复数(B)的虚部就不为0了,难道A数组的数据不可以是随机数,就是要满足一定的规律,不能像我这样清0?     还有我想文下怎么过滤某个频率段的声音呢?(其实我是想要做这个= =)           请指教下
发表于 2012-5-17 17:15 | 显示全部楼层
回复 3 # foreverpw 的帖子

请注意FFT以后数列是共扼对称排列的顺序,当把某个范围频率的数据清另,必须将与它共扼对称的频率数据也清另,不可少清,也不可多清,这样就不会出来复数了。
 楼主| 发表于 2012-5-17 18:14 | 显示全部楼层
回复 4 # hcharlie 的帖子

太感谢了,终于知道哪错了,,,哎外行搞这个就这样。。。我再自己看看能不能实现过滤
多谢了~~
 楼主| 发表于 2012-5-17 18:25 | 显示全部楼层
回复 4 # hcharlie 的帖子

不好意思,再问一下,FFT结果对称,那是不是说如果我采样率是4096Hz的话,最多只能检测出一半也就是0~2048Hz的声音

点评

Yes!  发表于 2012-5-18 07:28
发表于 2012-5-18 09:49 | 显示全部楼层
回复 6 # foreverpw 的帖子

采样频率应该大于最高分析频率两倍,理论上如此。
但实际上,为了抑制频率混淆,需加低通滤波滤去高频杂波,没有理想的滤波器,所以要有余量。
比如我们感兴趣的频率2000Hz,为防止频率混淆,加2000Hz的低通滤波器,采样频率取最高频率2.56倍,5120Hz,比如采集4096点,FFT以后得2048谱线,我们只能取前1600谱线,相当于2000Hz。
 楼主| 发表于 2012-5-18 12:16 | 显示全部楼层
回复 7 # hcharlie 的帖子

有点懂了,谢谢,还想问下那个2.56是个固定数值吗,是不是根据什么公式算出来的,如果是的话能不能简单介绍下2.56这个值是如何计算出来的,谢谢
发表于 2012-5-18 14:02 | 显示全部楼层
2.56是近似值,与FFT需要2的幂次数1024,2048。。。有关
发表于 2012-5-18 17:29 | 显示全部楼层

2.56貌似不是这样来的吧??
2的幂次是快速傅里叶变换的要求,即使你的数据量不满足2的幂次,在做FFT的时候Matlab会自动补零满足这个条件。
2.56是采样定理来的,这是大家通常取得一个数。具体怎么来的不清楚,采样定理要求采样频率要高于关心频率上限的2倍,如果高太多又会造成采集过多的数据等,我想这是一个优值。
个人看法。
发表于 2012-5-19 07:34 | 显示全部楼层
本帖最后由 hcharlie 于 2012-5-19 07:59 编辑

回复 10 # yghit08 的帖子

2.56是近似值,为什么不取别的值呢?
我们举实际例子.
例如最高频率2000Hz,取2.56倍采样频率就是5120Hz,取1024点,FFT以后取400有效谱线,频率分辨率5Hz,整整齐齐.
我们也可以取2.5倍,采样频率5000Hz,看起来也可以,但我们取1024点, ,2000Hz大致相当于410谱线, 频率分辨率变成4.88Hz不是整数,没别的,别扭.
再如,某些个振动控制仪,最高试验频率2000Hz,由于某种困难,它只能取采样频率6000,3.如取2048,频率分辨率2.929Hz,相当于2000Hz683谱线.也有点别扭,但也把试验给做了.

发表于 2012-5-19 14:23 | 显示全部楼层
本帖最后由 yghit08 于 2012-5-19 14:29 编辑
hcharlie 发表于 2012-5-19 07:34
回复 10 # yghit08 的帖子

2.56是近似值,为什么不取别的值呢?


请注意看我的回复,我说的是可能是一个优值。而且你没有发现你举的例子也不能证明2.56是和2的幂次相关。再者,别扭不别扭能定量化?不能的话,那么这也不是理由!
当然从你的角度解释的话,2.56是和2的幂次相关,但是我想着只是为了能够取整(那你设置成5.12也成)。现在来看,确实这个值得确定是和2的幂次相关,但是根本的原因还是由采样定理决定的,必须大于2,另外由于FFT算法自身的要求,采样点数要是2的幂次,考虑到这个值不能太大也不能小于2,所以大家通常设置成2.56.
再者,如果不采用FFT的话,你的理由合适吗???
发表于 2012-5-19 15:36 | 显示全部楼层
回复 12 # yghit08 的帖子

256,512,1024,2048.....等数除以2.56都得到整数,就这么简单的事,何必大做文章.
 楼主| 发表于 2012-5-19 22:38 | 显示全部楼层
回复 12 # yghit08 的帖子

请教一个问题:FFT之后的复数的模代表振幅,那么假如我想把振幅变成原来的1/2,是不是把复数的实数部分和虚数部分都乘以1/2。
发表于 2012-5-20 17:18 | 显示全部楼层
回复 14 # foreverpw 的帖子

具体不清楚,你看看连续傅里叶变换的公式就知道了。个人认为是这样的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-26 10:06 , Processed in 0.068514 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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