濾波器設計(2):經典FIR數字濾波器的設計
阿新 • • 發佈:2019-01-25
引言
以前有一篇IIR濾波器設計的文章。與IIR相對應,這篇文章主要講FIR濾波器的設計。
以下一段摘自百度百科。
FIR(Finite Impulse Response)濾波器:有限長單位衝激響應濾波器,又稱為非遞迴型濾波器,是數字訊號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,FIR濾波器在通訊、影象處理、模式識別等領域都有著廣泛的應用。
FIR濾波器的優點,一定是穩定的(極點都在0的位置),可以做到線性相位,而IIR的相位是非線性的(摘自鄭君裡《訊號與系統》)。
按奇偶節數、奇偶對稱,把實h(n)的FIR分為四類。
從Hg(w)可以看出,有些就不能做低通,有些就不能做高通,等。
其他詳細內容,可自行查閱資料。
窗函式法
FIR濾波器設計方法“據說”有很多種。本科上課的時候,就教過一種,窗函式法。大致意思就是,要設計什麼,就用那種對應的理想濾波器去乘以一個窗函式。假設要設計一個LPF。理想LPF最好理解。但由於xxxx原因,不能物理實現。上海交大(SJTU)某一年考研題目問的就是“為什麼理想LPF物理不可實現”,以及什麼是Gibbs(吉布斯)現象。理想LPF的單位脈衝相應h(n)是無限長的,實際中不可能做到無限長的,所以希望用有限長的h1(n)去逼近h(n),實現最小均方誤差意義下的最優。有人證明了,把理想的h(n)截斷,就可以得到最小均方誤差意義下的最優。截斷的意思就是,加矩形窗w(n)。時域相乘,頻域就是拿著H(jw)和窗函式的W(jw)卷積。後來在有些場合下,發現矩形窗不能滿足需求,於是有了三角窗、Hanning窗、Hamming窗、Blackman窗、Kaiser窗等。一個理解就是拿主瓣寬度和旁瓣衰減互換。魚和熊掌不可兼得。e.g. 矩形窗,主瓣窄,旁瓣大,過渡帶頻寬寬,旁瓣衰減不夠大。總之,需要根據需求,選擇窗函式。設計步驟
窗函式
設計例項
%% 內容:設計FIR濾波器 % 作者:qcy % 版本:v1.0 % 時間:2016年10月27日22:34:24 clear; close all; clc %% Fs = 8000; % 取樣率 fp = 1000; % Hz 通帶截止頻率 起伏小於xxx dB fs = 1500; % Hz 阻帶截止頻率 衰減大於xxx dB wp = 2*pi * fp / Fs; % 對應的數字角頻率 ws = 2*pi * fs / Fs; % xxx 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)。可以看出,相位確實是線性的。