1、(完整word版)数字信号处理语音信号分析与处理及其MATLAB实现.目 录摘要21 设计目的与要求32 设计步骤43 设计原理及内容5 3.1 理论依据5 3.2 信号采集6 3.3 构造受干扰信号并对其FFT频谱分析8 3.4 数字滤波器设计9 3.5 信号处理10总 结12致 谢13参考文献14摘 要用MATLAB对语音信号进行分析与处理,采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测和参数估计等处理。IIR数字滤波器最大的优
2、点是给定一组指标时,它的阶数要比相同组的FIR滤波器的低的多。信号处理中和频谱分析最为密切的理论基础是傅立叶变换(FT)。离散傅立叶变换(DFT)和数字滤波是数字信号处理的最基本内容。关键词:MATLAB;语音信号;加入噪声;滤波器;滤波1. 设计目的与要求(1)待处理的语音信号是一个在20Hz20kHz频段的低频信号(2)要求MATLAB对语音信号进行分析和处理,采集语音信号后,在MATLAB平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器进行滤除噪声,恢复原信号。2. 设计步骤(1)选择一个语音信号或者自己录制一段语音文件作为分析对象;(2
3、)对语音信号进行采样,并对语音信号进行FFT频谱分析,画出信号的时域波形图和频谱图;(3)利用MATLAB自带的随机函数产生噪声加入到语音信号中,对语音信号进行回放,对其进行FFT频谱分析;(4)设计合适滤波器,对带有噪声的语音信号进行滤波,画出滤波前后的时域波形图和频谱图,比较加噪前后的语音信号,分析发生的变化;(5)对语音信号进行回放,感觉声音变化。3. 设计原理及内容3.1 理论依据(1)采样频率:采样频率(也称采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率只能用于周期性采样的采样器,对于非周期采样的采样器没有规则限制。通俗的讲,
4、采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位之间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。(2)采样位数:即采样值或取样值,用来衡量声音波动变化的参数。(3)采样定理:在进行模拟/数字信号的的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max=2fmax,则采样之后的数字信号完整的保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍;采样频率又称乃奎斯特定理。(4)时域信号的FFT分析:信号的频谱分析就是计算信号的傅
5、立叶变换。连续信号与系统的傅立叶分析显然不便于直接用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值计算,成为用计算机分析离散信号和系统的的有力工具。对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。(5)数字信号滤波器原理和方法:IIR数字滤波器系统函数: 其中H(z)成为N阶IIR数字滤波器系统函数。IIR滤波器设计方法有间接和直接法,间接法是借助于模拟滤波器的设计方法进行的。其步骤是:先设计过度模拟滤波器得到系统函数Ha(s),然后将Ha(s)按某种方法转换成数字滤波器的系统函数H(z)。利用有限脉冲响应(FIR)滤波器设计滤波器。有限脉冲响
6、应滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。用N表示FIR滤波器单位脉冲响应h(n)的长度,其系统函数H(z)为 H(z)是z-1的N-1次多项式,它在z平面上有N-1个零点,在原点z=0处有一个N-1重极点。因此,H(z)永远稳点。稳定和线性相位是FIR滤波器最突出的优点。(6)各种不同类型滤波器的性能比较:巴特沃斯滤波器具有单调下降的幅频特性;切比罗夫滤波器的幅频特性在通带或阻带有等波纹特性,可以提高选择性;贝塞尔滤波器通带内有有较好的线性相位特性;椭圆滤波器的选择性相对前三种是最好的,但通带和阻带内均呈现等波纹幅频特性,相对特性的非线性稍重。IIR数字滤波器
7、最大的优点是给定一组指标时,它的阶数要比相同组的FIR滤波器的低的多。IIR数字滤波器的设计方法是利用模拟滤波器成熟的理论及设计图进行设计的,因而保留了一些典型模拟滤波器的优良的幅度特性。(7)离散傅立叶变换 其中WN= ,N为DFT变换空间长度。 3.2 信号采集从网上下载一段wav格式的文件,把文件“marble”保存在MATLAB文件夹下的work文件夹中,以.wav格式保存,这是windows操作系统规定的声音文件保存的标准。x1,fs,bits=wavread(marble.wav);%把语音信号进行加载入MATLAB仿真软件平台中,采样值放在向量x1中,fs表示采样频率(Hz),b
8、its表示采样位数。x=x1(1:5000,1);%对双声道信号取单声道并取其5000点X=fft(x,4096);%对信号做4096点FFT变换调用参数x为被变换的时域序列向量,变换区间长度为4096,当x小于4096时,fft函数自动在x后面补零。函数返回x的4096点DFT变换结果X。当x大于4096时,fft函数计算x前面4096个元素构成的长序列的4096点DFT,忽略x后面的元素。进行图形分区,首先画出语音信号的时域波形,然后对其进行频谱分析。在MATLAB中利用fft对信号进行快速傅立叶变换,得到信号的频谱特性。magX=abs(X);%把傅里叶变换后的复数值取模subplot(
9、2,1,1);%图形分区plot(x);title(原始信号波形);%绘制波形f=(0:2047)*fs/2/2048;%单位转换subplot(2,1,2);plot(f,magX(1:2048);title(原始信号频谱);其程序如下:x1,fs,bits=wavread(marble.wav); %读取语音信号x=x1(1:5000,1);%对双声道信号取单声道并取其5000点X=fft(x,4096);%对信号做4096点FFT变换magX=abs(X);%把傅里叶变换后的复数值取模subplot(2,1,1);%图形分区plot(x);title(原始信号波形);%绘制波形f=(0:
10、2047)*fs/2/2048;%单位转换subplot(2,1,2);plot(f,magX(1:2048);title(原始信号频谱);程序结果如下图: 图3.1 原始信号3.3构造受干扰信号并对其FFT频谱分析其程序如下:t=0:0.0001:10;f1=3800;%噪声信号频率y1=0.5*sin(2*pi*f1*t);%噪声信号y2=y1(1,1:5000);%取噪声信号的5000点长度(1,1:5000)因为y1为列向量y=x+y2;%先对噪声信号转置再把噪声信号加入原始信号Y=fft(y2,4096);%求噪声信号频谱magY=abs(Y);%把傅里叶变换后的复数值取模subpl
11、ot(2,2,1);plot(y2);title(噪声信号波形);%绘制波形subplot(2,2,2);plot(f,magY(1:2048);title(噪声信号频谱);%绘制波形subplot(2,2,3);plot(y);title(加噪后信号波形);%绘制波形Y1=fft(y,4096);%对加噪后的信号做4096点FFT变换magY1=abs(Y1);%把傅里叶变换后的复数值取模subplot(2,2,4);plot(f,magY1(1:2048);title(加噪后信号频谱);%绘制波形程序结果如下图: 图3.2 噪声及加噪后图形 由图3.1和图3.2可以看出,在50001000
12、0之间噪声明显,加入噪声后得到的信号和原始的语音信号有明显的不同。3.4 数字滤波器设计设计数字滤波器的任务就是寻找一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。本实验采用MATLAB工具箱函数buttord设计数字低通IIR滤波器。低通滤波器的性能指标为:f_p=5000;f_s=6500; Rp=3;Rs=25;用伯特沃斯型设计滤波器程序如下:f_p=5000;f_s=6500; Rp=3;Rs=25;%设置滤波器参数Ws=f_s/(fs/2);Wp=f_p/(fs/2);N,wc=buttord(Wp,Ws,Rp,Rs);%计算滤波器阶数N和3dB截止频率wcb,
13、a=butter(N,wc);%计算滤波器系统函数分子分母多项式系数freqz(b,a,1000,fs);%绘制滤波器特性曲线 W 就是j后面的s或z,其实着看频谱图就行,H和W没什么用n是至你的数据点数后面还应该有个Fs,即采样率这样可以讲频谱图横轴变成Hz,不然就是个01的*pi/FS比例系数axis(0 8000 -30 3);程序结果如下图: 图3.3 数字低通滤波器图3.5 信号处理巴特沃斯滤波器利用函数filter进行滤波。用设计的滤波器对含噪声的语音信号进行滤波,对滤波后的信号进行FFT进行频谱分析。函数fft的调用格式是y=fft(b,x),低通滤波器:Z=fft(z,4096
14、);其程序如下:z=filter(b,a,y);%把加噪后的信号滤波subplot(2,1,1);plot(z);title(滤波后的波形);%绘制波形Z=fft(z,4096);%对信号做4096点FFT变换magZ1=abs(Z);%把傅里叶变换后的复数值取模magZ=magZ1(1:2048);%取点subplot(2,1,2);plot(magZ);title(滤波后的信号频谱);%绘制波形程序结果如下图: 图3.4 滤波后的图形将原始信号波形和滤波后的图形相比较,大致相同,说明滤波器有效果,滤波成功。总 结本设计采用MATLAB实现了语音信号的采集,对语音信号的加噪及设计滤波器滤除噪
15、声等一系列工作,从频率图可以看出,巴特沃斯滤波器具有单调下降的幅频特性,通带内是光滑的。我已基本完成设计任务,里面也有很多不足。通过本次教学实践,使我加深了对课堂知识的巩固和理解,并能掌握语音信号处理中的基本方法、理论应用和基于软硬件平台的算法实现技术。通过MATLAB中几个命令函数的调用,使得在实际应用和理论知识之间建立了联系,为以后的学习带来了非常的帮助。致 谢感谢指导老师的细心知道,在这几天里提供给我的支持和帮助。这是我能顺利完成这次报告的主要原因,老师认真负责的监督我们课程设计的进度,耐心的指导我们能够按时完成指定的任务。还要感谢学校给我们提供了这么好的环境,为我们的设计带来了很大的方
16、便。在此期间,我不仅学到了很多新的知识,而且还开拓了视野,提高了自己的设计能力。虽然有很多不足,但对我来说,这绝对是一次宝贵的历练。从中我切身体会到了现实和理论的差距,只有真正动手去做才能真正发现问题。再次感谢所有对我提供帮助的人,谢谢。参考文献【1】高西全、丁玉美编著.数字信号处理.西安:西安电子科技大学出版社,2008.【2】丁玉美、高西全编著.数字信号处理学习指导.西安:西安电子科技大学出版社,2001.【3】郑君里等编.信号与系统.北京:高等教育出版社,2000.【4】刘树棠译.数字信号处理使用MATLAB.西安:西安交通大学出版社,2002.【5】导向科技编著.MATLAB程序设计与实例应用.北京:中国铁道出版社,2001.【6】罗军辉等编著.MATLAB7.0在数字信号处理中的应用.北京:机械工业出版社,2005.【7】陈怀琛等编著.MATLAB及在电子信息课中的应用.北京:电子工业出版社,2002.【8】胡广书编著.数字信号处理理论、算法与实现.北京:清华大学出版社,2002.【9】梁虹等编.信号与线性分析基于MATLAB的方法与实现.北京:高等教育出版社,2006.【10】刘卫国主编.MATLAB程序设计与应用(第二版).北京:高等教育出版社,2006.15