[论文解读] Implementation of Multi-channel Active Noise Control based on Back-propagation Mechanism
本论文提出了一种基于PyTorch自动微分的多通道主动噪声控制(ANC)新颖实现方法,通过将滤波器系数更新视为基于梯度的优化,简化了McFxLMS与McFxNLMS算法的反向传播过程。该方法实现了高效、灵活且开源的多通道ANC系统部署,显著减少了手动推导工作量,并通过真实飞机、直升机及交通噪声信号的有效降噪验证了其性能。
Active noise control (ANC) systems can efficiently attenuate low-frequency noises by introducing anti-noises to combine with the unwanted noises. In ANC systems, the filtered-x least mean square (FxLMS) and filtered-X normalized least-mean-square (FxNLMS) algorithm are well-known algorithms for adaptively adjusting control filters. Multi-channel ANC systems are typically required to attenuate unwanted noises in a large space. However, open-source implementations of the multi-channel FxLMS (McFxLMS) and multi-channel FxNLMS (McFxNLMS) algorithm continue to be scarce. Therefore, this paper proposes a simple and effective implementation approach of the McFxLMS and McFxNLMS algorithm. Motivated by the back-propagation process during neural network training, the McFxLMS and McFxNLMS algorithm can be implemented via automatic derivation mechanism. We implemented the two algorithms using the automatic derivation mechanism in PyTorch and made the source code available on GitHub. This implementation method can improve the practicality of multi-channel ANC systems, which is expected to be widely used in ANC applications.
研究动机与目标
- 解决主动噪声控制系统中多通道FxLMS(McFxLMS)与FxNLMS(McFxNLMS)算法缺乏开源实现的问题。
- 克服多麦克风与多扬声器配置下多通道ANC系统中手动推导与实现自适应滤波器更新的复杂性。
- 利用PyTorch的自动微分机制,自动化滤波器系数更新的反向传播过程,降低实现负担。
- 通过支持麦克风与扬声器数量的灵活配置,提升多通道ANC系统的实用性和可扩展性。
- 提供可复用的开源代码库,加速多通道ANC应用领域的研究与开发。
提出的方法
- 在PyTorch的自动微分框架内,将McFxLMS与McFxNLMS算法构建成可微分的计算图。
- 将ANC系统定义为$J \times K \times M$配置,其中$J$为参考麦克风数量,$K$为次级声源(扬声器)数量,$M$为误差麦克风数量。
- 将控制滤波器矩阵$\mathbf{W}(n)$表示为可学习参数,其中每个$\mathbf{w}_{kj}(n)$代表从第$j$个参考麦克风到第$k$个次级声源的滤波器。
- 基于误差麦克风处的平方误差信号$e_m(n)$之和构建代价函数,作为优化的损失函数。
- 应用反向传播计算梯度$\nabla_{\mathbf{w}_{kj}} \mathcal{L}$,通过SGD或Adam等标准优化器实现自动滤波器更新。
- 利用链式法则推导出梯度更新规则$\mathbf{w}_{kj}(n+1) = \mathbf{w}_{kj}(n) + \mu \sum_{m=1}^{M} e_m(n) \mathbf{x}'_{jkm}(n)$,其中$\mathbf{x}'_{jkm}(n)$为滤波后的参考信号向量。
实验结果
研究问题
- RQ1深度学习框架中的反向传播机制能否被有效重用于自动化多通道ANC系统中自适应滤波器更新的推导?
- RQ2所提出的基于自动微分的实现方法在性能与收敛性方面相较于传统手写代码的McFxLMS/McFxNLMS算法表现如何?
- RQ3该方法在多大程度上提升了多通道ANC系统在真实噪声环境下的实用性与可配置性?
- RQ4该框架是否能轻松支持对滤波器系数施加$L1$或$L2$正则化等额外约束?
- RQ5该实现方法在飞机、直升机及交通噪声等多样化真实噪声信号上的降噪性能如何?
主要发现
- 所提出的实现方法在真实世界低频噪声信号上成功实现了有效的噪声抑制,包括飞机噪声(50–12,000 Hz)、直升机噪声(50–9,800 Hz)以及交通噪声(40–1,400 Hz)。
- 在飞机与直升机噪声中,McFxNLMS算法的稳态噪声抑制水平略高于McFxLMS,但收敛速度更慢。
- 在交通噪声的瞬态成分响应方面,McFxLMS算法比McFxNLMS响应更快,表明收敛速度与稳态性能之间存在权衡。
- 使用PyTorch的自动微分机制消除了手动推导梯度更新的需要,显著简化了实现过程并降低了出错风险。
- 开源代码库支持对系统维度(如麦克风与扬声器数量)进行轻松修改,提升了灵活性与可重用性。
- 该框架支持与标准深度学习优化器(如Adam、SGD)的集成,并可对滤波器系数施加正则化约束。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。