基于MATLAB的频谱分析与信号去噪.doc

上传人:知****量 文档编号:43059401 上传时间:2022-09-16 格式:DOC 页数:43 大小:817.50KB
返回 下载 相关 举报
基于MATLAB的频谱分析与信号去噪.doc_第1页
第1页 / 共43页
基于MATLAB的频谱分析与信号去噪.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《基于MATLAB的频谱分析与信号去噪.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的频谱分析与信号去噪.doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、经贸大学毕业论文基于MATLAB的频谱分析与信号去噪38 / 43摘 要课题是基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算

2、与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。在实际的计算机控制系统中,采样信号不可避免的受到各种噪声和干扰的污染,使得由辨识采样信号得到的系统模型存在偏差而妨碍了系统控制精度的提高。Donoho 和Johnstone 提出的小波收缩去噪算法对去除叠加性高斯白噪声非常有效。对此我也作出简要介绍。关键词频域分析,滤波器,小波去噪, MATLABAbstractSubject is based on MATLAB speech signal processing,

3、 the design and implementation of integrated use of digital signal processing theory knowledge of speech signal with noise adding time domain and frequency domain analysis and filtering. Filter design in digital signal processing in occupies an extremely important status, FIR digital filters and fil

4、ter IIR filter is the important component. MATLAB signal processing toolbox can effectively design of digital filter. Through theoretical derivation corresponding conclusion as a programming tool, using MATLAB for computer implementation. In the design and implementation of process, USES window func

5、tion method to design FIR digital filters, with bart leavenworth, chebyshev and bilinear anshi IIR digital filter, and design MATLAB as the auxiliary tool complete design of computing and graphics drawing. Through the design of the filter selvesor simulation and frequency characteristics were analyz

6、ed, using MATLAB signal processing toolbox that can effectively quickly design FIR and IIR digital filters, process is simple and convenient, results of various performance indicators are as specified requirements.In the actual computer control system,sampling signal the inevitable noise and interfe

7、rence by various pollution, makes the identification of the sampled signal received by the system model there is a deviation of the system hampered the improvement of control accuracy. Donoho and Johnstones wavelet shrinkage denoising algorithm to remove the additive white Gaussian noise is very eff

8、ective. To this I also do is also introduced briefly.Keywordsfrequency domain analysis,filter,Wavelet denoising,MATLAB目录1 绪论11.1 课题背景11.2 研究意义11.3 本文研究容22 频谱分析技术与MATLAB简介32.1 时域抽样定理32.2 离散傅立叶变换(DFT)42.3 快速傅立叶变换(FFT)42.4 频谱分析原理42.4.1 频率和周期的估计52.4.2 频谱图52.5 MATLAB简介52.5.1 MATLAB软件的发展52.5.2 MATLAB组成63

9、频谱分析与算例83.1 声音信号频谱分析83.2 图像信号频谱分析93.3 离散信号/序列114 有噪声的语音信号分析与去噪144.1 有噪语音信号提取144.1.1 语音信号的采集144.1.2 语音信号的时频分析144.1.3 语音信号加噪与频谱分析154.2 设计FIR和IIR数字滤波器164.3 用滤波器对加噪语音信号进行滤波和分析214.3.1 滤波器滤波214.3.2 比较滤波前后语音信号的波形与频谱225 简介小波信号去噪265.1 小波函数265.2 小波去噪问题265.3小波去噪发展历程275.4 小波去噪原理285.5 小波去噪步骤296 结论30致 谢31附 录32参考文

10、献36基于MATLAB的频谱分析与信号去噪1 绪论1.1 课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。通常从频域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具。数字滤波器, 是数字信号处理中与其重要的一部分。随着数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波

11、器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。在工程领域中,MATLAB是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以与某些复杂的频谱分析算法MATLAB显得游刃有余。1.2 研究意义信号处理几乎涉与到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一

12、般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理与频谱分析。 信号去噪被用于从一堆波音资料中提取有用信息,去除干扰,提高波音资料信噪比。为了提高信噪比,人们根据信号和噪声的各种特征差异,设计了许多去噪方法,并在应用中并取得了很好的成果。信号去噪的很多方法都是利用短时傅立叶变换来滤波去噪,但是短时傅立叶变换不能同时兼顾时间分辨率和频率分辨率。 用不同种滤波器滤波也是一种有效可行的方法。1.3 本文研究容信号的频谱分析就是利用

13、傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的目的。不同信号的傅里叶分析理论与方法,在有关专业书中都有介绍。但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难.。DFT是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。DFT与FFT是数字信号处理的重要容。DFT是FFT的基础,FFT是DFT的快速算法,在 MAT LAB中可以利用函数 FFT来计算序列的离散傅里叶变换DFT。基于此首先介绍了MAT LAB软件;其次给出了基于MAT LAB软件的DFT和 FFT频谱分析的方法,利用 MAT LA

14、B软件方法,使得设计方便、快捷,大大减轻了工作量;再而我们提取一段语音信号,加噪,再通过设计的不同滤波器进行滤波后的频谱分析。本文将重点介绍基于MATLAB的频谱分析设计,包括:(1) 音频信号频谱分析;(2) 图像信号频谱分析;(3) 离散信号/序列频谱分析;(4)语音信号提取,分析和加噪;(5)设计IIR和FIR的各种滤波器;(6)用设计的滤波器进行滤波;(7)分析滤波前后信号特征。2频谱分析技术与MATLAB简介2.1 时域抽样定理时域抽样定理给出了连续信号抽样过程XX号不失真的约束条件:对于基带信号,信号抽样频率大于等于2倍的信号最高频率,即。时域抽样是把连续信号变成适于数字系统处理的

15、离散信号Xk。对连续信号以间隔T抽样,则可得到的离散序列为,如图 2-1所示。图2-1 连续信号抽样的离散序若,则信号与Xk的频谱之间存在:其中,的频谱为,Xk的频谱为。可见,信号时域抽样导致信号频谱的周期化。(rad/s)为抽样角频率,为抽样频率。数字角频率与模拟角频率的关系为:=T。2.2 离散傅立叶变换(DFT)有限长序列的离散傅立叶变换(DFT)为逆变换为2.3 快速傅立叶变换(FFT)在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是

16、其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。 MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有fft、ifft、fft2 、ifft2, fftn、ifftn和fftshift、ifftshift等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。fft函数调用方式:(1)Y=fft(X)(2)Y=ff

17、t(X,N)(3)Yfft(X,dim)或Yfft(X,N,dim)。函数ifft的参数应用与函数fft完全相同。2.4 频谱分析原理时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。2.4.1频率和周期的估计对于Y(kf),如果当kf=f时,Y(kf)取最大值,则f为频率的估计值,由于采样间隔的误差,f也存在误差,其误差最大为f/ 2。周期T=1/f。从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地

18、估计出原标准信号的频率和周期。2.4.2频谱图为了直观地表示信号的频率特性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率f为横坐标,ArgY(f)为纵坐标,可以得到相位谱;以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f0,Fs/22.5 MATLAB简介2.5.1MATLAB软件的发展MATLAB

19、 软件是由美国 Mathworks 公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB 是英文 MATrix LABoratory(矩阵实验室)的缩写。它的第一版(DOS 版本 1.0)发行于1984年,经过10余年的不断改进,现今已推出它的 Windows 98/NT 版本(6.1 版)。新的版本集中了日常数字处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在 MATLAB 环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB 提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,

20、不要求作明确的维数说明。与利用 C语言或 FORTRAN 语言作数值计算的程序设计相比,利用 MATLAB 可以节省大量的编程时间。在美国的一些大学里,MATLAB 正在成为对数值计算、算法预设计与验证,以与一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。MATLAB 系统最初是由 CieveMoler用FORTRAN语言设计的,有关矩阵的算法来自LINPACK和EISPACK课题的研究成果;现在的 MATLAB 程序是 MathWorks 公司用 C 语言开发的,第一版由 steve Bangert 主持开发编译解释程序,Steve Kleiman完成图形功能的

21、设计,John Little 和 Cleve Moler 主持开发各类数学分析的子模块,撰写用户指南和大部分 M 文件。自从第 1 版发行以来,已有众多的科技工作者加入到 MATLAB 的开发队伍中,并为形成今天的MATLAB 系统做出了巨大的贡献,MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST,瑞典的 LUND,德国的 KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30 几个数学类科技应用软件中

22、,MATLAB 在数值计算方面独占鳌头。2.5.2MATLAB组成MATLAB 系统由五个主要部分组成,下面分别加以介绍:(1)MATLAB 语言体系。MATLAB 是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB 工作环境。这是对 MATLAB 提高给用户使用的管理功能的总称。包括管理工作空间中的变量输入输出的方式和方法,以与开发、调试、管理 M 文件的各种工具。(3)图形句相系统。 这是 MATLAB 图形系统的基础,包括完

23、成 2D和 3D 数据图示、图象处理、动画生成、图形显示等功能的高层 MATLAB命令,也包括用户对图形图象等对象进行野性控制的低层 MATLAB 命令,以与开发 GUI 应用程序的各种工具。(4)MATLAB数学函数库。这是对 MATLAB 使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或 FORTRAN程序,包括从MATLAB中调用程序(动态连接),读写 MAT 文件的功能。可以看出 MATLAB 是一个功能十分强大的系统

24、,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB 还具有很强的功能扩展能力,与它的系统一起,可以配备各种各样的工具箱。3频谱分析与算例3.1 声音信号频谱分析MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件, 它可以将声音文件变换为离散的数据文件, 然后利用其强大的矩阵运算能力处理数据, 如数字滤波、傅里叶变换、时域和频域分析、声音回放以与各种分析图的呈现等等。 下面以语音信号的波形图、频谱图分析为例来说明MATLAB在语音信号处理中的具体实现方法。 图3-1 语音信号分析图程序代码:y0,fs0,nbits0=wavread (未选择的路);sound(

25、y0,fs,nbits0); n0 = length (y0) ; s0=y0;S0=fft(s0); subplot(2,1,1);plot(s0);title(信号波形);grid;subplot(2,1,2);plot(abs(S0),g);title(信号频谱);grid;上程序将语音文件“未选择的路.wav”进行频谱分析,分析结果如图3-1所示。3.2 图像信号频谱分析纹理图像的频谱可以通过离散傅里叶变换(DFT)得到。用表示一幅空域纹理图像,用表示该图像的频谱,图像的大小为MN,则和质检可以通过DFT计算,计算公式如下:其中能量谱可采用公式:基于傅立叶能量谱的纹理图像分析的前提是假

26、设纹理有不同的正弦波组成。理想正弦分布的纹理图像,是最为典型的纹理图像之一,下面讨论理想正弦分布的纹理图像的仿真与其频谱特征分析。编写下面的程序获得具有理想正弦分布的空域纹理图像,其中A为正弦纹理的幅值,uf0、vf0分别为x轴(垂直方向)、y轴(水平方向)方向的模拟频率,M、N分别为x轴、y轴的采样的点数,Tsu、Tsv分别为x、y轴的采样间隔,为了便于观察和处理,取Tsu=1/M、Tsv= 1/N,即x轴、y轴的采样频率分别为M和N,这样在空域中得到了01围的纹理图像(如考虑成时域抽样信号的话,相当于在01s间的抽样)。 A=1;uf0=0;vf0=25;M=200;N=200;Tsu =

27、 1/M; Tsv = 1/N; r = 0:M-1; c = 0:N-1; C,R = meshgrid(c,r); g = A * sin(2* pi* uf0 * R * Tsu + 2 * pi * vf0 * C * Tsv); f = mat2gray(g); figure imshow(f)程序中输出变量g返回的是实际的理想正弦函数的取值,f返回的是g平移后的结果(取值限定在01围)。 在MATLAB软件中仿真得到的一副具有理想正弦分布的纹理图像如图3-2所示。 图3-2 纹理图像然后利用FFT算法对上面图像信号进行频谱分析。程序代码为:I=imread(1.tif)I = rg

28、b2gray( I );imshow(I);fftI=fft2(I);sfftI=fftshift(fftI);RR=real(sfftI);II=imag(sfftI);A=sqrt(RR.2+II.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*225;figure;imshow(A);在MATLAB中执行了FFT后,使用了fftshift函数调整,以使频谱图像的原点从起始点(0,0),移到图像的中心点(M/2,N/2),对应的图3-3的傅立叶频谱能量图。从图中可以看出:竖直方向理想单一频率的正弦分布纹理的频谱能量集中在水平方向的三个点。图3-3 纹理频

29、谱图3.3 离散信号/序列离散时间周期信号能够用具有谐波关系的复指数序列的线性组合来表示,称为离散傅里叶级数。将这一概念推广应用到离散时间非周期信号,认为离散时间非周期信号也能够用具有谐波关系的复指数序列的线性组合来表示。当离散时间周期信号的周期N趋于无穷大时,则离散时间周期信号就转化为离散时间非周期信号,其离散频谱就转化为连续频谱,称为离散时间傅里叶变换(Discrete Time Fourier Transform,DTFT)。 以,采样频率100Hz,采样100个点,形成离散信号,利用MATLAB进行频谱分析。程序如下:N=100;Fs=100;t=(0:(N-1)/Fs; xn=1+2

30、*sin(2*pi*10*t)+3*sin(2*pi*15*t); XK=abs(fft(xn,N);f=(0:N/2)*Fs/N; XK(1)=XK(1)/N;XK(2:(N/2+1)=XK(2:(N/2+1)*2/N; stem(f,XK(1:(N/2+1);axis(-1 N/2 0 5); grid on;xlabel(f(Hz);ylabel(|X( f )|);程序运行结果如图3-4所示。 图3-4N=100离散信号频谱从图3-4可以看出,DFT法分析的结果和实际信号吻合得很好,说明该方法确实有效。但是,需要注意的是,离散傅里叶变换在频域是离散的,即限制在基频整数倍上,只能得到信号

31、 K 次谐波成分的幅值谱,而对于非K次谐波成分的频谱则无法检测出来,并且由于栅栏效应和频谱泄漏,对其它K次谐波的幅值也有影响。如将上述程序中的N=100改为N=50,结果如图3-5所示。图3-5 N=50离散信号频谱可以看出,由于基频频率为100/50=2Hz,x(t)中的15Hz分量未检测出来,其它频率分量的幅值也出现了误差,这种栅栏效应也是 DFT 应用中不可避免的问题之一。要减小栅栏效应和频谱泄漏,可以减小采样频率,增加采样点数,以减小基频值,使谱线变密,这样原来漏掉的某些频谱成分就可以检测出来,但注意采样频率必须满足采样定理的要求,增加采样点数也会增加系统计算 DFT 的开销。4有噪声

32、的语音信号分析与去噪4.1 有噪语音信号提取4.1.1语音信号的采集利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“speech”保存入g : MATLAB work 中。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。4.1.2语音信号的时频分析MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数wavr

33、ead 函数调用格式y=wavread(file)%读取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中。对语音信号speech.wav进行采样其程序如下:y,fs,nbits=wavered (speech);%把语音信号进行加载入MATLAB 仿真软件平台中fs = 44100nbits = 16首先画出语音信号的时域

34、波形,然后对语音信号进行频谱分析。在MATLAB中利用fft对信号进行快速傅里叶变换,得到信号的频谱特性。其程序如下:y,fs,nbits=wavread (speech);sound(y,fs,nbits); %回放语音信号n = length (y) ; %求出语音信号的长度Y=fft(y,n); %傅里叶变换subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);title(原始信号频谱)程序结果如图4-1所示。图4-1 原始信号特征4.1.3语音信号加噪与频谱分析利用MATLAB中的随机函数(rand或randn)

35、产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。其程序如下:y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.21*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声 subplot(2,1,1);plot(s);title(加噪语音信号的时域波形);S=fft(s); %傅里叶变换subplot(2,1,2);plot(abs(S);title(加噪语音信号的频域波形)程序结果如图4-2所示。图4-2 加噪信号特征4.2设计FIR和IIR数字滤波器IIR滤波器和FIR滤波

36、器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。对于数字带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转

37、换成相应的模拟滤波器的边界频率,转换公式为=2/T tan(0.5)(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数

38、字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计与过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。如前所述,IIR滤波器和FIR滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计FIR滤波器的步骤。如下:(1)根据对阻带衰减与过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算h(n)。(4)加窗得到设计结果。接下来,

39、我们根据语音信号的特点给出低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=50db ,Ap=1dB在MATLAB中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1和ellip设计IIR滤波器,利用MATLAB中的函数freqz画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量window。如果缺省window参数,则fir1默认为哈明窗。其中可选的窗函数有Rectangular Barlrtt Hamming Hann Blackman窗,其相应的都有实现函数。MATLAB信号处理工具箱函数buttp buttor

40、 butter是巴特沃斯滤波器设计函数,其有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)B,A=cheby1(N,Rp,wpo,ftypr,s) 函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。下面我们将

41、给出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); %求S域的频率响应的参数 num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换 h,w=freqz(num11,den11); %根据参数求出频率响应

42、plot(w*8000*0.5/pi,abs(h);legend(用butter设计);grid生成相应图片如图4-3所示。图4-3 IIR低通滤波器相应的IIR带通滤波器程序见附录 1生成相应图片见图4-4所示。图4-4 IIR带通滤波器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=wp ws;mag=1 0;dev=p s;n21,wn21,beta,ftype=kaiserord(fpts,mag

43、,dev);%由kaiserord求滤波器的阶数和截止频率b21=fir1(n21,wn21,Kaiser(n21+1,beta); %由fir1设计滤波器h,w=freqz(b21,1); %得到频率响应plot(w/pi,abs(h);title(FIR低通滤波器);grid;生成相应图片见图4-5所示。图4-5 FIR低通滤波器FIR带通滤波器程序见附录 2生成相应图片见图4-6所示。图4-6 FIR带通滤波器4.3用滤波器对加噪语音信号进行滤波和分析4.3.1 滤波器滤波用自己设计的各滤波器分别对加噪的语音信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波

44、,IIR滤波器利用函数filter对信号进行滤波。1)双线性变换法:i.低通滤波器z11=filter(num11,den11,s);ii.带通滤波器z12=filter(num12,den12,s);2)窗函数法i.低通滤波器z21=fftfilt(b21,s);ii.带通滤波器z22=fftfilt(b22,s);4.3.2比较滤波前后语音信号的波形与频谱(1)双线性变换法 图4-7 双线性变换法低通滤波1)用低通滤波器比较程序:y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.21*randn(n,2); %随机

45、函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z11=filter(num11,den11,s);m11=fft(z11); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);grid;subplot(2,2,2);plot(abs(m11),r);title(双线性变换法低通滤波后信号的频谱);grid;subplot(2,2,3);plot(s);title(滤波前信号的波形);grid;subplot(2,2,4);plot(z11);title(双线性变换法低通滤波后的信号波形);grid;生成相应的滤波前后信号特征比较见图4-7所示。2)用带通滤波器比较程序见附录3生成相应的滤波前后信号特征比较见图4-8所示。图4-8 双线性变换法带通滤波(2)窗函数法1)用低通滤波器比较程序:y,fs,nbits=wavread (speech);n = length (y) ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁