切比雪夫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 icase 1; N= 1;case 2; N= 3;case 3; N=5; case 4; N= 7;endRs= 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'合并并赋给posplosubplot(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;