多信道 Farrow 滤波器设计示例

author-image

作者

此示例展示了如何使用英特尔® FPGA DSP Builder 高级模块集 (DSPB-AB) 来实现基于 Farrow 架构的多信道采样率转换滤波器。

采样率转换在无线通信、医学影像、军事应用等领域得到了广泛应用。Farrow 重采样滤波器未实现多相分解,而是使用低阶多相位来实现相同的功能,因此大大节省了逻辑。它对于处理多个信道或多个并行数据通路而言尤其有效,其中所有信道或数据通路都需要相同的滤波器系数集。

在此示例中,我们采用 DSPB-AB 原始模块构建了 Farrow 采样率转换滤波器。我们还特别演示了如何利用 DSPB-AB 的折叠功能。DSPB-AB 的折叠功能会根据用户特定的系统参数,自动实现资源共享和硬件重新使用。

Farrow 滤波器的功能原理框图如图 1 所示。所有模块均采用 DSPB-AB 中的原始模块进行设计。

图 1.Farrow 滤波器结构图

符号 r 用于量化当前输入和理想输出样本之间的采样相差。此值在 0 和 1 之间标准化。针对每个输出样本,您可以使用下列公式计算 r:

r = (Output_time – Input_time)* Input_Sampling_Frequency

本次演示中,我们使用递归算法来计算每个输出样本的 r:

公式

n 为整数,表示样本量或离散时间戳。C1 定义为速率变化因子的逆向分段部分

特性

本演示具有以下特点:

  • 支持抽取和插值。
  • 支持几乎任何合理的采样率变化因子
  • 支持多达 16 信道,但可以轻松修改设计,以支持更多信道
  • 支持通过设置脚本进行参数化
  • 支持通过延长抽头延迟线路长度,来轻松修改重采样滤波器(多项式)顺序
  • 提供初始化和模拟后脚本,用于配置参数和对比并检查输出
  • 支持自动折叠,允许在乘法器、加法器和其他硬件资源的时分多路复用

注 1:针对版本 9.1,此设计要求 FPGA 时钟速率为输入采样率和输出采样率的整数倍。在未来发布版本中,输出采样率无需除以 FPGA 时钟速率。因此,理论上它也可以无理缩减采样率变化。它支持的不同采样率没有结构变化。

注 2:所有信道必须由同一条数据通路进行处理(即 DSPB-AB 设计的单条线路)。如果您有大量信道,则应提高您的 FPGA 时钟速率,从而无需拆分数据信道到多个并行数据通路上。为了支持多条线路或多条数据通路,您需要修改数据调心块,此示例中未展示。

有关在 DSPB-AB 中设计重新采样滤波器的详细信息,请参考 AN 623:使用 DSP Builder 高级模块集实现重新采样滤波器 (PDF)

下载本示例中使用的文件:

zip 下载中的文件包括:

  • farrowm.mdl—DSPB-AB 设计文件,用于多信道 Farrow 采样率变化滤波器
  • setup_farrowm.m—MATLAB* 脚本,用于配置 farrow.mdl 的初始化和参数
  • stop_farrowm.m—MATLAB 脚本,用于绘制 Farrow 重采样滤波器输出,并与输入波形进行对比

有关此设计示例中使用的相关功能的更多信息,请访问:

相关链接