【发布时间】:2015-08-01 13:02:43
【问题描述】:
我和我的同事正在 ADI DSP 上开发声音和语音处理模块。由于我们的单个麦克风和扬声器靠近,我们一直在经历一些重要的回声。我们想实现一个基于 NLMS 的算法来减少这种回声。
我首先想在 Matlab 中实现它并测试算法,但我仍然遇到一些问题。我想我的算法可能存在一些理论问题。我很难理解算法中的“所需信号”是什么,因为我无法访问未损坏的信号。
这是我在 Matlab 中实现此功能的简单方法的概述。 Simulink diagram here
由于 Simulink 中的“代数循环错误”,现在代码无法编译,但我感觉这个问题还有更多问题。
任何帮助将不胜感激。
【问题讨论】:
-
您是否阅读过有关代数环的文档文章? de.mathworks.com/help/simulink/ug/algebraic-loops.html
-
我可能完全误解了您的问题,但是您的意思是“无法访问未损坏的信号”?你不能关闭扬声器并录制音频样本吗?您的回声不是字面上来自麦克风的输入也通过扬声器传输了一点延迟吗?
-
可以发一张模型截图吗?看看ti.com/lit/an/spra063/spra063.pdf 的算法图片,它应该有助于对此进行建模。
-
Daniel,是的,我已阅读文档,但似乎无法找到消除此代数循环的方法。 Andras Deak,这必须是一个实时过程。所以麦克风和扬声器总是打开的。 @Navan,我已经发布了截图。在链接中看不到吗?
标签: matlab echo simulink cancellation