基于MATLAB的数字滤波器的设计程序 下载本文

内容发布更新时间 : 2024/10/11 21:25:41星期一 下面是文章的全部内容请认真阅读。

IIR 低通滤波器的设计程序为: Ft=8000; Fp=1000; Fs=1200; As=100 ; Ap=1;

wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Fp*tan(wp/2); fs=2*Fs*tan(ws/2);

[n11,wn11]=buttord(wp,ws,1,50,'s'); [b11,a11]=butter(n11,wn11,'s'); [num11,den11]=bilinear(b11,a11,0.5); [h,w]=freqz(num11,den11); axes(handles.axes1); plot(w*8000*0.5/pi,abs(h)); xlabel('Frequency/Hz'); ylabel('Magnitude');

title('巴特沃斯数字低通滤波器');

巴特沃斯带通滤波器设计程序为:

Ft=8000;

Fp1=1200; Fp2=3000; Fs1=1000; Fs2=3200; As=100; Ap=1;

wp1=tan(pi*Fp1/Ft); wp2=tan(pi*Fp2/Ft); ws1=tan(pi*Fs1/Ft); ws2=tan(pi*Fs2/Ft); w=wp1*wp2/ws2;

bw=wp2-wp1; wp=1;

ws=(wp1*wp2-w.^2)/(bw*w); [n12,wn12]=buttord(wp,ws,1,50,'s'); [b12,a12]=butter(n12,wn12,'s');

[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw); [num12,den12]=bilinear(num2,den2,0.5); [h,w]=freqz(num12,den12); plot(w*8000*0.5/pi,abs(h)); axis([0 4000 0 1.5]); xlabel('Frequency/Hz'); ylabel('Magnitude');

title('巴特沃斯数字带通滤波器');

IIR 高通滤波器的设计程序为: Ft=8000; Fp=4000; Fs=3500;

wp1=tan(pi*Fp/Ft); ws1=tan(pi*Fs/Ft); wp=1;

ws=wp1*wp/ws1;

[n13,wn13]=cheb1ord(wp,ws,1,50,'s'); [b13,a13]=cheby1(n13,1,wn13,'s'); [num,den]=lp2hp(b13,a13,wn13); [num13,den13]=bilinear(num,den,0.5); [h,w]=freqz(num13,den13); axes(handles.axes1);

plot(w*21000*0.5/pi,abs(h)); xlabel('Frequency/Hz'); ylabel('Magnitude');

title('切比雪夫Ⅰ型数字高通滤波器');

合成信号频谱程序如下: f1=20; f2=200; f3=500; t=(1:100)/2000; x1=sin(2*pi*t*f1); x2=sin(2*pi*t*f2); x3=sin(2*pi*t*f3);

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3); n=[1:100];t=n/2000

X=fft(x,512);w=(0:255)/256*1000;

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3); axes(handles.axes1); plot(x);

xlabel('t');ylabel('幅度'); title('合成信号波形图'); axes(handles.axes2); plot(w,abs([X(1:256)]));

xlabel('Hz');ylabel('频率响应幅度'); title('合成信号频谱图');