多相滤波器(一)
多相抽取器
Figure 3-26 显示了多相抽取滤波器选项,它实现了计算高效的 M 对 1 多相抽取滤波器
一组 N 个原型滤波器系数a0、a1…a(N-1)映射到 M 个多相子滤波器h0(n)、h1(n)…h(M-1)根据公式 3-1:
通过使用输入换向器将输入样本 x(n) 传递到它们的输入来访问多相段,该输入换向器从段索引 i = M - 1开始并递减到索引 0。在换向器执行一个周期并将 M 个输入样本传送到滤波器后,单个输出被视为多相段输出的总和。输出采样率 f1 为 f1 = f/M 其中 f 是输入数据流的采样率。
观察到每个多相段都在低输出采样率 f1 下运行(与高输入采样率 f 相比),每个输出点总共执行 N 次操作。
多相插值器(多相内插器)
Figure 3-27 显示了多相内插滤波器选项,它实现了计算效率高的1对P内插滤波器。
一组 N 个原型滤波器系数a0、a1…a(N-1)映射到 P 个多相子滤波器h0(n)、h1(n)…h(P-1)根据公式 3-1,如在抽取的情况下一样。
每个新的输入样本 x(n) 并行参与所有多相段。对于传递到滤波器的每个输入样本,P 个输出样本(每个段一个)被传递到滤波器输出端口,如图 3-27 中的换向器所示。
输出样本f1速率为 f1 = f*P ,其中 f 是输入数据流(n),n = 0、1、2…的采样率,观察以低输入采样率 f 运行的每个多相段(与高输出采样率 f1 相比) ) 并且每个输出点总共执行 N 次操作。
利用对称性的多相插值器
当从对称滤波器系数生成P个多相子滤波器时,并不是所有的子滤波器都包含一组本身对称的系数。相加和相减两个相应的非对称相位会产生两个包含对称系数的新相位。以下示例演示了此技术用于 15 抽头插值 3 的滤波器。滤波器系数 a、b、c、d、e、f、g、h、g、f、e、d、c、b、a 产生以下子滤波器:
子滤波器 h0 和 h2 不是对称的。产生以下子滤波器系数:
个人感觉官方文档的h0有问题,应该是h0 = a+c,d+f,g+g,f+d,c+a
现在 h0 和 h2 都是对称的,而 h2 是负对称的。现在可以利用对称性来实现滤波器,从而节省相关的资源。子滤波器 h0 和 h2 的输出必须相加和相减,然后按 0.5 倍缩放以产生原始滤波器输出。图 3-28 显示了生成的结构。
对于某些配置,需要额外的 DSP Slice 来实现相位的重组。
当使用奇数个对称系数进行 2 内插时,不需要该技术,因为生成的多相子滤波器是对称的。
系数填充
与一般的对称滤波器情况一样,如果滤波器抽头的速率和数量的组合导致子滤波器没有完全填充系数,则滤波器系数的重组会导致滤波器的相位响应发生变化。结果,脉冲响应移动了几个输出样本。在 14 抽头,插值 4 的情况下,将需要在系数响应的前面填充零系数以对齐相位,以便可以利用对称性,从而实现更小资源的实现,但这会导致不同的相位响应滤波器。避免这种响应变化的方法,如果你的应用系统不能适应这种变化,也类似于一般的对称情况;您可以强制实现非对称结构,也可以使用结构中可以支持的额外系数。图 3-29 显示了几个示例案例,并且可以扩展到更大的滤波器。
总结
本文是对xilinx fir IP相关章节的翻译及理解,最近到处找资料学习多相滤波器。