前言
在工业传感、生物医疗、语音通信等领域,信号采集过程中不可避免会受到电磁干扰 (EMI)、环境噪声等污染,如何从含噪信号中有效提取目标信号是信号处理的核心问题之一。自适应噪声对消 (Adaptive Noise Cancellation, ANC) 是一种经典的干扰抑制方案,而归一化最小均方 (Normalized Least Mean Square, NLMS) 算法因其结构简单、鲁棒性强、对输入功率不敏感的优势,成为工程中最常用的自适应滤波算法之一。
本文将从基础原理出发,一步步推导 NLMS 算法的数学公式,通过手动数值实例直观展示迭代过程,最后给出完整可运行的 Python 代码实现 EMI 噪声对消仿真,帮助读者彻底掌握这一经典算法。
1. 自适应噪声对消系统的基本框架
自适应噪声对消的核心思想是利用与干扰相关的参考信号,自适应地估计主信号中的干扰分量并将其抵消,其核心逻辑:通过参考传感器采集 EMI 干扰信号,使用自适应算法实时调整滤波器系数,从主信号中减去估计的干扰分量。
1.1 系统信号模型
系统包含两路独立采集的输入信号:
- 主输入(含噪目标信号):
d(n) = s(n) + v_1(n)
其中 s(n) 是需要保留的有用目标信号,v_1(n)是叠加在主路径上的干扰 噪声信号(如 EMI 电磁干扰)。 - 参考输入(干扰参考信