武汉理工大学《MATLAB应用》课程设计说明书
4 IIR带通滤波器程序及波形4.1 参考程序
Ts=0.1;Fs=1/Ts;Rp=2;Rs=30; Wp1=0.4*pi;Wp2=0.6*pi; Ws1=0.2*pi;Ws2=0.8*pi;
17
武汉理工大学《MATLAB应用》课程设计说明书
%频率的预畸变 Wp1=(2/Ts)*tan(wp1/2); Wp2=(2/Ts)*tan(wp2/2);
Wp=[Wp1,Wp2]; %模拟滤波器的通带截止频率 Ws1=(2/Ts)*tan(ws1/2); Ws2=(2/Ts)*tan(ws2/2);
Ws=[Ws1,Ws2]; %模拟滤波器的带宽 BW=Wp2-Wp1;
Omegaw0=sqrt(Ws1*Ws2); %模拟滤波器的中心频率 % Omegaw0=sqrt(Wp1*Wp2);
%求模拟低通滤波器的阶数与边缘频率 [N,OmegaC]=cheb2ord(Wp,Ws,Rp,Rs,'s'); %[N,OmegaC]=cheb1ord(Wp,Ws,Rp,Rs,'s') %求切比雪夫模拟低通滤波器的零、极点与增益 [z0,p0,k0]=cheb2ap(N,Rs); %[z0,p0,k0]=cheb1ap(N,Rp); %设计归一化的模拟原型带通滤波器 %求原型滤波器的分子系数
AnalogB=k0*real(poly(z0)); %求原型滤波器的分母系数
AnalogA=real(poly(p0)); %模拟低通到模拟带通的分子、分母系数的变换
[BandB,BandA]=lp2bp(AnalogB,AnalogA,Omegaw0,BW);
%双线性变换:模拟带通与数字带通的分子分母系数的变换 [DigitalB,DigitalA] = bilinear(BandB,BandA,Fs); %变为二阶节级联结构
[sos,G] = tf2sos(DigitalB,DigitalA);
%求数字带通滤波器的幅频、相频特性、及其群延迟 %求数字带通滤波器的幅频特性
18
武汉理工大学《MATLAB应用》课程设计说明书
[Hz,Wz]=freqz(DigitalB,DigitalA,1024,'whole'); %将数字带通滤波器的幅频特性转化为分贝表示 dbHz=20*log10((abs(Hz)+eps)/max(abs(Hz))); %求数字带通滤波器的相频特性 %求数字带通滤波器的群延迟特性 grd = grpdelay(DigitalB,DigitalA,Wz); %作图
subplot(2,3,1);plot(Wz/pi,abs(Hz));title('幅频响应'); xlabel(''), ylabel('幅度:|Hz|');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]); grid;
subplot(2,3,4);plot(Wz/pi,dbHz);title('模值(dB)');
xlabel('频率(单位:\\pi)');ylabel('分贝(dB)'); axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]); set(gca,'YTickmode','manual','YTick',[-50,-30,-2,0]);
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'30';' 2';' 0']); grid;
subplot(2,3,2);plot(Wz/pi,angle(Hz)/pi);title('相频响应'); xlabel('');ylabel('单位:\\pi ');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]); grid;
subplot(2,3,5);
ylabel('单位:\\dB');xlabel('单位:\\pi ');
zplane(DigitalB,DigitalA);axis([-1.1,1.1,-1.1,1.1]); subplot(2,3,3); plot(Wz/pi,grd); title('群延迟')
xlabel('频率(单位:\\pi)'); ylabel('样本'); axis([0,1,0,8])
set(gca,'XTickMode','manual','XTick',[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]); %画高刻度线
19
武汉理工大学《MATLAB应用》课程设计说明书
set(gca,'YTickmode','manual','YTick',[0:0.5:10]); grid;
set(gcf,'color','w')
幅频响应1单位:? 幅度:|Hz|相频响应10.50-0.5-100.20.40.60.81样本群延迟87.576.565.554.543.532.521.510.500.5000.20.40.60.81模值(dB)00.20.40.60.81频率(单位:?)Imaginary Part 0 2分贝(dB)10-1-10Real Part13000.20.40.60.81频率(单位:?)
图4-1
以上是根据切比雪夫II型滤波器设计的带通滤波器,如果以切比雪夫I型滤波器设计,则只需改变几个参数则可,其程序如下所示(只附改变的参数与程序)。
%模拟滤波器的带宽 BW=Wp2-Wp1;
%模拟滤波器的中心频率 Omegaw0=sqrt(Wp1*Wp2);
%求切比雪夫I型模拟低通滤波器的阶数与边缘频率 [N,OmegaC]=cheb1ord(Wp,Ws,Rp,Rs,'s');
%求切比雪夫I型模拟低通滤波器的零、极点与增益
20

