保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于FPGA流水线分布式算法的FIR滤波器的实现


采样频率:≥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

图5

    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

《基于FPGA流水线分布式算法的FIR滤波器的实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/163382.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。