首页>>科技 >>内容

基于FPGA器件的有限冲激响应滤波器方案设计:

发布时间:2023-10-23 13:54:34编辑:温柔的背包来源:

很多朋友对基于FPGA器件的有限冲激响应滤波器方案设计:不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

基于FPGA器件的有限冲激响应滤波器方案设计:

1的介绍

模拟集成运算放大器可以实现二阶滤波器,高阶滤波器可以由二阶滤波器串联而成。而无源元件的误差值在1.5%以上,需要提高元件的性能。滤波器的典型调试方法是不断改变元件值。而且运算放大器为了获得高增益带宽,需要将相位漂移保持在最小或者保持闭环系统的稳定性,这必然会增加滤波器在工程上的实现难度。

随着数字信号处理的发展,数字滤波器在设计选择上比传统的模拟滤波器更有吸引力。因为数字系统的信号是数字量,他进行滤波代数运算比模拟滤波器更容易。此外,数字滤波器不具有模拟滤波器随时间、温度和电压漂移的优点。他可以轻松达到过滤低频信号的设计目的。此外,数字滤波器可以实现近似理想响应和线性相位。2几种数字滤波算法

有许多好的方法来确定过滤器的算法。首先,设计者估计要设计的滤波器的性能,这通过传递函数来实现。将连续时间域的传递函数转化为离散时间域的线性差分方程。这个差分方程在Z域的一般公式如下:

这是脉冲传递函数方程。它实际上是滤波器的单位冲激响应在连续时域在z域的变换。相反,滤波器的脉冲响应是单位脉冲函数在Z域的逆变换。系数an和bn决定数字滤波器的响应。改变系数可以改变滤波器的响应。术语z-n和z-m表示分支的延迟或锁存。G(Z)方程表示对输入信号的代数运算。输入信号乘以do加上采样值与dl的乘积,再加上采样值与d的乘积,依此类推。

当所有n个项目完成乘积和累加运算后,计算输出值。同时将输出值锁存,分别乘以b0,b1,b2,…,bm系数,然后将乘积累加,再与原输出的累加值相加,得到最终的输出值。这个过程被称为回旋加速器。从每个输入值计算出一个输出值。

设定滤波器的系数是设计滤波器的关键,因为它可以设计出期望的频率响应。递归数字滤波器或无限冲激响应滤波器(IIR)是一种典型的数字滤波器,其设计和研究方法与模拟滤波器非常相似。

确定系数的一种方法是在连续时域确定一个能实现切比雪夫、巴特沃兹或等纹波的滤波器,然后通过z变换将连续时域的传递函数转换为离散时域的传递函数,从而确定滤波器系数。

第二种常见的方法是使用双边变换。这种方法的步骤是,工程师先设计一个模拟滤波器,这是将来对数字滤波器的改造;设计的模拟滤波器满足所需数字滤波器的性能指标;这个模拟滤波器通过5个变量的拉普拉斯变换和Z变量的z变换被转换成数字滤波器。

第三种方法称为帕克斯-麦克克莱方法。该方法确定了带通滤波器和带阻滤波器的边缘和阶数。系统修改脉冲响应系数,以在每个近似带通中获得相等的纹波性能。使用这种方法,滤波器的阶数不是很高。因此,需要有一种确定滤波器阶数的捷径,这种捷径可以减少使用方程来确定一个满足性能指标的阶数。

有限冲激响应滤波器和无限冲激响应滤波器各有优缺点。有限脉冲响应滤波器的性能是稳定的,因为它没有输出反馈,并且脉冲响应是有限的。他的振幅和相位是任意设定的。另一方面,有限脉冲响应滤波器通常需要大量分支抽头。所以输出值需要大量的代数运算。他的设计方法不同于模拟滤波器。

无限冲激响应滤波器需要的系数少,但输出反馈的电路复杂。如果由于数字运算误差而无法选择合适的系数,稳定的无限脉冲响应滤波器就会变得不稳定。设计数字滤波器时有四种主要误差,它们都是量化误差:

输入信号模数转换的量化误差;系数的量化误差;数字运算产生的量化误差,包括溢出;有限循环量化误差。有各种各样的计算机软件来帮助工程师设计滤波器,如DFDP,亚特兰大信号处理公司的设计软件。3用可编程逻辑器件设计有限脉冲响应滤波器图1是用可编程逻辑器件设计有限脉冲响应滤波器的功能框图。

为了具有高性能和强灵活性,在滤波器的设计中采用了可编程逻辑器件。有限的参数会被相乘/累加,分支抽头会占用硬件的大量物理空间。电路设计采用单端口16b乘法器/累加器,工作速度为85ns。该装置可以在双数运行和输出容量饱和的状态下工作。由于器件的微码基础,易于用可编程逻辑器件控制。

首先,系统必须将N(N=64)个样本加载到队列FIFO中(在反馈发生之前),否则队列不会满。计数器正常工作在20RAl0。6b异步计数器使用4b。SMP-DN随时工作(模数转换器完成采样值转换),最高2b作为纹波计数器。SMP_DN信号由20RAl0产生,但由模数转换器触发。

当计数器的计数值为63时,样本值已经保存在移位/保持寄存器中;GO信号变为真,系统开始滤波算法操作。系统与两个异步子系统(A/D转换器、乘法/累加器)相连,它们之间必须有一个异步接口。20RAl0用于产生接口信号SMP/CON(采样模式和转换模式)。此引脚为高电平,系统处于采样模式(SMP/CON=1)。

当GO为真且模数转换器的时钟下降时,SMP/CON为低电平(与MCLK异步,与SCLK同步)。由于SMP/CON信号用作状态机的输入,器件可能会遇到抖动输入。Lattice的可编程逻辑器件工作速度快,输入去抖动能力强。由于去抖动技术的应用,数据丢失的概率变得很小。因此,在开始转换之前,状态机最多只能等待一个MCLK周期。

当变换开始时,采样值被载入乘法器/累加器;然后,将系数加载到乘法器/累加器中进行乘法和累加运算,直到完成所有n个采样值。此时,输出有效,循环可以重新开始。这个过程可以用一个有8个状态的状态机来表示。

状态机根据代码状态的正确性控制乘法器/累加器的状态变化。两个输出使能信号XOE和YOE-MCDN控制是否将数据载入乘法器/累加器。CON_DN信号表示n个采样值的转换已经完成。为了使状态位(XOE,YOE_MCDN,CON_DN)输出,使用状态变量(SEBIT)。如果使用状态变量,则不允许将两个状态位强制设置为同一状态。

设计中使用了Lattice公司的可编程逻辑器件上电复位功能。高电平后,寄存器置0,精心设计的状态机处于初始状态。

除复位阶段外,SMP_DN信号一直产生(采样值从模拟转换为数字)。当SHIT_IN信号置位时,样本值从移位/保持寄存器移入队列。每当XOE被置位时,系数被载入乘法器/累加器。开始转换的第一个XOE信号被保持,直到在开始设置数字或将采样模块移入队列的阶段,新数据被载入移位/保持寄存器。后面的XOE信号是YOE_MCDN信号(Y输出使能信号和乘法器/累加器使能信号)。

YOE MCDN控制队列数据输出和数据加载移位/寄存器的并行操作。然后,采样信号被移出队列。这时下一个数据移位/保持寄存器的XOE准备好了,系统就这样循环。在SMP/CON信号变为采样模式之前,新的采样值会被移至移位/保持寄存器,循环再次开始。SMP/CON信号输入到状态机,允许系统重新开始循环。该控制信号由模式控制器产生。

转换结束时,由TC(终点计数值)指示。TC信号由6b系数计数器产生。当计数值为63时,TC信号有效,这意味着已经计算了所有64个采样值。有序信号是由队列产生的。他告诉状态机队列中的采样值是有效的。状态机不断向乘法器/累加器发送系数,直到ORDY信号为真。此时,状态机将转向下一个状态。

如果乘法器/累加器的周期时间不超过队列的服务时间,状态机认为这是输入状态,ORDY信号将始终为真。

改变乘法器/累加器的指令只是改变输出不同值的变量的代码。如果使用E2CMOS器件,可以很容易地重新编程并放回电路中。Lattice公司生产的E2CMOS的22V10是用于此目的的可重编程器件。

双64BX8b队列设备用于滤波器的分支抽头。该队列装载有n个样本值。该样本值被移出队列并进入乘法器/累加器进行处理,同时,该样本值也被存储在移位/保持寄存器中,然后被移回到队列中下一个样本值的前面,以由乘法器/累加器进行处理。在处理完所有n个样本之后,旧的样本被移出队列,而新的模数转换后的样本被放入队列。此时,乘法器/累加器输出滤波结果。

可编程逻辑器件可以作为数字滤波器和模数转换器之间的接口;数字滤波器的临时存储器和队列控制器。

移位/保持寄存器可以由20V8实现。在采样模式下(SMP/CON=1),该器件用作移位寄存器。20V8在模数转换器的控制下串行输入数据。此时20V8处于hold模式,数据不会丢失。当系统进入转换模式(SMP/CON=0)时,数据会立即并行输入移位/保持寄存器。系数存储在ROM中,由可编程逻辑器件复制。如果使用E2CMOS器件,可以通过对可编程器件重新编程来轻松改变滤波器的系数。

地址计数器用于获得系数的正确顺序。因为64个抽头需要64个系数,所以64个系数只需要6b地址。6b系数地址计数器可以在22V10中完成。6b系数地址计数器是由计数使能信号控制的同步计数器。他的时钟与乘法器/累加器的时钟信号同步。计数器的使能端与乘法器/累加器的XOE相连。因此,当系数移入乘法/累加器时,计数器只计数一次。

当计数值达到63时,TC信号变为真,表示已经计算了64个系数。reset端子变为高电平,计数器处于已知的起始状态。

剩余的四个逻辑微单元用于产生队列的异步控制信号。该信号由系统是否处于开始置位、采样和转换的状态来确定,包括产生用于移入和移出寄存器以及移位/保持寄存器的时钟信号。转换开始时,状态机设置CONV_DN和MCLK信号,SMP/CON由MCLK信号同步设置。这些信号使移位/保持寄存器的时钟信号CLKIN发生变化,寄存器在模数转换器的控制下移入有效采样值。

一种具体的有限脉冲响应滤波器

系统需要133 MCLK来完成一次周期转换。使用11.7MHz时钟,此过程大约需要11.4 s。系统的模数转换器通过串行端口向移位/保持寄存器输入数据需要3.3 s。系统采样输入信号的周期为11.43.3=14.7 s或频率为68kHz。奈奎斯特定理说,信号必须被采样两倍,才能保持信号信息的完整性。因此,当对信号进行滤波时,系统设备的工作频率为34 kHz。

利用ASPI公司的软件,采用Parks-McCcllean方法设计滤波器。其中心频率为20kHz,带宽为5 kHz,发射区域从2kHz开始,如图2所示。

由于使用了可编程逻辑器件,上述系统的有限脉冲响应滤波器可以很容易地变成无限脉冲响应滤波器。在新的样本值输入队列之前,最终输出值被发送到队列。如果系统的性能得到改善,应该使用具有更大存储容量和更快乘法器/累加器的队列设备。由于使用了速度为15ns的可编程逻辑器件,这些器件不再是限制因素。

如果使用并行ADC、64BX8b队列器件和45ns乘/保持累加器;该系统可以在没有太大变化的情况下达到167kHz的工作频率。

以上知识分享希望能够帮助到大家!