亚当•库克MathWorks
主动噪声控制(ANC),也被称为主动噪声消除,试图用破坏性干扰来消除不需要的声音。ANC系统使用自适应数字滤波来合成一个与不需要的信号具有相同振幅但具有反相的声波。这段视频首先回顾了非国大的基本原则。然后展示了如何使用Simulink金宝app®设计并模拟一个ANC系统,使用filter - x NLMS自适应滤波器消除管道模型中的噪声。最后,您将看到如何使用一个真实的管道和Speedgoat实时音频机配备超低延迟操作系统和超低延迟a /D和D/ a转换器实现ANC系统。该视频展示了如何使用自动C代码生成从仿真模型到实时原型。
探索本视频中使用的例子:自适应噪声控制与Simulink实时金宝app.
你是否想知道主动降噪系统,如耳机、汽车和暖通空调系统是如何开发和原型的?
让我给你展示一个使用MATLAB、Simulink和Speedgoat实时目标机的原金宝app型。
使用一些简单的PVC管道,该系统模拟了一种可能用于暖通空调管道的噪音消除系统。
我们来谈谈我们是如何开发这个系统的。
有源噪声消除的原理是,当一个音频波与它的精确逆求和时,产生的波形是零。
那么如何产生一个与原始噪声源正好相反的波形呢?
这当然不是小事。然而,利用声学和信号处理的一些基本原理,我们可以设计一个系统,得到我们非常满意的消去结果。
考虑我们的PVC管道模型的这个图表。我们模型中的噪声源是PVC管一端的扬声器。噪音消除,或“抗噪音”,源是通过一个肘形关节连接的另一个扬声器。
下面是我们的动画如何与现实世界的PVC管道模型相匹配。
除噪声和抗噪声源外,我们的系统还采用了两个测量麦克风。第一个测量麦克风是我们的“参考麦克风”。这记录了接近其来源的噪声源。
第二个测量麦克风称为“误差麦克风”。它被放置在PVC管的输出端。这个麦克风在噪音消除的地方。
那么,如果“抗噪”信号只是噪声源的倒数,为什么我们不能将参考麦克风信号反置,然后在扬声器中播放出来呢?原因是噪声源将沿着路径从它的起点传播到管道的末端。我们用我们的“误差麦克风”测量管道末端的音频信号。当信号传播时,管道就像一个过滤器,改变噪声的声音。噪声从源头到管端传播的路径称为“主路径”。
我们可以使用“自适应滤波器”算法来确定这种“初级路径”滤波器的特性。该滤波器将不断适应,直到它了解了提供该滤波器的数字表示的滤波器权重。
我们用来更新滤波器权值的更新算法称为“归一化LMS”。
但是等一下,抗噪声扬声器也有自己的传播路径!我们也必须考虑到这条道路。从抗噪声扬声器到误差传声器的传播路径称为“次级路径”。在NLMS更新之前,我们在系统中包含了对该辅助路径的估计。
那么,我们结束了吗?不!最后要考虑的路径是从抗噪声扬声器到噪声参考麦克风的反馈路径。我们需要从我们的参考麦克风减去抗噪声信号,否则我们有一个连续的反馈环路,将导致不正确的结果。
好的,现在我们准备好模拟了。使用Simu金宝applink,我们创建了一个真实PVC管系统的仿真模型和我们的有源噪声消除算法。
这个模型允许我们使用快速原型环境来模拟真实世界的系统。
例如,在这个模型中,我们用数字滤波器等效来模拟初级和次级传播路径。另外,我们用一个和块来模拟噪声信号和抗噪声信号的声求和。
现在,任何开发过实时音频硬件系统的人都知道可能会有一些不便和技术上的困难经常会出现妨碍你专注于你的算法。这种方法的优点是,我们可以在不使用硬件的情况下开始,测试/调试算法,然后当我们确信算法运行良好时,将算法的模拟部分替换为现实中的等效部分。
这个工作流通常被称为基于模型的设计。
当我们在模拟中运行这个模型时,我们可以实时收听音频信号。
我们也可以看到信号是如何在时间范围内随时间变化的。黄色的信号代表输入的噪声信号,所以它保持不变。蓝色信号表示在误差麦克风上测量的信号。当我们运行模拟时,我们看到随着滤波器的适应,蓝色信号的振幅会随着时间的推移而减小。
这里我们看到过滤器的权重随着时间的变化而变化。
一旦我们确信我们的算法在模拟中工作,下一步是用实际的真实系统取代模拟的声环境。为了做到这一点,我们需要一个工具,它将允许我们在超低延迟的情况下将音频信号输入和输出我们的Simulink模型。金宝app
为了实现最佳的延迟性能,我们使用Simulink Real-Time和Speedgoat实时目标机部署了该模型。金宝app
这台机器提供了超低延迟实时内核和超低延迟转换器,允许信号以比传统台式机或笔记本电脑快得多的速度通过。
为什么我们关心低延迟?让我们回到我们的模型。系统必须记录参考麦克风,计算响应,并在声音在这些点之间传播所需的时间内在ANC扬声器上回放。在本例中,参考麦克风和“Y”段开头之间的距离是34厘米。声速是343米/秒,因此我们的最大延迟是1毫秒。
Speedgoat可以配备必要的A/D和D/A转换器,以极低的延迟让音频进出机器。事实上,这个解决方案的总延迟是2个样本。如果我们使用8khz的采样率,那就是四分之一毫秒!
我们可以通过一些简单的修改使我们金宝app的Simulink模型在Speedgoat硬件上运行。
我们将使用这些自定义的Simulink块与真实世界的音频信号来往于我们的Speedgoat目标机器。金宝app这些块允许我们指定诸如音频信号的采样率和电压范围等内容。
我们还可以访问“目标范围”,它允许我们可视化连接到目标机器的监视器上的信号。
这里我们看到的主动噪声控制部分的模型,适应运行在Speedgoat。
因为我们使用了基于模型的设计方法,这个模型与我们最初为测试算法而建立的仿真模型非常相似。
我们已经删除了模拟声滤波和声求和的块,因为它们不再需要了。我们现在直接与现实世界的信号连接。
我们在模型中添加的另一个功能是执行“二次路径估计”的块。这使得我们可以用真实世界的辅助路径的实际测量来代替模拟过程中使用的辅助路径的估计。
该度量将在模型第一次运行时发生。测量完成后,我们将切换到进行主动噪声消除。
我们对声反馈做同样的事情。
这是我们在Speedgoat机器上实时运行的模型。
我们从测量二次路径估计和声反馈的模型开始。这是通过发送白噪声信号通过抗噪声扬声器。
在这完成之后,我们切换到产生噪音。产生的噪声源由模拟HVAC风扇或电机振动的合成音调组成。或者,我们可以使用类似噪音类型的真实世界记录。
我们从系统开始。我们可以监测测量麦克风信号在我们的实时范围监视器。此外,我们可以通过放置在测量麦克风旁边的分贝计来查看噪音信号的水平。
现在,我们要用我们模型上的仪表盘开关来打开主动噪声控制。
分贝计上的噪音水平开始下降。在几秒钟内,我们看到非常明显的结果。噪音降低了20分贝!
我们希望这段视频对我们的方法提供了一些有用的见解,以快速构建一个实时流音频有源噪声消除系统的原型。
我们能够使用Simulink创建一个真实的系统模型,然后使用Simulink Real-Time和Speedgoat Re金宝appal-Time目标机将该模型应用到现实世界的实现中。
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。