FIR数字低通滤波器的窗口法设计算法与实现

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

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

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

资源描述

目录摘要:..............................................................................................................................................21、开发工具以及原理简介.............................................................................................................21.1mablab简介:..................................................................................................................21.2gui设计工具简介............................................................................................................21.3窗口法设计fir滤波器的原理简介:...........................................................................32、基本参数的设置.........................................................................................................................32.1根据阻带衰减值选择不同的窗函数................................................................................32.2过渡带宽与滤波器阶次N的关系:=2k/N,其中=ws-wp;......................33、设计算法以及实现过程.............................................................................................................33.1gui界面设计....................................................................................................................33.2后台程序控制...................................................................................................................43.2.1为自己需要用到的变量进行初始化...................................................................53.2.2核心功能代码的编写............................................................................................53.2.2.1对参数进行处理.......................................................................................53.2.2.2完成本设计的中心功能,包括窗口类型的选择,滤波器的设计,以及相关结果的回显...................................................................................................64.设计原理......................................................................................................................................85.调试结果......................................................................................................................................9FIR数字低通滤波器的窗口法设计算法与实现摘要:本文主要介绍了使用计算软件matlab实现fir数字滤波器的窗口法设计算法。核心内容是利用matlab中的guide命令调用gui界面进行可视化设计并且利用后台编程实现函数的调用,参数的输入,结果输出等功能,同时根据阻带衰减值确定选用何种类型的窗函数设计滤波器。数字滤波器的设计是DSP课程以及工程应用中的重要内容,同时fir数字滤波器以其良好的线性相位特性而得到更加广泛的应用,由于fir滤波器的单位抽样响应是有限长的,因此滤波器一定是稳定的,这在工程上同样是非常重要的。另外,由于fir滤波器单位冲激响应是有限长的,因而可以用快速傅立叶变换算法来实现过滤信号。Fir数字滤波器的设计主要由两种常用方法,一是窗函数法,一是频率变换法。窗口法设计能更好的满足工程上的实际应用。而作为工程上的应用,软件模拟是必不可少的。在这种情况下,功能强大的计算软件matlab受到广大用户的青睐。另外,除了利用mablab的基本功能之外,使用matlab的界面设计工具gui进行窗口设计也是本设计的特点之一关键词:fir数字滤波器matlabgui界面操作窗口法1、开发工具以及原理简介1.1mablab简介:MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。此外,mablab还具有强大的可编程能力,可以通过编写相关程序来实现算法或者实现界面的控制。1.2gui设计工具简介图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作发生变化。除此之外,要实现gui设计的功能,还必须进行后台的编程进行控制。1.3窗口法设计fir滤波器的原理简介:基本原理是对iir滤波器进行截取。即对无限长冲激响应数字滤波器进行有限化,用一各有限长的窗口函数w(n)来截取,如果设fir滤波器的冲激响应为h(n),iir数字滤波器的冲激响应为hd(n),那么窗函数法的基本原理可表达为:()()()hnhdnwn。2、基本参数的设置窗口法设计滤波器过程中的主要参数有以下几个:通带截至频率p,阻带起始频率s,阻带衰减,过渡带宽等。2.1根据阻带衰减值选择不同的窗函数根据阻带衰减的不同要求应选择不同的窗函数,其选择依据如下:设阻带衰减为,则当=21时,选择矩形窗;21=25时,选择三角形窗;25=44时采用汉明窗,44=53时选用海明窗,53=74时选择布莱克曼窗,74=80时选择恺撒窗。2.2过渡带宽与滤波器阶次N的关系:=2k/N,其中=ws-wp;3、设计算法以及实现过程本部分是整个设计说明书的核心部分,将重点介绍本设计的详细过程。3.1gui界面设计在matlab命令窗口中输入guide命令,弹出如下界面:可以创建新界面或者打开已经存在的gui图形。初次使用,选择“createnewgui”项,默认空白界面,确认后即可得到空白gui模板。进入模板后即可首先进行可视化设计。可视化设计的基本思想是按照设计方案,将预计用到的变量、参数设计到界面中,并进行相关的设置,以便后续操作的方便与连贯。设计完成后的界面:3.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);在这期间,可以对相应的变量进行设置,当输入的变量不符合标准时,弹出提示:ifhandles.edit1=0|handles.edit1=1msgbox('通带截止频率必须是0到1之间的数','输入错误','error','modal');end通带截止频率和阻带起始频率都必须是0——1之间的数值。由于参数初始化的代码大部分都是由系统自动生成,因此在这方面的工作量相对较少。主要就是对自己的参数进行进一步的熟悉,同时把相关的参数标准进行设置,以便后续工作更好的进行。3.2.2核心功能代码的编写核心代码要实现的功能有:3.2.2.1对参数进行处理对输入的参数进行初步处理,以生成更直观的数据,便于后台继续操作:handles.edit1=handles.edit1*pi;handles.edit2=handles.edit2*pi;w=handles.edit2-handles.edit1;%过渡带宽wc=(handles.edit2+handles.edit1)/2;%截止频率p=[0.9,2.1,3.1,3.3,5.5,5];%过渡带宽系数3.2.2.2完成本设计的中心功能,包括窗口类型的选择,滤波器的设计,以及相关结果的回显本部分采用分支结构实现,以阻带截止频率为判断标准,代码实现如下:该段实现选定矩形窗,并且进行滤波器设计以及生成幅度响应图的功能ifhandles.edit4=21set(handles.edit7,'string','矩形窗');N=2*pi*p(1)/w;N=ceil(N);%取大于或等于N的第一个整数set(handles.edit5,'string',N);hn=fir1(N,wc/pi,boxcar(N+1));%设计滤波器set(handles.listbox1,'string',hn);%回显滤波器系数[H,w]=freqz

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

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

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

×
保存成功