蜘蛛侠爱振 发表于 2013-12-4 17:22

关于多段fft平均问题

请教各位一个基本的问题。
得到一组时间序列数据,1024个点,fft后曲线不够平滑,通过论坛搜索知道可以进行多段fft平均进行平滑。
可是具体实施起来应该怎么操作,看了一些关于信号处理的书籍,没有找到这方面的内容。
非常感谢。。。

江树空 发表于 2013-12-8 00:53

将信号等分成nfft点数的信号段,每段与段与可以有重叠部分,然后计算每一段的功率谱,求和后平均即可。
如你的信号1024点,你可以设置每段512点,每段之间重合0.75*512点,那么你可以得到5段512点的信号段,你就能平均5次。

hcharlie 发表于 2013-12-8 21:43

应该用N个1024点FFT以后平均。N可以是10,也可能是100。
平均方法有两种:
一是绝对值的平均,适用于频谱法求周期信号峰值,平均的作用是抑制随机噪声;
一是绝对值平方的平均,适用于求纯随机信号的功率谱,平均的作用是得到较平稳的值。
顺便说一下,部分重叠适用于随机信号加(海宁)窗时为了提高一些数据利用率;而对于周期信号则不宜加(海宁)窗,也就不能用重叠的办法。

尤今 发表于 2013-12-8 22:05

表示在学习之中。。

hcharlie 发表于 2013-12-9 17:16

江树空 发表于 2013-12-8 00:53 static/image/common/back.gif
将信号等分成nfft点数的信号段,每段与段与可以有重叠部分,然后计算每一段的功率谱,求和后平均即可。
如 ...

其实不用这样复杂。
只有1024点数据,FFT得512谱线,将邻近谱线平均即可。
将第1,3谱线(绝对)值相加的一半加到第2谱线里;
再将第3,5谱线(绝对)值相加的一半加到第4谱线里;
。。。。。。
如此保留偶数谱线,去掉奇数谱线,共保留256谱线,与你的结果应该是一样的。
可以稍微平滑一点,不可能很光滑的哟。巧媳妇难做无米之炊哟。
我们两种方法的限制条件,在奇数频谱上没有高的尖峰,否则会产生大的误差。

dsp2008 发表于 2013-12-9 18:21

从理论上讲,分段做平均的效果肯定比直接做差很多。

当然,为了多造一些文章,这样的做法很有效。

江树空 发表于 2013-12-10 09:01

本帖最后由 江树空 于 2013-12-10 12:47 编辑

hcharlie 发表于 2013-12-9 17:16 static/image/common/back.gif
其实不用这样复杂。
只有1024点数据,FFT得512谱线,将邻近谱线平均即可。
将第1,3谱线(绝对)值相加 ...
主任,你不觉得你这样提取奇数谱线求和然后除2再然后加在偶数谱线上麻烦么,还得算法去实现!我那方法一个pwelch函数就搞定,你还觉得我的复杂。。。{:{45}:}

蜘蛛侠爱振 发表于 2013-12-10 10:04

江树空 发表于 2013-12-8 00:53 static/image/common/back.gif
将信号等分成nfft点数的信号段,每段与段与可以有重叠部分,然后计算每一段的功率谱,求和后平均即可。
如 ...

非常感谢    我试试

蜘蛛侠爱振 发表于 2013-12-10 10:05

hcharlie 发表于 2013-12-9 17:16 static/image/common/back.gif
其实不用这样复杂。
只有1024点数据,FFT得512谱线,将邻近谱线平均即可。
将第1,3谱线(绝对)值相加 ...

谢谢主任   我试试您的方法

impulse 发表于 2013-12-10 10:19

请参照matlab里面的Wech Periodogram方法。

江树空 发表于 2013-12-10 12:00

impulse 发表于 2013-12-10 10:19 static/image/common/back.gif
请参照matlab里面的Wech Periodogram方法。

还是这位主任好!一个简单pwelch算法搞定的事,让最上面那位主任这样加那样加的弄得麻烦的不得了。

impulse 发表于 2013-12-10 12:17

本帖最后由 impulse 于 2013-12-10 12:43 编辑

江树空 发表于 2013-12-10 12:00 static/image/common/back.gif
还是这位主任好!一个简单pwelch算法搞定的事,让最上面那位主任这样加那样加的弄得麻烦的不得了。
不能这么说,每种方法都有其优缺点。数据量太少的话,每种方法效果都不佳。

mxlzhenzhu 发表于 2013-12-10 12:26

重采样是怎么搞的?可以对时间数据插值【当然这会造成混叠】,然后就增加了点数,“提高”分辨率可以么?{:{03}:}

impulse 发表于 2013-12-10 12:43

mxlzhenzhu 发表于 2013-12-10 12:26 static/image/common/back.gif
重采样是怎么搞的?可以对时间数据插值【当然这会造成混叠】,然后就增加了点数,“提高”分辨率可以么?{: ...

好像主题对不上啊

江树空 发表于 2013-12-10 12:50

mxlzhenzhu 发表于 2013-12-10 12:26 static/image/common/back.gif
重采样是怎么搞的?可以对时间数据插值【当然这会造成混叠】,然后就增加了点数,“提高”分辨率可以么?{: ...
你是说升采样吧!在待插值时刻补零,然后低通滤波得到的新序列即为升采样信号
页: [1] 2 3
查看完整版本: 关于多段fft平均问题