fpga的fir抽取滤波器的设计

fpga的fir抽取滤波器的设计

ID:11628759

大小:124.50 KB

页数:6页

时间:2018-07-13

fpga的fir抽取滤波器的设计_第1页
fpga的fir抽取滤波器的设计_第2页
fpga的fir抽取滤波器的设计_第3页
fpga的fir抽取滤波器的设计_第4页
fpga的fir抽取滤波器的设计_第5页
资源描述:

《fpga的fir抽取滤波器的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、FPGA的FIR抽取滤波器的设计1、引言  抽取滤波器广泛应用在数字接收领域,是数字下变频器的核心部分。目前,抽取滤波器的实现方法有3种:单片通用数字滤波器集成电路、DSP和可编程逻辑器件。使用单片通用数字滤波器很方便,但字长和阶数的规格较少,不能完全满足实际需要。使用DSP虽然简单,但程序要顺序执行,执行速度必然慢。现场可编程门阵列(FPGA)有着规整的内部逻辑阵列和丰富的连线资源,特别适用于数字信号处理,但长期以来,用FPGA实现抽取滤波器比较复杂,其原因主要是FPGA中缺乏实现乘法运算的有效结构。现在,FPGA集成了乘法器,使FPGA在数字信号处理方面有了长足的进步。本文介绍用Xilin

2、x公司的XC2V1000型FPGA实现FIR抽取滤波器的设计方法。2、XC2V1000简介  Virtex-Ⅱ系列是Xilinx公司近几年研发的具有高性能、高速度和低功耗特点的新一代FPGA,一经问世就备受界内人士的青睐。该系列FPGA基于IP核和专用模块设计,能够为电信、无线电、网络、视频和数字信号处理领域的应用提供完整的解决方案。XC2V1000是Virtex-Ⅱ家族的一员,具有如下主要特点:·100万个系统门;·40×32个可配置逻辑单元(5120个slice);·40个18×18bits乘法器,1个工作时钟内即可完成乘法运算;·720KbitsRAM,可灵活配置(单口、双口、有使能或无

3、使能等);·8个DCM(DigitalClockManager)模块;·328个用户I/O。  此外,Xilinx公司还提供了功能强大的开发平台(ISE),开发者可通过该平台完成全部设计。3、抽取滤波器的工作原理  抽取滤波器的工作原理是在滤波过程中实现抽取。对于抽取率为N的抽取滤波器而言,不是每进入1个新数据就完成1次滤波运算,然后再抽取,而是当进来N个数据时滤波器才完成1次滤波运算,输出1次滤波结果。抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。在数字系统中采用抽取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。

4、下面以抽取率为2的具有线性相位的3阶FIR抽取滤波器为例介绍抽取滤波器的实现过程。   线性相位的FIR滤波器的系数具有某种对称的性质[1],3阶Ⅱ类FIR线性相位滤波器在数学上可以表示为   其中,h(0)=h(3),h(1)=h(2)。其结构如图1所示。由图1可见,具有4个系数的3阶Ⅱ类FIR线性相位滤波器只需2次加法、2次乘法和2次累加就可以完成1次滤波运算。如果IPGA工作时钟为80MHz,输入x(n)的数据率也为80MHz,那么经2倍抽取后输出y(n)为40MHz。也就是说,抽取滤波器每完成1次滤波运算,需要2个工作时钟。如果加法器、乘法器和累加器在单个时钟内就能完成1次功能运算,那

5、么只需1个加法器、1个乘法器和1个累加器采用流水线操作在2个工作时钟内就可以完成2次加法、2次乘法和2次累加运算,就可以完成一次抽取滤波。4、具体实现4.1结构设计  基于上述抽取滤波器的工作原理,笔者用XC2V1000实现了这个抽取率为2、具有线性相位的3阶FIR抽取滤波器,利用原理图和VHDL硬件描述语言共同完成源文件设计。图2是抽取滤波器的顶层原理图。其中,clock是工作时钟,reset是复位信号,enable是输入数据有效信号,data_in(17:0)是输入数据,data_out(17:0)是输出数据,valid是输出数据有效信号。addei18是加法器模块,mult18是乘法器模

6、块,acc36是累加器模块,signal_36-18是数据截位器模块,fir_controller是控制器模块。控制器定时向加法器、乘法器和累加器发送数据或控制信号,实现流水线操作。 4.1.1控制器(fir_controller)  控制器是抽取滤波器的核心模块,有2种功能:接收输入数据,向其他模块发送数据和控制信号。它根据加法器、乘法器和累加器的时序特性,规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器每个时钟都完成指定的任务,从而实现流水线操作。控制器用YHDL语言描述,用寄存器存放抽头和系数。4.1.2加法器(adder18)  加法器的输入

7、和输出都是18bits,用VHDL语言描述实现。它有2个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二个时钟把相加结果锁存输出。4.1.3乘法器(multl8)  乘法器是18bits输入和36bits输出,用库元件MULT18X18S和36bits锁存器实现。MULT18Xl8S是XC2V1000自带的18×18bits乘法器,单个时钟就可完成乘法运算;36bits锁存器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。