您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 设计并实现FIR数字滤波器
1广西科技大学数字信号课程设计设计题目:设计并实现FIR数字滤波器的窗口设计算法指导老师:学生姓名:系别:计算机工程学院班级:通信学号:日期:2目录一、摘要....................................................................................3二、开发工具以及原理简介.....................................................32.1MATLAB的简介............................................................32.2gui设计工具简介.............................................................42.3数字滤波器设计的基本步骤...........................................42.4窗口法设计fir滤波器的原理简介................................52.4.1基本参数的设置...........................................................52.4.2根据阻带衰减值选择不同的窗函数.............................52.4.3过渡带宽与滤波器阶次N的关系.................................5三、设计算法以及实现过程..................................................53.1gui界面设计.................................................................63.2后台程序控制...............................................................73.2.1为自己需要用到的变量进行初始化.........................73.2.2核心功能代码的编写.................................................73.2.2.1对参数进行处理..............................................................83.2.2.2完成本设计的中心功能,包括窗口类型的选择,滤波器的设计,以及相关结果.......................................................8四.设计原理..........................................................................10五.调试结果..............................................................................11六.总结....................................................................................14七.参考文献..........................................................................153一、摘要:本文主要介绍了使用计算软件matlab实现fir数字滤波器的窗口法设计算法。核心内容是利用matlab中的guide命令调用gui界面进行可视化设计并且利用后台编程实现函数的调用,参数的输入,结果输出等功能,同时根据阻带衰减值确定选用何种类型的窗函数设计滤波器。数字滤波器的设计是DSP课程以及工程应用中的重要内容,同时fir数字滤波器以其良好的线性相位特性而得到更加广泛的应用,由于fir滤波器的单位抽样响应是有限长的,因此滤波器一定是稳定的,这在工程上同样是非常重要的。另外,由于fir滤波器单位冲激响应是有限长的,因而可以用快速傅立叶变换算法来实现过滤信号。Fir数字滤波器的设计主要由两种常用方法,一是窗函数法,一是频率变换法。窗口法设计能更好的满足工程上的实际应用。而作为工程上的应用,软件模拟是必不可少的。在这种情况下,功能强大的计算软件matlab受到广大用户的青睐。另外,除了利用mablab的基本功能之外,使用matlab的界面设计工具gui进行窗口设计也是本设计的特点之一二、开发工具以及原理简介2.1MATLAB的简介MATLAB是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有:数学和计算算法开发建模,模拟和原形化数据分析,探索和可视化科学与工程制图应用开发,包括图形用户界面的建立MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例如C或Fortran)写一个程序的时间的一小部分。.名称“MATLAB”代表matrixlaboratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。今天,MATLAB使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。4MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟等等2.2gui设计工具简介图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作发生变化。除此之外,要实现gui设计的功能,还必须进行后台的编程进行控制。2.3数字滤波器设计的基本步骤数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数5运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。2.4窗口法设计fir滤波器的原理简介:基本原理是对iir滤波器进行截取。即对无限长冲激响应数字滤波器进行有限化,用一各有限长的窗口函数w(n)来截取,如果设fir滤波器的冲激响应为h(n),iir数字滤波器的冲激响应为hd(n),那么窗函数法的基本原理可表达为:()()()hnhdnwn。2.4.1基本参数的设置窗口法设计滤波器过程中的主要参数有以下几个:通带截至频率p,阻带起始频率s,阻带衰减,过渡带宽等。2.4.2根据阻带衰减值选择不同的窗函数根据阻带衰减的不同要求应选择不同的窗函数,其选择依据如下:设阻带衰减为,则当=21时,选择矩形窗;21=25时,选择三角形窗;25=44时采用汉明窗,44=53时选用海明窗,53=74时选择布莱克曼窗,74=80时选择恺撒窗。62.4.3过渡带宽与滤波器阶次N的关系:=2k/N,其中=ws-wp;三、设计算法以及实现过程本部分是整个设计说明书的核心部分,将重点介绍本设计的详细过程。3.1gui界面设计在matlab命令窗口中输入guide命令,弹出如下界面:可以创建新界面或者打开已经存在的gui图形。初次使用,选择“createnewgui”项,默认空白界面,确认后即可得到空白gui模板。进入模板后即可首先进行可视化设计。可视化设计的基本思想是按照设计方案,将预计用到的变量、参数设计到界面中,并进行相关的设置,以便后续操作的方便与连贯。设计完成后的界面:73.2后台程序控制完成界面设计之后,本次设计的最核心部分,也是难度最大的部分也就开始了。Gui界面设计成功,是本次设计的基础部分。但是要实现相关的功能,必须依靠后台编程。在界面保存之后,系统将自动生成部分代码,以便操作者更好的完成相关操作。后台编程的主要目的是通过特定的程序达到控制界面中控件的功能。根据设计的要求,后台编程的主要目的是实现参数输入,滤波器阶数的计算,窗函数的选择,以及完成滤波器设计后的幅度响应图的输出。由于编程与界面设计相关联,因此如何在系统自动生成的代码中插入自己编写的代码也是应该考虑的问题。编程主要分为以下几个步骤:3.2.1为自己需要用到的变量进行初始化使其初始内容为0,代码如下:set(handles.edit1,'string',0);set(handles.edit2,'string',0);set(handles.edit8,'string',0);set(handles.edit4,'string',0);set(handles.edit5,'string',0);set(handles.listbox1,'string',0);set(handles.edit7,'string',0);这一部分主要为上图中的变量进行初始化,让他们的初始值为0;然后,利用语句使这些变量可以接受输入的参数:(举例说明)handles.edit1=str2double(get(hObject,'String'));guidata(hObject,handles);在这期间,可以对相应的变量进行设置,当输入的变量不符合标准时,弹出8提示:ifhandles.edit1=0|handles.
本文标题:设计并实现FIR数字滤波器
链接地址:https://www.777doc.com/doc-5162118 .html