如何评估 LMS 滤波器的定点实现是否正确?

信息处理 数字滤波器 自适应滤波器 固定点 lms 缩放
2022-02-23 11:44:02

在此处输入图像描述我有一个具有 6 个滤波器系数的 LMS 块。滤波器系数的值为

0.0001
0.00045 
0.2535 
0.546536 
0.0000243 
0.3423

在浮点中实现 LMS 算法浮点实现的 LMS 算法基于以下等式:(从图中):v(n)=wT(n) u(n), e(n)=d(n)-v(n), w(n +1)=w(n)+mu e(n)*u(n) ,即权重更新方程。这里 d(n) 是期望信号,u(n) 是 lms 块的输入,v(n) 是 lms 滤波器输出,w(n) 是自适应滤波器权重,e(n) 是误差。μ=0.01

我已将一组所需样本和输入样本提供给 LMS 滤波器,并对 LMS 滤波器输出数据样本进行了分析。现在,要在定点表示中实现相同的 LMS 滤波器,我将不得不进行缩放和舍入。滤波器系数按某个因子缩放是否足够,值表示为还是我们在进行缩放操作时应该考虑任何其他因素。最后,如何检查 LMS 滤波器的定点实现是否正常工作?2s1μ26

1个回答

我不是 LMS 算法的专家。也许您应该添加一个指向算法描述的链接,以便我们为您提供帮助。但是,我已经将很多算法改编为定点实现,所以我想我可以帮助你。

我给你几个指点:

1 - 如果您的算法不是递归的,量化误差会影响结果的准确性,但定点实现将始终保持稳定。

2 - 如果你的算法是递归的,量化可能会从根本上改变你的算法的行为,它可能变得不稳定,你可能会陷入极限循环等。

3 - 创建一个“完美”的模型。在您的情况下,浮点实现可能是您的完美模型。然后,将您的模型转换为定点模型并比较您的定点模型的结果。您可以玩弄系数的位数、舍入与截断等。

关于您的算法,您有 6 个系数,其中 3 个很重要(系数 3、4 和 6),而其中 3 个似乎无关紧要(1,2,5)。这个可以吗?