APP下载

基于VHDL多路数据采集系统中FIR低通滤波器设计与实现

2011-12-27张景芝张鹏云和志强

河北省科学院学报 2011年3期
关键词:通带低通滤波器信号处理

张景芝,张鹏云,和志强

(河北经贸大学信息技术学院,河北石家庄 050061)

基于VHDL多路数据采集系统中FIR低通滤波器设计与实现

张景芝,张鹏云,和志强

(河北经贸大学信息技术学院,河北石家庄 050061)

针对多路数据采集系统中的高频噪声干扰问题,设计了一个基于分布式算法的通带为0-40M的FIR低通滤波器。根据该低通滤波器的总体设计要求,选用合适的窗函数,采用Matlab中的FDATool工具获取滤波器的系数并将其进行量化,在Quarters环境下运用VHDL语言输入方式实现了基于FPGA的FIR低通滤波器。

低通滤波器;多路数据采集;分布式算法;VHDL;

在FPGA应用中,比较广泛而基础的就是数字滤波器,根据其单位脉冲响应函数的时域特性可分为IIR(Infinite Impulse Response)数字滤波器和FIR(Finite Impulse Response)数字滤波器。其中FIR滤波器采用非递归的实现方式,稳定性和线性度都较好,因而在线性相位要求严格的场合,如数据通信、图像处理、语音信号处理及自适应等领域具有广泛的应用。FIR滤波器的实现有很多种方法,其中基于分布式算法的FIR滤波器的FPGA实现采用硬件结构,此算法的特点是运行速度快,能较好的实现实时处理,特别适合于高速实时的信号处理[1]。

针对基于FPGA多路数据采集系统中的噪声干扰问题,笔者设计了一个采用分布式算法,通带为0-50M的32阶FIR低通滤波器。多路数据采集系统的设计思想是采用多个低速模数转换器(ADC)同时对一路输入模拟输入信号进行采样,实现高速率的数据采集[2]。

在基于FPGA多路数据采集系统中,利用FPGA内部的PLL(锁相环)和可编程逻辑块等资源对100M晶振输出的信号进行倍频和分频处理,组成四路相位差为90°的采样时钟信号,四路A/D转换器可实现400M的高速数据采集,每一路A/D转换器负责将模拟量转换成数字量,四路转换后的数字信号通过FPGA内部的通带为0-50M低通FIR数字滤波器的滤波,消除噪声信号的干扰,然后将滤波后的信号依次写入SDRAM。

2 FIR低通滤波器的设计与实现

总体设计要求采样频率fs:400MHz;类型:低通FIR数字滤波器;通带频率:0-50M;滤波器阶数:32;阻带最小衰减ds:50db;通带最大衰减dp:1db;输入数据宽度:8位;输出数据宽度:18位;

2.1 低通FIR滤波器的设计

文献[1,3]已经对FIR滤波器的设计原理进行了详尽的介绍。笔者针对多路数据采集系统中的高频噪声干扰问题,设计了一个基于分布式算法的通带为0-50M的FIR低通滤波器。FIR滤波器是一个线性时不变系统,在时域的输入输出关系是

其中,N是滤波器的阶数,x(n)输入序列,y(n)是输出序列,h(n)是单位冲击响应函数或称为滤波器系数。同时为了提高运算速度,减少所设计的滤波器对FPGA资源的占用,采用如图1所示的线性偶对称FIR滤波器结构。

FIR滤波器的设计方法有窗化法、频率抽样法和最优法等。后两种方法都必须用计算机作优化处理,而窗化法无此必要,并且窗化法简单方便,所以本设计采用的是窗化法进行设计。本设计所要求的阻带最小衰减ds=50d B,符合这一要求的有哈明窗和布莱克曼窗,但布莱克曼窗的过渡带宽,因此选择哈明窗。

FIR带通滤波器的理想频率响应为:

图1 线性偶对称FIR滤波器结构图

2.3 基于分布式算法的带通FIR滤波器的实现

由(1)式可知FIR滤波器算法主要是进行乘累加运算。传统乘累加算法是等所有乘积都已经产生之后再进行相加来完成乘累加运算,速度较慢。本设计采用Croisier的分布式算法(Distributed Algorithm)[4],该算法不但速度快,而且可以利用FPGA内部的ROM以实现流水线设计。基于分布式算法的思路如下:其中x b(k)表示x(k)的第b位。那么FIR滤波器的表达式(1)可改写为

分布式算法的结构如图2所示,它与传统MAC算法的不同之处是部分积计算顺序不同。分布式算法的具体实现方式有两种:并行方式和串行方式。串行方式速度相对并行方式较慢,但是并行方式提高速度的代价是增大硬件规模,两者各有利弊[5]。为了兼顾速度和硬件规模,本滤波器将采用并串结合的分布式算法实现对4路数据采集实现快速的处理,运用流水线技术,缩小查找表所要占用的FPGA资源,实现快速高效的FIR滤波器的设计。

FPGA内滤波器设计结构如图3所示。首先,对4路模数转换器转换得到的4路数字数据进行串并转换,由于本文所设计的滤波器是32阶的,所以将4个8位的输入转换成并行的32个8位的输出。之后将这32个输出分成4组,做为4个ROM的读地址。这种串并结合的分布式算法只需要经过4个时钟周期就可以计算输出一个y(n),每个ROM的地址都是8位的,有256个地址,也就是说每个ROM存储了256个数据,而且每个查找表内的数据跟滤波器系数有关。本设计的滤波器阶数是32,所以总共需要4个ROM来实现设计。

图2 分布式算法结构图

图3 基于分布式算法的多路数据采集系统FIR滤波结构图

2.4 带通FIR滤波器仿真

根据设计指标,使用MATLAB软件中的信号处理工具箱(FDA tool),用哈明窗设计出适合要求的FIR滤波器系数[6]。滤波器的脉冲响应序列如图5所示。由于FPGA中的数据是用定点数表示的,所以需要对系数进行量化,量化结果为:

FPGA的主要设计方法是原理图和硬件描述语言,其中图形化设计方法虽然直观,但是改动起来比较麻烦,灵活性差,相比之下,硬件描述语言以其可移植性强、方法灵活和多库支持等优点,得到广泛的应用[7]。

图5 FIR滤波器的脉冲响应序列

图6 Quarters II8.0该FIR滤波器的仿真

本文中的FIR数字滤波器的设计就是在FPGA上采用VHDL的设计方法,在Quarters II 8.0环境下实现的,图6就是该滤波器的仿真图。

对于4路输入数据,由于每路都相差90°相位,图6中的数据,对四路输入数据进行排序输出后的结果为1,4,8,13,19…,运用式(1)进行卷积计算得:-4,-22,-1,-6,-19…,与Quartus II中本文所实现的滤波器结果一致。

3 结束语

本文是在基于FPGA多路数据采集系统中,利用串并结合的分布式算法,采用流水线技术,设计并实现了一个32阶通带为0-50M的FIR数字滤波器,结果表明该设计占用FPGA资源少,处理速度快,能够实现对通带以外的噪声信号滤除,效果良好。

[1]冷建华,李萍,王良红.数字信号处理[M].国防工业出版社,2003.

[2]和志强,张鹏云.基于PXI总线的1GSPS超高速双通道数据采集卡[J].微计算机信息.

[3]俞一彪,孙兵.数字信号处理—理论与应用[M].东南大学出版社2005.

[4]Emmanuel.C.Ifeahor.Digital Signal Processing—A Practical Approach[M].北京电子工业出版社,2004.

[5]Xilinx.The role of distributed arithmetic in FPGAbased signal processing.Xilinx Application Note,2002,http://www.xilinx.com/appnotes/theoryl.pdf.

[6]楼顺天,李博涵.基于MATLAB的系统分析与设计信号处理[M].西安电子科技大学出版社,2001.

[7]刘昌华.论VHDL语言的程序结构和描述风格[J].计算机与数字工程,2010,(12):141-144.

Design and implement of FIR low-pass filter in multi-road data acquisition system based on FPGA

ZHANG Jing-zhi,ZHANG Peng-yun,HE Zhi-qiang

(CollegeofInformationTechnology,HebeiUniversityofEconomicsandBusiness,ShijiazhuangHebei050061,China)

A low-pass FIR filter based on distributed algorithm is designed and implemented to solve the problem of interference by noises of high frequency.According to the design indexes,the filter coefficient is designed by FDA tool in MATLAB and implemented in Quarters II by VHDL.

Low-pass filter;Multi-road Data Acquisition;Distributed Algorithm;VHDL

TP274

:A

1001-9383(2011)03-0052-04

2011-06-30

河北省应用基础研究计划项目(10963529D)、河北省高等学校科学技术研究项目(ZD2010213)

张景芝(1986-),女,河南南阳人,硕士研究生,主要研究方向:高速数据采集.

猜你喜欢

通带低通滤波器信号处理
一种结构紧凑的超宽带带通滤波器
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
基于瞬时无功理论的谐波检测中低通滤波器的改进
二维周期介质阻带分析与应用研究
基于宽谱光源的可调多通带微波光子学滤波器研究
非等纹响应低通滤波器研究
后置低通滤波器对冲击负荷电能计量的影响