jacky_yl 发表于 2012-7-19 11:22

求助,请问什么时候需要用到窗函数

如果是根据电机编码器信号采集到的完整周期数据(转速恒定),需要用到窗函数吗?
刚刚接触振动理论,不是很清楚。
比如我采集完整2转的振动信号,不管数据起始位置怎么变化,对原始信号进行fft出来的频谱基本相同,但加窗后情况就不一样了,频谱会随着数据起始位置的变化而稍有变化。那这个时候是需要加窗吗?

hcharlie 发表于 2012-7-22 08:14

本帖最后由 hcharlie 于 2012-7-22 10:13 编辑

从无穷尽的数据流中截取一段来处理,就好像从窗户中向外看风景,就叫加窗。
所以你的所谓不加窗,实际上是加了矩形窗。
取有限段的数据来做DFT或FFT时隐含的意思是它的两端为这一段数据无穷无尽的重复,对于取整数周期的周期函数,恰恰就是这个意思,所以加矩形窗是完全合适的,精确的表示了愿意。
而对于非整数周期,或随机信号,截取其中一段,再无限重复,很明显有个接头处不平滑的问题,做出来误差较大,专业术语叫功率泄漏,就是一条谱线的能量泄漏到临近几条谱线上。
为了减小(不可能完全消除)这种功率泄漏,人们想出各种各样的窗函数,将截取的数据处理一下,(当然处理以后就不是原数据了),经常是将两头削尖,看起来接头处平滑了,这样来近似处理,得到比较近似的结果。这样的功率泄漏误差要比矩形窗要减小。
所以像随机信号用hanning或hamming窗较合适;
。。。。。。
各种窗各有各用。
但都是近似方法。

SandVNo2 发表于 2012-7-22 11:44

楼上的回答很全面、正确!不加窗,实际上是加了矩形窗,就是窗函数=1。

南木 发表于 2012-11-13 09:41

看了楼上的说法,不加窗实际就是加了幅值为1的矩形窗。但是在做ansys信号分析时,信号上写了要乘一个同信号等持续时间的矩形窗。当时我也是楼上这种理解,就没加窗;结果激发出的信号没有得到回波,只是终止时的幅值一直持续到求解时间结束;
问下,这是ansys信号加载方式的原因、还是信号的原因

diying813 发表于 2014-12-15 13:42

hcharlie 发表于 2012-7-22 08:14
从无穷尽的数据流中截取一段来处理,就好像从窗户中向外看风景,就叫加窗。
所以你的所谓不加窗,实际上是 ...

想请教下,比如我实验是这样的:车辆通过一段平路,但是平路中间会有一条水泥条障碍,我比较关心车辆过这个障碍时以及之后的测点加速度频率,需要加窗吗?

hcharlie 发表于 2014-12-15 15:47

diying813 发表于 2014-12-15 13:42
想请教下,比如我实验是这样的:车辆通过一段平路,但是平路中间会有一条水泥条障碍,我比较关心车辆过这 ...

加窗是必然的,你不可能取无限长的采样,取有限长的一段叫矩形窗。
如果你处理的是周期函数,而你取的这一段正好是整数周期,所以用你这一段数据无限重复就变成无限长数据,只有此时,FFT以后能完全代表无限长的特性,也就是说此时加矩形窗是合适的。
如果你这一段无限重复不能代表无限长的函数,FFT以后就会有功率泄漏。
此时矩形窗的功率泄漏是比较大的,要减小,可以选用别的窗,hanning,hamming,。。。。

wenwuyang 发表于 2014-12-15 15:56

{:{39}:}

diying813 发表于 2014-12-15 16:12

hcharlie 发表于 2014-12-15 15:47
加窗是必然的,你不可能取无限长的采样,取有限长的一段叫矩形窗。
如果你处理的是周期函数,而你取的这 ...

就是我的信号是这样的,两端比较平稳的是平路上行驶,中间那里就是遇到水泥条障碍了。我关心的是中间那里的频率变化,并且只关心10HZ以内的信号。需要加哪种窗呢?

hcharlie 发表于 2014-12-15 17:15

diying813 发表于 2014-12-15 16:12
就是我的信号是这样的,两端比较平稳的是平路上行驶,中间那里就是遇到水泥条障碍了。我关心的是中间那里 ...

你这种不规则的信号,不可能给出准确的振幅数据,只能看看大概趋势,加不加窗意义不太大。
建议你去掉平稳的一段,单取突变的一段,比如取2.5~6秒得一段做个FFT,看看趋势是没问题的。

diying813 发表于 2014-12-15 20:39

hcharlie 发表于 2014-12-15 17:15
你这种不规则的信号,不可能给出准确的振幅数据,只能看看大概趋势,加不加窗意义不太大。
建议你去掉平 ...

好的,谢谢您的指导

847338110 发表于 2014-12-18 16:48

{:{39}:}
页: [1]
查看完整版本: 求助,请问什么时候需要用到窗函数