基于FPGA分布式算法的低通FIR滤波器的设计与实现

发布者:温馨小筑最新更新时间:2012-07-13 来源: 21ic 关键字:FPGA  分布式算法  低通FIR滤波器 手机看文章 扫描二维码
随时随地手机看文章

0 引言

传统数字滤波器硬件的实现主要采用专用集成电路(ASIC)和数字信号处理器(DSP)来实现。FPGA内部的功能块中采用了SRAM的查找表(lo-ok up table,LUT)结构,这种结构特别适用于并行处理结构,相对于传统方法来说,其并行度和扩展性都很好,它逐渐成为构造可编程高性能算法结构的新选择。

分布式算法是一种适合FPGA设计的乘加运算,由于FPGA中硬件乘法器资源有限,直接应运乘法会消耗大量的资源。本文利用了丰富的存储器资源进行查找表运算,设计了一种基于分布式算法低通FIR滤波器;利用线性相位FIR滤波器的对称性减小了硬件规模;利用分割查找表的方法减小了存储空间;采用并行分布式算法结构和流水线技术提高了滤波器的速度,在FPGA上实现了该滤波器。

1 分布式的滤波器算法

FIR滤波器突出的特点是单位取样响应h(n)仅有有限个非零值。对于一个N阶的FIR滤波器形式如下:

在许多数字信号处理应用领域中,在技术上是不需要通用的乘法算法的。对于本系统可以通过Matlab中的fdatool工具根据设计要求设计出滤波器的系统函数h(n),那么乘积项h(k)×x(n-k)就变成了2个常数的乘法。无符号数的分布式算法和有符号数的分布式算法是分布式算法在FIR滤波器中的2种典型算法。

1.1 无符号数的分布式算法设计
由于FPGA为并行处理结构,所以假设x(n-k)数据宽度为L b,则由式(1)可表示为:

由式(1)、式(2)可以得到:

假设:

则式(1)可以表示为:


1.2 有符号数的分布式算法设计

对于有符号数的补码表示为:

则由式(5),式(1)可得:
[page]

2 分布式的滤波器的软件实现

从式(5)和式(7)可以看出,利用分布式算法实现一个N项乘积和,关键是如何实现式(4)中乘积项及各乘积项之和。

在FPGA中可以预先设定一个N位输入的查找表来实现部分乘积项,即预先设定N阶滤波系统查找表,实现向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一个映射。由于查找表的地址空间与阶数成指数关系(2N),完全用查找表来实现部分乘积项需要容量很大的存储器,这就需要占用巨大的资源,而且功耗增加、速度降低。因此为了减小设计规模,可以将一个大的查找表分为几个较小的查找表来实现。例如,本系统采用的8阶FIR滤波器,则用一个查找表来实现需要256(28)位地址空间的ROM,将8阶FIR滤波器分成两个4阶FIR滤波器实现,只需要2个16(24)位地址空间的ROM,这样大大地降低了设计规模和资源使用量。把输入x(i)作为地址,分为高四位和低四位地址进行查找。表1给出了8阶滤波系统的低四位地址x(i)与p(i)的映射关系。

本系统中滤波器系统函数采用Matlab中的fdatool工具,并根据设计要求采用了kaiser窗设计出滤波器的系统函数h(n),其采样频率为500 kHz,通频带带宽为100 Hz。设计的低通滤波器如图1所示。若需实现高通或带通滤波器,只需在设计时利用高通或带通滤波器代替低通滤波器即可。

利用Verilog硬件描述语言设计本系统软件,系统主要分为以下4个部分。包括顶层文件、A/D采样、算法实现和D/A转换。系统总体结构如图2所示。

由于FPGA频率为100 MHz,采用的DAC0809转换频率必须小于1 MHz,所以在顶层文件对系统时钟进行200分频,提供外围所需时钟。然后对各模块进行例化,使之成为完整的系统。

对A/D采样输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿时启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到完成A/D转换,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。CLK为时钟输入信号线。由顶层文件的分频时钟提供500 kHz时钟,对信号进行采集。

算法主体的实现主要由以下几个部分组成:数据接收存储、数据选择器、2个存储器、加法和控制部分。

数据接收是在每个时钟下降沿时检测转换完成信号,如果完成,则存入对应的存储器中,对于N阶的系统,就需要存储N个数据等待处理。然后利用数据选择器依次选择各个数据,对数据的每一位进行检测和提取,组成算法中所需要的数据。在控制信号的作用下利用累加器对数据叠加、移位处理即可实现。

最后,FPGA向DAC0832的数据输入口(D10~D17)输送数据。提供DAC0832数据锁存允许控制信号ILE,高电平有效。提供DAC0832控制信号(CS:片选信号;Xfer:数据传输控制信号;WRl、WR2:DAC寄存器写选通信号),低电平有效。[page]

3 仿真实验、工况信号测试实验

基于分布式算法低通FIR滤波器选用xilinx公司的virrex-Ⅱpro器件,在isel0.1下进行设计。利用modelsim 6.5对滤波器进行仿真。系统采用频率为500 kHz的分频时钟,在FPGA中产生一个高频方波和一个低频锯齿波信号,并对两个信号进行叠加。叠加后的信号作为输入,对应图中DIN,经过系统处理后输出结果对应图中RESULT,仿真结果如图3所示。

由图3中可以看出,本系统存在相位偏移和滤波后依然存在杂波信号的缺点,相位偏移主要是由滤波处理滞后于输入引起的,比较稳定且偏移较小,一般情况下可以忽略;杂波信号由系统阶数较低和系数量化误差引起的。实际应用中可根据情况选择适当阶数的滤波器和提高采样频率予以解决。

工况信号测试实验。由信号发生器同时产生一个50 Hz低频信号和一个5 kHz高频信号,然后对两个信号进行叠加,作为被测的工况信号。被测的工况信号经过A/D转换、滤波处理、D/A转换,然后在示波器中显示,如图4所示。输出波形中过滤掉了高频信号部分,同时低频信号能够通过该滤波器。由图4中可以看出,滤波处理后与实际信号还存在一定的误差。误差主要是由于算法中采用了低阶滤波器、系数量化误差、器件精度低等原因所致,该误差可以控制在允许范围,还可以通过选择高精度的器件和增加滤波器的阶数得以提高。


4 结语

实验结果表明,基于分布式算法低通FIR滤波器的优点是工作可靠,滤波精度较高,且具有占用资源少,运算速度快。在资源允许的条件下可根据实际应用任意确定滤波器的字长和阶数,在高速数字信号处理领域可以得到很好的应用。
关键字:FPGA  分布式算法  低通FIR滤波器 引用地址:基于FPGA分布式算法的低通FIR滤波器的设计与实现

上一篇:基于MC9S08QG4的烟雾传感器应用设计
下一篇:基于FPGA的数字频率合成器设计与实现

推荐阅读最新更新时间:2024-03-16 13:03

基于CPLD的汽油机点火参数测量仪的研制
  点火参数是影响汽油机性能的最重要因素之一。汽油机的点火参数主要有:点火提前角、点火能量、点火电压和点电流。通过对这些参数的测量、研究与优化,能提高发动机的性能,降低油耗,减少有害气体的排放量,改善环境空气质量等。就国内外目前的点火参数测量设备来说,普遍存在着体积庞大、价格昂贵、抗干扰能力差等缺点,甚至有些是采用示波器来观察,人机对话界面不够友好。由于火花塞放电时间大约在200~500μs之间,点火电压的上升时间却只有几到十几μs,为了保证测量精度,采样频率要求在10MHz以上,这个速率就是目前最快的单片机也难以胜任。因此如何有效地实现超高速的数据采集便成了解决问题的技术关键。同时,使高速的数据采集器与低速的控制电路实现可靠地信
[嵌入式]
基于CPLD的汽油机点火参数测量仪的研制
FPGA构建高性能DSP
    在数据通信和图像处理这样的应用中,需要强大的处理能力。当最快的数字信号处理器(DSP)仍无法达到速度要求时,唯一的选择是增加处理器的数目,或采用客户定制的门阵列产品。现在,设计人员有了新的选择,可采用现场可编程门阵列(FPGA)来快速经济地完成设计。采用现场可编程器件不仅缩短了产品上市时间,还可满足现在和下一代便携式设计所需要的成本、性能、尺寸等方面的要求,并提供系统级支持。 FPGA的方案选择     幸运的是,需要高性能DSP功能的便携式设备设计者还有其它选择。最近FPGA开始达到了应用所要求的成本竞争力。优选的FPGA方案可用来处理计算量繁重的高端DSP算法,同时还可为设计提供可编程逻辑解决方案
[半导体设计/制造]
基于FPGA的指纹采集接口设计与实现
一、引言 相对于密码、证件等传统身份认证技术和诸如语音、虹膜、脸形、签名等其他生物特征识别认证技术而言,指纹识别认证是一种更为理想的身份认证技术。其优点体现在: 1.广泛性——每个人的每一跟手指都具有指纹; 2.唯一性——每个人的指纹都不相同,极难进行复制; 3.稳定性——指纹不会随着年龄的增长而改变; 4.易采集性——指纹图像可运用专业的指纹传感器获取,易于开发识别认证系统。 随着电子商务的发展和消费类电子的普及,越来越多的领域需要指纹识别系统。目前,基于 、 的独立式指纹识别系统已经成功应用于考勤、门禁、安检等领域 。同时,随着微电子技术的进步,设计开发能应用在小型微型系统(如手机、PDA等)的ASIC资金资助:上
[应用]
DSP英雄迟暮 FPGA是未来的替代者?
    DSP技术,在某些人看来,或者已经面临着英雄迟暮的感觉,就我们当前所知道的。Freesacle、ADI、NXP早就停掉了新技术发展,而当前从大的方面说只剩下TI一家扛着Digital Signal Processor的大旗。 在很多人看来,这十年来,ARM和Intel的发展幅度已经远远超过了DSP。尤其是在ARM,其A9双核、A15四核在嵌入式市场已经以摧枯拉朽之势占领了主导地位,但我们不能否认,在工业领域,DSP的应用还是占有很重要的位置。而在Intel,自Silvermont推出以后,低功耗的X86又称为一股强劲势力。有人就会觉得ARM和Intel在未来的某个日子能够取代DSP。 关于这个问题,电子工程师陈俊直给出了一
[嵌入式]
Altera宣布Stratix 10的创新全面刷新高端FPGA和SoC业界性能指标
性能提高2倍,逻辑单元达5.5 M,异构3D系统级封装集成,以及最全面的安全功能 新闻亮点: Stratix 10 FPGA和SoC中的HyperFlex体系结构创新采用了Intel 14 nm三栅极技术开发,性能提高了2倍,在功效上也实现了突破。 异构3D SiP集成 (系统级封装) 的新时代,支持实现可扩展、非常灵活的下一代基于收发器的解决方案,产品能够更迅速面市。 创新的安全器件管理器支持实现业界最全面的高性能FPGA安全功能。 2015年6月9号,北京 Altera公司(Nasdaq: ALTR)今天发布其Stratix 10 FPGA和SoC体系结构和产
[嵌入式]
一种新型SoPC自动指纹识别系统设计
  目前,基于FPGA的自动指纹识别系统主要有纯硬件方式实现 和在以Nios II为CPU的软核中实现 两种方式。以纯硬件方式实现虽然速度较快,但由于指纹处理算法比较复杂,实现困难,同时算法精度差,设计周期长;而以下载到FPGA的软核Nios II为控制模块,具有灵活的设计方式,并具备软硬件在系统可编程的功能,较大程度上提高了系统速度,但是该方案中软硬件处理交替进行,涉及到软硬件之间频繁的指纹数据传输,限制了系统的速度,同时增加了系统的复杂度。   本文提出了一种基于SoPC的新型结构的自动指纹识别设计方案。具有以下特点:   (1)根据对指纹识别算法的分析和优化,在软、硬件结合的基础上将软件设计和硬件设计分开,把指纹识别系统
[安防电子]
一种新型SoPC自动指纹识别系统设计
TMP411 - 具备 N 系数与串联电阻校正功能的 +/-1 °C 远程与本地温度传感器
TMP411 是一种具备内置本地温度传感器的远程温度传感监控器。通常来说,与远程温度传感器通过二极管连接的晶体管为低成本 NPN 型或 PNP 型晶体管或二极管,它们是微控制器、微处理器或 FPGA 不可或缺的一部分。 该产品无需校准即可为多个 IC 制造商实现 ±1°C 的远程精确度。双线串行接口能够接收SMBus 写入字节、读取字节、发送字节与接收字节命令,以便设定报警阈值并读取温度数据。 TMP411 有很多特性,其中包括:串联电阻抵消、可编程非理想性系数、可编程精度、可编程阈值限制、最低温度与最高温度监控器、宽泛的远程温度测量范围(高达 +150°C)、二极管故障检测以及温度报警功能。 TMP411 采用 MSOP-
[新品]
基于FPGA的LCoS驱动和图像处理系统设计
基于空间光调制器的计算全息三维显示技术,目前常采用透射式LCD和反射式LCoS作为空间光调制器,以改变光经过空间光调制器(SLM)后的空间相位和振幅分布,达到对光信息的调制。传统的基于透射式LCD空间光调制器的计算全息三维显示系统,其成像光路复杂,而且必须依赖计算机进行数据发生、采集以及处理,这就限制了系统应用的灵活性,不便于推广。   相较于透射式LCD,LCoS具有光利用率高、体积小、开口率高、器件尺寸小等特点,可以很容易地实现高分辨率和微显示投影。采用彩色LCoS屏显示基于RGB的彩色图像,经过光学成像系统投影到接收屏上,实现计算全息图像的三维显示。   基于 FPGA 的显示系统有以下优势:第一,LCoS尺寸小,
[嵌入式]
基于<font color='red'>FPGA</font>的LCoS驱动和图像处理系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved