试验四音频抗混叠滤波器设计
实验四 音频抗混叠滤波器设计
[实验目的] 学习用Matlab进行滤波器设计仿真。
[实验内容]
题目要求:1)设计Butterworth型音频抗混叠滤波器;
2)参数:
下通带频率300Hz;上通带频率3400Hz;
下阻带频率280Hz;上阻带频率3600Hz;
通带最大衰减0.3dB;
阻带最小衰减40dB;
3)采用一低通滤波器和一高通滤波器级联;
4)分别确定LPF和HPF的性能指标;
5)求出两滤波器的系统函数和频率响应,并画出其幅频特性曲线;
6)求整个滤波器的系统函数和频率响应,并画出其幅频特性曲线。编程原理:Matlab 基础,buttord(),butter(),freqs()等函数的调用。
程序脚本,带注释
%LPF的设计如下:
Wp1=2*pi*3200;Ws1=2*pi*3600;Ap=0.3;As=40;
[N1,Wc1]=buttord(Wp1,Ws1,Ap,As,'s');
fprintf('Order of the LPF=%.0f\n',N);
[num1,den1]=butter(N1,Wc1,'s');
disp('Numerator polynomial 1');
fprintf('%.4e\n',num1);
disp('Denominator polynomial 1');
fprintf('%.4e\n',den1);
omega=[Wp1 Ws1]; h=freqs(num1,den1,omega);
fprintf('Ap1=%.4f\n',-20*log10(abs(h(1))));
fprintf('As1=%.4f\n',-20*log10(abs(h(2))));
omega=[0:200:12000*pi];
h1=freqs(num1,den1,omega);
gain1=20*log10(abs(h1));
subplot(2,2,1)
plot(omega/(2*pi),gain1);
xlabel('Frequency in Hz');ylabel('Gain1 in dB');
%HPF的设计如下:
Wp2=2*pi*340; Ws2=2*pi*280; Ap=0.3; As=40;
[N2,Wc2]=buttord(Wp2,Ws2,Ap,As,'s');
fprintf('Order of the HPF=%.0f\n',N2);
[num2,den2]=butter(N2,Wc2,'high','s');
disp('Numerator polynomial 2');
fprintf('%.4e\n',num2);
disp('Denomianator polynomial 2');
fprintf('%.4e\n',den2);
omega=[Wp2 Ws2];
h2=freqs(num2,den2,omega);
fprintf('Ap2=%.4f\n',-20*log10(abs(h2(1))));
fprintf('As2=%.4f\n',-20*log10(abs(h2(2))));
omega=[0:200:12000*pi];
h2=freqs(num2,den2,omega);
gain2=20*log10(abs(h2));
subplot(2,2,2)
plot(omega/(2*pi),gain2);
xlabel('Frequency in Hz');ylabel('Gain 2 in dB');
%LPF与HPF的级联如下:
h=h1.*h2;
gain=20*log10(abs(h));
subplot(2,2,3)
plot(omega/(2*pi),gain);
xlabel('Frequency in Hz');ylabel('Gain in dB');
仿真结果、图形:
Order of the LPF=33
Numerator polynomial 1
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e+000
0.0000e