www.gusucode.com > matlab FIR 底通和带通滤波器和IIR 底通和带通滤波器完整程序 > MATLAB_FIR_IIR/IIRditonglvboqi.m
clear all clc N1=1024;t=0:1:N1-1; fs=5000; s=(sin(2*100*pi*t/fs)+sin(2*pi*500*t/fs)+2*sin(2*pi*1000*t/fs))+randn(1,length(t/fs)); Y=fft(s); lp=510; wn1=2*lp/fs; [b1,a1]=cheby1(10,0.05,wn1); y1=filter(b1,a1,s); Y1=fft(y1); Ts=t(2)-t(1); Ws=2*pi/Ts; Wn=Ws/2; f=linspace(0,Wn/(2*pi),length(t)/2); Ya=abs(Y(1:length(t)/2)); Ya1=abs(Y1(1:length(t)/2)); figure(1) subplot(121); plot(f*fs,Ya);axis([0,1500,0,1000]); xlabel('f'); ylabel('频谱幅值F(\omega)'); title('原信号频谱'); subplot(122) plot(f*fs,Ya1); axis([0,1500,0,1000]); xlabel('f'); ylabel('频谱幅值F(\omega)'); title('经过IIR低通滤波器后的信号频谱'); figure(2) freqz(b1,a1,64,fs);axis([0,1500,-100,0]); title('设计的IIR低通滤波器'); figure(3); subplot(121) plot(t,s);title('原信号时域图'); axis([0,150,-5,5]);grid; ss=ifft(Y1(1:length(t))); subplot(122) plot(t,ss);title('滤波后的时域图'); axis([0,150,-5,5]);grid;