分析matlab设计一巴特沃斯带通滤波器,其3dB边界频率分别为f2=110kHz和f1=90kHz,在阻带f3 = 120kHz处的最小衰减大于10dB,采样频率fs=400kHz。
时间: 2024-06-03 12:13:21 浏览: 85
首先,需要确定巴特沃斯滤波器的阶数,根据经验公式:
$$
N=\frac{\log(\frac{10^{0.1A_p}-1}{10^{0.1A_s}-1})}{2\log(\frac{\omega_p}{\omega_s})}
$$
其中,$A_p$为通带最大衰减,$A_s$为阻带最小衰减,$\omega_p$和$\omega_s$分别为通带和阻带的归一化角频率。
在本题中,$A_p=0$(意味着通带没有衰减),$A_s=10$,$\omega_p=\frac{2\pi f_2}{f_s}=0.55\pi$,$\omega_s=\frac{2\pi f_3}{f_s}=0.6\pi$,代入公式得到:
$$
N=\frac{\log(\frac{10^{1}-1}{10^{0.1\times10}-1})}{2\log(\frac{0.55\pi}{0.6\pi})}=3
$$
因此,设计的巴特沃斯带通滤波器为三阶滤波器。
接下来,需要确定滤波器的零极点位置。巴特沃斯滤波器的极点位置可以通过以下公式计算:
$$
s_k=\omega_c\exp(j(\frac{2k+n-1}{2n}\pi)),k=1,2,...,n
$$
其中,$n$为滤波器的阶数,$\omega_c$为通带中心频率的归一化角频率,$s_k$为第$k$个极点的位置。
在本题中,$\omega_c=\frac{\omega_1+\omega_2}{2}=0.575\pi$,代入公式得到:
$$
s_1=0.943-j0.332,s_2=0.943+j0.332,s_3=-0.866+j0.5
$$
通过零极点对称性,带通滤波器的零点位置可以表示为:
$$
z_k=-s_k^*,k=1,2,...,n
$$
其中,$s_k^*$表示$s_k$的共轭复数。
因此,滤波器的零极点位置为:
$$
p_1=0.943+j0.332,p_2=0.943-j0.332,p_3=-0.866-j0.5
$$
$$
z_1=0.943-j0.332,z_2=0.943+j0.332,z_3=-0.866+j0.5
$$
最后,可以通过这些零极点位置,以及巴特沃斯滤波器的基本公式:
$$
H(s)=\frac{K}{\prod_{i=1}^n(s-s_i)\prod_{j=1}^n(s-z_j)}
$$
其中,$K$为归一化系数,$n$为滤波器的阶数,$s_i$和$z_j$分别为极点和零点的位置,求出滤波器的传输函数$H(s)$。
将$s$替换为$z$得到离散时域的传输函数:
$$
H(z)=\frac{K}{\prod_{i=1}^n(z-\frac{s_i+1}{s_i-1})\prod_{j=1}^n(z-\frac{z_j+1}{z_j-1})}
$$
其中,$s_i$和$z_j$为极点和零点的位置,$n$为滤波器的阶数。
在本题中,$n=3$,$s_1=0.943-j0.332$,$s_2=0.943+j0.332$,$s_3=-0.866+j0.5$,$z_1=0.943-j0.332$,$z_2=0.943+j0.332$,$z_3=-0.866+j0.5$,$K=0.5$(因为这是一个三阶滤波器)。
代入公式得到:
$$
H(z)=\frac{0.5}{(z-0.765-j0.643)(z-0.765+j0.643)(z-0.372-j0.929)(z-0.372+j0.929)(z+0.732-j0.482)(z+0.732+j0.482)}
$$
因此,这个巴特沃斯带通滤波器的传输函数为:
$$
H(z)=\frac{0.5}{(z^2-1.53z+1.18)(z^2-1.53z+1.18)(z^2+1.464z+0.743)}
$$
注意:以上步骤均可通过matlab中的butter函数自动实现,只需输入滤波器的阶数、通带和阻带的边界频率、采样频率等参数即可。
阅读全文