毕业论文-基于FPGA的FIR数字滤波器设计与实现_第1页
毕业论文-基于FPGA的FIR数字滤波器设计与实现_第2页
毕业论文-基于FPGA的FIR数字滤波器设计与实现_第3页
毕业论文-基于FPGA的FIR数字滤波器设计与实现_第4页
毕业论文-基于FPGA的FIR数字滤波器设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的FIR数字滤波器设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 副教授 完成日期: 2014年4月28日 大连东软信息学院Dalian 大连东软信息学院毕业设计(论文) 摘要 IV基于FPGA的FIR数字滤波器设计与实现摘 要在现代电子数字系统中,滤波器都以一个不可缺少的身份出现。其中,FIR数字滤波器以其良好的线性特性受到人们喜欢并大量使用。众所周知,灵活性和实时性是工程实践中对数字信号处理的基本要求。在以往使用的各种滤波器技术中,不难发现有许许

2、多多的问题。但是,随着现代计算机技术在滤波问题上的发展,出现了数字滤波器。我们可以使用FPGA来实现FIR滤波器,可以同时兼顾实时性和灵活性。基于FPGA的FIR数字滤波器的研究势在必行。本论文讨论基于FPGA的FIR数字滤波器设计与实现,要做的基本工作有以下几点:(1)掌握有限长单位冲激响应FIR(Finite Impulse Response,FIR)的基本结构,然后针对FIR数字滤波器的基本理论,作为指导思想进行设计。(2)基于硬件FPGA的特点,利用Matlab软件以及窗函数法设计FIR数字滤波器。对于FPGA器件,计划采用模块化、层次化设计思想,对其各个部分的功能进行详细的理解和分工

3、设计。最终FIR数字滤波器的设计语言选择VHDL硬件编程语言。(3)本设计中的软件仿真部分使用Altera公司的综合性PLD开发软件Quartus II,并且利用Matlab工具完成了前期参数的计算。利用Modelsim进行了仿真验证,仿真结果显示设计实现了预期的功能目标。关键词:数字滤波器,Matlab,可编程逻辑元件,模块化算法大连东软信息学院毕业设计(论文) AbstractThe Design and Implementation of FIR Digital Filter Based on FPGAAbstractIn the modern digital electronic sy

4、stem, filter as an indispensable status. Among them, a good linear response of FIR digital filter is accepted and widely used. As everyone knows, real time and flexibility is the basic requirement for digital signal processing of Engineering practice. In a variety of filter technology used in the pa

5、st, it is not difficult to find many problems. However, with the development of modern computer technology in filter, the digital filter. We can use FPGA to implement FIR filter, which is real-time and flexibility. Research of FIR digital filter based on FPGA be imperative.Design and realization of

6、FIR digital filter based on FPGA, this design has to be done the following points:(1) Understanding of Finite length unit Impulse Response FIR (Finite Impulse Response, FIR) basic structure, then according to the basic theory of FIR digital filter, as a guiding ideology to carry on the design.(2) Ba

7、sed on the characteristics of FPGA hardware, window function method and using Matlab software to design FIR digital filter. For the FPGA device, plan the idea of modular, hierarchical design, the function of each part of the detailed design. Finally the design of FIR digital filter VHDL hardware pro

8、gramming language.(3) The design of the software simulation software part use Altera company comprehensive PLD Quartus II, and using Matlab tools to complete the previous parameter calculation. Using the modelsim simulation verification, the simulation results show that the design realized the funct

9、ion of the expected goal.Key words: Digital filter, Matlab, Programmable logic devices, Modular Algorithm大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 h z u HYPERLINK l _Toc385358458 摘要 PAGEREF _Toc385358458 h I HYPERLINK l _Toc385358459 Abstract PAGEREF _Toc385358459 h II HYPERLINK l _Toc385358460 第1章 绪论 PAGERE

10、F _Toc385358460 h 1 HYPERLINK l _Toc385358461 1.1 课题的背景意义 PAGEREF _Toc385358461 h 1 HYPERLINK l _Toc385358462 1.2 国内外研究现状 PAGEREF _Toc385358462 h 1 HYPERLINK l _Toc385358463 1.3 本论文的研究内容及主要工作 PAGEREF _Toc385358463 h 2 HYPERLINK l _Toc385358464 第2章 硬件描述语言 PAGEREF _Toc385358464 h 4 HYPERLINK l _Toc385

11、358465 2.1 VHDL介绍 PAGEREF _Toc385358465 h 4 HYPERLINK l _Toc385358466 2.2 主要特点 PAGEREF _Toc385358466 h 4 HYPERLINK l _Toc385358467 2.3 基本结构 PAGEREF _Toc385358467 h 4 HYPERLINK l _Toc385358468 2.4 本章小结 PAGEREF _Toc385358468 h 8 HYPERLINK l _Toc385358469 第3章 FIR滤波器理论 PAGEREF _Toc385358469 h 9 HYPERLIN

12、K l _Toc385358470 3.1 数字滤波器概述 PAGEREF _Toc385358470 h 9 HYPERLINK l _Toc385358471 3.2 数字滤波器的性能指标 PAGEREF _Toc385358471 h 10 HYPERLINK l _Toc385358472 3.3 线性相位特性 PAGEREF _Toc385358472 h 11 HYPERLINK l _Toc385358473 3.4 FIR滤波器的基本结构 PAGEREF _Toc385358473 h 12 HYPERLINK l _Toc385358474 3.4.1 直接型 PAGEREF

13、 _Toc385358474 h 12 HYPERLINK l _Toc385358475 3.4.2 级联型 PAGEREF _Toc385358475 h 13 HYPERLINK l _Toc385358476 3.4.3 线性相位型结构 PAGEREF _Toc385358476 h 13 HYPERLINK l _Toc385358477 3.4.4 频率采样型 PAGEREF _Toc385358477 h 14 HYPERLINK l _Toc385358478 3.5 本章小结 PAGEREF _Toc385358478 h 15 HYPERLINK l _Toc3853584

14、79 第4章 滤波器的参数设计 PAGEREF _Toc385358479 h 16 HYPERLINK l _Toc385358480 4.1 设计的滤波器指标 PAGEREF _Toc385358480 h 16 HYPERLINK l _Toc385358481 4.2 窗函数法 PAGEREF _Toc385358481 h 16 HYPERLINK l _Toc385358482 4.3 FIR滤波器系数计算 PAGEREF _Toc385358482 h 17 HYPERLINK l _Toc385358483 4.4 本章小结 PAGEREF _Toc385358483 h 21

15、 HYPERLINK l _Toc385358484 第5章 FIR滤波器系统设计 PAGEREF _Toc385358484 h 22 HYPERLINK l _Toc385358485 5.1 整体设计方案 PAGEREF _Toc385358485 h 22 HYPERLINK l _Toc385358486 5.2 模块设计 PAGEREF _Toc385358486 h 22 HYPERLINK l _Toc385358487 5.2.1 正弦信号发生模块设计 PAGEREF _Toc385358487 h 22 HYPERLINK l _Toc385358488 5.2.2 分频器

16、设计 PAGEREF _Toc385358488 h 24 HYPERLINK l _Toc385358489 5.2.3 有符号乘法器设计 PAGEREF _Toc385358489 h 25 HYPERLINK l _Toc385358490 5.2.4 FIR滤波器设计 PAGEREF _Toc385358490 h 27 HYPERLINK l _Toc385358491 5.3 本章小结 PAGEREF _Toc385358491 h 28 HYPERLINK l _Toc385358492 第6章 设计的仿真验证 PAGEREF _Toc385358492 h 29 HYPERLI

17、NK l _Toc385358493 6.1 系统仿真概念 PAGEREF _Toc385358493 h 29 HYPERLINK l _Toc385358494 6.2 正弦波生成模块的仿真验证 PAGEREF _Toc385358494 h 30 HYPERLINK l _Toc385358495 6.3 有符号乘法器的仿真验证 PAGEREF _Toc385358495 h 31 HYPERLINK l _Toc385358496 6.4 分频模块的仿真验证 PAGEREF _Toc385358496 h 32 HYPERLINK l _Toc385358497 6.5 FIR滤波器模

18、块仿真验证 PAGEREF _Toc385358497 h 33 HYPERLINK l _Toc385358498 6.6 顶层模块仿真 PAGEREF _Toc385358498 h 33 HYPERLINK l _Toc385358499 6.7 本章小结 PAGEREF _Toc385358499 h 34 HYPERLINK l _Toc385358500 第7章 结论 PAGEREF _Toc385358500 h 35 HYPERLINK l _Toc385358501 参考文献 PAGEREF _Toc385358501 h 36 HYPERLINK l _Toc3853585

19、02 致 谢 PAGEREF _Toc385358502 h 38大连东软信息学院毕业设计(论文)- 第1章 绪论1.1 课题的背景意义在信号的传输过程中往往会在无形中增加噪声,这种噪声是无法彻底避免的,从而在接收端如何抑制无用的噪声,加强有用的信号是信息传输过程中的一种关键技术,这种处理我们通常在工程实践中会采用滤波器技术。滤波器主要分为数字滤波器和模拟滤波器,数字滤波器以其特有的一些优势越来越多的受到大家的重视和欢迎,所以对于数字滤波器进行深入的研究有着现实意义。以前主要数字集成电路、DSP芯片等来实现数字滤波。数字集成电路是一种数字滤波器集成电路,这种电路使用简单方便,成本低廉。但是由于

20、滤波器的字长和阶数的规模太小,完全不能满足实际的特定需要。虽然可以采用一定的方法进行性能扩展,但是会增加体积和功耗从而增加设计成本。这种可定制性特差,功能单一限制了它在实际中的应用。DSP是数字信号处理器的简称,它是根据数字信号处理的算法特点而专门设计的一款处理器,它内部集成了大量的硬件乘法器,另外它的特殊结构使它能够在一个机器周期内完成一次乘加操作。这是DSP在数字信号处理领域中具有独特的优势。但是该芯片程序顺序执行,而且,不同的DSP芯片指令系统也不相同,开发周期长,可移植性相对于FPGA较差。因此,使用FPGA完成FIR滤波器设计成为了一种主流的选择。FPGA结构分为可配置逻辑模块,输入

21、输出模块和大量布线资源,这种结构尤其适合FIR滤波器的实现,相对于串行运算主导的DSP芯片来说,并行性和可扩展性都更好。1.2 国内外研究现状当前FIR滤波器的研究讨论中,根基FIR滤波器乘法器的方式主要有三种常用的方法,它们分别是基于并行乘法的滤波器设计、基于串行乘法滤波器的设计以及采用分布式乘法的滤波器设计。并行乘法优势在于速度快,但是它的速度是牺牲了硬件资源换来的,随着滤波器规模和复杂度的增大,它所消耗的硬件资源是相当巨大的。串行乘法器是针对并行乘法器消耗资源庞大的特点产生的,它牺牲了速度,降低了乘法器的硬件消耗。一个乘法运算需要几个时钟周期的加法运算来完成。分布式算法是利用查找表的方法

22、进行乘法运算的,它巧妙在于将乘法运算转换为查表操作,分布式算法是将一个乘法分为许多部分,每个部分先进行相加,形成相应的部分积,再对部分积进行累加,最后计算结果。FIR滤波器的实现主要有硬件设计实现和软件设计实现。所谓软件实现是指在PC机上通过编程的方式实现滤波器的设计,目前有很多软件能提供工业接口,利用这种工业接口将要处理的数据实时的或者非实时的传入计算机,在计算机上利用计算机的RAM和运算器来完成FIR滤波功能,虽然这种方法很方便,可重用和移植性良好,另外很多软件也都提供了相应的开发包,但是这种方法普遍存在着处理速度慢,实时性太差,所以这种方法还主要应用于科研,在工程实践中应用不多。硬件设计

23、方法是指采用相应的硬件处理器通过一定的编程或者不编程的方法实现FIR滤波器功能的方法。主要采用的硬件平台有以下几种:(1)专用DSP处理器。DSP处理器是以数字信号来处理信息的器件,接收模拟信号,转换为数字信号。它依靠特殊独特的设计尤其适合完成乘加运算较多的信号处理功能。DSP发展速度很快,已经遍布了数字信号处理的很多领域。(2)特定功能的FIR滤波器ASIC芯片。这种设计同样具有较高的速度,成本也比较低廉。另外无需编程设计,但是它的灵活性差,不能重用。综合考虑在很多场合不是最优方案。另外专用自研的ASIC开发周期长也进一步限制了此方法的使用。(3)可编程逻辑阵列。FPGA在过去30年产生了长

24、足的发展。尤其是工艺的不断提高使得FPGA的生产成本不断降低,同时性能却在大幅度的提升。它的应用成本已经能够为一些设计所接受。另外由于其具有通用性好,代码的可移植性强,设计的保密性和稳定性高等特点受到越来越多的设计者青睐,它们已经不再只是军工领域的专享产品。由于FPGA具有很好的并行的结构,适合批量数据处理,所以FPGA在数字处理方面占据了很大一片江山。采用FIR滤波器设计能够具有很好的灵活性和可重用性。这些特性使得FPGA设计FIR滤波器较前两者具有明显的优势。1.3 本论文的研究内容及主要工作通过对数字滤波器的几种实现方法进行简单分析,基于FPGA的数字滤波器具有线性相位等许多优点,所以本

25、论文选择基于FPGA设计数字滤波器。通常滤波器在进行数据处理时会用到卷积运算,这也是本文设计的主要思路。设计初期在Matlab下对滤波器的系数进行了计算和分析,包括量化前后的零极点分析、时域和频域分析等,然后根据FIR数字滤波器的多种理论设计思想和滤波实现方法,在QuartusII上进行具体的设计,最后在FPGA上进行调试、分析、改进,直至系统功能正确。本论文主要研究的是基于FPGA的FIR低通数字滤波器的研究与设计,具体内容如下:第1章绪论主要介绍了本课题的来源及研究意义、国内外研究现状。第2章介绍了VHDL硬件描述语言的主要特点和基本结构。第3章主要介绍了FIR数字滤波器的原理以及线性相位

26、FIR滤波器的结构和设计方法。第4章进行了滤波器参数的设计计算以及Matlab环境下的仿真验证。第5章详细阐述了基于FPGA的FIR数字滤波器的设计思路,并完成了各个模块的设计,并阐述了各个模块的功能。第6章用Modelsim软件完成了各个模块的仿真测试及顶层文件的测试验证。第7章是试验数据分析和结论。大连东软信息学院毕业设计(论文)第2章 硬件描述语言2.1 VHDL介绍VHDL是高速集成电路硬件描述语言,可以用来描述硬件电路功能、信号的连接关系。使用VHDL语言,要先考虑系统总体要求,自顶而下的细化设计内容,最后完成系统硬件的整体设计。VHDL以其强大的系统描述能力、规范的程序设计结构、灵

27、活的语句表达方式和层次的仿真测试手段,受到业界的普遍认同和接受。VHDL语言被广泛应用于仿真测试、学术交流、电子设计的存档、程序模块的移植、IP核的应用等方面。2.2 主要特点(1)功能强大,灵活性高VHDL语言具有功能强大的语言结构,可用简洁的代码进行复杂控制逻辑的设计。同时,VHDL语言支持层次化的设计,也支持模块化设计。既支持自顶而下的设计,也支持自底而下的设计。VHDL已成为一种设计、仿真、综合的标准硬件描述语言。(2)器件无关性设计者用VHDL语言进行设计时,不需要首先考虑完成这次设计所需要的器件,可以先进行设计。对同一个设计进行描述,可以采用多种不同的器件结构来实现功能。当设计、仿

28、真通过后,指定具体的器件综合即可。(3)可移植性VHDL语言是一种标准化的硬件描述语言,采用VHDL进行的设计可被不同的EDA工具支持。(4)自顶而下的设计方法自顶向下的设计方法是将要设计的电路进行顶层的描述,利用EDA软件进行顶层仿真,如果仿真结果满足要求,则继续将顶层划分的模块进行低一级的划分并仿真,这样逐级设计最后完成整个电路的设计。(5)强大的系统硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可以描述系统级电路,又可以描述门级电路。可采用行为描述、寄存器传输描述或结构描述。2.3 基本结构一个VHDL程序由五个部分组成,包括实体、结构体、库、包和配置。(1)实体设计实体是VH

29、DL语言设计的基本单元,简单的可以是一个与门,复杂的可以是一个数字系统,它们的结构基本是一致的,都是由实体说明和结构体两部分组成。实体说明是对这个设计实体与外部电路进行接口的描述,它规定了设计单元的输入输出接口信号或引脚,是设计实体对外的一个通信界面。结构体用来描述此设计实体的逻辑结构和逻辑功能。实体语句结构如下:ENTITY 实体名 ISGENERIC(类属表);PORT(端口表);END ENTITY 实体名;实体以语句“ENTITY 实体名 IS”开始,语句“END ENTITY 实体名;”结束。(2)结构体结构体用来描述基本设计单元的结构、行为、元件及内部连接关系,它定义了设计实体的功

30、能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。结构体对其基本设计单元的输入和输出关系有以下三种方式进行描述,即行为描述、数据流描述和结构描述。要注意的是,结构体是对实体功能的具体描述,它一定要放在实体的后面。结构体的语句格式为:ARCHITECTURE 结构体名 OF 实体名 IS定义语句BEGIN功能描述语句END 结构体名;(3)块、子程序和进程1、块语句(BLOCK)在VHDL程序中,结构体是由多个BLOCK块构成的,如果将结构体比做总电路原理图,那么,每个BLOCK块相当于一张子原理图。BLOCK块语句的结构:块标号:BLOCK接口说明类属说明BEGIN并行块语句END

31、BLOCK(块标号);2、进程PROCESS语句结构可以描述一个功能独立的电路。与BLOCK语句不同的是,在系统仿真时,PROCESS结构中的语句是按顺序逐条向下执行的,而BLOCK则是并发执行的。一个结构体中可以有多个并行运行的进程结构,每一个进程内部是由一系列顺序语句来构成的。PROCESS语句的结构:进程标号 PROCESS (敏感信号表)IS进程说明语句BEGIN顺序描述语句END PROCESS 进程标号;3、子程序子程序模块是利用顺序语句定义和完成算法的,它不能像进程那样可以从本结构体的其他块或进程结构中读取信号值或向信号赋值,只能通过子程序调用与子程序的界面端口进行通信。子程序被

32、调用时,首先要初始化,执行处理功能后,将处理结果传递给主程序。子程序有两种类型:过程、函数。过程的语句结构:PROCEDURE 过程名 (参数表) IS说明部分BEGIN过程语句部分END PROCEDURE 过程名;函数的语句结构:FUNCTION 函数名 (参数表)RETURN 数据类型 IS 说明部分;BEGIN顺序语句;RETURN 返回变量名;END RETURN 函数名;(4)库用来存放已编译的实体、结构体、包和配置,在设计中可以使用ASIC芯片制造商提供的库,也可以使用由用户生成的IP库。库语句格式为:LIBRARY 库名;USE语句指明库中的程序包。USE语句常用格式:USE库

33、名.程序包名.项目名;作用是向本设计实体开放指定库中的特定程序包内的所选定的项目。USE库名.程序包名.ALL;作用是向本设计实体开放指定库中的特定程序包内所有内容。(5)程序包用来存放各个设计都能共享的数据类型、子程序说明、属性说明和元件说明等部分。使用时只要用USE子句进行说明即可。程序包由两个部分组成:程序包首和程序包体。PACKAGE 程序包名 ISEND PACKAGE 程序包名;PACKAGE BODY 程序包名 IS.END PACKAGE BODY程序包名;(6)配置用来从库中选择所需要的单元来组成该系统设计的不同规格的不同版本,VHDL已成为IEEE的标准语言,使用IEEE提

34、供的版本。CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 END FOR;END 配置名;2.4 本章小结在本章中作者介绍了VHDL硬件描述语言的简介,主要特点和基本结构。第3章 FIR滤波器理论3.1 数字滤波器概述数字滤波器一般是用来变换时域或者频域中某些要求信号的属性,滤除信号中某一部分频率分量。经过数字滤波器的信号是让其频谱与数字滤波器的频率响应相乘从而得出新的结果。经过一个线性卷积过程,从时域上输入信号与滤波器的单位冲激响应作一个卷积和。下面是卷积定义式: (3-1)数字滤波器在一般情况下分为有限长单位冲激响应(Finite impulse respon

35、se,FIR)滤波器和无限脉冲响应(Infinite impulse response,IIR)滤波器。FIR数字滤波器的设计方法和IIR数字滤波器的设计方法有着很大的差别,因为它的设计是选择有限长度的h(n),使频率响应函数H(e)满足指标。目前数字滤波器正在用电子计算机规范和算法进行分析的方式来逐渐代替模拟滤波器的RLC元器件和放大电路。对于数字滤波器这个系统来说,若滤波器的系统函数为H(z),与系统函数对应的脉冲响应为h(n),x(n)表示输入时间序列,那么它们在时域上有如下关系: (3-2)将等式两边分别转换到Z域内: (3-3)其中X(z)、Y(z)依次是x(n)和y(n)对应的Z变

36、换。在时域内,一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程: (3-4)x(n)和y(n)分别是输入序列和输出序列,ai、bi代表滤波器结构的系数,N代表滤波器的阶数。若所有的ai均为0,则FIR滤波器可以表示为差分方程: (3-5)因此,对于有限长单位冲激响应滤波器,其输出y(n)只取决于有限个过去和现在的输入。若所有的ai不均为0,则得IIR滤波器可以表示为差分方程: (3-6)对于无限脉冲响应滤波器,它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出。3.2 数字滤波器的性能指标我们在进行滤波器设计时,需要确定其性能指标。一般来说,

37、滤波器的性能要求往往以频率响应的幅度特性的允许误差来表现。以低通滤波器特性为例,如图3.1所示,频率响应有通带、过渡带及阻带三个范围。图3.1 低通滤波器幅频特性的容限图在通带中: (3-7)在阻带中: (3-8)上式的表示通带截止频率,是阻带截止频率,代表通带误差,则表示阻带误差。上述滤波器的传递函数如下: (3-9)上式中H(e)代表幅频特性,代表相频特性。通常通带内允许的最大衰减用表示,阻带内允许的最小衰减用表示,和分别定义为: (3-10) (3-11)式中均假定已被归一化为1。数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型。由于数字滤波器的频率响应是周期性的,周期为2。

38、各种理想数字滤波器的幅度频率响应如图3.2所示。图3.2 各种理想数字滤波器的幅度频率响应3.3 线性相位特性对一个数字系统(数字滤波器)如图3.3所示。图3.3 数字滤波器框图在理想情况下,对所传输的信号,若不失真,如图3.4所示。图3.4 离散信号无失真传输这就意味着,输入输出之间应满足:(1)y(n)对x(n)作比例放大(k倍);(2)时间上有一定延迟。这称为离散系统(数字滤波器)无失真传输的时域条件,用表达式可表示为: (3-12)作z变换,可得: (3-13)其频率响应为: (3-14)由上式可得数字滤波器无失真传输条件为: (3-15)上述两式表明,信号通过数字滤波器无失真传输的频

39、域条件是:数字滤波器在有用信号的频带内,具有恒定的幅频响应和线性相位特性。FIR滤波器的设计任务是选择有线长度的h(n),使传输函数满足要求。对于长度为N的h(n),传输函数为: (3-16) (3-17)上式中,称为幅度特性,称为相位特性。线性相位是指相位函数满足如下特性:或,是起始相位,为常数,一般情况下称第一种情况为第一类线性相位,称第二种情况为第二类线性相位。满足第一类线性相位的充要条件是:h(n)为实序列,并且对(N-1)/2偶对称,即;满足第二类线性相位的充要条件是:h(n)为实序列,并且对(N-1)/2奇对称,即。3.4 FIR滤波器的基本结构FIR滤波器的基本结构有以下几种:直

40、接型、级联型、线性相位型、频率采样型。3.4.1 直接型设FIR滤波器的单位冲击响应h(n)为一个长度为N的序列,则滤波器系统函数为: (3-18)表示这一系统输入输出关系的差分方程为: (3-19)直接型由差分方程可得出对应的网络结构如图3.5所示。图3.5 FIR滤波器的直接型结构直接型结构的优点:简单直观,乘法运算量较少。缺点:调整零点较难。3.4.2 级联型当需要控制滤波器的传输零点时,可将H(z)分解为实系数二阶因子的乘积形式: (3-20)式中,H(z)为h(n)的z变换,为实数。级联型结构如图3.6所示。图3.6 FIR滤波器的级联型结构该结构的优点:调整零点比直接型方便。缺点:

41、H(z)中的系数比直接型多,因而需要的乘法器多。当H(z)的阶次高时,也不易分解。3.4.3 线性相位型结构FIR滤波器的线性相位结构有偶对称和奇对称,不论为偶对称还是奇对称都有:若N=偶数,系统函数为: (3-21)若N=奇数,系统函数为: (3-22)对这两种情况,都可以用FIR直接型实现,其信号流图如图3.7所示。(a)N=偶数时的结构(b)N=奇数时结构图3.7 线性相位型结构这种结构在本质上是直接型,但乘法次数比直接型的省了一半。3.4.4 频率采样型由于任何一个有限长度序列都可以有一相同长度的频域采样值相对应。根据这个特点,利用系数作为参数实现滤波器的设计结构。离散傅里叶变换与系统

42、函数之间的关系可以用下式表示: (3-23)式中,。这样,H(z)是由梳状滤波器Hc(z)和N个一阶网络Hk(z)的并联结构进行级联而成的,其网络结构(信号流图)如图3.8所示。Hc(z)是一个树状网络,其零点为:,k=0,1,2,N-1 (3-24)零点刚好和极点一样,等间隔地分布在单位圆上。理论上,极点和零点相互抵消,保证了网络的稳定性。频率采样结构的优点:(1)在频率采样点,只要调整H(k)就能有效地调整频响特性;(2)只要h(n)长度N相同,对于任何频响,其梳状滤波器部分和N个一阶网络部分完全相同,只是各支路增益H(k)不同。相同部分便于标准化、模块化。缺点:(1)寄存器长度都是有限的

43、,零、级点可能不能正好抵消,造成系统不稳;(2)当N很大时,其结构很复杂,需要的乘法器和延时单元很多。图3.8 FIR滤波器的频率采样结构3.5 本章小结在本章中作者阐述了数字滤波器的基本原理,以及衡量滤波器好坏的几个重要指标,并在此基础上介绍了FIR滤波器的线性相位特征这个优势。最后作者介绍了几种常用的FIR滤波器结构,并简单的评价了几种滤波器的优点和缺点。第4章 滤波器的参数设计4.1 设计的滤波器指标本设计采用VHDL语言完成FIR滤波器的设计仿真。用VHDL语言编程设计底层文件,顶层文件可任意(可用原理图方式或文本方式),具体设计指标如下:1、采样频率Fs=200KHz;2、截止频率F

44、c=10KHz;3、输入序列为11位(最高位为符号位);4、窗口类型为矩形窗;5、滤波器长度为16;6、输出结果保留11位。所以,在确定了FIR滤波器的设计指标之后主要的任务就是进行FIR滤波器参数的计算。在进行参数计算之前先介绍一下常见的几种窗函数。4.2 窗函数法一个理想低通滤波器的幅频特性如图4.1所示。的表达式为: (4-1)图4.1 理想低通滤波器频谱图对进行离散时间傅里叶逆变换,得 (4-2)是一个关于对称的无限长序列。窗函数设计FIR滤波器的的设计过程通常包括如下步骤:(1)根据设计要求中FIR滤波器的类型来确定采用何种FIR滤波器类型结构。(2)根据设计要求中FIR滤波器参数决

45、定窗函数的类型,具体的窗函数和。参数的对应关系如表4.1所示。(3)根据设计要求确定FIR滤波器的频率响应函数,其中表示幅度特性,代表相位特性。(5)对上式进行傅里叶反变换,计算FIR滤波器的单位脉冲响应,响应的计算公式为。(6)加窗得到设计结果,即。表4.1 几种窗函数性能参数对比表窗函数主瓣宽度/rad旁瓣水平/db过渡带宽度/rad阻带最小衰减/db矩形窗-1321汉宁窗-3144海明窗-4153布莱克曼窗-5774凯塞窗(=7.865)-57804.3 FIR滤波器系数计算使用Matlab提供的Fdatool工具计算滤波器的参数,该工具启动方式为startToolboxesFilter

46、 DesignFilter Design & Analysis Tool,或者在命令窗口中直接输入Fdatool,即可进入该工具的界面,其界面如图4.2所示。该工具能算出绝大多数滤波器的参数。本次设计选用的是低通类型(Lowpass),选择FIR滤波器的窗函数法进行设计。选定窗函数法(Window)后,在右侧进行相关参数的设置,根据设计要求选择矩形窗(Rectangular)进行设计。在Specify order表示滤波器阶数的一个参数(n阶滤波器,specify ordern-1),本次设计16阶滤波器,所以选定Specify order并填入15。在Frenquency Specifica

47、tions选项,需要定义采样频率Fs和频带的截止频率Fc。根据设计要求,需要完成一个低通滤波器设计,故在此只需要定义Fs=200KHz,Fc=10KHz。本次毕设中的参数全部设定后的结果如图4.2所示。图4.2 Fdatool工具设计界面参数设定完毕,单击工具窗口下方的Design Filter按钮,就开始进行相关参数计算。在计算结果中可以看到该滤波器的一些相关曲线,如幅频响应(如图4.3所示)、相频响应(如图4.4所示)、单位冲激响应(如图4.5所示)。图4.3 滤波器的幅频响应图4.4 滤波器的相频相应图4.5 滤波器的单位冲激相应通过上面三个图形可以观察滤波器的设计性能是否满足设计要求,

48、而窗函数法的重要的一个过程就是计算出冲击系数,下面将介绍如何获得这个冲击系数。计算的结果可通过File下拉菜单中的Export命令取出,点击Export打开Export对话框,如图4.6所示,点击Export按钮可将滤波器系数数据存放到当前工作空间,并以Num命名。图4.6 冲击系数输出对话框保存并关闭滤波器设计分析工具回到Matlab主窗口,在命令编辑区输入Num可得到工具的计算结果。在Matlab中输入Num可得到下面结果,如图4.7所示。图4.7 matlab计算到的归一化系数由于FPGA中使用的都是定点数,所以需要在,Matlab将上面的浮点数转化为定点数,由于设计的输入数据10位宽度

49、的。需要在Matlab的命令窗口中输入round(Num*(210),所得结果如图4.8所示。图4.8 定点化之后的FIR滤波器系数所以最终获得的冲击系数为h=27 39 52 63 73 81 87 90 90 87 81 73 63 52 39 27。4.4 本章小结本章中作者从分析滤波器的性能要求入手,接着分析了窗函数法数字滤波器的设计思路,并对比的几种窗函数的性能。最后重点介绍了如何利用Matlab工具完成了FIR滤波器的冲击系数的设计。大连东软信息学院毕业设计(论文)第5章 FIR滤波器系统设计5.1 整体设计方案根据以前所学知识,课题设计出一个具有频率控制功能DDS,要求输出频率分

50、别为10KHz和80KHz,将输出的两路数字信号进行叠加,并通过所设计的FIR滤波器进行滤波,由于本设计中采用的是低通滤波器,所以通FIR滤波器之后输出的波形是10KHz正弦波。具体结构框图如图5.1所示。图5.1 设计整体结构框图其中每个DDS分别由地址发生器和ROM组成,ROM中存放着正弦波的量化值,其每个周期量化成128个数值,通过改变地址发生器的产生频率来表示控制正弦波的频率。系统是由许多子模块构成的,这包括:正弦信号发生模块、分频模块设计、有符号乘法器模块以及FIR滤波器模块设计。下面依次进行介绍。5.2 模块设计本设计功能模块包括正弦信号发生模块、分频模块、有符号乘法器模块、FIR

51、滤波器设计模块。5.2.1 正弦信号发生模块设计本设计中采用查找表的方法产生正弦波,正弦信号发生模块由一个ROM和一个计数器组成。前面已经介绍了本毕设采用的是每个周期采样128次的方式,这样能最大程度的保证波形不失真。ROM采用的是10位宽度和128位深度。ROM的设计关键在于ROM初始值的获取。数值的计算也是借助Matlab工具来完成的,在Matlab命令窗中输入ROMinit= round(Num*(210)完成了冲击系数的定点化,但是存储在ROM的数据是有符号数,所以需要将ROMinit转化为二进制补码的形式,具体的实现代码如下所示:x,y =size(ROM_sine_init);fo

52、r j=1:y;if(ROM_sine_init(j)0)b(j)= bitand(a(j),15)ROM_sine_init(j)=ROM_sine_init(j)+1024;ROM_sine_init(j)=bitand(ROM_sine_init(j),1023);End;End;最后计算得到的变量ROM_sine_init就是最后ROM的初始值。另外还需要一个计数器作为ROM的地址输入。该计数器的进程代码如下:PROCESS (clock) BEGINIF clockEVENT AND clock=1 THENIF cnt=127 THENcnt=0;ELSEcnt=cnt+1;END

53、 if;END IF;END PROCESS;该模块的端口如下图5.2所示。图5.2 正弦波发生模块端口图clock是时钟信号,q是输出的数据。该模块的实体定义如下:ENTITY counter_ROM ISPORT(clock: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR (9 DOWNTO 0);END counter_ROM;正弦波信号发生模块的RTL级框图如下图5.3所示。图5.3 正弦波信号发生模块的RTL级框图5.2.2 分频器设计分频器的作用主要是通过时钟输入来获取不同的时钟,进而满足不同模块的需要。在本设计中需要使用两个地址发生器的频率是不一样的。

54、另外就是采用时钟输入也不同,所以本设计中至少需要三个不同频率的时钟。下面简单的计算一下各个时钟的频率。(1)80KHz地址发生器的时钟频率:由于每个周期需要读出128个数据,所以其频率为:80K*128=10.24Mhz。(2)10KHz地址发生器的时钟频率:由于每个周期需要读出128个数据,其频率为:10KHz*128=1.28MHz。(3)采样频率的时钟为200KHz。由于系统的时钟为50Mhz。所以需要进行一系列的分频得到相应的时钟。分频模块的RTL级框图如下图5.4所示。图5.4 分频模块的RTL级框图该部分的实体定义如下所示:ENTITY div ISPORT(clock,rst:

55、IN STD_LOGIC;clk_10KHz,clk_80KHz,clk_sample:OUT STD_LOGIC);END div;编译之后产生的RTL级框图如图5.5所示。图5.5 分频模块的RTL级框图5.2.3 有符号乘法器设计FIR滤波器中乘法器是其中的一个主要的结构。FIR低通滤波器的输入数据是11位的,所以这里需要设计一款11位的有符号乘法器。设计的思路是现将有符号数取绝对值。然后对绝对值进行乘法运算。最后根据“同号得正,异号为负”的原则确定最后的输出。该部分的实体定义如下所示:ENTITY MY_MULT ISPORT(dataa: IN STD_LOGIC_VECTOR (1

56、0 DOWNTO 0);datab: IN STD_LOGIC_VECTOR (10 DOWNTO 0);result: OUT STD_LOGIC_VECTOR (21 DOWNTO 0);END MY_MULT;该乘法模块的端口图如图5.6所示。图5.6 有符号乘法器端口图dataa和datab是有符号的两个输入数据,result计算结果。该部分的具体代码如下所示:ARCHITECTURE rtl OF MY_MULT ISSIGNALdataa_r:STD_LOGIC_VECTOR (9 DOWNTO 0);SIGNALdatab_r:STD_LOGIC_VECTOR (9 DOWNTO

57、 0);SIGNALresult_r:STD_LOGIC_VECTOR (19 DOWNTO 0);SIGNALresult_s:STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINdataa_r=dataa(9 DOWNTO 0) WHEN dataa(10)=0 ELSE(dataa(9 DOWNTO 0) XOR 1111111111)+1;datab_r=datab(9 DOWNTO 0) WHEN datab(10)=0 ELSE(datab(9 DOWNTO 0) XOR 1111111111)+1;result_s=00WHEN(dataa(10)=0 and

58、datab(10)=0)ELSE11WHEN(dataa(10)=0 and datab(10)=1)ELSE11WHEN(dataa(10)=1 and datab(10)=0)ELSE00;result_r=dataa_r*datab_r;result=result_s & result_r WHEN result_s=00 ELSEresult_s & (result_r XOR 11111111111111111111)+1);END rtl;该部分代码的RTL级框图如图5.7所示。图5.7 有符号乘法器模块RTL级框图5.2.4 FIR滤波器设计FIR低通滤波器主要的实现就是完成如第

59、三章所描述的结构。这个结构的主要单元就是延时器、加法器和乘法器。延时器主要是通过VHDL语言设计D触发器来实现的,加法器采用VHDL内置的运算符,乘法器采用前面设计的有符号乘法器。该模块的实体如下所示:ENTITY FIR_lowpass ISPORT( clk : IN STD_LOGIC; x_in : IN STD_LOGIC_VECTOR(10 DOWNTO 0); d_out : OUT STD_LOGIC_VECTOR(10 DOWNTO 0);END FIR_lowpass;该模块的端口如图5.8所示。图5.8 FIR低通滤波器端口图下面给出D触发器的代码:PROCESS (cl

60、k) BEGINIF clkEVENT AND clk=1 THEN data15=data14;data14=data13;data13=data12;data12=data11;data11=data10;data10=data9;data9=data8;data8=data7;data7=data6;data6=data5;data5=data4;data4=data3;data3=data2;data2=data1;data1=data0;data0=x_in;END IF;END PROCESS;该部分设计的RTL级框图,如图5.9所示。图5.9 FIR滤波器的RTL级框图系统进行编

温馨提示

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

评论

0/150

提交评论