高性能数字滤波器:从理论到实践
1. 高性能数字滤波器概述
在数字信号处理中,滤波器起着至关重要的作用。通过 get_result() 成员函数,我们可以在任何时候获取滤波后的结果,示例代码如下:
const float my_filter_result = f.get_result();
不过,像 fir_01_fp 这样的浮点滤波器,对于许多微控制器平台来说可能速度过慢。因为很多小型微控制器缺乏硬件浮点单元(FPU),浮点运算需要软件模拟,效率极低。在嵌入式系统中,为了实现高性能,我们需要设计使用整数运算的滤波器。
2. 一阶整数滤波器
2.1 整数滤波器设计基础
在实现整数滤波器时,首先要将浮点采样值和系数用归一化的整数值表示。一阶 FIR 滤波器的表达式可以写成整数形式:
[y_1 = \frac{\beta_0x_0 + \beta_1x_1 + \frac{1}{2}(\beta_0 + \beta_1)}{\beta_0 + \beta_1}]
其中,(y_1)、(x_0)、(x_1)、(\beta_0) 和 (\beta_1) 是无符号整数值,分子中的额外项 (\frac{1}{2}(\beta_0 + \beta_1)) 用于处理无符号整数的舍入。
2.2 一阶整数滤波器模板类实现
以下是实现上述表达式的可扩展模板类:
tem
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



