论文写作分析-基于MATLAB语音信号去噪处理的研究-CNKI知网查重网站

论文写作分析-基于MATLAB语音信号去噪处理的研究

2021-06-15 10:24:13
作者:杭州千明

  对语音信号进行探究和分析可以让我们对数字信号处理相关知识的理解与巩固有进一步的加深。数字滤波器由于性能比较好、工作起来也比较稳定可靠因此在数字信号处理上应用比较广泛。其中最具典型的有两种:无限冲激响应(Infinite Impulse Response,简称IIR)数字滤波器和有限冲击响应(Finite Impulse Response,简称FIR)数字滤波器。本文研究的是应用IIR滤波器中具有代表性的切比雪夫滤波器和巴特沃斯滤波器来滤除噪声,在这个过程中可以利用功能强大、编程效率高的MATLAB平台来实现。MATLAB软件工具箱中提供了各种数字滤波器的设计,还可以对语音信号进行频谱分析,实现该研究中的计算与图形的设计与仿真,应用起来十分方便。

  从1960年开始,数字信号处理技术也开始作为一门新兴技术发展开来。它展示着它的蓬勃生机,自1960年至今数字信号处理技术与很多不同学科都相互关联并进行创新发展,为现在的科学技术也贡献着自己的一份力量,比如现在的人工智能技术、神经网络等多方面的领域都与数字信号处理技术有着很深的联系。

  语音信号处理技术作为数字信号处理技术的一个重要分支,它的研究前景也很广阔。其中语音识别技术在很多领域中应用也非常广,第一次做出有意义的成就是在1960-1970年,当时作为一项比较重要的研究课题进行研究。这一时间段的语音识别技术是在模板匹配原理的基础上进行的,它提出了VQ和HMM理论,此时的研究还是具有局限性的。这项技术在实验室研究领域产生重大突破,是在1989年左右,其打破了之前的三大局限性,使HMM模型让更多人开始了解,在神经元网络的研究中语音识别也发挥着它的作用。随着时代的发展语音识别技术也逐渐从实验室走出来,开始应用于我们的生活之中。

  语言是人们进行沟通的桥梁,科学技术发展至今我们的生活、学习方面也越来越智能化。如今在很多领域,语音信号处理技术也逐渐成为在研发过程中的一项核心技术。在不远的将来我们可以随处可见通过语音命令就可以来对各种机器进行指挥操作,在那个时候我们的生活会更加便捷、舒适。语音信号处理技术应用的领域比较广泛,人们对其技术研究也展现出了很高的重视和期待。

  1.2发展前景

  在这个日新月异快速发展的时代,人们进行交流,获取信息的方式也发生着很大的变化。这些变化为我们的生活带来了很多的便利,也提供了更多的可能性。语音信号处理是由语音学和数字信号处理两个基础的学习科目之间交叉渗透从而产生的新学科。新事物往往会结合我们现有的一些学科技术碰撞出不一样的火花。语音信号处理技术也不例外,在许多学科中都有它的影子,比如语音学、心理学等,通过融合、创新,使其一起蓬勃发展,一起前进[2]。语音信号处理的技术发展到现在已经有很多比较成熟的技术,比如语音编码、语音合成等技术。对于语音信号的研究不仅可以应用在科学技术上,在我们的平时生活中应用也很广泛可以给我们带来舒适的生活体验。由此可见对这项技术的研究也很具前景。

  语音信号处理技术还是计算机智能接口与人机交互的重要手段之一。就语音识别技术而言,其基本任务是将输入语音转化为相应的文本或命令。这项技术也在某些行业领域逐渐成为一种主流的核心技术,研发人员进行开发创新拥有最新技术的公司将会大幅度提升竞争力。未来的语音信号处理市场具有很大的前景,一些人工智能的服务也会在未来越来越常见。

  1.3论文主要内容

  本论文是对语音信号进行去噪处理的研究,其主要内容有:

  (1)语音信号的录制。

  (2)语音信号在MATLAB平台的录入及打开。

  (3)对语音信号进行频谱分析。

  (4)在语音信号中加入一段随机噪声并绘制频谱图。

  (5)对语音信号进行去噪处理。

  (6)将去噪后的语音信号进行频谱分析,并与原始语音信号的频谱图进行对比观察去噪效果。

  整个过程用流程图可以表示为:

  2语音信号去噪方法的研究

  2.1语音信号采样的理论依据

  采样是将一个信号(即时间或空间上的连续函数)转换成一个数值序列(即时间或空间上的离散函数),这个数值序列即是一个数字信号。采样定理是将连续的模拟信号转变为离散的数字信号的方法。

  对于一个时域连续的信号f(t)利用开关函数s(t)进行采样,或者冲激函数序列进行采样()。两种取样都具有一定的取样间隔,同时要求f(t)为频带带限信号,否则取样后将发生频谱混合重叠,破坏原信号。采样定理公式如下:

  其中为采样间隔,设f(t)的频谱区间在之间,即信号频带带限,需满足的采样条件为:,其中为采样频率。根据采样定理的要求,若是想要得到完整的信号波形,进行采样的这个信号的最高频率要小于或者等于采样频率的0.5倍,这样才能保证波形没有失真。在进行实际操作时,通常采样频率在信号最高频率的五倍以上十倍以下的范围内,可以达到很好的效果。

  采样位数。众所周知,数字0和1可以用来描述计算机上存储的语音文件,在利用设备对语音信号进行录入和播放的过程中,会用到二进制位数,这就是指我们在课本上所学到的采样位数。如果要观察声音信号的变化起伏,可以选择采样位数来作为其中的一个指标进行对照分析。在一般的情况下采样位数越大,进入我们人耳所听到的声音就越真切。

  采样频率。在电脑对语音信号进行采集的过程中一秒钟所收录的声音样本的数量称为采样频率。根据上述采样定理的描述,采样频率大于最高频率的二倍时,输出的声音信号才能保证没有缺失完好无损。因此在进行语音信号的采集的过程中,还要注意不要遗忘采样频率与信号频率之间的联系。如果想要得到得到更加精准的声音信号的波形,可以使其在采样的过程中每秒钟采集的声音样本的数量增加,即增大采样频率的数值,以便在研究语音信号时得到的实验结果更加准确。

  在选择连接麦克风和其他声源的设备时要着重考察采样位数和采样频率这两个参数,在实际中其实还是采样位数对其设备的选择有很大的参考价值,一般来说,采样位数的数值越大我们得到的语音信号就越完整清晰。

  2.2语音信号的采集

  采集语音信号,我通过Gold Wave软件录制了一段7s的语音,在该软件中可以自动保存为.wav格式,并将它保存在正确的目录中,以便以后在MATLAB中能正确打开。图2-1是录制的语音信号

  图2-1

  用GlodWave软件录制语音信号是因为其能将录制好的语音文件自动存为WAV格式,其中还附带有很多编辑处理的功能,使用起来非常方便。

  2.3去噪方法的研究

  对语音信号进行去噪处理的方法发展至今已经比较完备,如今可以利用巴特沃斯去噪法、双线性去噪法等比较经典的方法来满足我们的需求。现在来介绍一下关于IIR和FIR滤波器去噪的相关知识。

  1.FIR滤波法

  有限长单位冲击响应(FIR)滤波器有以下几个特点:

  1)没有反馈回路,稳定性强。即FIR滤波器只需要有当前数据和历史输入数据,不需要历史滤波输出数据的参与(这是它与IIR最大的区别了,后面许多差别也就是因为这个而来的)。因为滤波的输出本来就是一个舍入值,若带入下一次的计算中,就会在这个舍入值(非精准值)基础上再一次舍入,进行N次,会产生微小的震荡。

  2)线性相位。算法计算完成后与原来数据有线性的相位差,更容易将计算后的信号相位还原成原相位(通过左右平移的方式直接修正)。

  3)阶次(就是N次选点)较高,对CPU的消耗更大。

  FIR滤波器是属于输入有界,输出也必须有界的稳定系统,它在数字信号处理系统中是必不可少的一部分。此滤波器具有线性相位,而且可以无限增加精度(在足够运算能力的前提下),并且不存在IIR滤波器的相位精度问题,是目前比较高端的解决方案。但因为采用的精度很高,所以对计算资源和内存、功耗的使用更高[5]。

  2.IIR滤波法

  无限长单位冲激响应(IIR)具有以下几个特点:

  1)非线性相位。可引起误差和震荡,适用于对相位要求不高的场合。

  2)递归性结构。IIR响应会反馈到网络函数里面。

  3)可借鉴已有设计公式、图表来进行设计,使其在没有精确计算工具时可以

  减少一些需要计算的地方。模拟滤波器的相关知识和数据比较全面,通过语音数据来确定参数,进而可以写出模拟滤波器的公式,然后再通过特定的转化方法将其改写成数字滤波器的公式。

  IIR数字滤波器的设计相对简单,具有存储单元少,计算量小,效率高等优点[8]。通过MATLAB软件设计数字滤波器可以借助一些相关的函数,本文设计的是用巴特窝斯滤波器和切必雪夫1型滤波器来滤除噪声,对应的函数可以用Buttworth和Cheby1函数来进行后续的设计,应用起来十分方便。

  FIR数字滤波器和IIR数字滤波器主要的一个差别就是线性相位的可实现与否,所以图像处理和数据传输等相位敏感的必须用FIR。语音信号则可以用设计量相对较小、并且幅频特性精度高的IIR。

  3数字滤波器的设计及实现

  3.1数字滤波器设计的基本思路

  滤波器,就是以特定方式改变信号的频率特性,从而实现信号变换的系统。滤波的目的主要在于提取有用信号,抑制不必要的干扰或消除信号的传输误差。从功能上分有低通滤波器、高通滤波器、带通滤波器、带阻滤波器[9]。从形式上分有模拟滤波器、数字滤波器。模拟滤波器从设计方法上又可分为巴特沃斯滤波器、切比雪夫滤波器等。IIR和FIR滤波器的划分是根据其实现的方法来进行分类的。

  对数字滤波器进行设计时最主要的一个过程是对传输函数G(z)的确定。设计IIR滤波器时比较常用的设计方法就是借助模拟滤波器按照一定的方法将其转化变成数字滤波器的各项指标。FIR的设计方法与其不同,设计的过程其实就是对其幅度响应的步步逼近。

  无论是IIR滤波器还是FIR滤波器在进行设计时,大体上的整个设计结构框架基本相同,其设计步骤如下:

  1)参数的确定

  在设计滤波器去噪时,可以根据自身所需的语音信号来确定滤波器参数。

  2)无限逼近。在设置好参数的基础上来建立一个理想的数字滤波器模型,通过对滤波器设计的实际操作向这个理想模型步步逼近。

  3)仿真及效果验证

  设计好滤波器后,可以利用计算机仿真来对其滤波器的去噪效果来进行验证

  如若没有达到很好的去噪效果可以通过调节滤波器的参数来反复调试,一直到满足需求。

  3.2设计切比雪夫滤波器

  3.2.1设计方法及设计步骤

  本文研究的是用IIR数字滤波器中的切比雪夫滤波器来去除噪声。

  设计IIR滤波器我是借助模拟滤波器来完成设计过程的,这种方法可以省去复杂的计算简便设计过程。例如在去噪时我用到的切比雪夫滤波器属于比较经典的滤波器类型,它的设计表达式以及它的很多数据表格都能用来参考对照。设计IIR滤波器还有另外一种方法,此方法需要进行一定的计算,并且用电脑来做辅助设计,相比之下还是用第一种方法实现起来比较好。

  下面就来介绍一下应用第一种方法进行的设计步骤:

  (1)在去噪的过程中用到的是低通滤波器,首先根据采集到的语音信号来确定数字低通滤波器的参数:通带边界频率:8000Hz、通带最大衰减:2dB、阻带截止频率:10000Hz、阻带最小衰减:35dB[12]。

  (2)用特定的转换公式将参数转换为模拟滤波器的参数。

  (3)根据转换好的参数来设计过渡模拟低通滤波器。

  (4)根据所选的转换方法,将系统函数由S域向Z域映射。

  脉冲响应不变法和双线性变换法是将转换成的两种基本方法。

  1)脉冲响应不变法

  下面介绍用脉冲响应不变法来将模拟低通滤波器的传输函数和数字低通滤波器的系统函数H(z)进行转换的过程。

  设模拟滤波器的传输函数为,相应的单位冲击响应是,,LT[.]代表拉氏变换,在相同的时间间隔T内对采样,从而得到,数字滤波器的单位取样响应可以用h(n)来表示,令。h(n)进行z变化变成H(z)。

  设模拟滤波器的分母多项式的阶次高于分子多项式的阶次,且具有单阶极点,将用部分分式表示:

  ,

  其中为的单阶极点。将逆拉氏变换得到:,其中u(t)是单位阶跃函数。

  在相同的时间间隔T内对采样,得到。对h(n)进行z变换,得到数字滤波器的系统函数H(z)[13]:

  经过一系列变换得到:

  2)双线性变换法

  在范围之内将整个频率轴上的频率进行压缩,这个方法也称为非线性压缩法。转换到z平面上使。设,从而有再经过上述的压缩方式后用来表示,这里用正切变换实现频率压缩:

  s平面上整个虚轴完全压缩到s1平面上虚轴的之间需要的取值范围在到时,的取值范围则由到,这样便会得到下式:

  再通过转换到z平面上,得到:

  ,

  令s=j,,有,。

  将模拟滤波器转化成数字滤波这两种基本方法都可以实现,但前者不可避免的存在频谱混叠,后者能克服这一缺点。所以在设计切比雪夫滤波器时用的是双线性变换法,在设计时带入相应的函数即可。

  3.2.2源程序与仿真图

  切比雪夫1型低通滤波器的设计程序见附录程序3,仿真图如下:

  图3-1

  3.3设计巴特沃斯滤波器

  3.3.1设计方法及设计步骤

  设计巴特沃斯低通滤波器的具体设计步骤如下:

  (1)根据实际操作情况来确定巴特沃斯数字低通滤波器的指标参数:Fs采样频率、Wp通带截止频率,Ws阻带截止频率,Rp通带最大衰减,Rs阻带最小衰减[14]。

  (2)将数字滤波器的指标转换为模拟滤波器的指标,这里指Wp,Ws的变化,Rp、Rs保持不变。采用的也是双线性变换法,其转换公式为:

  ,

  在MATLAB设计中因为采用的是双线性变换法,要先采取预畸变。

  (3)归一化处理。

  (4)将模拟滤波器转换成数字低通滤波器系统函数H(z)。转换公式为:。

  3.3.2源程序与仿真图

  巴特沃斯低通滤波器的程序见附录程序4,其仿真图像见下图:

  图3-2

  4去噪及仿真的研究

  4.1原始语音信号的频谱分析及仿真

  4.1.1 FFT的MATLAB实现

  为了对语音信号进行更直观的分析,在MATLAB平台上用FFT函数来对语音信号进行频谱分析。

  FFT也叫快速傅里叶变化,是离散傅里叶变换的快速算法[15]。对于一些在时域上特征不明显的信号很难进行分析,因此就需要进行FFT将其变换到频域上,信号的特征就会比较直观的呈现,有利于我们进行观察分析。

  在MATLAB中傅里叶命令有两种:

  (1)Y=fft(x),其中,x为一个序列(向量),存放采集信号的数据;

  (2)另外一种Y=fft(x,n),x的定义同上,n定义计算数据的个数,如果n大于x的长度,在x的末尾添0,使得x的长度等于n。如果n小于x的长度,截取x中的前n个数来进行计算。Y返回fft的结果,为一个复数序列(向量)[15]。

  FFT结果的数据长度:时域N个点,频域为N/2+1个点;x轴频率点的设置:采样频率为Fs时,频谱图的最高频率为Fs/2(参照采样定理)。综合上述两点,x轴的频率点为(0:1:N/2)*Fs/N。

  在对原始语音信号进行FFT时,我采用的格式为y=fft(x)。其中x是序列,y是序列的FFT。经过快速傅里叶变化的序列通常是要求其幅值和相位的复序列。在MATLAB进行变换时,通常用函数abs(x)来计算复向量x的幅值,函数angle(x)来计算复向量的相角。

  4.1.2仿真图像与分析

  其程序见附录程序1,由此得到原语音信号的幅频特性曲线,如下图4-1。

  图4-1

  4.2加噪语音信号的频谱分析与仿真

  4.2.1随机信号加入原始语音信号

  在原始语音信号中加入随机信号,利用MATLAB中的随机函数randn(可以产生正态分布的随机数或矩阵的函数)来模拟带噪声的语音信号,通过对被污染的语音信号进行频谱分析来进行观察。此函数的用法:y=randn(n)表示返回一个n*n的随机项的矩阵,详细程序见附录程序2。

  4.2.2加噪信号的频谱分析

  图4-2

  根据图4-1、4-2可以看出加噪后的语音信号的幅值比原始语音信号的幅值明显增加了,时域波形也发生了变化。通过运行程序播放这两段语音可以明显听出加了噪声之后的语音信号在原始语音信号的基础上伴随着很多呲呲啦啦的杂音。

  4.3去噪与仿真

  对于带有噪声的语音信号我设计了两个数字低通滤波器来滤除噪声,分别是切比雪夫低通滤波器和巴特沃斯低通滤波器,在上一章已经根据技术指标设计好了滤波器,下面让我们来看看这两种滤波器的去噪效果。详细的程序见附录程序5和程序6,图4-3、4-4分别为切比雪夫滤波器和巴特沃斯滤波器对加噪语音信号进行滤波的时域频域图,并且与原始语音信号、加噪语音信号放在一起相比较,使观察效果更加明显。

  图4-3

  图4-4

  4.4观察去噪效果

  通过图4-3、4-4的仿真实验可以看出原始语音信号和加噪语音信号时域波形与频谱图的区别,在时域波形的对比上可以看出加了噪声之后的语音信号时域波形图会更加模糊一些,频谱图在5kHz后明显发生了变化。通过对语音信号的回放可以听到语音信号伴随着呲呲啦啦的声音,而经过滤波器滤波之后,可以听到滤波后的语音信号并没有加噪语音信号那么刺耳,与原始语音信号几乎差不多。由此可见,设计的这两种滤波器的滤波效果都比较好。