频谱泄露 振动 matlab,关于MATLAB FFT频谱泄露和加窗
我們分析的信號,如果只含整數(shù)次諧波的話,用FFT分析信號的頻譜和相位是非常準(zhǔn)確的,如果信號含有確定的間諧波,比如信號含有60HZ和65HZ的頻率,那我們也可以準(zhǔn)確的分析出信號的頻譜和相位,我們只要用矩形窗截取10個(gè)周波的信號就可以分析出50HZ/10=5HZ以及5HZ的整數(shù)倍的信號的頻譜和相位了,分析的相位和頻譜都是非常準(zhǔn)確的!如果我們需要分析的信號含有不確定的間諧波,比如我們根本不知道信號含有什么樣的間諧波,那么此時(shí)用FFT分析,必然會有頻譜泄露!那么怎么樣才能減少頻譜泄露呢(注意:這種情況下我們只能減少頻譜泄露,而基本上不可能完全消除頻譜泄露)?
我們可以有兩種方法:方法一:增加采樣的長度,方法二:加窗函數(shù)。
增加采樣長度可以分析出更多頻率的信號,可以減少頻譜泄露,不過增加采樣長度必然會對數(shù)據(jù)處理的實(shí)時(shí)性造成影響!
理想的窗函數(shù)是主瓣很窄,旁瓣衰減很快,矩形窗的主瓣很窄,但是旁瓣衰減卻很慢,hanning窗、hamming窗、blackman窗等的旁瓣衰減有了明顯的改進(jìn),但是主瓣卻寬了很多,大概是矩形窗主瓣的二倍,blackman窗的主瓣還要寬,這就造成了信號頻譜的頻率識別率很低!
什么叫頻率識別率呢?簡單舉個(gè)例子解釋一下:比如說我取十個(gè)周波(請注意:這里我用十個(gè)周波舉例子是為了便于計(jì)算,實(shí)際中我們是不取10個(gè)周波的,因?yàn)榛?的FFT運(yùn)算要求取樣點(diǎn)數(shù)是2的整數(shù)倍整數(shù)次冪,我們實(shí)際操作是取4、8或者16個(gè)周波等2的整數(shù)次冪),我用一個(gè)含有25HZ間諧波的信號做分析,那么我加hamming窗和hanning窗以后,在20HZ和30HZ處的頻率點(diǎn)上都將有幅值,而且有趣的是:我們將20HZ、25HZ和30HZ頻率點(diǎn)處的幅值相加以后基本上接近與信號在25HZ處的真實(shí)幅值(這一點(diǎn)我還沒搞清楚,是否隱含什么關(guān)系),并且在頻譜上看到的25HZ處的幅值要小于實(shí)際信號在25HZ處的幅值,所以我們要對加窗后的FFT變換的幅值要乘以一個(gè)恢復(fù)系數(shù),不同窗的恢復(fù)系數(shù)也是不同,矩形窗的是1,hanning窗的是2,hamming窗的好像是1.84左右吧(不好意思,記不清了,大家可以在網(wǎng)上查到)!這樣我們在分析25HZ頻率點(diǎn)處的幅值時(shí),對于20HZ和30HZ頻率點(diǎn)處的幅值都是不可信的,所以我們至少要求20HZ和30HZ附近是不能有信號的,這樣頻率分辨率相對來說是不是就降低了?因?yàn)?0HZ和30HZ是不能用的!(哈哈,語言組織能力差了點(diǎn),有什么不嚴(yán)謹(jǐn)?shù)牡胤酱蠹野?!
大家可想而知,如果我的原始信號在20HZ和30HZ處本來就都有幅值,那么20HZ和30HZ處的頻率也將反過來影響25HZ處的信號,這樣測出來的幅值誤差將會很大,所以我們在加窗時(shí)由一個(gè)要求:那就是諧波和間諧波,以及間諧波與間諧波之間要相隔較遠(yuǎn),我覺得,至少要相隔2條譜線以上我們才能獲得較高精度的幅值!blackman窗要求相隔的譜線還要多!這是因?yàn)閎lackman窗的主瓣還要寬!
所以對于加窗函數(shù)我們要權(quán)衡利弊,根據(jù)具體需要來選擇!
總結(jié)
以上是生活随笔為你收集整理的频谱泄露 振动 matlab,关于MATLAB FFT频谱泄露和加窗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab cep,【CEP】重构和改
- 下一篇: matlab中怎样将字母倒叙,如何用ma