椭圆数字带通且比雪夫2带阻滤波器.doc
1 椭圆数字带通滤波器wp1=0.3*pi;wp2=0.7*pi; %滤波器的通带截止频率ws1=0.1*pi;ws2=0.9*pi; %滤波器的阻带截止频率Rp=1;As=15; %滤波器的通阻带衰减指标ripple=10(-Rp/20); %滤波器的通带衰减对应的幅度值Attn=10(-As/20); %滤波器的阻带衰减对应的幅度值%转换为模拟滤波器的技术指标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,Omgc=ellipord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率z0,p0,k0=ellipap(n,Rp,As); %设计归一化的巴特沃思模拟滤波器原型ba1=k0*real(poly(z0); %求原型滤波器的系数baa1=real(poly(p0); %求原型滤波器的系数aba,aa=lp2bp(ba1,aa1,w0,bw); %变换为模拟dai通滤波器 %用脉冲响应不变法计算数字滤波器系数bd,ad=impinvar(ba,aa,Fs) C,B,A=dir2par(bd,ad) %转换成bing联型%求数字系统的频率特性H,w=freqz(bd,ad); dbH=20*log10(abs(H)+eps)/max(abs(H); subplot(2,2,1);plot(w/pi,abs(H);ylabel('|H|');title('幅度响应');axis(0,1,0,1.1);set(gca,'XTickMode','manual','XTick',0,0.25,0.4,1);set(gca,'YTickMode','manual','YTick',0,Attn,ripple,1);gridsubplot(2,2,2);plot(w/pi,angle(H)/pi);ylabel('phi');title('相位响应');axis(0,1,-1,1);set(gca,'XTickMode','manual','XTick',0,0.25,0.4,1);set(gca,'YTickMode','manual','YTick',-1,0,1);gridsubplot(2,2,3);plot(w/pi,dbH);title('幅度响应(dB)');ylabel('dB');xlabel('频率(pi)');axis(0,1,-40,5);set(gca,'XTickMode','manual','XTick',0,0.25,0.4,1);set(gca,'YTickMode','manual','YTick',-50,-15,-1,0);gridsubplot(2,2,4);zplane(bd,ad);axis(-1.1,1.1,-1.1,1.1);title('零极点图');n = 3Omgc = 1.0e+003 * 1.8850 4.3982bd = 0.5920 -0.1777 0.2047 -0.0677 0.6059 -0.2409ad = Columns 1 through 6 1.0000 -0.3254 0.9247 -0.0937 0.9127 -0.1620 Column 7 0.2917C = B = -0.2240 -0.0939 0.9121 -0.3068 -0.0960 0.0503A = 1.0000 1.0634 0.7987 1.0000 -0.2584 0.4017 1.0000 -1.1304 0.90912且比雪夫2带阻滤波器wp1=0.1*pi;wp2=0.9*pi; %滤波器的通带截止频率ws1=0.3*pi;ws2=0.7*pi; %滤波器的阻带截止频率Rp=1;As=40; %滤波器的通阻带衰减指标%转换为模拟滤波器的技术指标T=0.0005;Fs=1/T;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,Omgc=cheb2ord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率z0,p0,k0=cheb2ap(n,Rp); %设计归一化的模拟滤波器原型ba1=k0*real(poly(z0); %求原型滤波器的系数baa1=real(poly(p0); %求原型滤波器的系数aba,aa=lp2bs(ba1,aa1, w0,bw); %变换为模拟带阻滤波器%用法计算数字滤波器系数bd,ad=impinvar(ba,aa,Fs) %求数字系统的频率特性 t=0:T:(30*T);nt=length(t); ha=impulse(ba,aa,t); h=impz(bd,ad,nt); subplot(2,1,1); plot(t, ha*T,'r');hold on stem(t,h,'k'); title(''); wb=0:Fs*2*pi; Ha=freqz(ba,aa,wb); H=freqz(bd,ad,wb/Fs);subplot(2,1,2);plot(wb/(2*pi),abs(Ha)/max(abs(Ha),'r'),hold onplot(wb/(2*pi),abs(H)/max(abs(H),'k');n = 6Omgc = 1.0e+003 * 1.8233 4.5469bd = Columns 1 through 7 -0.7920 2.2908 -2.1405 0.0550 0.8705 0.0101 -0.6478 Columns 8 through 13 0.5696 -0.5465 0.5080 -0.2573 0.0416 0.0002ad = Columns 1 through 7 1.0000 -2.7987 2.5381 -0.0600 -0.8601 -0.3831 1.2250 Columns 8 through 13 -0.7583 0.1420 -0.4353 1.2880 -1.2601 0.4527