經典iir(infiniti impulse response)數字濾波器,雖然我在《訊號與系統》和《數字訊號處理》裡學過,但現在已經忘得差不多了。翻翻書,還是能回憶起來。
好像有butterworth濾波器,chebyshevi型、ii型濾波器、橢圓濾波器,等等。根據通帶特性,分為低通、高通、帶通、帶阻、全通等。
設計方法,如果用手算的話,模擬的好像還要查表,數字的好像是先設計模擬的,再用脈衝響應不變法、雙線性變換法設計數字的。
整個設計的步驟大致如下。
1. 根據需求,提出所需濾波器的型別和相應的(模擬)指標;
2. 根據1的指標,轉換為數字指標;
3. 求濾波器的階數;
4. 求濾波器的係數;
5. 根據係數,檢驗其頻率響應是否滿足1的需求。如果滿足,結束;否則,重新設計。
下面給出lpf和hpf的例子。
%% 內容:我自己設計的lpf濾波器
% 版本:v1.0
%% 設計乙個數字低通濾波器 iir
% fp = 500 hz, fs = 750 hz, fs = 8000 hz, rp = 3 db, rs = 50 db
clear;
close all;
clc%% 0. 把所有模擬指標變換為數字指標
fp = 500; % hz
fs = 750;
fs = 8000;
fs2 = fs/2;
rp = 3;
rs = 50;
wp = fp/fs2; % 注意,這個是對(fs/2)歸一化的頻率!!! 量綱為[1]
ws = fs/fs2; % 注意,這個是歸一化頻率!!!
%% 1. butterworth --> 最平坦
% (1) 確定階數
[n,wn] = buttord(wp,ws,rp,rs); % wn 是對(fs/2)歸一化的頻率。 量綱為[1]
% (2) 確定係數
[b,a] = butter(n,wn);
% freqz(b,a,1e4);
[h,w] = freqz(b,a,1e4);
figure;
plot(w/2/pi*fs,20*log10(abs(h)+eps));
figure
zplane(b,a);
%% 2. chebyshev ii型 --> 阻帶等波紋
[n,wn] = cheb2ord(wp,ws,rp,rs);
[b,a] = cheby2(n,rs,wn);
[h,w] = freqz(b,a,1e4);
figure;
plot(w/2/pi*fs,20*log10(abs(h)+eps));
figure
zplane(b,a);
%% 3. chebyshev i型 --> 通帶等波紋
chebyshev i lpf --> 因為要設計低通,所以通帶等波紋的chebyshev ii型肯定是不行的。如下圖。
chebyshev ii lpf。阻帶等波紋還可以。
%% 內容:我自己設計的hpf濾波器
% 版本:v1.0
%% 設計乙個數字高通濾波器 iir
% fp = 200 hz, fs = 1000 hz, fs = 8000 hz, rp = 3 db, rs = 20 db
clear;
close all;
clc%% 0. 把所有模擬指標變換為數字指標
fp = 200; % hz
fs = 800;
fs = 8000;
fs2 = fs/2;
rp = 3;
rs = 20;
wp = fp/fs2; % 注意,這個是對(fs/2)歸一化的頻率!!! 量綱為[1]
ws = fs/fs2; % 注意,這個是歸一化頻率!!!
%% 1. butterworth --> 最平坦
% (1) 確定階數
[n,wn] = buttord(wp,ws,rp,rs); % wn 是對(fs/2)歸一化的頻率。 量綱為[1]
% (2) 確定係數
[b,a] = butter(n,wn,'high');
% freqz(b,a,1e4);
[h,w] = freqz(b,a,1e4);
figure(1);
plot(w/2/pi*fs,20*log10(abs(h)+eps));
%% 2. chebyshev ii型 --> 阻帶等波紋
[n,wn] = cheb2ord(wp,ws,rp,rs);
[b,a] = cheby2(n,rs,wn,'high');
[h,w] = freqz(b,a,1e4);
figure(2);
plot(w/2/pi*fs,20*log10(abs(h)+eps));
%% 3. chebyshev i型 --> 通帶等波紋
[n,wn] = cheb1ord(wp,ws,rp,rs);
[b,a] = cheby1(n,rs,wn,'high');
[h,w] = freqz(b,a,1e4);
figure(3);
plot(w/2/pi*fs,20*log10(abs(h)+eps));
chebyshev i lpf --> 因為要設計高通,所以阻帶等波紋的chebyshev i型是不行的。
阻帶等波紋,相當於是會有很多低頻也能通過hpf。明顯不能實現hpf的功能。
IIR數字濾波器設計
1 iir數字濾波器的差分方程和系統函式 iir數字濾波器是一類遞迴型的線性時不變因果系統,其差分方程可以寫為 y n i 0maix n i i 1nbiy n i y n i 0maix n i i 1nbiy n i 進行z變換,可得 y z i 0maiz ix z i 1nbiz iy z...
IIR數字濾波器實現
題目 16k取樣率音訊資料下取樣到 8k取樣率 求解方案分析 直接每隔乙個取乙個取樣值,這樣就可以得到 8k取樣率的資料。但是這樣明顯會有問題。按照取樣率變換理論,首先應該通過乙個低通濾波器,濾掉 pi 2,pi 這個區間上的頻率,以防止下取樣造成的頻率混疊。這個低通濾波器在很多書上都用 fir濾波...
數字濾波器 FIR和IIR
傳統的線性數字濾波器一般有兩種型別,有限衝激響應 fir 濾波器和無限衝激響應 iir 濾波器。fir數字濾波器只用當前和過去的輸入樣點值來得到當前的輸出樣點值,過去的輸出樣點值乙個也未用到。給定乙個有限持續時間的非0輸入值,fir濾波器給出乙個有限持續時間的非0輸出值。給定乙個全為0的輸入,fir...