移动互联网 基于FPGA的数字滤波器实现 窦恬恬 辽宁锦州渤海大学工学院 摘要:对于现今的电子系统而言,尤其是图像处理、视频通讯等系统在处理信号方面有很高的要求,信号上要满足灵活性以及 实时性,同时目前的信号处理器无法满足灵活性以及实时性方面的需求。随着EDA以及可编程逻辑器件相关技术的不断发展, 无论是从成本、灵活性性能以及功耗等方面出发,FPGA都体现出了很大的优势,在信号处理领域中已经广泛运用到了基于 FPGA的信号处理器。本文主要实现了基于FPGA的lIR数字滤波器。 关键宇:FPGA信号处理数字滤波器 1引言 现今为止,实现数字滤波器的方法主要分为两种:硬件实 现以及软件实现。其中的软件实现指的是借助于微型计算机平 台通过软件实现。运用相关的计算机存储器、控制器、以及运 算器从而通过计算机将滤波器需要实现的运算编成程序执行起 来,使用者可以独自编写软件,也能够选择用现成的软件。国 内外的很多的研究公司实现了多种语言的信号处理软件包,然 而采取该方法实现效率比较低,很难实时处理信号,即使能够 选择快速傅立叶变换算法增快计算速度,然而这是需要有所付 出的,所以该方法用在科研以及教学方面比较多。 硬件实现指的是选择专门的硬件数字滤波,现今大部分选 择的是单片机、DSP(数字信号处理器)、以及专门的集成电路。 选择单片机速率比较低,专门的集成电路性能好。现今比较常 用的方法是选择数字信号处理芯片。DSP处理器在本质上指的是 应用于数字信号处理方面的一种单片微处理器,该处理器的最 大特点是具有很强的灵活性,而且适应性也很强,另外还可以 实现可编程,而且具有高效的处理速度。 2 IIR数字滤波器基础 数字滤波器作为线性处理模块中的一种,在数字信号处理 中具有很广泛的影响意义,数字滤波器的功能从实际上讲就是 把再将一组输入的序列经过运算以后再次形成另一组数字序列。 数字滤波器能够达到准确线性相位特性的效果,而这个是模拟 器件无法做到的。数字滤波器通常情况下是由2部分组成,分 别是有限冲激响应滤波器,简称为FIR和另一种就是无限冲激 响应,简称为IIR。IIR滤波器中的h(n)是无限长的,也即是 单位冲激响应,而同时IIR滤波器的传递函数H(Z)是存在极点 的,在结构上也是有输出输入反馈的存在,在结构上称为是递 归型的。IIR数字滤波器的传递函数可以用以下公式表示。 M ∑6 ‘ L,J Z H(Z)=— —一 1一∑ Z k=l 当设计指标是相同的时候,FIR滤波器在阶数方面的要求是 高于IIR滤波器5倍左右,而且具有较高的成本,同时具有较 大的信号延迟。IlR滤波器在阶数方面要求比较低,同时还能够 根据模拟滤波器实现所需要的效果,选择基于FPGA的IIR滤波 器在很多方面都占据优势。 3延时模块的设计与实现 延时模块的结构图如图1所示。 X(n・2) x(n-1 X(n1 图1延时模块的结构图 其中这里的移位寄存器的实现语言选择的是VHDL,延时模 块程序流程图如图2所示。 图2延时模块程序流程图 4控制模块的设计与实现 控制模块在设计的过程中主要是采用了从结果开始,进而 生成多种控制信号的思想。但是因为不同的控制信号就会有不 同的时序,所以必须要确保时序的正确性,从而才可以保证每 个模块能够相互协调运作,最终获得正确的结果。在这个过程 中的预备工作就是将信号输入以及输出的个数确定下来,并且 掌握这些信号之间的相互时序关系。 ..59 移动互联网 先需要选择Quartusn软件里面的逻辑分析仪实现调试和验证的 5 IIR滤波器的整体设计 把IIR滤波器中的每个基本二阶节的逻辑符号通过固定的 过程,接着根据双踪示波器从而将输入输出的波形进行测试。 具体的测试波形结果如图3所示。 方式连接起来,从而实现IIR滤波器的逻辑设计。在IlR滤波 器的设计中选择的二阶子系统就有5个,他们之间是相互级联 的关系,而且在同一时钟的情况下这5个二阶子系统是并行工 作的,同时需要把12位输入数据通过补零的方式形成16位, 其中所有的级联二阶子系统里面都包括了每个模块,从而达到 处理数字滤波的目的。 滤波器的工作是否正确的检测需要通过手动的方式将周期 数据输入,表1中所示的是指Mat】ab的计算值和采用Quartusn 进行仿真的结果值,从相关的理论中可以知道,周期方波信号 是不存在偶次谐波的,因此当谐波衰减达到了3次以上的时候, 需要通过IIR滤波器从而输出的结果中显示的是基波。表1中 的误差主要是由于精度问题计算,误差降低能够通过二进制位 数增加的方式进行改善。 表1滤波后输出的数据 输入数据 计算值 一—仿真值 输入数据 计算值 仿真值 163 一l7 -201 —371 —629 510 51O 5lO 5l0 51O 1 75.4 -28.2 一2l3.5 -384.1 -640.3 510 51O 5lO 510 510 —63.8 l46.2 3l6.7 461.1 625.9 —95 l3l 303 447 601 图3周期等于IOOKHZ方法的滤波效果 一——51O 5lO 5lO 51O 一663.5 -564.9 一427.4 一257.9 —653 —553 —4l 7 —245 510 5lO 5l0 5l0 557.9 557.9 456.4 308.3 545 543 44l 297 一6采用Matlab软件对IIR滤波器实现数学模型的建立 有关I TR滤波器的设计指标可以设置成:低通滤波器的 抽样率Fs是等于1OM赫兹,而低通滤波器的通带截止频率是 等于500K赫兹的,阻带截止频率的值是等于550K赫兹,而 通带最大衰减的值是等于0.1dB,阻带最小衰减的值是等于 60dB。本文在滤波器方式选择方面进行了采用切比雪夫I/I1 型、椭圆型、以及巴特沃斯型等的对比分析。从而能够得出 当IIR滤波器的性能指标是相同的时候,选择用椭圆型滤波 器效果是最佳的,而且该方式所需要的阶数是最小的,比较 容易实现。 图4 IOOKIIZ方波滤波前的FFT图 结语:本文主要介绍了基于基于FPGA的数字滤波器的设计, 6.1实验电路 作为系统测试中最重要的一个部分,实验电路显示的是系 重点从IIR滤波器的角度进行分析。程序设计部分包括了控制 模块以及延时模块的设计,课题结尾部分实现了数字滤波器的 测试。并且给出了测试的结果图。 统的实现情况。该部分主要介绍的是实验电路中的A/D转换电路、 D/A转换电路以及IIR数字滤波电路等 6.1.1 A/D转换电路 A/D转换电路中实现的是信号的转换过程,而这个信号是从 模拟信号到数字信号。在A/D转换电路的实现过程中具体的包 括了A/D的转换芯片以及型号为AD828的运算放大器、以及其 参考文献 [1]齐海兵,刘雄飞,张德恒.基于FPGA的数字滤波器的设计 与实现[J].现代电子技术,2006,29(15):70—71 [2]梁二虎,刘文怡,张文栋.基于FPGA的IIR数字滤波器硬 他的电阻电容之类的元件。该A/D转换电路中的芯片选择的是 效率最佳的,而且选择差分的形式实现模拟信号的输入,该电 路的电压范围在lV波动。 件模块的设计[J].微计算机信息,2008,24(2):205+225—226 [3]蒋垒,王昌林,刘鎏,等.基于FI'GA的FIR数字滤波器算 6.2实验结果与分析 在实际芯片里面保存的是系统设计的10阶IIR低通滤波器 的相关文件,通过编译以后从而进一步滤波的测试。在测试IIR 滤波器的流程中,输入的周期方波信号的频率是不一样的,首 数 法实现[J].舰船电子1程,2006,26(1):15卜156 [4]杨国庆,YANGGuoqing.基-丁FPGA的FIR数字滤波器的设计 与实现[J].现代电子技术,2008,3l(19):184—186 世摊60...