语音信号谱分析及去噪处理

上传人:小** 文档编号:87296244 上传时间:2019-04-01 格式:DOCX 页数:6 大小:695.29KB
返回 下载 相关 举报
语音信号谱分析及去噪处理_第1页
第1页 / 共6页
语音信号谱分析及去噪处理_第2页
第2页 / 共6页
语音信号谱分析及去噪处理_第3页
第3页 / 共6页
语音信号谱分析及去噪处理_第4页
第4页 / 共6页
语音信号谱分析及去噪处理_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《语音信号谱分析及去噪处理》由会员分享,可在线阅读,更多相关《语音信号谱分析及去噪处理(6页珍藏版)》请在金锄头文库上搜索。

1、实验三:语音信号谱分析及去噪处理1、实验目的(1)通过对实际采集的语音信号进行分析和处理,获得数字信号处理实际应用的认识。(2)掌握数字信号谱分析的知识。(3)掌握数字滤波器设计的知识,并通过对语音信号的去噪处理,获得数字滤波器实际应用的知识。2、实验内容(1)用麦克风自行采集两段语音信号高频噪声、人声+高频噪声(.wav格式)。(2)通过Matlab读入采集信号,观察其采样频率,并绘图采样信号。(3)通过Matlab对语音信号进行谱分析,分析出噪声的频带。(4)设计一滤波器,对叠加入噪声的语音信号进行去噪处理。绘图并发声去噪后的信号。3、实验步骤(1)利用麦克风采集一段5s以内的语音信号。利

2、用格式工厂软件对语音信号进行预处理。通常语音信号为单声道,采样频率为8000Hz,语音信号为.wav格式。(2)通过Matlab读入语音信号及其采样频率(使用Matlab库函数wavread),在Matlab软件的workspace工作平台上观察读入的语音信号,在Matlab中,对入的语音信号为一维矩阵。应注意,库函数wavread自动将语音信号幅度归一化-1,1区间范围。使用Matlab库函数plot绘图语音信号,并使用库函数sound发音语音信号。(3)分析噪声的频谱。在这里进行谱分析的目的,是了解噪声信号的频谱特性,为去噪滤波器的技术指标提供依据。(4) 通过Matlab对语音信号进行谱

3、分析。应注意,对信号进行谱分析,在实验一中已经详细介绍过。在这里进行谱分析的目的,是了解本段语音信号的频谱特性,为去噪滤波器的技术指标提供依据。(5) 根据语音信号及噪声信号的频谱特性,自行设计一滤波器,对叠加入噪声的语音信号进行去噪处理。最后绘图并发声去噪后的信号。应注意,数字滤波器的实际应考虑实际需求,合理制定滤波器的技术指标。4、实验原理用麦克风采集一段语音信号,绘制波形并观察其频谱,添加一段随机信号,给定相应的滤波器指标, 用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。5、实验内容5.1设计流程图语音信号滤波

4、去噪使用双线性变换法设计的巴特沃斯滤波器的设计流程如图语音信号的采集(wavread函数),画时域图快速傅里叶变换,并且画频谱图开始设定滤波器性能指标,通带截止频率fb=1100,阻带截止频率fc=1200,通带波纹Ap=1,阻带波纹As=20验证并进行频谱分析双线性变换法设计巴特沃斯滤波器结束回放语音信号比较滤波前后语音信号的波形及频谱设计好的滤波器进行滤波处理5.2原始语音信号的频谱分析源代码:clear all;%语音信号的读入和打开,画出语音信号的频谱图x,fs=wavread(yinpin.wav)%调用音频文件,采样值放在x中,fs为采样频率 x=x(:,1);%取矩阵x的第一列赋

5、值到x矩阵中 FS=length(x); % 矩阵x的长度 f=0:fs/FS:(FS-1)*fs/FS; %生成一个一维数组赋给f X=fft(x,4096); %对信号做4096点FFT变换 magX=abs(X); %取X的幅值给magX t=(0:FS-1)/fs; subplot(2,1,1);plot(t,x); %绘制原始语音信号的时域波形图 title(原始语音信号时域波形图); xlabel(时间/n); ylabel(幅值/n); grid on; f=fs*(0:511)/1024; %生成一个一维数组赋给f figure(1) subplot(2,1,2);plot(m

6、agX); title(原始信号频域图); grid on; 5.3 加入一个随机噪声%利用下列程序对原始语音信号进行加噪处理,并绘制出加随机噪声后语音信号的时域图和频谱图。 noise_mu=0; %取噪声的均值为0 noise_var=0.000005; %取噪声的方差为0.00005 x_noise=randn(size(x).*sqrt(noise_var)+noise_mu;%语句产生与原始语音长度相同的随机噪声 x1=x+x_noise; %把这个噪声添加到原始语音中,得到加噪语音信号 ts=1/fs; ta=(length(x)-1)/fs; t=0:ts:ta; figure(

7、2); subplot(2,1,1);plot(t,x1); %绘制加随机噪声后语音信号时域图 title(加随机噪声后语音信号时域图); xlabel(t); ylabel(x1); grid on; y2=fft(x1,1024); %对信号做1024点FFT变换 f=fs*(0:511)/1024; subplot(2,1,2); %绘制原始语音信号的频率响应图 plot(f,abs(y2(1:512); title(加随机噪声后的语音信号频谱图) xlabel(f/Hz); ylabel(幅度); grid on;5.4 根据指标设计IIR数字滤波器低通滤波器的性能指标:fp=1200

8、Hz,fs=1100Hz,ft=8000Hz, As=20db ,Ap=1dB%根据指标设计IIR数字滤波器Fp=1200;%阻带截止频率Fs=1100;%通带截止频率Ft=8000;%采集频率As=20;%通带波纹Ap=1Ap=1;%阻带波纹As=20wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Ft*tan(ws/2);n,wn=buttord(wp,ws,Ap,As,s); %求低通滤波器的阶数和截止频率b,a=butter(n,wn,s); %求S域的频率响应的参数 B,A=bilinear(b,a,1); %双线性变换实现S域到

9、Z域的变换 h,w=freqz(B,A); %根据参数求出频率响应figure(3);plot(w*8000*0.5/pi,abs(h);5.5 进行低通滤波,比较滤波前后语音信号的波形及频谱%进行低通滤波,比较滤波前后语音信号的波形及频谱: Y=fft(x1);y1=filter(B,A,x1); %利用滤波器对语音信号滤波 Y1=fft(y1); n=0:length(x1)-1; t=(0:FS-1)/fs; figure(4); subplot(2,2,1);plot(t,x1);title(未滤波语音波形); subplot(2,2,2);plot(t,y1);title(滤波后语音波形); subplot(2,2,3);plot(n,Y);title(未滤波语音频谱); subplot(2,2,4);plot(n,Y1);title(滤波后语音频谱); sound(y1,fn,nbits); %滤波后语音回放6、结果分析由图中滤波前后波形比较可看出,经过滤波后的波形比原波形的振幅有所减小,去除了很多由于噪声所产生的干扰;从滤波前后的频谱比较可以看出经过滤波后除了原本的声音外,中间由于噪声产生的频谱波形已经滤除;经过MATLAB仿真,听滤波前后的声音,可以听出有明显的滤波效果。因此利用双线性变换法设计的巴特沃斯滤波器已经达到了设计的要求。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号