FPGA实现32阶FIR数字滤波器的硬件电路方案

发布者:Serendipity66最新更新时间:2011-08-27 关键字:线性相位  滤波器  FPGA 手机看文章 扫描二维码
随时随地手机看文章
     随着软件无线电的发展,对于滤波器的处理速度要求越来越高。传统的FIR滤波器一般采用通用DSP处理器,但是DSP处理器采用的是串行运算,而FPGA是现场可编程阵列,可以实现专用集成电路,另外还可以采用纯并行结构及考虑流水线结构,因此在处理速度上可以明显高于DSP处理器。本文采用并行分布式算法在FPGA上设计并实现了高速处理的32阶FIR低通滤波器,在此过程中利用Matlab的数值计算与分析功能来提高设计效率。

  在数字信号处理中,数字滤波器的应用是极其广泛和重要的单元。与模拟滤波器相比,数字滤波器可以克服模拟滤波器所无法克服的电压漂移,温度漂移以及噪声等问题。数字滤波器根据冲击响应函数的特性,可以分为IIR滤波器和FIR滤波器两种。由于FIR滤波器只有零点、系统稳定等诸多优点。

 

  1 FlR低通滤波器的窗函数实现

 

  理想的滤波器频率响应中傅里叶反变换ha(n)一定是无限长的序列,而且是非因果的,而实际要设计的滤波器h(n)是有限长的,因此要用有限长来逼近无限长的,其方法就是用一个有限长度的窗口函数序列ω(n)来截取,即:

  

  常见的窗函数有矩形窗、巴特利特窗、汉宁窗、哈明窗、布莱克曼窗、凯泽窗。其中,凯泽窗提供了可变的过渡带宽。本文采用凯泽窗对FIR滤波器进行设计,其窗函数表达式为:

  

  I0[·]为第一类变形零阶贝赛尔函数,形状参数β为依赖于滤波器阶数M的参数,用来调整主瓣宽度与旁瓣衰减,选择M可产生各种过渡带宽和接近最优的阻带衰减。给定通带截止频率ωp,阻带起始频率ωs,阻带衰减As,凯泽窗设计中有经典公式可供使用,如下:

  

  过渡带宽:

  滤波器阶数:

  形状参数:

  

  假设低通数字滤波器设计指标如下:

  

  采用上面介绍的凯泽窗,利用Matlab编程计算得到32阶FIR低通滤波器参数如下:

  

  32阶FIR低通滤波器幅频特性图如图1所示。

 

  

 

  上述求得的系数是浮点型的,而在FPGA设计中使用的数据是定点型的,所以在设计滤波器之前要将系数转化为定点型,即系数的量化。为了兼顾精度和所占用的资源,本文的系数用12位二进制来量化,得到的整数系数结果如下:

 

  

 

  2 并行分布式算法原理及FPGA设计

 

  32阶FIR滤波器的差分方程表达式为:

  

  式中:x(n)为输入;y(n)为输出;h(n)为滤波器系数。

  设x(n)用二进制可表示为:

  

  其中,最高位为符号位。则式(7)可写为:

  

  式(10)为并行分布式算法,由上可以看出并行分布式算法是将滤波器表达式重新排列,分别加权求和。与传统算法最大的不同之处是在FPGA设计过程中以查找表代替乘法器,即根据输入数据的不同,将对应的滤波器系数预先求和保存在ROM中,也就是将每一项的乘法求和通过并行结构查表寻值完成,提高运行速度。

  具体FPGA实现时,首先将12位的输人数据并行输入到12列32位移位寄存器分别寄存,然后以寄存器中的值为地址,对应于查找表的结果,按照式(10),每列进行相应二次幂加权,最后各列累加,在第32个数据完全输入之后得到正确的滤波器输出。可以将32位的查找表划分为四个8位的查找表,从而降低对ROM的需求。

  在本设计中可采用多级流水线技术,也就是将在明显制约系统速度的长路径上插入几级寄存器,虽然流水线会影响器件资源的使用量,但它降低了寄存器间的传播时延,允许维持高的系统时钟速率。

 

  3 FPGA仿真与验证

 

  FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

  FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

  由于直接将大量数据进行硬件仿真验证很不方便,因此利用Matlab产生一个采样频率为100 MHz,频率分别为1 MHz与30 MHz的两个正弦信号相加后,作为输入信号。vec文件,导入到QuartusⅡ中进行仿真,时序功能仿真结果如图2所示。

  其中,clk为时钟信号,x_in为滤波器输入信号,y为滤波器输出信号。图2并不能很直观地看出并行分布式算法产生的滤波效果,可以将QuartusⅡ中。vwf文件转化为。tbl文件,在Matlab中按照一定形式编程可以得到时域及频域波形图,如图3,图4所示。

 

  

 

  图3,图4中,软件仿真是直接在Matlab中用输入信号与滤波系数卷积得到的,在时域波形中软件仿真输出信号与理想信号相比有一定时间延迟,而QuartusⅡ仿真与软件仿真结果中幅度的差别是由于硬件输入量化产生的。

  从时域或者频域波形图可以看出,频率为30 MHz的信号被滤除掉,只有频率为1 MHz的信号通过滤波器,达到了滤波的目的。

 

  

  

 

  4 结 语

 

  本设计选用Stratix系列芯片,最大处理速度可以达到200 MHz以上。本文没有考虑线性相位的滤波器对称性,在考虑线性相位的基础之上结合一些其他算法可以降低器件数量和进一步提高处理速度。由于FPGA器件的可编程特性,在本设计中可以修改滤波器参数,得到高速处理的高通或者带通数字滤波器,具有一定实用价值。另外,本文利用QuartusⅡ与Matlab联合仿真,极大地提高了FPGA的设计效率。

关键字:线性相位  滤波器  FPGA 引用地址:FPGA实现32阶FIR数字滤波器的硬件电路方案

上一篇:应用于倍频电路的预置可逆分频器设计
下一篇:基于Virtex-5 FPGA的高速串行传输系统的设计与实现

推荐阅读最新更新时间:2024-05-02 21:33

采用混合信号FPGA实现智能化热管理
   引言   传统上,人们一直采用热敏电阻、热耦或分离式温度测量芯片来测量系统温度。而且,随着系统速度越来越快,系统的相对尺寸越来越小,温度测量也变得越来越重要。   然而,若需要测量板卡上多个测试点的温度,这些器件的成本会迅速增加。这反过来产生了对高效、紧凑及低价的温度测量方法的迫切需求,其应用范围遍及高速计算机、电信网络交换设备以及工业温度控制,诸如便携式电子产品、生物医学器件、电机控制以及汽车电子。   由于及时和准确地修正温度在许多应用中都非常关键,当今的智能系统都采用了冷却系统,并根据系统内部情况平衡其运作。这类系统还有其它优点,即可使用板卡上的测温二极管 (或采用二极管接法的晶体管) 跟踪和测量特定器件的温度。
[嵌入式]
采用混合信号<font color='red'>FPGA</font>实现智能化热管理
滤波器和放大器测量 - 网络分析仪应用指南
对于通信系统而言,元器件的幅度和相位特性是影响性能的重要因素。矢量网络分析仪可提供此类器件的相关信息,包括放大器和晶体管等有源器件,以及电容器和滤波器等无源器件。而且,由于增加了时域功能,网络分析仪还能在测量过程中去除不需要的响应,只留下需要的信息。本应用指南说明了对射频滤波器进行的扫频测量,以及对通信频段放大器进行的扫描功率测量。 滤波器测量 对滤波器的特性进行全面的表征通常可以借助扫频测量来实现。图 1 显示了滤波器的频率响应。在左侧和底部,我们可以看到以对数幅度格式表示的传输响应;在右侧,我们可以看到反射响应(回波损耗)。最常测量的滤波器特性是插入损耗和带宽,如下图所示,其垂直标度经过扩展。另一个经常测量的参数是带外抑制。这
[测试测量]
<font color='red'>滤波器</font>和放大器测量 - 网络分析仪应用指南
基于DSPARM的并联有源电力滤波器控制器
 1 引言   近年来,随着电力电子设备及非线性、冲击性设备的广泛应用。在电网中产生的谐波对电网系统造成了严重的污染,因此消除电网中的谐波污染已成为电能质量研究的一个重要课题。目前普遍采用的并联型无源滤波器存在着滤波效果差,对电网参数敏感。元件体积庞大。严重时会导致串并联谐振事故等缺陷。采用现代电力电子技术、数字信号处理(DSP)技术和先进控制理论的有源电力滤波器(APF)技术㈣对电网谐波进行动态实时补偿。是目前解决谐波污染问题最有效和最具潜力的途径。   传统的并联型APF的控制方法大都基于瞬时无功理论、自适应理论等计算测量方法,首先计算出负载电流中的谐波成分,然后根据计算出的谐波电流值。分别进行补偿电流和直流侧电
[工业控制]
基于DSPARM的并联有源电力<font color='red'>滤波器</font>控制器
ALTERA FPGA在微处理器系统中的在应用配置
摘要:ALTERA公司SRAM工艺可编程器件应用广泛,专用配置器件比较昂贵。在具有微处理器的系统中,使用微处理器系统的存储器来存储配置数据,并通过微处理器配置FPGA,这种方法几乎不增加成本。微处理器根据不同的程序应用,采用不同的配置数据对FPGA进行配置,使FPGA实现与该应用有关的特定功能。详细介绍了微处理器系统中连接简单的被动串行配置方法和被动并行异步配置方法。 关键词:在应用配置 FPGA配置 被动串行 被动并行异步 可编程逻辑器件(PLD)广泛应用在各种电路设计中。基于查找表技术、SRAM工艺的大规模PLD/FPGA,密度高且触发器多,适用于复杂的时序逻辑,如数字信号处理和各种算法的设计。这类器件使用SRAM单元存
[半导体设计/制造]
FPGA在嵌入式系统中的应用”主题讨论会圆满结束
随着微电子技术和软件技术的发展,嵌入式处理器、专用数字器件、外设和DSP算法正在以IP核的方式嵌入到FGPA中,以单芯片可编程FPGA完成整个嵌入式系统设计已成为现实。国际和国内的众多FPGA公司都具有这样的芯片产品,并在通信、工业控制等领域具有广泛的应用。 基于这种现状,2012年11月17日,嵌入式系统联谊会在北京航空航天大学举办了一场名为“FPGA在嵌入式系统中的应用”的主题讨论会。来自产业界和教育界的工程师和学者们分享了各自在实际工程应用和教学实践中的宝贵经验,并就最新SOPC(PSoC)的FPGA芯片技术、开发工具、解决方案,以及现存问题和未来发展等内容,进行了深入探讨。 京微雅格业务发展部总监王海力博士在主题发言《
[嵌入式]
“<font color='red'>FPGA</font>在嵌入式系统中的应用”主题讨论会圆满结束
基于ARM的嵌入式处理器和FPGA之间通信的实现
1 前 言 在ARM+FPGA系统结构中,实现基于ARM的嵌入式处理器和FPGA之间通信最简单的方法就是通过异步串行接口EIARS232C。考虑选用集成有UART(Universal Asynchronous Receiver / TraNSmitter )控制器的嵌入式处理器(例如,EP7312),那么嵌入式处理器一侧就具有了利用异步串行接口收、发通信的能力。然而,FPGA内部并不拥有CPU控制单元,无法处理由UART控制器产生的中断,所以FPGA一侧不能利用现成的UART控制器构成异步串行接口,必须将UART控制器的功能集成到FPGA内部。 同一个系统中的ARM与FPGA之间属于短距离通信连接,他们之间的异步串
[单片机]
MCS-51单片机与CPLD/FPGA接口逻辑设计
在功能上,单片机与大规模CPLD有很强的互补性。单片机具有性能价格比高、功能灵活、易于人机对话、良好的数据处理能力潍点;CPLD/FPGA则具有高速、高可靠以及开发便捷、规范等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。本文就单片机与CPLD/FPGA的接口方式作一简单介绍,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。 单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式,分别说明如下: 一、总线方式 单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有许多优点。 (1)速度快。如图一所示,其通信工作时序是纯硬件行为,对于MCS-51单片机,只需一条单字节
[单片机]
带你了解矢量网络分析史密斯图及滤波器的带宽测量
矢量网络分析仪是一种很神奇的测量仪器,它的功能很强大也值得人们去探索。今天,安泰测试就针对矢量网络分析仪中的史密斯图及滤波器的带宽测量进行简单的介绍,希望能够让更多的人对此有所了解,并产生兴趣。 为了更好的进行测试及讲解,安泰测试特别使用了鼎阳SSA1000X矢量网络分析仪进行讲解,让我们一起来瞧瞧它是如何测量的吧。 矢量网络分析仪史密斯图 首先,在Mode下面打开矢网功能,在meassetup下面打开史密斯圆图,对照下面介绍 史密斯图是将复数反射系数映射到测试设备阻抗的工具。在史密斯圆图中,直线形阻抗平面会重塑以形成循环网格,可从该网格读取电阻和电抗(R+jX)。 史密斯圆图上的每个点都表示由实数电阻(r)和虚数电抗
[测试测量]
带你了解矢量网络分析史密斯图及<font color='red'>滤波器</font>的带宽测量
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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