EDN China > 技术文章 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于FPGA的FIR抽取滤波器设计

来源:电子设计应用/国防科技大学ATR实验室 佟力永 肖山竹?? 2006年04月01日 ?? 收藏0

????? 时钟8:加法器输出x(n-1)+x(n-2)运算结果,乘法器进行h(0)[ x(n)+x(n-3)]运算,控制器向乘法器发送系数h(1);
????? 时钟9:乘法器进行h(1)[ x(n-1)+x(n-2)]运算,输出h(0)[ x(n)+x(n-3)]运算结果。控制器向累加器发送控制信号(clr为高电平);
????? 时钟10:乘法器输出h(1)[ x(n-1)+x(n-2)]运算结果。累加器初始化,开始累加操作。控制器向累加器发送控制信号(clr为低电平);
????? 时钟11:累加器进行累加运算:h(0)[ x(n)+x(n-3)]+ h(1)[ x(n-1)+x(n-2)]。控制器向累加器发送控制信号(clr为高电平),控制器输出滤波数据有效信号(valid为高电平);
????? 时钟12:累加器输出h(0)[ x(n)+x(n-3)]+ h(1)[ x(n-1)+x(n-2)] 累加结果

,并初始化,开始新一轮累加操作。控制器输出滤波数据无效信号(valid为低电平)。

????? 以上就是抽取滤波器完成一次抽取滤波的全过程。可见,从数据x(n)输入到滤波结果y(n) 输出需要8个工作时钟。如果控制器不停地向乘法器和加法器发送抽头、系数和控制信号,就会形成流水线操作,那么每过两个时钟,抽取滤波器就会输出一个滤波结果。

????? 两点注意事项

????? (1)两个n位二进制数相加,其和至少需要n+1位二进制数才能正确表示。本设计中的加法器输入/输出都是18bit,为了防止加法器溢出,应确保18bit输入数据x(n)的最高两位相同(都是符号位)。

????? (2)为了实现抽取滤波器的多级串联结构,应统一输入数据有效信号enable和输出数据有效信号valid的时序要求。本设计规定控制器在累加器输出滤波结果后的下一个时钟送出滤波结果有效信号,时宽为一个工作时钟周期。

????? 设计特点

????? 采用此设计结构实现抽取滤波器有以下三个特点:

????? (1)节省片内资源,提高资源使用效率。由于利用IP核生成的滤波器往往不能针对实际情况合理的利用片内资源,造成资源浪费。本设计采用了流水线结构,所有功能模块都满负荷工作,没有空闲等待时钟,从而节省了片内资源,提高了资源利用率。

????? (2)可以实现抽取滤波器多级结构。针对抽取滤波器的输出特性,可以采取相同的设计方法,再设计一级抽取滤波器,对前一级输出的数据再次抽取滤波,从而实现多级抽取滤波器结构。

????? (3)设计灵活,扩展性强。用寄存器存放抽头和系数适用于滤波器阶数较少的情况,如果需要用上百阶的抽取滤波,最好用XC2V1000片内RAM存放抽头和系数,这时只要稍微改动控制器的逻辑设计即可实现。在此基础上,还可实现可编程抽取滤波器。

????? 结语

????? 本文以实现抽取率为2、具有线性相位的3阶FIR抽取滤波器为例,介绍了一种用Xilinx公司的XC2V1000实现FIR抽取滤波器的设计方法。用该方法设计出的抽取滤波器灵活性强,资源利用率高,能广泛应用于数字接收领域。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? FIR? 滤波器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈