- 描述说明:
- 演示使用自适应滤波器来学习低通FIR滤波器的滤波功能。 使用了是归一化LMS滤波器,有限冲激响应(FIR)滤波器,和基本数学函数。
- 算法:
- 下图是这个示例中使用的信号流。均匀分布的白噪声传到FIR低通滤波器,FIR滤波器的输出作为自适应滤波器(归一化LMS滤波器)的参考输出。 白噪声也输入自适应滤波器,自适应滤波器学习出FIR滤波器的滤波功能。 滤波器输出两个信号: (1) 内部可自适应FIR滤波器的输出, 以及 (2) 自适应滤波器输出与参考滤波器的输出之间的误差信号。 随着时间推移,自适应滤波器学习到FIR滤波器的功能,输出会变得跟FIR滤波器的参考输出相同,误差信号也会变成0。
- 即使输入信号具有大的动态范围,自适应滤波器也能恰当地收敛 (比如,从很小到很大的变化值). 自适应滤波器的系数初始化是0,然后收敛超过1536个样本。 内部函数 test_signal_converge() 实现了停止条件. 函数检查是否所有的误差信号值的大小都低于一个阈值 DELTA.
- 框图:
-
- 变量说明:
testInput_f32
指向输入数据
firStateF32
指向FIR状态缓存
lmsStateF32
指向归一化最小均方FIR滤波器状态缓存
FIRCoeff_f32
指向系数缓存
lmsNormCoeff_f32
指向归一化最小均方FIR滤波器系数缓存
wire1
, wir2, wire3 临时缓存
errOutput
, err_signal 临时误差缓存
- 使用的CSI DSP软件库函数有:
-
参考 csky_signal_converge_example_f32.c