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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学生毕业设计报告基于MATLAB的频谱分析与信号去噪作者系(院)专业年级学号指导教师日期学生诚信承诺书本人郑重承诺:所呈交的设计报告是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,报告中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在报告中作了明确的说明并表示了谢意。签名:日期:报告使用授权说明本人完全了解有关保留、使用学位报告的规定,即:学校有权保留送交报告的复印件,允许报告被查阅和借阅;学校可以公布报告的全部或部分内容,可以采用影印、缩印或其他复制手段保存报告。签名:导师签名:日期:第1页基于MATLAB的频谱分析与信号去噪摘要:本课题是基于数字信号处理的理论知识对语音信号、图像信号等的频谱分析以及对加噪声语音信号进行时域、频域分析和滤波设计。然后利用MATLAB软件进行编程,调试并完善程序,最终在计算机上得以实现。滤波器设计在数字信号处理中占有极其重要的地位,数字滤波器又有FIR数字滤波器和IIR滤波器两种。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均符合指定要求。关键词频域分析,滤波器,MATLAB1引言1.1课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。通常从频域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具。数字滤波器,是数字信号处理中及其重要的一部分。随着数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。在工程领域中,MATLAB是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算法MATLAB显得游刃有余。1.2研究意义信号处理几乎涉及到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便第2页于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理及频谱分析。信号去噪被用于从一堆波音资料中提取有用信息,去除干扰,提高波音资料信噪比。为了提高信噪比,人们根据信号和噪声的各种特征差异,设计了许多去噪方法,并在应用中并取得了很好的成果。信号去噪的很多方法都是利用短时傅立叶变换来滤波去噪,但是短时傅立叶变换不能同时兼顾时间分辨率和频率分辨率。用不同种滤波器滤波也是一种有效可行的方法。1.3本文研究内容信号的频谱分析就是利用傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的目的。不同信号的傅里叶分析理论与方法,在有关专业书中都有介绍。但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难.。DFT是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。DFT及FFT是数字信号处理的重要内容。DFT是FFT的基础,FFT是DFT的快速算法,在MATLAB中可以利用函数FFT来计算序列的离散傅里叶变换DFT。基于此首先介绍了MATLAB软件;其次给出了基于MATLAB软件的DFT和FFT频谱分析的方法,利用MATLAB软件方法,使得设计方便、快捷,大大减轻了工作量;再而我们提取一段语音信号,加噪,再通过设计的不同滤波器进行滤波后的频谱分析。本文将重点介绍基于MATLAB的频谱分析设计,包括:(1)音频信号频谱分析;(2)图像信号频谱分析;(3)离散信号/序列频谱分析;(4)语音信号提取,分析和加噪;(5)设计IIR和FIR的各种滤波器;(6)用设计的滤波器进行滤波;(7)分析滤波前后信号特征。2频谱分析技术及MATLAB简介2.1时域抽样定理时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率samf大于等于2倍的信号最高频率mf,即2sammff。时域抽样是把连续信号Xt变成适于数字系统处理的离散信号X[k]。对连续信号Xt以间隔T抽样,则可得到的离散序列为kTtktXkX][,如图2-1所示。第3页x(t)x[k]tk0T2T012图2-1连续信号抽样的离散序列若kTtktXkX][,则信号Xt与X[k]的频谱之间存在:jsam1(e)j()nXXnT其中,j(e)X的频谱为(j)X,X[k]的频谱为j(e)X。可见,信号时域抽样导致信号频谱的周期化。2/samT(rad/s)为抽样角频率,1samfT为抽样频率。数字角频率Ω与模拟角频率ω的关系为:Ω=ωT。2.2离散傅立叶变换(DFT)有限长序列)(nx的离散傅立叶变换(DFT)为10,)()]([)(10NnWnxnxDFTkXNnknN逆变换为10,)(1)]([)(10NnWkXNkXIDFTnxNnknN2.3快速傅立叶变换(FFT)在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有fft、ifft、fft2、ifft2,fftn、ifftn和fftshift、ifftshift等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。fft函数调用方式:(1)Y=fft(X)(2)Y=fft(X,N)(3)Y=fft(X,[],dim)或Y=fft(X,N,dim)。函数ifft的参数应用与函数fft完全相同。第4页2.4频谱分析原理时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。2.4.1频率和周期的估计对于Y(kΔf),如果当kΔf=f时,Y(kΔf)取最大值,则f为频率的估计值,由于采样间隔的误差,f也存在误差,其误差最大为Δf/2。周期T=1/f。从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。2.4.2频谱图为了直观地表示信号的频率特性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率f为横坐标,ArgY(f)为纵坐标,可以得到相位谱;以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f∈[0,Fs/2]2.5MATLAB简介2.5.1MATLAB软件的发展MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。它的第一版(DOS版本1.0)发行于1984年,经过10余年的不断改进,现今已推出它的Windows98/NT版本(6.1版)。新的版本集中了日常数字处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求作明确的维数说明。与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。在美国的一些大学里,MATLAB正在成为对数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。MATLAB系统最初是由CieveMoler用FORTRAN语言设计的,有关矩阵的算法来自LINPACK和EISPACK课题的研究成果;现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steveBangert主持开发编译解释程序,SteveKleiman完成图形功能的设计,JohnLittle和CleveMoler主持开发各类数学分析的子模块,撰写用户指南和大部分M文件。自从第1版发行以来,已有众多的科技工作者加入到MATLAB的开发队伍中,并为形成今天的MATLAB系统做出了巨大的贡献,MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行可靠性,使原先控制领域里的第5页封闭式软件包(如英国的UMIST,瑞典的LUND,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头。2.5.2MATLAB组成MATLAB系统由五个主要部分组成,下面分别加以介绍:(1)MATLAB语言体系。MATLAB是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB工作环境。这是对MATLAB提高给用户使用的管理功能的总称。包括管理工作空间中的变量输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。(3)图形句相系统。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图象处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图象等对象进行野性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用程序(动态连接),读

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功