天天看點

移動平均濾波器的頻率響應定量分析

主旨

在生理信号進行中,經常有濾除低頻信号的需求,例如在分析心率相關問題時排除掉呼吸等因素造成的基線漂移等低頻幹擾。在這個場景的工程實踐中,移動平均濾波器由于設計實作簡單,經常被用到。但是移動平均濾波器的頻譜分析缺乏類似于FIR或IIR相關定量資料,在工作中時常憑經驗确定階數,嚴謹性不足。本文試圖采用理論分析+數值計算方法給出移動平均濾波器頻譜的一般規律,用于指導日常工作

代碼位置

本文中的數值計算使用Matlab實作,代碼和輸出表格放在如下位置

https://github.com/wangyaobupt/MovingAverageFilter

移動平均濾波器介紹

考慮時間上無限長度的輸入信号 x(n),n=−∞,..,0,1,...∞

移動平均濾波器的輸出為

y(n)=12m+1∑k=n−mn+mx(n−k)

其中m為正整數,2m+1稱為濾波器階數

工程上不可能有無限長度信号,對于輸入信号 x(n),n=0,1,..N ,當 k<0 時取 x(k)=0 。此濾波器引入m個點的延遲,即x(0)對應的輸出點為y(m). y(0)/y(1)/…/y(m-1)是濾波器非穩态輸出,應該抛棄。

數學推導頻譜

考慮輸入信号為沖擊函數

h(n)={10if n=0otherwise.

移動平均濾波器的輸出為

y(n)=12m+1∑k=n−mn+mh(n−k)

按照傅裡葉變換,濾波器頻域響應函數為

H(ejΩ)=12m+1∑k=n−mn+me−jkΩ=12m+1{(ejmΩ+e−jmΩ)+(ej(m−1)Ω+e−j(m−1)Ω)+...+(ej(Ω+e−jΩ)+1}=12m+1{1+2∑k=1mcos(kΩ)}

其中

Ω=ωfs=2πffs

上述兩個式子綜合起來,移動平均濾波器的頻率響應可以寫為如下形式

H(ej∗2πf)=12m+1{1+2∑k=1mcos(k∗2πf)}

數值計算頻譜特征

先考察幾個典型階數的濾波器幅度-頻率響應曲線,考慮采樣率為每秒125個點

本節提到的所有圖檔都可以在我的GitHub MovingAverageFilter工程的picture目錄下載下傳到清晰版本

  • m=1, 3階移動平均濾波器
    移動平均濾波器的頻率響應定量分析
  • m=10, 21階移動平均濾波器
    移動平均濾波器的頻率響應定量分析
  • m=61, 123階移動平均濾波器
    移動平均濾波器的頻率響應定量分析

從上述圖形可以看出,随着濾波器階數的上升,通帶截止頻率(以3dB功率點考慮)持續降低,對于3階移動平均濾波器,通帶截止頻率在20Hz附近,而對于123階移動平均濾波器,通帶截止頻率在0.45Hz附近。同時,階數上升對于阻帶的衰減能力也持續上升。

那麼,階數與通帶截止頻率的定量關系如何呢,我們繼續通過數值計算尋找答案。下圖中橫坐标為移動平均濾波器階數,縱坐标為截止頻率,通過這張圖,可以清楚的看出随着濾波器階數上升,截止頻率以指數速度降低。

移動平均濾波器的頻率響應定量分析

為了工程上便于使用,我将上述曲線儲存成表格,設計移動平均濾波器時根據截止頻率要求查表即可。

表格位置

https://github.com/wangyaobupt/MovingAverageFilter/blob/master/Code/MovingAverageFilter_PassBandUpperLimit_VS_order.csv

結論

移動平均濾波器可以實作低通濾波器的效果,其濾波器截止頻率和衰減特征雖然不易給出直覺的數學表達式,但是可以通過數值計算給出符合工程應用的表格,用于指導日常工作。

繼續閱讀