时间:2024-05-22
朱效效,蔡 俊,陆 伟
(安徽理工大学 电气与信息工程学院,安徽 淮南232001)
基于优化DA算法滤波器的设计及其FPGA实现
朱效效,蔡俊,陆伟
(安徽理工大学 电气与信息工程学院,安徽 淮南232001)
由于传统MAC方法在设计数字滤波器时频繁使用乘法器,导致整个系统运行速率下降,而一般DA算法在设计高阶滤波器时存在查找表规模过大以至于难以实现的问题。提出一种优化的DA算法来克服这一缺陷,为此设计了一个 18阶的线性相位结构的 FIR低通滤波器,并用 Verilog HDL语言在FPGA上实现,在第三方仿真平台Modelsim工具上仿真。仿真结果与MATLAB计算的理论值进行对比,验证了此优化算法的正确性。
MAC;优化DA算法;线性相位;FPGA
FIR滤波器具有严格的线性相频特性,同时又可保证任意幅频特性。而这个特点使FIR滤波器在数据传输、图像处理和识别、语音处理和通信系统中具有广泛的应用。除此之外,FIR滤波器除0以外没有其他的极点,所以整个滤波系统是相对稳定的,不存在不稳定的问题,这是FIR区别于IIR的本质原因,而FIR在传输数据时存在色散。
本文只讨论FIR滤波器的设计方法。基于DA算法的滤波器有效解决了MAC结构的不足,但是随着滤波器的阶数增加,查找表的规模呈指数增加,再设计高阶滤波器时普通DA算法甚至难以实现。本文提出了一种优化的DA算法来克服一般DA算法在设计高阶滤波器时的缺陷,并用Verilog HDL语言在FPGA上实现[1]。
如果 FIR中的h(n)为实数,并符合下列条件其中的一种:
偶对称:h(n)=h(N-1-n)
奇对称:h(n)=-h(N-1-n)
称其具有线性相位结构。
当 N为奇数时,其系统函数为[2]:
其直接型结构如图1所示。
图1 N为奇数线性相位FIR的直接型结构
当N为偶数时,其系统函数为:
其直接型结构如图2所示。
图2 N为偶数时直接型结构
2.1分布式算法基础
DA算法是基于查找表结构的,其详细公式解析如下[3]:
其中c[n]为已知的,可令x[n]如下式:
则内积y为:
重新分配求和的顺序,其结果如下:
2.2分布式算法的优化
假如N的数量增加,一个单一的LUT无法执行全字,就能够利用部分表并先将结果相加。其原理为:假定长度为LN的内积,那么可以用一个DA体系结构实现它:
表的规模从一个24NB的LUT减少4个2NB表。优化的DA算法的结构图如图3所示。
图3 优化的DA算法的结构图
3.1基于FPGA的FIR设计流程
本文设计的FIR滤波器的流程如图4所示,主要分为系数提取和FPGA完成[4]。
图4 基于FPGA的FIR滤波器的设计流程
3.2FIR滤波器的MATLAB设计
本文设计滤波器主要参数为阻带最小衰减为30 dB,通带波纹小于0.5 dB,截止频率为0.4π。为此设计了18阶的FIR线性相位低通滤波器,采用窗函数中的凯泽窗来设计。根据凯泽窗参数β对滤波器的性能的影响,取β= 2.12来满足条件。由这些技术指标可通过MATLAB提供的滤波器设计工具箱FDAtool来仿真设计滤波器,从而提取滤波器的系数[5]。
由于提取出来的系数是浮点型,而FPGA只能处理定点型数据,所以需要把提取出来的系数进行量化,在该设计方案中将系数扩大 1 024倍,即 210。再通过编码转化为二进制形式。通过FDAtool工具提取出的数据及其量化结果如下:
其量化结果分别为:-15,0,29,25,-34,-78,0,202,382。十六进制补码分别为 fff1,0000,001d,0019,ffde,ffb2,0000,00ca,017e。
3.3线性相位FIR滤波器的FPGA实现
本文采用模块化思想,由一个主时钟控制各个子时钟,全部模块分别为并串转换、延时与预求和、移位累加、查找表采用3个分割查表结构和求部分和的模块[6]。
为了验证电路能否连续正确运行,本文连续随机输入序列0、127、100、57、26、5、20、26、79、8、12、49、35、102、99、125、63、82在 Modelsim工具上进行仿真,其结果如图5所示。
图5 线性相位FIR低通滤波器的仿真结果
仿真结果与MATLAB工具计算的理论值相比较,其Modelsim部分仿真结果如下:0、-2、-1、3、6、0、-11、-9、19、19、66。MATLAB理论计算结果对应为:0、-1.823 9、-1.436 2、2.816 0、5.568 3、-0.247 6、-11.1261、-9.084 2、19.414 9、66.125 3。通过仿真与MATLAB计算理论结果进行比较,理论值与仿真结果存在误差但是误差在允许的范围内,误差主要是因为量化时产生的。
本文提出的优化DA算法本质是提出对查找表的优化,事实证明滤波器阶数越高,此优化算法的作用越明显,而且可以节省内部逻辑资源。最后通过硬件实现,结果与理论值相比较,设计符合预期。
[1]程佩青.数字信号处理[M].北京:清华大学出版社,2001.
[2]Meyer-Baese U(美).数字信号处理的 FPGA实现[M].北京:清华大学出版社,2011.
[3]杜勇.数字滤波器的MATLAB与FPGA实现[M].北京:电子工业出版社,2012.
[4]高耀红.基于 FPGA的FIR低通滤波器[D].长沙:湖南大学,2012.
[5]刘朋全.基于FPGA的FIR数字滤波器的设计和实现[D].西安:西北工业大学,2006.
[6]夏宇闻.数字系统设计教程[M].北京:北京航空航天大学出版社,2008.
Implementation of digital filter with optimal distributed arithmetic based on FPGA
Zhu Xiaoxiao,Cai Jun,Lu Wei
(School of Electrical and Information Engineering,Anhui University of Science and Technology,Huainan 232001,China)
Due to traditional MAC method used multiplier frequently in design of the digital filter,which led to decrease the speed of the whole system,while the general DA algorithm in the design of high order filter existed the problem of that the scale of look-up table was too large to achieve.This papper proposes an optimized DA algorithm to overcome this defect,to verify the algorithm the thesis design a 18 order linear phase structure of FIR low pass filter.Finally,this algorithm is brought out that is used Verilog HDL in FPGA,and simulated in Modelsim tool.The simulation outcome is contrasted with that the MATLAB calculated theoretical values,which verifies the correctness of optimization algorithm.
MAC;optimization of DA algorithm;linear phase;FPGA
TN713
A
0258-7998(2015)02-0059-02
10.16157/j.issn.0258-7998.2015.02.012
2014-10-22)
朱效效(1988-),男,硕士研究生,主要研究方向:检测技术与自动化装置。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!