matlab設計濾波器

2021-08-31 16:24:04 字數 1504 閱讀 6268

陳懷琛的《數字訊號處理教程--matlab釋義與實現》:

從效能上來說,iir濾波器傳遞函式包括零點和極點兩組可調因素,對極點的惟一限制是在單位圓內。因此可用較低的階數獲得高的選擇性,所用的儲存單元少,計算量小,效率高。但是這個高效率是以相位的非線性為代價的。選擇性越好,則相位非線性越嚴重。fir濾波器傳遞函式的極點固定在原點,是不能動的,它只能靠改變零點位置來改變它的效能。所以要達到高的選擇性,必須用較高的階數;對於同樣的濾波器設計指標,fir濾波器所要求的階數可能比iir濾波器高5-10倍,結果,成本較高,訊號延時也較大;如果按線性相位要求來說,則iir濾波器就必須加全通網路進行相位校正,同樣要大大增加濾波器的階數和複雜性。而fir濾波器卻可以得到嚴格的線性相位。

從結構上看,iir濾波器必須採用遞迴結構來配置極點,並保證極點位置在單位圓內。由於有限字長效應,運算過程中將對係數進行捨入處理,引起極點的偏移。這種情況有時會造成穩定性問題,甚至產生寄生振盪。相反,fir濾波器只要採用非遞迴結構,不論在理論上還是在實際的有限精度運算中都不存在穩定性問題,因此造成的頻率特性誤差也較小。此外fir濾波器可以採用快速傅利葉變換演算法,在相同階數的條件下,運算速度可以快得多。

另外,也應看到,iir濾波器雖然設計簡單,但主要是用於設計具有分段常數特性的濾波器,如低通、高通、帶通及帶阻等,往往脫離不了模擬濾波器的格局。而fir濾波器則要靈活得多,尤其是他易於適應某些特殊應用,如構成數字微分器或希爾波特變換器等,因而有更大的適應性和廣闊的應用領域。

對於fir濾波器,衝激響應在有限時間內衰減為零,其輸出僅取決於當前和過去的輸入訊號值。對於iir濾波器,衝激響應理論上應會無限持續,其輸出不僅取決於當前和過去的輸入訊號值,也取決於過去的訊號輸出值。

一階濾波:

演算法基礎:yn = a * xn + (1-a) * yn-1

a:濾波係數,其值通常遠小於1 ;xn:本次取樣值: yn-1;上次的濾波輸出值;yn:本次濾波的輸出值。

二階iir濾波器:

演算法基礎:y(n)= b0xn + b1xn-1 + b2xn-2 - (a1yn-1 + a2*yn-2)

1、在命令視窗輸入:fdatool

2、設計完之後

截止頻率是下降到3db的點,功率下降到0.707。

3、file—export—匯出sos增益和矩陣g然後再轉成常見形式

或者analysis–filter coefficients–edit–convert to single section

就可以得到傳輸函式的各項係數,比如現在是2階的係數:

y(n)= b0xn + b1xn-1 + b2xn-2 - (a1yn-1 + a2*yn-2)

matlab設計低通濾波器

輸入 被白雜訊汙染的正弦訊號,fs 100khz,訊號頻率為10khz,雜訊訊號為20khz,現在要濾掉20khz的正弦訊號 clear all fs 100000 t 0 1 fs 0.003 f1 10000 f2 20000 signal1 sin 2 pi f1 t signal2 sin ...

matlab帶阻濾波器設計

程式設計 任務書中給出的要求為中心頻率200hz,頻寬150hz。故設上通帶截止頻率為110hz,下通帶截止頻率290hz,阻帶上限頻率140hz,阻帶下限頻率260hz。此處僅以boxcar窗為示例,其他窗函式的程式 基本相同,只是在window boxcar n n ceil 1.8 pi de...

MATLAB學習之濾波器設計

matlab 進製之間的轉換 1.十進位制整數轉二進位制函式dec2bin 如果已知絕對值小於1的十進位制數d,如何轉換成b位元的二進位制數原碼?dec2bin round abs d 2 b 1 2 b 1 d 0 b 2.十進位制整數轉換成補碼形式的二進位制數 dec2bin round d 2...