FIR数字低通滤波器的窗口法设计算法与实现_第1页
FIR数字低通滤波器的窗口法设计算法与实现_第2页
FIR数字低通滤波器的窗口法设计算法与实现_第3页
FIR数字低通滤波器的窗口法设计算法与实现_第4页
FIR数字低通滤波器的窗口法设计算法与实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要:21、开发工具以及原理简介21.1 mablab简介:21.2 gui设计工具简介21.3 窗口法设计fir滤波器的原理简介:32、基本参数的设置32.1根据阻带衰减值选择不同的窗函数32.2 过渡带宽与滤波器阶次N的关系:2k/N,其中wswp;33、设计算法以及实现过程33.1 gui界面设计33.2 后台程序控制43.2.1 为自己需要用到的变量进行初始化53.2.2核心功能代码的编写53.2.2.1 对参数进行处理53.2.2.2 完成本设计的中心功能,包括窗口类型的选择,滤波器的设计,以及相关结果的回显64.设计原理85.调试结果9FIR数字低通滤波器的窗口法设计算法与实现

2、摘要:本文主要介绍了使用计算软件matlab实现fir数字滤波器的窗口法设计算法。核心内容是利用matlab中的guide命令调用gui界面进行可视化设计并且利用后台编程实现函数的调用,参数的输入,结果输出等功能,同时根据阻带衰减值确定选用何种类型的窗函数设计滤波器。数字滤波器的设计是DSP课程以及工程应用中的重要内容,同时fir数字滤波器以其良好的线性相位特性而得到更加广泛的应用,由于fir滤波器的单位抽样响应是有限长的,因此滤波器一定是稳定的,这在工程上同样是非常重要的。另外,由于fir滤波器单位冲激响应是有限长的,因而可以用快速傅立叶变换算法来实现过滤信号。Fir数字滤波器的设计主要由两

3、种常用方法,一是窗函数法,一是频率变换法。窗口法设计能更好的满足工程上的实际应用。而作为工程上的应用,软件模拟是必不可少的。在这种情况下,功能强大的计算软件matlab受到广大用户的青睐。另外,除了利用mablab的基本功能之外,使用matlab的界面设计工具gui进行窗口设计也是本设计的特点之一关键词:fir数字滤波器 matlab gui界面操作 窗口法1、开发工具以及原理简介1.1 mablab简介:MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号

4、处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。此外,mablab还具有强大的可编程能力,可以通过编写相关程序来实现算法或者实现界面的控制。1.2 gui设计工具简介图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作发生变化。除此之外,要实现gui设计的功能,

5、还必须进行后台的编程进行控制。1.3 窗口法设计fir滤波器的原理简介:基本原理是对iir滤波器进行截取。即对无限长冲激响应数字滤波器进行有限化,用一各有限长的窗口函数w(n)来截取,如果设fir滤波器的冲激响应为h(n),iir数字滤波器的冲激响应为hd(n),那么窗函数法的基本原理可表达为:。2、基本参数的设置窗口法设计滤波器过程中的主要参数有以下几个:通带截至频率,阻带起始频率,阻带衰减,过渡带宽等。2.1根据阻带衰减值选择不同的窗函数根据阻带衰减的不同要求应选择不同的窗函数,其选择依据如下:设阻带衰减为,则当21时,选择矩形窗;21=25时,选择三角形窗;25=44时采用汉明窗,44=

6、53时选用海明窗,53=74时选择布莱克曼窗,74=80时选择恺撒窗。2.2 过渡带宽与滤波器阶次N的关系:2k/N,其中wswp;3、设计算法以及实现过程本部分是整个设计说明书的核心部分,将重点介绍本设计的详细过程。3.1 gui界面设计在matlab命令窗口中输入guide命令,弹出如下界面:可以创建新界面或者打开已经存在的gui图形。初次使用,选择“create new gui”项,默认空白界面,确认后即可得到空白gui模板。进入模板后即可首先进行可视化设计。可视化设计的基本思想是按照设计方案,将预计用到的变量、参数设计到界面中,并进行相关的设置,以便后续操作的方便与连贯。设计完成后的界

7、面:3.2 后台程序控制 完成界面设计之后,本次设计的最核心部分,也是难度最大的部分也就开始了。Gui界面设计成功,是本次设计的基础部分。但是要实现相关的功能,必须依靠后台编程。在界面保存之后,系统将自动生成部分代码,以便操作者更好的完成相关操作。后台编程的主要目的是通过特定的程序达到控制界面中控件的功能。根据设计的要求,后台编程的主要目的是实现参数输入,滤波器阶数的计算,窗函数的选择,以及完成滤波器设计后的幅度响应图的输出。由于编程与界面设计相关联,因此如何在系统自动生成的代码中插入自己编写的代码也是应该考虑的问题。编程主要分为以下几个步骤:3.2.1 为自己需要用到的变量进行初始化使其初始

8、内容为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(hObj

9、ect,String);guidata(hObject, handles); 在这期间,可以对相应的变量进行设置,当输入的变量不符合标准时,弹出提示:if handles.edit1=1 msgbox(通带截止频率必须是0到1之间的数,输入错误,error,modal);end 通带截止频率和阻带起始频率都必须是01之间的数值。由于参数初始化的代码大部分都是由系统自动生成,因此在这方面的工作量相对较少。主要就是对自己的参数进行进一步的熟悉,同时把相关的参数标准进行设置,以便后续工作更好的进行。3.2.2核心功能代码的编写 核心代码要实现的功能有:3.2.2.1 对参数进行处理 对输入的参数进行

10、初步处理,以生成更直观的数据,便于后台继续操作: 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 完成本设计的中心功能,包括窗口类型的选择,滤波器的设计,以及相关结果的回显本部分采用分支结构实现,以阻带截止频率为判断标准,代码实现如下:该段实现选定矩形窗,并且进行滤波器设计以及生成幅度响应

11、图的功能if handles.edit421&handles.edit425&handles.edit444&handles.edit453&handles.edit474&handles.edit4=80set(handles.edit7,string,凯泽窗);N=2*pi*p(6)/w;N=ceil(N);set(handles.edit5,string,N)hn=fir1(N,wc/pi,kaiser(N+1,handles.edit8);%设计滤波器set(handles.listbox1,string,hn); %回显滤波器系数H,w=freqz(hn,1,256);plot(w/

12、pi,20*log10(abs(H);title(凯泽窗); gridaxis(0,1,-180,1);xlabel(w/pi);ylabel(幅度(dB);end以上代码实现了本设计的核心功能 ,其中最主要的一部分在于滤波器的设计,也就是函数hn=fir1()的调用,使用该函数可以计算生成滤波器的系数,从而利用freqz函数进行分析,可以得出幅度响应。4.设计原理窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列。窗函数法设计FIR滤波器是在时域进行的,因而必须由理想的频率响应Hd (ejw)推导出对应的单位取样响应Hd(n),再设计一个FIR数字滤波器的单

13、位取样响应h(n)去逼近Hd(n)。设计FIR滤波器时,首先根据阻带衰减的要求选择合适的窗口序列,确定窗口后,便可知其主瓣宽度,根据给定的过渡带,可确定窗口的宽度N。工程中常用的窗函数共有5种,即矩形窗、汉宁(Hanning)窗、海明(Hamming)窗、布拉克曼(Blackman)窗和凯泽(Kaiser)窗。设计中常用的几种窗函数: 矩形窗w(n)=RN(n); Hanning窗 Hamming窗; Blackmen窗; 凯泽(Kaiser)窗设计方案: 要设计滤波器,就先通过窗函数得到,再根据给定的阻带衰减和过渡带宽选定合适的窗口,求出N值。主要设计步骤为: (1)根据技术要求确定逼近理想

14、滤波器的单位冲激响应hd(n). (2)根据对过渡带及阻带衰减的要求,选择窗函数w(n)的形式和估计窗口长度N。 (3)对理想滤波器进行加窗,计算滤波器的单位取样响应h(n)。 (4)验算技术指标是否满足要求。5.调试结果 调试结果按照通带截止频率和阻带起始频率相同,但是阻带衰减不同,也就是不同窗口类型,进行比较: 5.1 全部设置 通带截止频率0.01,阻带起始频率0.09,然后设置不同的阻带衰减进行比较:如上图:矩形窗函数,通带截止频率为0.01,阻带起始频率为0.09,通过计算得阶数N23,结果图形可以看出,矩形窗衰减较小,通带,阻带有明显误差。分析:滤波器阶数N,前面已经提到N2k/wswp,其中k即为p=0.9,2.1,3.1,3.3,5.5,5; 中对应于某一窗的系数。 通过比较可以发现,矩形窗以及三角形窗都不能达到很高得要求,包括精确度,衰减度等各方面。此外,通过上面的结果还可以看出,要想实现较高的阻带衰减,必须增加滤波器的阶数,也就是说,阻带衰减的提高是以经济成本增加为代价的

温馨提示

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

评论

0/150

提交评论