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