FFT頻譜洩露和加窗 (一)

2021-08-01 09:45:41 字數 1305 閱讀 8539

我們分析的訊號,如果只含整數次諧波的話,用fft分析訊號的頻譜和相位是非常準確的,如果訊號含有確定的間諧波,比如訊號含有60hz和65hz的頻率,那我們也可以準確的分析出訊號的頻譜和相位,我們只要用矩形窗擷取10個周波的訊號就可以分析出50hz/10=5hz以及5hz的整數倍的訊號的頻譜和相位了,分析的相位和頻譜都是非常準確的!如果我們需要分析的訊號含有不確定的間諧波,比如我們根本不知道訊號含有什麼樣的間諧波,那麼此時用fft分析,必然會有頻譜洩露!那麼怎麼樣才能減少頻譜洩露呢(注意:這種情況下我們只能減少頻譜洩露,而基本上不可能完全消除頻譜洩露)?

我們可以有兩種方法:方法一:增加取樣的長度,方法二:加窗函式。

增加取樣長度可以分析出更多頻率的訊號,可以減少頻譜洩露,不過增加取樣長度必然會對資料處理的實時性造成影響!

理想的窗函式是主瓣很窄,旁瓣衰減很快,矩形窗的主瓣很窄,但是旁瓣衰減卻很慢,hanning窗、hamming窗、blackman窗等的旁瓣衰減有了明顯的改進,但是主瓣卻寬了很多,大概是矩形窗主瓣的二倍,blackman窗的主瓣還要寬,這就造成了訊號頻譜的頻率識別率很低!

什麼叫頻率識別率呢?簡單舉個例子解釋一下:比如說我取十個周波(請注意:這裡我用十個周波舉例子是為了便於計算,實際中我們是不取10個周波的,因為基2的fft運算要求取樣點數是2的整數倍整數次冪,我們實際操作是取4、8或者16個周波等2的整數次冪),我用乙個含有25hz間諧波的訊號做分析,那麼我加hamming窗和hanning窗以後,在20hz和30hz處的頻率點上都將有幅值,而且有趣的是:我們將20hz、25hz和30hz頻率點處的幅值相加以後基本上接近與訊號在25hz處的真實幅值(這一點我還沒搞清楚,是否隱含什麼關係),並且在頻譜上看到的25hz處的幅值要小於實際訊號在25hz處的幅值,所以我們要對加窗後的fft變換的幅值要乘以乙個恢復係數,不同窗的恢復係數也是不同,矩形窗的是1,hanning窗的是2,hamming窗的好像是1.84左右吧(不好意思,記不清了,大家可以在網上查到)!這樣我們在分析25hz頻率點處的幅值時,對於20hz和30hz頻率點處的幅值都是不可信的,所以我們至少要求20hz和30hz附近是不能有訊號的,這樣頻率解析度相對來說是不是就降低了?因為20hz和30hz是不能用的!(哈哈,語言組織能力差了點,有什麼不嚴謹的地方大家包含啊)!

大家可想而知,如果我的原始訊號在20hz和30hz處本來就都有幅值,那麼20hz和30hz處的頻率也將反過來影響25hz處的訊號,這樣測出來的幅值誤差將會很大,所以我們在加窗時由乙個要求:那就是諧波和間諧波,以及間諧波與間諧波之間要相隔較遠,我覺得,至少要相隔2條譜線以上我們才能獲得較高精度的幅值!blackman窗要求相隔的譜線還要多!這是因為blackman窗的主瓣還要寬!

所以對於加窗函式我們要權衡利弊,根據具體需要來選擇!

FFT頻譜洩露和加窗 (二)

學習訊號時域和頻域 快速傅利葉變換 fft 加窗,以及如何通過這些操作來加深對訊號的認識。1.理解時域 頻域 fft 傅利葉變換有助於理解常見的訊號,以及如何辨別訊號中的錯誤。儘管傅利葉變換是乙個複雜的數學函式,但是通過乙個測量訊號來理解傅利葉變換的概念並不複雜。從根本上說,傅利葉變換將乙個訊號分解...

關於MATLAB FFT頻譜洩露和加窗

我們分析的訊號,如果只含整數次諧波的話,用fft分析訊號的頻譜和相位是非常準確的,如果訊號含有確定的間諧波,比如訊號含有60hz和65hz的頻率,那我們也可以準確的分析出訊號的頻譜和相位,我們只要用矩形窗擷取10個周波的訊號就可以分析出50hz 10 5hz以及5hz的整數倍的訊號的頻譜和相位了,分...

頻譜洩露與窗函式

今天,我想談的是數字訊號處理中的兩個重要的問題,什麼是頻譜洩露,以及什麼是窗函式,為什麼使用窗函式。我想大部分人和我一樣,在學習數字訊號處理或者從事相關工作時,會遇到相關的問題,那麼今天,就給大家分析頻譜洩露這個問題。大家在其他地方也經常聽見頻譜洩露這個概念,那麼頻譜洩露究竟是什麼呢?頻譜洩露,來自...