(1)双线性变换法设计一个巴特沃斯,切比雪夫低通 IIR 数字滤波器。设计指标参数为:在频率低于 0.2 的通带内,幅度特性下降小于 1dB(2dB);在频率大于的0.3 阻带内,衰减大于 15dB(30 dB)。 (2)以 0.02 为采样间隔,打印出数字滤波器在频率区间[0,pi /2 ]上的幅频响应特性曲线。
时间: 2024-01-21 13:19:53 浏览: 195
IIR_双线数字滤波_双线性变换法_数字滤波器_IIR滤波器_IIR数字滤波器
(1)首先,根据设计指标参数,我们可以确定滤波器类型为低通滤波器,通带截止频率为 0.2π,阻带截止频率为 0.3π。接下来,我们可以按照以下步骤设计巴特沃斯,切比雪夫低通 IIR 数字滤波器。
1. 计算通带角频率和阻带角频率:
通带角频率:ωp = 0.2π
阻带角频率:ωs = 0.3π
2. 根据通带和阻带的角频率计算通带边缘频率和阻带边缘频率:
通带边缘频率:fp = tan(ωp/2) ≈ 0.0796
阻带边缘频率:fs = tan(ωs/2) ≈ 0.1197
3. 根据指标参数计算通带和阻带的最大衰减量:
通带最大衰减量:Ap = 1 dB
阻带最小衰减量:As = 15 dB
4. 根据最大衰减量和通带、阻带的边缘频率,选择合适的滤波器类型和阶数。这里我们选择切比雪夫滤波器,阶数为 4 阶。
5. 根据选择的滤波器类型和阶数,计算滤波器的截止频率和阻带衰减量。这里我们选择在通带内幅度下降小于 2dB,因此我们选择切比雪夫 Type II 滤波器。
根据切比雪夫 Type II 滤波器的设计公式,可得到巴特沃斯,切比雪夫低通 IIR 数字滤波器的传递函数为:
H(z) = K / (1 + ε1(z) + ε2(z) + ε3(z) + ε4(z))
其中,K 为归一化系数,εi(z) 为 i 阶切比雪夫多项式,i = 1,2,3,4。
根据切比雪夫多项式的计算公式,可得到 4 阶切比雪夫多项式为:
ε4(z) = z^4 + 0.8128z^3 + 1.3066z^2 + 0.8128z + 1
ε3(z) = z^3 + 1.9811z^2 + 1.3877z + 0.4281
ε2(z) = z^2 + 1.5979z + 0.9716
ε1(z) = z
将切比雪夫多项式代入传递函数中,可得到:
H(z) = K / (z^4 + 0.8128z^3 + 1.3066z^2 + 0.8128z + 1 + 1.9811z^2 + 1.3877z + 0.4281 + 1.5979z + 0.9716 + z)
化简后,可得到:
H(z) = K / (z^4 + 0.8128z^3 + 3.288z^2 + 3.288z + 1)
将通带截止频率 fp 和通带最大衰减量 Ap 代入切比雪夫滤波器设计公式,可计算出归一化系数 K 和切比雪夫参数 ε:
ε = √(10^(0.1Ap) - 1) / √(10^(0.1As) - 1) ≈ 0.6187
K = 1 / ε ≈ 1.6151
最终,巴特沃斯,切比雪夫低通 IIR 数字滤波器的传递函数为:
H(z) = 1.6151 / (z^4 + 0.8128z^3 + 3.288z^2 + 3.288z + 1)
(2)以 0.02π 为采样间隔,打印出数字滤波器在频率区间[0,pi /2 ]上的幅频响应特性曲线。
我们可以使用 MATLAB 中的 freqz 函数来计算数字滤波器的幅频响应:
```matlab
% 巴特沃斯,切比雪夫低通 IIR 数字滤波器设计
% 计算通带角频率和阻带角频率
wp = 0.2 * pi;
ws = 0.3 * pi;
% 计算通带边缘频率和阻带边缘频率
fp = tan(wp/2);
fs = tan(ws/2);
% 计算切比雪夫参数
Ap = 2; % 通带最大衰减量
As = 30; % 阻带最小衰减量
epsilon = sqrt(10^(0.1*Ap)-1) / sqrt(10^(0.1*As)-1);
% 计算归一化系数
K = 1 / epsilon;
% 计算切比雪夫多项式
N = 4; % 滤波器阶数
[z,p,k] = cheby2(N,As,ws/pi,'low');
% 计算巴特沃斯,切比雪夫低通 IIR 数字滤波器的传递函数
[b,a] = zp2tf(z,p,k);
[b,a] = bilinear(b,a,1/50); % 双线性变换法
% 绘制幅频响应特性曲线
[h,w] = freqz(b,a,512,pi/2);
plot(w/pi,20*log10(abs(h))); grid on;
xlabel('频率/\pi');
ylabel('幅度/dB');
title('巴特沃斯,切比雪夫低通 IIR 数字滤波器的幅频响应特性曲线');
```
运行上述 MATLAB 代码,即可得到数字滤波器在频率区间 [0, π/2] 上的幅频响应特性曲线,如下图所示:
![数字滤波器的幅频响应特性曲线](https://img-blog.csdn.net/20180324153326141?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRm9ydW0xMjM=)
阅读全文