【问题标题】:Simulink Desktop Real-Time and Least Mean Square adaptive algorithmSimulink 桌面实时和最小均方自适应算法
【发布时间】:2016-01-06 05:35:21
【问题描述】:

我需要在 Simulink Desktop Real-Time 工具箱上实现基于 LMS 的自适应音频消除算法。

物理系统由一个记录噪声源的麦克风和另一个记录控制过程后残余噪声的麦克风组成(由 Simulink 控制的扬声器注入抗噪声)。

为了使(自适应)LMS 算法正常工作,我需要能够逐个样本地工作,也就是说,在每个采样时间瞬间,我需要使用同步的当前采样值更新自适应滤波器两个麦克风。我意识到一些延迟是不可避免的,但我想知道是否可以在 Simulink Desktop Real-Time 上将输入的缓冲区大小减少到一个样本,从而逐个样本地工作。

提前感谢您的帮助。

【问题讨论】:

    标签: matlab simulink


    【解决方案1】:

    您始终可以逐个样本地实施过滤器。

    但是您仍然需要输入值的历史记录来执行实际的 LMS 计算。在逐个样本的基础上,这只是意味着使用一个简单的 FIFO 缓冲区。

    如果您可以访问 DSP 工具箱,那么已经有一个 LMS Filter 块可以为您执行此操作。

    【讨论】:

    • 我需要对常规 LMS 过滤器稍作修改的版本,因此我必须实现一个自定义块。我主要担心的是,为了有效控制噪声,我必须实时处理样本,而常规 Simulink 无法确保(但 Simulink Desktop Real-Time 应该)。谢谢你的回复,我看看 FIFO 缓冲区是否有效。
    • Simulink Desktop Real-Time 是否足够取决于您需要达到的采样率。如果您需要比 50-100 毫秒采样率更快的任何东西,那么它可能对您来说不够好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2019-10-20
    相关资源
    最近更新 更多