你還在愁不會選擇FFT窗函數嗎?

2021-01-14 ZLG致遠電子


摘要

我們在使用FFT分析功能的時候,是否產生過疑惑,如何選取窗函數?選取的窗函數是否適合當前的信號?點開本文,你就知道啦!

大多數工程師都知道,FFT是研究整個時間域和頻率域的關係,通過對信號頻率的分析定位異常,可是在使用FFT分析功能的時候,應該如何選取窗函數?本文就FFT窗函數做一個簡要的介紹,幫助您更加了解各類窗函數。


一、窗是什麼?


實際在進行FFT運算時,是從信號中截取一個時間片段,然後用被截取的信號進行周期延拓處理,得到無限長的信號,針對這個信號進行傅立葉變換以及相關分析等數學處理。


採用不同的截取函數對信號進行截斷,截斷函數稱為窗函數,簡稱為窗。


二、為什麼要窗?


加窗的目的有兩個頻譜洩露和柵欄效應。


1、頻譜洩露:


頻譜洩露的概念是:非周期的信號被截斷後,其頻譜發生了洩露。


圖2所示是一個無限長的周期信號,截取其中一段信號,這段信號並非一個完整的周期信號,通過傅立葉變換可以將這段截取的信號變為無限長序列,那麼是如何實現的呢?



圖1 從無限長序列中截取有限長序列


通過採用周期延拓,可以將被截取的有限長信號當成是無限長序列的周期信號,然後不斷的複製,重新得到一個新的無限長序列。



圖2 有限長序列經過周期延拓構建的新的無限長序列


如圖3所示,通過周期延拓,得到的新的無限長序列,很明顯,新的序列與原序列是不一樣的,此時便發生了頻譜洩露!


此時對圖3進行頻譜分析,得到的結果必然也不同!不同之處在於,圖2是單一頻率信號,只有一根譜線,而圖3中,除了圖2信號包含的這根譜線(不妨稱為主譜線)外,出現了其它頻率的譜線,這種現象就被稱為頻譜洩露!


簡而言之,頻譜洩露就是分析結果中,出現了本來沒有的頻率分量,分析結果與實際不一致!


通過加上合適的窗函數,可以把這個突變變得圓滑一些,從而抑制高次諧波。


2、柵欄效應:


對信號做FFT時,得到的是一系列離散的譜線,如果信號中的頻率成份位於譜線之間而不是正好落在譜線上,那麼就會造成幅值和相位上的偏差。


離散的譜線就象一個個柵欄,故稱這種現象為柵欄效應。打個比方,柵欄效應就像柵欄外走過一個美女,你目不轉睛去看,但因為柵欄效應總有一些關鍵部位被擋住,使得美女在一定程度上有失真,這就是柵欄效應。


從原理上講這兩種誤差都是不能消除的,但是我們可以通過選擇不同的窗函數對它們的影響進行抑制。


三、常用窗函數的適用範圍


1、矩形窗


矩形窗對頻率識別精度最高,幅值識別精度最低。

適用於暫態或短脈衝信號、頻率非常接近的等幅正弦波、隨機噪聲、瞬態信號、偽隨機信號等。



圖3 矩形窗


2、漢寧窗


漢寧窗可大大降低矩形窗帶來的不連續性,減小洩露。


適用於分析大多數的連續信號、純隨機信號、窄寬信號、有多個頻率分量的被測信號、頻譜表現很複雜的信號,更多關注的是頻率點而非能量的大小。


圖4 漢寧窗


3、海明窗


海明窗的頻譜由3個矩形時窗的頻譜合成,衰減速度比漢寧窗慢。


適用於測量信號電平前後相差很大的暫態或短脈衝信號。



圖5 海明窗


4、布萊克曼窗


布萊克曼窗主瓣寬,旁瓣小,頻率識別精度最低,但幅值識別精度最高。

適用於測量單頻信號,尋找更高次諧波。



圖6 布萊克曼窗


四、總結


根據被測信號的實際情況來選擇窗函數,合適的才是最好的!


關於窗函數的一些重要的結論總結如下:


1、實際進行FFT分析時,分析結果不可避免受到頻譜洩露的影響,例如頻點分裂、幅值能量不精確等,此時便需要選取適當的窗函數,以滿足我們工程測量的需要;


2、示波器中的FFT運算,不加窗和加矩形窗是一回事;


3、窗函數會改變頻域波形,讓頻譜形成人們「喜歡」的形狀,但是不會本質上消除頻譜洩露,不同的窗函數有其獨特的特性,我們只需要根據工程測試的需要,選擇一款合適的就可以了。


ZDS2000系列示波器拒絕單純的功能堆砌,內部採用了專業的處理晶片,突破技術壁壘,將FFT分析點數升級至4M樣本點,同樣在1G採樣率的情況下頻率解析度能精確到250Hz,可以準確分析出電路中的幹擾噪聲來源,大大提高了示波器FFT的實用價值。4Mpts FFT分析功能,不僅僅是在量上突破,而且還是在質上的飛躍。



圖7 4Mpts FFT分析


ZDS2024PLUS,再一次重新定義示波器!




ZDS2024PLUS示波器


聯繫方式


銷售電話:400-888-4005撥1

技術支持電話:400-888-4005撥2


致遠電子 (ID: ZLG_zhiyuan )

還沒關注致遠電子?您將錯過每日泛著油光的乾貨!您將錯過一段顛覆洋品牌的歷史!!有時候你想證明給一萬個人看,到後來,你發現只得到了一個明白的人,那就夠了。你是我們期待已久的粥粉麼?我們的微信號:ZLG_zhiyuan。


相關焦點

  • 窗函數的選擇
    雖然知道加窗可以抑制洩漏,但複雜的窗函數表達式及抽象的主瓣旁瓣描述方法,另人更加迷惑,下面我們拋棄公式用通俗易懂的方式介紹窗函數的選擇。本文引用地址:http://www.eepw.com.cn/article/284917.htm  1.加窗與窗函數  在數位訊號處理中,常見的有矩形窗、漢寧窗、海明窗和平頂窗,這裡不再贅述窗函數的表達式,只討論窗函數的使用,下圖直觀地描述了信號加窗的過程及窗函數基本特徵。
  • 每日函數——fft
    fft快速傅立葉變換語法Y  = fft(X)Y  = fft(X
  • 通俗易懂的講解FFT的讓你快速了解FFT
    (笑) 對於這張圖片我想強調的一點就是第二階蝶形運算的時候,WN0之後不應該是WN1嗎,為什麼是W2N了,這個問題之前困擾了我一段時間,但是不要忘了 對於運算效率就不用多提了 以上就是FFT算法的理論內容了,接下來就是用C語言對這個算法的實現了,對於FFT算法C語言的實現,網上的方法層出不窮,介於本人比較懶(懶得看別人的程序),再加上自給自足豐衣足食的原則,我自己也寫了一個個人認為比較通俗易懂的程序,並且為了幫助讀者理解,我特意儘量減少了庫函數的使用,一些基本的函數都是自己寫的(難免有很多BUG),但是作為FFT算法已經夠用了
  • 兩種實驗模態分析法對應的窗函數選擇
    來源:吉興汽車聲學部件科技有限公司公眾號作者:陳曉君針對具體的模態測試,到底該如何選擇窗函數,在不同的模態測試方法中
  • matlab下實現FFT信號分析
    利用matlab做頻譜分析前我們需要了解分析過程中的一些基礎知識,matlab中的 fft 函數用法、fftshift 函數的用法函數 1  fft :作用:快速傅立葉變換。語法:Y = fft(X)Y = fft(X,n)Y = fft(X,n,dim)語法:Y = fft(X) 用快速傅立葉變換 (FFT) 算法計算 X 的離散傅立葉變換 (DFT)。
  • MATLAB常用的FIR濾波器設計方法之窗函數法
    FIR濾波器很多工科出身的人都不會陌生,在我們的學習和工作中,也常常需要設計FIR濾波器。因為FIR濾波器有兩個特點:濾波器是穩定的以及具有線性相位。FIR濾波器在信號處理相關領域當然也包括本人所在的雷達信號處理領域有著廣泛的應用。本文主要介紹MATLAB最常用的FIR濾波器設計方法之窗函數法。其他的方法將在另一章中介紹。
  • 信號分析之:信號分析中的多種窗函數
    上圖未使用窗函數,下圖使用了Hanning窗,洩漏問題明顯改善。Hanning窗在始末兩端都為0,規避了所有不連續性,因此該窗函數適用於持續性噪聲和周期性聲音信號。一般來說,在95%情況下,Hanning窗都適用。
  • 使用STM32 的DSP庫進行FFT變換
    * 使用三角函數生成採樣點,供FFT計算* 進行FFT測試時,按下面順序調用函數即可:* dsp_asm_init();* dsp_asm_test();*/#include "stm32f10x.h"#include "dsp_asm.h"#include "stm32_dsp.h"#include "table_fft.h"
  • 30°,45°,60°角的三角函數練習題分享,做會它不愁不會
    30°,45°,60°角的三角函數練習題分享,做會它不愁不會「記不住,記不住,就是記不住」,一些同學們經常這樣碎碎念,記不住基礎知識,怎麼做數學題呢?很多同學會覺得很煩惱。所以選對一份練習題鞏固基礎知識很重要,接下來老師分享一份30°,45°,60°角的三角函數,做會它不愁不會。首先我們來看一下30°,45°,60°角的三角函數的知識梳理。
  • FFT相關原理及使用注意事項
    當滿足Fs/2大於信號頻段的最大頻率Fin_max時,自然不會現混疊。這是採樣定理的簡單實踐。在模數轉換器前串入抗混疊濾波器抗混疊濾波器最常見的是低通濾波器,此濾波器可以將高於Fs/2的高階奈奎斯特區頻段信號衰減掉,只保留待測量1st奈奎斯特區頻段的信號。
  • 用FPGA實現FFT算法(圖)
    快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 基於MSP430系列微控制器的FFT算法實現
    硬體乘法器模塊支持8/16位x8/16位有符號,或者無符號的乘法運算,並可以選擇「乘法與累加」功能。採用MSP430系列微控制器實現FFT算法具有超低功耗、低電壓工作、低成本、分析速度快等優點,它比採用專用晶片和DSP晶片價格便宜,比採用FPGA晶片容易實現。
  • 快速傅立葉變換FFT在MATLAB中的實現
    將時域的信號變換到頻域的正弦信號,正弦比原信號更簡單,且正弦函數很早就被充分地研究,處理正弦信號比處理原信號更簡單。正弦信號的頻率保持性:輸入為正弦信號,輸出仍是正弦信號,幅度和相位可能發生變化,但頻率與原信號保持一致,只有正弦信號才擁有這樣的性質。
  • 示波器FFT查看信號頻譜和設置的方法
    對於FFT的時域頻域轉換如果不是很了解,可以搜索看下我們之前的文章《淺懂示波器FFT快速傅立葉變換功能及運用》FFT的菜單欄中,包含FFT運算頻譜類型的選擇,可以選擇線或者分貝來作為幅值分別以V-Hz或dB-Hz被繪製在示波器顯示屏上。當FFT開啟的時候,可以看到水平軸的時基從時間變成了頻率,垂直軸單位變為V或者dB。
  • Matlab常用函數與常用指令大全
    surfl 具有光照的3D陰影表面trimesh 三角網格圖1 常用指令(General Purpose Commands)1.1 通用信息查詢(General information)demo 演示程序help 在線幫助指令helpbrowser 超文本文檔幫助信息helpdesk 超文本文檔幫助信息helpwin 打開在線幫助窗
  • 幾行Matlab代碼教你上手傅立葉變換
    f1=sin([0:2*pi/n:2*pi]);f1=f1(1:n);figure,stem(f1),title('原函數');g1 = fft(f1);figure,stem(abs(g1)),title('傅立葉變換的幅度');
  • 使用示波器進行信號頻譜分析(FFT)教程
    FFT的菜單欄中,包含FFT運算頻譜類型的選擇,可以選擇線或者分貝來作為幅值分別以V-Hz或dB-Hz被繪製在示波器顯示屏上。當FFT開啟的時候,可以看到水平軸的時基從時間變成了頻率,垂直軸單位變為V或者dB。
  • 這些FFT乾貨真的很受用
    當滿足Fs/2大於信號頻段的最大頻率Fin_max時,自然不會現混疊。這是採樣定理的簡單實踐。在模數轉換器前串入抗混疊濾波器抗混疊濾波器最常見的是低通濾波器,此濾波器可以將高於Fs/2的高階奈奎斯特區頻段信號衰減掉,只保留待測量1st奈奎斯特區頻段的信號。