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('合成信号频谱图');。