1. 程式人生 > >數字低通濾波器的原理及實現

數字低通濾波器的原理及實現

首先說一下,數字濾波器是怎麼實現的
1.首先根據電路建立低通濾波器時域系統微分方程,得出低通濾波器t域模型
2.其次將對時域微分方程進行拉式變換,得出低通濾波器的s域模型

3.將模擬濾波器轉換為數字濾波器,對連續系統進行離散化,對s域進行z變換,得出z域模型,常用的離散化方法有零階保持、雙線性變換等

4.手動將z域傳函轉換成差分方程,根據差分方程編寫濾波程式碼

下面以一節慣性環節做低通濾波器為例

慣性環節:由於存在慣性元件,比如電容,輸出不能立刻同步復現輸入的訊號,可以通過階躍響應輸入看出


慣性環節t域方程

慣性環節s域傳函,其中T為慣性時間常數,即2*pi*f,f為轉折頻率;K為慣性增益,這裡令K為1

舉例:令T=2*pi*f=2*3.14*10=62.8,即取濾波器轉折頻率為10HZ

1.用matlab將濾波器s域傳函離散化到z域傳函


2.z域傳函轉換成差分方程

對ZH處理一下,變成

ZH=Y(z)/U(z)=0.0346+0.0346*z^(-1)/1-0.9391*z^(-1)

交叉相乘,變成

Y(z)-0.9391*z^(-1)*Y(z)=0.0346*U(z)+0.0346*z^(-1)*U(z)

Y(z)=0.9391*z^(-1)*Y(z)+0.0346*U(z)+0.0346*z^(-1)*U(z)

寫出差分方程如下

Y(k)=0.9391*Y(k-1)+0.0346*U(k)+0.0346*U(k-1)

3.將差分方程轉換到程式碼中

在程式碼中,將k換成t,表示當前時刻,t-1表示前一時刻,U(t)表示輸入訊號,Y(t)表示濾波輸出訊號

Y(t)=0.9391*Y(t-1)+0.0346*U(t)+0.0346*U(t-1)

下面是此濾波器波特圖含義,10hz處,衰減-3db,此濾波器設計完成