基于MATLAB的语音信号分析和处理_第1页
基于MATLAB的语音信号分析和处理_第2页
基于MATLAB的语音信号分析和处理_第3页
基于MATLAB的语音信号分析和处理_第4页
基于MATLAB的语音信号分析和处理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WE ARE SEEING THE WORLD IN COLOR基于MATLAB 的语音信号分析和处理生物医学工程 2 班 方灿课题的研究意义课题的研究意义 语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。人类用语言交流的过程可以看成是一个复杂的通信

2、过程,为了获息的形式。人类用语言交流的过程可以看成是一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此语音信号就成为语音的表现形式或载体。语音信号就成为语音的表现形式或载体。 语音信号处理语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是展和计算

3、机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。语音信号的读入与打开语音信号的读入与打开 在在MATLABMATLAB中,中,y,fs,bits=wavread(Blip,N1 N2);y,fs,bits=wavread(Blip,N1 N2);用于读取语音,采样值放在向量用于读取语音,采样值放在向量y y中,

4、中,fsfs表示采样频率表示采样频率(Hz)(Hz),bitsbits表示采样位数。表示采样位数。N1 N2N1 N2表示读取的值从表示读取的值从N1N1点到点到N2N2点的值。点的值。 sound(y); sound(y); 用于对声音的回放。向量用于对声音的回放。向量y y则就代表了一个信号,也即一个复杂的则就代表了一个信号,也即一个复杂的“函数表达函数表达式式”,也可以说像处理一个信号的表达式一样处理这个声音信号。,也可以说像处理一个信号的表达式一样处理这个声音信号。下面是语音信号在下面是语音信号在MATLABMATLAB中的语言程序,它实现了语音的读入与打开,并绘出了语音信号中的语言程

5、序,它实现了语音的读入与打开,并绘出了语音信号的波形频谱图。的波形频谱图。x,fs,bits=wavread(wzf.wav); x,fs,bits=wavread(wzf.wav); sound(x); sound(x); X=fft(x,4096);X=fft(x,4096);magX=abs(X);magX=abs(X);angX=angle(X)angX=angle(X); ;subplot(221);plot(x);title(subplot(221);plot(x);title(原始信号波形原始信号波形););subplot(222);plot(X); title(subplot(

6、222);plot(X); title(原始信号频谱原始信号频谱););subplot(223);plot(magX);title(subplot(223);plot(magX);title(原始信号幅值原始信号幅值););subplot(224);plot(angX);title(subplot(224);plot(angX);title(原始信号相位原始信号相位););程序运行可以听到声音,得到的结果图所示:程序运行可以听到声音,得到的结果图所示:语言信号处理语言信号处理语音信号分析语音信号分析用用MATLABMATLAB绘制出语音信号的时域波形图和原始语音信号的绘制出语音信号的时域波形图

7、和原始语音信号的频率响应图和原始语音信号的频率响应图和原始语音信号的FFTFFT频谱图。程序设计如下:频谱图。程序设计如下:fs=22050; %fs=22050; %语音信号采样频率为语音信号采样频率为2205022050 x,fs,bits=wavread(wzf.wav); x,fs,bits=wavread(wzf.wav); sound(x,fs,bits); %sound(x,fs,bits); %播放语音信号播放语音信号y1=fft(x,1024); %y1=fft(x,1024); %对信号做对信号做10241024点点FFTFFT变换变换f=fsf=fs* *(0:511)/

8、1024;(0:511)/1024;figure(1)figure(1)plot(x) %plot(x) %做原始语音信号的时域波做原始语音信号的时域波形图形图title(title(原始语音信号时域图原始语音信号时域图););xlabel(time n);xlabel(time n);ylabel(fuzhi n);ylabel(fuzhi n);figure(2)figure(2)freqz(x) %freqz(x) %绘制原始语音信号的频率绘制原始语音信号的频率响应图响应图title(title(频率响应图频率响应图)figure(3)figure(3):plot(f,abs(y1(1:

9、512);plot(f,abs(y1(1:512);title(title(原始语音信号频谱原始语音信号频谱)xlabel(Hz);xlabel(Hz);ylabel(fudu); ylabel(fudu); 如图所示如图所示含噪语音信号的合成含噪语音信号的合成在在MATLABMATLAB软件平台下,给原始的语音信号叠加上噪软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:(声,噪声类型分为如下几种:(1 1)单频噪色(正弦干)单频噪色(正弦干扰);(扰);(2 2)高斯随机噪声。绘出加噪声后的语音信号)高斯随机噪声。绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对

10、比,时域和频谱图,在视觉上与原始语音信号图形对比,也可通过也可通过WindowsWindows播放软件从听觉上进行对比,分析并播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。程序代码体会含噪语音信号频谱和时域波形的改变。程序代码如下:如下:fs=22050; %fs=22050; %语音信号采样频率语音信号采样频率为为2205022050 x,fs,bits=wavread(ding.wav); %x,fs,bits=wavread(ding.wav); %读取语音信读取语音信号的数据,赋给变量号的数据,赋给变量x x%sound(x)%sound(x)%t=0:1/22

11、050:(size(x)-1)/22050;%t=0:1/22050:(size(x)-1)/22050;y1=fft(x,1024); %y1=fft(x,1024); %对信号做对信号做10241024点点FFTFFT变换变换f=fsf=fs* *(0:511)/1024;(0:511)/1024;x1=rand(1,length(x); %x1=rand(1,length(x); %产生一与产生一与x x长度一致的长度一致的随机信号随机信号 x2=x1+x;x2=x1+x;%t=0:(size(x)-1); %t=0:(size(x)-1); %加入正弦噪音加入正弦噪音%Au=0.3;%

12、Au=0.3;%d=Au%d=Au* *sin(6sin(6* *pipi* *50005000* *t);t);%x2=x+d;%x2=x+d; sound(x2);sound(x2);figure(1)figure(1)subplot(2,1,1)subplot(2,1,1)plot(x) %plot(x) %做原始做原始 语音信号的时域图形语音信号的时域图形title(title(原语音信号时域图原语音信号时域图)subplot(2,1,2)subplot(2,1,2)plot(x2) %plot(x2) %做原做原始语音信号的时域图形始语音信号的时域图形title(title(加高斯噪

13、声后语音信号时域图加高斯噪声后语音信号时域图)xlabel(time n);xlabel(time n);ylabel(fudu);ylabel(fudu);y2=fft(x2,1024);y2=fft(x2,1024);figure(2)figure(2)subplot(2,1,1)subplot(2,1,1)plot(abs(y1)plot(abs(y1)title(title(原始语音信号频谱原始语音信号频谱););xlabel(Hz);xlabel(Hz);ylabel(fudu);ylabel(fudu);subplot(2,1,2)subplot(2,1,2)plot(abs(y2

14、)plot(abs(y2)title(title(加噪语音信号频谱加噪语音信号频谱););xlabel(Hz);xlabel(Hz);ylabel(fudu);ylabel(fudu);程序运行可以听到声程序运行可以听到声音,得到的结果图所示:音,得到的结果图所示:高斯高斯随机随机噪声噪声正弦正弦sinsin噪声的噪声的加噪语加噪语音信号音信号滤波器的设计滤波器的设计双线性变换法设计了巴特沃斯低通滤波器对加噪双线性变换法设计了巴特沃斯低通滤波器对加噪语音信号进行滤波语音信号进行滤波对加入高斯随机噪声和正弦噪声的语音信号进对加入高斯随机噪声和正弦噪声的语音信号进行滤波。用双线性变换法设计了巴特沃

15、斯数字低行滤波。用双线性变换法设计了巴特沃斯数字低通通IIRIIR滤波器对两加噪语音信号进行滤波,并绘滤波器对两加噪语音信号进行滤波,并绘制了巴特沃斯低通滤波器的幅度图和两加噪语音制了巴特沃斯低通滤波器的幅度图和两加噪语音信号滤波前后的时域图和频谱图。程序设计如下:信号滤波前后的时域图和频谱图。程序设计如下:x,fs,bits=wavread(wzf.wav);x,fs,bits=wavread(wzf.wav);%sound(x)%sound(x)% %随机噪声合成随机噪声合成x2=rand(1,length(x); %x2=rand(1,length(x); %产生一与产生一与x x长度一

16、长度一致的随机信号致的随机信号 y=x+x2;y=x+x2;% %加入正弦噪声加入正弦噪声%t=0:(size(x)-1);%t=0:(size(x)-1);%Au=0.3;%Au=0.3;%d=Au%d=Au* *sin(2sin(2* *pipi* *500500* *t);t);%y=x+d;%y=x+d;wp=0.1wp=0.1* *pi;pi;ws=0.4ws=0.4* *pi;pi;Rp=1;Rp=1;Rs=15;Rs=15;Fs=22050;Fs=22050;Ts=1/Fs;Ts=1/Fs;wp1=2/Tswp1=2/Ts* *tan(wp/2); %tan(wp/2); %将模

17、拟指标将模拟指标转换成数字指标转换成数字指标ws1=2/Tsws1=2/Ts* *tan(ws/2); tan(ws/2); N,Wn=buttord(wp1,ws1,Rp,Rs,s); N,Wn=buttord(wp1,ws1,Rp,Rs,s); % %选择滤波器的最小阶数选择滤波器的最小阶数Z,P,K=buttap(N); %Z,P,K=buttap(N); %创建创建butterworthbutterworth模拟滤波器模拟滤波器Bap,Aap=zp2tf(Z,P,K);Bap,Aap=zp2tf(Z,P,K);b,a=lp2lp(Bap,Aap,Wn); b,a=lp2lp(Bap,A

18、ap,Wn); bz,az=bilinear(b,a,Fs); %bz,az=bilinear(b,a,Fs); %用双用双线性变换法实现模拟滤波器到数字滤波器线性变换法实现模拟滤波器到数字滤波器的转换的转换H,W=freqz(bz,az);%H,W=freqz(bz,az);%绘制频率响的转换绘制频率响的转换figure(1)figure(1)plot(Wplot(W* *Fs/(2Fs/(2* *pi),abs(H)pi),abs(H)gridgridf1=filter(bz,az,y);f1=filter(bz,az,y);figure(2)figure(2)subplot(2,1,1)

19、subplot(2,1,1)plot(t,y) %plot(t,y) %画出滤波前画出滤波前的时域图的时域图title(title(滤波前的时域波形滤波前的时域波形););subplot(2,1,2)subplot(2,1,2)plot(t,f1); %plot(t,f1); %画出滤波画出滤波后的时域图后的时域图title(title(滤波后的时域波形滤波后的时域波形););sound(f1); %sound(f1); %播放滤波播放滤波后的信号后的信号F0=fft(f1,1024);F0=fft(f1,1024);f=fsf=fs* *(0:511)/1024;(0:511)/1024;f

20、igure(3)figure(3)y2=fft(y,1024);y2=fft(y,1024);subplot(2,1,1);subplot(2,1,1);plot(f,abs(y2(1:512);%plot(f,abs(y2(1:512);%画出滤波前的画出滤波前的频谱图频谱图title(title(滤波前的频谱滤波前的频谱)xlabel(Hz);xlabel(Hz);ylabel(fuzhi);ylabel(fuzhi);subplot(2,1,2)subplot(2,1,2)F1=plot(f,abs(F0(1:512);%F1=plot(f,abs(F0(1:512);%画出滤波画出滤波

21、后的频谱图后的频谱图title(title(滤波后的频谱滤波后的频谱)xlabel(Hz);xlabel(Hz);ylabel(fuzhi);ylabel(fuzhi);程序运行可以播放滤波前面的语音信号,程序运行可以播放滤波前面的语音信号,对比滤波前面的语音效果,得到的结果分别对比滤波前面的语音效果,得到的结果分别图所示:图所示:高斯高斯噪声噪声滤波滤波正弦正弦噪声噪声滤波滤波利用双线性变换实现频率响应利用双线性变换实现频率响应S S域到域到Z Z域的变换域的变换利用双线性变换实现频率响应利用双线性变换实现频率响应S S域到域到Z Z域的变域的变换法换法设计了巴特沃斯低通数字设计了巴特沃斯低

22、通数字IIRIIR滤波器,对加滤波器,对加入高斯随机噪声和正弦噪声的语音信号进行滤波,入高斯随机噪声和正弦噪声的语音信号进行滤波,并绘制了两滤波器滤波前后的语音信号时域图和并绘制了两滤波器滤波前后的语音信号时域图和频谱图。程序设计如下:频谱图。程序设计如下:Ft=8000;Ft=8000;Fp=1000;Fp=1000;Fs=1200;Fs=1200;wp=2wp=2* *pipi* *Fp/Ft;Fp/Ft;ws=2ws=2* *pipi* *Fs/Ft;Fs/Ft;fp=2fp=2* *FtFt* *tan(wp/2);tan(wp/2);fs=2fs=2* *FsFs* *tan(wp/

23、2);tan(wp/2);n11,wn11=buttord(wp,ws,1,50,s); %n11,wn11=buttord(wp,ws,1,50,s); %求求低通滤波器的阶数和截止频率低通滤波器的阶数和截止频率b11,a11=butter(n11,wn11,s); %b11,a11=butter(n11,wn11,s); %求求S S域的频率响应的参数域的频率响应的参数 num11,den11=bilinear(b11,a11,0.5); %num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应利用双线性变换实现频率响应S S域到域到Z Z域的变

24、换域的变换 x,fs,nbits=wavread (wzf.wav);x,fs,nbits=wavread (wzf.wav);n = length (x) ; %n = length (x) ; %求出语音信号求出语音信号的长度的长度t=0:(n-1);t=0:(n-1);x2=rand(1,length(x); %x2=rand(1,length(x); %产生一与产生一与x x长度一致的随机信号长度一致的随机信号 y=x+x2;y=x+x2;% %加入正弦噪声加入正弦噪声%t=0:(size(x)-1);%t=0:(size(x)-1);%Au=0.03;%Au=0.03;%d=Au%d=Au* *sin(2sin(2* *pipi* *500500* *t);t);%y=x+d;%y=x+d;figure(1)figure(1)f2=filter(num11,den11,y)f2=filter(num11,den

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论