声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 14385|回复: 28

[FFT] FFT方法和FFT的应用注意点

  [复制链接]
发表于 2009-3-11 10:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 hcharlie 于 2013-4-13 14:42 编辑

很多朋友常常用FFT方法处理他的问题,但常常出现问题,问题在哪里呢?
FFT(DFT)只是一个数学方法,说穿了,它只是从一组数字转换成另一组数字,它本身是没有物理意义的。用它来处理我们自己的问题一定要看是否适合我们的情况。
1)取单一段数据做FFT,则必需将它看成是以这一段数据无穷尽的重复形成的周期函数中的一段!经常这一帧数据是首尾相接的,这才像是周期函数,也就不会产生什么功率泄漏。尾巴不要随便加另,这个问题经常被一些朋友的忽视,以至于要犯错误。
2)对一段冲击响应曲线,起始是另,结束点接近与另(可看成首尾相接),将这一段数据做FFT,做一个采样的FFT可以认为是无穷个这样的冲击样本的组合的结果。这样的样本如果长度不是2的整数幂,可以尾巴加另,结果应该误差不大。
3)处理随机振动问题,经常要求是稳态各态历经的,经常要求采集很长的数据取得平均,比如1024点一帧,要取50~100帧,每帧要加窗,FFT,做谱平均,求谱密度等等。
4)对于任意一段数据,首尾不相接,它原来的尾巴数据也不接近另,还要强制尾巴加另,做出FFT结果是什么?是一组数据,说明什么,不知道!

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2009-3-11 13:36 | 显示全部楼层
楼主的解析相当精辟。
用快速傅里叶变换,需要整周期采样。
 楼主| 发表于 2009-3-11 21:44 | 显示全部楼层
再举一个例子,比如心电图是一个周期性函数,如果想做它的DFT或者FFT,您必须取一个两个或整数个周期的波形,不能取不是整周期的任意长度,数据不够也不能随便加另(医生会误以为心脏停跳了)!
发表于 2009-3-11 22:17 | 显示全部楼层
谢谢指导,很有用,但是周期是如何判断的呢?
发表于 2009-3-11 23:40 | 显示全部楼层
LZ讲得不错,谢谢指导
发表于 2009-3-12 09:53 | 显示全部楼层

回复 板凳 hcharlie 的帖子

医学信号比如肌电信号根本不具有周期性,如果取一段数据进行FFT变换,查看频谱,不能取任意长度吗?那么该如何选择?
 楼主| 发表于 2009-3-12 11:00 | 显示全部楼层

回复 6楼 xiaocheng_2007 的帖子

频谱本身就是周期性函数的参数。意思就是说,非周期函数没有频谱的概念。
你说的问题应该先建立理论定义和公式,再做具体工作,免得走弯路。
看了你另一个地方展示的肌电图,我的印象它像随机信号,能不能用随机信号的理论。

[ 本帖最后由 hcharlie 于 2009-3-12 11:08 编辑 ]
发表于 2009-3-12 15:16 | 显示全部楼层
原帖由 hcharlie 于 2009-3-11 10:50 发表
2)至于取单一段数据做FFT,则必需将它看成是以这一段数据无穷尽的重复形成的周期函数中的一段!经常这一帧数据是首尾相接的,这才像是周期函数,也就不会产生什么功率泄漏。尾巴不要随便加另,这个问题经常被一些朋友的忽视,以至于要犯错误。
3)对一段冲击响应曲线,起始是另,结束点接近与另(可看成首尾相接),将这一段数据做FFT,做一个采样的FFT可以认为是无穷个这样的冲击样本的组合的结果。这样的样本如果长度不是2的整数幂,可以尾巴加另,结果应该误差不大。
4)对于任意一段数据,首尾不相接,它原来的尾巴数据也不接近另,还要强制尾巴加另,做出FFT结果是什么?是一组数据,说明什么,不知道!

对于楼主关于数据补零的说法不完全同意。在一组已知数据后补零是在FFT进行分析中常用的方法,对已知数据后补零再进行FFT分析,实际上是在频域中进行内插,减小频率分辨率(两条谱线之间的间隔)。设数据长N,而FFT长是N1(N1>N),在FFT分析中就是把N长的数据后补了N1-N个0值。若原N点的FFT,其在频率域的分辨率df=fs/N,而改为用N1点的FFT,其在频率域的分辨率df1=fs/N1。df1<df。可参看一下以下文献,都说到对数据进行补零后DFT的分析:
郝重阳等 “论频率分辨率与频率步长的关系以及数据添零对频谱的影响” 西北工业大学学报 1995 13(3)
李枫等 “基于变采样速率的信号处理”无线电工程 2004 34(6)
另一方面对于楼主说到的“一帧数据是首尾相接的,这才像是周期函数,也就不会产生什么功率泄漏”,当然能做到这一点固然好,但在实际工程上是很难达到。由于各种噪声的存在,信号很难达到完全周期性。由于信号的非周期性和有限长度,就少生了分析中的泄漏现象,为了减小泄漏,所以才使用窗函数。

评分

1

查看全部评分

 楼主| 发表于 2009-3-12 18:47 | 显示全部楼层

加另的效果

本帖最后由 hcharlie 于 2013-4-13 15:29 编辑

对于任意一段曲线加另(上图)FFT的结果,相当于(中图)这种周期函数的频谱,而不是(下图)周期函数的频谱。加另以后存在某些近似,趋势上有相似性,缺少数学上的精确性。
add_0.PNG
回复 支持 1 反对 0

使用道具 举报

发表于 2009-3-12 21:27 | 显示全部楼层
原帖由 hcharlie 于 2009-3-12 18:47 发表
对于任意一段曲线加另(上图)FFT的结果,相当于(中图)这种周期函数的频谱,而不是(下图)周期函数的频谱。

我想楼主以上给的图并不能说明频谱中的变化。以下我给出上述两篇文章的说明。笫一图是郝重阳等 “论频率分辨率与频率步长的关系以及数据添零对频谱的影响”一文中的,文中是在原数据上补了(p-1)N个0,给出补零后的结果:
1, 频率步长的缩小、谱线密化的方式是插入新谱线,即原两相邻潜线间都插入了(p—1)根新谱线线。
2,补零未叠加另外的信息,不产生频域附加函数,无损包络。
笫二图是李枫等 “基于变采样速率的信号处理”一文中的,文中补任意个0,给出补零后的结果:
1,谱域采样更密集,即谱采样率提高,而包络不变。
2,提高了可视频率分辨率,而没有提高实际的频率分辨率。
从这两文中都可以看到。补零后在频域是内插了,谱线密化了,而频谱的包络没有变化。
patch1.JPG
patch2.JPG

评分

1

查看全部评分

 楼主| 发表于 2009-3-13 08:05 | 显示全部楼层
本帖最后由 hcharlie 于 2013-4-13 18:03 编辑

我并没有完全否定加另,只是告诉初学者使用时要注意加另不是万能的。
我们做数学计算,是要力求每一个数都是有用的,精确的,所谓趋势一样只能说明是相似而不是相等,近似而不是精确。很明显9楼中的中图和下图就是近似而不是相等。
不知道引用哪里的文中有什么接近其原来的连续频谱,但我们都知道周期函数的频谱原来就是离散的,随机信号频谱才是连续的,说的不是一个事。其实我在1楼就举了一个加另的很好的例子,我们知道脉冲响应的富里叶变换是频响函数,所以在脉冲响应后面加另就是很好的例子,频响函数原来就是连续的,适合这篇文章所说的情况。
如果是求随机振动的谱估计,我们不仅需要频域的趋势,我们也需要知道幅值的大小,加另以后幅值大小就变了。比如我们计算随机振动台的控制,大小都变了,怎样控制呢?
几十年前,为了凑2的整数幂好做FFT而加另,现在不够数就用DFT,加另的必要性更小了。
 楼主| 发表于 2009-3-14 07:52 | 显示全部楼层

回复 11楼 hcharlie 的帖子

对不起,11楼中本人提到的频响函数应为传递函数之误。
发表于 2009-3-15 16:40 | 显示全部楼层
有些讲法值得推敲

点评

反对: 3.0
反对: 3
究竟什么讲法值得推敲?不说清楚等于没说。  发表于 2013-4-13 15:59
发表于 2009-3-21 10:32 | 显示全部楼层
加零后FFT频率分辨率明显提高,按数据点为2^N(不足自动补零)和频率分辨率为f/N来说,频率分辨率相当于在原有的频率分辨率基点之间均匀插值了。从频域能量守恒角度来说,(数据点由2^N补零为2^(M+N))加零后的所有频率幅值当然有所降低
发表于 2009-3-22 21:35 | 显示全部楼层
是不是幅值会降低,但包络形状不会改变。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-4-24 03:05 , Processed in 0.062861 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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