matlab滤波器代码要点.pdf
数字信号处理: 已知通带截止频率fp=5kHz,通带最大衰减 ap=2dB ,阻带截止频率 fs=2kHz,阻 带最小衰减 as=30dB,按照以上技术指标设计 巴特沃斯低通滤波器: wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30; N,wc=buttord(wp,ws,Rp,As,'s'); B,A=butter(N,wc,'s'); k=0:511;fk=0:14000/512:14000;wk=2*pi*fk; Hk=freqs(B,A,wk); subplot(2,2,1); plot(fk/1000,20*log10(abs(Hk);grid on xlabel('频率( kHz)');ylabel('幅度( dB)') axis(0,14,-40,5) 切比雪夫 1 型低通滤波器: wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60; N1,wpl=cheb1ord(wp,ws,Rp,As,'s'); %cheb1ord,里面的是 1,不是 L B1,A1=cheby1(N1,Rp,wpl,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; Hk=freqs(B1,A1,wk); plot(fk/1000,20*log10(abs(Hk);grid on xlabel('频率( kHz)');ylabel('幅度( dB)') axis(0,12,-70,5) 椭圆模拟低通滤波器: wp=2*pi*3000;ws=2*pi*12000;Rp=0.1;As=60; N,wpo=ellipord(wp,ws,Rp,As,'s'); B,A=ellip(N,Rp,As,wpo,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; Hk=freqs(B1,A1,wk); plot(fk/1000,20*log10(abs(Hk);grid on xlabel('频率( kHz)');ylabel('幅度( dB)') axis(0,12,-70,5) p195-14 wp=2*4/80;ws=2*20/80;rp=0.5;rs=45; N,wc=buttord(wp,ws,rp,rs); B,A=butter(N,wc); hk,wk=freqz(B,A); fk=wk/pi*40; plot(fk,20*log10(abs(hk); axis(0,30,-100,0) xlabel('频率(kHZ)');ylabel('幅度(db)');grid on P195-16 wp=2*325/2500;ws=2*225/2500;rp=1;rs=40; N,wc=ellipord(wp,ws,rp,rs); B,A=ellip(N,rp,rs,wc); hk,wk=freqz(B,A); fk=wk/pi*40; plot(fk,20*log10(abs(hk); axis(0,30,-100,0) xlabel('频率(kHZ)');ylabel('幅度(db)');grid on P195-15 wp=2*4/80;ws=2*20/80;rp=0.5;rs=45; N,wc=cheb1ord(wp,ws,rp,rs); B,A=cheby1(N,rp,wc); hk,wk=freqz(B,A); fk=wk/pi*40; plot(fk,20*log10(abs(hk); axis(0,30,-100,0) xlabel('频率(kHZ)');ylabel('幅度(db)');grid on 切比雪夫低通滤波器 wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60; N1,wp1=cheb1ord(wp,ws,rp,as,'s'); B1,A1=cheby1(N1,rp,wp1,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(B1,A1,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(kHZ)');ylabel('幅度(db)'); axis(0,12,-70,5) 双音频检测 audiofile='test.wav' in_audio,fs,bits=wavread(audiofile); b,a=cheby1(5,0.1,0.3); out_audio=filter(b,a,in_audio); sound(out_audio,fs,bits); wavwrite(out_audio,fs,bits,'test_out'); xk1=fft(in_audio,512); xk2=fft(out_audio,512); subplot(2,1,1);stem(abs(xk1); subplot(2,1,2);stem(abs(xk2); 巴特沃斯模拟高通滤波器。 wp=2*pi*4000;ws=2*pi*1000;rp=0.1;as=40; n,wc=buttord(wp,ws,rp,as,'s'); bh,ah=butter(n,wc,'high','s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(bh,ah,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 巴特沃斯模拟低通滤波器。 wp=2*pi*5000;ws=2*pi*12000;rp=2;as=30; n,wc=buttord(wp,ws,rp,as,'s'); b,a=butter(n,wc,'s'); k=0:511;fk=0:14000/512:14000;wk=2*pi*fk; hk=freqs(b,a,wk); subplot(2,2,1); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,14,-40,5) 巴特沃斯模拟带通滤波器 wp=2*pi*4000,7000;ws=2*pi*2000,9000; n,wc=buttord(wp,ws,rp,as,'s'); bb,ab=butter(n,wc,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(bb,ab,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 巴特沃斯带阻滤波器 wp=2*pi*2000,9000;ws=2*pi*4000,7000;rp=1;as=20; nb,wc=buttord(wp,ws,rp,as,'s'); bsb,asb=butter(nb,wc,'stop','s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(bsb,asb,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 第 14 题。巴特沃斯低通滤波器(采样频率80,同代便捷频率 4,最大衰减 0.5 ) wp=2*4/80;ws=2*20/80;rp=0.5;rs=45; N,wc=buttord(wp,ws,rp,rs); B,A=butter(N,wc); hk,wk=freqz(B,A); fk=wk/pi*40; plot(fk,20*log10(abs(hk); axis(0,30,-100,0); xlabel('频率(kHz)');ylabel('幅度(dB)') 设计切比雪夫 I 型和切比雪夫 II 型模拟低通滤波器。 I型: wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60; n1,wp1=cheb1ord(wp,ws,rp,as,'s'); b1,a1=cheby1(n1,rp,wp1,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(b1,a1,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) II 型: wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60; n2,wp2=cheb2ord(wp,ws,rp,as,'s'); b2,a2=cheby2(n2,rp,wp2,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(b2,a2,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 切比雪夫 I 型高通滤波器 wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60; n1,wp1=cheb1ord(wp,ws,rp,as,'s'); b1,a1=cheby1(n1,rp,wp1,'HIGH','s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(b1,a1,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 设计椭圆模拟低通滤波器。 wp=2*pi*3000;ws=2*pi*12000;rp=0.1;as=60; n,wpo=ellipord(wp,ws,rp,as,'s'); b,a=ellip(n,rp,as,wpo,'s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(b,a,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5) 椭圆带阻滤波器 wp=2*pi*2000,9000;ws=2*pi*4000,7000;rp=1;as=20; ne,wep=ellipord(wp,ws,rp,as,'s'); bse,ase=ellip(ne,rp,as,wep,'stop','s'); subplot(2,2,1); fk=0:12000/512:12000;wk=2*pi*fk; hk=freqs(bse,ase,wk); plot(fk/1000,20*log10(abs(hk);grid on xlabel('频率(khz)');ylabel('幅度(db)') axis(0,12,-70,5)