基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计.doc_第1页
基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计.doc_第2页
基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计.doc_第3页
基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计.doc_第4页
基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

语音信号处理系统设计摘要:语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等。本文简要介绍了语音信号采集与分析以及语音信号的特征、采集与分析方法,并在采集语音信号后,在MATLAB软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。利用MATLAB来读入(采集)语音信号,将它赋值给某一向量,再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波,然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。关键词:Matlab,语音信号,傅里叶变换,滤波器1课程设计的目的和意义本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。通过完成本课题的设计,拟主要达到以下几个目的:1.1了解Matlab软件的特点和使用方法。1.2掌握利用Matlab分析信号和系统的时域、频域特性的方法;1.3掌握数字滤波器的设计方法及应用。1.4了解语音信号的特性及分析方法。1.5通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。2 设计任务及技术指标设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。具体任务是:2.1采集语音信号。2.2对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。2.3针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。2.4对噪声滤除前后的语音进行时频域分析。2.5. 对语音信号进行重采样,回放并与原始信号进行比较。2.6对语音信号部分时域参数进行提取。2.7设计图形用户界面(包含以上功能)。3 设计方案论证3.1语音信号的采集 使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。3.2语音信号的处理语音信号的处理主要包括信号的提取播放、信号的重采样、信号加入噪声、信号的傅里叶变换和滤波等,以及GUI图形用户界面设计。.语音信号的时域分析语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法。.语音信号的频域分析信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。.模拟滤波器原理(1)模拟巴特沃思滤波器原理巴特沃斯滤波器具有单调下降的幅频特性:在小于截止频率的范围内,具有最平幅度的响应,而在后,幅频响应迅速下降。巴特沃思低通滤波器幅度平方函数为: (2-1)式中N为滤波器阶数,为3dB截止角频率。将幅度平方函数写成s的函数: (2-2) 该幅度平方函数有2N个等间隔分布在半径为的圆上的极点, 为了形成稳定的滤波器,取左半平面的N个极点构成,即: (2-3) 为使设计统一,将频率归一化,得到归一化极点,相应的归一化系统函数为: (2-4)多项式形式为: (2-5)(2)模拟切比雪夫滤波器原理 切比雪夫滤波器的幅频特性具有等波纹特性,有两种形式,在通带内等波纹、阻带单调的是I型滤波器,在通带内单调、在阻带内等波纹的是II滤波器。以I型滤波器为例。切比雪夫滤波器的幅度平方函数为: (2-6) 为小于1的正数,表示通带内幅度波动的程度。p称为通带截止频率。令=/p,称为对p的归一化频率。CN(x)为N阶切比雪夫多项式。幅度平方函数的极点是分布在bp为长半轴,ap为短半轴的椭圆上的点。同样取s平面左半平面的极点构成: (2-7)进行归一化,得到: (2-8)其中 , (3)模拟滤波器数字化原理将模拟滤波器转化为数字滤波器在工程上常用的有脉冲响应不变法和双线性变换法。脉冲响应不变法时一种时域上的转换方法,它是数字滤波器的单位取样响应在抽样点上等于模拟滤波器的单位冲激响应,即: (2-9)设模拟滤波器只有单阶极点,其系统函数为: (2-10)对进行拉氏反变换得到,对进行等间隔抽样,得到,对进行Z变换,得到数字滤波器系统函数: (2-11)这种方法s和z的关系是:。该方法的优点是频率坐标变换时线性的切数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近好;缺点是会产生频谱混叠现象,适合低通、带通滤波器的设计,不适合高通、带阻滤波器的设计。 双线性变换法为了克服频谱混叠现象,采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到之间,再用转换到Z平面上。这种方法s和z的关系是:。该方法克服了频谱混叠现象,但带来了频率坐标变换的非线性:,由模拟滤波器系统函数转换为数字滤波器系统函数公式为: (2-12)3.3语音信号的效果显示图形用户界面(Graphical User Interface,GUI)是由窗口、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标、键盘)选择激活这些图形对象,实现计算、绘图等。创建图形用户界面须具有三类基本元素:(1)组件:图形化控件(如按钮、编辑框、列表框等)、静态元素(如文本字符串)、菜单和坐标系。(2)图形窗口:GUI的每一个组件都须安排在图形窗口中。(3)回应:如用户用鼠标单击或用键盘输入信息后,程序要有相应的动作。3.4短时能量及短时平均幅度短时能量函数和短时平均幅度函数是基于语音信号幅度的变化。清音段幅度小,其能量集中于高频段;浊音段幅度较大,其能量集中于低频段。短时能量函数对信号电平值过于敏感。由于需要计算信号样值的平方和,在实际应用中(如定点设备)很容易溢出,所以可以用平均幅度函数来代替短时能量函数。短时能量函数定义: (6-1)短时平均幅度函数定义: (6-2)(2)作用(a) 区分清/浊音:En、Mn大,对应浊音; En、Mn小,对应清音。(b) 在信噪比高的情况下,能进行有声/无声判决:无声时,背景噪声的En、Mn小;有声时,En、Mn显著增大。判决时可设置一个门限。 3.5短时平均过零率(1)过零率定义:信号跨越横轴的情况。对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。 (2)短时平均过零率对于语音信号,是宽带非平稳信号,考察其短时平均过零率。 (6-3)其中sgn.为符号函数, (6-4)(3)作用(a) 区分清/浊音:浊音平均过零率低,集中在低频端;清音平均过零率高,集中在高频端。(b) 从背景噪声中找出是否有语音,以及语音的起点。3.6短时自相关函数相关函数用于确定两个信号在时域内的相似性。常用的物理量为自相关函数和互相关函数。当两个信号的互相关函数大时,则说明一个信号可能是另一个信号的时间滞后或提前;当互相关函数为0时,则两个信号完全不同。自相关函数用于研究信号本身,如波形的同步性和周期性。(1)自相关函数定义 (5-5)(2)自相关函数特点(a) 当时域信号为周期信号时,自相关函数也是周期性函数,两者具有同样的周期。(b) Rn(k)为偶函数, Rn(k)Rn(k)(c) Rn(0)最大, Rn(0) |Rn(k)|, Rn(0)=En,对于确定信号, Rn(0)是信号能量;对于随机信号或周期信号, Rn(0)是平均功率。(3)作用(a) 区分清/浊音。浊音语音的自相关函数具有一定的周期性。清音语音的自相关函数不具有周期性,类似噪声。(b) 估计浊音语音信号的周期,即估计基音周期。3.7系统初步流程图下图列出了整个语音信号处理系统的工作流程:打开语音信号读语音信号信号频谱分析信号重采样信号加噪声信号滤波信号分帧求信号的参数GUI设计4 设计内容4.1语音信号的打开程序:x,fs,nbits=wavread(mei.wav); %打开语音信号 sound(x,fs,nbits); %播放语音信号N=length(x); %长度n=0:N-1;w=2*n*pi/N; y1=fft(x); %对原始信号做FFT变换subplot(2,1,1); plot(n,x) %做原始语音信号的时域波形图title(原始语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做原始语音信号的频谱图plot(w/pi,abs(y1);title(原始语音信号频谱)xlabel(频率Hz);ylabel(幅度);程序结果:-4.2 信号重采样程序:x,fs,nbits=wavread(mei.wav); %打开语音信号 x1=resample(x,1,2); %进行8KHZ重采样sound(x1,fs/2,nbits); %读重采样后的信号x2=resample(x,1,4); %进行4KHZ重采样sound(x2,fs/4,nbits); %读重采样后的信号n1=0:N/2-1;n2=0:N/4-1;w1=4*n1*pi/N;w2=8*n2*pi/N;y1=fft(x1); %对重采样信号做FFT变换y2=fft(x2);figure(1)subplot(2,1,1); plot(n1,x1) %做8khz重采样语音信号的时域波形图title(8KHZ重采样语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做8KHZ重采样语音信号的频谱图plot(w1/pi,abs(y1);title(8KHZ重采样语音信号频谱)xlabel(频率Hz);ylabel(幅度);figure(2)subplot(2,1,1); plot(n2,x2) %做4KHZ重采样语音信号的时域波形图title(4KHZ重采样语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做4KHZ重采样语音信号的频谱图plot(w2/pi,abs(y2);title(4KHZ重采样语音信号频谱)xlabel(频率Hz);ylabel(幅度);程序结果:-4.3加噪音程序:x=wavread(mei.wav); %打开语音信号 N=length(x); %长度n=0:N-1;w=2*n*pi/N;z=0.02*cos(10*n); %噪音sound(z,fs,nbits); %读噪音y=x+z; %加噪音sound(y,fs,nbits); %读加噪音后的信号y1=fft(z); %对噪音做FFT变换y2=fft(y); %对加噪信号做FFT变换figure(1)subplot(2,1,1); %做噪音信号的时域波形图plot(n,z);axis(0,50,-0.02,0.02); title(噪音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做噪音信号的频谱图plot(w/pi,abs(y1);title(噪音信号频谱)xlabel(频率Hz);ylabel(幅度);figure(2)subplot(2,1,1); %做加噪音信号的时域波形图plot(n,y);axis(0,50,-0.02,0.02); title(加噪音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做加噪音信号的频谱图plot(w/pi,abs(y2);title(加噪音信号频谱)xlabel(频率Hz);ylabel(幅度);程序结果:-4.4滤波器function db,mag,pha,w=freqz_m(b,a);H,w=freqz(b,a,1000,whole); %在0-2*pi之间选取N个点计算频率响应H=(H(1:501); %频率响应 w=(w(1:501); %频率mag=abs(H); %响应幅度db=20*log10(mag+eps)/max(mag); %增益pha=angle(H);-function b,a=afd_butt(Wp,Ws,Rp,As)N=ceil(log10(10(Rp/10)-1)/(10(As/10)-1)/(2*log10(Wp/Ws); %滤波器阶数N为整数fprintf(n Butterworth Filter Order=%2.0fn,N)OmegaC=Wp/(10(Rp/10)-1)(1/(2*N) %求对应于N的3db截止频率b,a=u_buttap(N,OmegaC);-function b,a=imp_invr(c,d,T)R,p,k=residue(c,d); %部分分式展开p=exp(p*T); %从模拟到数字极点对应关系,部分分式系数相同b,a=residuez(R,p,k); %将部分分式的形式变换成多项式之比的形式b=real(b); %求出数字滤波器系数a=real(a);-程序:wp=0.6*pi;ws=0.75*pi;Rp=1;As=30;T=1; %定义滤波器参数 OmegaP=wp/T;OmegaS=ws/T;cs,ds=afd_butt(OmegaP,OmegaS,Rp,As);b,a=imp_invr(cs,ds,T);db,mag,pha,w=freqz_m(b,a);figure(1)subplot(2,1,1);plot(w/pi,mag); %作出滤波器的图形title(digital filter Magnitude Response)axis(0,1,0,1.1)subplot(2,1,2);plot(w/pi,db);title(digital filter Magnitude in DB)axis(0,1,-40,5);x=wavread(mei.wav); %打开语音信号 N=length(x); %长度n=0:N-1;w=2*n*pi/N;z=0.02*cos(10*n); %噪音y=x+z; y1=filter(b,a,y); %用滤波器滤波y2=fft(y1); %对滤波后信号做FFT变换sound(y1); %读滤波后信号figure(2)subplot(2,1,1); plot(n,y1) %做滤波后信号的时域波形图title(滤波后信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); %做滤波后信号的频谱图plot(w/pi,abs(y2);title(滤波后信号频谱)xlabel(频率Hz);ylabel(幅度);-4.5 GUI的函数1 开语音global x;global fs; global nbits; global w;global N; H=*.wav; x,fs,nbits=wavread(mei.wav); y=fft(x);N=length(x); n=0:N-1;w=2*n*pi/N;subplot(2,1,1); plot(n,x) title(原始语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); plot(w/pi,abs(y);title(原始语音信号频谱)xlabel(频率Hz);ylabel(幅度);点开语音键结果:-2 读语音global fs; global x;sound(x,fs);-3 重采样global x;global fs;global nbits;N=length(x);x1=resample(x,1,2);sound(x1,fs/2,nbits);x2=resample(x,1,4);sound(x2,fs/4,nbits);n1=0:N/2-1;n2=0:N/4-1; w1=4*n1*pi/N;w2=8*n2*pi/N;y11=fft(x1);y12=fft(x2);subplot(2,2,1); plot(n1,x1) %8kh重采样语音信号时域图title(8KH重采样语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,2,2); %8KH重采样语音信号频域图plot(w1/pi,abs(y11);title(8KH重采样语音信号频域图)xlabel(频率Hz);ylabel(幅度);subplot(2,2,3); plot(n2,x2) %4KH重采样语音信号时域图title(4KH重采样语音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,2,4); %4KH重采样语音信号频域图plot(w2/pi,abs(y12);title(4KH重采样语音信号频域图)xlabel(频率Hz);ylabel(幅度);点重采样键结果:fs=8000HZ和fs=4000HZ-4 噪音键global w;global N;global fs;global nbits;global z;n=0:N-1;z=0.02*cos(10*n); sound(z,fs,nbits);y2=fft(z);subplot(2,1,1); plot(n,z);axis(0,50,-0.02,0.02); title(噪音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2); plot(w/pi,abs(y2);title(噪音信号频谱)xlabel(频率Hz);ylabel(幅度);点噪音键结果:-5 加噪音global x;global fs; global nbits; global w;global N;global z;global y; y1=wavread(mei.wav);n=0:N-1;y=y1+z; sound(y2,fs,nbits);y3=fft(y2); subplot(2,1,1);plot(n,y);axis(0,50,-0.02,0.02);title(加噪音信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2);plot(w/pi,abs(y3);title(加噪音信号频谱)xlabel(频率Hz);ylabel(幅度);点加噪音键结果:-6 滤波器global a;global b;A=str2double(get(handles.edit1,String);B=str2double(get(handles.edit2,String);C=str2double(get(handles.edit3,String);D=str2double(get(handles.edit4,String);wp=A*pi;ws=B*pi;Rp=C;As=D;T=1;OmegaP=wp/T;OmegaS=ws/T;cs,ds=afd_butt(OmegaP,OmegaS,Rp,As);b,a=imp_invr(cs,ds,T);db,mag,pha,w=freqz_m(b,a);subplot(2,1,1);plot(w/pi,mag);title(digital filter Magnitude Response)axis(0,1,0,1.1)subplot(2,1,2);plot(w/pi,db);title(digital filter Magnitude in DB)axis(0,1,-40,5);点滤波器键结果:-7 滤波global a;global fs;global b;global y;global w;global nbits;global fs;global N;n=0:N-1;y1=filter(b,a,y);y2=fft(y1);sound(y1,fs,nbits);subplot(2,1,1); plot(n,y1)title(滤波后信号时域图);xlabel(时间t);ylabel(幅值);subplot(2,1,2);plot(w/pi,abs(y2);title(滤波后信号频谱)xlabel(频率Hz);ylabel(幅度);点滤波键结果:-8 输入框的回调函数input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,0)endguidata(hObject, handles);4.6选作部分分帧M文件function f=enframe(x,len,inc)fh=fix(size(x,1)-len)/inc)+1);f=zeros(fh,len);i=1;n=1;while i=fh j=1; while j=len f(i,j)=x(n); j=j+1;n=n+1; end n=n-len+inc; i=i+1;end-过零率zcrofunction f=zcro(x)f=zeros(size(x,1),1);for i=1:size(x,1)z=x(i,:);for j=1:(length(z)-1);if z(j)*z(j+1)0;f(i)=f(i)+1;endendend-1、短时平均能量z,fs,nbits=wavread(mei.wav);y=enframe(z,400,200);y1=y.2;energy=sum(y1,2);subplot(2,1,1)plot(z);title(原始信号);xlabel(样点数);ylabel(幅度);subplot(2,1,2)plot(energy);xlabel(帧数);ylabel(短时能量E);-2、短时平均幅度z,fs,nbits=wavread(mei.wav);y=enframe(z,400,200);y1=y.2;energy=sum(y1,2);figure(1)subplot(2,1,1)plot(z);title(原始信号);xlabel(样点数);ylabel(幅度);subplot(2,1,2)plot(energy);xlabel(帧数);ylabel(短时能量E);-3、过零函数z,fs=wavread(mei.wav);y=enframe(z,220,110);zcr=zcro(y); %求过零率subplot(2,1,1)plot(z);title(原始信号);xlabel(样点数);ylabel(幅度);subplot(2,1

温馨提示

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

评论

0/150

提交评论