常用模拟低通滤波器的设计——契比雪夫II型滤波器
切比雪夫 II 型滤波器的振幅平方函数为:
式中,为有效带通截止频率, 是与通带波纹有关的参量, 大,波纹大,;
为 N 阶契比雪夫多项式。
在 Matlab 中,函数cheb2ap、cheb2ord、cheby 用于设计切比雪夫 II 型滤波器。
1、cheb2ap 函数
在 Matlab 中,函数 cheb2ap 用于设计切比雪夫 II 型低通滤波器,其调用格式为:
- [z, p, k] = cheb2ap(n, Rs) % 返回契比雪夫 II 型滤波器的零点z、极点p 和增益 k
说明:输入 n 为滤波器的阶数,Rs 为通带的波动,即滤波器在通带内的最小衰减值。
2、cheb2ord 函数
在 Matlab 中,利用 cheb2ord 函数可以求出所需要的滤波器的阶数和截止频率,滤波器在通带中的损耗不超过 Rp dB,在阻带中的衰减至少为 Rs dB。其调用格式为:
- [n, Wn] = cheb2ord(Wp, Ws, Rp, Rs) % 返回值 n 为滤波器的最低阶数,Wn 为截止频率
- [n, Wn] = cheb2ord(Wp, Ws, Rp, Rs, 's') % 设计模拟契比雪夫 I 型滤波器的最低阶数n 和截止频率Wn
说明:滤波器通带中的损耗不得超过Rp dB,在阻带中至少为Rs dB。
Wp为通带截止频率、Ws为阻带起始频率、Rp为通带内波动、Rs为阻带内最小衰减。
3、cheby2函数
由切比雪夫 II 型滤波器的阶数 n 以及通带截止频率 Wn 可以计算出对应传递函数 H(z)的分子分母系数。
Matlab 提供 cheby2 函数用于求解契比雪夫 II 型滤波器的系数,函数调用格式为:
- [b, a] = cheby2(n, Rs, Ws) % 返回值契比雪夫 I 型低通滤波器传递函数的系数
说明:b 为 H(z)的分子多项式系数,a 为 H(z)的分母多项式系数,Ws 为标准化通带边缘频率,Rs 为峰间通带波纹。
- [b, a] = cheby2(n, Rs, Ws, ftype) % 根据 ftype 的值和 Ws 的元素数,设计低通、高通、带通或带阻契比雪夫 II 型滤波器,其中带通和带阻设计为 2n 级。
- [z, p, k] = cheby2(____) % 设计数字切比雪夫 II 型滤波器,并返回其零点、极点和增益
- [A, B, C, D] = cheby2(____) % 设计数字切比雪夫 II 型滤波器,并返回指定其空间状态表示形式的矩阵
- [ ____ ] = cheby2(____, 's') % 设计通带边缘角频率为Ws、通带波纹为Rs 的模拟切比雪夫 II 型滤波器
说明:滤波器的传递函数系数 b 和 a,零点z、极点p 、增益 k 、ftype的含义与 cheby1 函数中的相同 。
ftype 包括:'low'、'high'、'bandpass' 及 'stop',含义如下:
- 'low':指定通带边缘频率为 Wp 的低通滤波器,为默认值。
- 'high':指定通带边缘频率为 Wp 的高通滤波器。
- 'bandpass' :指定 2n 阶的带通滤波器,如果 Wp 为两个元素向量,则默认为 'bandpass' 。
- 'stop':如果 Wp 为两个元素向量,指定 2n 阶的带阻滤波器。
4、实例演示
【例7-24】设计一个6阶切比雪夫 II 型低通滤波器,阻带波动为70dB,并显示其幅值和相位响应。
% 【例7-24】设计一个6阶切比雪夫 II 型低通滤波器,阻带波动为70dB,并显示其幅值和相位响应。
clc, clear, close all
[z, p, k] = cheb2ap(6, 70); % 低通滤波器原型
[num, den] = zp2tf(z, p, k); % 零极增益模型转换为传递函数形式
freqs(num, den); % 模拟滤波器的频率响应
title('切比雪夫 II 型低通滤波器幅频响应曲线'); grid on;
【例7-25】针对 1000Hz 采样的数据,设计一个低通滤波器,在0~40Hz 的通带中纹波小于3dB,在150Hz到奈奎斯特频率的阻带中衰减至少为60dB,并显示其幅值和相位响应。
% 【例7-25】针对 1000Hz 采样的数据,设计一个低通滤波器,在0~40Hz 的通带中纹波小于3dB,
% 在150Hz到奈奎斯特频率的阻带中衰减至少为60dB,并显示其幅值和相位响应。
figure
Wp = 40/(1000/2);
Ws = 150/(1000/2);
Rp = 3;
Rs = 60;
[n, Ws] = cheb2ord(Wp,Ws,Rp,Rs); % 切比雪夫 II 型低通滤波器最低阶数 n 及相应的截止频率Ws.
[b,a] = cheby2(n,Rs,Ws); % 切比雪夫 II 型低通滤波器传递函数系数
freqz(b,a,512,1000); % 数字滤波器的频率响应
title('切比雪夫 II 型低通滤波器幅频响应曲线'); grid on;