巴特沃斯濾波器設計

一、巴特沃斯濾波器設計原理

巴特沃斯濾波器是以英國數學家巴特沃斯(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-hk/n/284799.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:42
下一篇 2024-12-22 15:42

相關推薦

  • 粒子濾波器:探究與實踐

    粒子濾波器(Particle filter)是一種基於蒙特卡羅方法的狀態估計算法,被廣泛應用於目標跟蹤、機械人定位和導航等領域。本文將從三個方面來詳細探討粒子濾波器的相關概念、實現…

    編程 2025-01-02
  • 巴特沃斯高通濾波器

    一、巴特沃斯高通濾波器簡介 巴特沃斯高通濾波器是數字信號處理中常用的一種濾波器。它是一類遞歸濾波器,採用了完整的極點零點布局。 這種濾波器對於頻率大於一定值的信號,會進行濾波並將它…

    編程 2024-12-29
  • Matlab Freqz – 詳解信號濾波器頻率響應

    一、介紹Matlab Freqz Matlab Freqz是Matlab Signal Processing Toolbox中用於分析信號濾波器頻率響應的函數之一。該函數是信號處理…

    編程 2024-12-26
  • 構建一個高效的巴特沃斯帶通濾波器方法

    一、掌握巴特沃斯帶通濾波器基本原理 巴特沃斯帶通濾波器是一種理想的濾波器,它可以使一定區間內的信號通過,而抑制其他信號。 在使用巴特沃斯帶通濾波器前,需要了解以下幾個概念: 1. …

    編程 2024-12-24
  • 巴特利特球形檢驗

    一、巴特利特球形檢驗目的 巴特利特球形檢驗(Bartlett’s test of sphericity)用於檢驗因子分析模型中因變量之間相關係數相等的假設,即球形假設,…

    編程 2024-12-20
  • 希爾伯特濾波器

    希爾伯特濾波器廣泛應用於信號分析,特別是在音頻處理和語言處理領域中。它通常用於提取信號中的基頻或共振頻率。希爾伯特濾波器是一種線性相位、非因果、無限長的頻域濾波器。在本文中,我們將…

    編程 2024-12-16
  • 了解高斯濾波器

    一、高斯濾波器基礎知識 def gaussian_filter(sigma, kernel_size): # 創建高斯核 kernel = np.zeros([kernel_siz…

    編程 2024-12-15
  • c語言一階濾波,C語言一階濾波器

    本文目錄一覽: 1、一階rc低通濾波器公式是什麼? 2、一階高通濾波器和三階高通濾波器有什麼區別 3、如何用C語言來實現數字濾波器? 4、關於一階低通濾波器和二階低通濾波器 5、一…

    編程 2024-12-12
  • 滑動窗口濾波c語言實現,滑動窗口濾波器

    本文目錄一覽: 1、 隨機噪聲的濾波 2、 實現方法 3、AvaReader如何採用濾波,過濾掉噪聲 4、平滑濾波的濾波方法 5、Gabor濾波器 6、plc模擬量輸入濾波程序和方…

    編程 2024-12-12
  • 雙邊濾波器

    一、基礎介紹 雙邊濾波器是一種局部濾波器,其能夠做到平滑圖像的同時保留圖像的邊緣信息,被廣泛用於圖像和視頻處理領域。其原理是基於圖像中像素點的相似度來確定權值,使得相似的像素點權值…

    編程 2024-12-01

發表回復

登錄後才能評論