利用MATLAB软件对音频信号进行频谱分析与处理(精品)

上传人:痛*** 文档编号:163990602 上传时间:2022-10-23 格式:DOC 页数:50 大小:670KB
收藏 版权申诉 举报 下载
利用MATLAB软件对音频信号进行频谱分析与处理(精品)_第1页
第1页 / 共50页
利用MATLAB软件对音频信号进行频谱分析与处理(精品)_第2页
第2页 / 共50页
利用MATLAB软件对音频信号进行频谱分析与处理(精品)_第3页
第3页 / 共50页
资源描述:

《利用MATLAB软件对音频信号进行频谱分析与处理(精品)》由会员分享,可在线阅读,更多相关《利用MATLAB软件对音频信号进行频谱分析与处理(精品)(50页珍藏版)》请在装配图网上搜索。

1、毕业设计说明书(论文)利用MATLAB软件对音频信号进行频谱分析与处理毕业设计说明书(论文)中文摘要详细了解了数字滤波器的滤波器设计,比较了FIR和IIR滤波器的不同性能,最终选择了设计IIR滤波器。通过设计低通、高通、带通和带阻等各种滤波器,并分析了各滤波器的幅度特性和相频特性,熟悉了四种滤波器的性能。利用MATLAB软件分析音频信号的幅度响应和相位响应,学习了数字音频信号输入MATLAB环境并通过MATLAB播放的方法。通过比较音频信号输入前与输入后幅度响应和相位响应的差异,验证了以前所学习的转业知识。学习了MATLAB程序设计语言,编写了相应程序,产生了一个可以使操作更加方便的操作界面。

2、画了软件实现和界面操作的流程图。关键词 音频信号 幅度响应 相位响应 MATLAB 滤波器 IIR FIR 本科毕业设计说明书(论文) 第 II 页 共 I 页毕业设计说明书(论文)外文摘要Title To Analyze and Dispose The Spectra of The Audio Signal With MATLAB AbstractTo comprehend the design of digital filter in detail, to compare the performance of the FIR filter and IIR filter, and final

3、ly the IIR filter is been chosen to design. The amplitude and phase characteristic of the filter is been analyzed, also the performance of the four filters is been known well, through the design of low-pass high-pass, band-pass andBand-elimination filters.Using MATLAB to analyze the amplitude respon

4、se and phase response of the audio signal, to learn how to input the audio signal to the MATLAB and how to play the audio signal through MATLAB. The specialized subject knowledge is been certified by comparing the amplitude response and phase response of the two audio signals, and one of the two sig

5、nals is before input, the other is after input.To learn programming in MATLAB and the corresponding program is realized, also an operation interface is brought to make the processing more convenient .Also the flow chart about the realization of the software and the interface processing is been drown

6、.Keywords audio signal amplitude response phase respond MATLAB filter IIR FIR目 次1 引言111 研究背景11.2 本文主要研究内容12 MATLAB简介32.1 什么是MATLAB32.2 MATLAB的发展历史32.3 MATLAB系统42.4 MATLAB的主要功能和特性63. 数字滤波器简介83.1 数字滤波器的定义及分类83.2 数字滤波器设计方法104.音频信号频谱分析的软件实现134.1 数字滤波器设计134.2 音频信号频谱分析174.3 界面设计37结 论43致 谢44参 考 文 献45 本科毕业设

7、计说明书(论文) 第 46 页 共 45 页1 引言1.1 研究背景在计算机技术日新月异的今天,计算机已同人们的日常生活和工作越来越紧密的联系在一起。而在工程计算领域中,计算机技术的应用正逐步把科技人员从繁重的计算工作中解放出来。在科学研究和工程应用的过程中,往往需要进行大量的数学计算,传统的纸笔和计算器已根本不能满足海量计算的要求。MATLAB的产生是与数学计算紧密联系在一起的, MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵,它具有非常强大的计算功能,正是凭借其杰出的性能,MATLAB现在已成为世界上应用最广泛的工程计算应用软件之一。MATLAB在国外的高校已成为大学生、硕

8、士生、博士生必须掌握的基本程序设计语言。信号处理是科学研究和工程技术许多领域都需要进行的一个重要环节,这种处理包括信号的检测、变换、滤波、传输、信号提取等。传统上对信号的处理大都采用模拟系统来实现,然而,随着人们对信号处理要求的不断提高,以及模拟信号处理中一些不可克服的缺点,对信号的许多处理转而采用数字的方法来进行。信号处理技术是开发具有自主知识产权的各类先进产品的瓶颈,是一项关键技术。MATLAB是一种面向科学与工程计算的高级语言,已成为数学、信息、控制、经济等诸多学科实用的仿真软件。MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示与一体

9、,构成了一个界面友好的用户环境。信号处理是MATLAB应用最成功的领域之一,MATLAB将信号处理中的许多常用算法编写成了可调用的函数,汇集构成了信号处理工具箱。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。1.2 本文主要研究内容 MATLAB具有非常强大的计算功能,凭借其杰出的性能,MATLAB现在已经成为世界上应用最广泛的工程计算应用软件之一。MATLAB已经是理工科的学生必须掌握的应用软件了。本文利用MATLAB处理音频信号,掌握了MATLAB的使用方法,详细了解了MATLAB的产生发展过程及原理。分析了三种音频信号的频谱,运用M

10、ATLAB设计了低通、高通、带通、带阻等四种IIR数字滤波器,并分析了这三种音频信号通过四种不同滤波器后的频谱,比较了前后频谱的不同。设计IIR数字滤波器的方法不尽相同,带通滤波器和带阻滤波器采用的是巴特沃思滤波器,低通滤波器采用的是椭圆滤波器,而高通滤波器采用的是切比雪夫II滤波器。为了操作简便,特地在任务之外又设计了一个操作界面,这样就使得运行MATLAB程序变得更加简便了。2 MATLAB简介2.1 什么是MATLAB在科学研究和工程应用的过程中,往往需要进行大量的数学计算,传统的纸笔和计算器已经根本无法满足海量计算的要求。一些技术人员尝试用Basic、Fortran以及C语言编制程序来

11、减轻计算的工作量,但是编制程序不仅要掌握所用语言的语法,还需要对有关算法进行深入分析,这对大多数科技工作者来说有一定的难度。为了满足用户对工程数学计算的要求,一些软件公司相继推出了一批数学类科技应用软件,如MATLAB、Xmath、Mathematica、Maple等。其中MATLAB以其强大的功能和易用性受到越来越多的科技工作者的欢迎。MATLAB起初是作为矩阵实验室(Matricx Laboratory)提供对LINPACK和EISPACK矩阵软件包的接口(LINPACK是解线性方程的Fortran程序库,EISPACK是解决特征值问题的Fortran程序库)。与Basic、Fortran

12、以及C语言比较,MATLAB的语法规则更简单,编程特点更接近人的思维方式,用MATLAB写程序有如在便笺上列公式和求解,因而MATLAB被称为“科学便笺式”的科学工程计算语言1。MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵。正如MATLAB的名字“矩阵实验室”,MATLAB起初主要是用来对矩阵进行操作的。MATLAB具有非常强大的计算功能,正是凭借其杰出的性能,MATLAB现在已成为世界上应用最广泛的工程计算应用软件之一。2.2 MATLAB的发展历史2.2.1 MATLAB的产生上世纪70年代中期,Cleve Moler及他的同事在美国国家基金会的帮助下,开发了LINPAC

13、K和EISPACK的Fortran子程序库。不久,Cleve Moler在给学生开线性代数课时,为了让学生能使用LINPACK和EISPACK子程序库又不至于在编程上花费太多的时间,为学生编写了使用LINPACK和EISPACK的接口程序,他将这个接口程序取名为MATLAB(即matrix和laboratory的前三位字母组合,意为“矩阵实验室”)。80年代初期,Cleve Moler、John Little采用C语言编写MATLAB的核心,合作开发了MATLAB的第二代专业版。不久他们成立了MathWorks公司并将MATLAB正式推向市场。2.2.2 MATLAB的发展MathWorks公

14、司自1984年正式推出MATLAB后,经过这些年的不断研究,增加了许多功能。例如MathWorks公司于2001年推出MATLAB6.0版本,6.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。MathWorks公司此举加快结束了国际

15、上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(4)构作了Notebook 。MathWorks公司瞄准应用范围最广的Word ,运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。 2.3 MATLAB系统经过不断发展,MATLAB已经自成体系。MATLAB包括五个部分:MATLAB语言、MATLAB工作环境、MATLAB图像处理系统、MATLAB数学函数库、MATLAB应用程序接口。2.3.1 MATLAB语言 MATLAB语言是一种高级矩阵语言。随着MathWorks公司的不断研

16、究,MATLAB语言已经成为带有独特的数据结构、输入输出、流程控制语句和函数,并且面向对象的高级语言。 MATLAB语言在工程计算方面具有无可比拟的优异性能。它集计算、数据可视化和程序设计为一体,并能将问题和解决方案以用户熟悉的数字符号表示出来2。2.3.2 MATLAB工作环境MATLAB工作环境是一个集成了许多应用程序和工具的工作空间。在这个工作空间中,用户或程序开发者可以应用不同的功能完成他们的工作。MATLAB工作环境给用户提供了在工作空间内管理变量和输入、输出数据的功能,并给用户提供了不同的工具用以管理、调试M文件和MATLAB应用程序。MATLAB工作环境主要包括以下部分:a.命令

17、窗口 命令窗口是MATLAB提供给用户的操作界面,在命令窗口中,用户可以实现MATLAB的各种功能。b.M文件编辑器(M文件是MATLAB所特有的使用该语言编写的磁盘文件)M文件编辑器是MATLAB为用户提供的用于编辑M文件的程序。c.M文件调试器 同其他语言类似,MATLAB为用户提供了用于调试M文件的程序。d.MATLAB工作空间 MATLAB工作空间是显示用户在MATLAB中通过命令进行操作的变量的集合的窗口。e.在线帮助文档MATLAB为用户提供了强大的在线帮助,通过使用MATLAB提供的帮助,用户可以查询函数的用法,学习MATLAB的使用。2.3.3 MATLAB图像处理系统 MAT

18、LAB的图像处理系统为用户提供了非常丰富的函数,用以将工程计算的结果可视化。MATLAB图像处理系统的功能主要包括: a. 绘制二维图形; b.绘制三维图形; c.定制图形用户界面(GUI)。2.3.4 MATLAB数学函数库 MATLAB数学函数库包含了大量的数学函数,该函数库既包含了诸如求和、正弦、余弦之类的简单函数,也包含了转置矩阵、快速傅立叶变换等复杂函数3。MATLAB数学函数通过两种方式提供给用户:a.内部函数MATLAB内部数学函数是一些较为简单的函数,因为这些函数是直接内置于MATLAB的核心中的,所以其执行效率很高。b.以M文件的形式提供的函数 MATLAB中以以M文件的形式

19、提供的函数极大地扩展了MATLAB的功能,使得MATLAB能够应用于越来越多的领域。2.3.5 MATLAB应用程序接口 MATLAB应用程序接口(API)实际上是一个让MATLAB语言同语言和Fortran等其他高级语言进行交互的函数库。该函数库的函数通过动态链接来读写MATLAB文件4。MATLAB应用程序接口的主要功能如下:a.从MATLAB中调用C和Fortran程序;b.从MATLAB中输入和输出数据;c.在MATLAB和其他应用程序之间建立客户机/服务器关系。2.4 MATLAB的主要功能和特性2.4.1 MATLAB的主要功能 经过MathWorks 公司的不断完善,MATLAB

20、已具备越来越多的功能: a.数值计算功能 MATLAB作为世界顶尖的数学应用软件,其出色的数值计算能力是使之优于数值计算软件的决定性因素之一。 b.符号计算功能 数学计算有数值计算和符号计算之分,仅有优异的数值计算功能并不能满足解决数学计算问题时的需要,在数学、应用科学和工程计算领域,常常会遇到符号计算问题。1993年,MathWorks 公司从加拿大滑铁卢大学购买了Maple的使用权,并以Maple的“内核”作为符号计算功能的“引擎”,依靠Maple已有的库函数,实现了MATLAB的符号计算功能5。 c.数据分析和可视化功能 在科学计算和研究工作中,技术人员经常会遇到大量的原始数据,而对数据

21、的分析往往难以下手,如果将这些数据以图形的形式显示出来,不仅使数据间的关系清晰明了,而且对于揭示其内在本质往往有着非常重要的作用。 d.文字处理功能 MATLAB Notebook 为用户提供了强大的文字处理功能。MATLAB Notebook 允许用户从一个文字处理程序访问MATLAB的数值计算和可视化结果。 通过使用MATLAB Notebook,用户可以方便的创建包含文本、MATLAB命令及使用MATLAB得到的结果的文挡。2.4.2 MATLAB的特点 a功能强大 MATLAB不但在数值计算和符号计算方面具有强大的功能,而且在计算结果的分析和数据可视化方面也有着与其他类似软件难以匹敌的

22、优势。此外,MATLAB的 Notebook为用户提供了把文字和数字进行统一处理的功能,而MATLAB的Simulink功能则将其应用扩展到更广的领域6。 不仅如此,MathWorks公司推出了针对各专业应用的MATLAB工具箱。 b界面友好、编程效率高 MATLAB是一种以矩阵计算为基础的程序设计语言,其指令表达方式与标准教科书的数学表达式非常接近。用户不需要有较高的计算机编程基础,只要按照计算要求输入表达式,MATLAB将为用户计算出结果。 此外,使用MATLAB语言设计的程序,其编译和执行速度都远远超过了传统的C和Fortran语言设计的程序,可以说,MATLAB在工程计算方面的编程效率

23、远远高于其他编程语言。 c扩展性强 MATLAB的最重要的特点之一就是其可扩展性,这个特点使用户能够自由地开发自己的应用程序,这些年来,许多使用MATLAB的数学家、工程师和科学家已经开发出相当多的不同应用程序。 MATLAB的这些特点使它获得了对应用学科,特别是对边缘学科和交叉学科的极强的适应能力,并很快成为应用学科计算机辅助分析、设计、仿真以至教学等不可缺少的基础软件7。3. 数字滤波器简介3.1 数字滤波器的定义及分类数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定

24、的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器8。如果系统是一个离散系统,则滤波器称为数字滤波器。信号f(t)通过线性系统后,其输出y(t)就是输入信号f(t)和系统冲激响应h(t)的卷积。除了h(t)=(t)外,y(t)的波形将不同于输入波形f(t)。从频域分析来看,信号通过线性系统后,输出信号的频谱将是输入信号的频谱与系统传递函数的乘积。除非F(j)为常数,否则输出信号的频谱将不同于输入信号的频谱,某些频率成分H(j)有较大的模,因此,F(j)中这些频率成分将得到加强,而另外一些频率成分处H(j)的模很小甚至为零,F(j)中这部分频率分量将被削弱

25、或消失。因此,系统的作用相当于对输入信号的频谱进行加权。 线性系统对信号频谱的这种加工,可以有意识地用来按照人们的需要改变信号的频谱结构。这就是所谓频率滤波,是信号处理的一种方法。此时,人们也往往称此系统为滤波器。由于计算机和人规模集成电路技术的进步,依靠传统的模拟电路来实现的电子系统已不适应。现在都在开始采用数字化技术,传统的模拟滤波器,正在被数字滤波器所代替,数字滤波器的输入是一个数字序列,输出是另一个数字序列。从本质上说它只是一个序列的运算加工过程,但另一方面因为它是一个离散系统,而一个离散系统具有一定的频率响应特性,适当地控制离散系统结构使其频率特性满足一定的要求,就可以起到和模拟滤波

26、器同样的作用。但数字滤波器却具有精度高,可靠性强,灵活性大,适应范围广(在甚低频范围),快速等优点。而且可以分时复用,同时处理若干不同信号,因此已得到越来越广泛的应用9。 一个离散的时间系统,当它的系统函数一经确定后就可以根据H(Z)写出输出和输入关系的差分方程来,再用计算机根据不同的输入序列情况求出其相应的输出序列。数字滤波器是一个具有指定频率特性的离散系统,因此它的设计就在于确定它的系统函数。在找到能满足频率特性要求的系统函数后,就可以用硬件或软件来实现。硬件实现就是用数字电路制成的运算单元(延时器,加法器等)按框图联接成专用的处理机,软件实现就是按差分方程写出计算机的计算程序,然后用通用

27、计算机完成,在地球物理数据处理中,主要依靠通用计算机来实现数字滤波。 数字滤波器的传递函数就是系统单位函数响应的Z变换,因为冲激信号的频率特性是频率的周期函数,而且其周期就是抽样频率1/T,因此数字滤波器的频率特性也有周期重复的特点,在模拟滤波器中低通、高通、带通、带阻四种形状的频率特性,在数字滤波器中只在频率的一个周期内保留,但在整个频率轴上将有完全不同的形式,因此,必须适当选择抽样频率。数字滤波器之所以得到广泛应用,是因为模拟滤波器的设计复杂,只能用硬件实现,而数字滤波器有两种方法来实现数字滤波器:一种方法是采用通用计算机,利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通

28、过计算机来执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件(通常称之为数字信号处理器来实现)10。数字滤波在软件实现时只需根据滤波器的差分方程进行编程即可,非常简便,而且还可以方便地通过调整差分方程的系数来获得理想的滤波性能。滤波器的种类很多,分类的方法也很多。如根据滤波器的滤波功能(频率响应特性)来分,则可以将数字滤波器分为低通、高通、带通、带阻、全通等五种类型。如根据滤波器单位冲激响应h(n)的长度可以将滤波器分为有限冲激响应滤波器FIR和无限冲激响应滤波器IIR。如果根据滤波器的构成方式,则可以将滤波器分为递归式的数字滤波器和非递归式的数字滤波器。除了上面的一些分类方法,

29、从总体上还可以把数字滤波器分成两大类。一类是经典滤波器,一类是现代滤波器。经典滤波器是假定系统输入信号x(n)中的有用成分和希望去除的成分各自占有不同的频带,这样当x(n)通过一个线性系统(即滤波器后)可欲去除的成分有效地去除。如果信号和噪声的相互重叠,那么经典滤波器将无能为力。现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱等)导出一套最佳的估值算法,然后用硬件或软件予以实现。 在实际应用中经常会遇到FI

30、R与IIR的数字滤波器分类方法,那么这两种滤波器各自有什么优劣,怎么去选择他们,将是面临的首要问题。下面对这两种滤波器作一个简单的比较。 从性能上来说,IIR滤波器可以用较少的阶数获得很高的选择特性,所用存储单元少,运算次数少,所以经济而效率高11。但是这个高效率的代价是相位的非线性。选择性越好则相位非线性越严重。FIR滤波器可以得到严格的线性相位。但是,如果需要获得一定的选择性,则要用较多的存储器和较长的运算,成本比较高,信号延时也较大。 FIR滤波器可以得到严格的线性相位,只能通过改变零点位置来改变性能,为了达到高的选择性,必须用较高的阶数,对于同样的滤波器设计指标,FIR滤波器要求的阶数

31、可能比IIR滤波器高5-10倍。IIR滤波器的设计可以利用模拟滤波器许多现成的设计公式、数据和表格,计算的工作量较小。 从结构上看,IIR必须采用递归型结构,极点位置必须在单位圆内,否则系统将不稳定。FIR滤波器主要采用非递归结构,但它的传递函数的极点固定在原点,否则系统将不稳定。FIR滤波器可以采用快速博里叶变换算法,在相同阶数的条件下,运算速度可以加快。从设计工作看,IIR滤波器可以借助于模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供准确地计算。又有许多数据和表格可查,设计计算的工作量比较小,对计算工其的要求不高12。FIR滤波器设计则一般没有封闭形式的设计公式。窗口法虽然仅仅

32、对窗口函数可以给出计算公式,但计算通阻带衰减等仍无显式表达式。,一般,FIR滤波器的设计只有计算程序可循,因此对计算工具要求较高,没有电子计算机的程序功能是很困难的。然而这个特点又带来相反的一面,IIR滤波器设计简单,主要用以设计具有片段常数特性的滤波器,如低通、高通、带通及带阻等。而FIR滤波器则要灵活得多,尤其是频率采样设计法更容易适应各种幅度特性和相位特性的要求,可以设计出理想的正交变换、理想微分、线性调频等各种重要网络。基于以上比较,IIR和FIR各有优缺点,本文采取了IIR滤波器。3.2 数字滤波器设计方法 数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为

33、代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。当然,IIR滤波器也可以采取直接设计的方法。3.2.1 数字滤波器设计的基本步骤FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。IIR滤波器的特征是具有无限持续时间的冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也

34、称之为递归滤波器。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工具箱的不断完善,使数字滤波器的计算机辅助设计有了可能。 数字滤波器设计的基本步骤如下。(I)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在那很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应,幅度指标主要以两种方式给出:第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。(II)

35、逼近确定了技术指标后就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。 (III)性能分析上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求。3.2.2 滤波器的MATLAB设计在对滤波器实际设计时,整个过程的运算量是很大的。当滤波器阶数比较高时,计算量比较大,设计过程中改变参数或滤波器类型时都要重新计算。设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特性,运算量也是很大的。平时所要没计的数字滤波器,阶数

36、和类型并不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断的调整,以达到设计的最优化。在这种情况下,滤波器的设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计。利用MATLAB强大的计算功能进行计算机辅助设计可以快速有效的设计数字滤波器大大的简化了计算量,直观简使13。 利用MATIaAB信号处理工具箱进行数字滤波器设计总的来说有三种方法:程序设计法、IDATooI设计法和SPTooI设计法。程序设计法是由设计者通过编写程序,利用MATLAB信号处理工具箱提供的各种窗函数、滤波器设计函数和滤波器实现函数来完成滤波器的设计,要求设计者熟悉工具箱的各种函数

37、,具有一定的编程能力。FDATooI设计法和SPTooI设计法相对比较简单,FDATooI工具箱和SPToaI工具箱具有交互式的友好设计界面,只要填入设计参数点击按钮,相应的滤波器就设计完成了。为了能够熟练掌握MATLAB程序设计语言,本文采取了程序设计法。4. 音频信号频谱分析的软件实现4.1 数字滤波器设计数字滤波器有IIR和FIR滤波器两种,本文采用IIR数字滤波器。设计IIR数字滤波器时可以采取两种方法,一种是通过先设计模拟滤波器,然后再通过模拟滤波器到数字滤波器的映射,将模拟滤波器转换为数字滤波器。另一种是调用直接设计IIR数字滤波器的函数,直接设计IIR数字滤波器。常用的模拟滤波器

38、有Butterworth(巴特沃思)滤波器、chebyshev(切比雪夫)I滤波器、chebyshev(切比雪夫)II滤波器及椭圆函数滤波器。模拟滤波器变换成数字滤波器有两种方法,一种是双线性变换实现模拟滤波器到数字滤波器的变换函数bilinear,一种是冲击响应不变法实现模拟到数字滤波器的变换函数impinvar。直接设计IIR数字滤波器的函数有:Butterworth数字滤波器设计函数butter,chebyshev I(通带等波纹)设计函数cheby1,chebyshev II(阻带等波纹)设计函数cheby2,椭圆滤波器设计函数ellip。本文采取调用直接设计IIR数字滤波器函数的方法

39、设计数字滤波器。4.1.1 Butterworth数字滤波器设计函数butter调用格式:b,a=butter(n,Wn)b,a=butter(n,Wn,ftype)Butter函数可以设计通带内幅度响应最大平坦的低通、高通、带通、带阻数字滤波器。b,a=butter(n,Wn)可以设计出截至频率为Wn的n阶Butterworth数字滤波器。b,a=butter(n,Wn,ftype)可以设计出高通或带阻滤波器:当ftype=high时,可设计出截至频率为Wn的高通滤波器;当ftype=stop时,可设计出带阻滤波器,这时Wn=W1,W2,且阻带为W1WW2。4.1.2 chebyshev I

40、型滤波器设计函数cheby1调用格式:b,a=cheby1(n,Rp,Wn)b,a=cheby1(n,Rp,Wn,ftype)cheby1函数可以设计低通、高通、带通、带阻数字chebyshev I滤波器,其幅度特性在通带内是等波纹的,而在阻带内为单调的chebyshev I滤波器的下降斜度比chebyshev II型大,其代价是通带内波纹较大14。b,a=cheby1(n,Rp,Wn)可以设计出n阶低通滤波器,其截止频率有Wn确定,通带波纹有Rp决定,截止频率是滤波器下降至Rp处的频率,通带波纹Rp越小,过度带宽带越宽。当Wn=W1 W2时,cheby1函数可以产生一2n阶的数字滤波器,其通

41、带为W1WW2.b,a=cheby1(n,Rp,Wn,ftype)可以设计出高通和带阻滤波器:当ftype=high时,可设计出截至频率为Wn的高通滤波器;当ftype=stop时,可设计出带阻滤波器,这时Wn=W1,W2,且阻带为W1WW2。4.1.3 chebyshev II型滤波器设计函数cheby2Cheby2函数几乎与cheby1一模一样,只是cheby2函数设计的滤波器其幅度特性在通带内为单调的,而在阻带内为等波纹的。其阻带内波纹由Rs指定。其他介绍见cheby1。4.1.4 椭圆滤波器设计函数ellip调用格式:b,a=ellip(n,Rp,Rs,Wn)b,a=ellip(n,R

42、p,Rs,Wn, ftype)Ellip函数与cheby1cheby2函数相似,它设计低通、高通、带通、带阻椭圆数字滤波器。Ellip函数可得到幅度在通带和阻带内同时为等波纹的特性且下降斜度更大的滤波器。b,a=ellip(n,Rp,Rs,Wn) 可以设计出n阶低通或带通滤波器(当Wn=W1 W2时)。b,a=ellip(n,Rp,Rs,Wn, frype) 可以设计出高通(当ftype=high时)和带阻(当ftype=stop时)滤波器。4.1.5 滤波器频率响应数字滤波器频率响应函数freqz,freqz用于计算矢量a和b构成的数字滤波器的复频率响应。 freqz调用格式:freqz(b

43、,a,n,fs)本文设计低通滤波器用的是椭圆滤波器,其频率响应如图4.1。图4.1 低通滤波器的频率响应 低通滤波器的通带范围是01000Hz,通带波纹小于3dB,阻带为-30dB。高通滤波器采用的是chebyshev II型滤波器,其频率响应如图4.2。图4.2 高通滤波器的频率响应 高通滤波器的截止频率为3000HZ,采样频率是1000Hz。 带通滤波器采用的是butter滤波器,其频率响应如图4.3。 图4.3 带通滤波器的频率响应带通滤波器的通带范围是10002500Hz,阻带的上下边频分别是500Hz和3000Hz。通带波纹小于3dB,阻带为-30dB。带阻滤波器采用的是butter

44、滤波器,其频率响应如图4.4。图4.4 带阻滤波器的频率响应 阻带范围为5003000Hz,通带上限大于2500Hz,下限小于1000Hz,通带波纹小于3dB,阻带为-30dB。4.2 音频信号频谱分析4.2.1 音频信号读入和播放MATLAB可支持两种格式的输入输出:NeST/SUN(后缀为“.au”)和Microsoft WAV文件(后缀为“.wav”)。本文采用的是WAV声音文件15。wavread用于读取Microsoft的扩展名为“.wav”的声音文件,其调用格式如下:y=wavread(file)其作用是从字符串file所指定的文件路径读取wave文件,将读取的采样数据送到y中。若

45、file中无“.wav”扩展名,则该命令自动将指定文件名后加上“.wav”扩展名。y,fs,nbits=wavread(file);其作用是返回采样率和每个采样的比特数。Wavplay利用Windows音频输出设备播放声音,其调用格式是:1) wavplay(y,fs);以采样频率fs向Windows音频设备发送向量信号。标准的音频采样率有:8000、11025、22050和44100HZ。2) wavplay (y);自动采样率为11025HZ。4.2.2 MATLAB实现音频信号的频谱分析及可视化a.对音频信号进行频谱分析要调用fft(快速傅立叶变换),调用格式:y=fft(x);y=ff

46、t(x,n);y=fft(x)利用FFT算法计算矢量x的离散傅立叶变换,当x为矩阵时,y为矩阵x的每一列的FFT。当x的长度为2的冥次方时,则fft采用基-2FFT算法,否则采用稍慢的混合基算法。y=fft(x,n)采用n点FFT。当x的长度小于n时,fft函数在x的尾部补零,以构成长为n的数据;当x的长度大于n时,fft函数将序列x截断,取前n点。当x为矩阵时,fft函数按类似的方式处理列长度。实现幅度响应要调用求绝对值或幅值函数,调用格式:m=abs(h);实现相位响应要调用求相角函数,调用格式:P=angle(h);b.频谱可视化要调用plot函数,调用格式:plot(x)各音频信号的幅

47、度谱和相位谱如下图4.5 通过滤波器前音频信号1的幅度谱图4.6 通过滤波器前音频信号1的相位谱图4.7 通过滤波器前音频信号2的幅度谱图4.8 通过滤波器前音频信号2的相位谱图4.9 通过滤波器前音频信号3的幅度谱图4.10 通过滤波器前音频信号3的相位谱各滤波器的幅度谱和相位谱如下图4.11 低通滤波器的幅度谱图4.12 低通滤波器的相位谱图4.13 高通滤波器的幅度谱图4.14 高通滤波器的相位谱图4.15 带通滤波器的幅度谱图4.16 带通滤波器的相位谱图4.17 带阻滤波器的幅度谱图4.18 带阻滤波器的相位谱4.2.3 IIR数字滤波器滤波及滤波后各信号的频谱可视化 音频信号通过I

48、IR数字滤波器需要调用filter函数,调用格式: y=filter(b,a,x)filter采用数字滤波器对数据进行滤波,既可用于IIR滤波器也可用于FIR滤波器。y=filter(b,a,x)利用给出的矢量a和b,对x中的数据进行滤波,结果放入y矢量。下面给出各音频信号通过各滤波器后的幅度谱和相位谱。图4.19 通过低通滤波器后音频信号1的幅度谱图4.20 通过低通滤波器后音频信号1的相位谱图4.21 通过高通滤波器后音频信号1的幅度谱图4.22 通过高通滤波器后音频信号1的相位谱图4.23 通过带通滤波器后音频信号1的幅度谱图4.24 通过带通滤波器后音频信号1的相位谱图4.25 通过带

49、阻滤波器后音频信号1的幅度谱图4.26 通过带阻滤波器后音频信号1的相位谱图4.27 通过低通滤波器后音频信号2的幅度谱图4.28 通过低通滤波器后音频信号2的相位谱图4.29 通过高通滤波器后音频信号2的幅度谱图4.30 通过高通滤波器后音频信号2的相位谱图4.31 通过带通滤波器后音频信号2的幅度谱图4.32 通过带通滤波器后音频信号2的相位谱图4.33 通过带阻滤波器后音频信号2的幅度谱图4.34 通过带阻滤波器后音频信号2的相位谱图4.35 通过低通滤波器后音频信号3的幅度谱图4.36 通过低通滤波器后音频信号3的相位谱图4.37 通过高通滤波器后音频信号3的幅度谱图4.38 通过高通

50、滤波器后音频信号3的相位谱图4.39 通过带通滤波器后音频信号3的幅度谱图4.40 通过带通滤波器后音频信号3的相位谱图4.41 通过带阻滤波器后音频信号3的幅度谱图4.42 通过带阻滤波器后音频信号3的相位谱 通过比较各信号通过滤波器前后的频谱特性,可以看出信号通过滤波器后的幅频等于信号通过滤波器之前的幅频与滤波器本身的幅频的乘积;而信号通过滤波器后的相频等于信号通过滤波器之前的相频与滤波器本身的相频的和。4.3 界面设计4.3.1 软件流程图IIR.mIIR11.mIIR12.mIIR21.mIIR22.mIIR31.mIIR32.mIIR4.mIIR5.mlp_set11,hp_set1

51、1,bp_set,bs_set分别与IIR11.m 对应。lp_filter11,hp_filter11,bp_filter11,bs_f ilter分别与lp_set11对应产生对应的界面,产生各信号通过滤波器后的幅频和相频特性fft11.mfft12.mfft21.mfft22.m fft31.mfft32.mlp_filter1.mlp_filter2.mhp_filter1.mhp_filter2.mbp_filter1.mbp_filter2.mbs_filter1.mbs_filter2.m对应界面,产生各信号未通过滤波器前的幅频和相频特性对应界面,产生各滤波器的幅频和相频特性图4

52、.43 软件流程图进入MATLAB环境后,运行IIR.m,出现一个界面如图4.44所示图4.44 运行IIR.m后所得的界面 界面上自上而下写的是“信号1通过滤波器后的幅频特性”、信号1通过滤波器后的相频特性”、“信号2通过滤波器后的幅频特性”、信号2通过滤波器后的相频特性”、“信号3通过滤波器后的幅频特性”、信号3通过滤波器后的相频特性”和“滤波器频谱”。 当点击“信号1通过滤波器后的幅频特性”时,会链接到IIR11.m文件,出现另一个界面,如图4.45所示。图4.45 当点击“信号1通过滤波器后的幅频特性”出现的界面界面上自上而下写的是“低通滤波器幅频特性”、“高通滤波器幅频特性”、“带通

53、滤波器幅频特性”和“带阻滤波器幅频特性”。至于下面的四个,是由于在IIR.m中设置了八条,而在IIR11.m中只有四条,所以出现四条不变。点击“低通滤波器幅频特性”就会出现信号1通过低通滤波器的幅度响应,点击“高通滤波器幅频特性”就会出现信号1通过高通滤波器的幅度响应,点击“带通滤波器幅频特性”就会出现信号1通过带通滤波器的幅度响应,点击“带阻滤波器幅频特性”就会出现信号1通过带阻滤波器的幅度响应。点击“低通滤波器幅频特性”后出现如图4.46所示的界面;点击“高通滤波器幅频特性”后出现如图4.47所示的界面;点击“带通滤波器幅频特性”后出现如图4.48所示的界面;点击“带阻滤波器幅频特性”后出

54、现如图4.49所示的界面。图4.46 点击“低通滤波器幅频特性”后出现的界面图4.47 点击“高通滤波器幅频特性”后出现的界面图4.48 点击“带通滤波器幅频特性”后出现的界面图4.49 点击“带阻滤波器幅频特性”后出现的界面以上界面上都写着“声音”和“返回”,点击“声音”出现信号通过后的幅度响应界面,如图4.50所示(以通过低通滤波器为例)。点击“返回”则返回图4.44.图4.50 点击“声音”出现的频谱特性界面点击“声音”则界面上“声音”和“返回”消失,便于截图;点击“返回”则回到图4.44所示的界面。 当点击“信号1通过滤波器后的相频特性”时,会链接到IIR12.m文件,出现另一个界面,

55、如图4.51所示。4.51 点击“信号1通过滤波器后的相频特性”出现的界面界面上自上而下写的是“低通滤波器相频特性”、“高通滤波器相频特性”、“带通滤波器相频特性”和“带阻滤波器相频特性”。与幅频特性操作相似,点击不同字条将产生各自的相频特性,以高通滤波器为例,点击“高通滤波器相频特性”产生的界面如图4.52所示。图4.52 点击“高通滤波器相频特性”产生的界面 图4.44中,点击“滤波器频谱”,出现如图4.53所示的界面。图4.53 点击“滤波器频谱”产生的界面界面上自上而下写的是“低通滤波器幅频特性”、“低通滤波器相频特性”、“高通滤波器幅频特性”、“高通滤波器相频特性”、“带通滤波器幅频

56、特性”、“带通滤波器相频特性”、“带阻滤波器幅频特性”和“带阻滤波器相频频特性”。以“低通滤波器幅频特性”为例演示,点击“低通滤波器幅频特性”时出现一个界面,如图4.54所示。点击其他七个条文可以分别得到对应的幅频特性。图4.54点击“低通滤波器幅频特性”时出现的界面结 论本设计题目是利用MATLAB软件对音频信号进行频谱分析与处理。通过完成此次毕业设计论文,了解了MATLAB的历史和发展历程,熟悉了MATLAB程序设计语言,掌握了该软件的使用方法。通过MATLAB可以读取播放音频信号,能对其进行频谱分析,并可以实现频谱特性的可视化,还设计了可以方便操作的界面,这使我切身体会到了MATLAB的

57、强大功能,明确了MATLAB在信号处理中的重要作用。MATLAB程序设计语言是世界上应用最广泛的软件之一,是我们理工科学生必须掌握的程序设计语言。通过设计各种数字滤波器,分析音频信号的频谱,又重新回顾了本专业的知识。用MATLAB可以设计各种模拟和数字滤波器,并能够将模拟滤波器变换成数字滤波器。数字滤波器可分为低通、高通、带通、带阻滤波器,通过设计这些滤波器,熟悉了各种滤波器设计方法,弄清了各种滤波器的性能和各自的区别,使我对本专业的前景有了更加清醒的认识。通过此次毕业设计,不仅学到了专业知识,也心到了要有严谨的学习态度和勤劳的工作精神,对以后的学习生活有很多帮助,这也许是最有价值的。致 谢在

58、论文即将结束之际,我要感谢我的导师,早在刚拿到课题时,老师就推荐了一些书给我,在做毕业设计期间,又是老师给了我悉心的指导和帮助,没有老师的指导,毕业论文不可能顺利完成。老师那严谨的学风和脚踏实地的精神也给我留下了深刻的印象,在此谨向老师致以最诚挚的感谢!另外,我要感谢学校给我提供了很好的学习环境。我还想对帮助过我的老师和同学说一声谢谢!参 考 文 献1 程卫国,冯峰,姚东,徐昕,等. MATLAB 5.3应用指南M. 北京:人民邮电出版社,2000.2 邹鲲,袁俊泉,龚享铱,等. MATLAB 6.x信号处理M. 北京:清华大学出版社,2002.3 周金萍,王冉,吴斌,等. MATLAB6实践

59、与提高M. 北京:中国电力出版社,2001.4 郝红伟. MATLAB6实例教程M. 北京:中国电力出版社,2001.5 陈怀琛,吴大正,高西全,等. MATLAB及在电子信息课程中的应用M. 北京:电子工程出版社,2002.6 Alan V.Oppenheim,Ronald W.Schafer. Discrete-Time Signal ProcessingM. New Jersey:Prentice-Hall,1989.7 Dean J. Krusienski. INVESTIGATIONS INTO USING MATLAB FOR ACOUSTICAL ADAPTIVE FILTERI

60、NGJ. REU PENN STATE Annual Research ,2003,1:4553.8 黄跃刚. FIR数字滤波器的MATLAB设计与DSP实现D. 长春:东北大学,2006.9 武卫华. 基于MATLAB的IIR数字滤波器的设计J. 自动化仪表,2003,24(7):1922.10 王东,王华. 基于MATLAB的IIR数字滤波器的设计技术J. 能源应用技术,2006,3:4750.11 陈亚勇. MATLAB 信号处理详解M. 北京:人民邮电出版社,2000.12 黄文梅,熊桂林,杨勇,等. 信号分析与处理MATLAB语言及应用M.长沙:国防科技大学出版社,2000.13 徐天成. 信号与系统M. 哈尔滨:哈尔滨工程大学出版社,2002.14 张淑骅. 基于MATLAB的X光图像处理方法D. 上海:华东师范大学,2005.15 杨大柱. MATLAB在IIR滤波器设计中的应用J. 现代机器,2006,3(5):6062.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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