切比雪夫II型滤波器的振幅平方函数为
在MATLAB中,cheb2ap函数用于设计切比雪夫II型低通滤波器。Cheb2ap的语法为
[z,p,k] = cheb2ap(n, rp)
其中,n为滤波器的阶数,rp为通带的波动。返回值z,p,k分别为滤波器的零点、极点和
增益。
例 设计切比雪夫II型低通滤波器示例。
程序如下:
Wp=3*pi*4*12^3;
Ws=3*pi*12*10^3;
rp=1;
rs= 30;
%设计滤波器的参数
wp= 1;ws= Ws/Wp;
%对参数归一化
[N, wc] = cheb2ord(wp, ws,rp,rs, 's');
%计算滤波器阶数和阻带起始频率
[z,p,k] = cheb2ap(N,rs);
%计算零点、极点、增益
[B,A]= zp2tf(z,p,k);
%计算系统函数的多项式
w=0:0.02*pi:pi;
[h,w]= freqs(B,A,w);
plot(w*wc/wp, 20*log10(abs(h)), 'k');grid;
xlabel( '\lambda');ylabel( 'A(\lambda)/dB');
例绘制切比雪夫II型滤波器的平方幅频响应曲线。
clear ;
n= 0:0.02:4;
%频率点
for i= 1:4
%取4种滤波器
switch i
case 1; N= 1;
case 2; N= 3;
case 3; N=5;
case 4; N= 7;
end
Rs= 20;
[z,P,k] = cheb2ap(N, Rs);
%设计Chebyshev I型模拟原型滤波器
[b,a]= zp2tf(z,P,k);
%将零点极点增益形式转换为传递函数形式
[H,w]= freqs(b,a,n);
%按n指定的频率点给出频率响应
magH2 = (abs(H)).^2;
%给出传递函数幅度平方
%将数字i转换为字符串,与2;2'合并并赋给posplo
subplot(2,2,i);
plot(w, magH2);
title(['N=',num2str(N)]);
%将数字N转换为字符串'N= '合并作为标题
xlabel( 'w/wc');
ylabel('切比雪夫II型H(jw)|^2');
grid on;
end
例 设带通滤波器的通带范围为9000~16000Hz,通带左边的阻带截止频率为7000Hz,通带右边的阻带起始频率为17000Hz,通带最大衰减ap=1dB,阻带最小衰减as=30dB,设计切比雪夫II型模拟带通滤波器。
程序如下:
Wp=[3*pi*9000,3*pi*16000];
Ws= [3*pi * 7000,3*pi* 17000];
rp= 1;rs= 30;
%模拟滤波器的设计指标
[N, wso] = cheb2ord(Wp, Ws, rp,rs, 's');
%计算滤波器的阶数
[b,a] = cheby2(N, rs, wso, 's');
%计算滤波器的系统函数的分子、分母向量
w=0:3* pi*100:3*pi*25000;
[h,w]= freqs(b,a,w);
%计算频率响应
plot(w/(2* pi),20 * log10(abs(h)),'k');
xlabel('f(Hz)');ylabel( '幅度(dB) ');grid;