上篇博文:【 FPGA 】FIR 滤波器之多相抽取器(Polyphase Decimator),这篇博文和它有点类似,为多相插值器。


多相插值滤波器将一组 N 个原滤波器系数 ,映射为P个多相子滤波器,转换的公式上上篇博文:多相抽取器使用的公式一致,如下:

i从0到 P-1.

图3-27显示了多相插值滤波器结构,该选项实现了计算效率高的1-to-P插值滤波器。

每个新的输入采样x(n)同时并行送入P个多相子滤波器,同时得到P个输出采样,每个多相子滤波器输出一个采样送到滤波器输出端口,输出端口从第一个多相子滤波器开始依次选择多相子滤波器的输出。由于输入采样是同时并行送入每个多相子滤波器的,因此多相插值滤波器的输出采样速率是输入数据采样速率的P倍。相对于较高的输出采样速率,多相子滤波器工作在比较低的频率上(对于输入采样速率),同样,在每个输出点上有N个操作。

公式就懒着打了,给出英文描述:


(a) 利用对称性实现多相插值器

当应SMAC(见博文:【 FPGA 】FIR 滤波器的架构解释了SMAC为实现FIR滤波器的一种架构)实现插值滤波器时,可以用对称性技术实现系数对称处理。具体方法是通过在子滤波器系数的基础上加上和减去两个响应的非对称相位来得到包含对称系数的两个新相位。

不好理解,下面用例子说明:

假设在一个抽头数为15的滤波器,滤波器系数如下,对该滤波器进行3倍插值,得到3个子滤波器,系数分别为:

可见,第一个和第三个子滤波器是不对称的,应用对称性技术,经过简单的加法和减法运算对两个滤波器系数进行处理得到:

这样,h0为对称,而h2为负对称的。经过这样处理之后,实现这些子滤波器时就可以利用其对称性来节省资源。在输出端,第一个子滤波器的输出和第3个子滤波器的输出经过相加和相减运算后再乘以0.5就得到了原始滤波器的输出,如下图:

注:当用奇数个对称系数插值为2时,由于得到的多相子滤波器是对称的,所以不需要这种技术。


(b) 系数填充

关于系数填充的话题在博文中:【 FPGA 】FIR 滤波器结构和优化(二)也曾讲到过,那是对于使用MAC架构设计对称系数滤波器时提出的一种优化方案。这里的系数填充大同小异,只不过是应用到了具体的情况而已。

在对称滤波器基础上进行插值,如果速率和滤波器抽头数的组合导致子滤波器的系数个数不一致,则滤波器系数的重新组织将可能使滤波器的相位响应发生变化,即结果得到的冲激响应移位了若干个输出采样。

例如:对抽头数为14的滤波器进行4倍插值,则需要有16个抽头才合理,这样的话,我们就需要在系数矢量的前面补充一个零,在系数矢量的后面也补充一个零系数,从而保证子滤波器系数的对称性,但结果是滤波器的相位响应发生了变化。避免出现相位响应变化的方法是要么强制滤波器以非对称的结构实现,要么用能支持所选实现结构的额外系数来实现。下面给出了一些扩展到较大滤波器的例子:

【 FPGA 】FIR 滤波器之多相插值器(Polyphase Interpolator)相关推荐

  1. 【 FPGA 】FIR 滤波器之多相抽取器(Polyphase Decimator)

    多项抽取滤波器的基本原理:根据等式3-1,将一组N个原型滤波器系数映射到M个多相子滤波器中,映射关系如下: 图3-26显示了多相抽取滤波器选项,它实现了计算效率高的M-to-1多相抽取滤波器. 如上图 ...

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

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

  3. 【 FPGA 】FIR滤波器之 Hilbert 变换的实现

    上篇博文:半带 FIR 滤波器(Half-band FIR Filter) 希尔伯特变换在数字通信系统中有很多种使用方式.理想的希尔伯特变换为正频率提供90度的相移,为负频率提供-90度的相移. 希尔 ...

  4. 【 FPGA 】FIR 滤波器之半带插值器(Half-band Interpolator)

    上篇博文讲了半带抽取器,趁热打铁,这篇博文讲半带插值器:这种对应关系不止此一例,之前的博文:多相抽取器与多相插值器,也是这一类关系. 正如半带抽取器是更一般的多相抽取滤波器的优化版本一样,半带插值器是 ...

  5. 【 FPGA 】FIR 滤波器之半带抽取器(Half-band Decimator)

    之前有篇博文讲了半带FIR滤波器:半带FIR滤波器 其幅频响应如下: 脉冲响应如下: 而今天所要讲的是半带抽取器,半带抽取器是一个多相滤波器,它嵌入了输入信号的2- 1下采样.图3-30显示了结构. ...

  6. 【 FPGA 】FIR 滤波器之固定分数率重采样滤波器

    FIR滤波器,它以固定的分数比率P/Q实现数据流的重采样,其中P和Q均为整数,最高可达64,可用于Systolic Multiply-Accumulate(SMAC)架构. In Figure 3-3 ...

  7. 【 FPGA 】FIR 滤波器之Single-rate FIR滤波器的系数数据(Filter Coefficient Data)

    首先要明确什么是单速率 FIR 滤波器? The basic FIR filter core is a single-rate (input sample rate = output sample r ...

  8. 【 FPGA 】FIR 滤波器之滤波器的系数数据(Filter Coefficient Data)

    Filter Coefficient Data 滤波器系数使用扩展名为.coe的系数文件提供给FIR编译器. 这是一个ASCII文本文件,带有单行标题,用于定义用于系数数据的数字表示的基数,后跟系数值 ...

  9. 【 FPGA 】FIR滤波器之 多个系数集问题以及 使用非整数实数的系数规范问题

    多个系数集 对于多系数过滤器,单个.coe文件用于指定系数集. 每个系数集应附加到前一组系数. 例如,如果设计了一个2系数集,10抽头对称滤波器, 系数集#0为:coefdata = -1,-2,-3 ...

最新文章

  1. Android AlertDialog设置宽度显示不正常的问题
  2. 支持异步同步的分布式CommandBus MSMQ实现 - 支持Session传递、多实例处理
  3. 【转】js之iframe子页面与父页面通信
  4. linux保存python文件_告诉Python将.txt文件保存到Linux上的某个目录 - python
  5. laravel基本信息
  6. 组合,Mixin,类、类对象、实例对象
  7. [渝粤教育] 新疆财经大学 金融工程 参考 资料
  8. VS Code 实用快捷键
  9. H5页面实现微信授权登录
  10. 风变编程python基础语法-第0关-千寻的名字
  11. Subscriber class .NewsFragment and its super classes have no public methods
  12. 如何把C盘里的文件默认位置更改到D盘指定目录?
  13. Java日期——获取今天是星期几
  14. 因果推理(八):工具变量(Intrusmental Variables)
  15. unity手机端指南针安卓测试有效
  16. 数据采集-呼吸心跳信号检测方法(二)
  17. Java入门 第十三节(二)IO流转换流
  18. Python 调用 HTTP API 接口模板
  19. 第三部分第二节课全部
  20. [新星计划] Python smtplib模块 | 轻松学会收发E-mail(电子邮件)

热门文章

  1. Google Guava Collections 使用介绍
  2. 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(一)后台控制逻辑代码部分...
  3. python socket server库_python基础之socket与socketserver
  4. linux mysql换成_把 SQL Server 迁移到 Linux?不如换成 MySQL
  5. php kint调试,PHP调试助手
  6. python虚拟环境安装pyqt5_python虚拟环境安装pyqt5
  7. mt4指标最精准组合指标_股市最赚钱的黄金指标组合:KDJ+MACD指标的配合使用,助于买在低点卖在高点!...
  8. java datetime int_关于jodatime:Java中DateTime对象之间的小数天数
  9. python 函数参数传递 格式_Python学习6.1_函数参数及参数传递
  10. 字节跳动小程序技术摘要