网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > FPGA > 正文

基于FPGA的高速FIR数字滤波器的设计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
      

1 引 言

目前FIR滤波器的实现方法主要有3种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。

FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。本文利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器,使FPGA在数字信号处理方面有了长足的发展。

2 Matlab设计滤波器参数

以表1的滤波器参数为例,分析设计高速FIR数字滤波器的方法。

利用Matlab为设计FIR滤波器提供的工具箱,选择滤波器类型为低通FIR,设计方法为窗口法,阶数为16,窗口类型为Hamming,Beta为0.5,Fs为8.6 kHz,FC为3.4 kHz,导出的滤波器系数如下:

3 快速FIR滤波器算法的基本原理

(1) 分布式算法

分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积进行累加得到最终结果。

对于一个N(N为偶数)阶线性相位FIR数字滤波器,输出可由式(1)表示:

(2) 乘法器设计

高性能乘法器是实现高性能的FIR运算的关键,分析乘法器的运算过程,可以分解为部分积的产生和部分积的相加两个步骤。部分积的产生非常简单,实现速度较快,而部分积相加的过程是多个二进制数相加的加法问题,实现速度通常较慢。解决乘法器速度问题,需要分别从这两个方面入手,减小部分积的个数,提高部分积相加运算的速度。

3.1 Booth算法

Booth算法针对二进制补码表示的符号数之间的相乘,即可以同时处理二进制正数/负数的乘法运算。Booth算法乘法器可以减少乘法运算部分积个数,提高乘法运算的速度。

下面讨论一个M b×N b乘法器基本单元的设计。设乘数为A,为M比特符号数,2的补码表示,相应各比特位的值为ai(i=0,1,…,M-2,M-1),用比特串可表示为:

A=aN-1aN-2…a2a1a0 (2)

设被乘数为B,为N比特符号数,2的补码表示,相应各比特位的值为bi(i=0,1,…,N-2,N-1),用比特串可表示为:

B=bN-1bN-2…b2b1b0 (3)

MacSoley提出了一种改进Booth算法,将需要相加的部分积数减少为一半,大大提高了乘法速度。改进Booth算法对乘数A中相邻3个比特进行编码,符号数A可表示为:

改进Booth算法根据用2的补码表示的乘数比特图案给出编码值di,其真值表如表2所示。

因此,应用改进Booth算法的乘法器运算过程仍然包括Booth编码过程,即部分积产生过程和部分积相加过程。所不同的是,其产生的部分积个数减少到原来的一半。

3.2 Wallace树加法

在采用改进Booth算法将部分积数目减少为原来的一半之后,乘法运算的主要问题就是处理多个多比特二进制操作数相加的问题。最直观的算法是将多个部分积逐一累加,但效率很低,运算时延巨大。

Wallace在1964年提出采用树形结构减少多个数累加次数的方法,称为Wallace树结构加法器。Wallace树充分利用全加器3-2压缩的特性,随时将可利用的所有输入和中间结果及时并行计算,因而可以将N个部分积的累加次数从N-1次减少到log2N次,大大节省了计算时延。如图2所示为Wallace树结构与CSA结构的对照,其结构的关键特征在于利用不规则的树形结构对所有准备好输人数据的运算及时并行处理。

Wallace树结构一般用于设计高速乘法器,其显著优点是速度快,尤其对处理多个数相加的情况具有相当的优越性,缺点是其逻辑结构形式不规整,在VLSI设计中对布局布线的影响较大。

3.3 进位的快速传递

考虑到提高两个多比特操作数相加运算的速度,关键在于解决进位传递时延较大的问题。采用以牺牲硬件资源面积换取速度的方式,以独立的逻辑结构单独计算各个加法位需要的进位输入以及产生的进位输出,提高进位传递的速度,从而提高加法运算速度。

3.3.1 四位超前进位加法器的设计

两个加数分别为A3A2A1A0,B3B2BB1B0,C-1为低位进位。令两个辅助变量分别为G3G2G1G0和P3P2P1P0:Gi=Ai&Bi,Pi=Ai+Bi。G和P可用与门、或门实现。

一位全加器的逻辑表达式可化为:

利用上述关系,一个4比特加法器的进位计算就变化为下式:

由式(7)可以看出每一个进位的计算都直接依赖于整个加法器的最初输入,而不需要等待相邻低位的进位传递。理论上,每一个进位的计算都只需要3个门延迟时间,即同时产生G[i],P[i]的与门以及或门,输入为G[i],P[i],C-1的与门,以及最终的或门。同样道理,理论上最终结果sum的得到只需要5个门延迟时间。

实际上,当加数位数较大时,输入需要驱动的门数较多,其VLSI实现的输出时延增加很多,考虑互联线延时的情况将会更加糟糕。因此,通常在芯片实现中设计位数较少的超前进位加法器结构,而后以此为基本结构构造位数较大的加法器。

3.3.2 进位选择加法器结构

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师