功能:主动降噪控制器
开发板连接麦克风,通过ADC或其他方式采集声音信号。采集到的声音信号经过开发板内置的Fx-LIIS主动降噪算法处理,生成反向声波信号,并通过DAC输出至扬声器进行播放。通过反向声波与原声波叠加,达到主动降噪的效果。
在这篇博客中,我将介绍一个非常实用的 GitHub 仓库:markostam/active-noise-cancellation。这个仓库提供了几种主动噪声控制(ANC)算法的实现,适合音频信号处理爱好者、研究人员以及正在学习噪声控制的学生
项目概述
该仓库由开发者 markostam 创建,包含几种经典的ANC算法,包括LMS(最小均方)、FxLMS(滤波扩展最小均方)、NLMS(归一化最小均方)等算法的实现。这些算法主要使用了MATLAB和C语言,适合在模拟和实际噪声控制应用中进行测试。markostam最初编写这些代码用于其音频信号处理课程的期末项目,随后在Recurse Center进行了一次5分钟的快速展示。
功能与算法实现
-
LMS(Least Mean Squares):最基本的ANC算法,用于学习噪声信号特征,并在MATLAB和C语言中实现。
-
FxLMS(Filtered eXtended Least Mean Squares):在LMS的基础上加入了一个次级通道滤波器,解决实际噪声控制应用中的相位偏差和音频颜色问题。该算法在MATLAB中实现。
-
NLMS(Normalized Least Mean Squares):为LMS算法增加自适应更新的学习率,加快了算法收敛速度,在MATLAB中实现。
-
FxNLMS(Normalized Filtered eXtended