CSI-DSP  Version 1.0.0
CSI DSP Software Library
信号收敛示例
描述说明:
演示使用自适应滤波器来学习低通FIR滤波器的滤波功能。 使用了是归一化LMS滤波器,有限冲激响应(FIR)滤波器,和基本数学函数。
算法:
下图是这个示例中使用的信号流。均匀分布的白噪声传到FIR低通滤波器,FIR滤波器的输出作为自适应滤波器(归一化LMS滤波器)的参考输出。 白噪声也输入自适应滤波器,自适应滤波器学习出FIR滤波器的滤波功能。 滤波器输出两个信号: (1) 内部可自适应FIR滤波器的输出, 以及 (2) 自适应滤波器输出与参考滤波器的输出之间的误差信号。 随着时间推移,自适应滤波器学习到FIR滤波器的功能,输出会变得跟FIR滤波器的参考输出相同,误差信号也会变成0。
即使输入信号具有大的动态范围,自适应滤波器也能恰当地收敛 (比如,从很小到很大的变化值). 自适应滤波器的系数初始化是0,然后收敛超过1536个样本。 内部函数 test_signal_converge() 实现了停止条件. 函数检查是否所有的误差信号值的大小都低于一个阈值 DELTA.
框图:
SignalFlow.gif
变量说明:
  • 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