基于MATLAB语音信号降噪处理刘芬之令狐文艳创作.docx
- 文档编号:9002709
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:32
- 大小:210.09KB
基于MATLAB语音信号降噪处理刘芬之令狐文艳创作.docx
《基于MATLAB语音信号降噪处理刘芬之令狐文艳创作.docx》由会员分享,可在线阅读,更多相关《基于MATLAB语音信号降噪处理刘芬之令狐文艳创作.docx(32页珍藏版)》请在冰豆网上搜索。
基于MATLAB语音信号降噪处理刘芬之令狐文艳创作
令狐文艳
插图清单II
摘要III
AbstractIV
引言-1-
第一章语音信号的采集-2-
1.1语音信号产生数字模型-2-
1.2语音信号的数字化和预处理-2-
第二章语音信号的分析-6-
2.1语音信号的时域分析和频域分析-6-
2.1.1语音信号的时域分析-6-
2.1.2语音信号的频域分析-6-
2.2语音信号处理软件介绍-7-
2.3基于MATLAB的语音信号处理-7-
第三章MATLAB滤波器设计-9-
3.1模拟滤波器设计-9-
3.2数字滤波器设计-9-
第四章语音信号降噪处理-11-
4.1语音信号处理调用函数介绍-11-
4.2语音信号降噪程序设计-12-
4.2.1原始语音信号的获得-12-
4.2.2原始语音信号加噪处理-13-
4.2.3语音信号滤波处理-15-
4.3改进型语音降噪技术-18-
结论-25-
参考文献-26-
致谢-27-
插图清单
图1-1语音信号产生模型…………………………………………………………-2-
图1-2语音信号时域波形…………………………………………………………-3-
图1-3语音信号频谱图……………………………………………………………-4-
图1-4时域波形比较……………………………………………………………-5-
图2-1语音信号降噪流程图……………………………………………………-8-
图3-1巴特沃斯滤波器频率响应………………………………………………-10-
图4-1原始语音信号时域波形…………………………………………………-13-
图4-2原始语音信号频谱图……………………………………………………-13-
图4-3加噪语音信号时域波形…………………………………………………-15-
图4-4加噪语音信号频谱图……………………………………………………-15-
图4-5滤波前后时域波形比较图………………………………………………-17-
图4-6滤波前后频谱比较图……………………………………………………-17-
图4-7语音激活检测框图………………………………………………………-18-
图4-8纯净语音信号时域波形…………………………………………………-23-
图4-9带噪语音信号时域波形…………………………………………………-23-
图4-10增强后语音信号时域波形……………………………………………-24-
摘要
语音是语言符号系统载体。
由人的发音器官发出,带有一定意义的语言意义。
语言通过语音实现它的社会功能。
语言的声音和语言的意义是紧密联系着的,但语言和语音又是有着本质区别的。
人们通过语言进行交流和社会活动,我们要对语音进行处理分析,优化人类通信交流。
对于语音信号的处理,有通过语音信号的数字处理技术和相关技术,研究语音信号处理是十分有实际意义的。
本次论文制作,选取的是一段wav格式语音信号,运用MATLAB软件分析语音信号的时域波形和频域图形。
在对语音信号进行滤波处理前,先对原始语音信号进行了加噪处理,此举目的是为了使滤波前和滤波后的信号有明显区别。
加噪后的语音通过MATLAB绘制出它的时域波形和频谱。
加噪前后的语音信号我们可通过MATLAB软件中sound函数播放,明显感觉到加入噪声的效果。
滤波处理后进行了语音回放。
滤波处理在本次设计中用到的是巴特沃斯低通滤波器。
对于巴特沃斯低通滤波器的设计,在现在已有相当成熟的设计技术可供借鉴。
滤波器降噪效果不是十分理想,本文还提供了一种改进型降噪处理方法。
MATLAB软件功能强大,本次语音信号处理所用的都是MATLAB软件中的相关函数。
关键词:
语音;噪声;MATLAB;滤波器;信号处理
Abstract
Thevoiceisthecarrieroflanguagesymbolsystem.Issuedbythehumanvocalorgans,withacertainsenseofmeaninginlanguage.Itssocialfunctionoflanguagearecloselylinked,butthelanguageandvoiceisdifferentinnature.Throughlanguage,communicationandsocialactivities,tothevoiceprocessingandanalysisandoptimizationofhumancommunicationexchange.Forspeechsignalprocessing,digitalvoicesignalprocessingtechnologyandrelatedtechnologies,speechsignalprocessingisofpracticalsignificance.
Thepaperproduction,theselectedperidofwavformatvoicesignalusingMATLABsoftwaretoanalyzethespeechsignaltime-domainwaveformandfrequence-domaingraphics.Filteringthespeechsignal,thefirstoftheoriginalspeechsignalplusnoise,theaimwastomakebeforefilteringandthefilteredsignal.VoiceplusnoisebyMATLABtomapoutitstime-domainwavefromandspectrum.Thevoicesignalbeforeandafteraddingnoise,wecanpaythroughthesoundfunctionintheMATLABsoftware,andobviouslyfeelthatbyaddingtheeffectofnoise.Voiceplaybackfiltering,filteringusedinthedesignoftheButterworthlow-passfilter.Butterworthlow-passfilterdesignarenowquitematuredesigntechnologyforreference.
MATLABsoftwareispowerful,thecorrelationfunctionofthespeechsignalprocessingareusedMATLABsoftware.
Kerwords:
voice;noise;ofMATLAB;filter;signalprocessing
引言
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
语音信号是人们构成思想疏通和感情交流的最主要途径。
20世纪60年代中期语音信号的采集与分析作为一个重要的研究领域,形成的一系列数字信号处理方法和技术,如快速博里叶变换(FFT)、数字滤波器。
随着信息科学技术的飞速发展,语音信号处理在最近20多年中取得了重大进展。
在处理方法上,随着电子计算机的飞速发展,以前以硬件为中心的研究逐渐转化为以软件处理为主的研究。
然而,在语音识别领域,初期有几种语音打字机的研究很活跃,但后来被全部停了下来,这说明了当时对话音识别难度的认识得到了加深。
20世纪90年代以来,语音信号采集和分析通过科学家的不断努力在实用化方面取得了许多实质性的研究进展。
其中,语音信号的识别技术和处理技术逐渐从实验室走到大众的现实生活中,具体体现在移动通信的普。
另一方面,为了语音识别实用化的需要,快速搜索识别算法、听觉模型、讲者自适应以及进一步的语言模型的研究等课题倍受关注。
本文基于matlab的基础进行语音信号的分析和降噪处理。
第一章语音信号的采集
1.1语音信号产生数字模型
一般的语音信号是模拟信号,模拟信号的存储和传输都比数字语音信号占更大的内存和带宽。
所以获得数字语音信号可方便对语音信号的后续处理。
语音信号的数字模型就是利用数字模拟技术模拟连续语音信号,或者说,利用数字信号处理技术来实现发音器官的模拟。
发音器官能发出连续的声波,那么数字模型就能产生与此相对应的信号序列。
为了表示取样的语音信号,我们采用的是离散时间模型。
虽然已经假定了许多不同的模型,但是目前还没发现一种可以详细描述人类语音中以观察到的全部特征模型。
建立模型的基本准则是寻求一种可以表达一定物理状态下的数学关系,要使这种关系不仅具有强大的精确度,而且还要最简单。
由于语音信号是一连串的时变过程,具有的是非线性时变特性。
然而,作出一些合理的假设,在较短的时间间隔内表示语音信号,可以采用线性时不变模型。
图1-1给出经典的语音信号数字模型。
这里,语音信号被看成是线性时不变系统在随机噪声或准周期脉冲序列下的输出。
图1-1语音信号产生模型
1.2语音信号的数字化和预处理
语音信号的数字化处理一般包括反混叠滤波、采样、放大以及增益控制、A/D转换及PCM编码。
预处理则包括预加重、分帧和加窗。
在将语音信号进行数字化前,必须先进行防混叠预滤波,预滤波的目的有两个:
(1)抑制输入信导各频域分量中频率超出fs/2的所有分量(fs为采样频率),以防止混叠干扰。
(2)抑制50Hz的电源工频干扰。
这样预滤波器必须是一个带通滤波器。
语音信号处理中,为将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。
采样,是信号在时间上的离散化,即在模拟信号x(t)上按照一定时间间隔
逐点采取其瞬时值。
采样时必须要注意满足奈奎斯特定理,即采样频率fs必须以高于被测信号的最高频率两倍以上的速度进行采样,才能正确地重建原始波形,它是通过采样脉冲和模拟信号相乘来实现的。
根据语音信号时域波形可知,语音信号频率集中于1KHz,而采样频率50KHz远大于1KHz,因此不会发生采样混叠现象。
如果上述语音信号的采样频率变为600Hz时,由于采样频率小,所得采样点少,离散信号偏离原始信号,频谱发生混叠。
一般而言,采样频率越高,采样就越密,所得离散信号就越逼近原始信号。
但对于固定长度的信号,过高的采样频率并不可取,会给计算机增加不必要的工作量和存储空间。
采样频率过低,采样点间隔过远,则离散信号不足以反映原有信号波形特征,无法使信号复原,造成信号混淆。
根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。
采样后的信号仍然是模拟信号,需对其进行量化,才可得到数字信号。
量化是对幅值进行离散化,即将振动幅值用二进制量化电平来表示。
量化电平按级数变化,实际的振动值是连续的物理量。
量化一般有均匀量化和非均匀量化。
而均匀量化对于小输入信号很不利,为了克服这个缺点,改善小信号时的信号量噪比,通常在实际中用到非均匀量化。
非均匀量化间隔是根据信号抽样值的不同而变化的。
语音信号经过预滤波和采样后,由A/D变换器变换为二进制数字码。
这种防混叠滤波与模数转换器通常做在一个集成块内,因此到目前来说,语音信号的数字化的质量还是可靠地。
第二章语音信号的分析
2.1语音信号的时域分析和频域分析
2.1.1语音信号的时域分析
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音识别、语音增强、语音编码和语音合成等语音处理中全都需要提取语音中包含的各类信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域变换和频域变换分析方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
(1)提取:
通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。
(2)调整:
在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。
2.1.2语音信号的频域分析
分析语音信号的频域特征称为语音信号的频域分析。
语音信号的频域分析包括语音信号的功率谱、频谱、频谱包络倒频谱分析。
我在本次设计中选择傅里叶变换的方法对语音信号的频谱进行分析。
之所以选择这种方法,是由于在本科学习期间重点学习了傅里叶变换的方法。
对于傅里叶变换,它把一些复杂的信号进行分解,分解为许多有一定相互关系的正弦信号的和。
再对各个正弦信号进行分析,而得到复杂信号的一些特征。
傅里叶变换可用下面公式表示:
x(t)为信号的时域表示,X(f)为信号的频域表示,f为频率。
信号的傅里叶表示在信号的分析与处理中有着十分重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅里叶分析方法能完善地解决许多信号分析和处理问题。
另外,傅里叶表示使信号的某些特性变得更明显。
语音信号是随着时间变化的,但通常认为,语音是一个随机噪声源激励或受准周期脉冲的线性系统的输出,输出频谱是声道系统频率响应与激励源频谱的乘积。
然而声道系统的频率响应及激励源都是随时间变化的,一般标准的傅里叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。
语音信号我们则可以认为在短时间内,近似不变,因而可以采用短时分析法,减少分析的困难。
2.2基于MATLAB的语音信号处理
Matlab是一个比较常用的语音处理工具箱。
基于DSP和MATLAB的语音数据采集和处理系统,该工具包主要应用于语音处理中听觉模型的建立和分析,其中也包含了语音处理的各种基本功能如线性预测、语谱图、识别和合成等语音信号的频域处理。
语音虽然是一个非平稳、时变的随机过程,但在短时间内可近似看作是平稳的。
如果能从带噪语音的短时谱中估计出“纯净”的语音短时谱,就可达到消除噪声的目的。
噪声也是随机过程,所以这种估计只能建立在统计模型基础上。
利用人耳感知对语音频谱分量的相位不敏感的特性,这类语音增强算法主要针对短时谱的幅度估计。
用MATLAB对语音信号进行处理,综合运用数字信号处理的理论知识对加噪语音信号进行时域、频域分析和滤波。
滤波所需的滤波器,可以利用MATLAB工具箱快速有效的设计。
本次设计流程,大致包括对原始语音加噪、时域分析和频域分析,绘制出相关波形。
加噪语音再通过设计的滤波器,得出处理后的频谱图形。
处理的一系列过程,都在MATLAB环境中进行。
流程图如图2-1。
图2-1语音信号降噪处理流程图
第三章MATLAB滤波器设计
3.1模拟滤波器设计
模拟滤波器的理论和设计方法已相当成熟,设计时可以选用已有的典型模拟滤波器,如巴特沃斯滤波器、契比雪夫滤波器、椭圆滤波器、贝赛尔滤波器等。
它们有严格的设计公式和现成的曲线图表可供参考。
本次设计中选择巴特沃斯滤波器。
巴特沃斯滤波器具有单调下降的幅频特性。
该滤波器通带内具有最大平坦的幅频特性,随频率的增大,平滑单调下降。
且阶数N越高,响应特性越接近矩形,过度带越窄。
巴特沃斯低通滤波器设计:
MATLAB信号处理工具箱函数buttap,buttord和butter是巴特沃斯滤波器设计函数。
Buttord命令的格式是:
[n,wn]=buttord(wp,ws,Rp,Rs)
巴特沃斯低通滤波器系数的计算公式为:
[b,a]=butter(n,Wn)
3.2数字滤波器设计
数字滤波器按照实现的网络结构或单位抽样响应进行分类,可以分成无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)数字滤波器。
数字滤波器的四个重要的通带、阻带参数是:
fp:
通带截止频率(Hz)
fs:
阻带起始频率(Hz)
Rp:
阻带内波动(dB),即通带内允许的最大衰减
Rs:
阻带内最小波动(dB)
设采样频率(即奈奎斯特频率)为fN,那么可将以上参数中的频率参数转化为归一化角频率参数:
Wp:
通带截止角频率(rad/s),wp=fp/(fN/2)
Ws:
通带起始角频率(rad/s),ws=fs/(fN/2)
通过这些参数就可以进行数字滤波器的设计。
在本次设计中用到得是FIR滤波器。
FIR滤波器的设计方法有窗函数法、频率取样法、最佳等波纹法等。
FIR滤波器与IIR滤波器相比,在保证幅频满足技术要求的同时,更容易做到严格的线性相位。
在MATLAB设计FIR滤波器的相关文件buttord.m用来确定数字滤波器的阶次,其调用格式为:
[n,wn]=buttord(wp,ws,Rp,Rs)
对于不同类型的滤波器,参数Wp和Ws有一些限制:
对于低通滤波器,Wp bilinear可实现双线性变换,即由模拟滤波器H(s)到数字滤波器H(z)。 其调用格式是 [bz,az]=bilinear(b,a,Fs) 式中b,a分别是H(s)的分子、分母多项式的系数向量;bz,az分别是H(z)的分子、分母多项式的系数向量,Fs是抽样频率。 本次设计中用到的巴特沃斯低通滤波器设计程序如下: Fs=50000;Ts=1/Fs; wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标 ws1=2/Ts*tan(ws/2); [N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数 [Z,P,K]=buttap(N); %创建butterworth模拟滤波器 [Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn); [bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换 [H,W]=freqz(bz,az); %绘制频率响应曲线 figure (1);plot(W*Fs/(2*pi) wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15; abs(H));grid xlabel('频率/Hz');ylabel('频率响应幅度');title('Butterworth') 该低通滤波器的频率响应如图3-1: 图3-1巴特沃斯滤波器频率响应 第四章语音信号降噪处理 4.1语音信号处理调用函数介绍 信号处理中调用函数主要有Wavread,还有其他相关函数,有fftfilt函数、sound函数、filter函数、randn函数和FFT函数。 选取一段语音信号,然后在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。 通过使用wavread函数,理解采样频率、采样位数等概念。 wavread函数调用格式: y=wavread(file) 读取file所规定的wav文件,pcm格式的文件才能被读取。 返回采样值放在向量y中。 [y,fs,nbits]=wavread(file) 采样值放在向y中, 表示采样频率( ),nbits表示采样位数。 y=wavread(file,N) 读取前N点的采样值放在向量y中。 y=wavread(file,[ ]) 读取从 到 点的采样值放在向量y中。 对语音信号1.wav进行采样其程序如下: [y,fs,nbits]=wavread(‘1.wavv’) 其中: fs=5000;(fs=50000为双声道设置频率,fs=25000为单声道设置频率) nbits=16; y=wavread(‘1.wav’) 另外相关的函数fftfilt的调用格式为 y=fftfilt(b,x) 该格式是利用FFT的重叠相加法对数据进行滤波的,并且这种频域滤波技术只对FIR滤波器有效。 该函数是通过向量b描述的滤波器对x数据进行滤波。 函数sound可以对声音进行回放。 其调用格式为: sound(x,fs,bits) 函数filter的调用格式为 y=filter(b,a,x) 该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。 其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。 该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y中。 rand产生的是[0,1]上的均匀分布的随机序列,randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;也就是说,可以直接使用上面两个函数对原始信号添加噪声,调用格式: y=x+rand(length(x),1)或者y=x+randn(length(x),1) 在MATLAB的信号处理工具箱中函数FFT用于序列快速傅立叶变换。 FFT函数的一种调用格式为 其中,x是序列,y是序列的FFT,x可以为一向量或矩阵。 FFT函数的另一种调用格式为 式中,x,y意义同前,N为正整数 4.2语音信号降噪程序设计 4.2.1原始语音信号的获得 在原始语音信号的得到可用windows的录音机录制一段自己说的话(语音信号),在本次设计中我直接用了一个wav文件来当作原始语音信号,再画出语音信号的时域波形和频谱图;在MATLAB中使用Wavread函数,可得出声音的采样频率fs为5KHz,且声音是双声道的。 利用sound函数,可清晰地听到一段音乐语音。 设计程序详见附录1: 得到时域波形和频谱图如图4-1和图4-2: 图4-1原始语音信号时域波形 时域波形中的蓝色波形是选用的语音信号原来带有的噪声,说明原始的声音包含在少量噪声。 图4-2原始语音信号频谱图 从频谱图可以看出,语音信号的频谱在[0,2 ]是对称的,主要看[0,2.5KHZ]之间的频谱,可以看出这段语音信号的频谱主要集中在[0,1KHZ]之间,高频部分几乎为0。 4.2.2原始语音信号加噪处理 运用MATLAB,给语音信号加上噪声,绘出加噪后的语音信号时域波形和频谱。 应当注意加入的单频噪声的位置应高于原始语音信号的频率,噪声频率越高,滤波器设计的指标就会越宽松,这样可使噪声容易被滤除。 高斯白噪声加噪设计程序见附录2: 加噪声后的语音信号时域波形和频谱图如图4-3和图4-4: 图4-3加噪语音信号时域波形 从时域图中可以看出,声音信号的波形基本都被噪声波形覆盖。 图4-4加噪语音信号频谱图 对比图1-2,可以看出,在高频部分[1KHZ,2.5KHZ]间噪声信号。 4.2.3语音信号滤波处理 用前面设计的滤波器对语音信号进行滤波,得出滤波后信号的时域波形和频谱图,并对滤波前、后的信号进行对比,画出时域波形差,分析信号的变化。 在MATLAB中,用巴特沃斯数字低通滤波器,其程序设计详见附录3: 滤波前后语音信号的时域波形和频谱图对比如图4-5和图4-6: 图4-5滤波前后时域波形比较图 图4-6滤波前后频谱对比图 利用函数sound函数,进行语音回放,比较下滤波前后的语音效果,会发现滤除了绝大部分噪声,但没完全滤除,这是设计的滤波器不够精细,残留噪声的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 语音 信号 处理 令狐 创作