资源描述
毕业设计说明书(论文)利用 MATLAB 软件对音频信号进行频谱分析与处理毕毕业业设设计计说说明明书书(论论文文)中中文文摘摘要要详细了解了数字滤波器的滤波器设计,比较了 FIR 和 IIR 滤波器的不同性能,最终选择了设计 IIR 滤波器。通过设计低通、高通、带通和带阻等各种滤波器,并分析了各滤波器的幅度特性和相频特性,熟悉了四种滤波器的性能。利用 MATLAB 软件分析音频信号的幅度响应和相位响应,学习了数字音频信号输入 MATLAB 环境并通过 MATLAB 播放的方法。通过比较音频信号输入前与输入后幅度响应和相位响应的差异,验证了以前所学习的转业知识。学习了 MATLAB 程序设计语言,编写了相应程序,产生了一个可以使操作更加方便的操作界面。画了软件实现和界面操作的流程图。关键词 音频信号 幅度响应 相位响应 MATLAB 滤波器 IIR FIR 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 I 页 共 I 页毕毕业业设设计计说说明明书书(论论文文)外外文文摘摘要要TitleTitle To Analyze and Dispose The Spectra of The Audio Signal With MATLAB AbstractAbstractTo comprehend the design of digital filter in detail, to compare the performance of the FIR filter and IIR filter, and finally 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 response 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 signals 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. 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 II 页 共 I 页Keywords audio signal amplitude response phase respond MATLAB filter IIR FIR目 次 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 III 页 共 I 页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 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 1 页 共 45 页1 1 引言引言1.11.1 研究背景研究背景在计算机技术日新月异的今天,计算机已同人们的日常生活和工作越来越紧密的联系在一起。而在工程计算领域中,计算机技术的应用正逐步把科技人员从繁重的计算工作中解放出来。在科学研究和工程应用的过程中,往往需要进行大量的数学计算,传统的纸笔和计算器已根本不能满足海量计算的要求。MATLAB 的产生是与数学计算紧密联系在一起的, MATLAB 由主包和功能各异的工具箱组成,其基本数据结构是矩阵,它具有非常强大的计算功能,正是凭借其杰出的性能,MATLAB 现在已成为世界上应用最广泛的工程计算应用软件之一。MATLAB在国外的高校已成为大学生、硕士生、博士生必须掌握的基本程序设计语言。信号处理是科学研究和工程技术许多领域都需要进行的一个重要环节,这种处理包括信号的检测、变换、滤波、传输、信号提取等。传统上对信号的处理大都采用模拟系统来实现,然而,随着人们对信号处理要求的不断提高,以及模拟信号处理中一些不可克服的缺点,对信号的许多处理转而采用数字的方法来进行。信号处理技术是开发具有自主知识产权的各类先进产品的瓶颈,是一项关键技术。MATLAB 是一种面向科学与工程计算的高级语言,已成为数学、信息、控制、经济等诸多学科实用的仿真软件。MATLAB 是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示与一体,构成了一个界面友好的用户环境。信号处理是 MATLAB 应用最成功的领域之一,MATLAB 将信号处理中的许多常用算法编写成了可调用的函数,汇集构成了信号处理工具箱。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。1.21.2 本文主要研究内容本文主要研究内容 MATLAB 具有非常强大的计算功能,凭借其杰出的性能,MATLAB 现在已经成为世界上应用最广泛的工程计算应用软件之一。MATLAB 已经是理工科的学生必须掌握的应用软件了。本文利用 MATLAB 处理音频信号,掌握了 MATLAB 的使用方法,详细了解了 MATLAB 的产生发展过程及原理。分析了三种音频信号的频谱,运用 MATLAB 设计了低通、高通、带通、带阻等四种 IIR 数字滤波器,并分析了这三种音频信号通 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 2 页 共 45 页过四种不同滤波器后的频谱,比较了前后频谱的不同。设计 IIR 数字滤波器的方法不尽相同,带通滤波器和带阻滤波器采用的是巴特沃思滤波器,低通滤波器采用的是椭圆滤波器,而高通滤波器采用的是切比雪夫 II 滤波器。为了操作简便,特地在任务之外又设计了一个操作界面,这样就使得运行 MATLAB 程序变得更加简便了。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 3 页 共 45 页2 2 MATLABMATLAB 简介简介2.12.1 什么是什么是 MATLABMATLAB在科学研究和工程应用的过程中,往往需要进行大量的数学计算,传统的纸笔和计算器已经根本无法满足海量计算的要求。一些技术人员尝试用 Basic、Fortran以及 C 语言编制程序来减轻计算的工作量,但是编制程序不仅要掌握所用语言的语法,还需要对有关算法进行深入分析,这对大多数科技工作者来说有一定的难度。为了满足用户对工程数学计算的要求,一些软件公司相继推出了一批数学类科技应用软件,如 MATLAB、Xmath、Mathematica、Maple 等。其中 MATLAB 以其强大的功能和易用性受到越来越多的科技工作者的欢迎。MATLAB 起初是作为矩阵实验室(Matricx Laboratory)提供对 LINPACK 和EISPACK 矩阵软件包的接口(LINPACK 是解线性方程的 Fortran 程序库,EISPACK 是解决特征值问题的 Fortran 程序库) 。与 Basic、Fortran 以及 C 语言比较,MATLAB的语法规则更简单,编程特点更接近人的思维方式,用 MATLAB 写程序有如在便笺上列公式和求解,因而 MATLAB 被称为“科学便笺式”的科学工程计算语言1。MATLAB 由主包和功能各异的工具箱组成,其基本数据结构是矩阵。正如 MATLAB的名字“矩阵实验室” ,MATLAB 起初主要是用来对矩阵进行操作的。MATLAB 具有非常强大的计算功能,正是凭借其杰出的性能,MATLAB 现在已成为世界上应用最广泛的工程计算应用软件之一。2.22.2 MATLABMATLAB 的发展历史的发展历史2.2.1 MATLAB 的产生上世纪 70 年代中期,Cleve Moler 及他的同事在美国国家基金会的帮助下,开发了 LINPACK 和 EISPACK 的 Fortran 子程序库。不久,Cleve Moler 在给学生开线性代数课时,为了让学生能使用 LINPACK 和 EISPACK 子程序库又不至于在编程上花费太多的时间,为学生编写了使用 LINPACK 和 EISPACK 的接口程序,他将这个接口程序取名为 MATLAB(即 matrix 和 laboratory 的前三位字母组合,意为“矩阵实验室” )。80 年代初期,Cleve Moler、John Little 采用 C 语言编写 MATLAB 的核心,合作开发了 MATLAB 的第二代专业版。不久他们成立了 MathWorks 公司并将 MATLAB 正式 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 4 页 共 45 页推向市场。2.2.2 MATLAB 的发展MathWorks 公司自 1984 年正式推出 MATLAB 后,经过这些年的不断研究,增加了许多功能。例如 MathWorks 公司于 2001 年推出 MATLAB6.0 版本,6.x 版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了 SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。 (2)开发了与外部进行直接数据交换的组件,打通了 MATLAB 进行实时数据分析、处理和硬件开发的道路。 (3)推出了符号计算工具包。MathWorks 公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。 (4)构作了 Notebook 。MathWorks 公司瞄准应用范围最广的 Word ,运用 DDE 和 OLE,实现了 MATLAB 与Word 的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。 2.32.3 MATLABMATLAB 系统系统经过不断发展,MATLAB 已经自成体系。MATLAB 包括五个部分:MATLAB 语言、MATLAB 工作环境、MATLAB 图像处理系统、MATLAB 数学函数库、MATLAB 应用程序接口。2.3.1 MATLAB 语言 MATLAB 语言是一种高级矩阵语言。随着 MathWorks 公司的不断研究,MATLAB 语言已经成为带有独特的数据结构、输入输出、流程控制语句和函数,并且面向对象的高级语言。 MATLAB 语言在工程计算方面具有无可比拟的优异性能。它集计算、数据可视化和程序设计为一体,并能将问题和解决方案以用户熟悉的数字符号表示出来2。2.3.2 MATLAB 工作环境MATLAB 工作环境是一个集成了许多应用程序和工具的工作空间。在这个工作空间中,用户或程序开发者可以应用不同的功能完成他们的工作。MATLAB 工作环境给用户提供了在工作空间内管理变量和输入、输出数据的功能,并给用户提供了不同的工具用以管理、调试 M 文件和 MATLAB 应用程序。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 5 页 共 45 页MATLAB 工作环境主要包括以下部分:a.命令窗口 命令窗口是 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 图像处理系统 MATLAB 的图像处理系统为用户提供了非常丰富的函数,用以将工程计算的结果可视化。MATLAB 图像处理系统的功能主要包括: a. 绘制二维图形; b.绘制三维图形; c.定制图形用户界面(GUI) 。2.3.4 MATLAB 数学函数库 MATLAB 数学函数库包含了大量的数学函数,该函数库既包含了诸如求和、正弦、余弦之类的简单函数,也包含了转置矩阵、快速傅立叶变换等复杂函数3。MATLAB 数学函数通过两种方式提供给用户:a.内部函数MATLAB 内部数学函数是一些较为简单的函数,因为这些函数是直接内置于MATLAB 的核心中的,所以其执行效率很高。b.以 M 文件的形式提供的函数 MATLAB 中以以 M 文件的形式提供的函数极大地扩展了 MATLAB 的功能,使得MATLAB 能够应用于越来越多的领域。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 6 页 共 45 页2.3.5 MATLAB 应用程序接口 MATLAB 应用程序接口(API)实际上是一个让 MATLAB 语言同语言和 Fortran等其他高级语言进行交互的函数库。该函数库的函数通过动态链接来读写 MATLAB 文件4。MATLAB 应用程序接口的主要功能如下:a.从 MATLAB 中调用 C 和 Fortran 程序;b.从 MATLAB 中输入和输出数据;c.在 MATLAB 和其他应用程序之间建立客户机/服务器关系。2.42.4 MATLABMATLAB 的主要功能和特性的主要功能和特性2.4.1 MATLAB 的主要功能 经过 MathWorks 公司的不断完善,MATLAB 已具备越来越多的功能: a.数值计算功能 MATLAB 作为世界顶尖的数学应用软件,其出色的数值计算能力是使之优于数值计算软件的决定性因素之一。 b.符号计算功能 数学计算有数值计算和符号计算之分,仅有优异的数值计算功能并不能满足解决数学计算问题时的需要,在数学、应用科学和工程计算领域,常常会遇到符号计算问题。1993 年,MathWorks 公司从加拿大滑铁卢大学购买了 Maple 的使用权,并以 Maple 的“内核”作为符号计算功能的“引擎” ,依靠 Maple 已有的库函数,实现了 MATLAB 的符号计算功能5。 c.数据分析和可视化功能 在科学计算和研究工作中,技术人员经常会遇到大量的原始数据,而对数据的分析往往难以下手,如果将这些数据以图形的形式显示出来,不仅使数据间的关系清晰明了,而且对于揭示其内在本质往往有着非常重要的作用。 d.文字处理功能 MATLAB Notebook 为用户提供了强大的文字处理功能。MATLAB Notebook 允许用户从一个文字处理程序访问 MATLAB 的数值计算和可视化结果。 通过使用 MATLAB Notebook,用户可以方便的创建包含文本、MATLAB 命令及使用 MATLAB 得到的结果的文挡。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 7 页 共 45 页2.4.2 MATLAB 的特点 a功能强大 MATLAB 不但在数值计算和符号计算方面具有强大的功能,而且在计算结果的分析和数据可视化方面也有着与其他类似软件难以匹敌的优势。此外,MATLAB 的 Notebook 为用户提供了把文字和数字进行统一处理的功能,而 MATLAB 的 Simulink功能则将其应用扩展到更广的领域6。 不仅如此,MathWorks 公司推出了针对各专业应用的 MATLAB 工具箱。 b界面友好、编程效率高 MATLAB 是一种以矩阵计算为基础的程序设计语言,其指令表达方式与标准教科书的数学表达式非常接近。用户不需要有较高的计算机编程基础,只要按照计算要求输入表达式,MATLAB 将为用户计算出结果。 此外,使用 MATLAB 语言设计的程序,其编译和执行速度都远远超过了传统的 C和 Fortran 语言设计的程序,可以说,MATLAB 在工程计算方面的编程效率远远高于其他编程语言。 c扩展性强 MATLAB 的最重要的特点之一就是其可扩展性,这个特点使用户能够自由地开发自己的应用程序,这些年来,许多使用 MATLAB 的数学家、工程师和科学家已经开发出相当多的不同应用程序。 MATLAB 的这些特点使它获得了对应用学科,特别是对边缘学科和交叉学科的极强的适应能力,并很快成为应用学科计算机辅助分析、设计、仿真以至教学等不可缺少的基础软件7。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 8 页 共 45 页3.3. 数字滤波器简介数字滤波器简介3.13.1 数字滤波器的定义及分类数字滤波器的定义及分类数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器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)中这部分频率分量将被削弱或消失。因此,系统的作用相当于对输入信号的频谱进行加权。 线性系统对信号频谱的这种加工,可以有意识地用来按照人们的需要改变信号的频谱结构。这就是所谓频率滤波,是信号处理的一种方法。此时,人们也往往称此系统为滤波器。由于计算机和人规模集成电路技术的进步,依靠传统的模拟电路来实现的电子系统已不适应。现在都在开始采用数字化技术,传统的模拟滤波器,正在被数字滤波器所代替,数字滤波器的输入是一个数字序列,输出是另一个数字序列。从本质上说它只是一个序列的运算加工过程,但另一方面因为它是一个离散系统,而一个离散系统具有一定的频率响应特性,适当地控制离散系统结构使其频率特性满足一定的要求,就可以起到和模拟滤波器同样的作用。但数字滤波器却具有精度高,可靠性强,灵活性大,适应范围广(在甚低频范围),快速等优点。而且可以分时复用,同时处理若干不同信号,因此已得到越来越广泛的应用9。 一个离散的时间系统,当它的系统函数一经确定后就可以根据 H(Z)写出输出和输入关系的差分方程来,再用计算机根据不同的输入序列情况求出其相应的输出序 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 9 页 共 45 页列。数字滤波器是一个具有指定频率特性的离散系统,因此它的设计就在于确定它的系统函数。在找到能满足频率特性要求的系统函数后,就可以用硬件或软件来实现。硬件实现就是用数字电路制成的运算单元(延时器,加法器等)按框图联接成专用的处理机,软件实现就是按差分方程写出计算机的计算程序,然后用通用计算机完成,在地球物理数据处理中,主要依靠通用计算机来实现数字滤波。 数字滤波器的传递函数就是系统单位函数响应的 Z 变换,因为冲激信号的频率特性是频率的周期函数,而且其周期就是抽样频率 1/T,因此数字滤波器的频率特性也有周期重复的特点,在模拟滤波器中低通、高通、带通、带阻四种形状的频率特性,在数字滤波器中只在频率的一个周期内保留,但在整个频率轴上将有完全不同的形式,因此,必须适当选择抽样频率。数字滤波器之所以得到广泛应用,是因为模拟滤波器的设计复杂,只能用硬件实现,而数字滤波器有两种方法来实现数字滤波器:一种方法是采用通用计算机,利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件(通常称之为数字信号处理器来实现)10。数字滤波在软件实现时只需根据滤波器的差分方程进行编程即可,非常简便,而且还可以方便地通过调整差分方程的系数来获得理想的滤波性能。滤波器的种类很多,分类的方法也很多。如根据滤波器的滤波功能(频率响应特性)来分,则可以将数字滤波器分为低通、高通、带通、带阻、全通等五种类型。如根据滤波器单位冲激响应 h(n)的长度可以将滤波器分为有限冲激响应滤波器 FIR 和无限冲激响应滤波器 IIR。如果根据滤波器的构成方式,则可以将滤波器分为递归式的数字滤波器和非递归式的数字滤波器。除了上面的一些分类方法,从总体上还可以把数字滤波器分成两大类。一类是经典滤波器,一类是现代滤波器。经典滤波器是假定系统输入信号 x(n)中的有用成分和希望去除的成分各自占有不同的频带,这样当 x(n)通过一个线性系统(即滤波器后)可欲去除的成分有效地去除。如果信号和噪声的相互重叠,那么经典滤波器将无能为力。现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。现代滤波器把信号和噪声都视为随机信号,利用它们的统计特 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 10 页 共 45 页征(如自相关函数、功率谱等)导出一套最佳的估值算法,然后用硬件或软件予以实现。 在实际应用中经常会遇到 FIR 与 IIR 的数字滤波器分类方法,那么这两种滤波器各自有什么优劣,怎么去选择他们,将是面临的首要问题。下面对这两种滤波器作一个简单的比较。 从性能上来说,IIR 滤波器可以用较少的阶数获得很高的选择特性,所用存储单元少,运算次数少,所以经济而效率高11。但是这个高效率的代价是相位的非线性。选择性越好则相位非线性越严重。FIR 滤波器可以得到严格的线性相位。但是,如果需要获得一定的选择性,则要用较多的存储器和较长的运算,成本比较高,信号延时也较大。 FIR 滤波器可以得到严格的线性相位,只能通过改变零点位置来改变性能,为了达到高的选择性,必须用较高的阶数,对于同样的滤波器设计指标,FIR 滤波器要求的阶数可能比 IIR 滤波器高 5-10 倍。IIR 滤波器的设计可以利用模拟滤波器许多现成的设计公式、数据和表格,计算的工作量较小。 从结构上看,IIR 必须采用递归型结构,极点位置必须在单位圆内,否则系统将不稳定。FIR 滤波器主要采用非递归结构,但它的传递函数的极点固定在原点,否则系统将不稳定。FIR 滤波器可以采用快速博里叶变换算法,在相同阶数的条件下,运算速度可以加快。从设计工作看,IIR 滤波器可以借助于模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供准确地计算。又有许多数据和表格可查,设计计算的工作量比较小,对计算工其的要求不高12。FIR 滤波器设计则一般没有封闭形式的设计公式。窗口法虽然仅仅对窗口函数可以给出计算公式,但计算通阻带衰减等仍无显式表达式。 ,一般,FIR 滤波器的设计只有计算程序可循,因此对计算工具要求较高,没有电子计算机的程序功能是很困难的。然而这个特点又带来相反的一面,IIR 滤波器设计简单,主要用以设计具有片段常数特性的滤波器,如低通、高通、带通及带阻等。而 FIR 滤波器则要灵活得多,尤其是频率采样设计法更容易适应各种幅度特性和相位特性的要求,可以设计出理想的正交变换、理想微分、线性调频等各种重要网络。基于以上比较,IIR 和 FIR 各有优缺点,本文采取了 IIR 滤波器。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 11 页 共 45 页3.23.2 数字滤波器设计方法数字滤波器设计方法 数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR 数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。所以 IIR 滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。当然,IIR 滤波器也可以采取直接设计的方法。3.2.1 数字滤波器设计的基本步骤FIR 滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。IIR 滤波器的特征是具有无限持续时间的冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev 逼近法等等。随着 MATLAB 软件尤其是 MATLAB 的信号处理工具箱的不断完善,使数字滤波器的计算机辅助设计有了可能。 数字滤波器设计的基本步骤如下。(I)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在那很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应,幅度指标主要以两种方式给出:第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于 FIR 滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。(II)逼近确定了技术指标后就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。 (III)性能分析上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 12 页 共 45 页3.2.2 滤波器的 MATLAB 设计在对滤波器实际设计时,整个过程的运算量是很大的。当滤波器阶数比较高时,计算量比较大,设计过程中改变参数或滤波器类型时都要重新计算。设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特性,运算量也是很大的。平时所要没计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断的调整,以达到设计的最优化。在这种情况下,滤波器的设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计。利用 MATLAB 强大的计算功能进行计算机辅助设计可以快速有效的设计数字滤波器大大的简化了计算量,直观简使13。 利用 MATIaAB 信号处理工具箱进行数字滤波器设计总的来说有三种方法:程序设计法、IDATooI 设计法和 SPTooI 设计法。程序设计法是由设计者通过编写程序,利用 MATLAB 信号处理工具箱提供的各种窗函数、滤波器设计函数和滤波器实现函数来完成滤波器的设计,要求设计者熟悉工具箱的各种函数,具有一定的编程能力。FDATooI 设计法和 SPTooI 设计法相对比较简单,FDATooI 工具箱和 SPToaI 工具箱具有交互式的友好设计界面,只要填入设计参数点击按钮,相应的滤波器就设计完成了。为了能够熟练掌握 MATLAB 程序设计语言,本文采取了程序设计法。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 13 页 共 45 页4.4. 音频信号频谱分析的软件实现音频信号频谱分析的软件实现4.14.1 数字滤波器设计数字滤波器设计数字滤波器有 IIR 和 FIR 滤波器两种,本文采用 IIR 数字滤波器。设计 IIR 数字滤波器时可以采取两种方法,一种是通过先设计模拟滤波器,然后再通过模拟滤波器到数字滤波器的映射,将模拟滤波器转换为数字滤波器。另一种是调用直接设计 IIR 数字滤波器的函数,直接设计 IIR 数字滤波器。常用的模拟滤波器有 Butterworth(巴特沃思)滤波器、chebyshev(切比雪夫)I 滤波器、chebyshev(切比雪夫)II 滤波器及椭圆函数滤波器。模拟滤波器变换成数字滤波器有两种方法,一种是双线性变换实现模拟滤波器到数字滤波器的变换函数 bilinear,一种是冲击响应不变法实现模拟到数字滤波器的变换函数 impinvar。直接设计 IIR 数字滤波器的函数有:Butterworth 数字滤波器设计函数butter,chebyshev I(通带等波纹)设计函数 cheby1,chebyshev II(阻带等波纹)设计函数 cheby2,椭圆滤波器设计函数 ellip。本文采取调用直接设计 IIR 数字滤波器函数的方法设计数字滤波器。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 型滤波器设计函数 cheby1 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 14 页 共 45 页调用格式: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 阶的数字滤波器,其通带为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,Rp,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 时)滤波器。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 15 页 共 45 页4.1.5 滤波器频率响应数字滤波器频率响应函数 freqz,freqz 用于计算矢量 a 和 b 构成的数字滤波器的复频率响应。 freqz 调用格式:freqz(b,a,n,fs)本文设计低通滤波器用的是椭圆滤波器,其频率响应如图 4.1。050100150200250300350400450500-300-200-1000Frequency (Hz)Phase (degrees)050100150200250300350400450500-80-60-40-200Frequency (Hz)Magnitude (dB)图 4.1 低通滤波器的频率响应 低通滤波器的通带范围是 01000Hz,通带波纹小于 3dB,阻带为-30dB。高通滤波器采用的是 chebyshev II 型滤波器,其频率响应如图 4.2。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 16 页 共 45 页050100150200250300350400450500-2000200400Frequency (Hz)Phase (degrees)050100150200250300350400450500-100-500Frequency (Hz)Magnitude (dB)图 4.2 高通滤波器的频率响应 高通滤波器的截止频率为 3000HZ,采样频率是 1000Hz。 带通滤波器采用的是 butter 滤波器,其频率响应如图 4.3。 050100150200250300350400450500-1500-1000-5000Frequency (Hz)Phase (degrees)050100150200250300350400450500-400-2000200Frequency (Hz)Magnitude (dB)图 4.3 带通滤波器的频率响应带通滤波器的通带范围是 10002500Hz,阻带的上下边频分别是 500Hz 和3000Hz。通带波纹小于 3dB,阻带为-30dB。带阻滤波器采用的是 butter 滤波器,其频率响应如图 4.4。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 17 页 共 45 页050100150200250300350400450500-1500-1000-5000Frequency (Hz)Phase (degrees)050100150200250300350400450500-300-200-1000100Frequency (Hz)Magnitude (dB)图 4.4 带阻滤波器的频率响应 阻带范围为 5003000Hz,通带上限大于 2500Hz,下限小于 1000Hz,通带波纹小于 3dB,阻带为-30dB。4.24.2 音频信号频谱分析音频信号频谱分析4.2.1 音频信号读入和播放MATLAB 可支持两种格式的输入输出:NeST/SUN(后缀为“.au”)和 Microsoft WAV 文件(后缀为“.wav” ) 。本文采用的是 WAV 声音文件15。wavread 用于读取 Microsoft 的扩展名为“.wav”的声音文件,其调用格式如下:y=wavread(file)其作用是从字符串 file 所指定的文件路径读取 wave 文件,将读取的采样数据送到 y 中。若 file 中无“.wav”扩展名,则该命令自动将指定文件名后加上“.wav”扩展名。y,fs,nbits=wavread(file);其作用是返回采样率和每个采样的比特数。Wavplay 利用 Windows 音频输出设备播放声音,其调用格式是:1) wavplay(y,fs);以采样频率 fs 向 Windows 音频设备发送向量信号。标准的音频采样率有:8000、11025、22050 和 44100HZ。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 18 页 共 45 页2) wavplay (y);自动采样率为 11025HZ。4.2.2 MATLAB 实现音频信号的频谱分析及可视化a.对音频信号进行频谱分析要调用 fft(快速傅立叶变换),调用格式:y=fft(x);y=fft(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)各音频信号的幅度谱和相位谱如下010020030040050060000.20.40.60.811.21.41.61.82位 位 位 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 19 页 共 45 页图 4.5 通过滤波器前音频信号 1 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.6 通过滤波器前音频信号 1 的相位谱010020030040050060000.511.522.533.544.5位 位 位 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 20 页 共 45 页图 4.7 通过滤波器前音频信号 2 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.8 通过滤波器前音频信号 2 的相位谱010020030040050060001234567位 位 位 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 21 页 共 45 页图 4.9 通过滤波器前音频信号 3 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.10 通过滤波器前音频信号 3 的相位谱各滤波器的幅度谱和相位谱如下 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 22 页 共 45 页010020030040050060000.10.20.30.40.50.60.70.80.91位 位 位 位 位 位 位 位 位图 4.11 低通滤波器的幅度谱0100200300400500600-4-3-2-101234位 位 位 位 位 位 位 位 位图 4.12 低通滤波器的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 23 页 共 45 页010020030040050060000.20.40.60.811.21.4位 位 位 位 位 位 位 位 位图 4.13 高通滤波器的幅度谱0100200300400500600-4-3-2-101234位 位 位 位 位 位 位 位 位图 4.14 高通滤波器的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 24 页 共 45 页010020030040050060000.20.40.60.811.21.4位 位 位 位 位 位 位 位 位图 4.15 带通滤波器的幅度谱0100200300400500600-4-3-2-101234位 位 位 位 位 位 位 位 位图 4.16 带通滤波器的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 25 页 共 45 页010020030040050060000.20.40.60.811.21.4位 位 位 位 位 位 位 位 位图 4.17 带阻滤波器的幅度谱0100200300400500600-4-3-2-101234位 位 位 位 位 位 位 位 位图 4.18 带阻滤波器的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 26 页 共 45 页4.2.3 IIR 数字滤波器滤波及滤波后各信号的频谱可视化 音频信号通过 IIR 数字滤波器需要调用 filter 函数,调用格式: y=filter(b,a,x)filter 采用数字滤波器对数据进行滤波,既可用于 IIR 滤波器也可用于 FIR 滤波器。y=filter(b,a,x)利用给出的矢量 a 和 b,对 x 中的数据进行滤波,结果放入y 矢量。下面给出各音频信号通过各滤波器后的幅度谱和相位谱。010020030040050060000.20.40.60.811.21.4位 位 位图 4.19 通过低通滤波器后音频信号 1 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.20 通过低通滤波器后音频信号 1 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 27 页 共 45 页010020030040050060000.20.40.60.811.21.41.61.8位 位 位图 4.21 通过高通滤波器后音频信号 1 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.22 通过高通滤波器后音频信号 1 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 28 页 共 45 页010020030040050060000.20.40.60.811.21.41.61.8位 位 位图 4.23 通过带通滤波器后音频信号 1 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.24 通过带通滤波器后音频信号 1 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 29 页 共 45 页010020030040050060000.20.40.60.811.21.41.61.8位 位 位图 4.25 通过带阻滤波器后音频信号 1 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.26 通过带阻滤波器后音频信号 1 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 30 页 共 45 页010020030040050060000.511.522.533.5位 位 位图 4.27 通过低通滤波器后音频信号 2 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.28 通过低通滤波器后音频信号 2 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 31 页 共 45 页010020030040050060000.020.040.060.080.10.120.140.16位 位 位图 4.29 通过高通滤波器后音频信号 2 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.30 通过高通滤波器后音频信号 2 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 32 页 共 45 页010020030040050060000.20.40.60.811.21.41.61.82位 位 位图 4.31 通过带通滤波器后音频信号 2 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.32 通过带通滤波器后音频信号 2 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 33 页 共 45 页010020030040050060000.511.522.533.54位 位 位图 4.33 通过带阻滤波器后音频信号 2 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.34 通过带阻滤波器后音频信号 2 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 34 页 共 45 页010020030040050060000.511.522.533.544.55位 位 位图 4.35 通过低通滤波器后音频信号 3 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.36 通过低通滤波器后音频信号 3 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 35 页 共 45 页010020030040050060000.020.040.060.080.10.120.140.160.180.2位 位 位图 4.37 通过高通滤波器后音频信号 3 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.38 通过高通滤波器后音频信号 3 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 36 页 共 45 页010020030040050060000.511.522.5位 位 位图 4.39 通过带通滤波器后音频信号 3 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.40 通过带通滤波器后音频信号 3 的相位谱 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 37 页 共 45 页010020030040050060001234567位 位 位图 4.41 通过带阻滤波器后音频信号 3 的幅度谱0100200300400500600-4-3-2-101234位 位 位图 4.42 通过带阻滤波器后音频信号 3 的相位谱 通过比较各信号通过滤波器前后的频谱特性,可以看出信号通过滤波器后的幅频等于信号通过滤波器之前的幅频与滤波器本身的幅频的乘积;而信号通过滤波器后的相频等于信号通过滤波器之前的相频与滤波器本身的相频的和。 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 38 页 共 45 页4.34.3 界面设计界面设计4.3.1 软件流程图IIR.mIIR11.mIIR12.mIIR21.mIIR22.mIIR31.mIIR32.mIIR4.mIIR5.mlp_set11,hp_set11,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.43 软件流程图 本本科科毕毕业业设设计计说说明明书书(论论文文) 第 39 页 共 45 页进入 MATLAB
展开阅读全文