智能耳机

人机交互

  1. 智能声学终端
  2. 智能耳机
    • 智能音箱
    • 智能听力器
  3. 喇叭单体
    • 动圈喇叭
  4. 新材料
    • DLC
    • 石墨烯
    • 陶瓷单位
    • 吸音材料
  5. 智能芯片
    • 阵列式麦克风
    • 声纹传感器
  6. 演算法
    • 降噪算法
    • 智能听力保护
    • ANC

ANC

  降低噪音通常所采用的三种降噪措施,即在声源处降噪、在传播过程中降噪及在人耳处降噪,都是被动的。为了主动地消除噪声,人们发明了“有源消声”这一技术。ANC(Active Noise Control)又称为主动噪声控制,常应用在耳机降噪中,

原理:通过降噪系统产生与外界噪音相等的反向声波,将噪声中和,从而实现降噪的效果,

  所有的声音都由一定的频谱组成,如果可找到一种声音,其频率振幅与所要消除的噪声完全一样,只是相位刚好相反(相差$180^o$)就可以将这噪声完全抵消。

频率:一秒钟语音信号震动的次数

振幅:声音大小

相位:某一时刻声波处于一个周期内的位置,如果我们规定空气被压缩的最厉害的地方是相位的零点,那么半个周期之后,空气变得最为稀疏的地方,相位就变成180°。等到空气再次被压缩得最密集时,就经过了一整个周期,相位变化了360°又重新变为0°。

办法:先采集噪声,所以处理器会根据噪声进行预测,预测出下一时刻噪声的情况,并产生相位相反的噪声,来抵消原噪声。

  为了保证降噪质量,还需要一个反馈麦克风用来检测所合成后的噪声是否真的变小了。这时处理器会根据这个反馈麦克风测量到的结果,对处理过程进行调整从而进一步降低合成后的噪声音量,这叫做自适应过程。好比处理器变聪明了,能够根据消噪的效果不断调整自己,以达到最佳降噪效果。

  众所周知,声音是由震动产生的,因此通过解决震动也可以有效的解决噪声问题,当金属板、机器外壁等一般均由薄金属板震动产生声音,进而辐射噪声,象这类由金属板结构振动引起的噪声称之为结构噪声。

  咳咳咳咳,总结一下,

一:是通过声音抑制声音

二:通过减少震动来抑制声音

降噪耳机

降噪功能对耳机的作用很重要,一是减少噪音,避免过度放大音量,从而减少对耳朵的损害。二是过滤噪音从而提高音质和通话质量。

降噪可分为被动式降噪和主动式降噪。

被动式降噪也就是物理降噪,被动式降噪是指利用物理特性将外部噪声与耳朵隔绝开,主要通过耳机的头梁设计得紧一些、耳罩腔体进行声学优化、耳罩内部放上吸声材料……等等来实现耳机的物理隔音。被动降噪对高频率声音(如人声)的隔绝非常有效,一般可使噪声降低大约为15-20dB。

主动式降噪就是商家在宣传耳机降噪功能时会主打的ANC、ENC、CVC、DSP等降噪技术

降噪耳机,采用ANC降噪,主动噪音控制,主要是针对外部环境中的高、低频噪声,不同于一般耳机的被动隔音,其原理为:

  1. 先由安置于耳机内的讯号麦克风侦测耳朵能听到的环境中低频噪音 (100 ~ 1000Hz)(目前已经可以到3000Hz)
  2. 再将噪声讯号传至控制电路,控制电路进行实时运算
  3. 通过 Hi-Fi 喇叭发射与噪音相位相反、振幅相同的声波与外界噪声相加,来抵消噪音
  4. 因此噪音就消失听不见了

主动降噪根据拾音麦克风位置的不同,分为前馈式主动降噪与反馈式主动降噪。

这么一来,这个耳机需要一段的算法处理时间,先学习噪声,这个学习需要时间,然后再把学习到的噪声相位反转,有一个自适应调整期。

主动降噪耳机价格昂贵,但是一般效果优秀,佩戴舒适。但是需要独立电池供电,大多数被动降噪耳机可以不耗电使用(也不主动降噪)

ENC降噪

ENC(Environmental Noise Cancellation,环境降噪技术),能有效抑制90%的反向环境噪声,由此降低环境噪声最高可达35dB以上,让游戏玩家可以更加自由的语音沟通。通过双麦克风阵列,精准计算通话者说话的方位,在保护主方向目标语音的同时,去除环境中的各种干扰噪声。

DSP降噪

DSP是英文(digital signal processing)的简写。主要是针对高、低频噪声。工作原理是麦克风收集外部环境噪音,然后系统复制一个与外界环境噪音相等的反向声波,将噪音抵消,从而达到更好的降噪效果。DSP降噪的原理和ANC降噪相似。但DSP降噪正反向噪音直接在系统内部相互中和抵消。

CVC降噪

  CVC(Clear Voice Capture)是通话软件降噪技术。主要针对通话过程中产生的回声。通过全双工麦克风消噪软件,提供通话的回声和环境噪音消除功能,是目前蓝牙通话耳机中最先进的降噪技术。

相关应用

主动降噪主要应用在车载音响中:

  凯迪拉克是率先将主动降噪技术运用于汽车领域的品牌。2013年一季度在国内上市的凯迪拉克XTS豪华轿车,其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 : ) (列向量)
% yn 实际输出序列 (列向量) % 参数个数必须为4个或5个
if nargin == % 4个时递归迭代的次数为xn的长度
itr = length(xn);
elseif nargin == % 5个时满足M<itr<length(xn)
if itr>length(xn) || itr<M
error('迭代次数过大或过小!');
end
else
error('请检查输入参数的个数!');
end % 初始化参数
en = zeros(itr,); % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差
W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0 % 迭代计算
for k = M:itr % 第k次迭代
x = xn(k:-:k-M+); % 滤波器M个抽头的输入
y = W(:,k-).' * x; % 滤波器的输出
en(k) = dn(k) - y ; % 第k次迭代的误差
% 滤波器权值计算的迭代式
W(:,k) = W(:,k-) + *mu*en(k)*x;
end % 求最优时滤波器的输出序列
yn = inf * ones(size(xn));
for k = M:length(xn)
x = xn(k:-:k-M+);
yn(k) = W(:,end).'* x;
end

调用LMS函数仿真

close  all
% 正弦信号的产生
t=:;
xs=*sin(0.3*t);
figure;
subplot(,,);
plot(t,xs);grid;
ylabel('幅值');
title('{输入正弦波信号}'); % 随机噪声信号的产生
randn('state',sum(*clock));
xn=randn(,);
zn=randn(,);
xn=xn+zn;
subplot(,,);
plot(t,xn);grid;
ylabel('幅值');
xlabel('时间');
title('{输入随机噪声信号}'); % 信号滤波
xn = xs+xn;
xn = xn.' ; % 输入信号序列
dn = xs.' ; % 预期理想结果序列
M = ; % 滤波器的阶数
rho_max = max(eig(xn*xn.')); % 输入信号相关矩阵的最大特征值
mu = rand()*(/rho_max) ; % 收敛因子 < mu < /rho_max
[yn,W,en] = LMS(xn,dn,M,mu); % 绘制滤波器输入信号
figure;
subplot(,,);
plot(t,xn);grid;
ylabel('幅值');
xlabel('时间');
title('{滤波器输入信号}');
% 绘制自适应滤波器输出信号
subplot(,,);
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=:M-;
plot(mm,W(:,end)','m*');grid;
title('{最优权值点}');

实验效果图:

结果分析

  输入信号为正弦信号加噪声的混合信号,可见正弦信号受噪声影响失真较大;实验输出信号失真较小,噪声信号已经很小,这里可以调节M滤波器阶数来调节ANC降噪效果。可见,LMS算法可实现ANC降噪功能。

  实际应用中,ANC降噪对2KHZ以下的信号噪声降噪效果比较好,对高频噪声降噪效果很差。原因为高频信号波长短,对相位偏差也比较敏感,导致ANC对高频噪声降噪效果差。一般高频噪声可以被耳机物理的遮蔽屏蔽掉,这种降噪被称为被动降噪。

  总结,一般2kHz噪声信号使用ANC,高频信号没有必要使用ANC。实际测试中的应用,测试步骤:

  1. 关闭ANC时,声学测试软件测试声学参数FR;
  2. 打开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降噪学习

语音唤醒

主动降噪(Active Noise Control)的更多相关文章

  1. 主动降噪,通话降噪及AI降噪之辨

    近日,三星发布的Buds Pro 耳机中,宣传有以下功能.其中涉及到噪声的,有主动降噪,通话降噪及智能降噪,很多人对他们的具体用途容易混淆,今天我们来辨析一下. 主动降噪和通话降噪完全不是一个概念,无 ...

  2. 主动学习——active learning

    阅读目录 1. 写在前面 2. 什么是active learning? 3. active learning的基本思想 4. active learning与半监督学习的不同 5. 参考文献   1. ...

  3. ftp的主动模式active mode和被动模式 passive mode的配置和区别

    ftp的主动模式active mode和被动模式 passive mode的配置和区别 2017年05月08日 17:47:16 阅读数:21768 本文主要记录的是在linux上的区别,弄了一整天才 ...

  4. ANC主动降噪理论

    根据系统是否有参考信号传感器可将ANC系统大致的分为前馈型和反馈型. 前馈控制是产生次级噪声之前就通过传感器测量初级噪声的频率以获取参考信号. 反馈控制不需要测得参考信号就产生次级噪声进行相消干涉 反 ...

  5. 主动学习(Active Learning)

    主动学习简介 在某些情况下,没有类标签的数据相当丰富而有类标签的数据相当稀少,并且人工对数据进行标记的成本又相当高昂.在这种情况下,我们可以让学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数 ...

  6. 主动降噪技术(ANC)的前生今世--原理仿真

    一 原理: 主动降噪就是通过反相检测麦克风的声音或噪声来减弱周围环境的噪声让扬声器出来的声音听起来更清晰.主动降噪技术的目标就是通过一个自适应滤波器把不想要的噪声反相从而把噪声约束到固定的范围内.该系 ...

  7. Active Learning主动学习

    Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...

  8. Vsftp安装及配置主动模式/被动模式

     第一章.前言 FTP的主动模式(active mode)和被动模式(passive mode) 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯 ...

  9. 论文翻译:2020_Joint NN-Supported Multichannel Reduction of Acoustic Echo, Reverberation and Noise

    论文地址:https://ieeexploreieee.fenshishang.com/abstract/document/9142362 神经网络支持的回声.混响和噪声联合多通道降噪 摘要 我们考虑 ...

随机推荐

  1. 如何在IDEA中导入一个普通的java工程

    1.如下: 2.如下,选中要导入的工程: 3.如下: 4.如下图 5.点击next,后如下图: 6.点击next后,如下图: 7.点击next后,如下图: 8.点击next后,如下图: 9.点击nex ...

  2. 归并排序、jensen不等式、非线性、深度学习

    前言 在此记录一些不太成熟的思考,希望对各位看官有所启发. 从题目可以看出来这篇文章的主题很杂,这篇文章中我主要讨论的是深度学习为什么要"深"这个问题.先给出结论吧:"深 ...

  3. ubuntu上vritualbox为系统分配硬盘空间

    VBoxManage是virtualbox 在ubuntu上提供的管理virtualbox的命令行命令 VBoxManage modifyhd windowsDevEnv --resize VBoxM ...

  4. 基于STC89C52的oled红外遥控闹钟

    这个红外遥控主要是程序通过对按下的键的键码进行解析,并运行相应的功能代码 一次按键动作的遥控编码信息为 32 位串行二进制码.对于二进制信号“0”,一个脉冲占 1.2ms:对于二进制信号“1”,一个脉 ...

  5. [原创] Matlab 指派问题模型代码

    指派问题的基本内容 一般来说指派问题解决的是如何将任务分配到人,使得任务完成的效益最大化(成本型效益则求最小值,利润型效益则求最大值).上述问题一个 0 - 1 整数规划问题. 问题围绕着任务和人展开 ...

  6. PacMan 01——玩家移动

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  7. [Leetcode] 第309题 最佳买卖股票时机含冷冻期

    一.题目描述 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 .​ 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与 ...

  8. C++基础之动态内存

    C++支持动态分配对象,它的生命周期与它们在哪里创建无关,只有当显示的被释放时,这些对象才会被销毁.分配在静态或栈内存中的对象由编译器自动创建和销毁. new在动态内存中为对象分配空间并返回一个指向该 ...

  9. thinkphp 多条件模糊搜索结果,按照最佳匹配度排序,使用LOCATE函数

    //获取筛选参数 $params = Request()->only(['keywords','brand_id', 'cat_id']); $where = "brand_id = ...

  10. scrapy框架来爬取壁纸网站并将图片下载到本地文件中

    首先需要确定要爬取的内容,所以第一步就应该是要确定要爬的字段: 首先去items中确定要爬的内容 class MeizhuoItem(scrapy.Item): # define the fields ...