我在互联网上研究了一些关于自适应滤波器的知识,发现它是一个特殊的滤波器,它会在它进行时不断更新它的滤波器值。它找出输入和输出之间的差异,并使用误差函数和先前的系数找出新的滤波器系数。
但这没有任何意义。它总是试图最小化输入和输出之间的差异。那么,如果它试图按原样传递所有信号,它有什么用处。
谁能解释一下它是如何在实际应用中使用的。
如果您可以通过一些可以帮助我实现自适应数字滤波器的链接来帮助我,那也将是一件好事。
如果我不清楚表达我的疑问,请发表评论!
我在互联网上研究了一些关于自适应滤波器的知识,发现它是一个特殊的滤波器,它会在它进行时不断更新它的滤波器值。它找出输入和输出之间的差异,并使用误差函数和先前的系数找出新的滤波器系数。
但这没有任何意义。它总是试图最小化输入和输出之间的差异。那么,如果它试图按原样传递所有信号,它有什么用处。
谁能解释一下它是如何在实际应用中使用的。
如果您可以通过一些可以帮助我实现自适应数字滤波器的链接来帮助我,那也将是一件好事。
如果我不清楚表达我的疑问,请发表评论!
您缺少的关键概念是,您不仅要最小化输入和输出信号之间的差异。误差通常是从第二个输入计算出来的。只需查看与 ECG 相关的 Wikipedia 示例即可。
本例中的滤波器系数被重新计算,以根据从电源信号中提取的频率改变陷波滤波器的陷波频率。可以使用静态陷波滤波器,但您必须拒绝更广泛的频率以适应电源频率的变化。自适应滤波器跟随电源频率,因此阻带可以更窄,从而保留更多有用的 ECG 信息。
编辑:
我又看了一遍,我想我更好地理解了你的问题。LMS 算法需要一个误差项来更新滤波器系数。在我上面解释的 ECG 示例中,我将误差项作为电源电压的第二个输入。现在我猜你在想,“为什么不从信号加噪声中减去噪声来留下信号呢?” 这在简单的线性中可以正常工作系统。更糟糕的是,在线给出的大多数示例(正确但令人困惑)告诉您,误差项是根据所需信号与自适应滤波器输出之间的差异计算得出的。这让任何理性的人都在想“如果你已经有了想要的信号,为什么还要麻烦做这些!?”。这会使读者缺乏阅读和理解自适应滤波器数学描述的动力。然而,关键在于数字信号处理手册,Ed的第 18.4 节。Vijay K. Madisetti 和 Douglas B. William。
在哪里:
在实践中,感兴趣的数量并不总是 d。我们的愿望可能是在 ya 中表示包含在 x 中的 d 的某个分量,或者可能是将 d 的一个分量隔离在错误 e 中但不包含在 x 中。或者,我们可能只对 W 中的参数值感兴趣,而不关心 x、y 或 d 本身。本章后面将提供这些场景中的每一个的实际示例。
在某些情况下,d 并非始终可用。在这种情况下,适应通常仅在 d 可用时发生。当 d 不可用时,我们通常使用我们最近的参数估计来计算 y,以尝试估计所需的响应信号 d。
在现实世界中,d 永远不可用。在这种情况下,可以使用关于“假设”d 特性的附加信息,例如其预测的统计行为或幅度特性,从自适应滤波器可用的信号中形成适当的 d 估计值。这样的方法统称为盲适应算法。这种方案甚至可以工作的事实既归功于算法开发人员的独创性,也归功于自适应过滤领域的技术成熟度
当我有时间时,我将继续建立这个答案,以尝试改进 ECG 示例。
我发现这套讲义也特别好:Advanced Signal Processing Adaptive Estimation and Adaptive Filters - Danilo Mandic
http://ezcodesample.com/UAF/UAF.html 这是非线性自适应滤波编码示例的示例。