【问题标题】:FIR FIlter Design on FPGA基于 FPGA 的 FIR 滤波器设计
【发布时间】:2015-10-07 05:44:37
【问题描述】:

我正在设计一个 9-Tap FIR 滤波器,我使用 MATLAB 来获取滤波器系数

 -0.0041    0.0077    0.0893    0.2433    0.3276    0.2433    0.0893    0.0077   -0.0041

我已将所有系数与比例因子相乘以将它们缩放到 16 位。过滤器的输入是自定义 MATLAB 代码生成的 200 个随机值

样本数据最大值为6.3445,最小值为-7.5099。我试图弄清楚是否应该使用相同的比例因子来缩放系数和输入数据,或者我应该为每个使用单独的比例因子。如果我应该使用相同的缩放因子来缩放两者,那么我该如何计算该因子?

【问题讨论】:

    标签: matlab fpga


    【解决方案1】:

    我猜你会使用整数算术,因此是缩放。您缩放输入的程度取决于您需要的滤波器的精度/性能。基本上我做的是:

    input_integer_value = trunc(input_value*scale_factor_input);
    coeff_integer_value = trunc(coeff_value*scale_coeff);
    

    由于您在 Matlab 中获得了该函数,您可以使用新的输入/系数值运行过滤器并将它们与浮点数进行比较

    input_integer_converted = input_integer_value/scale_factor_input;
    coeff_integer_converted = coeff_integer_value/scale_coeff;
    

    现在您可以改变比例因子,看看哪个能提供最佳性能 w.r.t。位数。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多