基于MATLAB的有噪声语音信号处理.docx

上传人:b****8 文档编号:23765741 上传时间:2023-05-20 格式:DOCX 页数:60 大小:555.36KB
下载 相关 举报
基于MATLAB的有噪声语音信号处理.docx_第1页
第1页 / 共60页
基于MATLAB的有噪声语音信号处理.docx_第2页
第2页 / 共60页
基于MATLAB的有噪声语音信号处理.docx_第3页
第3页 / 共60页
基于MATLAB的有噪声语音信号处理.docx_第4页
第4页 / 共60页
基于MATLAB的有噪声语音信号处理.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

基于MATLAB的有噪声语音信号处理.docx

《基于MATLAB的有噪声语音信号处理.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的有噪声语音信号处理.docx(60页珍藏版)》请在冰豆网上搜索。

基于MATLAB的有噪声语音信号处理.docx

基于MATLAB的有噪声语音信号处理

南京林业大学

本科毕业设计(论文)

 

题目:

基于MATLAB的有噪声语音信号处理

 

 

二O一一年六月十日

摘要

滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。

Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。

利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。

在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。

通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。

关键词数字滤波器;MATLAB;窗函数法;巴特沃斯;切比雪夫;双线性变换

 

Abstract

Filterdesignindigitalsignalprocessingplaysanextremelyimportantrole,FIRdigitalfiltersandIIRfilterisanimportantpartoffilterdesign.Matlabispowerful,easytolearn,programmingefficiency,whichwaswelcomedbythemajorityofscientists.Matlabalsohasaparticularsignalanalysistoolbox,itneednothavestrongprogrammingskillscanbeeasilysignalanalysis,processinganddesign.UsingMATLABSignalProcessingToolboxcanquicklyandefficientlydesignavarietyofdigitalfilters.MATLABbasedonthenoiseissuespeechsignalprocessingdesignandimplementationofdigitalsignalprocessingintegrateduseofthetheoreticalknowledgeofthespeechsignalplusnoise,timedomain,frequencydomainanalysisandfiltering.Thecorrespondingresultsobtainedthroughtheoreticalderivation,andthenuseMATLABasaprogrammingtoolforcomputerimplementation.Implementedinthedesignprocess,usingthewindowfunctionmethodtodesignFIRdigitalfilterswithButterworth,ChebyshevandbilinearReformIIRdigitalfilterdesignanduseofMATLABasasupplementarytooltocompletethecalculationandgraphicdesignDrawing.ThroughthesimulationofthedesignedfilterandthefrequencyanalysisshowsthatusingMatlabSignalProcessingToolboxcanquicklyandeasilydesigndigitalfiltersFIRandIIR,theprocessissimpleandconvenient,theresultsoftheperformanceindicatorstomeetthespecifiedrequirements.

 

Keywords:

digitalfilter;MATLAB;Chebyshev;Butterworth;Windowfunctionmethod;bilineartransformation

1.绪论

数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。

具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器,是数字信号处理中及其重要的一部分。

随着信息时代和数字技术的发展,受到人们越来越多的重视。

数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。

数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。

FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H(z)在处收敛,极点全部在z=0处(因果系统),因而只能用较高的阶数达到高的选择性。

FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。

FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。

IIR滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。

随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。

它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化[1]。

1.1研究的目的和意义

语音信号的采集与分析技术是一门涉及面很广的交叉科学,它的应用和发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系,语音是人类获取信息的重要来源和利用信息的重要手段。

在信号传输过程中,由于实验条件或各种其他主观或客观条件的原因,语音处理系统都不可避免地要受到各种噪声的干扰。

噪声不但降低了语音质量和语音的可懂度,而且还将导致系统性能的急剧恶化,严重时使整个系统无法正常工作。

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

其强大的数据处理能力可以极大程度上削弱噪声影响,还原出真实的语音信号(相符度在90%以上)[2]。

1.2国内同行研究现状

MATLAB是MatrixLaboratory(矩阵实验室)的缩写,是MathWorks推出的一套高性能可视化软件,它集数值分析,矩阵运算,函数生成,信号处理,图像处理,建模与仿真等诸多功能于一体,为使用者提供一个高效的编程工具。

本次毕业设计中,我们就用它作为编程工具和辅助工具进行设计。

噪声污染位于联合国四大公认污染之一,无论是尖锐的火车汽笛声,还是我们肉耳听不到的超声波,次声波都有可能给人们生活带来极大不便。

在机械方面,机械件碰撞带来的噪声会缩短器件寿命,在电子方面,电器件在噪声的影响下可能会失灵。

华中师范大学教育信息技术工程研究中心(武汉)刘智老师曾经就机械噪声给人们身心带来的伤害进行过一次计算机仿真,同时用MATLAB进行了信号处理。

此次研究,他通过比较加噪前后,语音的频谱和语音回放,能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐的干扰啸叫声。

从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。

其实,这正是干扰所造成的。

通过滤波前后的对比,得出低通滤波后效果最好,高通滤波后的效果最差的结果[3]。

大连理工大学2000级硕士蒋瑞艳也曾经做过一个振动,噪声处理系统,它是WINDOWS界面下的振动、噪声信号处理系统,它在专用模拟输入硬件(数据采集系统)支持下,可以完成振动、噪声信号的数据采集以及功率谱、倒谱、谱阵和传递函数分析等功能。

能将数据转化成各种对应的图形,并具备ZOOM功能。

它可以广泛应用于实验室、生产现场和教学中做振动、噪声的测试和分析,可以代替专用信号处理机的工作。

本系统软件采用先进的C++Builder语言编制,在WINDOWS系统下运行。

软件界面的设计以满足大多数用户为主,力求直观通俗,通过菜单驱动完成各个功能[4]。

华中科技大学能源与动力工程学院就“基于MATLAB的噪声信号采集与分析系统研究 ”做过研究报告,他们利用MATLAB的数据采集工具箱(DAQ)和信号处理工具箱开发了一套声音信号采集分析系统,该系统不仅能够实现低成本、高精度的实时采集,还能将声音信号资料导入系统进行时域和频域分析。

利用另外一个工具Compiler使编制的MATLAB程序能够独立运行从而提高了运行速度;配备了友好的图形用户界面(GUI),方便用户操作。

最后给出了系统在内燃机噪声诊断方面的应用实例[5]。

在机械方面,西北工业大学航海工程学院就“基于MATLAB的舰船辐射噪声信号小波消噪处理”做过研究报告,他们针对舰船辐射噪声信号的特点提出了小波消噪的方法,对小波消噪理论作了简要的阐述,并设计了一种消噪方案,最后利用MATLAB,在计算机上选用不同的小波基和阈值进行了实船信号的消噪处理试验,并对结果进行了简单的分析比较。

试验结果表明,在选择了合适的小波基和阈值的情况下,利用小波变换的方法对舰船辐射噪声进行消噪处理可以取得良好的效果[6]。

 由此可见,MATLAB给噪声处理带来了极大“福音”。

1.3本课题的研究内容

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。

在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。

通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器。

 

2.原始语音信号采集与处理

2.1Matlab简单介绍

MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

  

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。

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

2.2.1采样频率

采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。

采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。

采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。

这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。

2.2.2采样位数

采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。

采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。

无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。

每增加一个采样位数相当于力度范围增加了6dB。

采样位数越多则捕捉到的信号越精确。

对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。

显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。

2.2.3采样定理

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:

fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。

1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:

理想低通信道的最高大码元传输速率=2W*log2N(其中W是理想低通信道的带宽,N是电平强度)

2.3语音信号的采集

利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。

点击放音按钮,可以实现所录音的重现。

以文件名“Orisound”保存入c:

\MATLAB\work中。

可以看到,文件存储器的后缀默认为.wav,这是WINDOWS操作系统规定的声音文件存的标准。

2.4程序流程图

图2-1程序流程图

2.5语音信号的时频分析

在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数,Wavread函数调用格式

y=wavread(file)%读取file所规定的wav文件,返回采样值放在向量y中。

[y,fs,bits]=wavread(file)%采样值放在向量y中,fs表示采样频率(hz),bits表示采样位数。

y=wavread(file,N)%读取前N点的采样值放在向量y中。

y=wavread(file,[N1,N2])%读取从N1到N2点的采样值放在向量y中。

对语音信号Orisound.wav进行采样其程序如下:

[y,fs,nbits]=wavread(‘OriSound’);%把语音信号加载入MATLAB仿真软件平台中

画出语音信号的时域波形,再对语音信号进行频谱分析。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:

Xk=fft(xn,N)(式2-1)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。

,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

程序如下:

[y,fs,nbits]=wavread(‘OriSound’);%语音信号的采集

sound(y,fs,nbits);%语音信号的播放

n=length(y);

Y=fft(y,n);%快速傅里叶变换

figure;

subplot(2,1,1);

plot(y);

title(‘原始信号波形’,’fontweight’,’bold’);

axis([7800080000-11]);

grid;

subplot(2,1,2);

plot(abs(Y));

title(‘原始信号频谱’,’fontweight’,’bold’);

axis([015000004000]);

grid;

程序结果如下图:

图2-2原始信号采集波形图

2.6语音信号加噪与频谱分析

在MATLAB中产生高斯白噪声非常方便,我们可以直接应用两个函数:

一个是WGN,另一个是AWGN。

WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。

也可直接用randn函数产生高斯分布序列。

在本次设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。

Randn函数有两种基本调用格式:

Randn(n)和Randn(m,n),前者产生n×n服从标准高斯分布的随机数矩阵,后者产生m×n的随机数矩阵。

在这里,我们选用Randn(m,n)函数。

语音信号添加噪声及其频谱分析的主要程序如下:

[y,fs,nbits]=wavread('OriSound');

sound(y,fs,nbits);

n=length(y);

Noise=0.2*randn(n,2);

s=y+Noise;

sound(s);

figure;

subplot(2,1,1);

plot(s);

title('加噪语音信号的时域波形','fontweight','bold');

axis([7800080000-11]);

grid;

S=fft(s);

subplot(2,1,2);

plot(abs(S));

title('加噪语音信号的频域波形','fontweight','bold');

axis([015000004000]);

grid;

图2-3信号加噪时域波形图与频谱图

2.7本章小结

本章介绍了语音信号的采集,信号加白噪声,加噪后的时域与频域分析。

 

3设计数字滤波器

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

数字滤波器的实现有两个关键步骤:

一个从数字域到模拟域间的变换,这个变换实现了数字滤波器技术指标到模拟滤波器技术指标的转换,同样也实现了模拟滤波器系统函数到数字滤波器系统函数的转换;另一个是从模拟滤波器技术指标到满足该指标的模拟滤波器的设计。

3.2模拟滤波器概述

用模拟—数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下两种类型:

巴特沃思(Botterworth简写BW)滤波器。

BW滤波器是根据幅频特性在通带内具有最拼图特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在

处都为零。

BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶次N的增大而更接近于理想低通滤波器。

切比雪夫(Chbyshev简写为CB)滤波器。

CB低通滤波器的模拟函数由切比雪夫多项式定义,且在通带内的幅频响应是波动的,在阻带则单调变化。

3.3IIR数字滤波器概述

IIR(InfiniteImpulseResponse)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器”。

递归滤波器,也就是IIR数字滤波器,顾名思义,具有反馈,一般认为具有无限的脉冲响应。

IIR滤波器有以下几个特点:

(1)封闭函数:

IIR数字滤波器的系统函数可以写成封闭函数的形式。

(2)IIR数字滤波器采用递归型结构:

IIR数字滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

(3)借助成熟的模拟滤波器的成果:

IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。

在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,再通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

(4)需加相位校准网络:

IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。

3.4FIR数字滤波器概述

FIR数字滤波器(finiteimpulseresponsefilter)又名“有限脉冲响应数字滤波器”,这类滤波器对于脉冲输入信号的响应最终趋向于0,因此而得名。

有限脉冲响应滤波器(FIRfilter)的优点:

(1)脉冲响应(impulseresponse)为有限长:

造成当输入数位讯号为有限长的时候,输出数位讯号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1