
算法思路总结于论文A Hybrid SFANC-FxNLMS Algorithm for Active Noise Control Based on Deep Learning。算法背景主动降噪ANC的核心原理是产生与不需要的噪声振幅相等、相位相反的抗噪声来抑制噪声 。但在实际应用中传统的两种主流算法各有利弊自适应算法FxNLMS优点是能够自适应优化稳态误差极低降噪效果好 。但缺点是收敛速度慢一旦遇到突发性、快速变化的非平稳噪声比如突然驶过的汽车、鸣笛它往往反应不过来 。固定滤波器算法SFANC系统里提前存好了针对各种噪声的滤波器遇到噪声直接切换响应极快 。但缺点是过于死板如果选错了滤波器或者实际噪声和训练时有偏差就会留下很大的残余噪声误差大 。基于上面两种算法的优缺点提出了一种混合 SFANC-FxNLMS 算法用深度学习给算法装上智能大脑先快速选定一个大致准确的方向再让自适应算法去精雕细琢 。算法详解1、离线准备作者使用了 15 种不同频段的宽带噪声利用基础算法提前训练出了 15 个最优的控制滤波器w(这是基于最基础的NLMS算法进行缓慢收敛得到的)并把它们存进数据库 。然后生成了 80,000 条包含不同频段、幅度的高保真噪声波形来训练一个一维卷积神经网络1D CNN 。这个模型的作用是只要听 1 秒钟的声音就能立刻判断出该调用哪一个滤波器。2、宏观调度主要有系统内的协处理器专门跑 AI 模型的芯片进行处理。麦克风每采集 1 秒钟的噪声就会把它交给 1D CNN 模型 。为了保留包含相位信息的信号特征模型会先对输入的波形进行归一化处理将数值缩放到 (-1, 1) 的范围内 。1D CNN 迅速识别当前属于什么噪声输出一个最优滤波器的索引序号并发送给实时控制器 。3、微观微调这部分在实时处理器上运行它的速度极快是在每一个音频采样点上进行的。当实时处理器收到 1D CNN 发来的索引序号时如果不等于当前使用的序号就会瞬间完成切换 。但是预训练的滤波器不一定 100% 贴合当前的真实环境。于是FxNLMS 算法在此基础上接管在每一个采样点上自适应地微调滤波器的权重 。总结传统FxNLMS在遇到环境变化时往往需要一个漫长的自适应摸索过程才能达到理想的降噪效果而混合算法则巧妙地引入了一个轻量级的1D CNN作为智能大脑在听到噪声的瞬间就能识别其特征并直接调用数据库中最合适的预训练滤波器作为完美的初始起点随后再交由FxNLMS算法在采样级别进行精准微调。本算法的优势就是可以极大的提高NLMS算法收敛的速度因为在进行NLMS算法之前通过提前训练选择一个适合的跳板然后再用NLMS算法进行微调。注意合适的跳板也是通过最初的NLMS算法缓慢收敛得到的。