1.设计要求
2.设计步骤
3.设计内容
4.简易GUI设计
三、结论
四、收获与心得
五、附录
一、引言
随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。
二、正文
2.1 设计要求
在有噪音的环境中录制语音,并设计滤波器去除噪声。
2.2 设计步骤
- 分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标 ;
- 按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求;
- 用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图;
- 对滤波前的信号进行分析比对,评估所设计滤波器性能。
2.3 设计内容
1.原始信号分析
分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。
2.IIR滤波器设计
用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器:
①巴特沃斯滤波器
fp=800;fs=1300;rs=35;rp=0.5;
程序代码如下:
fp=800;fs=1300;rs=35;rp=0.5;Fs=44100;
wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));
[n,wn]=buttord(wp,ws,rp,rs,'s');
[b,a]=butter(n,wn,'s');
[num,den]=bilinear(b,a,Fs);
[h,w]=freqz(num,den,512,Fs);
②椭圆低通滤波器
fp=1300;fs=1600;rs=60;rp=0.5;
程序代码如下:
fp=1300;fs=1600;rs=60;rp=0.5;Fs=44100;
wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs));
[n,wn]=ellipord(wp,ws,rp,rs,'s');
[b,a]=ellip(n,rp,rs,wn,'s');
[num,den]=bilinear(b,a,Fs);
[h,w]=freqz(num,den,512,Fs);
③带阻滤波器
fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6
fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6
程序代码如下:
fp1=800;fp2=2300;fs1=1300;fs2=1800;rs=30;rp=0.6;Fs=44100;
fp=[fp1,fp2];fs=[fs1,fs2];
wp=2*Fs*tan(2*pi*fp/(2*Fs));
ws=2*Fs*tan(2*pi*fs/(2*Fs));
[n,wn]=buttord(wp,ws,rp,rs,'s');
[b,a]=butter(n,wn,'stop','s');
[num,den]=bilinear(b,a,Fs);
[h,w]=freqz(num,den,512,Fs);
fp3=2800;fp4=4000;fs3=3200;fs4=3700;rs=30;rp=0.6;Fs=44100;
fp1=[fp3,fp4];fs1=[fs3,fs4];
wp1=2*Fs*tan(2*pi*fp1/(2*Fs));
ws1=2*Fs*tan(2*pi*fs1/(2*Fs));
[n1,wn1]=buttord(wp1,ws1,rp,rs,'s');
[b1,a1]=butter(n1,wn1,'stop','s');
[num1,den1]=bilinear(b1,a1,Fs);
[h1,w1]=freqz(num1,den1,512,Fs);
- FIR滤波器
①加hamming窗
n=100;fp=1000;Fs=44100;
b=fir1(n,fp/(Fs/2),Hamming(n+1));
[h,w]=freqz(b,1,512,Fs);
②加hanning窗
n=;fp=1000;Fs=44100;
b=fir1(n,fp/(Fs/2),Hanning(n+1));
[h,w]=freqz(b,1,512,Fs);
③加blackman窗
n=100;fp=1000;Fs=44100;