基于C++数字抽取滤波器的设计与实现_第1页
基于C++数字抽取滤波器的设计与实现_第2页
基于C++数字抽取滤波器的设计与实现_第3页
基于C++数字抽取滤波器的设计与实现_第4页
基于C++数字抽取滤波器的设计与实现_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

长江大学工程技术学院毕业设计(论文)题目名称基于C++数字抽取滤波器的设计与实现系部信息系专业班级电信61102班学生姓名指导教师辅导教师时间2014年9月至2015年6月目录TOC\o"1-3"\h\u6776任务书 Ⅰ31351开题报告 Ⅱ6151指导教师审查意见 Ⅲ22747评阅教师评语 Ⅳ4933答辩会议记录 Ⅴ20744中文摘要 Ⅵ26030外文摘要 Ⅶ116159前言 1210511绪论 22.14902数字抽取滤波器的研究背景与意义 22.232027数字抽取滤波器的设计与实践 32.39919数字抽取滤波器的作用与优势 32.44799数字抽取滤波器的应用现状与发展趋势 4330120数字抽取滤波器的分类及其原理分析 53.129471几种频率之间的关系 53.230547抽取与抽取滤波器的原理 63.326458两种特殊的抽取滤波器的性质分析 103.42576多级抽取滤波器的原理 12420356数字滤波器的算法设计 144.19366由模拟滤波器设计IIR数字滤波器 144.227266巴特奥兹滤波器 154.326882切比雪夫滤波器 164.423976椭圆滤波器 184.519573用matlab仿真数字滤波器 204.6576FDATool界面 204.724827用Fdatool进行带通滤波器设计 224.828779将系统函数由直接型化成级联型 254.931590二阶节系数的确定 254.1014848系数转换成二进制码 274.1132063本章小结 3057499数字抽取滤波器的实现过程 315.12811用MATLAB进行仿真 315.230429用C++进行滤波器的实现 345.2.130995抽取滤波器的界面框图 355.2.213006对话框的设计 355.2.320151对话框的编程 385.2.416671输入信号的初始化处理 415.2.529485图形的设计 425.2.628193编写绘图代码中要用的重要的语句 436800总结 4418178参考文件 4530057致谢 4613310附录 47长江大学工程技术学院毕业设计(论文)任务书系信息系专业电子信息工程班级61102班学生姓名指导教师/职称/讲师1.毕业设计(论文)题目:基于C++的数字抽取滤波器的设计与实现2.毕业设计(论文)起止时间:2014年9月1日~2015年6月1日3.毕业设计(论文)所需资料及原始数据[1]李永全、杨顺辽、孙祥娥数字信号处理[M]武汉:华中科技大学出版社,2011[2]佘新平数字电路设计、仿真、测试[M]武汉:华中科技大学出版社,2010[3]康华光电子技术基础(数字部分)[M]北京:高等教育出版社,2006[4]张志涌、杨祖樱MATLAB教程[M]北京:北京航空航天大学出版社,2009

[5]胡光书数字信号处理—理论、算法与实现[M]北京:清华大学出版社,2003

4.毕业设计(论文)应完成的主要任务(1)查阅文献,提出研究方案,2014年10月25日前完成开题报告。(2)完成数字抽取滤波器的原理、仿真、实现的各个流程的功能设计。(3)按照各个模块的功能,进行详细设计,达到设计的要求和初衷。(4)2015年5月25日前提交毕业设计(论文)初稿,要求排版格式规范,字数在15000字左右。5.长江大学工程技术学院毕业设计(论文)开题报告题目名称基于C++数字抽取滤波器的设计与实现系部信息系专业班级电信61102学生姓名指导教师辅导教师开题报告时间2014年10月25日基于C++数字抽取滤波器的设计与实现学生:,信息系指导教师:,信息系一、题目来源本题目来源于科研项目。二、研究(设计)目的和意义尤其是数字信号处理中的MATLAB和数字滤波知识。在设计过程中能综合运用所学的知识内容,进一步熟悉和掌握MATLAB的使用方法,对数字滤波器的原理以及应用有较深的了解。另外在设计过程中,可以使我学会调查研究,收集资料,根据具体要求和设计规范选择并确定设计方案,利用标准图表和手册完成设计任务,培养综合运用已经掌握的知识解决一般设计问题的能力。进一步提高合理安排时间,设计计算、绘图、编制工程预算以及使用计算机的技能。同时对语音通信和图像处理行业的有关政策方针、技术规范有了一定的了解,在计算绘图、设计说明等方面得到训练,为今后从事程序设计工作奠定了基础。三、阅读的主要参考文献[1]李永全、杨顺辽、孙祥娥.数字信号处理[M].武汉:华中科技大学出版社,2011.[2]佘新平.数字电路设计、仿真、测试[M].武汉:华中科技大学出版社,2010.[3]康华光.电子技术基础(数字部分[M].北京:高等教育出版社,2006.[4]张志涌、杨祖樱.教程[M].北京:北京航空航天大学出版社,2009.

[5][6]陈怀琛.数字型号处理教程-MATLAB释义与实现[M].北京:清华大学出版社,2004.[7]邓华.MATLAB通信仿真及应用实例解析[M].北京:人民邮电出版社,1997.[8]应用MA[M].北京:科学出版社,2001.[9]赵健、李毅、杨菊平.数字信号处理学习辅导[M].北京:清华大学出版社,2006.[10]刘加海、余建军.VisualC++程序设计基础[M].北京:科学出版社,2003.[11]罗斌.VisualC++编程技巧精选500例[M].北京:中国水利水电出版社,2005.[12]郑阿奇.VisualC++实用教程(第二版)[M].北京:电子工业出版社,2004.四、国内外现状和发展趋势自九十年代以来,由于大规模集成电路和电子技术以及信号处理技术的发展,使得数字抽取滤波器的实现已不成问题,例如在软件无线电中的应用。软件无线电技术是软件化、计算密集型的操作形式。它与数字和模拟信号之间的转换、计算速度、运算量、存储量、数据处理方式等问题息息相关,这些技术决定着软件无线电技术的发展程度和进展速度。宽带/多频段天线、A/D/A转换器件、DSP(数字信号处理器)技术及实时操作系统是软件无线电的关键技术。在软件无线电通信系统中,要达到尽可能多的以数字形式处理无线信号,必须把A/D转换尽可能地向天线端推移,这样就对A/D转换器的性能提出了更高的要求。为保证抽样后的信号保持原信号的信息,

A/D转换要满足Nyquist准则,

而在实际应用中,为保证系统更好的性能,

通常抽样率为带宽的2.5倍。例如有一个带宽50MHz的蜂窝移动通信系统,

其抽样率要达到12.5MSPS(每秒百万次抽样Million

Sample

Per

Second)以上。一般的A/D转换器难以达到这个要求。可以看出低分辨率的A/D转换器最有可能运用于软件无线电通信系统中,

但低分辨率的A/D转换能否满足信号处理的要求,

以及如何将已有的A/D转换器运用于更宽的频段也是需要进一步研究的课题。

对于第三代移动通信中WCDMA空中接口,

一个载频的带宽可以是5MHz,10MHz或20MHz,目前的A/D转换技术已经基本满足要求,

对更高的转换带宽要求,可以用并行A/D转换的方法完成。数字滤波器是对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。它按实现的网络结构或者从单位脉冲响应,分为IIR(无限脉冲响应)和FIR(有限脉冲响应)滤波器。如果IIR滤波器和FIR滤波器具有相同的性能,那么通常IIR滤波器可以用较低的阶数获得高的选择性,执行速度更快,所用的存储单元更少。但相比模拟滤波器,数字滤波器具有精确度高,使用灵活,可靠性高等优点,已广泛地应用在各个科学技术领域,如语音、通信、雷达、声纳、遥感、图像、生物医学以及许多工程应用领域。随着数字信息时代的发展,数字滤波技术已经成为一门及其重要的科学和技术领域。以往的滤波器大多采用模拟电路技术,但是模拟电路技术存在很多难以解决的问题,而采用数字滤波器则可以避免很多类似的难题,当然它在其他方面也有很多突出的优点都是模拟技术所不能及的,所以采用数字滤波器对信号进行处理是目前的发展方向。目前,数字滤波器的设计在图像处理、数据压缩等方面的应用取得了令人瞩目的成就,近年来迅速发展。五、主要研究项目与实现方法数字抽取滤波器也是典型的数字信号处理器件,对于数字抽取滤波器原理的研究可以更清晰的去理解数字信号处理方面的知识,在实践应用环节中提高数字抽取滤波器的品质可以提高整个数字处理系统的性能。因此,对数字抽取滤波器的研究是十分必要的。本文主要介绍数字信号处理中的基本概念,数字滤波器的设计方法,抽取的概念,抽取滤波的原理,和几种常用的滤波器及其使用的条件与各自的特点。可以很方便地运用MATLAB对滤波器进行理论的分析,再用VC++实现一个简单的抽取滤波的过程,设计抽取滤波器的过程是对理论知识学习的过程,也是对数字信号处理软件熟悉的过程。学会运用相关软件可以提高对理论知识的分析与理解,有助于以后的工作和学习。六、完成毕业设计(论文)所必须具备的工作条件所必须具备的工作环境:(1)计算机一台;(2)WPS软件;(3)MATLAB仿真软件;(4)C++编译器。七、达到目标(1)了解IIR数字滤波器的基本原理;(2)了解熟悉MATLAB在滤波器设计过程中的应用;(3)使用MATLAB语言设计滤波器并进行仿真;(4)利用MATLAB随时对比设计要求和滤波器特性调整参数,使其直观简单,达到滤波器的最优化;(5)使用C++对数字滤波器进行实现,完成该课题。八、课题分阶段进度计划与时间安排第一阶段:2014年9月28日-2014年10月25日,查阅文献资料,完成开题报告;第二阶段:2014年10月26日-2015年3月31日,完成概要设计和详细设计;第三阶段:2015年4月1日-2015年4月30日,利用软件进行仿真与实现;第四阶段:2015年5月1日-2015年5月20日,测试各功能模块以及系统测试;第五阶段:2015年5月21日-2015年6月1日,撰写论文。九、指导老师审查意见长江大学工程技术学院毕业设计指导教师审查意见学生姓名专业班级电信61102毕业设计(论文)题目基于C++数字抽取滤波器的设计与实现指导教师职称讲师审查日期2015.6.1审查参考内容:毕业设计(论文)的研究(设计)内容、方法及结果,难度及工作量,质量和水平,存在的主要问题与不足。学生的学习态度和组织纪律,学生掌握基础和专业知识的情况,解决实际问题的能力。毕业设计(论文)是否完成规定任务,是否达到了学士学位水平的要求,是否同意参加答辩等。审查意见:指导教师签名:评定成绩(百分制):__________分长江大学工程技术学院毕业设计(论文)评阅教师评语学生姓名专业班级电信61102毕业设计(论文)题目基于C++数字抽取滤波器的设计与实现评阅教师张佳职称讲师评阅日期评阅参考内容:毕业设计(论文)的研究(设计)内容、方法及结果,难度及工作量,质量和水平,存在的主要问题与不足。学生掌握基础和专业知识的情况,解决实际问题的能力。毕业设计(论文)是否完成规定任务,是否达到了学士学位水平的要求,是否同意参加答辩等。评语:评阅教师签名:评定成绩(百分制):__________分长江大学工程技术学院毕业设计(论文)答辩记录及成绩评定学生姓名专业班级电信61102毕业设计(论文)题目基于C++数字抽取滤波器的设计与实现答辩时间年月日~答辩地点一、答辩小组组成答辩小组组长:成员:二、答辩记录摘要答辩小组提问(分条摘要列举)学生回答情况评判三、答辩小组对学生答辩成绩的评定(百分制):_______分毕业设计(论文)最终成绩评定(依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业设计(论文)评分的相关规定成绩(百分制):_______分答辩小组组长(签名):秘书(签名):年月日系答辩委员会主任(签名):系(盖章)基于C++数字抽取滤波器的设计与实现学生:,信息系指导教师:,信息系[摘要]本文研究了数字滤波器在Matlab环境下的设计方法及仿真分析,以及用C++对数字滤波器进行了实现。在无限脉冲响应(IIR)数字滤波器设计中,先采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换,即进行模拟滤波器的设计,然后进行模拟-数字滤波器转换。在有限脉冲响应(FIR)数字滤波器设计中,研究了FIR线性相位滤波器的特点和用窗函数法设计FIR滤波器两个问题。这两类滤波器全部设计过程都是由理论分析、编程设计、具体实现的步骤进行的。数字抽取滤波器的单位冲激响应是有限长的,可以用一个因果系统来实现,因而数字滤波器可以做成即是因果又是稳定的系统,研究了数字抽取滤波器的原理以及设计与实现滤波器的基本方法。[关键词]数字抽取滤波器;Matlab;C++;无限脉冲响应;有限脉冲响应。DesignandImplementationofDigitalFilterBasedonC++Student:Shaojiangang,DepartmentofInformationSupervisor:Liuzhiyang,DepartmentofInformation[Abstract]Inthispaper,thedesignmethodandsimulationanalysisofthedigitalfilterinMatlabenvironment,andtherealizationofthedigitalfilterwithC++arestudied..Ininfiniteimpulseresponse(IIR)digitalfilterdesign,firstly,bythepulseresponseinvarianceandbilinearZvariationmethodtodesignadigitalfilter.Finally,filterfrequencyconversion,namely,analogfilterdesign,andanalog-to-digitalfilterconversion.Inthedesignoffiniteimpulseresponse(FIR)digitalfilter,thecharacteristicsofFIRlinearphasefilterandtwoproblemsofFIRfilterarestudiedbywindowfunctionmethod..Allthedesignofthetwotypesoffiltersarecarriedoutbytheoreticalanalysis,programmingdesign,andspecificimplementationsteps..Digitaldecimationfilterunitimpulseresponseisoffinitelength,andcanbeusedforacausalsystemtoachieve,sodigitalfiltercanbemadeiscausalandstablesystemofdigitaldecimationfilterprincipleaswellasthedesignandRealizationofthefilterofthebasicmethod.[Keywords]Digitalfilter;Matlab;C++;Infiniteimpulseresponse;Finiteimpulseresponse.基于C++数字抽取滤波器的设计与实现1前言信号与信号处理是信息科学中近几十年来发展最为迅速的学科之一。长期以来,信号处理技术一直用于转换、产生模拟或数字信号,其中最为频繁应用的领域就是信号的滤波。数字滤波是语音、图像处理、模式识别和谱分析等应用中的一个基本处理部件,它可以满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器无法克服的电压漂移、温度漂移和噪声等问题。我的毕业设计的课题是《基于C++数字抽取滤波器的设计与实现》,其主要目的是通过此次课程设计进一步学习和巩固数字信号处理及其相关知识,并学会利用所学的知识能力,在设计过程中能综合运用所学知识内容,进一步熟悉和掌握Matlab的使用方法;对数字滤波器的原理有较深的了解;为即将进入社会参加工作打下坚实的基础;掌握收集资料、消化资料和综合资料的能力等等。从事电子通信业而不能熟练操作使用Matlab电子线路设计软件,在工作和学习中将是寸步难行的。在数学、电子、金融等行业,使用Matlab等计算机软件对产品进行设计、仿真在很早以前就已经成为了一种趋势,这类软件的问世也极大地提高了设计人员在通信、电子等行业的产品设计质量与效率。同时熟练的使用C++也是非常重要的,C++兼具C(中级语言)和面向对象程序设计语言的特性,既可以用于设计性能要求比较高的系统级程序,又可以用来设计应用软件,设计出程序易于维护、易于重用、效率高。设计得当的话,还易于移植。众所周知,实际过程中信号传输都要经过调制与解调这一过程,由于消息传过来的原始信号即调制信号具有频谱较低的频谱分量,这种信号在许多信道中不宜传输。因而,在通信系统的发送端通常需要有调制过程,反之在接收端则需要有解调过程。2绪论2.1数字抽取滤波器的研究背景与意义在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识优点,它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。当今,数字信号处理(DSP:DigtalSignalProcessing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科:它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号,等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号经采样和量化后,得到的数字信号是一个二维离散空间序列。数字信号处理,就是用数值计算的方法对数字序列进行各种处理,把信号变换成符合需要的某种形式。例如,对数字信号经行滤波以限制他的频带或滤除噪音和干扰,或将他们与其他信号进行分离;对信号进行频谱分析或功率谱分析以了解信号的频谱组成,进而对信号进行识别;对信号进行某种变换,使之更适合于传输,存储和应用;对信号进行编码以达到数据压缩的目的,等等。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。2.2数字抽取滤波器的设计与实践本文主要介绍数字信号处理中的基本概念,数字滤波器的设计方法,抽取的概念,抽取滤波的原理,和几种常用的滤波器及其使用的条件与各自的特点。可以很方便地运用MATLAB对滤波器进行理论的分析,再用C++实现一个简单的抽取滤波的过程,设计抽取滤波器的过程是对理论知识学习的过程,也是对数字信号处理软件熟悉的过程。2.3数字抽取滤波器的作用与优势滤波器是指用来对输入信号进行滤波的硬件或软件。如果滤波器的输入、输出都是离散时间信号,则该滤波器的冲激响应也必然离散,这样的滤波器定义为数字滤波器。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用它是通过对采样数据信号进行数学运算处理来达到频域滤波的目的。数字滤波器是提取有用信息非常重要、非常灵活的方法,是现代信号处理的重要内容。因而在数字通信、语音图象处理、谱分析、模式识别、相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。Signal处理器的出现和的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。相对于模拟滤波器数:

精度高:10-3以上,而数字系统17位字长就可以达到10-5精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤波器来实现。

灵活性大:数字滤波器的性能主要取决于乘法器的各系数,而这些系数是存放在系统存储器中的,只要改变存储器存放的系数,就可以得到不同的系统,这些都比改变模拟滤波器系统的特性要容易和方便的多,因而具有很大的灵活性。

高:“0”和“1”,受噪声及环境条件的影响小,而模拟滤可靠性波器各个参数都有一定的温度系数,易受温度、振动、电磁感应等影响。并且数字滤波器多采用大规模集成电路,大规模集成电路的故障率远比众多分立元件构成的模拟系统的故障率低。

易于大规模集成:便于大规模集成,大规模生产,且数字滤波器电路主要工作在截止或饱和状态,对电路参数要求不严格,因此产品的成品率高,价格也日趋降低。相对于模拟滤波器,数字滤波器在体积、重量和性能方面的优势己越来越明显。

并行处理:比如数字滤波器可以采用DSP处理器来实现并行处理。Tl公司系列的芯片采用8条指令并行处理的结构,时钟频率为的DSP芯片。可高达每秒执行百万条指令)。

2.4数字抽取滤波器的应用现状和发展趋势在信号处理过程中,所处理的信号往往混有噪音,从接收到的信号中消除或减弱噪音是信号传输和处理中十分重要的问题。在近代电信设备和各类控制系统中,数字滤波器应用极为广泛。语音处理是最早应用数字滤波器的领域之一,也是最早推动数字信号处理理论发展的领域之一。另外,数字滤波技术已成功的应用于静止图像和活动图像的恢复和增强、数据压缩、去噪音和干扰、图像识别以及层析x射线摄影,还成功的应用于雷达、声纳、超声波和红外信号的可见图像成像。其他的,在通信、电视、雷达、声纳、生物医学信号处理、音乐等领域也有很大的应用价值。现在以及未来的日子里,数字滤波器在军事上以被大量应用于导航、制导、电子对抗、战场侦察;在电力系统中被应用于能源分布规划和自动检测;在环境保护中被应用于对空气污染和噪声干扰的自动监测;在经济领域中被应用于股票市场预测和经济效益分析,等等越来越广泛的应用范围。随着科学技术的发展,人们对数据转换的精度要求越来越高,例如在现代地震勘探中,地震信号的动态范围大于12dB,为了能获得高分辨的地震数据,要求采集系统的动态范围必须大于120dB,畸变小于百万分之五,甚至百万分之一,这就对采集系统的A/D转换器提出了很高的要求。同样,在用数字方法产生高精度的模拟信号时,为了使产生的信号的信噪比谐波畸变等指标优于百万分之五,要求A/D转换器必须具有20位以上的分辨率,而抽取滤波器作为A/D转换器中的重要的一部分,也必须在算法的研究,在物理实现的功能器件,在设计的思路要不断完善,在设计的方法上有所突破,在不同的环境中都能有较强的可操作性,使用范围更加广阔。-随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任。3数字抽取滤波器的分类及其原理分析3.1几种频率之间的关系在分析抽取滤波之前,必须理解数字信号处理中常见的几种频率之间的转化关系。首先是连续时间信号的模拟频率,用表示,他是一个连续变量,其单位为赫兹(Hz),另一个模拟频率为角频率,用表示,单位为弧度/秒(rad/s)。他与的关系为。在模拟信号与系统中,对频率的取值范围没有限制,如果包括负频率在内,可取的所有值,完全由信号的特性决定。离散信号数字频率的概念,用表示,单位为弧度rad。并通过采样信号的频谱,建立了模拟频率与数字频率之间的关系为如果离散信号是由模拟信号采样而得到的,由上式可见,对应于模拟频率的,按照采样定理,是采样信号能取的最高频率,因此也就是数字频率能取的最高频率。由于离散信号的频谱具有周期性,因此与模拟频率不同,的有效值范围在,或。范围的频谱与范围的频谱相同。注意,虽然信号在时域是离散的,但仍然是连续变量。我们将数字频率进行了离散化,根据DFT的长度N,对在范围内进行了N点的等间隔采样,每个样点的间隔为,并引入了离散的数字频率的概念,用k表示。k的取值范围为的整数,因此可得出离散频率k与数字频率和模拟频率之间的对应关系为:k当时,与数字频率对应,如果是对实模拟模拟信号进行数字化处理,就对应着模拟信号1/2采样频率,也就是信号的最高频率。而则与模拟信号的负频率部分对应。3.2抽取与抽取滤波器的原理设x(n)为模拟信号x(t)按奈奎斯特采样率抽样后获得的数字信号,抽样间隔为T=,现在需要将抽样率降低M倍,即进行M:1的整数倍抽取,然后形成新的数字信号y(m),y(m)的抽样频率和抽样间隔T1分别为=,T1=MT,(1)h(h(n)M抽取器图1抽取滤波的过程按抽样定理,在一次抽样时为了保证不产生混叠失真,x(t)必须是一个最高频率为fs/2的带限信号,记X()为x(n)的数字频谱,则有(2)这里w=2为相对于抽样频率的数字频率。现在讨论抽样率减少M倍后y(m)的频谱。为了说明取M=4,由于y(m)的抽样率=/4显然,为了防止混叠失真,必须将信号的频谱限制在(-/8/8)之间,相对于原抽样频率的数字频率应为(3)应此为了直接由x(n)获得y(m),首先必须用数字低通滤波器将高于以上的频率分量滤去,滤波器的特性为:然后再将滤波器的输出每隔M点取一点,达到抽样率降低的目的从而形成y(m),这个过程的框图如图1,显然y(m)的频谱相对于抽样频率而言为相对于新抽样频率而言则为这里为相对于抽样频率的数字频率。如果将数字低通率波器的单位脉冲响应表示为为滤波器的输出,则有(5)而y(m)=w(Mm)(6)在图1中用第二个方框所进行的运算来表示,该方框符号代表为抽取器,它对应于抽取第mM(m=0,1,2,……)样点的运算。将(5)式和(6)式合并,则求得y(m)与x(n)之间的关系为(7)(7)式所代表的系统仍然是线性系统,但不是移不变系统,这可说明如下。设x(n)y(m)表示对应n时刻时,抽取器的输出为y(m),那么对应于时刻的输出为显然若令当(r为整数)时,则有说明为的移位形式,但若不为M的整数倍时,不能表示成的移位形式,即:不成立,因为不为整数时没有意义。之所以如此,是因为输出y(m)是由x(n)移动M的整数倍样点来计算的缘故。由于(4)式所代表的滤波器为理想低通滤波器,它是不能实现的,在实际中须采用以某种形式逼近它的非理想滤波器来实现。为了能研究实际低通滤波器对y(m)所造成误差的性质,下面推导y(m)的Z变换与x(n)的Z变换之间的关系。为此,先定义一个新序列上式表明,在抽样瞬间,,但在其他时间等于零。若定义d(n)为周期为M的抽样序列(8)则有既然d(n)是以M为周期性脉冲序列,由此可求得其离散付氏级数其反变换为因此可将(n)表示,(9)由于(10)取y(n)的Z变换因为除m为M的整数以外全为零,上式可化为=(11)其中W(Z)代表W(n)的变换。因为W(z)=H(z)X(z)因此,可把Y(Z)表示成(12)当Z在单位圆上取值时,Z=,可求得y(m)的付氏变换或频谱为(13)其中,为相对于抽样频率的数字频率。(13)式求和中的每一项代表了输入信号x(n)经h(n)滤波后的频谱的周期延拓。很明显,(13)式说明二次抽样序列的频谱实际上为x(n)经滤波后频谱的混叠。将(13)式中各项直接写出,可得Y()=X()+…+](14)若低通滤波器接近理想滤波器,能滤去在以上的频率分量,那么(13)式中的高次项均可略去,则(13)式变成了(15)说明除了一个常数因子1/M外,的确代表了原信号的频谱,但若滤波器性能不好就会产生(13)式所示的混叠失真,因此抽取滤波器的一个重要作用就是抗混叠失真。3.3两种特殊的抽取滤波器的性质分析3.3.1半带滤波器下图为半带滤波抽取器的单级实现框图,其中HB(Half2Band)为半带滤波器,fs为输入采样率,而为输出采样率,符号“2↓”表示2倍抽取.HB2HB2图2半带滤波器的单级实现一般来说,为了保证滤波抽取器抽样率变化后不产生混叠失真,必须将频率在以上的频率分量全部滤掉,如果滤除不干净,这些频率分量将以为中心折叠进入有用的频带.现在考虑频率特性如图(横坐标为模拟频率,为数字角频率)所示的一种特殊FIR滤波。图3半带滤波器的幅频特性(1)通带波纹与阻带波纹相等,即=;(2)通带边频与阻带边频相对于对称,即+=此类FIR数字低通滤波器称HBFIR滤波器.显然,当足够小时,HBFIR滤波器可用作抽取因子为2的滤波器.因为此时()内的频率分量仅会折叠进()频带内(即在滤波器的过渡带内),不会对兴趣的()通带内信号产生影响.为了保证FIR滤波器的线性相位特性,必须使滤波器的系数具有偶对称特性,即要求,其中,N为滤波器的阶数,设N为奇数.另外,可以证明HB滤波器系数除中心点[即点]外,所有的的偶次系数均为零,且由于HBFIR滤波器系数的对称性和近一半的系数为零,使得滤波运算的乘法次数减少近3/4,加法次数减少了近一半.用于存放滤波器系数的存储器也减少了一半。由半带滤波器所引出的M分之一带滤波器运用也很广。所谓M分之一带滤波器是指滤波器的单位脉冲响应,满足即除了零点之外,所有M倍数的样值均等于零。可见M分之一滤波器是半带滤波器的推广,设滤波器的长度N为奇数,他也是第一种类型的线性相位滤波器。为了叙述方便,我们分析零相位滤波器。为奇数这是一个非因果的滤波器,如果要想得到因果滤波器,只须乘上因子即可将表示成多相滤波器的形式,由式可知其零相分量,这样可将表示为设计M分之一带滤波器最简单的方法是窗函数法,如果令低通滤波器的截止频率为,可得到滤波器的系数如下:可见,M分之一带滤波器可以做为抽取因子为M的抽取滤波器。3.3.2梳状滤波器具有线形相位的FIR滤波器,其系数是对称的,与一般滤波器相比可节省一半的乘法器,但系数较复杂;而梳状滤波器系数比较简单(是整系数),不需要存储单元存储系数,也不需要乘法器,直接采用积分器、微分器或加法器就可实现。与能达到相同抽取目的的滤波器相比,它的结构要简单得多,因此常用作抽取滤波器的第一级,且可在这一级实现较大幅度的降频,一般可降到4倍奈奎斯特频率。梳状滤波器的转移函数为:从式(8)可知,梳状滤波器有N个零点,1个极点,在频率为0的地方极点和零点相互抵消,因此梳状滤波器实质上也是一个FIR滤波器。而且梳状滤波器的零点均匀分配在单位圆上,所以梳状滤波器在频率为kFs/N(Fs为采样频率,N为滤波器长度,k为整数)处幅度为零,在这些频率附近幅度有很大衰减。为了利用这个特性,梳状滤波器的长度N应该等于抽取滤波器的抽取因子M。为了获得较大的阻带衰减,梳状滤波器一般采用多级级联的方式,级联的级数为K=L+1(L为模拟调制器的阶数)。3.4多级抽取滤波器的原理通过以上分析,抽取前应做低通滤波以避免信号的混叠。低通滤波器采用具有线性相位的FIR滤波器,此种滤波器的系数具有对称性,可减少近一半的乘法器。FIR滤波器的设计方法有窗函数法,频率抽样法,最优化设计法。一般来说,一级抽取的频率变化太大,抗混叠低通滤波器实现困难,实际上在设计中常常采用多级抽取将频率降低,这样每一级滤波器的阶数比较低,容易实现。设总的抽取因子为,各级抽取因子为,那么:同样,每个抽取滤波器之前插入一个抗混叠滤波器,该滤波器随着抽取因子的不同参数指标会发生变化。采用多级抽取后,通带截止频率与阻带波纹参数不变,阻带变为,通带波纹变为,其中,是原始抽样频率,是第i级抽取滤波器的输出抽样频率,n为总的抽取级数。利用MATLAB进行枚举比较,发现多级抽取时一般采用3,4级,增加级数,滤波器的性能也不会有太大变化,所以并不是级数越多越好,而且每级的抽取因子应该由高到低排列。多级抽取滤波器的第一级采用梳状滤波器实现16倍抽取,中间采用两级半带滤波器分别实现4倍抽取,最后一级采用普通的线性相位FIR滤波器对幅度进行补偿。为了说明多级抽取的优点,举一例子进行分析:设有一4阶调制器输出的码的抽样率为,要求经多级滤波抽取后转换成抽样率为的信号。滤波器的指标如下:通带波纹等于阻带波纹,通带边频和阻带边频分别,根据前面所述的原则,针对这一具体情况,按,,,设计了一个三级抽取结构,第一级采用的梳状滤波器按设计,第二级和第三级滤波器采用Kaiser窗函数法进行设计,节数按计算表1三级抽取滤波器参数所需运算速率与存储量级数单级抽取三级抽取第一级第二级第三级输入采样率256256324输出采样率13241抽取因子256884通带上边频0.4梳状滤波器0.50.4阻带下边频滤波器节数199772985313乘加次数/样点3995357169625最小运算速率(运算次数/s)399530001824000676000625000为了比较,表中还列出了单级抽取时的值,显然采用多级抽取大大节省了运算量。由于滤波器节数减少,也节省了用于存储滤波器系数的存储量以及进行滤波器运算所需的循环缓冲区的大小。线性相位FIR数字滤波器和IIR数字滤波器相比,突出的优点是具有严格的线性相位特性,而且稳定性高,运算速度快,各设计各种幅度特性的滤波器。但是在相同的技术指标下,FIR数字滤波器说需阶数往往高于IIR数字滤波器的5-10倍,且对通带、阻带滤波器的衰减特性控制不明显,设计过程往往需要借助计算机来玩成的。4数字滤波器的算法设计4.1由模拟滤波器设计IIR数字滤波器在之前的部分中已经说明,理想的滤波器是非因果的,即物理上不可实现的系统。工程上常用的模拟滤波器都不是理想的滤波器。但按一定规则构成的实际滤波器的幅频特性可逼近理想滤波器的幅频特性,例如巴特奥兹(Butterworth)、切比雪夫(Chebyshev)滤波器和椭圆滤波器等。4.2巴特奥兹滤波器巴特沃兹滤波器[9](Butterworth滤波器)特点:具有通带内最大平坦的振幅特性,且随f↗,幅频特性单调↘。其幅度平方函数: (3-1)N为滤波器阶数,如图4图4巴特沃斯滤波器振幅平方特性通带:使信号通过的频带阻带:抑制噪声通过的频带过渡带:通带到阻带间过渡的频率范围Ωc:截止频率。过渡带为零理想滤波器阻带|H(jΩ)|=0通带内幅度|H(jΩ)|=cons.H(jΩ)的相位是线性的图中,N增加,通带和阻带的近似性越好,过渡带越陡。通带内,分母Ω/Ωc<1,(Ω/Ωc)2N<1,A(Ω2)→1。过渡带和阻带,Ω/Ωc>1,(Ω/Ωc)2N>1,Ω增加,A(Ω2)快速减小。Ω=Ωc,,,幅度衰减,相当于3db衰减点。振幅平方函数的极点 (3-2)可见,Butterworth滤波器的振幅平方函数有2N个极点,它们均匀对称地分布在|S|=Ωc的圆周上。考虑到系统的稳定性,知DF的系统函数是由S平面左半部分的极点(SP3,SP4,SP5)组成的,它们分别为: (3-3)系统函数为: (3-4)令,得归一化的三阶BF: (3-5)如果要还原的话,则有 (3-6)4.3切比雪夫滤波器振幅平方函数为 (3-7)式中—有效通带截止频率—与通带波纹有关的参量,大,波纹大,0<<1。Vn(x)—N阶切比雪夫多项式,定义为 (3-8) (3-9)如图3-1,通带内,,变化范围1-Ω>Ωc,随Ω/Ωc↗,→0(迅速趋于零)当Ω=0时, (3-10)N为偶数,,(min),(3-11)N为奇数,,(max),(3-12)图5切比雪夫滤波器的振幅平方特性有关参数的确定:a.通带截止频率,预先给定b.由通带波纹表为 (3-13) (3-14)给定通带波纹值分贝数后,可求。 (3-15)c.阶数N—由阻带的边界条件确定。(,A事先给定) (3-16) (3-17) (3-18)(3-19)得(3-20)4.4椭圆滤波器特点:幅值响应在通带和阻带内都是等波纹的,对于给定的阶数和给定的波纹要求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽,就这点而言,椭圆滤波器[11]是最优的,其振幅平方函数为(3-21)式中,RN(Ω,L)为雅可比椭圆函数,L是一个表示波纹性质的参量。图6N=5时的特性曲线

由图可见,在归一化通带内(-1≤Ω≤1),在(0,1)间振荡,而超过ΩL后,在L2,∞间振荡。L越大,ΩL也变大。这一特点使滤波器同时在通带和阻带具有任意衰减量。

下图为典型的椭园滤波器振幅平方函数:图7椭圆滤波器的振幅平方函数

图中ε和A的定义与切比雪夫滤波器相同。

当Ωc、Ωs、ε和A确定后,阶次N的确定方法为:确定参数确定参量N=式中K(k)=为第一类完全椭圆积分。4.5用matlab仿真数字滤波器传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。利用MATLAB信号处理工具箱(SignalProcessingToolbox)可以快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用MATLAB语言进行程序设计和利用信号处理工具箱的FDATool工具进行界面设计的详细步骤。利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。4.6FDATool界面FDATool(FilterDesign&AnalysisTool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(FilterDesignToolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是DesignFilter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。DesignFilter部分主要分为:FilterType(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。DesignMethod(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、ChebyshevTypeI(切比雪夫I型)法、ChebyshevTypeII(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。FilterOrder(滤波器阶数)选项,定义滤波器的阶数,包括SpecifyOrder(指定阶数)和MinimumOrder(最小阶数)。在SpecifyOrder中填入所要设计的滤波器的阶数(N阶滤波器,SpecifyOrder=N-1),如果选择MinimumOrder则MATLAB根据所选择的滤波器类型自动使用最小阶数。FrenquencySpecifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由FilterType选项和DesignMethod选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。MagnitudeSpecifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。WindowSpecifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数,在通带内的衰减为6dB。

图8FDATool的操作页面通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为*.fda文件。在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。4.7用Fdatool进行带通滤波器设计给定的数字带通滤波器的参数是:通带为45Hz~55Hz,低截止频率为40Hz,高截止频率为60Hz,通带内衰减不大于3db,阻带衰减大于80db。借助Matlab仿真,可以得到设计成不同类型的滤波器所需的阶数:表2采用不同类型滤波器实现所需的阶数滤波器类型最低阶数稳定性FIR滤波器Kaiser窗函数201稳定Blackman窗函数180稳定Equirpple86稳定IIR滤波器Butterworth滤波器26稳定ChebishevⅡ滤波器16稳定椭圆滤波器12稳定可见,FIR滤波器阶数过高,导致的直接结果是消耗的资源较多,成本增加。因此采用IIR滤波器实现比较合适。而在IIR滤波器中,椭圆滤波器的阶次最低,切比雪夫次之,巴特沃兹最高,参数的灵敏度则恰恰相反。根据传递函数的形式,巴特沃思和切比雪夫滤波器的传递函数都是一个常数除以一个多项式,为全极点网络,仅在无限大阻带处衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点,极零点在通带内产生等波纹,阻带内的有限传输零点减小了过渡区,可获得极为陡峭的衰减特性曲线。综上考虑,采用椭圆函数滤波器最为适宜。用以下matlab程序[15]可得到满足给定条件的12阶椭圆滤波器的直接型表示:fs=200;wp=[4555]*2/fs;ws=[4060]*2/fs;――把截止频率转成弧度表示rp=3;rs=80;Nn=512;[n,wn]=ellipord(wp,ws,rp,rs);[b,a]=ellip(n,rp,rs,wn);freqz(b,a,Nn,fs);[z,p,k]=ellip(n,rp,rs,wn);zplane(z,p);图912阶椭圆滤波器的幅频相应和相频响应图1012阶椭圆滤波器的零极图图9说明12阶椭圆滤波器很好的满足了给定的阻带和通带的衰减。图10说明极点全在单位园内部,因而该椭圆滤波器是稳定的。a,b分别为分母与分子的系数,即得到的直接型表示为(=1)(3-22)4.8将系统函数由直接型化成级联型由于直接型具有一些共同缺点:(1)系数对滤波器的性能控制作用不明显。(2)极点对系数的变化过于灵敏,易出现不稳定或较大误差。(3)运算的累计误差较大。并且在这个设计中,直接型表示时系数和的最大值与最小值相差9×倍,考虑到在乘法器上实现时引入的截断误差很大,因此决定采用6个二阶节级联来实现。4.9二阶节系数的确定用matlab函数把直接型系数化成级联型二阶节的系数:G=1.910088486951538×数组SOS的每行表示一个二阶节的系数,第1~3列分别是分子上、、的系数,第4~6列分别是分母上、、的系数。分配给各二阶节的增益分别为:0.064426919942375843,0.064426919942375843,0.36083349830553402,0.36083349830553402,0.5945544040902202,0.5945544040902202。xxg11b1b2ya1a2图二阶节结构方框图4.10系数转换成二进制码若采用24位乘法器,用1位整数位,1位符号位,共22位定点二进制数进行运算,负数用补码表示,由此将减法运算变成累加求和运算。各系数可用matlab编程转成二进制补码,转换结果如表:表3各系数转成二进制的结果十进制数定点24位补码数0.0644269199423758430000010000011111100100100.086237116875715341000001011000010011101001-0.090446129522962132111110100011011000100001-0.9517888619754914110000110001010111100100-0.0862371168757153411111101001111011000101110.0904461295229603830000010111001001110111110.360833498305534020001011100010111111001010.23642640306518907000011110010000110011100-0.23451506983909279111100001111110110110101-0.96999789866178998110000011110101110001110-0.236426403065189071111000011011110011001000.234515069839091340000111100000010010010110.59455440409022020010011000001101001011100.30598365902400908001101101001111001111001-0.30583918594063586111011000110110100100001-0.305983659024009081100100101100001100001110.30583918594063608000100111001001011011111-0.99059830159543105110000001001101000001010可用Matlab程序求截断后系数并进行仿真:fori=1:1:6forj=1:1:6s=to2(SOS(i,j));SOS1(i,j)=to10(r)+s;endendr=to2(G);G1=to10(r);[B,A]=SOS2TF(SOS1,G1);%转成直接型freqz(B,A,Nn,fs);系数截断后图形:图11系数截断后的幅频、相频响应仿真图形图12系数截断后的零极点图图11与图12表明使用24位乘法器不会引入截断误差,通带与阻带衰减都符合设计要求。若采用24位乘法器,用1位整数位,1位符号位,共22位定点二进制数进行运算,负数用补码表示,由此将减法运算变成累加求和运算。各系数可用matlab编程转成二进制补码,转换结果如表:表4各系数转成二进制的结果十进制数定点24位补码数0.0644269199423758430000010000011111100100100.086237116875715341000001011000010011101001-0.090446129522962132111110100011011000100001-0.9517888619754914110000110001010111100100-0.0862371168757153411111101001111011000101110.0904461295229603830000010111001001110111110.360833498305534020001011100010111111001010.23642640306518907000011110010000110011100-0.23451506983909279111100001111110110110101-0.96999789866178998110000011110101110001110-0.236426403065189071111000011011110011001000.234515069839091340000111100000010010010110.59455440409022020010011000001101001011100.30598365902400908001101101001111001111001-0.30583918594063586111011000110110100100001-0.305983659024009081100100101100001100001110.30583918594063608000100111001001011011111-0.99059830159543105110000001001101000001010可用Matlab程序求截断后系数并进行仿真:fori=1:1:6forj=1:1:6s=to2(SOS(i,j));SOS1(i,j)=to10(r)+s;endendr=to2(G);G1=to10(r);[B,A]=SOS2TF(SOS1,G1);%转成直接型freqz(B,A,Nn,fs);系数截断后图形:图13系数截断后的幅频、相频响应仿真图形图14系数截断后的零极点图图13与图14表明使用24位乘法器不会引入截断误差,通带与阻带衰减都符合设计要求。4.11本章总结比较以上几种类型的滤波器参数,在给定的参数要求下,采用椭圆滤波器可以获得最佳的幅频响应特性,具有阶数低,过渡带窄等优点。虽然椭圆滤波器在通带也会产生波动,但考虑到波动处在可接受的范围内,仍然符合设计要求。但由直接型传输函数表达式来实现并不实用。因此如前所说,将其分解为多个二阶传输函数的级联形式。借助Matlab信号处理工具箱中函数tf2sos(Transferfunctiontosecond-order-section)将传递函数转换为二阶级联形式。对于是数字信号,需要对先前分析计算中分解获得的二阶子系统的滤波器系数进量化,即用一个固定的字长加以表示。量化过程中由于存在不同程度的量化误差由此会导致滤波器的频率响应出现偏差,严重时会使IIR滤波器的极点移到单位圆之外,使系统不稳定。为了获得最优的滤波器系数,量化的精度也相当重要,因此这里采用24位乘法器,48位加法器进行运算,仿真结果显示,不会产生极限环现象和溢出振荡。5数字抽取滤波器的实现过程5.1用MATLAB进行仿真MATLAB的简介:是美国Mathwork公司于1967年推出的一个用于数学计算的软件包,全名为“MartrixLaboratory”。它是一种功能强,效率高,便于进行科学和工程计算的交互式软件包。MATLAB拥有丰富的库函数,在进行复杂的数学运算时可以直接调用,并且它的库函数同用户文件在形式上一样,所以用户文件也可以作为MATLAB的库函数来调用。因而,用户可以根据自己的需要,方便地建立和扩充新的库函数。另外,为了充分利用C等高级语言的资源,包括用户已编好的高级语言程序,通过建立Met调用文件的形式,混合编程,可方便地调用有关的高级语言的子程序。其绘图也十分方便,它有一系列绘图函数。而信号处理是MATLAB应用最成功的领域之一,MATLAB将信号处理中的许多常用算法编写成了可调用的函数,汇集构成了信号处理工具箱。用MATLAB做一个模拟信号转换为数字信号的实验:程序如下:clf;t=0:0.0005:1;f=13;xa=cos(2*pi*f*t);subplot(2,1,1);plot(t,xa);gridxlabel('时间,msec');ylabel('振幅');title('连续时间信号x_{a}(t)');axis([01-1.21.2]);subplot(2,1,2);T=0.1;n=0:T:1;xs=cos(2*pi*f*n);k=0:length(n)-1;stem(k,xs);gridxlabel('时间序号n');ylabel('振幅');title('离散时间信号x[n]');axis([0(length(n)-1)-1.21.2]);得到的图形:图15模拟信号转换为数字信号用MATLAB进行数字抽取的实验:使用M函数decimate来设计和实现一个具有整数抽取因子M的抽取器。程序如下:clf;M=input('抽样因子=');n=0:99;x=sin(2*pi*0.043*n)+sin(2*pi*0.031*n);y=decimate(x,M,'fir');subplot(2,1,1);stem(n,x(1:100));title('输入序列');xlabel('时间序号n');ylabel('振幅');subplot(2,1,2);m=0:(100/M)-1;stem(m,y(1:100/M));title('输出序列');xlabel('时间序号n');ylabel('振幅');图16经过抽取因子为4的抽取滤波器后的序列时域比较可见用MATLAB设计滤波器十分的简便,但不助于对整个知识结构的把握,在理论分析过程中可以运用,但是实际学习中运用VC++编写滤波器的程序更能强化理论知识,可以提高动手能力。5.2用C++进行滤波器的实现VC++简介:VisualC++是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C++可视化开发环境。VisualC++6.0是以往版本不断更新的基础上形成的,由于其功能强大,灵活性好,完全可扩展以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为最流行的C++语言开发工具。在用VC++的设计抽取滤波器的过程中,采用窗函数设计前面的低通滤波器,再将输入信号与滤波器的脉冲响应根据时域卷积定理,从而完成整个工程。在用软件实现之前必须先建立数学模型,找到设计低通滤波器的表达式,以及设计过程中所必须的参数,窗函数的单位脉冲响应数学模型,然后用VC++语言编写出来。5.2.1抽取滤波器的界面框图本工程主要有三个模块:信号输入,信号处理(抽取滤波),信号输出三个功能的结果都会由直观的图形界面表示。用户操作的对话框用户操作的对话框输入信号抽取滤波器输出信号参数设定时域波形采样频率幅度响应频域波形时域波形频域波形图17抽取滤波器的界面框图5.2.2对话框的设计在VC++中,使用对话框非常容易,因此它提供的对话框编辑器能“可视”地进行设计,编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类。MFC的CDialog类封装了对话框的显示,关闭等常用操作的许多功能函数,例如DoModal函数用来显示模式对话框并返回结果。通过对话框的编辑器,用户可以完成下列工作:·添加,选取,删除对话框内的控件·改变控键的Tab键次序·利用基准线,标尺及布局工具进行控件的布局·测试所编辑的对话框的性能(1)打开对话框编辑器将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对话框ID,就可以打开对话框编辑器,或者当选者“Insert”中的“Resource”选单命令(或按快捷键Ctrl+R)时,在弹出的资源列表中选择Dialog项。单击New按钮后,就会在开发环境的右侧显示出对话框编辑器。(2)在对话框中添加和编辑控件一旦对话框资源被打开或被创建,就可以在对话框中进行控件的添加、修改、删除等操作。对话框编辑器最初打开时,控件工具栏是随之出现的,利用此工具栏中的各个按钮可以顺利完成控件的添加。添加一个控件有以下几种方法:·在控件工具栏中单击某控件,此时的鼠标箭头在对话框内变成“十”字形状;在对话框指定位置单击鼠标左键,则此控件被添加到对话框的相应位置,再拖动选择框可改变控件的大和位置。·在控件工具栏中单击某控件,此时的鼠标箭头对话框内变成“十”字形状;在指定位置处单击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。·用鼠标左键点中控件工具栏中某控件,并按住鼠标键不放;在移动鼠标到对话框的指定位置的过程中,用户会看到一个虚线框,下面带有该控件的标记;释放鼠标键,新添加的控件立即出现在对话框中。·对于大多数控件来说,这些属性一般都有General(一般属性)、Styles(控件的分格)和ExtendedStyles(控件的扩展风格)。其中Styles和ExtendedStyles是用来设定控件的外观、辅助功能的。不同的控件具有不同的风格和扩展风格,但控件的一般属性基本相同,它通常有标识符框、标题框等内容。图18控件属性对话框ID:控件的标识符。每种控件都有默认的ID,例如按钮控件IDC_BUTTON1Caption:控件的标题。大多数控件都有默认的标题,例如按钮控件为Button1Visible:指定控件初始化时是否可见Group:指定控件组中的第一个控件,如果该项被选中,则此控件后的所有控件均被看成同一组。成组的目的是可以让用户用键盘方向键在同一组控件中进行切换HelpID:若该项被选中,则为该控件建立一个上下文相关的帮助标识符Disabled:指定控件初始化时是否禁用TabStop:若该项被选中,则用户可以使用Tab键来选择控件(3)根据控件的特性和功能,一般可将其分为三类:Windows公共控件ActiveX控件以及MFC新增的一些控件等。静态控件CStatic用于向用户显示一些几乎固定不变的文字或图形述按钮CButton用于产生某些命令或改变某些选项设置编辑框CEdit可完成文字的输入、输出双向操作,使用户能查看并辑文字列表框CListBox显示一个列表,让用户从中选取一个或多个项组合框CComboBox它把列表框和编辑框有机地组合在一起,用户不仅能择列表中已有的项,还能编辑出新的项滚动条CScrollBar通过滚动块在滚动条上的移动来改变某些值进展条CProgressCtrl用于指示一个操作的

温馨提示

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

评论

0/150

提交评论