1、数字信号处理实验姓名:彭金金 王春香学号:071041219 071041223滤波器在语音信号中的应用一、实验目的:1、了解语音信号在MATLAB中的输入和输出; 2、通过对语音信号的处理进一步了解滤波器的设计及应用。二、实验原理:1、滤波器设计调用fir1()函数生成有限长数字滤波器。2、采集语音信号在MATLAB软件平台下利用函数wavread对语音信号进行采样,得到声音数据变量x,同时把 x的采样频率 fs和数据位n放进MATLAB工作空间。x,fs,n=wavread(D:matas.wav);语音信号输出指令为:sound(x,fs) ;然后对语音信号进行频谱分析:X=fft(x)
2、 ;3、加噪声x1=x+randn(size(x);三、实验内容:程序如下:x,fs,n=wavread(D:matas.wav);t=0:0.0005:2;x1=x+randn(size(x);N=1:length(x);n1=0:400;M=64;subplot(3,1,1);plot(n1,x(3256+n1)title(原始信号 x)subplot(3,1,2)plot(n1,x1(3256+n1)title(在原始信号上加噪声 )Y=abs(fft(x1);G=abs(fft(x);df=fs/length(x);wn=175 285 346 445/1000;b=fir1(M,wn
3、);z=filter(b,length(x),x1);zk=abs(fft(z);subplot(3,1,3)plot(n1,z(3256+n1)title(滤波后的语音信号z)figure(2)n2=0:length(G)-1;n3=n2*df;subplot(3,1,1)plot(n3,G);title(原始信号频谱 )subplot(3,1,2)plot(n3,Y)title(加入噪声后信号的频谱 )subplot(3,1,3)plot(n3,zk)title(滤波后信号的频谱 )sound(z,fs);输出波形如下:0 50 100 150 200 250 300 350 400-0.
4、100.1 上 上 上 上 x0 50 100 150 200 250 300 350 400-505 上 上 上 上 上 上 上 上 上0 50 100 150 200 250 300 350 400-202x 10-6 上 上 上 上 上 上 上 上 z0 0.5 1 1.5 2 2.5x 10405000 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 10405000 上 上 上 上 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 104024x 10-3 上 上 上 上 上 上 上 上 上四、实验结论此次实验中使用的 FIR 滤波器的滤波效果不是很好,可以根据
5、原信号频谱的范围通过改变滤波器的参数改善滤波效果;axis(0,2500,0,5000)0 500 1000 1500 2000 25000500100015002000250030003500400045005000 上 上 上 上 上 上例如:当wn=120 200 316 422/10000;时各信号频谱为:0 0.5 1 1.5 2 2.5x 10405000 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 104020004000 上 上 上 上 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 10405x 10-3 上 上 上 上 上 上 上 上 上当 wn=10 500 1000 1500/10000;时滤波后信号的频谱如下:0 0.5 1 1.5 2 2.5x 10405000 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 1040500010000 上 上 上 上 上 上 上 上 上 上0 0.5 1 1.5 2 2.5x 10400.0050.01 上 上 上 上 上 上 上 上