1. 程式人生 > >數字 一階低通濾波器 詳細分析 冰三點水

數字 一階低通濾波器 詳細分析 冰三點水

數字 一階低通濾波器 詳細分析

作者:冰三點水

原創內容,轉帖請註明出處: http://blog.csdn.net/u013608300/article/details/78814693

事件的起因是下圖1,朋友偶然說到一階低通濾波器,藉此來詳細介紹一階低通濾波器的原理,並附上matlab模擬程式程式碼。圖1中的一階低通數字濾波器的公式為Eq(1):

y(n) = q*x(n) + (1-q)*y(n-1)    Eq(1)

其中,y(n)表示當前的輸出,x(n)表示當前的輸入,y(n-1)表示上一次的輸出(圖1中的符號不標準,因為一般時域用小寫,頻域或Z域用大寫)。Eq(1)為差分方程,在分析離散系統時常用差分方程,而求解差分方程通常在z域實現,z變換使問題分析變得簡單。這是一個IIR濾波器,那什麼是FIR濾波器?什麼是IIR濾波器呢?FIR濾波器是有限輸入有限輸出,換句話說當輸入為0時輸出也為0,系統無反饋;而IIR濾波器在輸入為0時也可以有輸出,由於增加了反饋迴路,系統有不穩定發散的可能,因此IIR的分析要比FIR複雜一點。

圖1

我們將公式Eq(1)進行z變換得到z域傳遞函式。見Eq(2),注意其中z域的大寫,我們要符合規範。根據Eq(2),系統具有一個極點z=1-q和一個零點z=0,我們這裡關心的是極點。當極點處於z域單位圓內時,系統是穩定的,否則系統為不穩定系統會發散。單位圓是個重要的概念,z域的單位圓等同於s域的虛軸向左卷繞成z域的單位圓(s域中極點處於虛軸左邊系統穩定)。分析z域的幅頻響應(IIR的相位非線性這裡不表)是在單位圓上進行的,z=r*exp(jw),單位圓上模值為1,所以z=exp(jw)(e的j*w次冪),根據尤拉公式

exp(jw) = cos(w)+j*sin(w),我們得到Eq(3)。我們可以藉助matlab來方便的求出H(w)的幅頻響應,後面會給出程式碼,我們先來看結果見圖2.

當q和取樣時間的引數和圖1保持一致時(q=0.0565 fs=3.333k即300us),幅頻響應見圖2,在橫座標為30hz時的幅值為0.708約等於0.707(-3dB點),我們簡單分析一下圖2,一階低通濾波器的通帶。。。。額。。圖中看著比較窄,而且不平坦和理想一階低通濾波器相比差距明顯,但是對於高頻干擾抑制效果明顯,而且簡單易實現,很多微控制器應用中就會使用此濾波器。圖3為matlab程式碼,具體c語言程式碼實現數字一階低通濾波器網上很多,這裡不貼,matlab程式碼連結為:http://download.csdn.net/download/u013608300/10160717

圖2

圖3

不足之處請指正,在下當虛心接受。

你雖然跑得比別人慢,但你可以跑得比別人遠,比別人久。——冰三點水

2017年12月

於天津