文章目錄
- 前言
- 一、濾波器設計要求
- 1.選頻濾波器種類
- 2.通帶、阻帶、過度帶
- 3.濾波器設計指標
- 二、IIR濾波器的設計過程
- 1.設計方法
- 2.常見的模擬濾波器設計
- 1)巴特沃斯濾波器(Butterworth Filter)
- 2)切比雪夫濾波器(Chebyshev Filter)
- 3)橢圓濾波器(Elliptic Filter)
- 3.三種濾波器設計對比
- 三、matlab代碼
- 1.巴特沃斯濾波器(Butterworth Filter)
- 2.切比雪夫濾波器(Chebyshev Filter)
- 3.橢圓濾波器(Elliptic Filter)
- 總結
前言
本章內容會先介紹濾波器的指標。設計一個IIR濾波器需要考慮到它的通帶、阻帶和過渡帶,以及它的應用場景。隨后再介紹設計IIR濾波器的方法和流程。
其中在設計數字濾波器時,需要考慮它的通帶截止頻率和阻帶截止頻率。而數字濾波器的設計方法時是依靠逼近模擬濾波器的方式實現,所以本文中會介紹三種常見的模擬濾波器,通過這三種模擬濾波器可以設計出在計算機中應用的數字濾波器。
|版本聲明:山河君,未經博主允許,禁止轉載
一、濾波器設計要求
1.選頻濾波器種類
在音頻進階學習十四——濾波器的種類和實現方式總已經對于濾波器的種類做了介紹,這里復習一下:
選頻濾波器種類 | 原理 | 作用 |
---|---|---|
低通濾波器(Low-Pass Filter, LPF) | 允許低頻信號通過,阻止高頻信號 | 如從含噪聲的信號中去除高頻噪聲 |
高通濾波器(High-Pass Filter, HPF) | 允許高頻信號通過,阻止低頻信號 | 如去除信號中的低頻干擾,如電力線噪聲 |
帶通濾波器(Band-Pass Filter, BPF) | 允許某一頻段范圍內的信號通過,抑制其他頻段的信號 | 如在通信系統中提取特定頻段的信號 |
帶阻濾波器(Band-Stop Filter, BSF) | 阻止某一頻段的信號通過,而允許其他頻段信號通過 | 如去除50 Hz或60 Hz的電源噪聲 |
全通濾波器(All-Pass Filter) | 允許所有頻率的信號通過,但會改變它們的相位而不是幅度 | 主要用于調整信號的相位響應 |
對于這幾種濾波器可以以下圖表示出來,其中左邊高的地方允許頻率通過,而右邊方框內的是允許頻率通過,其中兩個紅線以內的是一個周期內部的表現。
對于理想濾波器而言,系統的沖激響應應該是非因果和無限長的,而這種基本上是不可實現的,所以在數字濾波器中,是允許幅度響應存在一定范圍內的誤差,并且存在過度使得幅度響應變化更平滑。
2.通帶、阻帶、過度帶
我們知道濾波器是一個系統,而濾波器作用的本質就是通過其沖激響應函數對輸入信號進行卷積,從而得到輸出信號。上文中對于幅度響應的誤差的表述,在濾波器的頻率響應中使用通帶、阻帶和過渡帶來表征,它們幫助定義濾波器如何處理信號的不同頻率成分。
結合圖像表示
- 通帶
- 定義:通帶是指濾波器允許信號通過的頻率范圍。在這個頻率范圍內,信號幾乎沒有衰減,或者衰減非常小。
- δ p \delta_p δp?是通帶峰波紋值, ω p \omega_p ωp?是通帶截止頻率
- 特征:在通帶內,信號的幅度幾乎保持不變。對于低通濾波器,通帶是低頻范圍;對于高通濾波器,通帶是高頻范圍;對于帶通濾波器,通帶是位于兩個截止頻率之間的頻率范圍。
- 過度帶
- 定義:過渡帶是指從通帶到阻帶的過渡區域,也就是說,是濾波器頻率響應發生明顯變化的區域。例如上圖中 [ δ s , δ p ] [\delta_s,\delta_p] [δs?,δp?]之間。
- 特征:過渡帶的寬度決定了濾波器的頻率響應變化的速率。過渡帶越寬,濾波器的設計越簡單;過渡帶越窄,濾波器的設計越復雜。
- 阻帶
- 定義:阻帶是指濾波器顯著衰減或完全阻止信號通過的頻率范圍。在這個范圍內,信號的幅度衰減很大。例如上圖中的 [ 0 , δ s ] [0,\delta_s] [0,δs?]區間內。
- δ s \delta_s δs?是阻帶峰波紋值, ω s \omega_s ωs?是阻帶截止頻率
- 特征:在阻帶內,信號的幅度幾乎被完全抑制。對于低通濾波器,阻帶是高頻范圍;對于高通濾波器,阻帶是低頻范圍;對于帶通濾波器,阻帶是位于兩個截止頻率外的頻率范圍。
值得注意的是: ω \omega ω是 Ω \Omega Ω的歸一化處理,即 ω = 2 π f Ω \omega=\frac{2\pi f}{\Omega} ω=Ω2πf?,例如采樣率是 16 k H z 16kHz 16kHz,截止頻率是 500 H z 500Hz 500Hz,那么 ω p = 2 π 5 × 1 0 2 16 × 1 0 3 = 0.0625 π \omega_p=\frac{2\pi 5\times 10^2}{16\times 10^3}=0.0625\pi ωp?=16×1032π5×102?=0.0625π
3.濾波器設計指標
濾波器設計的主要目標是使其滿足特定的性能要求,不同的應用場景和要求會導致不同的濾波器設計指標。常見的濾波器設計指標包括:
- 截止頻率
- 定義:濾波器區分通帶和阻帶的頻率點,通常稱為截止頻率。對于低通濾波器,截止頻率是信號通過的最高頻率;對于高通濾波器,則是信號通過的最低頻率;對于帶通和帶阻濾波器,則有兩個截止頻率。
- 要求:需要明確設定在哪個頻率處濾波器的行為發生顯著變化。
- 通帶
- 定義:濾波器允許信號通過的頻率范圍,在此范圍內信號不受衰減或損失,或者衰減非常小(通常小于某個特定的閾值)。
- 指標:需要指定通帶的頻率范圍和最大允許的衰減(通常稱為通帶波動或通帶增益)。
- 阻帶
- 定義:濾波器抑制信號的頻率范圍,在此范圍內信號的幅度應該被顯著減少或完全抑制。
- 指標:需要指定阻帶的頻率范圍和最小的衰減量(通常稱為阻帶衰減)。
- 過渡帶
- 定義:從通帶到阻帶的過渡區域,表示頻率響應從允許信號通過到完全衰減的區域。過渡帶越窄,濾波器的設計越復雜。
- 要求:設計時需要控制過渡帶的寬度,過渡帶的寬度與濾波器的階數密切相關,階數越高,過渡帶越窄。
- 衰減量
- 定義:濾波器在阻帶內的信號衰減量,通常用分貝 (dB) 來表示。較高的衰減值表示濾波器能夠更好地抑制不需要的頻率。
- 指標:需要指定阻帶的最小衰減量,通常需要大于某個值(例如40 dB、60 dB等),計算方式為 d b = 20 log ? 10 ∣ H ( e j ω ) ∣ db=20\log_{10}|H(e^{j\omega})| db=20log10?∣H(ejω)∣。
- 通帶波動
- 定義:濾波器在通帶內的頻率響應波動,表示在通帶范圍內的增益變化。
- 指標:指定通帶波動的最大值,通常以dB為單位。較小的通帶波動意味著濾波器在通帶內更加平坦,信號失真較小。
- 群延遲
- 要求:群延遲表示信號的各個頻率成分在通過濾波器時的延遲差異。理想情況下,濾波器應該具有恒定的群延遲,以避免信號的相位失真。
- 群延遲應盡可能平坦,以減少信號的相位失真。
- 濾波器階數
- 要求:濾波器的階數通常與其復雜度和過渡帶的寬度成正比。階數越高,濾波器的設計越復雜,過渡帶越窄,性能越好,但計算量也增加。
- 通過選擇適當的階數來平衡性能和計算復雜度。
二、IIR濾波器的設計過程
1.設計方法
在之前的文章音頻進階學習十四——濾波器的種類和實現方式總中,我們介紹過FIR濾波器和IIR濾波器的區別,IIR的存在反饋機制而FIR不存在反饋機制,因此IIR的表述方式是差分方程而FIR的表述方式是卷積和,這也就意味著IIR在設計時需要考慮極點在單位圓上(FIR不存在極點)才能保證系統穩定。
設計IIR濾波器的設計方法通常是由模擬濾波器設計的結果進行轉換,過程如下圖
而通過模擬濾波器來轉換數字濾波器的原因有:
- 直接設計數字濾波器需要考慮采樣頻率、量化誤差、穩定性、失真度、復雜性等等因素
- 模擬逼近技術可以保證精度更準確,更平滑,且有大量成熟的圖表
- 從模擬濾波器的 s s s域(拉普拉斯變換用于分析連續時間復平面)轉為數字濾波器中的 z z z域方法成熟且穩定
- s s s域的虛軸 j Ω j\Omega jΩ能夠映射到 z z z平面的單位圓上
- 穩定的模擬傳遞函數可以變成穩定的數字傳遞函數
值得注意的是:這種模擬濾波器轉換方法不保證相位特性(FIR濾波器通常追求線性相位)。
2.常見的模擬濾波器設計
1)巴特沃斯濾波器(Butterworth Filter)
巴特沃斯濾波器是一種具有最大平坦頻率響應的濾波器設計。巴特沃斯逼近技術通過最大化通帶內頻率響應的平坦性來設計濾波器,其特點是:
- 濾波器的通帶沒有波紋(響應非常平坦)。
- 頻率響應的衰減速度相對較慢。
它幅頻響應表示為:
∣ H a ( j Ω ) ∣ 2 = 1 1 + ( Ω Ω c ) 2 N |H_a(j\Omega)|^2=\frac{1}{1+(\frac{\Omega}{\Omega_c})^{2N}} ∣Ha?(jΩ)∣2=1+(Ωc?Ω?)2N1?
- ∣ H a ( j Ω ) ∣ 2 |H_a(j\Omega)|^2 ∣Ha?(jΩ)∣2:濾波器的幅頻響應
- Ω \Omega Ω:頻率分量
- Ω c \Omega_c Ωc?:截止頻率
- N N N:濾波器階數
使用matlab(代碼見下文)畫出來對于不同的濾波器階數 2 , 4 , 6 , 8 2,4,6,8 2,4,6,8為:
2)切比雪夫濾波器(Chebyshev Filter)
切比雪夫逼近設計技術采用的是最小誤差逼近的方法,這種方法允許濾波器在通帶和阻帶之間引入波紋,但是通過優化波紋的分布,使得總體的誤差最小。切比雪夫濾波器分為兩種:
- 切比雪夫 I 型:在通帶內有波紋,而在阻帶內具有較快的衰減。
- 切比雪夫 II 型:在阻帶內有波紋,而在通帶內具有較快的衰減。
切比雪夫逼近技術通常用于對快速衰減有較高要求,但可以容忍通帶波紋的場景。
它幅頻響應表示為:
∣ H a ( j Ω ) ∣ 2 = 1 1 + ε 2 C N 2 ( Ω Ω c ) |H_a(j\Omega)|^2=\frac{1}{1+\varepsilon^2C_N^2(\frac{\Omega}{\Omega_c})} ∣Ha?(jΩ)∣2=1+ε2CN2?(Ωc?Ω?)1?
- ∣ H a ( j Ω ) ∣ 2 |H_a(j\Omega)|^2 ∣Ha?(jΩ)∣2:濾波器的幅頻響應
- Ω \Omega Ω:頻率分量
- Ω c \Omega_c Ωc?:截止頻率
- N N N:濾波器階數
- C N C_N CN?:N階切比雪夫多項式。這個常數影響濾波器的頻率響應特性。
- ε \varepsilon ε:波紋系數。它決定了濾波器的頻率響應的形狀,尤其是在過渡帶的寬度。
3)橢圓濾波器(Elliptic Filter)
橢圓逼近技術允許在通帶和阻帶之間同時引入波紋,這樣可以進一步優化濾波器的性能,使得通帶和阻帶之間的過渡更快。橢圓濾波器的設計可以達到最佳的頻率選擇性,但也會有較大的波紋。
它幅頻響應表示為:
∣ H a ( j Ω ) ∣ 2 = 1 1 + ε 2 J N 2 ( Ω Ω c ) |H_a(j\Omega)|^2=\frac{1}{1+\varepsilon^2J_N^2(\frac{\Omega}{\Omega_c})} ∣Ha?(jΩ)∣2=1+ε2JN2?(Ωc?Ω?)1?
- ∣ H a ( j Ω ) ∣ 2 |H_a(j\Omega)|^2 ∣Ha?(jΩ)∣2:濾波器的幅頻響應
- Ω \Omega Ω:頻率分量
- Ω c \Omega_c Ωc?:截止頻率
- N N N:濾波器階數
- J N J_N JN?:這是N階雅克比橢圓函數。這個常數影響濾波器的頻率響應特性。
- ε \varepsilon ε:波紋系數。它決定了濾波器的頻率響應的形狀,尤其是在過渡帶的寬度。
3.三種濾波器設計對比
濾波器類型 | 通帶特性 | 阻帶特性 | 過渡帶陡峭度 | 相位響應 |
---|---|---|---|---|
巴特沃斯 | 平滑無波紋 | 平滑無波紋 | 過渡帶較寬,較緩慢 | 相位線性,延遲小 |
切比雪夫 I | 有通帶波紋 | 阻帶單調衰減 | 過渡帶比巴特沃斯更陡 | 相位失真較大 |
切比雪夫 II | 通帶單調 | 阻帶有波紋 | 過渡帶比巴特沃斯更陡 | 相位失真較大 |
橢圓濾波器 | 通帶和阻帶都有波紋 | 過渡帶最陡峭 | 最短過渡帶 | 相位失真最大 |
三、matlab代碼
1.巴特沃斯濾波器(Butterworth Filter)
% 設定濾波器的截止頻率(以單位頻率表示,1為Nyquist頻率的一半)
cutoff_freq = 0.3;% 設定采樣頻率(假設采樣頻率為1)
sampling_freq = 1;% 定義濾波器的階數
orders = [2, 4, 6, 8];figure;
hold on;for i = 1:length(orders)% 設計巴特沃斯低通濾波器[b, a] = butter(orders(i), cutoff_freq);% 繪制頻率響應[h, f] = freqz(b, a, 512, sampling_freq);plot(f, abs(h), 'DisplayName', ['Order ' num2str(orders(i))]);
endlegend show;
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Butterworth Filter Frequency Response (Different Orders)');
grid on;
hold off;
2.切比雪夫濾波器(Chebyshev Filter)
% 設置濾波器的截止頻率
cutoff_freq = 0.3; % 截止頻率,歸一化到Nyquist頻率% 設置濾波器的階數
orders = [2, 4, 6, 8];% 設置切比雪夫濾波器的波紋大小
ripple_cheby1 = 1; % 以dB為單位,通帶波紋大小
ripple_cheby2 = 20; % 以dB為單位,II型濾波器的阻帶波紋大小,較小的波紋使阻帶更低figure;
hold on;
for i = 1:length(orders)% 設計切比雪夫I型低通濾波器[b1, a1] = cheby1(orders(i), ripple_cheby1, cutoff_freq);[h1, f] = freqz(b1, a1, 512, 1);plot(f, abs(h1), 'DisplayName', ['Chebyshev I - Order ' num2str(orders(i))]);
endlegend show;
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Chebyshev I Filter Frequency Response (Different Orders)');
grid on;
hold off;figure;
hold on;
for i = 1:length(orders)% 設計切比雪夫II型低通濾波器[b2, a2] = cheby2(orders(i), ripple_cheby2, cutoff_freq);[h2, f] = freqz(b2, a2, 512, 1);plot(f, abs(h2), '--', 'DisplayName', ['Chebyshev II - Order ' num2str(orders(i))]);
endlegend show;
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Chebyshev II Filter Frequency Response (Different Orders)');
grid on;
hold off;
3.橢圓濾波器(Elliptic Filter)
% 設置濾波器的截止頻率
cutoff_freq = 0.3; % 截止頻率,歸一化到Nyquist頻率% 設置濾波器的階數和波紋大小
orders = [2, 4, 6, 8]; % 不同階數
ripple_pass = 1; % 通帶波紋大小(dB)
ripple_stop = 30; % 阻帶波紋大小(dB)% 創建一個圖形窗口
figure;
hold on;% 繪制不同階數的橢圓濾波器頻率響應
for i = 1:length(orders)% 設計橢圓濾波器[b, a] = ellip(orders(i), ripple_pass, ripple_stop, cutoff_freq);% 計算頻率響應[h, f] = freqz(b, a, 512, 1);% 繪制頻率響應plot(f, abs(h), 'DisplayName', ['Order ' num2str(orders(i))]);
end% 添加圖例、標簽和標題
legend show;
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Elliptic Filter Frequency Response (Different Orders)');
grid on;
hold off;
總結
本文中給出了濾波器設計時的指標,并且根據逼近模擬濾波器的方法設計數字濾波器的過程。其中通過模擬濾波器傳遞函數轉換為數字濾波器的傳遞函數有兩種方法:沖激響應不變法、雙線性交換法。這兩種方法各有優缺點和應用場景。
在文章最后,給出了常見的三種模擬濾波器以及通過matlab畫出的幅頻響應,那么下一章中,將使用巴特沃斯濾波器通過沖激響應不變法設計出一個低通濾波器。
反正收藏也不會看,不如點個贊吧!