📄 ms20_4_2.m
字号:
%脉冲响应不变法用于带通滤波
%数字滤波器指标
wp1=0.3*pi;wp2=0.7*pi; %数字滤波器的通带截止频率
ws1=0.1*pi;ws2=0.9*pi; %数字滤波器的阻带截止频率
Rp=1;As=40; %输入滤波器的通阻带衰减指标
%转换为模拟原型滤波器指标
Fs=2000;T=1/Fs;
Omgp1=wp1*Fs;Omgp2=wp2*Fs;%模拟滤波器的通带截止频率
Omgp=[Omgp1,Omgp2];
Omgs1=ws1*Fs;Omgs2=ws2*Fs;%模拟滤波器的阻带截止频率
Omgs=[Omgs1,Omgs2];
bw=Omgp2-Omgp1;w0=sqrt(Omgp1*Omgp2);%模拟通带带宽和中心频率
%模拟滤波器计算
[n,Omgn]=cheb2ord(Omgp,Omgs,Rp,As,'s')%计算阶数n和截止频率
[z0,p0,k0]=cheb2ap(n,As); %设计归一化的模拟原型滤波器
ba1=k0*real(poly(z0)); %求原型滤波器系数b
aa1=real(poly(p0)); %求原型滤波器系数a
[ba,aa]=lp2bp(ba1,aa1,w0,bw) %变换为模拟带通滤波器
[bd,ad]=impinvar(ba,aa,Fs); %用脉冲响应不变法计算数字滤波器系数
t=0:T:(30*T);nt=length(t);
subplot(2,1,1),
ha=impulse(ba,aa,t);plot(t,ha*T,'r'),hold on
h=impz(bd,ad,nt);stem(t,h)
wb=[0:Fs]*2*pi; %为作图建立频率向量
Ha=freqs(ba,aa,wb); %计算模拟频率响应
subplot(2,1,2),
plot(wb/(2*pi),abs(Ha)/max(abs(Ha)),'r'),hold on
H=freqz(bd,ad,wb/Fs); %计算数字频率响应
plot(wb/(2*pi),abs(H)/max(abs(H)));
title('脉冲响应不变法用于带通滤波');
axis([0,Fs,-0.1,1.1]);
ylabel('幅度');xlabel('f(Hz)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -