切比雪夫I型滤波器的振幅平方函数为
在MATLAB中,cheblap函数用于设计切比雪夫 I 型低通滤波器。该函数的调用方法为
[z, p,k] = cheb1ap(n, rp)
其中,n为滤波器的阶数,rp为通带的幅度误差。返回值分别为滤波器的零点、极点和增益。
例 设计切比雪夫I型低通滤波器示例。
程序如下:
Wp=3*pi*4*12^3;
Ws=3*pi*12*10^3;
rp=1;
rs= 30; %设计滤波器的参数
wp= 1;ws= Ws/Wp; %对参数归一化
[N, wc] = cheb1ord(wp, ws,rp,rs, 's'); %计算滤波器阶数和阻带起始频率
[z,p,k] = cheb1ap(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');
例 绘制切比雪夫I型低通滤波器的平方幅频响应曲线。
程序如下:
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
Rp= 1; %设置通滤波纹为1dB
[z,p,k] = cheb1ap(N, Rp); %设计Chebyshev I型滤波器
[b,a]= zp2tf(z,p,k); %将零点极点增益形式转换为传递函数形式
[H,w]= freqs(b,a,n); %按n指定的频率点给出频率响应
magH2= (abs(H)).^2; %给出传递函数幅度平方
subplot(2,2,i);
plot(w, magH2);
title(['N= ' ,num2str(N)]); %将数字N转换为字符串并与'N= '作为标题
xlabel( 'w/wc');
ylabel('切比雪夫I型|H(jw)|^2');
grid on;
end