下降噪音一般所采用的三种降噪措施,即在声源处降噪、在传播过程当中降噪及在人耳处降噪,都是被动的。为了主动地消除噪声,人们发明了“有源消声”这一技术。ANC(Active Noise Control)又称为主动噪声控制,常应用在耳机降噪中,git
原理:经过降噪系统产生与外界噪音相等的反向声波,将噪声中和,从而实现降噪的效果,算法
全部的声音都由必定的频谱组成,若是可找到一种声音,其频率、振幅与所要消除的噪声彻底同样,只是相位恰好相反(相差$180^o$)就能够将这噪声彻底抵消。app
频率:一秒钟语音信号震动的次数electron
振幅:声音大小ide
相位:某一时刻声波处于一个周期内的位置,若是咱们规定空气被压缩的最厉害的地方是相位的零点,那么半个周期以后,空气变得最为稀疏的地方,相位就变成180°。等到空气再次被压缩得最密集时,就通过了一整个周期,相位变化了360°又从新变为0°。函数
办法:先采集噪声,因此处理器会根据噪声进行预测,预测出下一时刻噪声的状况,并产生相位相反的噪声,来抵消原噪声。性能
为了保证降噪质量,还须要一个反馈麦克风用来检测所合成后的噪声是否真的变小了。这时处理器会根据这个反馈麦克风测量到的结果,对处理过程进行调整从而进一步下降合成后的噪声音量,这叫作自适应过程。比如处理器变聪明了,可以根据消噪的效果不断调整本身,以达到最佳降噪效果。学习
众所周知,声音是由震动产生的,所以经过解决震动也能够有效的解决噪声问题,当金属板、机器外壁等通常均由薄金属板震动产生声音,进而辐射噪声,象这类由金属板结构振动引发的噪声称之为结构噪声。测试
咳咳咳咳,总结一下,优化
一:是经过声音抑制声音
二:经过减小震动来抑制声音
降噪功能对耳机的做用很重要,一是减小噪音,避免过分放大音量,从而减小对耳朵的损害。二是过滤噪音从而提升音质和通话质量。
降噪可分为被动式降噪和主动式降噪。
被动式降噪也就是物理降噪,被动式降噪是指利用物理特性将外部噪声与耳朵隔绝开,主要经过耳机的头梁设计得紧一些、耳罩腔体进行声学优化、耳罩内部放上吸声材料……等等来实现耳机的物理隔音。被动降噪对高频率声音(如人声)的隔绝很是有效,通常可以使噪声下降大约为15-20dB。
主动式降噪就是商家在宣传耳机降噪功能时会主打的ANC、ENC、CVC、DSP等降噪技术
降噪耳机,采用ANC降噪,主动噪音控制,主要是针对外部环境中的高、低频噪声,不一样于通常耳机的被动隔音,其原理为:
主动降噪根据拾音麦克风位置的不一样,分为前馈式主动降噪与反馈式主动降噪。
这么一来,这个耳机须要一段的算法处理时间,先学习噪声,这个学习须要时间,而后再把学习到的噪声相位反转,有一个自适应调整期。
主动降噪耳机价格昂贵,可是通常效果优秀,佩戴温馨。可是须要独立电池供电,大多数被动降噪耳机能够不耗电使用(也不主动降噪)
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)的相关矩阵最大特征值的倒数)
根据表达设计滤波器
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
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。实际测试中的应用,测试步骤:
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代码,用变步长LMS的adaptive filter,得仿真结果如图5。在0到2KHz范围内,利用feedforward ANC消高斯白噪,噪声衰减平均30dB+。Matlab库里的FXLMS是定步长的,效果要差一些。
遇到的困惑写出来分享一下。
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结构,主要的优势是能够节省自适应滤波器的阶数。
主要参照[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.
主动降噪+被动降噪
语音唤醒