📄 ms19_3.m
字号:
%将切比雪夫Ⅰ型模拟滤波器原型变换成实际模拟带通滤波器
fp1=3;Op1=2*pi*fp1; %输入带通滤波器的通带截止频率
fp2=5;Op2=2*pi*fp2;
fs1=2;Os1=2*pi*fs1; %输入带通滤波器的阻带截止频率
fs2=6;Os2=2*pi*fs2;
Omgp=[Op1,Op2];Omgs=[Os1,Os2];
bw=Op2-Op1;w0=sqrt(Op1*Op2);%求通带宽度和中心频率
Rp=1;As=30; %输入滤波器的通阻带衰减指标
%计算滤波器的阶数和3dB截止频率
[n,Omgn]=cheb1ord(Omgp,Omgs,Rp,As,'s')
%计算n阶模拟低通原型,得到左半平面零极点
[z0,p0,k0]=cheb1ap(n,Rp);
b0=k0*real(poly(z0)) %求归一化的滤波器系数b0
a0=real(poly(p0)) %求归一化的滤波器系数a0
[H,Omg0]=freqs(b0,a0); %求归一化的滤波器频率特性
dbH=20*log10(abs(H)/max(abs(H))); %幅度化为分贝值
%变换为实际模拟带通滤波器
[ba,aa]=lp2bp(b0,a0,w0,bw); %从归一化低通变换到模拟带通
[Ha,Omga]=freqs(ba,aa); %求实际带通滤波器的频率特性
dbHa=20*log10(abs(Ha)/max(abs(Ha))); %幅度化为分贝值
%为作图准备数据
Omg0c=Omgn/2/pi/Omgn %3dB截止频率归一化
%归一化模拟低通原型频率特性作图
subplot(2,2,1),plot(Omg0/2/pi,dbH,'k');
axis([0,1,-40,1]);title('归一化模拟低通原型幅度');
ylabel('dB');
set(gca,'Xtick',[0,Omg0c,1]);
set(gca,'Ytick',[-40,-30,-3,-1]);grid
subplot(2,2,2),plot(Omg0/2/pi,angle(H)/pi*180,'k');
axis([0,1,-200,200]);title('归一化模拟低通原型相位');
ylabel('\phi');
set(gca,'Xtick',[0,Omg0c,1]);
set(gca,'Ytick',[-180,-90,0,90,180]);grid
%实际模拟带通频率特性作图
subplot(2,2,3),plot(Omga/2/pi,dbHa,'k');
axis([0,8,-40,1]);title('实际模拟带通幅度');
ylabel('dB');xlabel('f(kHz)');
set(gca,'Xtick',[0,fs1,fp1,fp2,fs2,8]);
set(gca,'Ytick',[-40,-30,-3,-1]);grid
subplot(2,2,4),plot(Omga/2/pi,angle(Ha)/pi*180,'k');
axis([0,8,-200,200]);title('实际模拟带通相位');
set(gca,'Xtick',[0,fs1,fp1,fp2,fs2,8]);
set(gca,'Ytick',[-180,-90,0,90,180]);grid
ylabel('\phi');xlabel('f(kHz)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -