一、巴特沃斯濾波器設計原理
巴特沃斯濾波器是以英國數學家巴特沃斯(Chebyshev)的名字命名的一種濾波器,它是一種無限衝激響應(IIR)濾波器,可以用於實現各種濾波器類型,如低通、高通、帶通、帶阻等,同時滿足指定的通帶和阻帶參數。
巴特沃斯濾波器採用極點零點法(pole-zero method)實現,它的特點是阻帶衰減速度最快,但通帶波動比其他濾波器更大。因此,它通常用於需要極端的阻帶性能要求,如無線電通信系統。
二、巴特沃斯iir低通濾波器設計
下面是使用MATLAB設計一個巴特沃斯IIR低通濾波器的示例代碼:
% 設計巴特沃斯IIR低通濾波器
fPass = 1000; % 通帶截止頻率
fStop = 2000; % 阻帶截止頻率
Apass = 0.5; % 通帶最大衰減量(dB)
Astop = 30; % 阻帶最小衰減量(dB)
% 計算歸一化截止頻率
wPass = 2*pi*fPass/Fs;
wStop = 2*pi*fStop/Fs;
% 計算通帶最大衰減量和阻帶最小衰減量的線性比例
k = 10^(-Astop/20);
% 計算巴特沃斯濾波器的階數n
n = ceil(acosh(sqrt((k^2-1)/(wStop/wPass)^2))/acosh(wStop/wPass));
% 計算標準巴特沃斯極點的位置
if mod(n,2) == 1 % 奇數階濾波器
poles = -1./sin((2*(1:n)-1)*pi/(2*n))*sinh(asinh(1/k)/n);
else % 偶數階濾波器
poles = [ -1./sin((2*(1:n)-1)*pi/(2*n))*sinh(asinh(1/k)/n), -sinh(asinh(1/k)/(2*n)) ];
end
% 將標準極點放置在截止頻率處,並計算對應的極點角度
poles = wPass*poles;
zeros = [];
% 將IIR濾波器轉化為差分方程形式
[b,a] = zp2tf(zeros,poles,k^(-1/n));
% 輸出濾波器係數
fprintf('IIR濾波器係數:\n');
disp(a);
disp(b);
三、巴特沃斯濾波器設計實驗總結
在本實驗中,我主要學習了巴特沃斯濾波器的設計原理和 MATLAB 的相應函數,掌握了巴特沃斯濾波器的設計流程和步驟,實現了巴特沃斯IIR低通濾波器和FIR低通濾波器,並對兩種濾波器的性能和效果進行了比較。
通過本實驗,我深入了解了巴特沃斯濾波器的優缺點和應用範圍,掌握了如何根據指定的通帶和阻帶參數設計巴特沃斯濾波器的階數和係數,並對 MATLAB 的相應函數有了更深入的理解。這對我今後的學習和研究都有重要的意義。
四、巴特沃斯濾波器設計FIR濾波器
下面是使用MATLAB設計一個巴特沃斯FIR低通濾波器的示例代碼:
% 設計巴特沃斯FIR低通濾波器
fPass = 1000; % 通帶截止頻率
fStop = 2000; % 阻帶截止頻率
Apass = 0.5; % 通帶最大衰減量(dB)
Astop = 30; % 阻帶最小衰減量(dB)
deviation = (10^(Astop/20)-1)/(10^(Astop/20)+1);
% 計算歸一化截止頻率
wPass = 2*pi*fPass/Fs;
wStop = 2*pi*fStop/Fs;
% 計算濾波器的通帶、阻帶帶寬和衰減因子
wp = wPass;
ws = wStop;
D1 = (1/deviation^2-1)/(wp^2)-1;
D2 = (1/deviation^2-1)/(ws^2)-1;
% 計算N,即濾波器的階數
N = ceil(log(sqrt(D2/D1))/log(ws/wp)/(2*pi/Fs));
% 計算kaiser窗口的參數beta
if Astop >= 50
beta = 0.1102*(Astop-8.7);
elseif 21 <= Astop && Astop < 50
beta = 0.5842*(Astop-21)^0.4 + 0.07886*(Astop-21);
else
beta = 0.0;
end
% 計算kaiser窗口
w = kaiser(N+1,beta);
% 計算巴特沃斯濾波器的理想頻率響應h
h_ideal = zeros(N+1,1);
for m = 0:N
if m ~= N/2
h_ideal(m+1) = (sin(wp*(m-N/2))/(pi*(m-N/2)))*(w(m+1)/w(N/2+1));
else
h_ideal(m+1) = wp/pi*(w(m+1)/w(N/2+1));
end
end
% 計算實際頻率響應
[h,omega] = freqz(h_ideal,1,1024,Fs);
mag = abs(h);
mag = mag/max(mag);
theta = angle(h);
% 輸出濾波器係數
h_fir = h_ideal';
fprintf('FIR濾波器係數:\n');
disp(h_fir);
五、巴特沃斯濾波器設計流程
巴特沃斯濾波器的設計流程如下:
1. 確定濾波器類型和截止頻率
根據應用需求和信號特點,確定需要實現的濾波器類型和截止頻率。
2. 確定通帶最大衰減量和阻帶最小衰減量
根據指定的濾波器類型和截止頻率,計算出通帶最大衰減量和阻帶最小衰減量。
3. 計算歸一化截止頻率
將實際截止頻率歸一化為單位圓上的頻率。
4. 計算通帶最大衰減量和阻帶最小衰減量的線性比例
將通帶最大衰減量和阻帶最小衰減量轉化為線性比例形式,用於計算濾波器的階數。
5. 計算濾波器的階數n
根據指定的通帶最大衰減量和阻帶最小衰減量的線性比例,計算巴特沃斯濾波器的階數。
6. 計算標準巴特沃斯極點的位置
使用標準巴特沃斯濾波器的極點位置公式,計算出標準巴特沃斯極點的位置。
7. 將標準極點放置在截止頻率處
將標準極點的位置放置在實際的截止頻率處,並計算對應的極點角度。
8. 將IIR濾波器轉化為差分方程形式
使用零極點法將IIR濾波器轉化為差分方程形式。
9. 計算濾波器係數
根據轉化後的差分方程,計算出濾波器的係數。
六、巴特沃斯濾波器設計結構圖
下圖是一個二階巴特沃斯低通濾波器的結構圖:
七、巴特沃斯濾波器設計步驟
巴特沃斯濾波器的設計步驟可以概括為以下幾個:
1. 確定濾波器類型和截止頻率
根據應用需求和信號特點,確定需要實現的濾波器類型和截止頻率。
2. 確定通帶最大衰減量和阻帶最小衰減量
根據指定的濾波器類型和截止頻率,計算出通帶最大衰減量和阻帶最小衰減量。
3. 計算歸一化截止頻率
將實際截止頻率歸一化為單位圓上的頻率。
4. 計算通帶最大衰減量和阻帶最小衰減量的線性比例
將通帶最大衰減量和阻帶最小衰減量轉化為線性比例形式,用於計算濾波器的階數。
5. 計算濾波器的階數n
根據指定的通帶最大衰減量和阻帶最小衰減量的線性比例,計算巴特沃斯濾波器的階數。
6. 計算標準巴特沃斯極點的位置
使用標準巴特沃斯濾波器的極點位置公式,計算出標準巴特沃斯極點的位置。
7. 將標準極點放置在截止頻率處
將標準極點的位置放置在實際的截止頻率處,並計算對應的極點角度。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284799.html