FPGA实现FIR抽取滤波器的设计

合集下载

基于FPGA的FIR数字滤波器设计

基于FPGA的FIR数字滤波器设计

1、F PGA技术简介现场可编程门阵列FPGA是80年代末开始使用的大规模可编程数字IC器件,它充分利用EDA技术进行器件的开发与应用。

用户借助于计算机不仅能自行设计自己的专用集成电路芯片,还可在计算机上进行功能仿真和时序仿真,及时发现问题,调整电路,改进设计方案。

这样,设计者不必动手搭接电路、调试验证,只需短时间内在计算机上操作即可设计出与实际系统相差无几的理想电路。

而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此成为科研产品开发及其小型化的首选器件,其应用极为广泛。

3.1 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。

FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

3.2 FIR滤波器特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。

2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

基于FPGA的高速FIR数字滤波器的设计

基于FPGA的高速FIR数字滤波器的设计

基于FPGA的高速FIR数字滤波器的设计目前FIR的实现办法主要有3种:利用单片通用数字滤波器、器件和可编程规律器件实现。

单片通用数字滤波器用法便利,但因为字长和阶数的规格较少,不能彻低满足实际需要。

用法DSP器件实现虽然容易,但因为程序挨次执行,执行速度必定不快。

有着规整的内部规律阵列和丰盛的连线资源,特殊适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。

但长久以来,FPGA向来被用于系统规律或时序控制上,很少有信号处理方面的应用,其缘由主要是由于在FPGA中缺乏实现乘法运算的有效结构。

本文利用FPGA乘累加的迅速算法,可以设计出高速的FIR数字滤波器,使FPGA在数字信号处理方面有了长足的进展。

2 Matlab设计滤波器参数
利用Matlab为设计FIR滤波器提供的工具箱,挑选滤波器类型为低通FIR,设计办法为窗口法,阶数为16,窗口类型为Hamming,Beta为0.5,Fs为8.6 kHz,FC为3.4 kHz,导出的滤波器系数如下:
3 迅速FIR滤波器算法的基本原理
(1) 分布式算法
分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积举行累加得到终于结果。

对于一个N(N为偶数)阶线性相位FIR数字滤波器,输出可由式(1)表示:
(2) 乘法器设计
高性能乘法器是实现高性能的FIR运算的关键,分析乘法器的运算过
第1页共6页。

基于FPGA的FIR滤波器设计

基于FPGA的FIR滤波器设计

FIR滤波器设计1项目背景1.1FIR和IIR滤波器FIR(Finite Impulse Response)Filter:有限冲激响应滤波器,又称为非递归线性滤波器。

FIR滤波器,顾名思义,其脉冲响应由有限个采样值构成。

长度(抽头数)为N、阶数为N−1的FIR系统的转移函数、差分方程和单位冲激响应分别如下列三式所示。

图510IIR(Infinite Impulse Response)Filter:无限冲激响应滤波器,又称为递归线性滤波器。

FIR相对与IIR来说,具有如下的优点:可以具备线性相位特性线性相位的概念:如果滤波器的N个实值系数为对称或者反对称结构,该滤波器具有线性相位。

W(n)=±W(N−1−n)W(n)=±W(N−1−n)线性相位的特性:通过线性相位滤波器的信号的所有频率部分具有相同的延迟量。

易于设计但FIR也有自身的缺点:同样指标的滤波器,FIR需要更多的参数,即实现时消耗更多的计算单元,产生更大的延迟。

1.2FIR滤波器的原理信号通过一个FIR滤波器其实就是信号与FIR滤波器的系数进行卷积(即乘累加)的过程。

我们以一个简单信号模型为例,了解一下FIR波形器的原理。

现在有三组信号,分别是:信号1:低频信号,即在时域上变化慢的信号,其输入先后为11112222。

信号2:直流信号,其输入先后为1111111。

信号3:高频信号,即在时域上变化快的信号,其输入先后为12121212。

简单的滤波器模型低通滤波器:11信号1与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:111 1.5222。

可以看到,低频信号经过低通滤波器后,各个点仍然保持了其形状,而且在1变成2时,还变平缓了。

信号2与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:1111111。

可以看到,直流信号与输入的信号完成相同。

信号3与低通滤波器进行卷积运算,其结果再除以2,得到如下数据:1.5 1.5 1.5 1.5 1.5 1.51.5。

FPGA的FIR抽取滤波器设计

FPGA的FIR抽取滤波器设计

FPGA的FIR抽取滤波器设计用FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA中集成了硬件乘法器,使FPGA在数字信号处理方面有了长足的进步。

本文介绍了一种采用Xilinx公司的XC2V1000实现FIR抽取滤波器的设计方法。

具体实现结构设计基于抽取滤波器的工作原理,本文采用XC2V1000实现了一个抽取率为2、具有线性相位的3阶FIR抽取滤波器,利用原理图和VHDL共同完成源文件设计。

图1是抽取滤波器的顶层原理图。

其中,clock是工作时钟,reset是复位信号,enable是输入数据有效信号,data_in(17:0)是输入数据,data_out(17:0)是输出数据,valid是输出数据有效信号。

adder18是加法器模块,mult18是乘法器模块,acc36是累加器模块,signal_36to18是数据截位器模块,fir_controller是控制器模块。

控制器定时向加法器、乘法器和累加器发送数据或控制信号,实现流水线操作。

图1 抽取滤波器顶层原理图控制器控制器是抽取滤波器的核心模块,有两个功能:一是接收输入数据,二是向其它模块发送数据和控制信号。

它根据加法器、乘法器和累加器的时序特性,有规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器在每个时钟周期都完成指定的任务,从而实现流水线操作。

控制器用VHDL语言描述,用寄存器存放抽头和系数。

加法器加法器的输入和输出都是18 bit,用VHDL语言描述实现。

它有两个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二个时钟把相加结果锁存输出。

乘法器乘法器为18 bit输入,36bit输出,用库元件MULT18X18S和36 bit锁存器实现。

MULT18X18S是XC2V1000自带的18×18bit硬件乘法器,单个时钟就可完成乘法运算。

FIR滤波器的FPGA实现方法

FIR滤波器的FPGA实现方法

FIR滤波器的FPGA实现方法在数字信号处理系统中,有限脉冲响应(finite impulse response,FIR)数字滤波器是一个非常重要的基本单元。

近年来,由于FPGA 具有高速度、高集成度和高可靠性的特点而得到快速发展。

随着现代数字通信系统对于高精度、高处理速度的需求,越来越多的研究转向采用FPGA 来实现FIR 滤波器。

而对于FIR 滤波器要充分考虑其资源与运行速度的合理优化,各种不同的FIR 滤波结构各具优缺点,在了解各种结构优缺点后才能更好地选择合适结构来实现FIR滤波。

1 FIR 数字滤波器FIR 数字滤波器由有限个采样值组成,设计中在满足幅值特性时,还能保证精确、严格的相位特性,因此在信号处理等领域得到广泛的应用。

对于FIR 滤波器,其输出y(n)表示为如下形式:式中:N 为滤波器的阶数(或抽头数);x(i)表示第i 时刻的输入样本;h(i)为FIR 滤波器的第i级抽头系数。

由于FIR 滤波器的冲击响应为一个有限序列,其系统函数可表示为:FIR 滤波器的基本结构如图1 所示。

FIR 滤波器只在原点处存在极点,所以这使得FIR 滤波器具有全局稳定性。

同时FIR 滤波器满足线性相位条件,其冲击响应序列为实数且满足奇对称或偶对称条件,即:2 实现方法运用FPGA 来实现FIR 数字滤波器的结构多种多样,但是主要有以下几类:串行结构、并行结构、转置型结构、基于FFT 算法结构、分布式结构。

其他类型的FIR 滤波器结构都可以由以上几种结构衍生而来。

2.1 串行结构由表达式(1)可知,FIR 滤波器实质是做一个乘累加运算,其滤波器的阶数决定了一次乘累加的次数,其串行结构如图2 所示。

串行结构的FIR 滤波器结构简单,硬件资源占用少,只需要复用1 个乘法器和1 个加法器,所以成本较低。

但是,这种结构的FIR 滤波器要经过多个时。

基于FPGA乘法器的FIR滤波器系统设计

基于FPGA乘法器的FIR滤波器系统设计

基于FPGA乘法器的FIR滤波器系统设计FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以根据设计者的需求和要求进行编程,实现各种数字电路功能。

FIR (Finite Impulse Response)滤波器是一种常用的数字滤波器,其特点是能够对输入信号的有限长度的响应进行滤波处理。

本文将介绍基于FPGA乘法器的FIR滤波器系统设计。

首先,介绍FIR滤波器的原理。

FIR滤波器是一种线性时不变系统,其输出信号由输入信号的加权和组成。

FIR滤波器的输入经过一串系数的加权运算后,得到滤波器的输出。

FIR滤波器的传输函数为:H(z) = b0 + b1*z^(-1) + b2*z^(-2) + ... + bn*z^(-n)其中,bi是滤波器的系数,n是滤波器的阶数,z为单位延迟。

FIR 滤波器的输出信号可以表示为:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(n-n)其中,x是输入信号,y是输出信号。

FIR滤波器的阶数决定了滤波器的性能,阶数越高,滤波器的频率响应越陡峭。

接下来,介绍基于FPGA乘法器的FIR滤波器系统设计。

FPGA乘法器是FPGA中的一种硬件资源,通常用于实现乘法运算。

FPGA乘法器的乘法操作可以并行地执行,可以大大提高FIR滤波器的运算速度。

在设计基于FPGA乘法器的FIR滤波器系统时,首先需要确定FIR滤波器的阶数和系数。

根据滤波器的需求,可以选择不同的阶数和系数。

然后,根据FIR滤波器的传输函数,可以将其转化为差分方程形式。

差分方程形式如下:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(n-n)然后,将差分方程形式转化为数据流形式。

数据流形式中的每一步计算只涉及到少量的数据,可以并行地执行。

数据流形式如下:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(0)接下来,需要将数据流形式转化为硬件电路。

基于FPGA的FIR滤波器设计书

基于FPGA的FIR滤波器设计书

基于FPGA的FIR滤波器设计书1 概述我们学生通过这次的课设深入理解和消化了基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《FPGA 系统设计与应用》几门课程融合在一起综合应用设计一个实用的数字FIR 滤波器。

本报告中首先讲解了这次设计的具体内容,以及所要求的数字 FIR 滤波器的技术指标。

然后,数字滤波器的一些设计方法,并具体确定我这次设计所用的设计方案。

滤波器在matlab 中的设计方法应用。

通过matlab 得到所需滤波器的具体参数h(n),然后用这些所设计的参数,通过Quartus ii 工具编程具体实现滤波器功能。

这次滤波器实现过程中,用到以下小模块:延时器,加法器,乘法器,减法器。

2 课程设计要求及注意事项1.设计过程以小组为单位,各组设一个组长,负责组织和协调本小组的讨论、任务分工等;2.设计过程必须在本组内独立完成,不得跨组参考或抄袭,避免方案出现雷同;3.设计书一律采用专用报告纸,用统一封面装订;4.课程设计原则上在3 周内做完;5.最后一周周五进行优秀设计方案评选,在各组推选代表进行方案介绍的基础上,推选出2-3 个优秀设计方案。

6.学有余力的学生在完成必做设计内容的基础上,可对内容进一步展开设计,以提高综合应用能力,锻炼独立解决问题的能力。

3 课程设计内容3.1 课程设计题目及要求3.1.1 设计题目:基于 FPGA 的 FIR 滤波器设计3.1.2 设计要求利用所学知识,采用MATLAB 和FPGA 相结合完成FIR 滤波器的设计仿真。

采用直接法或分布式算法实现FIR 数字滤波器,了解两种算法的优缺点,选择其中一种算法,得出用它来实现FIR 滤波器的硬件结构,对其实现方式进行研究,分别采用合适的方法来设计,最后利用FPGA 器件实现FIR 数字滤波器的硬件电路,并用Matlab 对实现的结果进行仿真分析。

设计指标:1)类型:FIR 低通2)系统采样频率:Fs=10KHz;3)输入序列位宽为8 位的有符号数(最高位为符号位);4)输出结果保留8 位5)窗口类型为 kaiser 窗,β=0.5; 6)滤波器长度为N=16;3.2 数字滤波器简介及结构3.2.1 简介 滤波器是用来进行频率选择或频率分辨操作的线性时不变系统的通称。

基于FPGA的FIR数字滤波器的设计

基于FPGA的FIR数字滤波器的设计

毕业设计(论文)任务书基于FPGA的FIR数字滤波器的设计摘要在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。

在工程实践中,往往要求对信号处理要有实时性和灵活性,而己有的一些软件和硬件实现方式则难以同时达到这两方面的要求。

随着可编程逻辑器件和FDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR 滤波器。

本文对基于FPGA的FIR数字滤波器实现进行了研究。

主要工作如下:(1)以FIR数字滤波器的基本理论为依据,使用分布式算法为滤波器的硬件实现算法,并对其进行了详细的讨论。

针对分布式算法中查找表规模过大的缺点,采用多块查找表和OBC编码方式使得硬件规模极大的减小。

(2)在设计中采用了层次化、模块化的设计思想,将整个滤波器划分为多个功能模块,利用VHDL语言和原理图输入两种设计技术进行了各个功能模块的设计,最终完成了FIR数字滤波器的系统设计。

(3)最后给出了采用FLEX10K系列器件实现一个16阶的FIR低通滤波器的设计实例,用QuartusII软件进行了仿真,并对仿真结果进行了分析,证明所设计的FIR数字滤波器功能正确。

仿真结果表明,本论文设计的滤波器硬件规模较小,采样率达到了8.8MHz。

同时只要将查找表进行相应的改动,就能分别实现低通、高通、带通FIR滤波器,体现了设计的灵活性。

关键词:FIR数字滤波器;FPGA;分布式算法;OBC编码;查找表Design of the FIR Digital Filter Based on FPGAAbstractIn the modern electrical system,the FIR digital filter is used form any practical applications for its good linear phase character, and it provide an important function in digital signal processing design. In engineering practice, there is always a real-time and flexible requirement for signal processing. However, software and hardware techniques available for implementation are difficult to meet the demand for the two aspects in the same time. Along with the development of PLD device and EDA technology, more and more electrical engineers use FPGA to implement FIR filter, as it not only meet the real-time requirement, but also has some flexibility.In this paper, a method to implement the FIR filter using FPGA is proposed. The work mainly as follow:(1) According to the basic theory of FIR filters, a scheme of hardware implementation is worked out using distributed arithmetic algorithm. As the scale of the LUT in the distributed arithmetic algorithm is so large, the thesis reduces it with the use of multiple coefficient memory banks.(2) From the clew of implementing a top-down stratified, modular design, the thesis describes the hard ware design of all functional modules and the FIR system with the VHDL and schematic diagram design methods.(3) At last, a sixteen-tapped low-pass FIR filter is taken as an example, and the simulation design carried out using QuartusII. And analyzed the result, and it proved that the function of the design is correct.The result of the simulation indicates that the scale of the design is small, and the sample rate of the FIR filter can reach 8.8MHZ.Modifying the LUT can realize the low-pass, high-pass and band-pass FIR filters respectively, and incarnates the flexibility of the design.Key words:FIR digital filter;FPGA;Distributed Arithmetic;Offset-Binary Coding;LUT目录毕业设计(论文)任务书 (I)摘要............................................................................................................................... I I Abstract. (III)第1章绪论 (1)1.1 本课题的研究意义和应用背景 (1)1.2 国内外的研究现状 (1)1.3 研究思路 (3)1.4 本论文的主要内容和主要工作 (4)第2章FIR数字滤波器简介 (5)2.1 FIR数字滤波器 (5)2.1.1 数字滤波器的概述 (5)2.1.2 FIR滤波器的原理 (6)2.1.3 FIR滤波器的基本结构 (7)2.1.4 线性相位FIR数字滤波器的系统结构 (7)2.1.5 FIR数字滤波器的设计方法 (8)2.2 实现FIR数字滤波器的硬件算法——分布式算法 (10)2.2.1 分布式算法 (10)2.2.2 分布式算法的优化 (12)第3章EDA技术和可编程逻辑器件 (17)3.1 EDA技术 (18)3.2 EDA技术的主要内容 (18)3.2.1 大规模可编程器件 (18)3.2.2 硬件描述语言VHDL (19)3.3 基于EDA技术的“自顶向下”的设计方法 (21)3.4 基于EDA技术的电子电路设计流程 (21)3.5 可编程逻辑器件 (23)3.5.1 可编程逻辑器件简介 (23)3.5.2 使用FPGA器件进行开发的优点 (24)3.5.3 FPGA设计的开发流程 (25)3.6 FLEX10K系列芯片介绍 (26)3.6.1 FLEX10k的结构 (27)3.6.2 FLEX10K系列器件的特点 (28)3.7 开发工具QuartusII介绍 (28)第4章FIR滤波器的设计与仿真 (29)4.1 FIR滤波器的模块划分 (29)4.1.1 滤波器模块的划分 (29)4.1.2 方案确定 (29)4.2 FIR滤波器各模块功能的实现 (30)4.2.1 控制模块 (30)4.2.2 输入模块 (31)4.2.3 乘累加模块 (33)4.2.4 锁存模块 (35)4.2.5 顶层设计 (35)4.3 FIR数字滤波器的系统设计 (36)4.4 FIR滤波器的综合 (44)4.4.1 数字系统综合概述 (44)4.4.2 本设计的综合 (44)4.5 FIR滤波器各模块的仿真 (46)4.5.1 控制模块的仿真 (46)4.5.2 输入模块时序仿真 (47)4.5.3 乘累加模块时序仿真 (50)4.5.4 锁存模块时序仿真 (53)第5章结束语 (51)5.1 总结 (51)5.2 展望 (51)参考文献 (68)致谢 (70)附录 (I)第1章绪论1.1本课题的研究意义和应用背景几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。

基于FPGA的FIR滤波器设计

基于FPGA的FIR滤波器设计

基于FPGA 的FIR 滤波器设计一 、设计目的为了帮助学生深入理解和消化基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《《FPGA 系统设计与应用》几门课程融合在一起开设的FPGA 综合实验课程设计。

本次完成的是利用FPGA 来完成FIR 滤波器的设计、程序设计和实验调试任务。

二、设计要求(1)基本要求利用所学知识,采用VHDL 语言完成FIR 滤波器的设计仿真。

要求用VHDL 编程设计底层文件,顶层文件可任意(可用原理图方式或文本方式);完成仿真文件(包括MATLAB 和QUARTUSII 两种仿真)并对其结果比较。

具体设计指标如下: (1)采样频率S F =80KHz ; (2)截止频率KHz F C 10=;(3)输入序列为10位(最高位为符号位); (4)窗口类型为kaiser 窗,β=0.5 ; (5)滤波器长度为16 ; (6)输出结果保留10位。

(2)提高部分根据所学知识,设计出一个具有频率控制功能DDS ,要求输出频率分别为10KHz 和100KHz ,将输出的两路数字信号进行叠加,并通过所设计的FIR 滤波器进行滤波,将滤波输出的数字信号通过D/A 转换电路输出波形,并用示波器观察输出波形,并完成测试结果分析。

结构框图如图1-1所示。

图2-1 整体结构框图三、设计原理3.1 FIR 滤波器由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。

当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。

若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。

通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。

3.2 线性FIR 滤波器原理FIR 滤波器响应(简称FIR )系统的单位脉冲响应()h n 为有限长序列,系统函数()H z 在有限z 平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。

FPGA设计FIR滤波器的设计

FPGA设计FIR滤波器的设计

文件说明 (1)代码文件 (1)QuartusII工程文件 (2)仿真文件 (2)系统框图 (3)DDS正弦信号产生 (3)DDS的原理 (3)DA转换和滤波 (6)正弦波形 (6)波形的产生 (6)波形的存储 (8)FIR滤波器原理 (15)FIR原理以及设计方法 (15)FIR滤波器主要有直接型、级联型、线性相位型: (15)FIR滤波器的设计方法 (17)设计框架 (19)Matlab软件导出需要的滤波器系数过程 (19)Modelsim仿真 (20)打开软件 (20)打开工程 (21)编译 (21)选择仿真文件 (22)开始仿真 (25)仿真结果 (26)文件说明代码文件Fir文件谐波产生模块文件存放波形的文件测试文件QuartusII工程文件仿真文件系统框图DDS 正弦信号产生DDS 的原理DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器,也可叫DDFS 。

•DDS 是从相位的概念直接合成所需波形的一种频率合成技术。

• 不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。

DDS原理框图主要构成:内部:相位累加器,正弦查找表外围:DAC,LPF(低通滤波器)工作过程1、将存于ROM中的数字波形,经DAC,形成模拟量波形。

2、改变寻址的步长来改变输出信号的频率。

步长即为对数字波形查表的相位增量。

由累加器对相位增量进行累加,累加器的值作为查表地址。

3、DAC输出的阶梯形波形,经低通滤波,成为模拟波形。

频率控制在程序中,采样时钟是50M,N相位累加器的位宽是32,M频率控制字的位宽是16位;可以控制的最大的频率就是65535*50000000/4294967296=762Hz;DA转换和滤波分析:DDS优点•频率分辨率高,可达2的N次。

•频率切换速度快,可达us量级。

•频率切换时相位连续。

•可以产生任意波形。

DDS缺点•输出频带范围有限。

FPGA的FIR抽取滤波器设计

FPGA的FIR抽取滤波器设计

FPGA的FIR抽取滤波器设计
用FPGA 实现抽取滤波器比较复杂,主要是因为在FPGA 中缺乏实现乘法运算的有效结构,现在,FPGA 中集成了硬件乘法器,使FPGA 在数字信号处理方面有了长足的进步。

本文介绍了一种采用Xilinx 公司的XC2V1000 实现FIR 抽取滤波器的设计方法。

具体实现
结构设计
基于抽取滤波器的工作原理,本文采用XC2V1000 实现了一个抽取率为2、具有线性相位的3 阶FIR 抽取滤波器,利用原理
控制器
控制器是抽取滤波器的核心模块,有两个功能:一是接收输入数据,二
是向其它模块发送数据和控制信号。

它根据加法器、乘法器和累加器的时序特性,有规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器在每个时钟周期都完成指定的任务,从而
实现流水线操作。

控制器用VHDL 语言描述,用寄存器存放抽头和系数。

加法器
加法器的输入和输出都是18 bit,用VHDL 语言描述实现。

它有两个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二
个时钟把相加结果锁存输出。

乘法器
乘法器为18 bit 输入,36bit 输出,用库元件MULT18X18S 和36 bit 锁存器实现。

MULT18X18S 是XC2V1000 自带的18 乘以18bit 硬件乘法器,单个时钟就可完成乘法运算。

36 bit 锁存器工作于时钟的上升沿,用VHDL 语言。

基于FPGA 的FIR 数字滤波器设计方案

基于FPGA 的FIR 数字滤波器设计方案

基于FPGA 的FIR 数字滤波器设计方案本文简要介绍了FIR 数字滤波器的结构特点和基本原理,提出基于FPGA 和DSP Builder 的FIR 数字滤波器的基本设计流程和实现方案。

在Matlab/Simulink 环境下,采用DSP Builder 模块搭建FIR 模型,根据FDATool 工具对FIR 滤波器进行了设计,然后进行系统级仿真和ModelSim 功能仿真,其仿真结果表明其数字滤波器的滤波效果良好。

通过SignalCompiler把模型转换成VHDL 语言加入到FPGA 的硬件设计中,从QuartusⅡ软件中的虚拟逻辑分析工具SignalTapⅡ中得到数字滤波器实时的结果波形0 引言在信息信号处理过程中,数字滤波器是信号处理中使用最广泛的一种方法。

通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而实现时域或频域中信号属性的改变。

常用的数字滤波器可分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器两种。

其中,FIR 数字滤波器具有严格的线性相位,而且非递归结构也保证了运算的稳定性。

在实时性要求比较高的应用场合,采用可编程芯片FPGA 加以实现,相比于DSP 芯片或专用芯片的实现方法,具有高速、高精度、高灵活性的优点。

本文在采取了一种基于FPGA 和DSP Builder 的方法设计FIR 数字滤波器时,采用了层次化、模块化的设计思想,遵循DSP Builder 的设计开发流程,在Matlab/Simulink 中建立模型并进行系统级仿真,再进行Verilog 语言转换,ModelSim 仿真验证无误后实现了FIR 数字滤波器的实时测试。

1 FIR 数字滤波器的基本原理及结构对于一个FIR 滤波器系统,它的冲击响应总是有限长的,其系统函数可以记为:。

基于FPGA的FIR数字滤波器的设计和实现

基于FPGA的FIR数字滤波器的设计和实现

基于FPGA的FIR数字滤波器的设计和实现摘要:本文基于FPGA平台实现了一种FIR数字滤波器,通过对滤波器的设计与实现过程的详细介绍,展示了FPGA在数字滤波器中的应用优势。

首先介绍了数字滤波器的原理及其在信号处理中的重要性,并对FPGA及其特点进行了概述。

接着,详细介绍了FIR滤波器的原理以及其在FPGA上的实现步骤,分析了滤波器设计中需要考虑到的各种因素。

最后,通过实验验证了FPGA上实现的FIR滤波器的性能,并对优化策略进行了讨论。

关键词:FPGA,FIR滤波器,数字信号处理,性能优化1. 引言数字滤波器是现代信号处理的重要组成部分,通过选择性地传递或抑制输入信号的特定频率组成部分,对信号进行处理和改善。

FIR滤波器是数字滤波器中最常用的一种类型,具有线性相位特性、稳定性较强以及易于实现等优势。

而FPGA作为一种可编程逻辑器件,具有灵活性高、可重构性强等特点,成为实现数字滤波器的理想平台。

2. FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出仅和当前输入值以及过去若干个输入值有关。

该滤波器的输出可以通过输入信号的线性加权和来计算,其中,每个输入值的加权系数通过FIR 滤波器的系数来确定。

FIR滤波器的系数决定了它对不同频率分量的响应,从而实现了信号的滤波目的。

3. FIR滤波器在FPGA上的实现步骤(1)选择合适的FPGA平台和开发工具,如Xilinx FPGA平台和Vivado开发工具。

(2)根据所要设计的滤波器的需求,确定其采样频率、截止频率和滤波器类型等参数,并进行系统级设计。

(3)根据所选参数,设计FIR滤波器的传递函数,并确定滤波器的阶数和系数。

(4)通过数学运算或者通过滤波器设计软件生成滤波器的差分方程。

(5)根据生成的差分方程,使用HDL(HardwareDescription Language)进行滤波器的编写。

(6)进行FPGA的综合、布局与布线、下载与验证,完成滤波器的硬件实现。

基于FPGA的FIR滤波器优化设计

基于FPGA的FIR滤波器优化设计

基于FPGA的FIR滤波器优化设计FPGA技术是一种灵活和可重配置的硬件设计技术,具有高度的并行性和可定制性。

其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,可以用于信号处理和数据通信等领域。

在本文中,我们将讨论基于FPGA的FIR滤波器的优化设计。

首先,我们将介绍FIR滤波器的基本原理。

FIR滤波器是一种非递归滤波器,其输出只与当前输入和有限数量的以前输入相关。

其主要特点是具有线性相位响应和稳定性。

FIR滤波器通过卷积运算来实现滤波的功能,其中滤波器的系数是其关键部分。

接下来,我们将讨论如何将FIR滤波器设计为基于FPGA的硬件实现。

在FPGA设计中,我们可以使用硬件描述语言(如VHDL或Verilog)来描述FIR滤波器的功能和行为。

然后,我们可以使用FPGA设计工具(如Xilinx Vivado)将这些硬件描述转换为可在FPGA芯片上实现的逻辑电路。

在进行优化设计时,可以采用以下几种方法:1.并行计算:由于FPGA具有高度的并行性,我们可以利用并行计算来加速FIR滤波器的运算。

可以将输入信号分成多个并行通道,并在每个通道上独立地进行滤波计算。

2.流水线设计:流水线设计可以进一步提高FIR滤波器的运算效率。

可以将滤波器的计算分成多个阶段,并使每个阶段的计算互相重叠。

这样可以实现更高的吞吐量。

3.系数优化:FIR滤波器的计算涉及到滤波器的系数乘法和累加操作。

可以通过使用定点算法和优化系数位宽等方法来减少计算的复杂度。

此外,还可以使用现成的IP核来实现FIR滤波器。

例如,Xilinx Vivado中提供了用于FIR滤波器的IP核。

这些IP核具有预先优化的代码和配置选项,可以帮助我们更方便地实现FIFO滤波器。

另一方面,我们还可以采用硬件/软件协同设计的方法来优化FIR滤波器的设计。

在这种方法中,可以将一部分滤波器的计算任务转移到CPU上进行处理,以减轻FPGA上的计算负载。

基于FPGA的FIR滤波器设计与实现

基于FPGA的FIR滤波器设计与实现

单片机与可编程器件图2图1图3微电子技术和计算机技术的飞速发展,使得现代电子系统的设计和应用进入一个全新的时代,基于FPGA的数字系统设计在现代电子系统的设计和应用中占据了越来越重要的作用。

FPGA芯片由底层可编程硬件单元、Block Ram资源、布线资源、可配置I/O单元及时钟资源等构成。

底层可编程硬件单元一般由触发器(FF)和查找表(LUT)组成,FPGA规模大、频率高,寄存器、触发器资源多,在现代数字系统中比较适合实时性要求高、频率快的系统。

在数字系统中,滤波器的设计是数字信号处理的重要一环,关系到整个数字系统的性能好坏,因此在基于FPGA的数字系统中,滤波器的设计显得尤为重要。

本文以Xilinx公司100万门的V2系列FPGA芯片为例,对滤波器的多种实现方式作一个详细的探讨,为了方便起见,在示例中,滤波器全部采用对称系数FIR滤波器。

1.集成滤波器的分类Xilinx公司的V2系列芯片中,为了方便用户设计滤波器,在IPCore中集成了通用数字滤波器的设计。

打开CORE Generator,就可以看到利用IPCore可以生成级联型积分梳状滤波器、分布算术式FIR滤波器(以下简称DA滤波器)及乘累加式FIR滤波器(以下简称MAC滤波器)等三种滤波器。

用户在设计这三种滤波器时,通过它简单明了的界面,可以方便地生成各种所需的滤波器形式,操作起来非常自如,节省了用户大量的时间和精力,在很大程度上满足了用户的需求。

下面以常用的FIR滤波器为例,仔细讨论DA滤波器和MAC滤波器的不同适用情况。

2.滤波器设计及其占用资源情况以通用单速率滤波器为例,滤波器与外部接口是:主处理时钟clk、输入数据标志ND(高有效)、输入数据din、滤波器可以接收新数据标志RFD(高有效)、输出数据dout、输出数据标志RDY(高有效)。

其中RFD在ND信号有效时,会自动变为低电平,此时不能接收新数据,当滤波器内部完成计算,此时RFD变为高电平,可以重新接收新数据。

FPGA实现FIR抽取滤波器的设计

FPGA实现FIR抽取滤波器的设计

FPGA实现FIR抽取滤波器的设计FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。

因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。

随着可编程逻辑器件的发展,使用FPG A来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。

1 FIR滤波器工作原理在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。

FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

2 16阶滤波器结构在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。

抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。

在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。

采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式:乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。

基于FPGA的FIR滤波器系统的设计

基于FPGA的FIR滤波器系统的设计
次类推 直 至 att u( ) =a dti daa t1 < d a n时才将 a — o 7 a d tt u(7: ) 输 到 FR滤 波 器 当 中进 行 滤 波 。 aa t1 0 传 o I 由于 A D 输 出 为 1 / 8位 , 滤 波 器 输 入 端 为 1 而 6
针对 F R滤 波器 电路 系 统 , 计 了一个 与 之 I 设 专 门配套 的 串 口通 信 软 件 , 软件 能 读 取 串 口数 该 据 , 把 串 口数 据保 存在 以 D T为 后 缀名 的文 件 并 A
个滤 波 系数 , 这些 滤波 系数 来 生成 FR低 通滤 用 I
波器 。
2 FR滤波器 系统硬 件设计 I
F r f r ,% 1. fn ,of) pi ( d ’ 60\ ’ce ; n i
FR滤波器 硬件 电路 主要 由 A D转换 器 、 P I / F—
F l e r ) c s( d ; o i
图 2 F a o 导 出 系数 窗 口 dt l o
在 图 2的 菜单 中 点击 E p r 这 样 就 可 以对 x ot , 系 数 进 行 量 化 。 在 窗 口 中 输 入 “ of ce f=ru d o n
1 2 FR滤波器 系数 的产 生 。 I
F A ol Fl r D s n & A a s ro )是 D T o ( ie ei t g nl i r 1 ys 0
正弦信号进行 A D转换 , / 然后送至 F G P A内部进

步处 理 。本 设 计 中采 用 了 A D公 司 的 高性 能
A D转 换 芯 片 A 7 9 , D 6 1每 秒 可 采 样 2 / D 6 1 A 79 5 万 次具有 1 bt 8 i的线性度 ,8位 的串行 数据 输 出 , l 采用 2 7 . V或 5 V单 电源 供 电。与 A I 司推 出 D公 l i 6b t和 1 i 单 端 到 差 分 A C 驱 动 器 8 bt的 D A A 9 11配 合 使 用 , D 4 4 — D 44 - A A 9 11与 A 7 9 D 6 1的 外 围电路连 接 如 图 4 5所 示 , D 4 4 — 、 A A 9 11是一 款 低功耗 、 噪声 差分 驱 动器 。它 采 用易 于 使用 的 低
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA实现FIR抽取滤波器的设计FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。

因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。

随着可编程逻辑器件的发展,使用FPG A来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。

1 FIR滤波器工作原理
在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。

FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

2 16阶滤波器结构
在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。

抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。

在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。

采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式:
乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。

3 滤波器系数的求取
使用Matlab集成的滤波器设计工具FDAtool,可以完成多种滤波器的数值设计、分析与评估,设计16阶低通滤波器参数如下:
采样频率:Fs为50MHz,滤波器归一化截止频率:Fc为0.4MHz,输入数据位宽:8位,输出数据宽度:16位FDAtool采用汉宁窗函数(Hanning)设计16阶线性相位FIR数字滤波器,并提取其特性参数h(n)浮点数值。

MATLAB中算出的系数h(n)的值是一组浮点数,进行浮点值到定点值的转换,用16位二进制补码表示为
滤波器抽头数是16个,考虑到线性FIR滤波器的偶对称特性,只考虑8个独立滤波器抽头数,则需要一个28×8的表(其中指数8指的是8个滤波器抽头数,后面的8指的是输入数据的位宽)。

但是Virrex—e FPGA只能提供4输入的杏找表,所以要对查找表的地址进行电路分割。

将8位地址线分为高4位和低4位,分别作为两个24×8的查找表的地址输入,从而指数倍地节省了硬件资源。

4 主程序及仿真
在时钟和计数器的控制下,根据查找表输出结果位权的不同,将输入数据向左移动相应的位数,低位按照位权的不同补上个数相当的“0”,然后将移位数据进行累加操作,输出最终滤波结果,这里的结果依旧是用二进制数据表示的,只是位数因为移位和累加操作增加了8位。

图五移位加法器的波形仿真图
以上便是基于分布式算法的FIR滤波器的三个主要模块的分析,为了能使该滤波器能正常工作,还需要用VHDL语言编写控制程序,使各模块连接起来,总的来说,该滤波器的实现原理图如下:
图六基于分布式算法的FIR滤波器顶层原理图在FPGA中,不论是基于乘累加的FI R滤波器,还是基于分布式算法的FIR滤波器(包括FIR滤波器的各模块)都是通过VHDL 语言编程来实现的。

5 结语
本文所介绍的基于FPGA、采用分布式算法实现FIR滤波器的方法,在提高系统运行速度和节省硬件资源方面具有很大的优势。

基于分布式算法的FIR滤波器结构可以扩展成任意阶数的FIR滤波器。

而且,通过改变阶数和查找表中的系数,还可以将此设计灵活地运用于实现高通、低通和带阻滤波器,可移植性较好。

因此,这种方法在高速数字信号处理中将有很好的应用前景。

相关文档
最新文档