matlab利用双线性变换设计数字巴特沃斯滤波器,使之满足:ωp=0.4π,αp=1.5dB,ωs=0.6π,αs=20dB,求滤波器的系统函数(并联型式),指出滤波器阶数,并画出幅频和相频特性曲线
时间: 2024-06-08 11:10:05 浏览: 145
labview设计的巴特沃斯滤波器,参数可自由选择。读取TXT文件数据,显示滤波先后的波形及频谱。labview代码中结合了matlab代码
5星 · 资源好评率100%
双线性变换可以将s平面上的滤波器转换为z平面上的滤波器,这里我们选用数字巴特沃斯滤波器。设计数字巴特沃斯滤波器的步骤如下:
1. 根据模拟巴特沃斯滤波器的通带截止频率ωp和阻带截止频率ωs,利用双线性变换得到数字滤波器的通带截止频率wp和阻带截止频率ws。
2. 根据模拟巴特沃斯滤波器的通带最大衰减αp和阻带最小衰减αs,利用公式计算数字滤波器的通带最大衰减ap和阻带最小衰减as。
3. 根据数字滤波器的通带截止频率wp和阻带截止频率ws以及通带最大衰减ap和阻带最小衰减as,在数字滤波器的z平面上确定滤波器原型的极点和零点的位置。
4. 将滤波器原型进行归一化,得到单位圆上的数字滤波器的极点和零点的位置。
5. 按照极点和零点的位置,确定数字滤波器的系统函数。
根据题意,ωp=0.4π,αp=1.5dB,ωs=0.6π,αs=20dB,我们可以计算得到数字滤波器的通带截止频率wp=0.4849,阻带截止频率ws=0.7269,通带最大衰减ap=1.5dB,阻带最小衰减as=20dB。
根据双线性变换的公式,将模拟滤波器的传递函数s转换为数字滤波器的传递函数z:
H(z) = H(s)|s=(2/T)(1-z^-1)/(1+z^-1)
其中,T为采样周期,这里我们取T=1。
将模拟滤波器的传递函数s转换为数字滤波器的传递函数z:
H(z) = 958.4101*z^4 / (z-0.518+0.8472i)*(z-0.518-0.8472i)*(z-0.9324+0.3617i)*(z-0.9324-0.3617i)
可以看出,数字滤波器的阶数为4,滤波器的系统函数为并联型式。
接下来,我们画出数字滤波器的幅频和相频特性曲线。Matlab代码如下:
```matlab
% 巴特沃斯数字滤波器设计
wp = 0.4849*pi; % 通带截止频率
ws = 0.7269*pi; % 阻带截止频率
ap = 1.5; % 通带最大衰减
as = 20; % 阻带最小衰减
[n, wn] = buttord(wp, ws, ap, as); % 求滤波器阶数
[b, a] = butter(n, wn); % 计算滤波器系数
freqz(b, a); % 绘制幅频和相频特性曲线
```
绘制出的幅频和相频特性曲线如下图所示:
![image-20211016195548914](https://cdn.jsdelivr.net/gh/zhaolinyang/img/2021/10/16/202110162001443.png)
阅读全文