毕业设计178基于FPGA的FIR滤波器设计

  • 格式:doc
  • 大小:1.20 MB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

引言 (1)

1.软件及硬件平台 (1)

1.1VHDL语言特点 (2)

1.2MAX PLUS II开发环境 (3)

1.3可编程逻辑器件 (4)

1.4ALTERA公司FLEX10K系列 (5)

2.FIR滤波器基本理论 (6)

2.1数字滤波器概述 (6)

2.2有限长单位冲激响应(FIR)滤波器 (6)

2.2.1 FIR滤波器特点 (6)

2.2.2 FIR滤波器结构 (6)

2.3FIR数字滤波器的实现方法 (8)

3.基于FPGA实现FIR滤波器的研究 (9)

3.1基于乘法器结构的FIR滤波器在FPGA上的实现结构 (9)

3.1.1基于乘累加 FIR 滤波器结构 (9)

3.1.2 基于并行乘法器直接型 FIR 滤波器结构 (10)

3.2基于分布式(DA)算法的FIR滤波器在FPGA上实现结构 (11)

3.2.1 用分布式原理实现FIR滤波器-串行方式 (12)

3.2.2 用分布式原理实现FIR滤波器-并行方式 (13)

3.3CSD码及最优化方法 (14)

4.线性相位FIR滤波器的设计 (16)

4.1FIR滤波器的设计要求 (16)

4.2软件环境和硬件平台选择 (16)

4.3FIR滤波器的设计方案 (16)

4.4各模块设计 (17)

5.仿真结果及分析 (21)

5.1仿真结果 (21)

5.2仿真结果分析 (22)

6.总结 (22)

致谢 (23)

参考文献 (23)

ABSTRACT (25)

基于FPGA的FIR滤波器设计

摘要:本文提出了一种采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,并以Altera公司的FPGA器件EPF10K30为例完成了FIR滤波器的模块化设计过程。底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在MAX+plusII上进行了实验仿真。仿真结果表明:该设计方案可行,可为今后的数字滤波器模块化研究提供另一种思路。

关键词:VHDL;FPGA;FIR滤波器;Maxplus

引言

许多工程技术领域都涉及到信号,这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等。如何在较强的背景噪声和干扰信号下提取出真正的信号并将其用于实际工程,这正是信号处理要研究解决的问题。20世纪60年代,数字信号处理理论得到迅猛发展,理论体系和框架趋于成熟,到现在它已经成长为一门独立的数字信号处理学科。数字滤波器在数字信号处理中占有很重要的地位,它涉及的领域很广,如:通信系统、系统控制、生物医学工程、机械振动、遥感遥测、地质勘探、航空航天、电力系统、故障检测、自动化仪器等。

系统数字滤波是提取有用信息非常重要而灵活的方法,是现代信号处理的重要内容。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应可接近理想特性,且精度很高又容易集成。在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。

硬件描述语言(VHDL)是数字系统高层设计的核心,是实现数字系统设计新方法的关键技术之一。随着可编程逻辑器件在速度和集成度方面的飞速发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器,FIR数字滤波器在数字信号处理系统中应用非常普遍,常被用来对原始(或输入)样本数据进行消除高频、抑制噪声等处理以产生所需的输出。

数字滤波器的好坏对相关的众多工程技术领域影响很大,一个好的数字滤波器会有效地推动众多工程技术领域的技术改造和科学发展。所以对数字滤波器的工作原理、硬件结构和实现方法进行研究具有一定的意义。

本设计将采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在Max+plusII上进行实验仿真。由仿真结果判断设计的可行性。

1.软件及硬件平台

1.1 VHDL语言特点

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL 是一个标准语言,为众多的EDA厂商支持,因此移植性好。

VHDL设计是行为级的设计,所带来的问题是设计者的设计思想与实际电路结构是相脱节的。设计者主要是根据VHDL的语法规则,对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统延时的仿真。实际设计过程中,由于每个设计工程师对语言规则、对电路行为的理解程度不同,每个是大相径庭。因此,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的区别,甚至某些臃肿的电路还会产生难以预料的问题。从这些问题出发,很有必要深入讨论在VHDL设计中如何简化电路结构,优化电路设计的问题。

一段独立的VHDL代码至少包含3个组成部分:

库(LIBRARY)声明:列出了当前设计中需要用到的所有库文件,如ieee,std和work等。

实体(ENTITY):定义了电路的输入/输出引脚。

构造体(ARCHITECTURE):所包含的代码描述了电路要实现的功能。库是一些常用代码的集合,将电路设计中经常使用的代码存放到库中有利于设计的重用和代码共享,库的典型结构如图1-1。

代码通常以函数(FUNCTION)、过程(PROCEDURE)或元件(COMPONENT)等标准形式存放在包裹(PACKAGE)中,用户可以根据需要对其进行编译使用。

图1-1 一个库的基本组成部分

为了更有效的编写VHDL代码,必须知道哪些数据类型是可用的以及怎样说明和使用它们。表1-1中总结了VHDL中基本的可综合的数据类型。

表1-1 VHDL中基本的可综合的数据类型

数据类型可综合的数据