濾波器設計(2) 經典FIR數字濾波器的設計

2021-07-24 08:42:58 字數 3082 閱讀 6590

以前有一篇iir濾波器設計的文章。與iir相對應,這篇文章主要講fir濾波器的設計。

fir(finite impulse response)濾波器:有限長單位衝激響應濾波器,又稱為非遞迴型濾波器,是數字訊號處理

系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,fir濾波器在通訊、影象處理、模式識別

等領域都有著廣泛的應用。

fir濾波器的優點,一定是穩定的(極點都在0的位置),可以做到線性相位,而iir的相位是非線性的(摘自鄭君里《訊號與系統》)。

按奇偶節數、奇偶對稱,把實h(n)的fir分為四類。

從hg(w)可以看出,有些就不能做低通,有些就不能做高通,等。

其他詳細內容,可自行查閱資料。

fir濾波器設計方法「據說」有很多種。本科上課的時候,就教過一種,窗函式法。

大致意思就是,要設計什麼,就用那種對應的理想濾波器去乘以乙個窗函式。

假設要設計乙個lpf。理想lpf最好理解。但由於***x原因,不能物理實現。

上海交大(sjtu)某一年考研題目問的就是「為什麼理想lpf物理不可實現」,以及什麼是gibbs(吉布斯)現象。

理想lpf的單位脈衝相應h(n)是無限長的,實際中不可能做到無限長的,所以希望用有限長的h1(n)去逼近h(n),

實現最小均方誤差意義下的最優。

有人證明了,把理想的h(n)截斷,就可以得到最小均方誤差意義下的最優。

截斷的意思就是,加矩形窗w(n)。時域相乘,頻域就是拿著h(jw)和窗函式的w(jw)卷積。

後來在有些場合下,發現矩形窗不能滿足需求,於是有了三角窗、hanning窗、hamming窗、blackman窗、kaiser窗等。

乙個理解就是拿主瓣寬度和旁瓣衰減互換。魚和熊掌不可兼得。

e.g. 矩形窗,主瓣窄,旁瓣大,過渡帶頻寬寬,旁瓣衰減不夠大。

總之,需要根據需求,選擇窗函式。

用maltab設計fir線性相位濾波器的步驟大致如下。

1. 根據需求,提出指標。

2. 把指標化成數字的。

3. 按照指標,選窗函式。

4. 按過渡帶頻寬,定階數。但是,要注意階數是否滿足頻率特性。比如,有些線性相位fir濾波器就不能實現低通……

5. 呼叫fir1確定係數。

6. 檢驗其頻率響應。又是乙個反覆試驗,反覆修正的過程。

注意, 千萬小心,matlab裡,zplane對fir濾波器,慎用!慎用!不要輕易對fir的係數求零極點。

階數很高的時候,電腦要算死的。

%% 內容:設計fir濾波器

% 版本:v1.0

clear;

close all;

clc%%

fs = 8000; % 取樣率

fp = 1000; % hz 通帶截止頻率 起伏小於*** db

fs = 1500; % hz 阻帶截止頻率 衰減大於*** db

wp = 2*pi * fp / fs; % 對應的數字角頻率

ws = 2*pi * fs / fs; % ***

fc = (fp+fs)/2; % 要設計的fir的截止頻率 -_-! 幾個概念容易搞混

% 就lpf來講,fc按理說可能可以取為 fc = fp + (fs-fp) * theta, theta在0~1之間

w_bw = (ws-wp); % 過渡帶頻寬

% 如果要求阻帶最小的衰減為 50 db,查表發現hamming窗就可以滿足條件

n = ceil(3.3 * 2*pi /w_bw); % 濾波器長度 3.3為hamming窗過渡段的引數,用來求濾波器長度

win = hamming(n+1);

fs2 = fs/2;

wn = fc/fs2;

b = fir1(n,wn,win);

[h,w] = freqz(b,1,1e4);

figure(1);

subplot(211);

stem(b);

title('單位脈衝響應');

grid on;

subplot(212);

plot(w/2/pi*fs,20*log10(abs(h)+eps));

title('幅頻特性');

xlabel('頻率(hz)');

grid on;

figure(2);

subplot(311);

plot(w/2/pi*fs,20*log10(abs(h)+eps));

title('幅頻特性');

grid on;

subplot(312);

plot(w/2/pi*fs,angle(h));

title('相頻特性');

grid on;

subplot(313);

plot(w/2/pi*fs,unwrap(angle(h)));

grid on;

title('相頻特性(解捲繞後)');

xlabel('頻率(hz)');

最後一張圖中,相頻特性進行了解捲繞(unwrap)。可以看出,相位確實是線性的。

摘自鄭君里《訊號與系統》。

數字濾波器 FIR和IIR

傳統的線性數字濾波器一般有兩種型別,有限衝激響應 fir 濾波器和無限衝激響應 iir 濾波器。fir數字濾波器只用當前和過去的輸入樣點值來得到當前的輸出樣點值,過去的輸出樣點值乙個也未用到。給定乙個有限持續時間的非0輸入值,fir濾波器給出乙個有限持續時間的非0輸出值。給定乙個全為0的輸入,fir...

濾波器設計(1) 經典IIR數字濾波器的設計

經典iir infiniti impulse response 數字濾波器,雖然我在 訊號與系統 和 數字訊號處理 裡學過,但現在已經忘得差不多了。翻翻書,還是能回憶起來。好像有butterworth濾波器,chebyshevi型 ii型濾波器 橢圓濾波器,等等。根據通帶特性,分為低通 高通 帶通 ...

FIR濾波器設計

fir濾波器的優越性 相位對應為嚴格的線性,不存在延遲失真,僅僅有固定的時間延遲 因為不存在穩定性問題,設計相對簡單 僅僅包括實數演算法,不涉及複數演算法,不須要遞推運算,長度為m,階數為m 1,計算值約為m 2。關於fir濾波器的幅頻特性和相頻特性。在人們不關心相位時,能夠讓幅頻特性常為正,原來為...