用VHDL语言编程实现FIR滤波器 下载本文

内容发布更新时间 : 2024/5/18 18:18:35星期一 下面是文章的全部内容请认真阅读。

摘要

本课题是基于VHDL的数字滤波器的设计与实现,要求完成数字滤波器的VHDL语言的模块描述,通过MAX+PLUSII进行各模块及顶层的仿真,并下载实现数字滤波器功能。本设计采用窗函数法实现线性FIR数字滤波器的设计,并以一个十六阶低通FIR数字滤波器的实现为例说明了设计过程。首先,根据FIR数字滤波器的基本原理设计出系统总体框图;其次,用窗函数法计算出特性参数;接着用VHDL语言编写各模块的程序并仿真;最后,按照系统总体框图连接各模块实现数字滤波器的功能。实现滤波器的关键——乘加运算,给出了将乘加运算转化为移位相加的算法,并采用了CSD码与并行加法结构来提高速度。设计的电路通过软件进行了验证,结果表明:电路工作正确可靠,速度快,能满足设计要求。

关键词:FIR滤波器,VHDL,窗函数,CSD码

Abstract

This subject is design and realization of digital filter based on VHDL. It requires to complete the description of digital filter module which is based on VHDL language , simulate each module and the top layer using MAX+PLUSII and download to realize function of digital filter. This design uses window function method to realize the design of linear FIR digital filter and illustrate the design process according to the realization of a 16 steps low pass FIR digital filter. Firstly, design the total system diagram according to the basic principle of FIR digital filter; Secondly, use window function method to calculate characteristic parameters; Then compile and simulate the program of each module using VHDL language; Finally, connect the modules according to the whole system diagram to realize function of digital filter. The key of realizing FIR filter——multiply and add operation, an operation of changing multiply and add operation to shift add will be given, besides, canonic signal digital and parallel add structure will be adopted to increase speed. The circuit that is designed is proved through the software. The result shows that the circuit works correctly, reliably and quickly, meeting the designing requirement.

Keywords: FIR digital filter, VHDL, Window Function, Canonic Signal Digital (CSD)

目录

第一章 绪论 ----------------------------------------------------------------------------------------------- 1

一、课题的提出-------------------------------------------------------------------------------------- 1 二、国内外的研究情况 ---------------------------------------------------------------------------- 2 第二章 课题的初步设计 -------------------------------------------------------------------------------- 4

一、FIR滤波器的基本原理 ----------------------------------------------------------------------- 4

(一)FIR滤波器的概述与结构 ------------------------------------------------------------ 4 (二)FIR滤波器的线性相位条件 --------------------------------------------------------- 5 (三)FIR滤波器的幅度特性 --------------------------------------------------------------- 6 (四)FIR滤波器的零点特性 --------------------------------------------------------------- 8 二、窗函数设计法 ---------------------------------------------------------------------------------- 8 三、系统框图 --------------------------------------------------------------------------------------- 13 四、设计特点 --------------------------------------------------------------------------------------- 13 第三章 用VHDL语言编程实现FIR滤波器 ---------------------------------------------------- 16

一、参数设计 --------------------------------------------------------------------------------------- 16 二、CSD码 ----------------------------------------------------------------------------------------- 19

(一)传统的CSD码介绍 ----------------------------------------------------------------- 19 (二)本设计中所使用的CSD码 -------------------------------------------------------- 20 三、设计框图 --------------------------------------------------------------------------------------- 21 第四章 程序实现及调试过程 ------------------------------------------------------------------------ 24

一、MAX+PLUSII软件介绍 -------------------------------------------------------------------- 24 二、VHDL语言介绍 ----------------------------------------------------------------------------- 24 三、VHDL的实现及各模块仿真结果 -------------------------------------------------------- 25

(一)VHDL的实现 ------------------------------------------------------------------------ 25 (二)各模块仿真结果 --------------------------------------------------------------------- 25

第五章 结果分析 --------------------------------------------------------------------------------------- 28 第六章 结论及改进 ------------------------------------------------------------------------------------ 32 致谢 -------------------------------------------------------------------------------------------------------- 33 参考文献 -------------------------------------------------------------------------------------------------- 33 附录 -------------------------------------------------------------------------------------------------------- 35

扬州大学本科生毕业设计

第一章 绪论

一、 课题的提出

(一) 课题的任务及内容

本课题的任务是完成数字滤波器的VHDL语言的模块描述,并通过MAX+PLUSII进行各模块及顶层的仿真,并下载实现数字滤波器功能。

主要内容有:(1)完成基于VHDL的并行FIR数字滤波器的设计。 (2)用MAX-PLUSII编程实现。 (3)完成数字滤波器算法的仿真。

(二) 课题实现的可行性

数字滤波器在需要进行数字信号处理的许多系统中起着重要作用,实际上,语音处理设备、图像处理设备和数字通信系统中都使用数字滤波器。数字滤波器能满足对幅度和相位特性的严格要求,避免了模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。模拟滤波器是数字滤波器的基础,而现在,更多的利用数字滤波器代替模拟滤波器作为频率选择性滤波器。从滤波器的单位冲激响应来看,滤波器可分为无限长单位冲激响应的IIR滤波器和有限长单位冲激响应的FIR滤波器。有限冲激响应(FIR)滤波器能在设计任何频率特性的同时保证严格的线性特性相位。

目前FIR滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。

当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的

1