有源噪声控制(Active Noise Control,ANC)是噪声控制领域近年发展起来的新技术,它弥补了传统无源方法在控制低频噪声上的不足,特别适合低频噪声的控制。有源噪声控制器的传递函数必须是时变的,也就是要求控制器是自适应的。DSP的快速发展使得这一要求成为可能。
在研究中以美国TI公司的TMS320VC5509(以下简称VC5509)DSP芯片为核心,采用FX-LMS(Filtered-X LMS)算法,设计并实现了单通道前馈结构有源噪声控制系统。实验结果表明该系统对低频噪声有良好的降噪效果。
1 系统模型和算法
1.1 系统模型
前馈结构有源噪声控制系统以初级传感器采集的噪声参考信号和误差传感器采集的误差信号作为控制器的输入,通过自适应控制器自我调整参数,控制次级声源发出的反噪声的幅度与相位,去抵消初级噪声,其系统模型如图1所示。
如果不考虑次级声源向初级传感器的声反馈,则图1系统模型图可等效为图2所示的系统原理框图。
图2中,hr(n)为参考通道的传递函数,hs(n)为次级通路的传递函数,hp(n)为初级通道的传递函数,p(n)为拟抵消的噪声源,d(n)为误差传感器接收到的噪声信号,W(z)为自适应滤波器,x(n)为输入滤波器的参考噪声信号,y(n)为滤波器的输出反信号,s(n)为次级传感器接收到的反噪声信号,e(n)为噪声抵消后所得到的残余误差信号。自适应算法根据参考信号x(n)和误差信号e(n)自动调节滤波器的权系数,从而调整次级声源输出信号强度,以满足某种目标准则。
1.2 有源消噪算法
综合考虑系统的稳定性、运算量和收敛速度,研究中采用FX-LMS算法。由图2所示原理框图可推出该算法的运算全过程如下:
式中:L为自适应滤波器的阶数;uw为自适应滤波器的步长因子。
1.3 次级通路建模
由上述公式(4)可以看出,参考信号x(n)需由次级通路传递函数hs(n)进行滤波,所以在有源噪声控制算法迭代之前,首先必须得到次级通路的传递函数。
估计次级通路传递函数的方法称为次级通路建模,一般有自适应离线建模和自适应在线建模两种方法。自适应在线建模要求在有源噪声控制系统运行的同时,对次级通路响应进行实时建模,对系统的运算能力要求较高。如果在有源噪声控制的整个过程中,次级通路的系统特性保持不变或基本不变,就可以采用自适应离线建模方法。本系统中即采用自适应离线建模,其框图如图3所示。
首先由DSP产生一个随机白噪声序列,同时送入次级声源和自适应建模滤波器C(z),误差传感器接收的信号e(n)作为建模滤波器的期望信号,滤波器的输出信号z(n)与期望信号e(n)相减抵消后,输入建模滤波器,自动调节滤波器权系数。次级通路建模采用LMS算法,其迭代运算公式如下:
式中:uc为次级通路建模滤波器的步长因子;N为次级通路建模滤波器的阶数。
实际应用中,应先关闭外部噪声源,采用DSP随机产生的白噪声作为次级通路激励源。DSP先执行次级通路滤波器的迭代,待次级通路LMS滤波器稳定后,将次级通路滤波器系数固定不变,代入上述的FXLMS滤波器进行有源消噪迭代运算。
2 系统硬件设计
本系统为单通道前馈结构,以高速DSP芯片TMS320VC5509为核心,采用两片16位高精度模数转换器件AD976A实现两路模拟信号的同步采集,并选用CPLD器件EPM7192SQC160-10设计锁存器,以串行D/A器件AD50C完成输出反噪声信号的D/A转换,选用16 Mb FLASH闪存芯片作为程序存储器,并在片外扩充一片64 Mb SDRAM作为外部数据空间。系统硬件框图如图4所示。
设计选用的VC5509DSP芯片最高支持144 MHz的时钟频率,具有高达288 MIPS(每秒百万条指令数)的处理能力,是一款具有较高性价比的低功耗DSP芯片。音频接口采用的AD976A为一款高精度、高速率的并口A/D转换器件,抽样速率可从8~200 KSPS,抽样速率的改变可通过改变输入时钟来实现,从而可实现在不改变硬件的情况下通过软件设置进行扩展。CPLD通过编程给A/D器件提供8 kHz采样频率,并设计采样保持锁存器。经由DSP的片选引脚CE2和地址引脚A1寻址,两个A/D转换器的锁存器地址分别设为0X400000和0X400001。CPLD与DSP连接图如图5所示。
AD50C为TI公司生产的16位可编程串行音频接口芯片,可通过DSP编程控制收发增益和采样频率。其串口与DSP的同步串口连接如图6所示。
系统信号流程如下:AD976A对噪声参考信号x(n)和误差信号e(n)进行8 000次/s采样,每次采样后由AD976A1的“BUSY”引脚触发DSP的外部中断4 INT4,在中断服务程序中DSP依据地址将CPLD锁存器中的两个数据分别读至内部存储器DARAM中,进行算法运算。算出反噪声序列y(n)后,在INT4中断服务程序中将其送至DSP串口MCBSP0,再通过AD50C数模变换后,送往扬声器发出反噪声。
3 系统软件设计
本系统软件主要包括三个部分:系统底层通信程序、次级通路建模子程序和有源噪声控制子程序。底层通信程序包括两路传感器信号同步采集程序和计算得到的反噪声信号输出程序。系统程序流程如图7所示。传感器采集信号的存储、反噪声信号的发送以及自适应滤波算法运算都在INT4中断服务程序中进行。经过实验,发现次级通路建模自适应滤波器在迭代30 000次后,即可进入稳定状态,故设置前30 000次中断用于次级通路建模,待次级通路LMS滤波器稳定后即将其系数固定不变,之后的中断服务程序都进入有源噪声控制子程序,进行FX-LMS滤波器系数的迭代,并产生反噪声信号y(n)。
4 实验结果
实验采用800 Hz单频正弦信号作为待消除的噪声信号。根据反复试验所得经验值,次级通路滤波器阶数取32,步长取0.125;有源消噪滤波器阶数取64,步长取0.005。最终实验结果如图8所示。由波形图可以看出,有源消噪系统运行后,误差传感器接收的信号幅度明显降低,系统取得了良好的降噪效果。通过计算可知该系统对800 Hz单频噪声的幅度可降低9 dB。实验时,人耳在误差传感器处进行监听,能够明显感受到噪声的抑制效果。当初级声源噪声特性发生改变时,系统能够实时地做出响应,并具有良好的稳定性。
5 结语
本文设计并实现了一个有源噪声控制系统,下一步的研究工作是在该硬件系统中编程实现各种不同的自适应控制算法,通过实验来比较各种算法的性能,并力争将有源消噪由低频扩展到高频,由窄带扩展到宽带,以推进有源噪声控制的实际工程应用。