智能耳机
人机交互
智能声学终端
智能耳机
智能音箱
智能听力器
喇叭单体
动圈喇叭
新材料
DLC
石墨烯
陶瓷单位
吸音材料
智能芯片
阵列式麦克风
声纹传感器
演算法
降噪算法
智能听力保护
ANC
ANC
降低噪音通常所采用的三种降噪措施, 即在声源处降噪, 在传播过程中降噪及在人耳处降噪, 都是被动的. 为了主动地消除噪声, 人们发明了 "有源消声" 这一技术. ANC(Active Noise Control)又称为主动噪声控制, 常应用在耳机降噪中,
原理: 通过降噪系统产生与外界噪音相等的反向声波, 将噪声中和, 从而实现降噪的效果,
所有的声音都由一定的频谱组成, 如果可找到一种声音, 其频率, 振幅与所要消除的噪声完全一样, 只是相位刚好相反 (相差 $180^o$) 就可以将这噪声完全抵消.
频率: 一秒钟语音信号震动的次数
振幅: 声音大小
相位: 某一时刻声波处于一个周期内的位置, 如果我们规定空气被压缩的最厉害的地方是相位的零点, 那么半个周期之后, 空气变得最为稀疏的地方, 相位就变成 180°. 等到空气再次被压缩得最密集时, 就经过了一整个周期, 相位变化了 360° 又重新变为 0°.
办法: 先采集噪声, 所以处理器会根据噪声进行预测, 预测出下一时刻噪声的情况, 并产生相位相反的噪声, 来抵消原噪声.
为了保证降噪质量, 还需要一个反馈麦克风用来检测所合成后的噪声是否真的变小了. 这时处理器会根据这个反馈麦克风测量到的结果, 对处理过程进行调整从而进一步降低合成后的噪声音量, 这叫做自适应过程. 好比处理器变聪明了, 能够根据消噪的效果不断调整自己, 以达到最佳降噪效果.
众所周知, 声音是由震动产生的, 因此通过解决震动也可以有效的解决噪声问题, 当金属板, 机器外壁等一般均由薄金属板震动产生声音, 进而辐射噪声, 象这类由金属板结构振动引起的噪声称之为结构噪声.
咳咳咳咳, 总结一下,
一: 是通过声音抑制声音
二: 通过减少震动来抑制声音
降噪耳机
降噪功能对耳机的作用很重要, 一是减少噪音, 避免过度放大音量, 从而减少对耳朵的损害. 二是过滤噪音从而提高音质和通话质量.
降噪可分为被动式降噪和主动式降噪.
被动式降噪也就是物理降噪, 被动式降噪是指利用物理特性将外部噪声与耳朵隔绝开, 主要通过耳机的头梁设计得紧一些, 耳罩腔体进行声学优化, 耳罩内部放上吸声材料...... 等等来实现耳机的物理隔音. 被动降噪对高频率声音 (如人声) 的隔绝非常有效, 一般可使噪声降低大约为 15-20dB.
主动式降噪就是商家在宣传耳机降噪功能时会主打的 ANC,ENC,CVC,DSP 等降噪技术
降噪耳机, 采用 ANC 降噪, 主动噪音控制, 主要是针对外部环境中的高, 低频噪声, 不同于一般耳机的被动隔音, 其原理为:
先由安置于耳机内的讯号麦克风侦测耳朵能听到的环境中低频噪音 (100 ~ 1000Hz)(目前已经可以到 3000Hz)
再将噪声讯号传至控制电路, 控制电路进行实时运算
通过 Hi-Fi 喇叭发射与噪音相位相反, 振幅相同的声波与外界噪声相加, 来抵消噪音
因此噪音就消失听不见了
主动降噪根据拾音麦克风位置的不同, 分为前馈式主动降噪与反馈式主动降噪.
这么一来, 这个耳机需要一段的算法处理时间, 先学习噪声, 这个学习需要时间, 然后再把学习到的噪声相位反转, 有一个自适应调整期.
主动降噪耳机价格昂贵, 但是一般效果优秀, 佩戴舒适. 但是需要独立电池供电, 大多数被动降噪耳机可以不耗电使用(也不主动降噪)
ENC 降噪
ENC(Environmental Noise Cancellation, 环境降噪技术), 能有效抑制 90% 的反向环境噪声, 由此降低环境噪声最高可达 35dB 以上, 让游戏玩家可以更加自由的语音沟通. 通过双麦克风阵列, 精准计算通话者说话的方位, 在保护主方向目标语音的同时, 去除环境中的各种干扰噪声.
DSP 降噪
DSP 是英文 (digital signal processing) 的简写. 主要是针对高, 低频噪声. 工作原理是麦克风收集外部环境噪音, 然后系统复制一个与外界环境噪音相等的反向声波, 将噪音抵消, 从而达到更好的降噪效果. DSP 降噪的原理和 ANC 降噪相似. 但 DSP 降噪正反向噪音直接在系统内部相互中和抵消.
CVC 降噪
CVC(Clear Voice Capture)是通话软件降噪技术. 主要针对通话过程中产生的回声. 通过全双工麦克风消噪软件, 提供通话的回声和环境噪音消除功能, 是目前蓝牙通话耳机中最先进的降噪技术.
相关应用
主动降噪主要应用在车载音响中:
凯迪拉克是率先将主动降噪技术运用于汽车领域的品牌. 2013 年一季度在国内上市的凯迪拉克 XTS 豪华轿车, 其 https://baike.baidu.com/item/BOSE 5.1 环绕声高级音响系统具备主动降噪静音系统(ANC), 用车内麦克风采集噪音样本, 经系统分析处理之后, 由车载音响的扬声器播放相反的音频, 以抵消噪音波, 营造更安静的车内氛围.
主动降噪在室内降噪中的运用:
随着人们居住要求的日益提高, 室内降噪需求也愈发凸显, 针对窗外, 四邻活动及家用电器运转等噪声源, 研发三维开放声场主动降噪技术并将其运用到室内降噪以改善声环境, 是未来室内噪声控制的一种可行方案.
核心算法
ANC 降噪实现核心算法为: FxLMS(最小均方差算法). 最小均方差算法以均方误差为代价函数, 并使误差降到最小的算法. 具体算法推导这里不做具体介绍, 这里直接列出表达式
其中, x(k)为输入信号矩阵, W(k)为调整权值矩阵, d(k)为目标 (理想) 输出信号矩阵, y(k)为实际输出信号矩阵, e(k)为误差信号矩阵, 第 3 个公式为权值调整公式, mu 为收敛因子 (值为随机的, 0<mu<x(k) 的相关矩阵最大特征值的倒数)
Matlab 仿真 LMS 滤波器
根据表达设计滤波器
function [yn,W,en]=LMS(xn,dn,M,mu,itr)
% LMS(Least Mean Squre)算法
% 输入参数:
% xn 输入的信号序列 (列向量)
% dn 所期望的响应序列 (列向量)
% M 滤波器的阶数 (标量) 滤波器的阶数, 就是指过滤谐波的次数, 其阶数越高, 滤波效果就越好
% mu 收敛因子(步长) (标量) 要求大于 0, 小于 xn 的相关矩阵最大特征值的倒数
% itr 迭代次数 (标量) 默认为 xn 的长度, M<itr<length(xn)
% 输出参数:
% W 滤波器的权值矩阵 (矩阵)
% 大小为 M : itr,
% en 误差序列(itr : 1) (列向量)
% yn 实际输出序列 (列向量)
% 参数个数必须为 4 个或 5 个
if nargin == 4 % 4 个时递归迭代的次数为 xn 的长度
itr = length(xn);
elseif nargin == 5 % 5 个时满足 M<itr<length(xn)
- if itr>length(xn) || itr<M
- error('迭代次数过大或过小!');
- end
- else
- error('请检查输入参数的个数!');
- end
% 初始化参数
en = zeros(itr,1); % 误差序列, en(k)表示第 k 次迭代时预期输出与实际输入的误差
W = zeros(M,itr); % 每一行代表一个加权参量, 每一列代表 - 次迭代, 初始为 0
% 迭代计算
for k = M:itr % 第 k 次迭代
x = xn(k:-1:k-M+1); % 滤波器 M 个抽头的输入
y = W(:,k-1).' * x; % 滤波器的输出
en(k) = dn(k) - y ; % 第 k 次迭代的误差
% 滤波器权值计算的迭代式
- W(:,k) = W(:,k-1) + 2*mu*en(k)*x;
- end
% 求最优时滤波器的输出序列
- yn = inf * ones(size(xn));
- for k = M:length(xn)
- x = xn(k:-1:k-M+1);
- yn(k) = W(:,end).'* x;
- end
调用 LMS 函数仿真
close all
% 正弦信号的产生
- t=0:199;
- xs=5*sin(0.3*t);
- figure;
- subplot(2,1,1);
- plot(t,xs);grid;
- ylabel('幅值');
- title('{输入正弦波信号}');
% 随机噪声信号的产生
- randn('state',sum(100*clock));
- xn=randn(1,200);
- zn=randn(1,200);
- xn=xn+zn;
- subplot(2,1,2);
- plot(t,xn);grid;
- ylabel('幅值');
- xlabel('时间');
- title('{输入随机噪声信号}');
% 信号滤波
xn = xs+xn;
xn = xn.' ; % 输入信号序列
dn = xs.' ; % 预期理想结果序列
M = 23 ; % 滤波器的阶数
rho_max = max(eig(xn*xn.')); % 输入信号相关矩阵的最大特征值
mu = rand()*(1/rho_max) ; % 收敛因子 0 < mu < 1/rho_max
[yn,W,en] = LMS(xn,dn,M,mu);
% 绘制滤波器输入信号
- figure;
- subplot(2,1,1);
- plot(t,xn);grid;
- ylabel('幅值');
- xlabel('时间');
- title('{滤波器输入信号}');
% 绘制自适应滤波器输出信号
- subplot(2,1,2);
- plot(t,yn);grid;
- ylabel('幅值');
- xlabel('时间');
- title('{自适应滤波器输出信号}');
% 绘制自适应滤波器输出信号, 预期输出信号和两者的误差
- figure
- plot(t,yn,'b',t,dn,'g',t,dn-yn,'r',t,xn,'m');grid;
- legend('自适应滤波器输出','预期输出','误差','自适应滤波器输入');
- ylabel('幅值');
- xlabel('时间');
- title('{自适应滤波器}');
% 绘制最优权值点
- figure
- mm=0:M-1;
- plot(mm,W(:,end)','m*');grid;
- title('{
- 最优权值点
- }');
实验效果图:
结果分析
输入信号为正弦信号加噪声的混合信号, 可见正弦信号受噪声影响失真较大; 实验输出信号失真较小, 噪声信号已经很小, 这里可以调节 M 滤波器阶数来调节 ANC 降噪效果. 可见, LMS 算法可实现 ANC 降噪功能.
实际应用中, ANC 降噪对 2KHZ 以下的信号噪声降噪效果比较好, 对高频噪声降噪效果很差. 原因为高频信号波长短, 对相位偏差也比较敏感, 导致 ANC 对高频噪声降噪效果差. 一般高频噪声可以被耳机物理的遮蔽屏蔽掉, 这种降噪被称为被动降噪.
总结, 一般 2kHz 噪声信号使用 ANC, 高频信号没有必要使用 ANC. 实际测试中的应用, 测试步骤:
关闭 ANC 时, 声学测试软件测试声学参数 FR;
打开 ANC 时, 声学测试软件测试声学参数 FR, 这里通过调节 gain 值, 来调节降噪效果, 使降噪效果适中. 因为降噪效果差, 达不到降噪的目的; 降噪效果如果太好, 噪声信号趋近于 0, 会使耳机产生自激.
Feedforward ANC 主动降噪原理
feedforward 式主动降噪耳机的示意图, 图中, Ref mic 在耳机耳罩上, 采集环境噪声. Error mic 在耳机内, 采集降噪处理后的残差噪声, Speaker 播放 ANC 处理后的 anti-noise.
上图是 ANC 系统的原理图, 一共三层, 用虚线分隔. 最上一层 primary path 是从 ref mic 到 error mic 的声学通道, 响应函数用 P(z)P(z)表示; 中间一层是模拟通道, 其中 secondary path 是 adaptive filter 输出到返回残差的通路, 包括 DAC,reconstruction filter,power amplifier,speaker 播放, 再采集, pre-amplifier,anti-aliasing filter,ADC; 最下一层是数字通路, 其中 adaptive filter 不断调整滤波器权系数来削减残差, 直到收敛. 最常用的方案是用 FIR 滤波器结合 LMS 算法来实现 adaptive filter. 简化上图 2, 得到下图
图 3
先简要说几句 adaptive filter 和 LMS(Least mean square)算法的原理, 再说图 3. 如图 4, 给定输入 x 和 desired output d,adaptive filter 每次迭代会更新系数, 使其输出 $y$ 与 $d$ 之差越来越小, 直到残差足够接近 0 且收敛. LMS 是 adaptive filter 的一种更新算法. LMS 的目标函数是瞬时误差的平方 $e^2(n)=(d(n)-y(n))^2, 为了 minimize 目标函数, 对其应用梯度下降就得到算法的更新公式. 采用 FIR 滤波器的 LMS 算法的更新公式为:
$w(n+1)=w(n)+\mu e(n)x(n)$, 其中 $\mu$ 为 step size. 如果随着迭代进行调整 $\mu$ 的大小, 就是变步长的 LMS 算法.
图 4
再来说图 3. 这里 adaptive filter 输出后还要经过 $S(z)$ 才去和 desire output 比较,$S(z)$ 会引起 instability, 用文献的话说,"the error signal is not correctly'aligned'in time with the reference signal", 破坏了 LMS 的收敛性. 一种有效的方法是 FXLMS(Filtered-X LMS), 也就让 x(n)经过 $Sˆ(z)$ 再输入给 LMS 模块, $\hat{S}(z)$ 是 $S(z)$ 的估计. FXLMS 的 objective:
$$e^2(n)=(d(n)-s(n)*[w^T(n)x(n)])^2$$
所以 $gradient=-2e(n)s(n)*x(n)$, 其中 $s(n)$ 未知, 用其 estimate 近似, 所以 FXLMS 的更新公式是
$\textbf{w}(n+1)=\textbf{w}(n)+{\mu}e(n)\textbf{x}'(n)$
其中 $\textbf{x}'(n)=\widehat{s}(n)*\textbf{x}(n)$
当 adaptive filter 收敛时,$E(z)=X(z)P(z)-X(z)W(z)S(z)≈0$, 因此 $W(z)≈P(z)/S(z)$. 也就是说, 自适应滤波器的权系数是由耳机的 primary path 和 secondary path 决定的. 耳机的 primary path 和 secondary path 相对稳定, 所以 adaptive filter 的权系数也相对稳定. 因此为实现简单, 某些厂家的 ANC 耳机的权系数在出厂时就确定了. 当然这种 ANC 耳机的听感体验明显不及具有真正自适应意义的 ANC 耳机, 因为在实际情况下, 外部噪声相对耳机的方向, 不同温度等因素会对耳机的通道响应有影响.
Matlab 验证
写 Matlab 代码, 用变步长 LMS 的 adaptive filter, 得仿真结果如图 5. 在 0 到 2KHz 范围内, 利用 feedforward ANC 消高斯白噪, 噪声衰减平均 30dB+.Matlab 库里的 FXLMS 是定步长的, 效果要差一些.
Q&A
遇到的困惑写出来分享一下.
1. ANC 为什么只针对 2kHz 以下的低频噪音?
一方面, 耳机的物理隔音方式 (被动降噪) 可以有效阻挡高频噪音, 没必要用 ANC 降高频噪声. 另一方面, 低频噪声波长较长, 可以承受一定的相位延迟, 而高频噪声波长短, 对相位偏差敏感, 因此 ANC 消高频噪声并不理想.
2. 当 electronic delay 比 primary delay 大时, 算法性能大大下降如何理解?
P(z)延时小, S(z)延时大, 比如 P(z)=z-1, S(z)=z-2, 只有当 W(z)=z 才能满足要求, 非因果, unreachable.
3. Feedforward ANC,narrow-band feedforward ANC,feedback ANC 有什么区别?
Feedforwad 结构有一个 ref mic 和一个 error mic, 分别采集外部噪音和内部残差信号. feedback 结构只有一个 error mic, 由 error mic 和 adaptive filter output 生成 reference signal.
Broad-band feedforward 就是上面所述结构, 而 narrow-band 结构中, noise source 会产生某个 signal 触发 signal generator,signal generator 再生成 reference signal 送给 adaptive filter. 只适用于消除 periodic noise.
Feedback ANC 由于只有 error mic, 用 error mic 来恢复 feedforward 结构中 ref mic 采集的信号, 通路不满足因果约束, 因此只消除 predictable noise components, 即窄带周期性噪声. 需要注意的是, feedforward 如果不满足因果约束, 即 electronic delay 比主通道 acoustic delay 长的话, 也只能消除窄带周期性噪声.
另外还有一种 Hybrid ANC 的结构, 同时包含 feedforward 和 feedback 结构, 主要的优点是可以节省自适应滤波器的阶数.
Reference
主要参照 [1], 非常详细的一篇 tutorial review, 书[2] 详细推导和说明了 [1] 中的细节. 图 1 截自 jabra 官网, 图 2 和图 3 来自[3], 图 4 来自 Wikipedia.
- [1]: Kuo S M, Morgan D R. Active noise control: a tutorial review[J]. Proceedings of the IEEE, 1999, 87(6):943-973.
- [2]: Kuo S M, Morgan D. Active Noise Control Systems: Algorithms and DSP Implementations[M]. John Wiley & Sons, Inc. 1996.
- [3]: Kajikawa Y, Gan W S, Kuo S M. Recent advances on active noise control: open issues and innovative applications[J]. Apsipa Transactions on Signal & Information Processing, 2012, 1(2):e3.
实现困难度
主动降噪 + 被动降噪
参考文献
wjzblog 的 CSDN 博客 ANC 降噪学习
语音唤醒
来源: https://www.cnblogs.com/LXP-Never/p/11683944.html