文章编号:1674-7070(2010)05-0400-05 基于FPGA的FIR滤波器设计与仿真 摘要 介绍了数字滤波器理论及其常见实 现方法的基础,提出了一种基于FPGA 的高效实现方案.该方案采用对称结构, 加法、乘法运算和级联技术,利用FPGA 芯片和Maxplus软件对该方案进行了仿 真验证.结果表明基于FPGA的实现方 案速度快、实时性好、节省硬件资源,具 有重要的工程应用价值. 关键词 数字滤波器;分布式算法;FPGA 中图分类号TP311 文献标志码A 收稿日期2010-03-04 资助项目南京信息工程大学科研基金(2008. 0323) 作者简介 刘建成,男,硕士,高级实验师,研究方向 为嵌入式处理.1jch3333@163.COII'I 1南京信息工程大学电子与信息工程学院 南京,210044 刘建成 邹应全 徐伟 0 引言 Introduction 实现数字化是控制系统的重要发展方向,而数字信号处理已在 通信、语音、图像、自动控制、雷达、军事、航空航天等领域广泛应用. 数字信号处理方法通常涉及变换、滤波、频谱分析、编码解码等处 理¨ .数字滤波是数字信号处理重要环节,它能满足滤波器对幅度和 相位特性的严格要求,克服模拟滤波器所无法解决的电压和温度漂 移以及噪声等问题,而有限冲激响应FIR滤波器在设计任意幅频特性 的同时能够保证严格的线性相位特性. 数字滤波器根据其冲激响应函数的时域特性,可分为无限长冲 激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器两种.其中:IIR 滤波器需要执行无限数量卷积,能得到较好的幅度特性,其相位特性 是非线性的;FIR滤波器由有限个采样值组成,其构成的系统总是稳 定的,且易于实现线性相位….由于在语音信号处理、图像处理、数字 通信等传输过程中不能有明显的相位失真,而FIR滤波器在满足一定 对称条件下可以实现IIR滤波器难以实现的线性相位,因而得到广泛 应用.滤波器的输出是通过输入采样流与滤波器系数卷积而得到的, 在要求高阶滤波、高采样率或两者兼有的应用中,所需算法工作量十 分庞大,能够提供这种算法的高性能硬件平台——FPGA(Field—Pro— grammable Gate Array)有着规整的内部逻辑阵列和丰富的连线资源, 特别适合如FIR、F丌等数字信号处理任务.利用FPGA可以重复配置 高精度的FIR滤波器,使用VHDL硬件描述语言改变滤波器的系数和 阶数,并能实现大量的卷积运算算法 J.结合Maxplus工具软件的辅 助设计,使得FIR滤波器具有快速、灵活、适用性强、硬件资源耗费少 等特点.本文详细讨论了利用FPGA实现FIR滤波器的设计过程,并 且对设计中运用的分布式算法进行了详细描述. 1 FIR数字滤波器 FIR digital filter 有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR)数字滤波 器广泛应用于数字信号处理系统中.IIR数字滤波器方便简单,但它 相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保 障.FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的 曲 禽垂 .乎学报:自然科学版,2010,2(5):4o04o4 401 Journal of Nanjing University of Information Science and Technology:Natural Science Edition,2010,2(5)i400"404 重视 . 假设系数C[n]是已知常数, [n]是变量,在有符号 B一2 FIR数字滤波器是一个线性时不变系统(LTI), DA系统中假设变量 [ ]的表达式如下: 阶因果有限冲激响应滤波器可以用传输函数 H(z)来描述为 Ⅳ [n 3=一28-1 [n]+∑ [n 3・2 .(4) b=0 日( )=∑ (k)z~. k:0 (1) 式中: [n]表示 n]的第b位,而 n]也就是 的 第n次采样.于是内积Y可以表示为 Ⅳ一1 B一1 在时域中,上述有限冲激响应滤波器的FIR滤 波器的数学表达式为 Ⅳ一l y(n)= [n]・x[nl=∑h(k=0 k)x(n一.i}).(2) 式(2)中: [n]和y( )分别是输入和输出序列;N表 示FIR滤波器的抽头数;Y(n)表示第n时刻的输出 样本;h(k)表示FIR滤波器的第k级抽头系数; (n—k)表示延时k个抽头的输入信号.根据式(2) 可得FIR滤波器的直接型结构,如图1所示. 图1 FIR滤波器的直接型结构 Fig.1 Direct structure of FIR filter 具有线性相位且因果的FIR滤波器系数具有对 称性质,即h(n)=±h(N一1一n).对于偶对称,其结 构如图2所示.按图2实现时可使乘法器的个数减少 为N/2(N为偶数),从而减少了所需的硬件资源. 一 图2线性相位FIR滤波器 Fig.2 Linear phase FIR filter 2分布式算法 Ditributed algorithm 分布式算法是一项重要的FPGA技术,广泛应 用在计算乘积和之中.一个线性时不变系统的输出 可以用下式表示: Ⅳ一1 Y=∑c[nl・n=0 n 3. (3) Y=∑c[n].[_2 ・ 。+∑Xb[nl・2 ].(5) n=0 b=0 重新分别求和,其结果如下: Y=c[O](一 B—l[0]28 + B一2[0]2 -2+…+ ̄0[0]20)+ c[1](一 B一】[0]28 +XB-2[0328 +…+ ̄o[0]20)+ …+c[N一1](一 口一1[0 32 + B一2[0]2 一 + …+ 0[0]2。)= 一(c[O] 一 [0]+C[1] 一。[1]+…+ c[N一1] 口一。[N一1])2 + (C[0] 一 [0]+C[1] 一 [1]+…+ C[N一1] B一2[N一1])2 一 +…+ (C[O 3x。[0]+C[1] 。[1]+…+ C[N一1] 。[N一1])2。. (6) 从式(6)可以发现,分布式算法是一种以实现乘 加运算为目的的运算方法,它与传统算法实现乘加 运算的不同在于执行部分积运算的先后顺序不同. 该算法可以利用一个查找表(LUT)实现映射,即用 一个2 字宽、预先编好程序的LUT接收一个Ⅳ位 输入向量 =[ [0], [1],…, [N一1]]的映 射,经查找表的查找后直接输出部分积.传统算法 是等到所有乘积已经产生之后再来相加完成乘加 运算的,与传统算法相比,分布式算法可极大地减 少硬件电路的规模,提高电路的执行速度.分布式 算法实现如图3(虚线为流水线寄存器)所示,算法 中的乘以位权2 可以通过图中的寄存器和累加器 完成. ol 【0】 o[o1 —--—’ 0】 ' ,[O] 。[o] l LUl —■ 寄 J +,_ 存 』Iv_1] . 一1】 xJU—l】卜__+ 器 .厂 —L —三—一 图3分布式算法结构 Fig.3 Distributed algorithm chart 刘建成,等.基于FPGA的FIR滤波器设计与仿真 LIU Jiancheng,et a1.Dseign and simulation of FIR di ̄tM iflter based on FPGA 3线性相位FIR滤波器设计 Linear phase FIR filter design [15..0]为16位的输出结果;INPUT_DELAY为延时 赋值模块,将xjN[7..0]输入信号经过1个时钟的 延时依次赋值给X0一OUT[7..0],…,X16一OUT [7..0];TEST—ADD×8为8个加法器模块,由于所 设计滤波器为线性相位,滤波器系数是对称的,所以 3.1设计要求 根据滤波器指标要求在Matlab仿真环境下,产 生滤波器系数分别为一18,一12,20,24,一22,一49, 23,161,232. 在Maxplus环境下采用原理图和VHDL语言相 结合的方式编程,设计一个线性相位FIR滤波器.整 个系统包括:延时模块(用于产生 (0), (1), (2),…, (16))、符号加法模块、符号乘法模块(系 数包含在乘法器内部)、多路加法器模块.各模块均 采用VHDL语言设计,乘法器采用分布式算法实现. 在设计时,将经过不同延时的输入信号进行两两相 加;MULTI—CO…MULTI—C8为9个9位的乘法器模 块,分别将输入信号乘以系数一l8,一l2,20,24, 一22,~49,23,161,232,系数采用9位补码形式,其 中第9位为符号位;TEST—ADD9为加法器模块,将 运算乘法器产生的9路数据相加,得到滤波器输出 数据,输出数据格式为16位补码形式. 设计的输人端输入时钟和数据2组信号,设计 4仿真及结果分析 在时钟的上升沿采样数据,时钟的下降沿输出数据. Simulation and analysis 输出端数据宽度为16位,结果采用补码输出.如果 要求输出为8位,则可以截取低7位,加上最高位的 符号位. 3.2软件环境和硬件平台选择 采用冲激输入信号验证滤波器性能,按照滤波 器理论,当输入信号为 ( ):f , =0; tO. z≠0. (7) 根据上述设计思路,顶层模块采用原理图输入, 子模块采用VHDL语言设计.在Ahera公司提供的 输出Y(/2)应为Y(0)=一18,Y(1)=一12,Y(2)= 20,y(3)=24,y(4)=一22,y(5):一49,y(6)= 23,Y(7)=161,Y(8)=232,y(9)=161,y(10)= FPGA开发集成环境Maxplus下,利用ACEX1 K系列 的可编程器件EPF1 K30QC208.3芯片分别对子模块 和整个系统进行了综合和时序仿真. 3.3顶层原理图 23,Y(11)=一49,Y(12):一22,Y(13)=24,Y(14)= 20,y_(15)=一12,Y(16)=一l8. 根据以上设计方案,在Maxplus开发软件下对 图4为FPGA内部的顶层原理.图4中:X—IN 此FIR滤波器进行设计及仿真.首先利用VHDL语 [7..0]为8位的输入信号;SCK为采样时钟;Result 言和原理图输入相结合的方式完成设计输入,然后 Result【15 0] ——_『L_ /———— 图4 Maxplus下的顶层原理 Fig.4 Top—level schematic diagram in the Maxplus 曲录厦垂 学学报:自然科学版,2010,2(5):400-404 Journal ofNanjing University ofInformation Science and Technology:Natural Science Edition,2010,2(5):4o0404 403 l&X- ̄,luz II Ei1e Edit强哪H0de扫sign millties tions噩ind0w珏clp 疆髓鞠 ≯童 溢趣夔鼙壁 鳖鎏 囊重鲮 ≥鲢 盏藜i鬓 戮 鬓 溪 鹱 Ref:I 塑 l豳幽-itme:I塑. ! IInteNal:I 盟. ! 10 0ns Name: Value T 200.0ns 4 ̄3:0ns if ̄30.0ns 800.0ns 1 0us 1 2us 1 4us 1 6us 1 us 20.us 2 2us 2 us 2 us 2 8us 3 qus 3 2.us 3 us 3 S.us 自i} m 01 。 。 H 01 T 01 sck o l r_]厂-]厂]厂_]厂r]r_]r_]r_]r_]r_]1]r_]厂-]r_]r_]厂]厂]厂_] 秘result[15 01 。叩o E ]l[ 睡亘 巫卫垂 亟 亘 巫 巫 画 匝匝 亘 二 11E6 a输入常数信号 ‘=‘z‘一。。~一●u一0‘一一~…一… …一一… 一 lAX+plus IT le Edit Node sign ̄tilities tions ̄_indow珏elp 辫 毫 鼙萋堡r 禽霹 鼙璺 墨螽i璧 曝 踅 鬻赣囊 鞠豢褒藏 囊 蠢譬蕊琏嚣 囊 Ref ! I豳幽Time:l : 堕 IInte ̄'al:巳!堕 l Name VaI 2000ne 4000ns 603 Ons ̄00 One 1 Ous 1 2us 1 4us 1 6us 1 8us 2 qus 2 2us 2, ̄us 2 6us 2 8us 3 0us 3 3 4us 3 Bus ..xinl7 0】 。 H∞ T 00 y 01 1 00 sck o I r_]f]厂_]厂_]厂]r_]_]广]厂_]厂_]厂]厂_]r_]r]r_]广]ll厂1]『 result[15 01 H 0000 b输入冲激信号 图5仿真波形 Fig.5 Simulation waveform 利用Compiler进行调试编译.编译通过后,再利用 参考文献 该软件所提供的Waveform Editor进行时序仿真, References 得到的时序仿真波形如图5所示.图5a为 王静,鱼云岐.基于FPGA的FIR数字滤波器设计与仿真[J]. xin[7..0]=01H时的仿真结果,图5b为表达式 国外电子元器件,2008,16(11):90-92 (7)的仿真结果.result[15..0]为滤波器输出信号, WANG Jing.YU Yunqi.Design and simulation of FIR digital filter 采用补码的形式输出,第9位为符号位,从仿真结果 based on FPGA[J].International Electronic Elements,2008,16 (11):90-92 图5b中可以看出,滤波器的输出结果与表达式(7) [2] 徐年,张剑英.基于FPGA的FIR数字滤波器的实现[J].煤炭 工程,2007(4):118-120 理论结果是一致的. XU Nian,ZHANG Jianying.Practice on FIR digital filter base on 利用软件所提供的Timing Analyzer进行时间分 FPGA[J].Coal Engineering,2007(4):1l8—120 析,可知此FIR设计方案的信号输出最大延迟在 [3] 姚利锋.一种基于FPGA并行流水线的FIR滤波器设计方案 [J].电子技术(上海),2009,46(1):1—3 44 ns左右,即系统的最高工作频率为22.7 MHz.从 YAO Lifeng.A design of FPGA FIR filter based on parallel pine— 程序编译结果中还可得到硬件资源及利用率情况, line[J].Electronic Technology(Shanghai),2009,46(1):1-3 [4] 周平,薛敏彪,胡永红,等.扩频数字接收机匹配滤波器的设计 实现该FIR滤波器共占用978个逻辑单元,逻辑单 与实现[J].微电子学与计算机,2004,21(9):158—160 元利用率为44%. ZHOU Ping,XUE Minbiao,HU Yonghong,et a1.Design and im— plementation of matched filter for digital spread specturm receiver 由以上结果可以看出,该设计方案相对于传统 [J].Microelectronics&Computer,2004,21(9):158—160 设计方法在速度、实时性和资源利用率上都具有很 [5] 李伟.FIR数字滤波器的FPGA实现[J].计算机与数学工程, 2007,35(1):163—165 大的优势,可将其应用于通信系统和信号处理领域. LJ Wei.Realization of FIR digital filter on FPGA I J I.Computer and Digital Engineering,2007,35(1):163—165 5 结论 [6] 胡文静,陈松,刘翔.基于FPGA的嵌入式程控数字滤波器实 现研究[J].电子器件,2009,32(6):1040—1042 Conclusion HU Wenjing,CHEN Song,LIU Xiang.Research on the implemen— 研究了在FPGA中采用分布式算法实现FIR滤 tation of embedded controlled digital filter based on FPGA[J]. Chinese Journal ofElectron Devices,2009,32(6):1040-1042 波器的原理和方法,设计了FIR滤波器并借助Ahera [7] 蒋立平,谭雪琴,王建新.一种基于FPGA的高效FIR滤波器 公司的FPGA器件EPF1 K30QC208—3和Maxplus软 的设计与实现[J].南京理工大学学报:自然科学版,2007 (2):125—128 件对设计方案进行仿真验证.从仿真结果可以看出, JIANG Liping,TAN Xueqin,WANG Jianxin.Design and imple— 采用分布式算法实现FIR滤波器方案是完全可 mentation of efifcient FIR filter based Oll FPGA f J 1.Journal of Nanjing University of Science and Technology:Naturla Science, 行的. 2007(2):125—128 刘建成,等.基于FPGA的FIR滤波器设计与仿真. 404 LIU Jianche“g,et al Dseign and simulation of FIR digital iflter based Oil FPGA [8] 李亚奇,张雅绮.线性相位FIR数字滤波器[J].电子测量技 术,2005(6):35-36 LI Yaqi,ZHANG Yaqi.The design of a linear phase FIR digital iflter[J].Electronic MeasurementTechnology,2005(6):35-36 Dseign and simulation of FIR digital filter based on FPGA LIU Jiancheng ZOU Yingquan XU Wei 1 Sch。o1 of E1ectmnic&I rITlali0n Engineering,Nanjing University of Informati。n Science&Technology,Nanjing 2l(x Abstract This paper introduces the theories and common implementation methods of Finite Impulse Response (FIR 1 digital iflter.An eficifent implementation design based on FPGA is presented・The design adopts symm。 nc l stmcture.addition,multiplication and cascade techniques,and is simulated with the FPGA chip and Maxplus soft。 ware.The simu1ati0n result shows that the design of FIR filter based on FPGA possess advantages like fast oPerat on speed,good rea1.time performance and 1ess hardware res。urces.It has imp。rtant engineering aPPlicati。n Value・ Key words digital filter;distributed algorithm;FPGA