• 基于fpga的花样流水灯 > 基于FPGA流水线分布式算法的FIR滤波器的实现
  • 基于FPGA流水线分布式算法的FIR滤波器的实现

    免费下载 下载该文档 文档格式:DOC   更新时间:2005-12-03   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:wangwen
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    式中,hi即h(i),xi(n)即x(n-i),N为滤波器的抽头数.
    把数据源数据格式规定为2的补码形式,则:
    式中,xib(n)为二进制数,取值为0或1;xio(n)为符号位,为1表示数据为负,为0表示数据为正.将(7)式代入(6)式可得:
    由此可以看出,方括号是输入变量的一个数据位和所有滤波器抽头系数h0~hi的每一位进行"与"运算并求和.而指数部分则说明了求和结果的位权,整数乘以2b就是左移b位,对此可以通过硬件连线实现,不占用逻辑资源.这样就可以通过建立查找表来实现方括号中的运算,查找表可用所有输入变量的一同一位进行寻址.
    2 系统设计与实现
    下面以一个16阶的线性相位FIR低通滤波器为例说明设计的过程.
    2.1 设计指标及参数提取
    2.1.1 滤波器的设计指标
    采样频率:≥50MHz 归一化截止频率:0.4MHz
    类型:低通 输入数据宽度:8位
    阶数:16阶 输出数据宽度:16位
    2.1.2 参数提取
    采用汉字窗函数(Hanning)设计16阶线性相位FIR数字滤波器,并提取其特性参数.
    这里需要注意的是:下载到FPGA的程序是按照FIR滤波器的差分方程式编写的.由于从MATLAB中算出的系数h(n)的值是一组浮点数,而FPGA器件只进行定点值的计算,所以要进行浮点值到定点值的转换.假定"1"对应10000000000000000(17位,相当于乘上65536).
    用汉字窗(Hanning)进行设计,此16阶FIR数字低通滤波器特性参数经过换算如下:
    h[0]=h[15]=0000 h[1]=h[14]=0065 h[2]=h[13]=018F
    h[3]=h[12]=035A h[4]=h[11]=0579 h[5]=h[10]=078E
    h[6]=h[9]=0935 h[7]=h[8]=0A1F
    2.2 系统具体实现步骤
    2.2.1 查找表的建立
    我们知道,如果滤波器抽头数N过多,用单个查找表就不能执行全字(因为查找表位宽=滤波器抽头数的数量).在这种情况下,可以将表的地址输入位数(即滤波器抽头数N)进行降低,既利用部分表并将结果相加.如果加上流水线寄存器,这一改进并没有降低速度,但是却可以极大地减少设计规模,因为查找表的规模是随着地址空间,也就是滤波器抽头数N的增加而呈指数增加,
    根据卷积和 定义16阶内积.
    滤波器抽头数是16个,考虑到线性FIR滤波器的偶对称特性,只考虑8个独立滤波器抽头数,则需要一个2 8×8的表(其中指数8指的是8个滤波器抽头数,
    后面的8指的是输入数据的位宽).但是Virtex-e FPGA只能提供4输入的查找表,所以要对查找表的地址进行电路分割.将8位地址线分为高4位和低4位,分别作为两个2 4×8的查找表的地址输入,从而指数倍地节省了硬件资源.
    2.2.2 查表计算部分积累加和的过程
    假定输入数据x[n]的值x[0]=1 10=00000001 2c,x[1]=-1 10=11111111 2c,x[2]=3 10=00000011 2c,x[3]=2 10=00000010 2c.(注:2c代表用二进制补码表示,最高位为符号位.)
    数据校验结果:h[0]x[0]+h[1]x[1]+h[2]x+h[3]x[3]=2812
    说明利用分布式查表算法的计算结果与直接计算结果相同,算法正确无误.
    查找表(2)的查表计算结果依此类推.只是需要注意:查找表(2)的数据输入x是8位数据x[4],x[5],x[6],x[7],而不是x[3],x[2],x[1],x[0].根据系数偶对称性质.x[8],x[9],x[10],x[11]查查找表(2),x[12],x[13],x[14],x[15]查查找表(1).

    3 设计结果
    本系统的FPGA采用Xilinx公司的Virtex-E系列中的XCV100E FPGA,使用的软件是Xilinx公司的ISE5.2i及Modelsim公司的Modelsim时序仿真工具,对FIR滤波器进行描述编程使用的是VHDL语言.
    实现FIR滤波器的最上层的原理图如图4所示,输入16个8位数据data_in={1,-1,3,2,2-1,1,-1,1,-1,3,2,2,-1,1,1}.
    系统仿真的时序图如图5所示.所设计FIR滤波器的幅频,相频,单位脉冲冲激响应如图6~8所示.

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 51单片机花样流水灯  花样流水灯的流程图  心形花样流水灯程序  花样全彩拖尾流水灯  爱心花样流水灯  fpga点亮灯  基于fpga的交通灯设计  51单片机流水灯电路图  简单心形流水灯电路图