资源描述
数
字
信
号
处
理
实
验
姓名:彭金金 王春香
学号:071041219 071041223
滤波器在语音信号中的应用
一、实验目的:
1、了解语音信号在MATLAB中的输入和输出;
2、通过对语音信号的处理进一步了解滤波器的设计及应用。
二、实验原理:
1、滤波器设计
调用fir1()函数生成有限长数字滤波器。
2、采集语音信号
在MATLAB软件平台下利用函数wavread对语音信号进行采样,得到声音数据变量x,同时把x的采样频率fs和数据位n放进MATLAB工作空间。
[x,fs,n]=wavread('D:\mat\as.wav');
语音信号输出指令为:sound(x,fs);
然后对语音信号进行频谱分析:X=fft(x);
3、加噪声
x1=x+randn(size(x));
三、实验内容:
程序如下:
[x,fs,n]=wavread('D:\mat\as.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);
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);
输出波形如下:
四、实验结论
此次实验中使用的FIR滤波器的滤波效果不是很好,可以根据原信号频谱的范围通过改变滤波器的参数改善滤波效果;
axis([0,2500,0,5000])
例如:当wn=[120 200 316 422]/10000;时各信号频谱为:
当wn=[10 500 1000 1500]/10000;时滤波后信号的频谱如下:
展开阅读全文