1、王娜 :基于 MATLAB 的数字滤波器设计 第 1 页 共 24 页 考试序列号 公选课(论文) 基于 Matlab 的滤波器设计 学 院 轻工化工学院 专 业 应用化学 年级班别 2015 级( 1)班 学 号 3115001548 学生姓名 容建鸿 指导教师 李晓端 2015 年 6 月 15 日 山西农业大学毕业论文 第 2 页 共 24 页 摘 要 MATLAB 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言 ,MATLAB 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是 MATLAB 还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分
2、析、处理和设计。 信号的采集、处理、传输、显示和存储等有一个系统的体现,做了如下了的设计内容:录制或选取一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画 出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。 关键词 : MATLAB,语音信号处理,滤波器设计 Abstract MATLAB language is a widely used in engineer
3、ing calculation and numerical analysis domain new languages, and MATLAB powerful functions, easy to operate, programming, high efficiency, favored by the vast number of scientific and technical workers welcome. Especially MATLAB also has signal analysis toolbox, without the need to have strong abili
4、ty of programming, it can be easily signal analysis, processing and design.In order to the student to the signal collection, processing and transmission, display and storage, etc have a system of mastery and understanding, meticulously arranged curriculum design of content: making a video persona l
5、own voice signal, and then the recording of signal sampling, Draw after speech signal sampling time domain waveform and spectrum diagrams, Given filter performance index, the window function method and bilinear transformation design filter, and draw the filter frequency response, Then use the design
6、 of your own filters to sampled signal for filter and draw the filtered signal waveform and spectrum, and time domain to filter the signal, compared before and after the analysis of signal changes, Playback speech signal, Finally, design a signal processing system 王娜 :基于 MATLAB 的数字滤波器设计 第 3 页 共 24 页
7、 interface. Keywords: MATLAB, the speech signal processing 目 录 1.绪论 - 4 1.1 研究背景 - 4 1.2 研究的目的与意义 - 4 2 MATLAB 简介 - 5 2.1.1Matlab 的特点 - 5 2.1.2Matlab 的功能 - 6 2.2 滤波器 - 6 2.2.1 滤波器 - 7 2.2.2 滤波器原理 - 7 3. 滤波器的设计 - 8 3.1 FIR 滤波器的设计 - 8 3.1.1 FIR 滤波器的特点 - 8 3.1.2 窗函数发设计 FIR 滤波器 - 9 3.1.3 FIR 低通滤波器 - 10
8、3.1.4 FIR 高通滤波器 - 11 3.1.5 FIR 带通滤波器 - 13 3.2 IIR 滤波器的设计 - 14 3.2.1 IIR 滤波器的特点 - 14 3.2.2 双线性法设计 IIR 数字滤波器 - 15 3.2.3 IIR 低通滤波器 - 15 3.2.4 高通滤波器 - 17 3.2.5 带通滤波器 - 19 4. 语音信号的处理 - 21 4.1 主要函数介绍 - 21 4.2 仿真 - 22 5 总结与展望 - 23 参考文献 - 24 山西农业大学毕业论文 第 4 页 共 24 页 1.绪论 1.1 研究背景 当今,数字信号处理 1 (DSP: Digtal Sig
9、nal Processing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科:它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。 数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中 遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号,等等。 数字滤波技术是数字信号分析、处理技术的重要分支 2-3。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安
10、全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。 MATLAB 是美国 Math works 公司推出的一套用于工程计算的可视 化高性能语言与软件环境。 MATLAB 为数字滤波器的研究与应用提供了一个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。 MATLAB 退出的工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应用,其中的信号处理、图像处理、小波等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。 1.2 研究的目的与意义 几乎在所有的工程技术领
11、域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。信号处理的目的一般是对信号进行分析、变换、综合 、估值与识别等。如何在较强的噪声背景下提取出真正的信号或信号的特征,并将其应用于工程实际王娜 :基于 MATLAB 的数字滤波器设计 第 5 页 共 24 页 是信号处理的首要任务。 数字滤波器,在数字信号处理中有着广泛的应用,因此,无论是在理论研究上还是在如通讯、 HDTV(高清晰度电视 )、雷达、图象处理、数字音频等实际应用上都有着美好的技术前景和巨大的实用价值。 基于 matlab 实现数字滤波设计,可通过修改滤波器的参数十分方便地改变滤波器的特性,因此我们有必要对
12、滤波器的设计方法进行研究,理解其工作原理优化设计方法,设计开发稳定性好的滤波器系统。掌握滤波器的设计 技术和原理能为在通信领域、信号处理领域等诸多领域中对数字滤波器的设计提供技术和准备,这不仅具有重要的理论意义同时还具有重要的现实意义。 2 MATLAB简介 Matlab是矩阵实验室( Matrix Laboratory)的意思, 是由美国 MathWorks公司于 1982 年推出的一套高性能的数值计算和可视化软件 ,它集数值分析、矩阵运算、信号处理和图形显示于一体。 在 Matlab内部配备了涉及到自动控制、信号处理和计算机仿真等种类繁多的工具箱 ,所以 Matlab的应用非常广泛 ,它可
13、涉足于数值分析、控制、信号分析和 通信等多种领域。Matlab不仅可完成基本代数运算操作 ,而且还可完成矩阵函数运算 ,提供丰富的实用函数命令。另外 ,用户还可以根据自己的需要编写函数。 MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。工具箱提供了众多功能强大的函数,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。 2.1.1Matlab的特点 一种语言之所以能如此迅速地普及 ,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特
14、点,正如同 FORTRAN和 C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的 MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。 MATLAB最突出的特点就是简洁。 MATLAB用更直观的,符合人们思维习惯的代码,代替了 C和 FORTRAN语言的冗长代码。 MATLAB给用户带来的是最直观,最简洁的程序开发环境。 山西农业大学毕业论文 第 6 页 共 24 页 2.1.2Matlab的功能 MATLAB 包含的内容非常丰富,功能强大,可以概括为以下几 个方面: ( 1)可以在多种操作系统下运行,如 DOS、 Windows 9
15、5/98/2000/2000/NT、 Compaq Alpha、 LinuxSun Solaris 等。 ( 2)有超过 500 种的数学、统计、科学及工程方面的函数,使用简单快捷,并且有很强的用户自定义函数的能力。 ( 3)有强大的图形绘制和可视化功能,可以进行视觉数据处理和分析,进行图形、图像的显示及编辑,能够绘制二维、三维图形,使用户可以制作高质量的图形,从而写出图文并茂的文章。 ( 4)有和用其他高级语言(如 C, C+, FORTRAN, JAVA) 编写的外部程序相接口的能力,也可把 MATLAB 程序转换成上述高级语言的子程序。 ( 5)有从外部文件及外部硬件设备读入数据的能力。
16、 ( 6)有丰富的网络资源,从相关的 Web 网站可以直接获得全套的 MATLAB 联机帮助文件和说明书的电子文档,还可以获得各类技术支持与帮助。 ( 7)有丰富的工具箱 toolbox。各个领域的专家学者将众多学科领域中常用的算法编写为一个个子程序,即 m 文件,这些 m文件包含在一个个工具箱中。其工具箱可以分为两大类,即功能性工具箱和科学性工具箱。功能性工具箱主要用来扩充 MATLAB 的符号计算 、图形可视化、建模仿真、文字处理等功能以及与硬件实时交互的功能。学科性工具箱是按学科领域来分类的,如信号处理、控制、通信、神经网络图像处理、系统辨识、鲁棒控制、模糊逻辑、小波等工具箱。 可以看出
17、 MATLAB 是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外, MATLAB 还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。用户可以根据自己的工作任务,开发自己的工具箱。在国际学术界, MATLAB 已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到 MATLAB 的应用。 在设计研究单和工业部门, MATLAB 被认作进行高效研究、开发的首选软件工具。如美国 National Instruments 公司信号测量、分析软件 LabVIEW, Cadence 公
18、司信号和通信分析设计软件SPW 等,或者直接建筑在 MATLAB 之上,或者以 MATLAB 为主要支撑。 2.2 滤波器 王娜 :基于 MATLAB 的数字滤波器设计 第 7 页 共 24 页 2.2.1 滤波器 滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的交流电。您可以通过基本的滤波器积木块 -二阶通用 滤波器传递函数,推导出最通用的滤波器类型:低通、带通、高通、帯阻和椭圆型滤波器。 传递函数的参数 f0、 d、 hHP、 hBP 和 hLP,可用来构造所有类型的滤波器。转降频率 f0 为 s项开始占支配作用时的频率。设计者将低于此值的频率看作是低频,而将高于此值的
19、频率看作是高频,并将在此值附近的频率看作是带内频率。阻尼 d 用于测量滤波器如何从低频率转变至高频率,它是滤波器趋向振荡的一个指标。实际阻尼值从 0 至 2 变化。高通系数 hHP 是对那些高于转降频率的频率起支配作用的分子的系数。带通系数 hBP是对那些在转降频率附近的频率 起支配作用的分子的系数。低通系数 hLP 是对那些低于转降频率的频率起支配作用的分子的系数。设计者只需这 5 个参数即可定义一个滤波器。 数字滤波器可以用查分方程、单位取样响应以及系统函数等表示。对于研究系统的实现方法,即它的运算结构来说,用框图表示最为直接。 一个给定的输入输出关系,可以用多种不同的数字网络来实现。在不
20、考虑量化影响时,这些不同的实现方法是等效的;但在考虑量化影响时,这些不同的实现方法性能上就有差异。因此,运算结构是很重要的,同一系统函数 H(z),运算结构的不同,将会影响系统的精度、误差、稳定性、经 济性以及运算速度等许多重要性能。 IIR(无限冲激响应 )滤波器与 FIR(有限冲激响应 )滤波器在结构上有自己不同的特点,在设计时需综合考虑。 2.2.2 滤波器原理 数字滤波器可以用查分方程、单位取样响应以及系统函数等表示。对于研究系统的实现方法,即它的运算结构来说,用框图表示最为直接。 一个给定的输入输出关系,可以用多种不同的数字网络来实现。在不考虑量化影响时,这些不同的实现方法是等效的;
21、但在考虑量化影响时,这些不同的实现方法性能上就有差异。因此,运算结构是很重要的,同一系统函数 H(z), 运算结构的不同,将会影响系统的精度、误差、稳定性、经济性以及运算速度等许多重要性能。 IIR(无限冲激响应 )滤波器与 FIR(有限冲激响应 )滤波器在结构上有自己不同的特点,在设计时需综合考虑。 数字滤波器是离散系统,所处理的信号是离散信号。一般是与离散系统或网络可以用差分方程、单位脉冲响应以及系统函数进行。如果系统输入、输出服从 N 阶差分方程: 山西农业大学毕业论文 第 8 页 共 24 页 Mk kbny 0)( )( knx + )(1 knyaNk k 则其 系统函数,及滤波器
22、的传输函数为: 由此实现一个数字滤波器需要如下三种基本的运算单元: ( 1)加法器:此元件有两个输入和一个输出,三个或多个信号相加由相连的的两个输入加法器实现; ( 2)乘法器(增益):这是一个单入单出元件,由于乘 1 时易于理解,因此,这里明确处处示意图; ( 3)延迟单元 (移位或记忆 ):此元件通过它的信号延迟一个样本,是由移位寄存器实现的。 3. 滤波器的设计 3.1 FIR 滤波器的设计 FIR 滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特 性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此, FI
23、R 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 FIR滤波器设计的任务是选择有限长度的 ()hn ,使传输函数 ()jwHe 满足一定的幅度特性和线性相位要求。由于 FIR 滤波器很容易实现严格的线性相位,所以 FIR 数字滤波器设计的核心思想是求出有限的脉冲响应 来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: ( 1) 根据实际要求确定数字滤波器性能指标; ( 2) 用一个因果稳定的系统函数去逼近这个理想性能指标; ( 3) 用一个有限精度的运算去实现这个传输函数。 3.1.1 FIR 滤波器的特点 )
24、()(1)(10zXzYzazbzH NkkkMkkk王娜 :基于 MATLAB 的数字滤波器设计 第 9 页 共 24 页 有限长单位冲激响应( FIR)滤波器有以下特点: ( 1) 系统的单位冲激响应在有限个 n值处不为零; ( 2) 系统函数在处收敛,极点全部在 z = 0 处(因果系统); ( 3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如 频率抽样结构)也包含有反馈的递归部分。 设 FIR 滤波器的单位冲激响应为一个 N点序列,则滤波器的系统函数为: ( ) ( )H z h n z n 就是说,它有( N 1)阶极点在 z = 0 处,有( N 1)个零点位
25、于有限 z平面的任何位置。 3.1.2 窗函数发设计 FIR 滤波器 设计 FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。 FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应 ()jwdHe ,设计一个 FIR数字滤波器频率响应 ()jwHe ,去逼近理想的滤波响应 ()jwdHe 。然而,窗函数法设计 FIR数字滤波器是在时域进行的,因而必须由理想的频率响应 ()jwdHe 推导出对应的单位取样响应 ()dhn,再设计一个 FIR数字滤波器的单位取样响应 ()hn 去逼近 ()dhn。设计过程如下: * ( )( ) ( ) ( ) ( )I D T F F T
26、w n D T F TjjddH e h n h n H e ( 3-1) 加窗的作用是通过把理想滤波器的无限长脉冲响应 ()dhn乘以窗函数 ()wn 来产生一个被截断的脉冲响应,即 ( ) ( ) ( )dh n h n w n 并且对频率响应进行平滑。 MATLAB工具箱提供的窗函数有:矩形窗 (Rectangularwindow)、三角窗 (Triangular window)、布拉克曼窗 (Blackman window)、汉宁窗 (Hanningwindow)、海明窗 (Hamming window)、凯塞窗 (Kaiser window)、切比雪夫窗 (Chebyshev win
27、dow)。 窗函数主要用来减少序列因截断而产生的 Gibbs效应。但当这个窗函数为矩形时,得到的 FIR滤波器幅频响应会有明显的 Gibbs效应,并且任意增加窗函数的长度(即 FIR滤波器的抽头数) Gibbs效应也不能得到改善。为了克服这种现象 ,窗函数应该使设计的滤波器: ( 1) 频 率特性的主瓣宽度应尽量窄 ,且尽可能将能量集中在主瓣内; ( 2) 窗函数频率特性的旁瓣趋于 的过程中,其能量迅速减小为零 4。 山西农业大学毕业论文 第 10 页 共 24 页 3.1.3 FIR 低通滤波器 ( 1) 主要 程序 fp=1000;fs=1200;As=120;Fs=22050; %确定技
28、术指标 wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; %求归一化频率 wo=ws-wp; %求过渡带 beta=0.1102*(As-0.87); %求凯泽窗函数参数 N=ceil(As-8)/2.285/wo); %由过渡带决定 N的值 wc=(wp+ws)/2/pi; b=fir1(N,wc,kaiser(N+1,beta); Hw,w=freqz(b,1); figure(1); plot(w*Fs/2/pi,20*log10(abs(Hw); %绘制频率响应曲线 grid ; title(FIR低通滤波器 ); ( 2) 程序流程图 凯泽窗低通滤波器设计流程图如图所示: 开始 确定模拟低通滤波器的技术指标 技术指标从模拟到数字转换 计算中心频率、过渡带宽,设定旁瓣高度 alfa 利用 fir1函数确定滤波器的实际单位脉冲响应 利用 freqz函数确定幅频响应