1 / 23
文档名称:

几种fpga的fir滤波器方案详析(doc 22页).doc

格式:doc   大小:2,138KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

几种fpga的fir滤波器方案详析(doc 22页).doc

上传人:916581885 2021/5/13 文件大小:2.09 MB

下载得到文件列表

几种fpga的fir滤波器方案详析(doc 22页).doc

相关文档

文档介绍

文档介绍:几种FPGA的FIR滤波器方案详析(doc 22页)
FIR 滤波器设计方案
Designer
yaoguaiws
FIR滤波器的基本结构
横截型(卷积型、直接型)<Direct-type>
FIR滤波器的差分方程表达式为:
很明显,这就是线形时不变系统的卷积和公式,也就是x[n]的延时级联的横向结构,如下图所示:
由于线形相位FIR滤波器的系数是镜像对称的,所以N阶滤波器系数只需要个储存单元即可。而输入x[n]的值需要N个储存单元,这样总共就需要个储存单元。
级联型<Cascade-type>
将H(z)分解成实系数二阶因子的乘积形式:
图中画出了一个FIR滤波器的级联结构,其中每一个二阶因子用一个横截型来表示:
这种结构的每一节控制一对零点,因而在需要控制传输零点时可以采用它。但是这种结构所需要的系数比卷积型的系数h[n]要多,因而需要更多的储存单元。理论上需要个单元储存系数,再加上各单元储存中间结果,结果一共需要个储存单元。
频率抽样型<Decimation-type>
把一个N店有限长序列的z变换H(z)在单位圆上作N等分抽样,就得到,其主值序列就等于h(n)的离散傅里叶变换。即H(z)的内插公式为:
这个公式就为FIR滤波器提供了另外一种结构,这种结构由两部分组成。
其中的第一部分为(这是一个FIR子系统,是由N节延时单元构成的梳状滤波器):
级联的第二部分为(这是一个由N个一节网络并联而成的IIR子系统):
频率抽样型的结构如图所示:
该系统需要2N个储存单元用来缓存输入的数据,N个储存单元用来储存系数,一共需要花费3N个储存单元。
量化误差分析
理论设计的FIR滤波器系数都是无限精度的,当他们有硬件实现时,必须要量化,这必然引起量化误差。这也就使得理论滤波器和实际滤波器存在一些性能上的差别<由于FIR滤波器只有z=0只一个极点,他在单位圆内,不会出现系统的不稳定,这还算Lucky! >
系数的量化误差对系统的影响,不仅仅和量化字长有关,更是和滤波器的结构密切相关的!
分析:
假设为理论系数,为量化系数,为量化误差,则有:
可以得到由于各的偏差引起的第i个零点位置变化量为(推导过程见:《》):
上式分母中的每一个因子是由一个零点指向的矢量,而整个分母正是所有其它零点指向该零点的矢量积。当系统的零点非常密集时,他们互相的矢量长度就很短,矢量积就更小,就较大。
高阶直接型滤波器的零点数目多而密集,而低阶直接型滤波器的零点数目少而稀疏,因而前者对系数的量化误差要敏感得多。
在右上角的幅频特性曲线图(经放大)中,我们可以看到,系数经过量化后,会对幅频特性产生一定的影响。但是由于量化比特数非常的高,所以影响不是太大,能符合我们的设计指标。右下角展示了量化过后的系数对零极点的影响。
设计方案
由于要求是硬件最少,并且最优,我们采取第一种方案,即:系数高bit量化的直接型结构。由于FIR滤波器的系数镜像对称,故将线形相位FIR滤波器的流图改造成如下格式:
在上结构中,每一个乘加单元<MAC>都是将镜像对称的两个值进行MAC运算。所以我们在实现输入值x[n]的缓冲时,将缓冲设置成两个镜像对称的缓冲器<top-buffer & buttom-buffer>。这样在实现累加时两个buffer可以共用一个指针减计数器<decrementor>(采用减计数器,而不采用加计数器的原因将会在后续的时序关系中得到解释),而不必要使用一个指针加计数器<incrementor>和一个指针减计数器<decrementor>,或者让系数ROM的指针变量产生复杂的运动,这能简化时序设计的复杂性,同时也就节约了硬件;并且采用用镜像对称buffer,再不额外增加硬件的同时,可以降低时钟一半的频率,这是非常重要的。虽然增加了一个(24+1)-bit加法器,但是同时也减少了ROM中的计数器(资源共享原理将在ROM模块介绍),并且换来上述的优化设计。
在上述的原理框图中我们可以看到,所有的MAC都是规则分布的,这种几何上的“美”,正好是时分复用的最好例证。
假设x[n]的输入时钟clk的速率为,MAC单元的处理速率为,若存在,则可以实现MAC单元的复用,这样就将个MAC单元降低为1个,大大的节约了硬件。