subplot(1,1,1);
plot(f,abs(y1(1:10240))); grid on;
title('原始语音信号频谱'); xlabel('Hz'); ylabel('幅度'); 程序运行结果如下:
3.2 加噪处理,对信号加高频噪音
在MATLAB软件平台下,给原始的语音信号叠加上噪声,绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。程序代码如下:
%加噪后语音信号变化
d=[0.15*cos(2*pi*4000*t)]'; %加噪 x1=x0+d;
%加噪后语音信号的时域图 figure(3) subplot(1,1,1); plot(t,x0) grid on; axis tight;
title('加噪后的信号时域'); xlabel('time(s)'); ylabel('幅度');
%加噪后语音信号的频域图 figure(4) subplot(1,1,1);
plot(f,abs(y2(1:10240))); grid on;
title('加噪语音信号频谱'); xlabel('Hz'); ylabel('幅度'); 程序运行结果如下:
加噪声后,听起来明显感觉嘈杂。通过图形比较也可以看出,时域波形图的变化不大,但频谱图的变化明显,显示出加了干扰。
3.3 设计窗函数带阻滤波器
要对加入噪声的语音信号进行滤波,需设计合适的滤波器。由图形可看出,用窗函数法设计带阻滤波器可对对加噪语音信号进行滤波。设计带阻滤波器,并绘制滤波器的图形。
程序设计如下:
%设计带阻滤波器
wlp=2850*pi*2fs;wls=3400*pi*2fs; wup=4900*pi*2fs;wus=4600*pi*2fs; B=(wus-wls); M=ceil(12*piB)-1;
wp=[(wls+wlp)2pi,(wus+wup)2pi];
[bz,az]=fir1(M,wp,'stop',blackman(M+2)); =fir1(M,wp,'stop',blackman(M+2)); %带阻滤波器窗函数图像
figure(5) subplot(1,1,1); freqz(); grid on; axis tight;
title('窗函数图像'); xlabel('Hz'); ylabel('幅度'); 程序运行结果如下:
3.4 对信号进行滤波处理
对加入噪声的语音信号进行滤波。用加窗函数的方法设计了巴带阻滤波器对加噪语音信号进行滤波,并绘制了加噪语音信号滤波后的时域图和频谱图。
程序设计如下: %画滤波后的图 figure(6) freqz(bz,az); grid on; axis tight; y3=filter(bz,az,x1);