语音信号处理
基于MATLAB 的语音信号滤波处理
摘要
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。
语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展。Matlab 是一种数据分析和处理功能十分强大的计算机应用软件, 信号处理是Matlab 重要应用的领域之一。本设计是基于Matlab 对语音信号进行处理,先完成语音信号的采集,利用MATLAB 对所录制的信号进行时域和频域分析;构建一个干扰信号,把语音信号和干扰信号叠加,利用MATLAB 对干扰后的语音信号进行时域和频域分析,对干扰后的信号进行滤波,画出滤波后的信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。 关键字:Matlab; 语音信号; 傅里叶变换; 信号处理; 滤波器
Speech signal processing
Abstract
Speech signal processing is to study the use of digital signal processing technology and phonetics to speech signal for processing of the emerging discipline, development at present one of the subjects rapidly. Through the voice transmission of information is the most important, the most effective, the most commonly used and the most convenient information exchange means, so the research is more particularly important.
Speech signal processing is an important branch of information science. The development of large-scale integrated technology and the rapid development of computer technology have promoted the development of this technology. Matlab is a very powerful computer application software for data analysis and processing, and signal processing is one of the important applications of Matlab. The design of speech signal is processed based on MATLAB, to complete the acquisition of speech signal, using MATLAB to the recording of the signal in time domain and frequency domain analysis; build a disturbance signal, the voice signal and interference signal is superimposed, using MATLAB to the disturbance of speech signal in time domain and frequency domain analysis, the interference signal filtering, draw waveform and spectrum of the filtered signal, and a comparison of before and after filtering the signal, the signal analysis of the changes.
Key words: Matlab; speech signal; Fu Liye transform; signal processing; filter
前言 . ....................................................................................................... II
第一章 实验的目的和要求 . ......................................................................... 1
1.1
1.2
1.3 MATLAB 软件的介绍 . .................................................................... 1 课题开发背景和发展状况 ............................................................ 2 研究的意义 ............................................................................... 2
第二章 实验原理 . ...................................................................................... 3
2.1语音信号滤波处理的简介 . ................................................................ 3
2.2 数字滤波器 .................................................................................... 3
2.2.1数字滤波器的概念 .................................................................. 3
2.2.2 数字滤波器的分类 ................................................................. 4
第三章 设计内容 . ...................................................................................... 5
3.1语音信号的采集及分析 .................................................................... 5
3.2语音信号的频谱分析 ....................................................................... 5
3.3滤波器的设计 ................................................................................. 6
2.3.1设计数字滤波器 ..................................................................... 6
2.3.2对语音信号进行滤波处理......................................................... 7
3.4回放语音信号 ............................................................................... 11
3.5 系统界面设计步骤 ........................................................................ 11
第4章 实验总结 .................................................................................... 14
4.1 实验小结 ..................................................................................... 14
4.2 课题展望 ..................................................................................... 14
参考文献 ................................................................................................ 15
前言
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT )等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC ),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ )应用于语音信号处理中;而用隐马尔可夫模型(HMM )描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM 已构成了现代语音识别研究的重要基石。近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
第一章 实验的目的和要求
1.1 MATLAB 软件的介绍
MATLAB 是由美国MathWorks 公司推出的用于图形处理和数值计算的数学计算环境。在MATLAB 环境下,用户可以集成地进行程序设计、数值计算、输入输出、图形绘制、文件管理等各项操作。所以相比其他同类软件,它卓越的数据可视化和优秀的数字计算能力使其脱颖而出。
最初的MATLAB 系统是由Cleve Moler公司用FORTRAN 语言设计的,现在MATLAB 程序是基于MathWorks 公司在C 语言环境下开发的。1984年开始发行它的第一版(DOS 版本1.0),而后经过10多年的不断完善和改进,版本不断升级 ,其功能越来越丰富,工具也越来越丰富,因此它应用的范围也越来越广发。
MATLAB 语言是一种对数据分析和处理功能十分强大的据算计应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、时域和频域分析、傅立叶变换、声音回放以及各种图的呈现等,信号处理是MATLAB 的最重要的应用领域之一。
MATLAB 语言之所以能如此迅速地普及是由于它有着不同于其他语言的特点:
1. 简洁紧凑的语言使用非常方便,并且库函数非常丰富。MATLAB 程序书写形式自由,利用其丰富的库函数巧妙的避开了子程序编程任务的复杂,压缩了一切不必要的编程工作。
2. 运算符丰富。由于MATLAB 是用C 语言编写的,所以MATLAB 提供了和C 语言几乎一样多的运算符,灵活使用MATLAB 的运算符将使程序变得极为简短。
3.MATLAB 既具有结构化的控制语句,又有面向对象编程的特性。 4.语法限制不严格,程序设计自由度大。
5. 程序的可移植性很好,基本上不做什么修改就可以运行在各种型号的计算机和操作系统上。
6.MATLAB 的图形功能强大。在C 和FORTRAN 语言里,绘图都不是很容易,但是在MATLAB 里通过数据的可视化则显得非常简单。此外,MATLAB 编辑图形界面的能力非常强。
7.MATLAB 的一项特色是拥有功能强大的工具箱。MATLAB 包含两个部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。
本设计只使用了上面的部分功能,就是用MATLAB 对含噪的语音信号同时在时域和频域进行滤波处理和分析。
1.2 课题开发背景和发展状况
通过语音传递倍息是人类最重要、最有效、最常用和最方便的交换信息的形式。语言是人类持有的功能,声音是人类常用的工具,是相互传递信息的最主要的手段。因此,语音信号是人们构成思想疏通和感情交流的最主要的途径。并且,由于语言和语音与人的智力活动密切相关,与社会文化和进步紧密相连,所以它具有最大的信息容量和最高的智能水平。现在,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。
随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输人这样便于使用的、自然的、人性化的输人方式。作为高科鼓应用领域的研究热点,语音信号采集与分析从理论的研究到产品的开发已经走过了几十个春秋并且取得了长足的进步。它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理.工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。可见,语音信号采集与分析的研究将是一项极具市场价值和挑战性的工作。我们今天进行这一领域的研究与开拓就是要让语音信号处理技术走人人们的日常生活当中,并不断朝更高目标而努力。
语音信号采集与分析之所以能够那样长期地、深深地吸引广大科学工作者去不断地对其进行研究和探讨,除了它的实用性之外,另一个重要原因是,它始终与当时信息科学中最活跃的前沿学科保持密切的联系.并且一起发展。语音信号采集与分析是以语音语言学和数字信号处理为基础而形成的一门涉及面很广的综合性学科,与心理、生理学、计算机科学、通信与信息科学以及模式识别和人工智能等学科都有着非常密切的关系。对语音信号采集与分析的研究一直是数字信号处理技术发展的重要推动力量。因为许多处理的新方法的提出,首先是在语音信号处理中获得成功,然后再推广到其他领域。
1.3 研究的意义
语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。
语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科,
因此我们进行语言信号处理具有时代的意义。
第二章 实验原理
2.1语音信号滤波处理的简介
语音信号的基本组成单位是“音素”。音素主要由“浊音”和“清音”这两大类组成。如果将语音只有背景噪声称为“无声”,那么可以将音素分成“清音”、“浊音”、“无声”这三类。一个音节由辅音和元音两部分组成。因为元音都是浊音,所以元音在音节中占据着主要的部分。在普通话中,“辅音—元音”构成了每个音节。语音信号的滤波处理是数字信号处理领域目前发展最为迅速的信息科学研究领域的核心技术之一,通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。语音信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重。数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义。研究语音信号又分为时域和频域两个方面。
(1)语音信号的时域分析处理:对语音信号进行时域分析的本质就是分析和提取语音信号的时域参数。当进行语音分析时,它的时域波形图是很直观的。其实语音信号的实质就是时域信号,所以使用时域分析是最早也是最广泛的一种分析方法。时域分析一般用于参数的分析和应用,如语音的大分类、分割、预处理等。这种分析方法有以下特点:第一,比较直观的语音信号和明确其物理意义。第二,可以简单的实现并且运算少。第三,获得语音信号的重要参数。最后,它的实现用到了示波器等常规设备,所以应用起来较简单。
(2)语音信号的频谱分析处理:语音信号的频域分析就是对语音信号的频域持征进行分析。语音信号的频域分析包括语音信号的功率谱、倒频谱、频谱、频谱包络分析等,而一般常用的频域分析方法包括带傅里叶变换法、通滤波器组法等几种。本文介绍的是语音信号的傅里叶分析法。
2.2 数字滤波器
2.2.1数字滤波器的概念
数字信号处理是一门发展迅速、应用广泛的前沿性学科,其理论和实践性都很强。为了系统的掌握和理解信号的收集、处理、传输、显示和储存,本课题介绍了用MATLAB 来处理语音信号。
在21世纪这个信息技术高速发展的时代,信号处理逐渐趋向于数字化、软件化这方面发展。数字信号处理主要是对语音信号和图像信号的研究,其中,语音信号的研究可以分为从时域和频域这两个方面来进行。时域的分析处理有以下两种方法:一种是对语音信号进行分析,这一分析方法属于线性处理的范畴,其 原理主要是通过信号的卷积、倍乘、时移、加减、以及求相关函数等来实现;另外一种是通过处理生成和
变换成各种调制信号,这一分析方法属于非线性的范畴,其原理是压缩和扩张信号平均累加器的动态范围,用门限法对噪音进行抑制。通过对信号的频域分析处理,可以对信号的频率特性在频谱中加以分析研究,这是对不确定信号分析的主要方法,主要是扩展了信号分析的范围。通常在世纪应用中,信号的时、频域分析经常同时进行。
数字滤波是数字信号处理理论的一部分。具体来说,凡是用数字方式对信号进行滤波、变换、调制、压缩、增强、均衡、解调、估值、识别、产生等加工处理,都可以纳入数字信号处理的领域。
数字信号处理这门学科主要是对数字滤波器设计方法进行研究。对于数字滤波器,早在49年代末期,就有人对其可能性进行过研究讨论,在50年代的时候,也有人研究讨论过数字滤波这个具有跨时代意义的问题。但可惜的是直到60年代中期,人们才是开始慢慢形成关于数字滤波器的一套完整的理论,在这一时期,通过不同形式的数字滤波结构(有的以最小运算误差为特点,有的以最快运算速度为特点,而有的则囊括以上两者)。
2.2.2 数字滤波器的分类
从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。
滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。
在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。因此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性相位响应。在FIR 滤波器中可以得到精确的线性相位。FIR 滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR 滤波器所要求的阶数可能比IIR 滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR 滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。而FIR 滤波器却可以得到严格的线性相位。
不论是IIR 滤波器还是FIR 滤波器的设计都包括三个步骤:
(1) 按照实际任务的要求,确定滤波器的性能指标。
(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR 系统函数,也可以用FIR 系统函数去逼近。
(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。
第三章 设计内容
3.1语音信号的采集及分析
基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上, 启动录音机。按下录音按钮,对话筒说话, 说完后停止录音。要保存文件时, 利用了计算机上的A/D转换器, 把模拟的声音信号变成了离散的量化了的数字信号, 放音时, 它又通过D/A转换器, 把保存的数字数据恢复为原来的模拟的声音信号。在 Matlab软件平台下可以利用函数wavread 对语音信号进行采样, 得到了声音数据变量。下面介绍Wavread 函数几种调用格式。
(1)y=wavread(file )
功能说明:读取file 所规定的wav 文件,返回采样值放在向量y 中。
(2)[y,fs,nbits]=wavread(file)
功能说明:采样值放在向量y 中,fs 表示采样频率(hz ),nbits 表示采样位数。
(3)y=wavread(file ,N )
功能说明:读取前N 点的采样值放在向量y 中。
(4)y=wavread(file ,[N1,N2])
功能说明:读取从N1到N2点的采样值放在向量y 中。
错误说明:如果自己录制的wav 文件不能读取,可以自己找一段wav 声音文件。
3.2语音信号的频谱分析
利用函数wavread 对自己的话音进行采样,记住采样的频率和采样的点数。通过实现wavread 函数,理解采样的频率、采样位数等概念。下面介绍wavread 的使用方法:
Wavread 函数调用格式如下:
y=wavread(flie ),读取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 中。 其程序如下:
[y,fs,nbits]=wavread ('hfy.wav '); %读出信号、采样率和采样位数 sound(y,fs,nbits); %回放语音信号
n = length (y) ; %求出语音信号长度
Y=fft(y,n); %对信号做FFT 变换
subplot(2,1,1);
plot(y);
title('原始信号波形');
subplot(2,1,2);
plot(abs(Y)); %采样后的信号频谱
title('原始信号频谱');
运行结果如图3-2-1
下:
图 3-2-1原始信号波形和频谱图
3.3滤波器的设计
2.3.1设计数字滤波器 IIR 滤波器和FIR 滤波器的设计方法完全不同。IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H (s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR 滤波器比斡采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR 滤波器。
对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:
(1)确定所需类型数字滤波器的技术指标。
(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Q =2/T tan(0.5w)
(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。
(4)设计模拟低通滤波器。
(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。
(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。
①用双线形 变换法设计三种滤波器即低通、高通及带通,在matlab 中利用函数butter 、cheby1和ellip 设计IIR 滤波器;最后利用matlab 中的freqz 画出频率响应。
②用窗函数法设计设计要求的三种滤波器。在matlab 中利用函数fir1设计FIR 滤波器,利用matlab 中的函数freqz 画出个滤波器的频率响应。
本次课设采用FIR 滤波器完成低通滤波器的设计。
2.3.2对语音信号进行滤波处理 利用模拟滤波器设计IIR 数字低通滤波器的步骤: (1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。
(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。
(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。
(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。
如前所逑,IIR 滤波器和FIR 滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计FIR 滤波器的步骤。如下:
(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N 。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择相同阶数下主瓣窄的窗函数。
(2)构造希望逼近的频率响应函数。
(3)计算h(n)。
(4)加窗得到设计结果。
低通滤波器的性能指标:
fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB.
在Matlab 中,可以利用函数fir1设计FIR 滤波器,利用函数butter,chebyl 和ellip 设计IIR 滤波器,利用Matlab 中的函数freqz 画出各滤波器的频率响应。hn=frI(M,wc ,window) ,可以指定窗函数向量window 。如果缺省window 参数,则firl 默认为哈明窗。这里我们可以选择window= kaiser(N,beta)以实现凯泽窗。N 为窗的点数,N=M+1,其中M 为滤波器阶,可由过渡带带宽BW 和阻带衰减分贝值As 估算得到,公式为M=((As-7.95)/(2.286*BW)+1; beta参数决定凯泽窗,可由公式beta=0.1102*(As1-8.7)确定; (若是矩形窗公式为BW=1.8pi/M,得出M )
MATLAB 信号处理工具箱函数buttp buttor butter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是[N,wc]=butter(N,wc,Rp ,As ,’s’),该格式周于计算巴特沃斯模拟滤波器的阶数N 和3dB 截止频率wc 。MATLAB 信号处理工具箱函数cheblap ,cheblord 和cheebyl 是切比雪夫I 型滤波器设计函数。我们用到的是cheebyl 函数,其调用格式如下:
[B,A]=chebyI(N,Rp,wpo,’Rypr’)
[B,A]=chebyI(N,Rp,wpo,’ttypr’,’s’)
函数butter,chebyl 和ellip 设计IIR 滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。
用自己设计的各滤波器分别对语音信号进行滤波,在Matlab 中,滤波器利用函数filter 对信号进行滤波。
函数filter 的调用格式:yn=filter(B,A.xn) ,它是按照直线型结构实现对xn 的滤波。其中xn 是输入信号向量,yn 输出信号向量。
低通滤波器的程序如下:
fs=44100;
y=wavread('hfy');
wp=2*800/fs;
ws=2*5000/fs;
Rp=0.4;
Rs=60;
wdelta=ws-wp;
N=ceil(8*pi/wdelta); %取整
wn=(wp+ws)/2;
[b,a]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率 figure(1);
freqz(b,a,512);
title('FIR低通滤波器');
f2=filter(b,a,y);
figure(8);
subplot(2,1,1);
plot(y);
title('FIR低通滤波器前的时域波形');
subplot(2,1,2);
plot(f2);
title('FIR低通滤波器后的时域波形');
sound(f2,44100); %
F0=fft(f2,1024);
f=fs*(0:511)/1024;
figure(9);
y2=fft(y,1024);
subplot(2,1,1);
plot(f,abs(y2(1:512)));
title('FIR低通滤波器滤波前的频谱 ');
xlabel('频率');
ylabel('幅值');
subplot(2,1,2);
F2=plot(f,abs(F0(1:512)));
axis([0 8000 0 20]);
title('FIR低通滤波器滤波前后的频谱');
xlabel('频率');
ylabel('幅值');
运行波形图如下:
播放滤波后的语音信号
图3-3-1 FIR低通滤波器
图3-3-2 FIR 低通滤波器前的时域波形
图3-3-3 FIR低通滤波器前后的频谱
3.4回放语音信号
在Matlab 中,函数sound 可以对声音进行回放。其调用格式:sound(x,fs ,bits) ;可以感觉滤波前后的声音有变化。
回放程序:
[y,fs,bits]=wavread(‘hfy ’);
sound(y,fs);
对比三种设计的滤波器发现最适合的是低通滤波器,滤波后的声音与原来相比要更加的低沉,但与实际声音最为接近。高通则声音变得很尖锐,带通则声音变得很小。
3.5 系统界面设计步骤 1.GUI 设计模板
在MATLAB 主窗口中,选择File 菜单中的New 菜单项,再选择其中的GUI 命令,就会显示图形用户界面的设计模板。
MATLAB 为
GUI 设计一共准备了4种模板,分别是Blank GUI(默认) 、
GUI with Uicontrols(带控件对象的GUI 模板) 、GUI with Axes and Menu(带坐标轴与菜单的GUI 模板) 与Modal Question Dialog(带模式问话对话框的GUI 模板) 。
当用户选择不同的模板时,在GUI 设计模板界面的右边就会显示出与该模板对应的GUI 图形。
2.GUI 设计窗口
在GUI 设计模板中选中一个模板,然后单击OK 按钮,就会显示GUI 设计窗口。选择不同的GUI 设计模式时,在GUI 设计窗口中显示的结果是不一样的。
GUI 设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。GUI 设计窗口的菜单栏有File 、Edit 、View 、Layout 、Tools 和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。
3.GUI 设计窗口的基本操作
在GUI 设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。例如,创建一个Push Button 对象,并设计该对象的属性值。
设计的具体步骤如下:
1) 运用Matlab 的图形用户界面(GUI)设计方法, 设计整个实验系统的开始引导界面、实验主界面及其实现信号处理课程中具体实验的各个子界面。
图3-5-1
2)分别编写各个子界面的各个控件对象的回调函数, 来实现控件相应控制功能, 达到直接通过界面上各个控件就可以控制数据的输入输出, 并可以方便地对实验结果的数据及其图形进行读取和分析的目的。
3)编写主界面的回调函数, 将各个实验子界面整合在信号处理系统实验主界面中, 即通过主界面就可以进入任何一个实验子界面进行实验。
图3-5-2
图3-5-3
4)编写开始引导界面的回调函数, 实现从引导界面直接进入主界面。
第4章 实验总结
4.1 实验小结
本次设计大概进行了一周的时间,语音信号处理的是目前比较流行且十分有趣的,在编程实现的过程中还是遇到了很多困难。在前期的准备工作中,查阅了大量资料,完善了理论知识。为了完成本次设计,通过查阅相关书籍以及matlab 中的帮助,选用不同的matlab 函数,尝试不同的参数。经过接近一个礼拜的反复调试,最终基本的实现了设计任务。
虽然遇到了很多困难,但是在设计过程中都有收获很大。本次设计将信号与系统课上学习的知识用于实践,对语音信号处理更深入的了解,也加深了对滤波器相关内容的理解,同时对于Matlab 能力的提高也大有益处。
本课题通过研究语音信号的滤波实现与分析充分的说明了MATLAB 软件在数字滤波器的设计中的作用。本课题加入噪声后的声音与原始的声音有着明显的不同,有很大的干扰声。但是当用低通滤波器滤波后,其噪声基本被滤掉,实现滤波后回放的声音与原始的声音几乎一样。通过本次实验,更加了解MATLAB 这款软件和数字滤波器的设计。当然,在设计的过程中也遇到了很多困难,比如数字滤波器参数的设定和噪音信号构建的疑问。不过只有通过自己不断的遇到困难并且通过不断的研究以及解决困难才是我们获得知识的源泉。
4.2 课题展望
人类已经踏入了信息化时代,而信息数字化又是信息技术发展的主攻方向。 因此, 数字信号处理技术已经是电子信息学科中值得并且必须研究的知识。
由于数字滤波器的概念和原理抽象以及数值计算又比较繁琐,所以借助好的计算机软件来进行辅助设计是数字滤波器研究领域必然的一个发展趋势。这样的软件虽然有很多种,其中最具有代表性的就是MATLAB 。利用MATLAB 软件,可以使数字滤波器的设计和实现变得事半功倍,这就是为什么本文采用的是MATLAB 软件来进行应用研究的原因了。
本文通过具体的语音信号滤波与分析的过程,充分说明在MATLAB 环境中,数字滤波器的设计已经变得异常简单和高效率,并且结果更为稳定、可靠。相信随着MATLAB 软件在信息技术中的不断推广和使用,将会使科技工程人员从各类烦琐的计算工作中解脱出来,有时间思考和研究更加重要的问题,这必将为科技的进步起到巨大的推动作用。
参考文献
[1] 丁玉美《数字信号处理(第三版) 》[M]. 西安电子科技大学出版社,2008.8
[2] 程佩青. 《数字信号处理教程》[M]. 北京:清华大学出版社,2007.2
[3] 余成波、陶红艳等. 《数字信号处理及MATLAB 实现(第二版)》[M]. 北京:清华大学出版社,2007
[4]百度文库
[5]张雪英,数字语音处理及MATLAB 仿真[M],电子工业出版社.
[6]陈怀琛, 数字信号处理教程——MATLAB 释义与实现[M],电子工业出版社
[7]D.G.Childers,MATLAB 之语音处理与合成工具箱[M],清华大学出版社.
[8]程佩青. 数字信号处理(第三版)[M].北京:清华大学出版社.2013
[9]万永革. 数字信号处理的MATLAB 实现(第二版)[M].北京:科学出版社,2012.
[10]徐欢,胡津津,袁媛. 基于MATLAB 的FIR 数字滤波器的窗函数法设计与仿真[J].通化师范学院学报,2013,(4)