您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > 基于MATLAB的语音信号滤波处理和程序设计
郑州轻工业学院课程设计说明书题目:基于MATLAB的语音信号滤波处理和程序设计姓名:院(系):专业班级:学号:指导教师:成绩:时间:2014年6月09日至2014年6月13日I基于MATLAB的语音信号滤波处理和程序设计摘要MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,信号处理是MATLAB重要应用的领域之一。本课程设计介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。关键词:MATLAB工具/信号语音采集/滤波II目录摘要..................................................I目录.................................................II1设计目的、要求和背景....................................11.1语音信号处理简介........................................11.2语音信号处理的背景和意义................................11.3设计目的................................................22整体设计过程................................................32.1原理分析................................................32.2语音信号的获取..........................................42.3语音信号的时域频域分析..................................42.4干扰信号的构建..........................................53信号变化分析................................................53.1原始语音信号的程序实现和时域频域图......................53.2干扰信号在MATLAB软件中的实现...........................73.3对原始语音信号加入干扰信号..............................8心得体会.....................................................13致谢.....................................................1411设计目的、要求和背景1.1语音信号处理简介信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重。数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义。研究语音信号又分为时域和频域两个方面。(1)语音信号的时域分析处理:语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:①表示语音信号比较直观、物理意义明确。②实现起来比较简单、运算且少。③可以得到语音的一些重要的参数。④只使用示波器等通用设备,使用较为简单等。(2)语音信号的频谱分析处理:语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法等几种。本文介绍的是语音信号的傅里叶分析法。因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”。本设计是用MATLAB仿真软件设计滤波器对受干扰的语音信号进行滤波处理,并对各部分进行频谱分析。1.2语音信号处理的背景和意义语音信号处理是一门研究用数字信号处理技术对语音信号进行处理的学科,处理的目的是用于得到的某些参数以便高效传输和存储;或者应用于人工合成、语音识别和语音增强等。同时也是以生理学、心理学、语言学以及声学等学科为基础,以信息论、控制论、系统论的理论做指导,通过应用信号处理、统计分析、模式识别等现代技术手段而发展起来的一门综合性学科。它与语音学、语言学、声学,认知科学、心理学、心理2学、数理统计学等许多学科也有着非常密切的联系。它包括语音编码、语音合成、语音识别与理解等三个主要分支。语音编码的目的是将模拟的语音信号用尽可能少的比特实现数字化,使被编码和压缩后的信更有效地在网络中传输或记录在存储器中语音合成的目的是让机器生成人类的自然语言语音识别的目的是使机器能识别人类的语言,从而能够按用户的语音指令完成有关的动作或提供有关的信息服务。语言是从千百万人的言语中历史地概括总结出来的规律符号系统,使人们用以进行思维、交际的形式。人的思考常常是用语言来进行,语言是人类特有的功能,它创造和记载了几千年的人类文明历史。语音是声音和意义的结合体,也是信息的载体,是把语言表述出来的物理形式,是人类最重要、最有效、最常用和最方便的交换信息的形式。当今世界正处于信息时代,计算机技术、通信技术和电子技术的高速发展,推动人类社会进入了信息社会。因特网和移动通信的普及、电子购物的兴起、多媒体通信及其应用的蓬勃发展,改变了人类生活、工作、娱乐的方式。自计算机诞生以来,通过语音与计算机交互一直是人类的梦想,随着计算机软硬件和信息技术的飞速发展,这不仅对语音信号数字处理提出了越来越高越来越迫切的需求,如实现用语音输入代替键盘输入实现人工智能和交互,同时也为语音信号处理提供了高效软硬件实现的可能性。简而言之,语音信号处理的任务是实现人一人、人一机器和机器一人的通信,是现代通信领域的重要环节。1.3设计目的1.了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;2.学会用MATLAB对语音信号进行分析和处理;3.掌握用滤波器去除语音信号噪声的方法,观察去噪前后的语音信号。1.4设计要求1.掌握在Windows环境下的语音信号录制的方法2.掌握在MATLAB环境下语音信号的采集3.构建的干扰信号为f(t)=10sin(4000πt)4.掌握数字信号的处理的基本概念、基本理论和基本方法35.利用MATLAB设计滤波器对干扰的语音信号进行滤波6.掌握MATLAB的程序设计方法1.5设计步骤1.利用windows下的录音机,录制一段自己的话音“大家好”2.利用MATLAB对所录制的信号进行时域和频域的分析3.构建一个干扰信号,把语音信号和干扰信号叠加,并且利用MATLAB对干扰后的语音信号进行时域和频域的分析4.对干扰后的信号进行滤波,画出滤波后的信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化.2整体设计过程2.1原理分析本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对话音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用wavread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。利用正弦信号产生噪声信号,模拟信号sint经过采样,并且采样的长度必须要和原始语音信号长度一样长,才可以实现噪声信号与原始语音信号的叠加。把噪声信号加入到录制的语音信号中,用命令可以得到其频谱图。对该段合成的语音信号,用命令在MATLAB中设计一个恰当的滤波器对其进行滤波处理,此处用低通滤波器对其进行滤波,滤波后用命令可以绘制出其频谱图,回放语音信号。对原始语音信号、合成的语音信号和经过滤波器处理的语音信号进行频谱的比较分析。42.2语音信号的获取利用PC机上的硬件和WINDOWS操作系统可以很方便地进行数字信号的采样。打开电脑Windows窗口菜单中的附录子菜单里的录音机软件,录音机界面如图图(1)所示。使用录音机录制一小段声音片段“大家好”,然后保存文件名为“lgh.wav”,如下图2。图(2)在Matlab中,[y,fs,bits]=wavread('Blip',[N1N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。sound(x,fs,bits);用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。2.3语音信号的时域频域分析在Matlab软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量y,同时把y的采样频率Fs=8000Hz和数据位Nbits=8Bit放进了MATALB的工作空间。5上述程序是在Matlab软件中画出语音信号的时域波形(图3),回放录入声音。从图中可以看出在时域环境下,信号呈现出3个不规则的信号峰值。然后对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图如图3所示。2.4干扰信号的构建在Matlab中人为设计一固定频率的噪声干扰信号。在本设计中用正弦序作为干扰信号。干扰信号为:f(t)=10sin(4000πt)。2.5信号合成在Matlab中把语音信号与噪声信号进行叠加。对其进行播放,并画出其频谱图如图5所示,从图中可以看出,在该语音信号的12000Hz处有一高峰,这正是干扰所造成的。2.6数字滤波的设计并对加噪信号进行滤波处理数字滤波器分为FIR数字滤波器和IIR数字滤波器两种,可以用硬件和软件来设计实现。软件设计主要有脉冲响应不变法、双线性变换法、窗口函数法。本设计是用窗函数法设计FIR低通滤波器。针对以上语音信号设定滤波器的性能指标用kaiser窗设计低通滤波器。用设计好的带阻滤波器对含噪语音信号进行滤波,在Matlab中FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱如图7所示。3信号变化分析3.1原始语音信号的程序实现和时域频域图在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用wavread函数,理解采样频率、采样位数等概念。6wavread函数调用格式y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。y=wavread(file,N),读取钱N点的采样值放在向量y中。y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。对语音信号“lgh.wav”进行采样其程序如下:[y,fs,bits]=wavread('E:\MATLAB7\work\l
本文标题:基于MATLAB的语音信号滤波处理和程序设计
链接地址:https://www.777doc.com/doc-5625136 .html