需要注意的是,本次所要讲的内容是内插滤波器(Interpolated FIR,IFIR)的FPGA实现 ,而不是我们熟知的插值滤波器(Interpolaton FIR)。

首先来介绍一下内插滤波器的结构原理和作用。内插滤波器(IFIR)和传统的 FIR 滤波器或者插值滤波器有类似的结构,唯一的区别就是将单位延迟替换为了 k -1个延迟单元,其中 k 称为 0填充因子。 这种结构的滤波器在功能上相当于在原型滤波器的系数集的系数之间插入了k-1个零。内插滤波器的最终的数据输出采样率与输入数据采样率一致,而不改变数据采样率。所以内插滤波器(Interpolated FIR,IFIR)对于实现窄带滤波器和宽带滤波器的高效实现是非常有用的。用内插滤波器实现普通窄带FIR滤波器或者宽带FIR滤波器的时候能够节省非常可观的DSP资源。下面是Xilinx 用户手册关于该滤波器的简介,如图1所示。

图 1

该内插滤波器在实现时,Xilinx FPGA开发环境中已经集成了该内插滤波器IP核类型可供我们选择。在指定IFIR体系结构时,在coefficient文件中提供了完整的原型系数集,而不包含零填充因子所暗示的零。零填充因子是通过过滤器用户界面定义的,如图2所示。

图 2

在Xilinx平台实现该内插滤波器时可以通过IP来实现,但是在Intel的Quartus开发环境中没有集成该IP,要想实现该结构的滤波器需要手动的方式编写的方式实现该内插滤波器。

因此本文通过Verilog的代码来进行设计实现。设计的内插滤波器工作时钟为300MHz,数据采样率为150MHz,原型滤波器的抽头数为83阶。内插4倍相当于在每个抽头之间插入3个0,相当于328阶的效果。与其他类型的插值滤波器一样,插值会产生镜像频谱。由于工作时钟是数据采样率的两倍,因此可以考虑对乘法器进行复用,可以节省一半的DSP资源。最终只使用21个DSP即可实现。如图3所示。

图3

这里我设计了一种高通滤波器方案,先通过Matlab设计需要的高通滤波器,并导出抽头系数进行量化为16bit。然后如图4所示。

图4

这里我们是通过对称加法树结构来进行编写Verilog代码,并对加法树的输出进行分组复用。部分代码如图5所示。

图5

最终通过输入一组点频数据源通过Modelsim仿真可以得到输出的结果。如图6所示。

对Modelsim仿真输出的数据进行Matlab画图可以得到内插滤波器的频谱响应为,图7所示。

图7

此时通过频谱图我们可以得知,数据经过4倍内插滤波器之后,输出的数据产生了镜像频谱,后续可以通过叠加滤波器的方式来进行滤除,并可以根据你所需要的效果定制所需的滤波器结构。

下次我们分享一下,通过这种内插滤波器的方式设计其他宽带滤波器的方案,该种设计方案使得我们能够采用最少的DSP资源获得与高阶滤波器等效的效果。

匹配滤波器matlab实现_内插滤波器(Interpolated FIR)的FPGA实现相关推荐

  1. 【 FPGA 】FIR 滤波器之内插 FIR 滤波器(Interpolated FIR Filter)

    内插 FIR 滤波器简写为 IFIR 滤波器,英文名为:Interpolated FIR Filter 内插 FIR 滤波器和传统的 FIR 滤波器有类似的结构,唯一的区别就是将单位延迟替换为了 k ...

  2. FIR内插滤波器的FPGA实现(一)-matlab实现

    目录 一.FIR内插滤波器 二.matlab代码实现 1)插值前的信号: 2)插零点: 3)滤波 三.基于硬件实现的考虑 1)从FIR滤波器公式原理分析 2)简化的方法 总结 一.FIR内插滤波器 F ...

  3. 内插滤波器 matlab,多相分解实现内插滤波器.ppt

    多相分解实现内插滤波器 8.3多相分解 I型多相分解 II型多相分解 多相分解和FIR结构 多相分解实现抽取滤波器 多相分解实现内插滤波器 h[k] 为某离散系统的单位脉冲序列,H(z)是其系统函数 ...

  4. 抽取_内插_半带滤波器_多相滤波器

    文章目录 半带滤波器 多相抽取滤波器 多相内插滤波器 半带抽取器和半带内插器 参考资料:Xilinx FIR Compiler v7.2 LogiCORE IP Product Guide PG149 ...

  5. 利用Matlab比较IIR和FIR,细说IIR滤波器和FIR滤波器的区别

    1.两种滤波器都是数字滤波器.根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器.对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的 ...

  6. matlab函数 无限冲激响应滤波器,MATLAB代码 有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器...

    MATLAB有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器设计 附MATLAB代码 摘要 文章设计了一个数字信号处理仿真实验,产生一个信号,其频率成分为f1和f2,并对其进行理想采样,采样 ...

  7. FIR内插滤波器结构与代码实现

    信号处理的应用中,有时需要将某个抽样信号变换成一个新的.具有不同抽样率的抽样信号,这就是多抽样速率信号处理.实现抽样率提高的过程被称为内插,实现抽样率降低的过程被称为抽取.由于抽取时内插的对偶系统,因 ...

  8. butter滤波器是iir吗_学习随笔之IIR滤波器与FIR滤波器

    学习随笔之IIR滤波器与FIR滤波器 IIR滤波器(Infinite Impulse Response Digital Filter无限冲击响应数字滤波器)与FIR滤波器(Finite Impulse ...

  9. 【Matlab语音处理】汉宁窗FIR陷波滤波器语音信号加噪去噪【含GUI源码 1711期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]汉宁窗FIR陷波滤波器语音信号加噪去噪[含GUI源码 1711期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

最新文章

  1. python限制输入长度_Python if语句问题,控制密码长度问题,求大神解救。
  2. luogu P3391 【模板】文艺平衡树(Splay)
  3. 5.慎重选择删除元素的方法
  4. UNP学习 高级I/O函数
  5. hiveql函数笔记(二)
  6. C++ 0x: 内存模型
  7. mysql如何创建日志_mysql中的日志
  8. wordpress音乐播放器插件–PoiPlayer
  9. mtkwin10驱动_联发科MTK刷机驱动(支持WIN10)驱动
  10. xampp中mysql使用教程_XAMPP的安装及使用教程
  11. 冉宝的每日一题--8月11日
  12. 一个函数能否被两个线程同时调用
  13. 【心悟水浒】带团队懂管理
  14. 转载篇:RabbitMQ安装步骤和出现Plugin configuration unchanged.和出现1067系统错误.总结
  15. 万字干货 | 用游戏高手的用户洞察法,如何复制一个拼多多
  16. 迷茫的寻路人,未知领域的探索者~
  17. 微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
  18. 解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之一缘起
  19. Struts2的OGNL表达式语言
  20. Portable Chrome 32/64

热门文章

  1. 深度解密 Go 语言之基于信号的抢占式调度
  2. Mac、iPad 之间拖拽即可移动文件、iOS 15 来了,这届 WWDC21 精彩内容尽在这里!
  3. 写代码时发现......还是SpringBoot牛逼!
  4. 滴滴定制网约车D1即将登陆长沙 市民12月中可叫到
  5. 疫情之下 SaaS 市场两极分化,SaaS 厂商如何突围严峻形势?
  6. 程序员风光背后:从零到BAT数据分析师靠的是什么?
  7. 滴滴技术总监受贿 1000 万,列入招聘黑名单,互联网大厂反腐有多强?
  8. @程序员,快来速取硬核的汇编语言知识大全!
  9. 这本插画式的 Python 书,刚到手就女友抢走了
  10. V 语言强势登顶 GitHub TOP1,欲取 Go 而代之?