巴特沃斯高通濾波器

一、巴特沃斯高通濾波器簡介

巴特沃斯高通濾波器是數字信號處理中常用的一種濾波器。它是一類遞歸濾波器,採用了完整的極點零點布局。

這種濾波器對於頻率大於一定值的信號,會進行濾波並將它們傳遞出去。如果信號的頻率小於該值,則信號將被過濾掉。由於其在頻域中具有平坦的特性,所以在設計帶通、帶阻濾波器時很有用。

巴特沃斯高通濾波器最大的特點是其在截止頻率附近的幅值響應是非常陡峭的。但是,由於它是遞歸濾波器,所以在實現時需要注意其時間和空間複雜度。

二、巴特沃斯高通濾波器優缺點

優點:

  • 巴特沃斯高通濾波器對於信號頻率大於一定值的信號,具有非常好的響應特性。
  • 在設計帶通和帶阻濾波器時,巴特沃斯高通濾波器很好地發揮了自己的作用。

缺點:

  • 由於其是遞歸濾波器,所以實現時需要注意空間和時間複雜度。
  • 在截止頻率附近的幅度響應具有非常陡峭的特性,可能會導致一些相位失真的情況。

三、巴特沃斯低通濾波器

巴特沃斯濾波器具有非常好的通帶特性和截止頻率附近的幅度響應特性。因此,其在數字信號處理中有廣泛應用。其中,巴特沃斯低通濾波器也是比較常用的一種濾波器。

巴特沃斯低通濾波器的傳遞函數為:

      b0 + b1*z^-1 + b2*z^-2 + b3*z^-3 + b4*z^-4
H(z) = --------------------------------------------
      a0 + a1*z^-1 + a2*z^-2 + a3*z^-3 + a4*z^-4

其中,a和b分別為濾波器的係數。對於一階的巴特沃斯低通濾波器來說,其係數如下所示:

 b1 = b0 = (1 - cos(wc))/2
 b2 = 1 - cos(wc)
 b3 = (1 - cos(wc))/2
 a1 = -2*cos(wc)
 a2 = 2 - 2*cos(wc)

其中,wc為濾波器的截止頻率。在巴特沃斯濾波器中,為了使得濾波器系統具有理想的特性,一般都會採用一組歸一化的數字截止頻率。如果我們將數字截止頻率設為π,則可以得到:

 b1 = b0 = 0.2929
 b2 = 0.5858
 b3 = 0.2929
 a1 = -1.4142
 a2 = 0.5858

四、巴特沃斯高通濾波器python代碼

使用Python實現巴特沃斯高通濾波器的代碼如下:

import scipy.signal as signal

# 設計巴特沃斯高通濾波器
b, a = signal.butter(N, Wn, 'high')

# 使用巴特沃斯高通濾波器濾波
filtered_signal = signal.filtfilt(b, a, input_signal)

五、巴特沃斯高通濾波器傳遞函數

巴特沃斯高通濾波器的傳遞函數與巴特沃斯低通濾波器的傳遞函數類似。其傳遞函數為:

      b0*z^n + b1*z^(n-1) + ... + bn
H(z) = ------------------------------
      a0*z^n + a1*z^(n-1) + ... + an

其中,n為濾波器的階數,a和b為濾波器的係數。對於一階的巴特沃斯高通濾波器來說,其係數如下所示:

 b1 = -b0 = (1 + cos(wc))/2
 a1 = -2*cos(wc)

其中,wc為濾波器的截止頻率。如果我們將數字截止頻率設為π,則可以得到:

 b1 = -b0 = -0.2929
 a1 = -1.4142

六、四階巴特沃斯低通濾波器

四階的巴特沃斯低通濾波器與一階的類似,只是將一階的傳遞函數進行了平方。其傳遞函數為:

            b0^2*z^4 + b1^2*z^3 + b2^2*z^2 + b3^2*z + b4^2 
H(z) = -----------------------------------------------------------
        a0*z^4 + a1*z^3 + a2*z^2 + a3*z + a4

其係數如下所示:

 b0 = 0.0965
 b1 = 0.3857
 b2 = 0.5785
 b3 = 0.3857
 b4 = 0.0965
 a1 = -0.4684
 a2 = 1.4670
 a3 = -1.9319
 a4 = 1.1163

七、四階巴特沃斯濾波器

四階的巴特沃斯濾波器可以分為兩個一階的巴特沃斯濾波器的乘積。因此,其傳遞函數為兩個一階巴特沃斯濾波器的傳遞函數的乘積。

一個一階巴特沃斯濾波器的傳遞函數為:

        b1*z + b0
H1(z) = ----------
        a1*z + a0

其係數為:

 b1 = b0 = (1 - sin(wc))/(2*sqrt(cos(wc)))
 a1 = -cos(wc)
 a0 = 1 + a1

如果我們將數字截止頻率設為π,則可以得到:

 b1 = b0 = 0.7654
 a1 = -0.8478
 a0 = 1.5974

因此,四階巴特沃斯濾波器的傳遞函數為:

        b1^2*b2*z^4 + b0^2*b2*z^3 + b1^2*z^2 + 2*b0*b1*b2*z + b0^2*z^0
H4(z) = -----------------------------------------------------------------------
            a1^2*a2*z^4 + a0^2*a2*z^3 + a1^2*z^2 + 2*a0*a1*a2*z + a0^2*z^0

其係數如下所示:

 b0 = 0.5352
 b1 = 2.1408
 b2 = 3.2112
 a1 = -2.3845
 a2 = 0.8612
 a0 = 1.0000

八、巴特沃斯濾波器matlab代碼

使用MATLAB實現巴特沃斯高通濾波器的代碼如下:

% 設計巴特沃斯高通濾波器
[b, a] = butter(N, Wn, 'high');

% 使用巴特沃斯高通濾波器濾波
filtered_signal = filtfilt(b, a, input_signal);

九、巴特沃斯高通濾波器截止頻率

巴特沃斯高通濾波器的截止頻率是非常重要的參數。它決定了該濾波器在對輸入信號進行濾波時,需要濾掉哪些頻率的信號。

一般來說,巴特沃斯濾波器的截止頻率是歸一化的數字截止頻率,即截止頻率除以採樣頻率的一半。可以使用下面的公式將數字截止頻率轉化為實際截止頻率:

Wc = Wn/(Fs/2)

其中,Wn為數字截止頻率,Fs為採樣頻率。

十、巴特沃斯高通濾波器代碼

下面是一段Python代碼,用於實現巴特沃斯高通濾波器:

import scipy.signal as signal

# 設計巴特沃斯高通濾波器
N = 4                  # 濾波器階數
Wn = 0.5               # 歸一化數字截止頻率
b, a = signal.butter(N, Wn, 'high')

# 使用巴特沃斯高通濾波器濾波
filtered_signal = signal.filtfilt(b, a, input_signal)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300825.html

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

相關推薦

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

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

    編程 2025-01-02
  • Matlab Freqz – 詳解信號濾波器頻率響應

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

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

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

    編程 2024-12-24
  • 巴特沃斯濾波器設計

    一、巴特沃斯濾波器設計原理 巴特沃斯濾波器是以英國數學家巴特沃斯(Chebyshev)的名字命名的一種濾波器,它是一種無限衝激響應(IIR)濾波器,可以用於實現各種濾波器類型,如低…

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

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

    編程 2024-12-20
  • 高通Case詳解

    一、高通新窗口 對於高通的開發者來說,經常需要使用高通的新窗口功能,該功能可以讓開發者快速地將當前應用跳轉到一個新的窗口中,為開發提供了更多的靈活性。 代碼示例: Intent i…

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

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

    編程 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

發表回復

登錄後才能評論