基于MATLAB的有噪声语音信号处理_第1页
基于MATLAB的有噪声语音信号处理_第2页
基于MATLAB的有噪声语音信号处理_第3页
基于MATLAB的有噪声语音信号处理_第4页
基于MATLAB的有噪声语音信号处理_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MATLAB的有噪声语音信号处理 基于MATLAB的有噪声语音信号处理二O一一年六月十日PAGEII摘要滤波器设计在数字信号处理中占有极其重要的地位,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.绪论 11.1研究的目的和意义 21.2国内同行研究现状 21.3本课题的研究内容 42.原始语音信号采集与处理 52.1Matlab简单介绍 52.2语音信号的采样理论依据 62.3语音信号的采集 72.4程序流程图 72.5语音信号的时频分析 82.6语音信号加噪与频谱分析 92.7本章小结 113设计数字滤波器 123.1数字滤波器设计的基本思路 123.2模拟滤波器概述 123.3IIR数字滤波器概述 123.4FIR数字滤波器概述 133.5FIR数字滤波器和IIR数字滤波器比较 133.6低通,高通及带通滤波器 143.7设计FIR滤波器 143.8设计IIR滤波器 153.9双线性变换法和窗函数法 153.10本章小结 184进行滤波,比较滤波前后语音信号的波形及频谱 194.1验证所设计的滤波器 194.2滤波 214.3本章小结 235.GUI界面 245.1系统界面设计工具—GUI概述 245.2创建GUI界面 245.3创建开关按钮 255.4保存和修改fig文件 265.5编写M文件 285.6本章小结 33总结 34致谢 35参考文献 36附录 38附录(I)设计FIR和IIR数字滤波器 38附录(II)比较滤波前后语音信号的波形及频谱 46PAGE171.绪论数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。数字滤波器,是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(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操作系统规定的声音文件存的标准。开始用wavread读取语音信号,并进行采样,建立数据文件,并用plot画出数据文件时域波形图和频谱图利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。回放语音信号得出所设计滤波器在语音处理中的优劣并设计一个信号处理系统界面。开始用wavread读取语音信号,并进行采样,建立数据文件,并用plot画出数据文件时域波形图和频谱图利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。回放语音信号得出所设计滤波器在语音处理中的优劣并设计一个信号处理系统界面。结束运用数字信号处理理论设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征。图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数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下两种类型:=1\*GB3①巴特沃思(Botterworth简写BW)滤波器。BW滤波器是根据幅频特性在通带内具有最拼图特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在处都为零。BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶次N的增大而更接近于理想低通滤波器。=2\*GB3②切比雪夫(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)为有限长:造成当输入数位讯号为有限长的时候,输出数位讯号也为有限长。(2)比无限脉冲响应滤波器(IIRfilter)较容易最佳化(optimize)。(3)线性相位(linearphase):造成h(n),是偶对称(even)或奇对称(odd)且有限长。(4)一定是稳定的(stable):因为Z转换(Ztransform)后所有的极点(pole)都在单位圆内3.5FIR数字滤波器和IIR数字滤波器比较不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:(1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。但IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。3.6低通,高通及带通滤波器低通滤波器:对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器,或高音消除滤波器。低通滤波器概念有许多不同的形式,其中包括电子线路(如音频设备中使用的hiss滤波器、平滑数据的数字算法、音障(acousticbarriers)、图像模糊处理等等,这两个工具都通过剔除短期波动、保留长期发展趋势提供了信号的平滑形式。低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(movingaverage)所起的作用;低通滤波器有很多种,其中,最通用的就是巴特沃斯滤波器和切比雪夫滤波器。高通滤波器:去掉信号中不必要的低频成分,去掉低频干扰的滤波器。在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。此外高通滤波器常常和低通滤波器成对出现,不论哪一种,都是为了把一定的声音频率送到应该去的单元。带通滤波器:能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLCcircuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。3.7设计FIR滤波器如前所述,IIR滤波器和FIR滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计FIR滤波器的步骤。如下:(1)根据对阻带衰减及过渡带的指标要求,选择窗函数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算h(n).。(4)加窗得到设计结果。3.8设计IIR滤波器无论是数字滤波器还是模拟滤波器,他们技术指标的建立都是以所谓的“固有衰减”参数为参照。以数字滤波器为例,固有衰减参数(关于之旅分量归一化)定义为A(w)=-20lg|H(ejw)|-20lg|H(ej0)|(式3-1)目前IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。IIR数字滤波器的设计步骤是:=1\*GB3①按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;=2\*GB3②根据转换后的技术指标设计模拟低通滤波器;=3\*GB3③再按一定规则将G(s)转换成H(z)。若设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通,带通或带阻滤波器,那么还有步骤=4\*GB3④;=4\*GB3④将高通、带通、或带阻数字l不去的技术指标先转化为低通模拟滤波器的技术指标,然后按照上述步骤=2\*GB3②设计出低通,再将转换为所需的H(z)。3.9双线性变换法和窗函数法对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/Ttan(0.5ω)(式3-2)(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。接下来,我们根据语音信号的特点给出有关滤波器的技术指标:①低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db,Ap=1dB②高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB;③带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量window。如果缺省window参数,则fir1默认为哈明窗。其中可选的窗函数有RectangularBarlrttHammingHannBlackman窗,其相应的都有实现函数。MATLAB信号处理工具箱函数buttpbuttorbutter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是[N,wc]=butter(N,wc,Rp,As,’s’),该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型滤波器设计函数。我们用到的是cheeby1函数,其调用格式如下:[B,A]=cheby1(N,Rp,wpo,’ftypr’)函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。下面我们以IIR低通滤波器的设计为例:Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);[n11,wn11]=buttord(wp,ws,1,50,’s’);[b11,a11]=butter(n11,wn11,’s’);[num11,den11]=bilinear(b11,a11,0.5);[h,w]=freqz(num11,den11);figure;plot(w*8000*0.5/pi,abs(h));legend(‘IIR低通滤波器’,’Location’,’NorthWest’);grid;程序结果如下图:图3-1IIR低通滤波器IIR高通要用cheby1(即切比雪夫I型滤波器)函数来设计,1p2hp[其中p;pose(模型),h(high)],同理,1p2bp中b表示band(带通),FIR与此类似。其余具体程序及运行结果如附录(I)设计FIR和IIR数字滤波器3.10本章小结本章详细介绍了FIR和IIR数字滤波器的设计,利用MATLAB信号处理工具箱函数,我们很容易写出其相应程序。4进行滤波,比较滤波前后语音信号的波形及频谱4.1验证所设计的滤波器为了验证滤波器的可使用性,我们用常用的sin函数来进行验证。其具体程序及运行结果如下:t=[0:1/1023:1];s=sin(2*pi*t);N=length(s);y=s+0.5*rand(1,N);subplot(2,1,1);plot(y);title('加噪语音信号的时域波形','fontweight','bold');S=fft(y);subplot(2,1,2);plot(abs(S));title('加噪语音信号的频域波形','fontweight','bold');Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;[n11,wn11]=buttord(wp,ws,1,50,'s');%求低通滤波器的阶数和截止频率[b11,a11]=butter(n11,wn11,'s');%求S域的频率响应的参数[num11,den11]=bilinear(b11,a11,0.5);%利用双线性变换实现频率响应S域到Z域的变换z11=filter(num11,den11,s);sound(z11);m11=fft(z11);%求滤波后的信号figure;subplot(2,2,1);plot(abs(S),'g');title('滤波前信号的频谱','fontweight','bold');grid;subplot(2,2,2);plot(abs(m11),'r');title('滤波后信号的频谱','fontweight','bold');grid;subplot(2,2,3);plot(y);title('滤波前信号的波形','fontweight','bold');grid;subplot(2,2,4);plot(z11);title('滤波后的信号波形','fontweight','bold');grid;图4-1验证所设计的滤波器由所得结果可知,所设计的滤波器符合要求。4.2滤波用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计算。调用:y=fftfilter(h,x,M)。其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。函数filter的调用格式:yn=filter(B,A.xn),它是按照直线型结构实现对xn的滤波。其中xn是输入信号向量,yn输出信号向量。由于所设计的滤波器有六个,故我们需要进行六次滤波,然后比较得出哪种滤波器的效果最好。下面我们以IIR低通为例:[y,fs,nbits]=wavread(‘OriSound’);%IIR低通n=length(y);%求出语音信号的长度Noise=0.2*randn(n,2);%随机函数产生噪声s=y+Noise;%语音信号加入噪声S=fft(s);Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;[n11,wn11]=buttord(wp,ws,1,50,’s’);%求低通滤波器的阶数和截止频率[b11,a11]=butter(n11,wn11,’s’);%求S域的频率响应的参数[num11,den11]=bilinear(b11,a11,0.5);%利用双线性变换实现频率响应S域到Z域的变换z11=filter(num11,den11,s);sound(z11);m11=fft(z11);%求滤波后的信号figure;subplot(2,2,1);plot(abs(S),’g’);title(‘滤波前信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,2);plot(abs(m11),’r’);title(‘滤波后信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,3);plot(s);title(‘滤波前信号的波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;subplot(2,2,4);plot(z11);title(‘滤波后的信号波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;程序结果如下图:图4-2IIR低通滤波器经过以上的加噪处理后,可在Matlab中用函数sound对声音进行回放。其调用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察觉滤波前后的声音有明显的变化。比较后可得;低通效果较好,高通其次,带通最差。对原始语音信号具体程序及运行结果如附录(II)比较滤波前后语音信号的波形及频谱4.3本章小结本章详细介绍了怎样通过自己设计的滤波器进行滤波。5.GUI界面5.1系统界面设计工具—GUI概述图形用户界面(graphicaluserinterfaces,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。在MATLAB中GUI是一中包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MAYLAB将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:包括GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用hsave课保存图形窗口时将生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制GUI展开时的各种特征。GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置GUIDE应用程序的选项来运行GUIDE;第二步:使用界面设计编辑器进行面设计;第三步:编写控件行为响应控制(即回调函数)代码。5.2创建GUI界面首先我们新建一个GUI文件:File/New/GUI,选择BlankGUI(Default)。图5-1GUI创建界面选择BlankGUI(Default)。5.3创建开关按钮创建4个ButtonGroup,4个静态文本(Statictext),17个PushButton,如下图所示(属性可双击更改)图5-2GUI界面图5-3属性框5.4保存和修改fig文件大多数文件的保存和修改都可通过快捷键和来进行,但是fig文件是无法通过进行打开,其打开和修改方式应为图5-4MATLAB主界面其中有一个按钮(GUIDE),双击得到界面图5-5GUI创建界面选择OpenExistingGUI,打开你开始保存的文件,如下图所示图5-6GUI打开界面双击文件,得到如下界面图5-7GUI编辑界面这样,文件(fig文件)即可打开修改。5.5编写M文件编置好各控件以后,我们就可以来为这些控件编写程序(M-file),图5-8原始语音播放:functionvarargout=OriVoiPlayButton_Callback(hObject,eventdata,handles)图5-9FIR低通:functionFIRLowPassButton_Callback(hObject,eventdata,handles)图5-10退出:functionvarargout=ExitButton_Callback(hObject,eventdata,handles)close(gcf)图5-11双线性变换法低通滤波器:functionDDesignLowPassButton_Callback(hObject,eventdata,handles)最后,使用说明。单击相应的按钮,便跳出对应的界面。图5-12FIG文件界面5.6本章小结本章介绍了GUI界面的简单设置,按钮的设置,编程等都充分得到了体现总结本次设计通过选择一个语音信号作为分析的对象,对其进行频谱分析;利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿被噪声干扰的语音信号,并对其进行频谱分析;运用数字信号处理理论设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。最后,设计一个信号处理系统界面返回。圆满的完成了对加噪声语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一部分,课题主要是从巴特沃斯滤波器入手来设计滤波器等入手,实现了预期的滤波效果;完成了界面的设计,但也存在许多的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形图,界面没有用到其它的一些控件,如列表框、下拉菜单等等,GUI的界面设计功能没能得到充分的发挥。这次毕业设计还使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次课程设计还是比较成功的,在设计中遇到了很多问题,在老师和同学的细心帮助下,终于一一解决了,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。致谢感谢南京林业大学机械电子工程学院给我这次锻炼的机会。感谢黄石红老师,严谨细致、一丝不苟的作风一直是我学习的榜样;循循善诱的教导和不拘一格的思路给予我无尽的启迪。老师多次询问进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。无论是在程序的编写,还是在系统界面的设计上,我都得到了老师们悉心细致的教诲和无私的帮助。他们多次为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。在此,谨向指导老师黄石红表示崇高的敬意和衷心的感谢!同时也要表达对南京林业大学机械电子工程学院实验室的工作人员表达我真挚的谢意,他们为我们提供良好的学习环境,为此次我们毕业设计提供了很大的方便,再次对他们辛勤的工作表示感谢!在毕业设计过程中,也得到了许多同学的宝贵建议和真诚的帮助,在此也对他们表示真诚的感谢!在这里我要对我的老师以及我的同学真挚的说一声:“谢谢!”没有你们的帮助,我可能要花费更多的时间与精力来完成这次毕业设计,最后,对给过我帮助的所有同学和各位指导老师再次表示衷心的感谢!参考文献1高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008.82语音信号数字处理,杨行峻等编著[M].电子工业出版社,19953刘智基于MATLAB的机械噪声分析与处理[J].华中江师范学院学报(自然科学版)2010(4)4蒋瑞艳振动,噪声处理系统[J].大连理工大学学院学报(自然科学版)2002(1)5马超

高世伦基于MATLAB的噪声信号采集与分析系统研究[J].华中科技大学能源与动力工程学院院报2004(5)6崔晓娟

王炳和

常远

相敬林基于MATLAB的舰船辐射噪声信号小波消噪处理[J].

《舰船科学技术》2006(06)7李正周.MATLAB数字信号处理与应用[M].北京:清华大学出版社,20088徐明远,刘增力MATLAB仿真在信号处理中的应用[M].西安:电子科技大学出版社,20079李显宏.MATLAB7.x界面设计与编译技巧[M].北京:电子工业出版社,200610郭仕剑等.MATLAB7.X数字信号处理.人民邮电出版社[M],200611高萍,祖静.基于MATLAB小波去噪技术浅析[J].科技信息(学术版),2006(11)1-3.12王书林.小波变换在信号去噪中的应用[J].弹箭与制导学报,2006(4)293-296.13王吉华,袁翔.小波变换在单片机信号去噪中的应用[J].计算机仿真,2004(7)55-57.14吴湘淇.信号系统与信号处理(下)[M].北京:电子工业出版社,1996.15徐长发,李国宽.实用小波方法[M].武汉:华中科技大学出版社,2001.16丁玉美,高西全,彭学愚.数字信号处理[M].西安:西安电子科技大学出版社,2000.17谢国瑞.线性代数及应用[M].北京:高等教育出版社,1999.18赵红怡.DSP技术与应用实例[M].北京:电子工业出版社,2003.19王念旭,等.DSP基础及应用系统设计[M].北京:北京航空航天大学出版社,2001.20钟麟,王峰.MATLAB仿真技术与应用教程[M],国防工业出版社,2004.0121Acarnley.Steppingmotors:aguidetomoderntheoryandpractice[J],(IEEControlEngineeringSeries19,PeterPeregrinus,Stevenage,UK,1984)22Kenjo.Stepping,motorsandtheirmicroprocessorcontrols[J],(ClarendonPress,Oxford,UK,1984)23SenM.KuoBobH.Lee著.卢伯英译.实时数字信号处理[M].北京:中国铁道出版社,2005.01:5024DelyonB,JuditskyA,BenvenisteA.AccuracyAnalysisforWaveletApproximat-ion[J].IEEETransactionsonNeuralNetworks,1995,(6):320-350.25DLDonoho,IMJohnstone,GKeryacharianandDPicard.Waveletshrinkag:Asymptopia[J].JoumaloftheRoyalStatisticalsocietysenseB,1994.附录附录(I)设计FIR和IIR数字滤波器%=========================IIR低通滤波器=======================Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);[n11,wn11]=buttord(wp,ws,1,50,’s’);[b11,a11]=butter(n11,wn11,’s’);[num11,den11]=bilinear(b11,a11,0.5);[h,w]=freqz(num11,den11);figure;plot(w*8000*0.5/pi,abs(h));legend(‘IIR低通滤波器’,’Location’,’NorthWest’);grid;程序结果如下图:%======================IIR带通滤波器==========================Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;%有效通带频率wp=1;ws=(wp1*wp2-w.^2)/(bw*w);[n12,wn12]=buttord(wp,ws,1,50,’s’);[b12,a12]=butter(n12,wn12,’s’);[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);[num12,den12]=bilinear(num2,den2,0.5);[h,w]=freqz(num12,den12);figure;plot(w*8000*0.5/pi,abs(h));axis([0450001.5]);legend(‘IIR带通滤波器’,’Location’,’NorthWest’);grid;程序结果如下图:%======================IIR高通滤波器========================Ft=8000;Fp=4000;Fs=3500;wp1=tan(pi*Fp/Ft);ws1=tan(pi*Fs/Ft);wp=1;ws=wp1*wp/ws1;[n13,wn13]=cheb1ord(wp,ws,1,50,’s’);[b13,a13]=cheby1(n13,1,wn13,’s’);[num,den]=lp2hp(b13,a13,wn13);[num13,den13]=bilinear(num,den,0.5);[h,w]=freqz(num13,den13);figure;plot(w*21000*0.5/pi,abs(h));legend(‘IIR高通滤波器’,’Location’,’NorthWest’);axis([01100001.5]);grid;程序结果如下图:%**************************FIR低通滤波*****************************Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.^(-rp/20);s=10.^(-rs/20);fpts=[wpws];mag=[10];dev=[ps];[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);b21=fir1(n21,wn21,kaiser(n21+1,beta));[h,w]=freqz(b21,1);figure;plot(w*8000*0.5/pi,abs(h));title(‘FIR低通滤波器’,’fontweight’,’bold’);grid;程序结果如下图:%************************FIR带通滤波器************************Fp1=1200;%通带边界频率Fp2=3000;Fs1=1000;%阻带截止频率Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp*wp2-w.^2)/(bw*w);[n22,wn22]=buttord(wp,ws,1,50,’s’);[b22,a22]=butter(n22,wn22,’s’);[num2,den2]=lp2bp(b22,a22,sqrt(wp1*wp2),bw);[num22,den22]=bilinear(num2,den2,0.5);[h,w]=freqz(num22,den22);figure;plot(w*8000*0.5/pi,abs(h));axis([0450001.5]);legend(‘FIR带通滤波器’,’Location’,’NorthWest’);grid;程序结果如下图:%***************************%FIR高通滤波器*******************Ft=8001;Fp=4000;%通带边界频率Fs=3500;%阻带截止频率wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.^(-rp/20);s=10.^(-rs/20);fpts=[wswp];mag=[01];dev=[ps];[n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);b23=fir1(n23,wn23,’high’,kaiser(n23+1,beta));[h,w]=freqz(b23,1);figure;plot(w*12000*0.5/pi,abs(h));title(‘FIR高通滤波器’,’fontweight’,’bold’);axis([2500550001.2]);grid;程序结果如下图:附录(II)比较滤波前后语音信号的波形及频谱%======================双线性变换法=======================%*************************低通滤波器************************[y,fs,nbits]=wavread(‘OriSound’);%IIR低通n=length(y);%求出语音信号的长度Noise=0.2*randn(n,2);%随机函数产生噪声s=y+Noise;%语音信号加入噪声S=fft(s);Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;[n11,wn11]=buttord(wp,ws,1,50,’s’);%求低通滤波器的阶数和截止频率[b11,a11]=butter(n11,wn11,’s’);%求S域的频率响应的参数[num11,den11]=bilinear(b11,a11,0.5);%利用双线性变换实现频率响应S域到Z域的变换z11=filter(num11,den11,s);sound(z11);m11=fft(z11);%求滤波后的信号figure;subplot(2,2,1);plot(abs(S),’g’);title(‘滤波前信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,2);plot(abs(m11),’r’);title(‘滤波后信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,3);plot(s);title(‘滤波前信号的波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;subplot(2,2,4);plot(z11);title(‘滤波后的信号波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;程序结果如下图:附II-1双线性低通滤波器比较%**********************带通滤波器*****************************[y,fs,nbits]=wavread(‘OriSound’);%IIR带通n=length(y);%求出语音信号的长度Noise=0.2*randn(n,2);%随机函数产生噪声s=y+Noise;%语音信号加入噪声S=fft(s);%傅里叶变换Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.^(-rp/20);%通带阻带波纹q=10.^(-rs/20);fpts=[wpws];mag=[10];dev=[pq];[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);%由kaiserord求滤波器的阶数和截止频率b21=fir1(n21,wn21,kaiser(n21+1,beta));%由fir1设计滤波器z21=fftfilt(b21,s);sound(z21);m21=fft(z21);%求滤波后的信号figure(4);subplot(2,2,1);plot(abs(S),’g’);title(‘滤波前信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,2);plot(abs(m21),’r’);title(‘滤波后信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,3);plot(s);title(‘滤波前信号的波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;subplot(2,2,4);plot(z21);title(‘滤波后的信号波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;程序结果如下图:附II-2双线性带通滤波器比较%**********************高通滤波器*****************************[y,fs,nbits]=wavread(‘OriSound’);%IIR高通n=length(y);%求出语音信号的长度Noise=0.2*randn(n,2);%随机函数产生噪声s=y+Noise;%语音信号加入噪声S=fft(s);%傅里叶变换 Fp1=1200;Fs1=1000;Ft=8000;wp1=tan(pi*Fp1/Ft);ws1=tan(pi*Fs1/Ft);wp=1;ws=wp1*wp/ws1;[n13,wn13]=cheb1ord(wp,ws,1,50,’s’);%求模拟的低通滤波器阶数和截止频率[b13,a13]=cheby1(n13,1,wn13,’s’);%求S域的频率响应的参数[num,den]=lp2hp(b13,a13,wn13);%将S域低通参数转为高通的[num13,den13]=bilinear(num,den,0.5);%利用双线性变换实现频率响应S域到Z域转换z13=filter(num13,den13,s);sound(z13);m13=fft(z13);%求滤波后的信号figure;subplot(2,2,1);plot(abs(S),’g’);title(‘滤波前信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,2);plot(abs(m13),’r’);title(‘滤波后信号的频谱’,’fontweight’,’bold’);axis([015000004000]);grid;subplot(2,2,3);plot(s);title(‘滤波前信号的波形’,’fontweight’,’bold’);axis([95000100000-11]);grid;subplot(2,2,4);plot(z13);title(‘滤波后的信号波形’

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论