基于FPGA的FIR数字滤波器设计与仿真

发布时间:2010-11-26 18:21    发布者:designer
关键词: FIR , FPGA , 数字滤波器
1 引言

实现数字化是控制系统的重要发展方向,而数字信号处理已在通信、语音、图像、自动控制、雷达、军事、航空航天等领域广泛应用。数字信号处理方法通常涉及变换、滤波、频谱分析、编码解码等处理。数字滤波是重要环节,它能满足滤波器对幅度和相位特性的严格要求,克服模拟滤波器所无法解决的电压和温度漂移以及噪声等问题。而有限冲激响应FIR滤波器在设计任意幅频特性的同时能够保证严格的线性相位特性。利用FPGA可以重复配置高精度的FIR滤波器,使用VHDL硬件描述语言改变滤波器的系数和阶数,并能实现大量的卷积运算算法。结合MATLAB工具软件的辅助设计,使得FIR滤波器具有快速、灵活、适用性强,硬件资源耗费少等特点。

2 基本原理

分布式算法(Distributed Arithmetic,简称DA)是一项重要的FPGA技术,广泛应用在计算乘积和之中。该算法基本原理如下:

一线性时不变网络输出:




设系数c[n]是已知常数,x[n]是变量,在有符号DA系统中假设变量x[n]的表达式为:




式中xb[n]为x[n]的第b位,而x[n]也就是x的第n次采样。于是,内积y可以表示为:




分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序。该算法利用一个查找表(LUT)实现映射,即用一个2N字宽、预先编好程序的LUT接收一个N位输入向量xb=[xb[0]],xb,…,xb[N-1]]的映射,经查找表的查找后直接输出部分积。与传统算法相比,分布式算法可极大的减少硬件电路的规模,提高电路的执行速度。

3 FIR滤波器的设计与实现

3.1 FIR滤波器系数的提取


线性相位FIR滤波器通常采用窗函数法设计。这里采用MATLAB窗函数进行设计。窗函数设计的基本思想是要选取某一合适的理想频率选择性滤波器,然后将其脉冲响应截断获得一个线性相位和因果的FIR滤波器。根据给定的滤波器技术指标,选用凯泽(Kaiser)窗设计,其幅频特性和相频特性如图1所示。





由于从MATLAB算出的系数h(n)的值是一组浮点数,而FPGA器件只是定点数计算,所以要将浮点数转换为定点数。为了获得最佳滤波器系数,转换时需对其进行处理,转换后系








3.2 FPGA实现FIR滤波器

FPGA采用FLEXlOK系列中的EPF10K10 2C84—3器件。EDA 工具使用QuartusⅡ5.1。使用FIR滤波器描述编程,从而实现FIR滤波器的顶层原理图,如图2所示。




4 FIR滤波器实验电路

完成FIR滤波器程序设计后,可将程序编译时生成的配置文件下载到选用的器件中,配置后的器件就能够执行FIR滤波器的功能。为了验证设计的FIR滤波器的实际滤波效果,设计了一个实验电路,并利用测试仪器,组成了测试系统,如图3所示。该测试系统包含交流信号发生器、实验电路和示波器。而实验电路包括MD转换电路、FIR数字滤波电路和D/A转换电路,它是整个测试系统的重要部分。





4.1 A/D转换电路

A/D转换电路可将模拟信号转换为数字信号,其电路如图4所示。该转换电路中选用MAXIM公司的12位逐次逼近式A/D转换器MAXl83,其转换时间为3μs。MAXl83设置为双极性工作模式,模拟信号的输入范围是±5 V。





交流信号发生器发送的信号从连接器进入转换电路,经运算放大器OP07构成的反向比例放大电路送至MAXl83的模拟信号输入端AINl。在一定时序的控制下,完成将模拟信号转换为数字信号,并将其数字信号XIN[11..0]输出。该A/D转换器MAXl83的模拟信号输入端接入一个单级的RC低通滤波器,它实际上是一个简单的抗混叠滤波器。

4.2 D/A转换电路

D/A转换电路可将数字输入信号转换为模拟信号,其电路如图5所示。该电路选用MAXIM公司的电压输出型D/A转换器MX7245,其输出的模拟信号为电压信号,并具有12位的数据输入端。电路中,MX7245被配置成双极性工作模式,模拟电压信号的输出范嗣为±5 V。在一定时序的控制下,D/A转换器将输入端接收到的数字信号YOUT[11..0]转换成模拟信号输出。在模拟信号的输出端连接由电阻电容构成的一个低通滤波器,具有平滑滤波的作用。




4.3 FIR数字滤波电路

图6给出FIR数字滤波电路。该电路包括高密度可编程逻辑器件、有源品体振荡器、10针插座以及多只电阻和按键开关。这里选用的高密度可编程逻辑器件为AIXERA公司FLEXlOK系列的EPF10K20RC240—3。





配置的滤波器设计后,利用器件中的剩余资源,即由EPFl0K20RC240—4型FPGA控制A/D转换器和D/A转换器的功能。因此RD、ADCS、WR、LDAC、DACS这些引脚就是用于控制A/D转换器电路和D/A转换器电路的输出引脚。其中,引脚RD、ADCS分别与A/D转换器的引脚RD、CS相连,而引脚WR、LDAC、DACS分别与D/A转换电路的引脚WR、LDAC、CS相连。

5 滤波效果测试

将设计的低通滤波器的配置文件下载到器件中进行实际滤波测试,用示波器观察各个频率点上输出信号的幅值大小。由滤波测试结果可知,该FIR滤波电路完全达到低通滤波器5 MHz的采样频率,1.5 MHz的截止频率,以及16阶的技术指标参数。图7为原始波形,图8为滤波后的波形。




6 结语

研究了在FPGA中采用分布式算法实现FIR滤波器的原理和方法,设计了FIR滤波器并借助Altera公司的FPGA器件和0uartusⅡ软件对设计方案进行仿真验证,测试结果完全能满足系统设计要求。
本文地址:https://www.eechina.com/thread-42013-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
jerriwang 发表于 2011-6-22 15:16:43
你好!我现在也在做滤波器的设计,遇到几个问题一直弄不明白,请问能请教你吗,谢谢!我的QQ282995773,谢谢啦!
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表