FPGA实现FIR抽取滤波器的设计之欧阳家百创编
基于FPGA 的FIR 滤波器的实现

基于FPGA的FIR滤波器的实现作者:天津大学电子信息工程学院(300072)郭继昌向晖滕建辅李香萍来源:《电子技术应用》摘要:提出了一种采用现场可编程门阵列器件FPGA并利用窗函数法实现线性FIR数字滤波器硬件电路的方案,并以一个十六阶低通FIR数字滤波器电路的实现为例说明了利用Xilinx公司XC4000系列芯片的设计过程。
设计的电路通过软件程序进行了验证和硬件仿真,结果表明电路工作正确可靠,能满足设计要求。
关键词: FPGA FIR数字滤波器窗函数全加器随着微电子技术的发展,采用现场可编程门阵列FPGA进行数字信号处理得到了飞速发展。
由于FPGA具有现场可编程的特点,可以实现专用集成电路,因此越来越受到硬件电路设计工程师们的青睐。
本文研究了基于FPGA的FIR数字低通滤波器硬件电路的实现方法。
用这种方法实现的滤波器内部电路结构透明化,并减小了体积,提高了工作效率。
1用窗函数法设计线性相位FIR滤波器的方法傅立叶系数h(n)实际上就是数字滤波器的冲激响应。
获得有限冲激响应数字滤波器的一种可能方法就是把式(1)的无穷级数截取为有限项级数来近似,而众所周知的吉布斯现象使得直接截取法不甚令人满意。
窗函数法是用被称为窗函数的有限加权序列{w(n)}来修正式(2)的傅立叶系数,以求得要求的有限选用汉宁(Hnnning)窗作为窗函数,函数如式(6)所示。
2十六阶FIR低通数字滤波器硬件电路设计下面以一个十六阶FIR低通滤波器为例说明硬件电路的设计方法和过程。
2.1 设计指标和参数提取2.1.1 设计指标截止频率:37.5kHz类型:低通输入数据宽度:8位阶数:16阶输出数据宽度:16位2.1.2 参数提取采用上面介绍的低通滤波器的频率响应函数和汉宁窗函数进行设计。
计算出的符合设计指标的线性相位16阶FIR数字低通滤波器的特性参数如下:h[0]=h[15]=0.000000 h[1]=h[14]=0.001992h[2]=h[13]=0.008241 h[3]=h[12]=0.018332h[4]=h[11]=0.030784 h[5]=h[10]=0.043353h[6]=h[9]=0.053550 h=[7]=h[8]=0.0592572.2 单元电路设计FIR低通数字滤波器电路分为数据位扩展、并串转换器、移位寄存器组、前加单元、中间处理单元、后处理单元以及控制单元等部分,其构成框图如图1所示。
基于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实现抽取滤波器比较复杂,主要是因为在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硬件乘法器,单个时钟就可完成乘法运算。
基于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滤波器设计与实现

目录引言 (4)第一章FPGA的设计流程 (5)1.1 FPGA概述 (5)1.2 FPGA设计流程 (9)1.3硬件描述语言HDL(Hardware Description Language) (10)1.4 FPGA开发工具Quartus Ⅱ软件设计流程 (13)第二章有限冲激响应(FIR)滤波器的原理及设计 (16)2.1数字信号处理基础原理 (16)2.2 FIR滤波器背影知识 (19)2.3 FIR数字滤波器原理 (21)2.4 利用窗函数法设计FIR滤波器 (26)第三章FIR 数字滤波器的FPGA实现 (31)3.1串行FIR滤波器原理 (31)3.2分布式算法基础 (32)3.3直接型FIR滤波器的原理结构图 (34)3.4具有转置结构的FIR滤波器 (36)第四章结论与总结 (40)谢辞 (42)参考文献 (43)摘要:本论文课题是《基于FPGA的FIR滤波器设计与实现》。
数字滤波器是语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和线性相位的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。
有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。
因此在许多应用领域都显示了强大的生命力,具有重要应用意义。
本文介绍了用VHDL实现线性相位FIR(有限长单位冲激响应)滤波器。
提出了一种基于FPGA的FIR滤波器设计方案。
介绍了基于FPGA的FIR滤波器的数字信号处理的算法设计,采用直接型和转置型的基本结构来设计,其运算效率明显提高,并结合先进的EDA软件进行高效的设计和实现,并给出了用Quartus Ⅱ运行的仿真结果。
该设计对FPGA硬件资源的利用高效合理,用VHDL编程,在PFGA中实现了高采样率的FIR滤波器。
关键字:FIR滤波器;FPGA;VHDL;MATLAB;Quartus ⅡAbstract:Digital filter is a fundamental device used in pronunciation &pattern process, pattern-recognition, radar signal processand spectral analysis. It can meet the high needs to range andphase, and can avoid such problems as voltage drifting,temperature drifting and noise that analogue filters cannotovercome. FIR filter can assure a strict linear phase identitywhile designing any range and frequency. Therefore, FIR filterhas shown its strong vitality in many fields and its importancein using. In the paper, the way to use VHDL to design linearphase FIR filter is introduced and its importance in using. Inthe paper, the way to use VHDL to design linear phase FIRfilter is introduced and its designing thoughts are expounded.This paper introduces the design scheme of FIR filter based onFPGA, introduces that the design technology of FIR filterbased on FPGA about digital system processing arithmetic.FIR filter adopts the basic structure of direct type, the resultare shifting and adding. Integrating advanced software of EDAto design and achieve, and giving some emulator results. Thisdesign makes high use of hardware resource about FPGA,programming with VHDL language, achieving FIR filter withhigh sampling level based on PDGA.Keywords: Finite Impulse Response Digital Filter(FIR)、FieldProgrammable Gate、Array(FPGA)、VHDL、Quartus Ⅱ引言在数字信号处理技术不断发展的今天,数字滤波器正在迅速地代替传统的模拟滤波器,所以有越来越多的人们在研究数字滤波器的结构以及其实现。
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滤波器的设计与实现

D e s i g பைடு நூலகம் o f a d j u s t a b l e F I R f i l t e r b a s e d o n F P G A
Zh e n g Ya n f a ng , T a n g Ha i di , Li Xu e b a o
在F P G A上 实现 , 而且 由于 F P G A具有 天然 的并行 性 , 实 际的通 信 系统 中可 以采 用并 发模 式进 行 , 达 到提 高信 号传 送速 率的 目
的。
关 键词 : 可调 F I R滤 波器 ; F P G A; F — O F D M
中图分 类号 : T N 7 1 3+. 7
文 献标识 码 : A
D O I :1 0 . 1 9 3 5 8 / j . i s s n . 1 6 7 4 — 7 7 2 0 . 2 0 1 7 . 0 4 . 0 0 9
引 用格 式 : 郑艳 芳 , 唐海 娣 , 李雪 宝 . 基于 F P G A 的可调节 F I R滤 波器 的设计 与实 现 [ J ] . 微型机 与应 用 , 2 0 1 7 , 3 6 ( 4 ) : 2 9 — 3 1 , 3 5 .
摘 要 : 基 于灵 活 自适 应 的空 口波形 技 术 F - O F DM( F i l t e r e d O F D M) 是现 代 通 信 技 术 的研 究热 点 , 设 计 并 实现 可调 F I R 滤波 器 是 实现 该技 术 的核 心工作 之一 。本 文设计 的基 于 F P G A 的 可调 节 F I R滤 波 器 系数 的 自适 应 调整 是 通 过 控 制算 法 对信 道 中的 信 号进 行 快速检 测 , 然后 将 结果和 滤 波器 的输 出结果进 行 差值计 算进 行反馈 调 节。利 用 Q u a r t u s I I 和D S P B u i l d e r 设计 基 于 F P — G A的 1 6阶 系数 可调 F I R滤 波 器 , 给 出核 心模块 的设 计 电路 图和仿 真结 果。仿 真结 果表 明 : 基 于灵 活 自适应 空 口波 形技 术可 以
基于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 滤波器系统,它的冲击响应总是有限长的,其系统函数可以记为:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA实现FIR抽取滤波器的设计
欧阳家百(2021.03.07)
FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
随着可编程逻辑器件的发展,使用FPGA 来实现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中,不论是基于乘累加的FIR滤波器,还是基于分布式算法的FIR滤波器(包括FIR滤波器的各模块)都是通过VHDL语言编程来实现的。
5 结语
本文所介绍的基于FPGA、采用分布式算法实现FIR滤波器的方法,在提高系统运行速度和节省硬件资源方面具有很大的优势。
基于分布式算法的FIR滤波器结构可以扩展成任意阶数的FIR 滤波器。
而且,通过改变阶数和查找表中的系数,还可以将此设计灵活地运用于实现高通、低通和带阻滤波器,可移植性较好。
因此,这种方法在高速数字信号处理中将有很好的应用前景。