基于Matlab的语音信号处理与仿真设计毕业论文.docx

上传人:可**** 文档编号:91255910 上传时间:2023-05-24 格式:DOCX 页数:34 大小:312.86KB
返回 下载 相关 举报
基于Matlab的语音信号处理与仿真设计毕业论文.docx_第1页
第1页 / 共34页
基于Matlab的语音信号处理与仿真设计毕业论文.docx_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《基于Matlab的语音信号处理与仿真设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Matlab的语音信号处理与仿真设计毕业论文.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、兰 州 商 学 院本科生毕业论文(设计)论文(设计)题目:基于Matlab的语音信号处理与仿真 学 院、 系: 信息工程学院 计算机科学与技术系 专 业 (方 向): 电子信息工程 年 级、 班: 学 生 姓 名: 指 导 教 师: 声 明本人郑重声明:所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。本毕业论文(设计)成果归兰州商学院所有。 特此声明毕业论文(设计)作者签名: 年 月 日基于Matlab的语音信号处理与仿真摘 要语音信号处理是研究数字信号处理技术和

2、语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。本文采用Matlab7.0综合运用GUI界面设计,各种函数调用等对语音信号进行采集、提取、变频、变幅,傅里叶变换、滤波等简单处理。程序界面简练,操作简便,具有一定的实际应用意义。关键词 语音信号 Matlab 信号处理 GUIABSTRACTVoice signal processing is to study the use of digital signal processing technology and knowledge of the voice processing of the emer

3、ging discipline is the fastest growing areas of information science one of the core technology. In this article, using Matlab7.0 comprehensive use GUI interface design, various function calls to simple processing of the voice signals such as collection, extraction, adjustment of frequency and amplit

4、ude, Fourier transform and filtering. The program interface is concise, simple and has some significance in practice.Key Words Voice Signal, Matlab, Signal Processing, GUI目 录一、引言1(一)课题的背景及意义1(二)国内外的研究现状1(三)本文主要内容1二、语音信号处理基本知识和仿真环境1(一)语音信号处理理论依据11、采样定理12、采样频率13、采样位数和采样频率1(二)语音信号的分析及处理11、语音的录入与打开12、时域

5、信号的FFT分析13、倒谱的概念14、数字滤波器设计原理1(三)仿真环境1三、语音信号处理的总体方案1(一)本文基本要求1(二)语音信号的处理11、语音信号的采集12、语音信号的处理13、语音信号的效果显示14、语音信号处理方框图1四、语音信号处理实例1(一)信号的采集1(二)语音信号的提取1(二)语音信号的调整11、语音信号的频率调整12、语音信号的振幅调整1(三)语音信号的傅里叶变换1(四)语音信号的滤波11、语音信号的低通滤波12、语音信号的高通滤波13、语音信号的带通滤波14、语音信号的带阻滤波1五、图形用户界面制作1六、结论1参考文献1致谢129基于Matlab的语音信号处理与仿真一

6、、引言(一)课题的背景及意义语音是人类获取信息的重要来源和利用信息的重要手段。通过语言相互传递信息是人类最重要的基本功能之一。语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。随着计算机技术和信息技术的发展,语音交互已经成为人机交互的必要手段,而语音信号的采集和处理是人机交互的前提和基础。尽管在Windows附件的娱乐中带有一个录音机,通过它可以驱动声卡采集语音信号并保存为语音文档,但是要对采集的信号进一步分析处理就必须另外编程或通过其它软件,而

7、且Windows附件中的录音机功能极其有限不能扩展。而在Matlab环境中,可以通过多种编程方法驱动声卡,实现对语音信号的采集和回放。同时由于Matlab是一个数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。作为高科技应用领域的研究热点,语音信号处理技术从理论的研究实际应用已经走过了几十个春秋并且取得了长足的进步。它正在直接

8、与办公、交通、金融、保安、商业、旅游等行业的语音咨询与管理等各种实际应用领域相接轨。可见,语音信号处理技术的研究将是一项挑战性的工作。(二)国内外的研究现状20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速傅里叶变换(FFT)等成为语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展;进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高

9、效数据压缩技术矢量量化(VQ)1应用于语音信号处理中;而用稳马尔可夫模型1(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石 1,8,10。近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。(三)本文主要内容本文主要介绍的是语音信号的简单处理。在第一部分引言中简要介绍了语音信号处理的研究发展状况;第二部分主要介绍了语音信号处理所需要的基础知识,如:采样频率、采样位数的概念、采样定理;时域信号的FFT分析;数字滤波器的设计原理

10、和方法,各种不同类型滤波器的性能比较等等,以及Matlab仿真环境;第三部分对语音信号的处理作了详细介绍,语音信号的处理包括信号的提取、调整、变换和滤波;第四部分是语音信号的实例分析,是对前面所讲知识的应用;第五部分是图形用户界面(GUI)的设计与实现。二、语音信号处理基本知识和仿真环境(一)语音信号处理理论依据1、采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时,即:fs.max=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍;采样定理又称奈奎斯特定理1,3,4。2、采样频率采

11、样频率1,3,4是指计算机每秒钟采样多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。3、采样位数和采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的

12、采样次数,采样频率越高,声音还原就越真实越自然。采样位数和采样率1,3,4对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度,每增加一个采样位数相当于力度范围增加了6dB,采样位数越多则捕捉到的信号越精确,对于采样率来说你可以想象它类似于一个照相机,44.1khz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。显然采样率越高,计算机提取的图片越多,对于原始音频的还原也越加精确。(二)语音信号的分析及处理1、语音的录入与打开在Matlab中,x,fs,bits=wavread(File.wav,N1

13、N2);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。N1 N2表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。Sound(x,fs,bits);用于对声音的回放。向量x则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。2、时域信号的FFT分析FFT即快速傅里叶变换3,4,9,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅里叶变换的算法进行改进获得的。在Matlab的信号处理工具箱中函数FFT和IFFT用于快速傅里叶变换和逆变换,函数FFT用于序列

14、快速傅里叶变换,其调用格式为y=fft(x),其中,x是序列,y是序列x的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT且和x相同长度;若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x长度是2的幂次方,函数fft执行高速基2FFT算法,否则fft执行一种混合基的离散傅里叶变换算法,计算速度较慢,函数FFT的另外一种调用格式为y=fft(x,N),式中,x,y意义同前,N为正整数。函数执行N点的FFT,若x为向量且长度小于N,则函数将x补零至长度N;若向量x的长度大于N,则函数截短x使之长度为N;若x为矩阵,按相同方法对x进行处理。3、倒谱的概念定义:倒谱1,10,11,13

15、定义为信号短时振幅谱的对数傅里叶反变换。特点:具有可近似地分离并提取出频谱包络信息和细微结构信息的特点用途:提取声道特征信息:提取频谱包络特征,以此作为描述音韵的特征参数而应用于语音识别。提取音源信息:提取基音特征,以此作为描述音韵特征的辅助参数而应用于语音识别。求法:如图2-1所示: 倒谱图 样值检测 x(n) 66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666 时间窗 F 图2-1 倒谱的求法 在图2-1中, A表示短时信号, B表示频谱, C表

16、示对数频谱 ,D表示倒谱系数 ,E表示对数频谱包络 ,F表示基本周期。4、数字滤波器设计原理数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。数字滤波器1,3,4,9,12可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有很多种分类,根据数字滤波器冲击响应的时域特征,可将数字滤波器分为两种,即无限长冲击响应(IIR)滤波器和有限长冲击响应(FIR)滤波器。从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可

17、用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高,但是这个高效率是以相应的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数获得高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高510倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样要大增滤波器的阶数和复杂性。整体来看,IIR滤波器达到同样效果,阶数较少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题

18、,线性相位,但阶数多,延迟大。在本文中主要采用IIR滤波器。(三)仿真环境语音信号的处理与仿真选用Matlab平台2,5,7,8,9。Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。下面对Matlab的主要组成部分和图形用户界面(GUI)作简单介绍。 Matlab的主要组成部分: 1)开发环境:开发环境是帮助用户使用Matlab函数和文件的工具的集合,这些工具中许多都是图形用户界面。开发环

19、境包括Matlab桌面及其命令窗口、命令记录、帮助浏览器、工作平台、文件和搜索路径等。 2)Matlab数学函数库:该库收集了大量的从基本函数(求和、三角运算、复杂算术等)到复杂函数(矩阵求逆、求矩阵特征值、贝塞尔函数和快速傅立叶变换等)的计算算法。3)Matlab语言:Matlab语言是一种包括流程控制语句、函数、数据结构、输入/输出和面向对象编程方式的高级矩阵/数组语言,该语言能够通过与其它Matlab系统组成部分之间的交互完成非常复杂的计算任务。4)图形句柄:图形句柄即Matlab的图形系统,该系统既包括二维和三维数据的可视化、图像处理、动画和图形描述等高级命令,又包括允许用户完全自定义

20、图形,并在Matlab应用程序中建立自己的图形界面的低级命令。5) Matlab应用程序接口:API是允许用户编写C、FORTIULN和Matlab接口程序的系统库,该库中包含一些调用工具,其它应用程序能够通过动态链接、作为计算引擎、读写MAT文件三种形式来使用这些工具以调用Matlab程序。图形用户界面(GUI)1)图形用户界面概念图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简单易用。GUIDE是Matlab提供的图形界面开发环境,提供了一系列用于

21、创建图形用户界面的工具,从而简单化界面布局和编程工作。2)图形用户界面设计GUI设计模板在Matlab主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。Matlab为GUI设计一共准备了4种模板,分别是Black GUI(默认)、GUI with Uicontrols(带控件对象的GUI模板)、GUI with Axes and Menu(带坐标轴与菜单的GUI模板)与Modal Question Dialog(带模式问话对话框的GUI模板)。当用户选择不同的模板时,在GUI设计模板界面的右边会显示与该模板对应的GUI图形。GUI设计窗口在GU

22、I设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。GUI设计窗口的基本操作在GUI设计窗口创建图形对象后,通过双击该对象的属性编辑器。例如,创建一个Push Button 对象,并设计该对象的属性值。三、语音信号处理的总体方案语音信号处理是信号处理中的重要分支之一。它包括的主要方面有:语音的识

23、别,语言的理解,语音的合成,语音的增强,语音的数据压缩等。而本文仅仅是对语音信号做一些简单的处理,包括信号的提取、调整、变换和滤波等。(一)本文基本要求本文是对语音信号同时在时域和频域进行滤波处理和分析,在Matlab应用软件下设计一个简易图形用户界面(GUI),来解决一般应用条件下的各种语音信号处理。(二)语音信号的处理1、语音信号的采集 使用电脑的声卡设备采集一段时间长度约为510秒的声音信号,保存为*.wav格式。2、语音信号的处理语音信号的处理1,8,11,12,13主要包括信号的提取、调整、变换和滤波等。1)提取:通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号、完成音频

24、信号的频率,幅度等信息的提取,并得到该语音信号的波形图。2)调整:在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。3)变换:在用户图形界面下对采集的语音信号进行Fourier等变换,并画出变换前后的频谱图。4)滤波:滤除语音信号中的噪音部分,可采用低通滤波、高通滤波、带通滤波和带阻滤波,并比较各种滤波后的效果。3、语音信号的效果显示通过用户图形界面的输出功能,将处理后的语音信号进行播放,试听处理后的效果。4、语音信号处理方框图图3-1列出了整个语音信号处理的方框图:信号采集 信号提取信号滤波信号变换信号调整效果显示 图3-1语音信号处理方

25、框图幅度调整其中信号调整包括信号的幅度和频率的任意倍数变化,如图3-2所示:信号调整频率调整 图3-2 信号调整 信号的滤波采用了四种滤波方式,如图3-3所示:信号滤波低通滤波带阻滤波带通滤波高通滤波 图3-3 语音信号滤波的方式综合图3-1、3-2、3-3可以看到,整个语音信号处理系统的流程分为三步,首先是读入待处理的语音信号,即信号的采集;然后进行语音信号的处理,包括信息的提取、信号幅度和频率调整、语音信号的傅里叶变换以及信号的滤波,而滤波又包括低通滤波、高通滤波、带通滤波、带阻滤波等方式;最后是对处理后的语音信号进行效果显示。四、语音信号处理实例(一)信号的采集本文是以一段简短的语音信号

26、作为分析样本,通过计算机中的录音机将一段语音信号“尊敬的老师,亲爱的同学们,大家好,我是来自07电信的马芳兰” 录入到计算机中。该段语音时长约为6秒,并保存为“voice.wav”文件。(二)语音信号的提取在Matlab中使用Wavread函数,可以得知语音信号的采样频率fs,采样位数bits。利用Sound函数可以清晰的听到“尊敬的老师,亲爱的同学们,大家好,我是来自07电信的马芳兰”语音的播放。语音信号提取的程序如下:x,fs,bits=wavread(voice.wav);%读入语音信号fs %提取采样频率bits %提取采样位数sound(x,fs,bits); % 听取“voice.

27、wav”语音ms2=floor (fs*0.002);ms10=floor (fs*0.01);ms20=floor (fs*0.02);ms30=floor (fs*0.03);t=(0:length(x)-1)/fs; %计算样本时刻plot(t,x); %画出语音信号的波形legend(Waveform);xlabel(Time(s);ylabel(Amplitude);运行上面程序,得到采样频率fs=22050Hz,采样位数bits=16位,语音信号的波形图如图4-1所示:高频噪声 图4-1 语音信号的波形图如图4-1所示,整段音频数据中得到的声音高低起伏与录入的声音信号高低起伏基本一

28、致,并且可以观察到其中包含部分高频噪声(如图中标注部分)。(二)语音信号的调整在语音信号的研究中,经常会对语音信号进行多倍频率以及多倍幅度变换调整,日常应用中,这种变换调整也经常要用到。1、语音信号的频率调整在设计中,可以将语音信号的采样频率提高或降低,来实现语音信号的调整,得到所要求的语音信号。例如将采样频率提高一倍,即可得到语音信号频率为原频率2倍的新的语音信号。频率调整程序如下:x,fs,bits=wavread(voice.wav);ms2=floor(fs*0.002);ms10=floor(fs*0.01);ms20=floor(fs*0.02);ms30=floor(fs*0.0

29、3);t=(0:length(x)-1)/(2*fs); %计算样本时刻sound(x,2*fs,bits);%听取2倍频后的语音wavwrite(x,2*fs,bits,调频);%将倍频后的语音保存为“调频.wav”plot(t,x); %画频率调整后的波形图legend(Waveform);xlabel(Time(s);ylabel(Amplitude);运行得到如图4-2所示的信号波形图,并试听调整后的效果。原时长为6s图4-2频率调整后的波形与原语音信号相比,经过调整后的信号周期变为原来的1/2(也可以从语音信号的时长上直观的看出,如图4-2中标注所示,原语音信号时长约为6s,而此时变

30、为3s),此时的语速明显变快,即实现了信号的2倍频功能。2、语音信号的振幅调整在设计中,可以将语音信号的幅度进行提高或降低操作,来实现语音信号的调整,得到声音音量大小不同的语音信号。幅度调整程序如下:x,fs,bits=wavread(voice.wav);ms2=floor(fs*0.002);ms10=floor(fs*0.01);ms20=floor(fs*0.02);ms30=floor(fs*0.03);t=(0:length(x)-1)/(fs); %计算样本时刻plot(t,x*4); %画调幅波形图 sound(x*4,fs,bits);%听取幅度调整后的语音wavwrite(

31、4*x,fs,bits,调幅);%将调整后的信号保存为“调幅.wav”legend(Waveform); xlabel(Time(s);ylabel(Amplitude);运行得到如图4-3所示的信号波形图,并试听调整后的效果。 图 4-3幅度调整后的波形幅度经过四倍的放大,此时听到的声音声调变高,但还不是很明显,如果将幅度的变化值设置的更大些,那么就可以得到效果相当明显的语音信号了。(三)语音信号的傅里叶变换傅里叶变换就是把信号由时域转为频域,而傅里叶反变换就是信号由频域转为时域。倒谱分析是指信号短时振幅谱的对数进行傅里叶反变换。它具有可近似地分离并提取出频谱包络信息和细微结构信息的特点。对

32、语音信号进行频谱分析,在Matlab中可以利用函数FFT对信号进行快速傅里叶变换得到信号的频谱图,并进行倒谱分析,得到倒谱图。傅里叶变换及倒谱分析的部分程序如下:x=y(44101:55050,1);%提取原语音信号的一部分t=(0:length(x)-1)/fs;%计算样本时刻subplot(3,1,1); %确定显示位置plot(t,x);%画波形图legend(波形图);xlabel(Time(s);ylabel(Amplitude);Y=fft(x,hamming(length(x);% 做加窗傅里叶变换fm=5000*length(Y)/fs; %限定频率范围f=(0:fm)*fs/

33、length(Y); %确定频率刻度subplot(3,1,2);plot(f,20*log10(abs(Y(1:length(f)+eps);legend(频谱图); %画频谱图ylabel(幅度(db);xlabel(频率(Hz);c=fft(log(abs(x)+eps); %倒谱计算ms1=fs/1000;ms20=fs/50;q=(ms1:ms20)/fs; %确定倒谱时刻subplot(3,1,3);plot(q,abs(c(ms1:ms20); %画倒谱图legend(倒谱图);xlabel(倒谱(s);ylabel(倒频谱幅度(Hz); 对语音信号的一部分(由本人随机选取)进行

34、傅里叶变换,并进行倒谱分析,得到如图4-4:图4-4 声音样本波形图、频谱图和倒谱图从图4-4中的倒谱图可以看出,选取的语音信号部分所对应的频率大概在200Hz左右。这与人的语音信号频率集中在200Hz到4.5khz之间是相一致的。(四)语音信号的滤波从图4-4中发现,语音信号中包含背景噪声,这些噪声的频率一般较高。所以可以利用Matlab软件中的滤波器进行滤波处理,得到较为理想的语音信号。1、语音信号的低通滤波本文中设计了一个截止频率为200Hz切比雪夫型低通滤波器,它的性能指标为:wp=0.075pi, ws=0.125pi, Rp=0.25;Rs=50dB。低通滤波器处理程序如下:x,f

35、s,bits=wavread(voice.wav);wp=0.075;ws=0.125;Rp=0.25;Rs=50;N,Wn=cheb1ord(wp,ws,Rp,Rs);b,a=cheby1(N,Rp,Wn);b,a=cheby1(N,Rp,Wn);X=fft(x);subplot(221);plot(x);title(滤波前信号的波形);subplot(222);plot(X);title(滤波前信号的频谱);y=filter(b,a,x); %IIR低通滤波sound(y,fs,bits);%听取滤波后的语音信号wavwrite(y,fs,bits,低通);%将滤波后的信号保存为“低通.w

36、av”Y=fft(y);subplot(223);plot(y);title( IIR滤波后信号的波形);subplot(224);plot(Y);title( IIR滤波后信号的频谱);经过低通滤波器处理后,比较滤波前后的波形图的变化,如图4-5所示: 图4-5 低通滤波后波形和频谱的变化低通滤波后,听到声音稍微有些发闷,低沉,原因是高频分量被低通滤波器衰减。但是很接近原来的声音。2、语音信号的高通滤波运用切比雪夫型数字高通滤波器,对语音信号进行滤波处理。高通滤波器性能指标:wp=0.6, ws=0.975 ,Rp=0.25;Rs=50dB。高通滤波器处理程序如下:x,fs,bits=wav

37、read(voice.wav);wp=0.6;ws=0.975;Rp=0.25;Rs=50;N,Wn=cheb2ord(wp,ws,Rp,Rs);b,a=cheby2(N,Rs,Wn);b,a=cheby2(N,Rs,Wn,high);X=fft(x);subplot(221);plot(x);title(滤波前信号的波形);subplot(222);plot(X);title(滤波前信号的频谱);y=filter(b,a,x); sound(y,fs,bits);%听取滤波后的语音wavwrite(y,fs,bits,高通);%将滤波后的语音保存为“高通.wav”Y=fft(y);subpl

38、ot(223);plot(y);title(IIR滤波后信号的波形);subplot(224);plot(Y);title(IIR滤波后信号的频谱);经过高通滤波器处理后,比较滤波前后的波形图的变化,如图4-6所示:图4-6 高通滤波后波形和频谱的变化高通滤波后,只能听到少许杂音,原因是低频分量被高通滤波器衰减,而人的声音部分正好是低频部分,所以只剩下杂音了。3、语音信号的带通滤波运用巴特沃斯带通滤波器函数,带通滤波器性能指标:N=5;wc=0.3 0.6。带通滤波器处理程序如下:x,fs,bits=wavread(voice);N=5;wc=0.3 0.6 ;b,a=butter(N,wc)

39、;X=fft(x);subplot(221);plot(x);title(滤波前信号的波形);subplot(222);plot(X);title(滤波前信号的频谱);y=filter(b,a,x);%IIR带通滤波Y=fft(y);sound(y,fs,bits);% 听取滤波后的语音wavwrite(y,fs,bits,带通);% 将滤波后的语音保存为“带通.wav”subplot(223);plot(y);title( IIR滤波后信号的波形);subplot(224);plot(Y);title( IIR滤波后信号的频谱);经过带通滤波器处理后,比较滤波前后的波形图的变化,如图4-7所

40、示:图4-7 带通滤波波形和频谱的变化带通滤波后,听到的声音有点像机器人发出的声音。4、语音信号的带阻滤波运用巴特沃斯数字带阻滤波器,带阻滤波器性能指标:N=5;wc=0.2 0.7。带阻滤波器处理程序如下:x,fs,bits=wavread(voice);N=5;wc=0.2 0.7 ;b,a=butter(N,wc,stop);X=fft(x);subplot(221);plot(x);title(滤波前信号的波形);subplot(222);plot(X);title(滤波前信号的频谱);y=filter(b,a,x);%IIR带阻滤波Y=fft(y);sound(y,fs,bits);

41、% 听取滤波后的语音wavwrite(y,fs,bits,带阻);% 将滤波后的语音保存为“带阻.wav”subplot(223);plot(y);title( IIR滤波后信号的波形);subplot(224);plot(Y);title( IIR滤波后信号的频谱);经过带阻滤波器处理后,比较滤波前后的波形图的变化,如图4-8所示:图4-8 带阻滤波波形和频谱的变化带阻滤波后,听到的声音比较接近原来的声音。五、图形用户界面制作Matlab中图形用户界面的制作有两种方法:M文件和GUIDE,本设计采用GUIDE的方法制作GUI。新建一个空白GUI模板:进入Matlab程序界面以后执行FileN

42、ewGUI过程,即可进入。选择空白模板选项条,单击OK,一个空白GUI模板生成。拖拉白色框的右下角调整界面大小,现在就可以开始设计GUI功能界面了。从左边控件框选择所需要的控件放置在GUI面板中,然后对各个控件进行编辑,包括位置、大小、颜色、名称以及编写回调函数等。本设计主要用到下拉菜单、坐标系、框架和按钮,现分别介绍。按钮设计:按钮键又称命令按钮或按钮,是小的长方形屏幕对象,常常在对象本身标有文本。将鼠标指针移至对象,单击鼠标按钮执行由回调字符串所定义的动作。单击空间框左侧的Push Button按钮,在按钮上单击鼠标右键,选择viewcallbackscallback即可在M文件中找到该按

43、钮的回调函数位置。然后编写功能函数,本设计中该按钮的功能是绘制原始波形,那么只需要读取语音信号并画出波形。坐标系设计:坐标轴对象是许多图形对象的父对象,每一个可视化显示用户数据的图形窗口都包含一个或多个坐标轴对象。坐标轴对象确定了图形窗口的坐标系统,所有绘图函数都会使用当前坐标轴对象或创建一个新的坐标轴对象,用于确定其绘图数据点在图形中的位置。单击空间框左侧的Axes按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置。框架设计;框架对象仅是带色彩的矩形区域,框架提供了视觉的分隔性,框架的style属性值是Frame。在其他对象放入框架之前,框架应事先定义,否则框架可能覆盖控件框使他们不可见。

44、本文设计的最终图形用户界面如图5-1 所示:图5-1 图形用户界面窗口六、结论本文对语音信号的简单处理做了详细介绍,采用了一系列信号分析和处理技术,实现了语音信号的基本处理的功能,经过测试运行,基本达到了预期目的。本文的程序主要有以下优点:1)操作界面简练。在进行语音信号处理的图形用户界面中,菜单按键明了,每个功能只对应一个按键,省去了大型软件的操作复杂步骤。2)处理速度快。由于整个操作过程存在多个分步骤,并且每个步骤的联系不是很紧密,所以每个步骤的运行速度很快。但由于知识能力有限,当中也存在相当的不足。本文中的程序仅能进行一般应用条件下的语音信号处理,功能比较单一,不能进行复杂的语音信号处理。对于滤波的研究,本文只是举出了很小的一个方面,还有许多精髓都未能一一列举。至于用户界面的设计,由于本人是初次接触,仅就刚学到的一些知识加以运用,于是界面设计的还是很粗糙。所以,今后还有很多地方有待学习和提高。

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁