有源噪声控制中基于神经网络的次级通道辨识优化
2021-12-30冷仓田王德祯周邵萍
冷仓田, 王德祯, 周邵萍
(华东理工大学承压系统与安全教育部重点实验室,上海 200237)
随着生活水平和工业化水平的提高,噪声问题逐渐成为人们日常生活中关注的重点问题。噪声的控制主要分为传统噪声控制和有源噪声控制。常用的传统噪声控制方法在低频噪声环境下效果明显下降,有源噪声控制方法的出现使这个问题得到了更好的解决[1-3]。
自1936 年Leug[4]提出有源噪声控制思想后,有源噪声控制技术一直是噪声和控制领域的研究重点之一。传统的基于横向滤波器的有源噪声控制方案,在系统存在非线性因素的情况下,无法有效地降低噪声。非线性因素可能来自功率放大器、扬声器等电声器件,也可能来自声音的传播路径[5]。文献[6]提出了一种基于模糊神经网络的非线性噪声有源自适应控制方法,并给出了一种基于误差梯度下降的学习算法。文献[7]针对非线性有源噪声控制系统,提出了一种带有综合评价算法的自适应非线性神经控制器,用于衰减非线性和非高斯噪声环境,并通过模拟验证了效果。文献[8]提出了一种基于函数链接型神经网络(FLANN)的多通道非线性有源噪声控制系统,该系统采用一种适用于非线性噪声过程的粒子群优化(PSO)算法训练。文献[9]提出了一种基于次级通道的滤波最小均方误差非线性噪声控制算法。采用基于人工神经网络的非线性控制器,并通过计算机实时仿真验证其有效性。文献[10]提出了一个扩展流水线型二阶Volterra 滤波器(EPSOV)以及相应的非线性滤波-x 算法,显著提高了非线性噪声控制的计算效率,并进行了非线性噪声的模拟控制。文献[11]通过最小化对数代价的Lp 范数推导并提出了一种基于Volterra 扩展模型的非线性自适应算法(VFxlogLMP),提高了噪声控制算法的稳定性和收敛性。
目前研究人员对于噪声系统中非线性因素的优化主要有采用其他类型滤波器、结合神经网络改进控制器、虚拟传感等方式,对次级通道辨识模型的优化方法研究较少,其他研究大多受限于计算复杂度和硬件条件,只能通过计算机仿真验证效果。本文以管道为研究应用对象,重点对次级通道辨识模型进行改进,通过神经网络的非线性映射能力来提高次级通道建模的精度,根据优化的次级通道模型,基于最小均方(Least Mean Square, LMS)算法推导了控制器中相应的自适应有源噪声控制(Active Noise Control, ANC)算法,改善了次级通道的电声器件和声音传播的非线性因素对建模精度和噪声控制效果的影响。搭建了有源噪声控制实验系统,通过在物理噪声环境下对传统方法和优化方法的结果进行对比分析,验证了优化方法对噪声控制的优化效果。
1 有源噪声控制原理
1.1 基本结构
前馈有源噪声控制系统的基本结构如图1 所示。主要包括噪声源、参考传声器、误差传声器、次级声源、控制器等主要部件。参考传声器采集噪声源信号x(n)进入控制器,控制器通过控制算法将输入信号转化为输出信号y(n),再通过次级声源将反相声信号发出并传播到误差传声器处,此时的声信号s(n)与噪声源信号传播到达误差传声器处的声信号d(n)叠加,误差传声器将采集到的误差信号e(n)反馈回控制器处调节控制器的参数,如此循环迭代直到系统稳定。
图1 有源噪声控制基本结构Fig. 1 Basic structure of active noise control
1.2 ANC 算法
有源噪声控制的控制器通常采用有限冲激响应(Finite Impulse Response, FIR)滤波器结构,如图2 所示(图中P(z)为初级通道函数,W(z)为控制器函数,S(z)为次级通道函数),滤波-x LMS(Filter-x LMS,FxLMS)算法[12-13]是基于LMS 算法并考虑次级通道传递过程的自适应调节算法,自提出以来成为了有源噪声控制的经典算法。
图2 有源噪声控制系统示意图Fig. 2 Diagram of active noise control system
设FIR 滤波器的阶数为L,第n时刻权系数W(n)和参考信号X(n)分别为:
滤波器的输出信号y(n)由参考信号计算可得:
误差传声器处的次级信号s(n)为y(n)经过次级通道传递后的信号:
其中:Sz为次级通道传递函数。传统方法一般采用FIR 滤波器来辨识次级通道,所以次级通道传递过程采用卷积运算。
假设初级噪声具有局部平稳特性,以至于可以认为在L时段内自适应滤波器权系数基本保持不变[14],于是通过式(3)可以得到:
此时误差传声器处的信号可以表示为:
利用最速下降法递推控制器权系数可得:
其中:μ为收敛系数。为了简化计算,提高实时处理效率,一般取单个误差样本e(n)平方的梯度作为均方误差梯度,于是梯度 ∇(n) 为:
将上式代入式(7)即可获得权系数矢量迭代公式:
1.3 次级通道辨识
次级通道辨识是有源噪声控制中的关键一环,次级通道辨识通常采用如图3 所示的附加白噪声法[15]。其中:x(n)为人为产生的次级声源白噪声信号,作为次级通道的输入信号;y(n)为输出信号;d(n)为噪声源信号传递到误差麦克风处的实际信号;e(n)为误差信号;S和Sz分别是实际的和辨识得到的次级通道传递函数。根据LMS 算法更新传递函数的系数:
图3 附加白噪声法的次级通道辨识Fig. 3 Diagram of secondary path identification based on additive white noise
2 基于神经网络的次级通道辨识优化
2.1 神经网络
反向传播(Back Propagation, BP)神经网络[16]是目前广泛应用的网络模型,国内外利用BP 神经网络进行算法优化已经有了大量研究。
一般BP 神经网络包括三层:输入层、隐藏层和输出层。其中输入层和输出层固定只有一层,而隐藏层可以设计为多层。应用最为普遍的单隐藏层结构如图4 所示。该三层神经网络中,输入向量X=(x0,x1,···,xm)T,其中x0=−1 为引入隐藏层阈值而设置,隐藏层输出向量Y=(y0,y1,···,yn)T,其中y0=−1 为引入输出层阈值而设置,输出层输出向量为O=(o1,o2,···,ol)T,xm、ol、yn分别与向量X、O、Y对应,表示3 个向量分别有m、l、n个节点组成。对于隐藏层和输出层有:
图4 BP 神经网络结构图Fig. 4 Structure of BP neural network
其中:f1和f2分别为隐藏层和输出层的激活函数;vij表示输入层第i个节点到隐藏层第j个节点的权值;wjk表示隐藏层第j个节点到输出层第k个节点的权值。
BP 神经网络权值调整是通过误差反向传播。学习过程中输入信号正向传播到输出层,与期望输出之间的误差通过隐藏层向输入层逐层反传,并将误差分摊在各个单元,如此反复进行直到误差达到接受范围。
2.2 次级通道辨识优化
传统的次级通道辨识方法采用的FIR 滤波器结构的线性映射能力较强,但是次级通道中扬声器的频响特性以及声音传播本身具有的非线性特征都无法得到准确的反映。而BP 神经网络的特点之一就是具有良好的非线性映射能力[17],能够提高次级通道辨识的准确性。
神经网络次级通道模型如图5 所示,本文采用单隐藏层的BP 神经网络结构对次级通道进行辨识,以人为产生的噪声信号为输入信号x(n),以实际传递到误差麦克风处的信号为期望信号(D),故系统为多输入单输出系统,输出层节点数l=1,当输出与期望信号存在误差时:
图5 神经网络次级通道辨识结构图Fig. 5 Structure of secondary path identification based on neural network
其中dk和ok结合公式中的累加符号使用,表示累加时的第k个通用表达式。
将式(11)和(12)代入可得:
调整权值的思路是使误差不断减小,因此根据梯度下降法可得:
根据误差反传思路可以不断调整BP 神经网络各层权值,直到训练样本全部训练完成或者误差达到训练要求。
2.3 优化后的ANC 算法
通过BP 神经网络辨识次级通道后,得到的次级通道传递函数为三层神经网络结构,与传统的ANC算法中采用的FIR 滤波器结构有所区别。因此对ANC 算法也要进行改进,参考FxLMS 算法[18],改进后的算法和FxLMS 算法原理类似,但是在更新控制器权值时的梯度需要根据神经网络结构来调整。如图6 所示。
图6 优化后的ANC 算法结构图Fig. 6 Optimized structure of ANC
将式(11)和(12)代入式(3)和式(4)可得滤波器输出后传至误差麦克风后的信号:
(2)当表面活性剂浓度小于0.1wt%时毛管力会有明显变化,浓度大于0.1wt%时,毛管力变化不明显。随着毛管力的增大采出程度以及含水率降幅变化不明显,这主要是由于毛管力为微观作用力,仅在驱替压差未建立之前发挥作用,一旦外加驱替压差大于毛管力,此时毛管力的作用可以忽略。
其中:W(n)XiT(n)为第n时刻的控制器输出。将式(17)代入式(6)可得:
再根据梯度公式有:
进行次级通道辨识时,参考BP 神经网络的训练特点,选择tansig 函数即双曲正切S 型函数作为隐藏层的激活函数,pureline 函数即线性函数作为输出层的激活函数,即有:
因此可得:
将式(19)、(21)、(22)代入式(7)可得优化后的ANC 算法权值更新公式:
3 实验平台与方法
3.1 硬件系统组成
噪声控制的硬件系统以德州仪器公司的TMS320VC5509A 芯片为核心数字信号处理芯片(Digital Signal Processor, DSP),外接TLV320AIC23音频编解码芯片。控制部分的硬件处理流程如图7所示。芯片通过I2C 总线(Inter-Integrated Circuit)配置AIC23 芯片的相关参数,如采样率设置为8 000、增益设置为0 dB、输入为双通道线性输入等。参考麦克风和误差麦克风分别将参考声信号和误差声信号采集到AIC23 音频处理芯片,在AIC23 中完成模数转换并通过多通道缓冲串口(Multi-channel Buffered Serial Port, McBSP)与DSP 进行数据的传输与交换。数字信号在DSP 中根据ANC 算法进行计算处理,输出数字信号至AIC23,经过数模转换成模拟信号通过扬声器输出,其中麦克风采集进入音频芯片前和音频芯片输出到扬声器前都需要经过相应的功率放大器以达到模拟信号的要求。
图7 硬件系统结构Fig. 7 Structure of hardware system
3.2 实验平台搭建
本文搭建的实验系统以管道为对象,管道为聚氯乙烯材料,长1000 mm,截面为150 mm×100 mm的矩形,厚度约为4 mm。管道左侧封闭并布置噪声源,中间布置次级声源,参考麦克风布置在噪声源右侧较近位置,误差麦克风布置在次级声源右侧的一段距离上。实验管道的布置如图8 所示。
图8 实验管道布置Fig. 8 Layout of experiment duct
在硬件系统和管道器件布置确定的基础上搭建如图9 所示的实验平台,主要部件有:噪声源扬声器、参考麦克风、次级声源扬声器、误差麦克风、计算机、DSP 控制器、仿真器、功率放大器。其中仿真器用于连接DSP 和计算机,方便进行硬件调试,功率放大器用于放大DSP 的输出音频信号。
图9 噪声控制实验平台Fig. 9 Platform for noise control experiment
3.3 实验方法流程
(1)DSP 驱动次级声源发出白噪声,以次级声源信号和误差麦克风信号作为输入输出,进行次级通道辨识,得到次级通道模型系数。
(2)采集参考麦克风和误差麦克风信号,基于有源噪声控制算法和虚拟传感法,使用计算机MATLAB进行离线计算更新控制器权系数,其中次级通道为次级通道辨识所得模型系数,得到更新计算后的控制器权系数。
(3)将离线计算的控制器权系数导入DSP,作为FIR 滤波的权系数,进行FIR 滤波,输出信号驱动次级声源,实现声音信号叠加的降噪过程。
实验流程如图10 所示。
图10 实验流程图Fig. 10 Diagram of experiment flow
本文以单频噪声信号和多频噪声信号为噪声源,分别采用传统模型和神经网络模型完成次级通道传递函数的辨识,并基于对应的ANC 算法,进行有源噪声控制实验。采集降噪前后的噪声信号,对比分析噪声控制结果,来验证提出的次级通道辨识算法的优化效果。
4 实验与分析
4.1 神经网络训练
采用1.3 节所述的附加白噪声法模拟次级通道辨识的过程。将输出的白噪声信号作为输入样本,误差麦克风处采集到的信号作为输出样本,采集1 s,由于采样率为8000,所以可以得到8000 组输入、输出样本。其中70%作为训练样本,15%作为验证样本,15%作为测试样本。次级通道的模拟过程如下:
(1)将数据样本归一化处理,将数据范围归一化到[−1, 1]区间。
(2)设置神经网络参数,包括输入层、隐藏层、输出层三层的节点数。综合考虑BP 神经网络的映射能力和计算时间以及避免过拟合问题,将输入层节点数设置为128,隐藏层节点数设置为6。为提高泛化能力,采用基于Levenberg-Marquardt 算法的贝叶斯正则化(trainbr)算法对网络各层的权值进行训练。隐藏层激活函数设置为双曲线正切(tansig)函数,输出层激活函数设置为线性(pureline)函数。
(3)训练神经网络,直至所有样本都训练完成。
(4)将训练后的神经网络输出与原有的输出样本进行对比。
(5)确定训练后的神经网络参数,将其保存并用于ANC 算法的模拟。
图11 次级通道辨识结果比较Fig. 11 Comparison of secondary path identification results
4.2 有源噪声控制实验
训练得到次级通道的神经网络模型参数后,可以根据采集的信号进行优化ANC 算法的模拟仿真,以500 Hz 噪声源为例,仿真后得到模拟降噪效果和滤波器系数,分别如图12、13 所示。
图12 500 Hz 噪声源的模拟降噪效果Fig. 12 Simulated noise reduction result
图13 500 Hz 噪声源的模拟滤波器系数Fig. 13 Simulated coefficients of filter with 500 Hz noise
以500 Hz 的单频正弦声波为噪声源,分别以3.1 节中训练后的神经网络模型和传统的FIR 模型为次级通道传递函数,进行有源噪声控制实验,将两者的实验结果进行对比。根据图14、15、16,针对500 Hz单频噪声源,从频谱图来看,500 Hz 频率上传统降噪算法的噪声降低了23.1%,而优化降噪算法的噪声降低了55.7%。另外,通常可以用功率谱密度(Power Spectral Density, PSD)来表示声功率强度。从功率谱密度图来看,传统降噪算法的噪声功率在500 Hz 基频上降低了4.6 dB,且在倍频处降噪效果不明显,与之相对的优化降噪算法的噪声功率在500 Hz 基频上降低了14.1 dB,且在其他倍频处也有较好的降噪效果。由此实验分析得到,在单频和低频的噪声条件下,采用神经网络模型进行次级通道辨识并结合优化后的ANC 算法进行有源噪声控制实验,相比传统的FIR 模型和ANC 算法,得到的噪声控制效果有明显提升。
图14 500 Hz 噪声的实验结果频谱图Fig. 14 Spectra of results with 500 Hz noise
针对两种频率混合的噪声信号,本文以500 Hz加800 Hz 的混频正弦声波为实验噪声源。因为实验平台的管道布放以及电声器件位置都是固定的,故实际的次级通道相同,可以分别与单频噪声实验相同的神经网络模型和FIR 模型作为次级通道辨识模型。同样用优化控制算法和传统控制算法分别进行有源噪声控制实验,对比分析噪声的控制,结果如图17、18、19 所示,从频谱图来看,传统噪声控制的噪声信号幅值在500 Hz 频率上降低了24.6%,在800 Hz频率上降低了13.3%;优化噪声控制的噪声信号幅值在500 Hz 频率上降低了30.1%,在800 Hz 频率上降低了66.3%。从功率谱密度图来看,传统噪声控制的噪声信号功率在500 Hz 频率上降低了4.89 dB,在800 Hz频率上降低了2.58 dB;而优化噪声控制的噪声信号功率在500 Hz 频率上降低了6.22 dB,在800 Hz频率上降低了18.85 dB。因此可知,在两种低频频率混合的噪声条件下,优化算法与传统算法相比,噪声控制效果得到了明显提升。
图15 500 Hz 噪声的 FxLMS 控制实验功率谱密度图Fig. 15 PSD of FxLMS result with 500 Hz noise
图16 500 Hz 噪声的优化控制实验功率谱密度图Fig. 16 PSD of optimization result with 500 Hz noise
图17 (500+800) Hz 噪声源的实验结果频谱图Fig. 17 Spectra of results with (500+800) Hz noise
图18 (500+800) Hz 噪声的 FxLMS 控制实验功率谱密度图Fig. 18 PSD of FxLMS result with (500+800) Hz noise
图19 (500+800) Hz 噪声的优化控制实验功率谱密度图Fig. 19 PSD of optimization result with (500+800) Hz noise
5 结 论
本文根据有源噪声控制原理,针对噪声控制和传播过程中存在非线性因素的问题,对次级通道辨识模型进行了优化,采用BP 神经网络模型代替传统的FIR 模型,并推导了相应的ANC 算法。以管道为实验对象,搭建了有源噪声控制实验系统,进行噪声控制实验,对神经网络次级通道模型和优化算法的有效性进行了验证。得到结论:
(1)采用神经网络模型进行训练后的次级通道传递函数与传统的FIR 模型相比,更接近于实际的次级通道传播模型。
(2)在低频和单频条件下,采用神经网络模型的优化ANC 算法对噪声的控制效果要优于传统的ANC 算法。
(3)在两种低频频率混合的条件下,采用神经网络模型的优化ANC 算法对噪声的控制效果同样要优于传统的ANC 算法。