APP下载

面向声源定位的改进广义互相关时延估计方法

2021-12-02屈顺彪芦竹茂王晨光

导航定位与授时 2021年6期
关键词:麦克风声源广义

屈顺彪,俞 华,芦竹茂,申 冲,韩 钰,王晨光

(1. 中北大学仪器科学与动态测试教育部重点实验室,太原 030051; 2. 国网山西省电力公司电力科学研究院,太原 030001; 3. 中北大学信息与通信工程学院,太原 030051;4.中北大学仪器与电子学院,太原 030051)

0 引言

随着现代信号处理技术的发展,当前基于麦克风阵列的声源定位方法采用麦克风阵列拾取声源信号,再经过一系列语音处理手段完成声源的定位操作,在无人机定位和工业设备故障监测方面都有着广泛的用途。因此,该技术越来越受到国内外相关企业、科研院所及高校的关注。文献[1]中提出了一种基于相位变换的广义互相关函数的声源定位算法。该算法采用7个麦克风接收声源信号,并对接收到的信号进行滤波、加窗、谱减和倒谱等预处理,得到纯语音信号,通过计算纯语音信号的广义互相关函数的相位变换,从而得到接收信号的时延估计值,再利用到达时间差算法和坐标旋转数字计算机算法计算方位角、俯仰角和距离以确定声源方位。文献[2]中提出了一种广义交叉功率谱算法来滤除卷积干扰,通过对采样信号进行白化处理,并根据信噪比变化调整交叉功率谱算法的加权值以提高抗噪和抗卷积性能,与传统的广义互功率谱算法相比,能够克服混响和噪声的卷积干扰,锐化峰值,从而准确估计出信号的时延。

当前基于麦克风阵列的声源定位主要通过三类算法模型实现,分别是高分辨率谱估计方法[3]、可控波束形成方法[4]和基于到达时间差的时延估计方法[5]。其中高分辨率谱估计方法通过计算各个阵元的相关矩阵,获取不同参数下的子空间,进而求取声源的方位信息;可控波束形成方法通过对采集的信号计算加权和得到波束,然后改变麦克风阵列接收信号的方向并计算信号的功率,不断搜索得到输出功率最大的波束方向,该方向即为所求的声源方位;基于到达时间差的时延估计方法主要分为两步实现,首先是估算同一声源到达阵列中不同麦克风之间的时间差,其次再根据该差值求解声源到达各个麦克风之间的距离,最后再利用求解几何的方法确定声源的方位[6-8]。相较于前两种方法,该方法计算量较小,实时性较高,在麦克风声源定位系统中被广泛采用。

在传统的麦克风声源定位系统中大多采用模拟麦克风作为声传感器,为保证信号的稳定可靠,需要设计复杂的信号调理电路[7],以完成信号的滤波及放大等预处理,这都将增加系统的复杂度。因此本文采用数字微机电系统(Micro-Electro-Mechanical System,MEMS)麦克风作为声传感器,由于该型传感器直接输出数字量的脉冲密度调制(Pulse Density Modulation,PDM)信号,因此具有很强的抗干扰性,且不需要再设计外围信号调理电路。对于时延估计过程中环境噪声干扰导致时延估计误差增大的问题,本文在传统的广义互相关方法的基础上,通过改进PHAT加权函数进一步提高其抗噪能力,从而提高时延估计的精度,最后再通过实验验证了该方法的可靠性[9-10]。

1 麦克风阵列定位系统设计

1.1 麦克风阵列电路的设计

本设计中采用钰太科技推出的型号为ZTS6032的数字MEMS麦克风,该型传感器输出数据为1bit的PDM信号,具有很强的抗干扰能力,工作电压范围为2.4~3.3V,工作电流为500μA,其麦克风阵列的电路设计如图1所示。将现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)的IO端口分别和麦克风的时钟引脚以及数据引脚相连,FPGA提供给4路麦克风正常工作所需要的4路同步时钟信号,保证输出的PDM数据和输入的时钟信号同步,FPGA将采集到的4路麦克风数据在先进先出(First Input First Output,FIFO)模块中进行简单的处理后,等待写入DDR3 SDRAM中缓存。

图1 麦克风阵列电路工作示意图Fig.1 Schematic diagram of microphone array circuit

1.2 麦克风数据采集系统的设计

在电路工作过程中,FPGA同步控制4路MEMS麦克风进行声源信号的同步采集,设置一帧信号的采集时长为10s,即一帧数据的数据量为2.86MB。采集的大量数据先经由FPGA进行缓存处理,由于MEMS数字麦克风的工作时钟和DDR3 SDRAM的工作时钟不一致,因此分别设置2个FIFO用作数据的中间缓冲。FIFO的数据位宽设置为128bit,深度为512,将每个麦克风输出的1bit PDM数据联合组成一个16字节的数据,再通过写FIFO模块写入DDR3 SDRAM中缓存等待以太网的发送,数据采集系统的整体架构如图2所示。

图2 多通道麦克风阵列数据采集系统Fig.2 Multi-channel microphone array data acquisition system

使用Xilinx的Vivado软件开发平台自带的内部逻辑分析仪可实时抓取到FPGA同步采集的4路麦克风输出的PDM数据,其结果如图3所示。

图3 同步采集4路麦克风输出的PDM数据Fig.3 Simultaneous collection of PDM data from four microphones

2 麦克风输出的PDM信号解码

2.1 CIC抽取滤波器的设计

ZTS6032型数字MEMS麦克风输出信号采用PDM信号编码,传感器输出信号的幅值由多个脉冲的平均值决定。由于输出的PDM信号采用过采样技术,因此在数据解码过程中首先需要降低信号的采样频率以降低硬件系统的功耗,这里选择使用Q级CIC(Cascade Integrator Comb)滤波器级联的方式降低系统的采样频率。CIC滤波器由积分器和微分器共同组成,积分器是单极点的IIR(Infinite Impulse Response)滤波器,微分器是对称的 FIR (Fi-nite Impulse Response)滤波器,其各自的传递函数和CIC滤波器的传递函数分别为式(1)和式(2)

(1)

|H(z)|=HI(z)QHc(z)Q

(2)

将z=ejω代入系统函数H(z), 最终可得

(3)

其中,D为降采样倍数,Q为滤波器级联级数,CIC滤波器的系统函数由D和Q唯一确定。图4所示为CIC滤波器的幅频响应曲线,抽取倍数D越大,通带内降幅越大,第一旁瓣抑制比随着Q的增大而增加,Q级CIC滤波器级联的旁瓣抑制比为13.46Q,该参数直接关系到后续的抽取是否会发生频谱混叠现象。

图4 CIC幅频图Fig.4 CIC amplitude frequency diagram

由图4可知,随着滤波器级联级数的增加,阻带衰减增大,当滤波器的级联级数为5时,阻带最小衰减能达到67.3dB,基本能满足实际的应用需求。

2.2 CIC补偿滤波器的设计

由CIC滤波器的特性可知,增加滤波器的级联级数虽然能够增大阻带衰减,但是同时也会带来通带衰减。当信号通带频率为2kHz,以2.4MHz作为信号的采样频率,采用5级CIC滤波器级联以150倍抽取时,CIC滤波器的频率响应如图5所示。在通带内信号幅值有将近3.57dB的衰减,当信号通过时会出现比较严重失真的情况,因此需要设计一个补偿滤波器以改善CIC滤波器的通带衰减问题,CIC补偿滤波器的幅频响应曲线如图5所示。

图5 CIC补偿滤波器的幅频响应Fig.5 Amplitude frequency response of CIC compensation filter

由图5CIC补偿滤波器的幅频响应曲线可知,经过CIC的补偿之后,通带内的幅值衰减下降到0.35dB,因此该滤波器能达到补偿CIC滤波器通带内幅值衰减的目的。

3 声源定位模型的建立

3.1 麦克风阵列结构的设计

麦克风阵列的设计对声源信号的成功定位起着关键作用,在对空间信号进行定位时至少需要4个麦克风传感器放置在不同的方位。理论上声传感器越多能获得的定位结果越精确,但同时也会带来阵列冗余和计算量加大的问题,对时延估值造成一定的影响。因此,本文综合考虑各方面因素,选择基于四元麦克风阵列的声源定位模型。

以O为原点建立如图6所示的空间坐标系,声源S到原点O的距离为l,其在平面的投影与X正半轴的夹角为φ,与Z正半轴的夹角为θ,声传感器依次放置在图6所示的位置,其中S1(d,0,0),S2(0,d,0),S3(-d,0,0),S4(0,-d,0)分别表示4个声传感器的坐标位置。在近场模式下声信号以球面波的形式传播,以τij表示声源到传感器Si与Sj之间的时间延迟,v表示声音在空气中的传播速度,声源S到达各个传感器的距离分别为l1、l2、l3和l4。

图6 麦克风阵列原理图Fig.6 Schematic diagram of microphone array

根据以上条件可得

(4)

(5)

再将直角坐标系转化为球面坐标系可得

(6)

联立以上方程组化简可得

(7)

根据式(4)、式(5)、式(6)和式(7)即可求得声源到达各个传感器之间的时延值和其方位角与俯仰角,从而确定声源的方位[11-13]。

3.2 广义互相关时延估计算法

在麦克风阵列的声源定位系统中,采用基本互相关算法进行时延估计时,由于环境中噪声的影响导致所求得的互相关函数峰值难以和噪声等干扰形成的伪峰值明显区分开,进而影响到时延估计和方位估计的精度。为了抑制噪声提高信噪比[14],在基本互相关算法的基础上采用频域加权的方式对信号的互功率谱进行处理,锐化信号的峰值。将处理后的信号通过傅里叶逆变换到时域,进一步求解信号到达相邻2个麦克风的时延值,基于加权函数的广义互相关函数Rx1x2(τ)表达式为

(8)

其中,ψ(ω)为加权函数;Gx1x2(ω)为信号x1(t)和x2(t)的互功率谱;当互相关函数Rx1x2(τ)取得最大值时所对应的τ值即为所求的时延估计值。在不同的环境下选择不同的加权函数对整个系统有着不同的影响,通过选择合适的加权函数可以极大地增强系统抗环境干扰的能力,从而提高时延估计精度。传统的加权函数有ROTH加权函数、SCOT加权函数和PHAT加权函数[15],PHAT加权函数的表达式为

(9)

3.3 改进后的广义互相关时延估计算法

在低信噪比时,基于PHAT的加权函数在同等条件下相较于前两者有着更好的表现,但是随着信噪比的降低,其时延估计精度也随之下降,因此在实际应用中如何提高时延估计精度是当前基于麦克风阵列声源定位系统研究的重点。本文充分考虑在PHAT加权函数的基础上进一步优化,提出了一种改进的PHAT加权函数,通过给PHAT加权函数增加权重的方式提高其在低信噪比条件下抑制伪峰值的能力,降低噪声对时延估值的影响。将改进后的PHAT加权函数定义为PHAT-σ加权函数,其表达式为

(10)

加权因子σ的取值通过在不同信噪比条件下多次实验估计出最优值,根据经验选择合适的加权因子σ以降低PHAT加权函数在低信噪比下的时延估计误差和提升抗噪能力,从而达到达锐化信号峰值和提高时延估计准确性的目的。改进后的广义互相关函数表达式为

(11)

4 仿真与实验验证

采用2kHz的余弦信号模拟声源信号,在信噪比为-5dB的条件下采用两种不同加权函数的广义互相关算法进行时延估计,其结果如图7所示。通过比较两图可以发现,在低信噪比情况下直接使用PHAT加权函数计算的信号互功率谱伪峰值较为严重,极值不太明显;而采用改进后的PHAT-σ加权函数处理后的信号互功率谱伪峰值得到了明显的抑制,其抗噪性能更强。

图7 不同加权函数下的互功率谱Fig.7 Cross power spectrum under different weighting functions

通过图7可以发现,在信噪比较低的环境下,PHAT加权函数对噪声的抑制能力相对较弱,信号的伪峰值较明显,而改进的PHAT-σ加权函数表现更为良好,能起到很好地锐化信号峰值的作用。因此在信噪比为-5dB条件下,对同一声源S采用PHAT加权函数算法和PHAT-σ加权函数算法进行实验测试。将4路麦克风S1、S2、S3、S4放置成均匀线阵,相邻2路麦克风传感器的间距为0.07m,麦克风阵列的参考阵元S1与声源的方位角为120°,声源处于远场模型,设定声速为340m/s,信号到达相邻2路传感器之间的理论延迟应为0.1029ms,取10次实验结果进行误差分析,测试结果如表1所示。

根据表1可知,基于PHAT加权函数的时延估计相对误差为4.22%,角度估计相对误差为1.16%;基于PHAT-σ加权函数的时延估计相对误差为1.46%,角度估计误差为0.39%。综上,在低信噪比条件下,对比两种加权函数处理后的结果可知,经过改进后的加权函数算法抗噪性能得到了加强,并且时延估计误差和角度估计误差都有了不同程度的降低,在声源定位系统中能够更加有效地确定声源所在方位。

表1 采用两种不同算法进行时延估计的测试结果

5 结论与展望

本文设计的声源定位系统中,使用数字MEMS麦克风传感器采集声源信号,采用FPGA作为核心控制系统完成多通道声源信号的同步采集和数据传输,并且针对传统广义互相关算法的加权函数在信噪比较低的环境下时延估计误差较大的问题,提出了一种改进PHAT加权函数的方法,实验结果表明:

1)在相同的环境下采用改进后的PHAT-σ加权函数进行时延估计时,误差将进一步降低,且其抗噪能力更强。

2)本文提出的改进广义互相关加权函数算法未充分考虑室内回声对麦克风阵列接收到的信号的干扰,在麦克风阵列接收到的信号较弱时,加权函数可能会出现较大的偏差导致定位误差变大,因此在未来的研究中需要进一步加强这一方面的研究。

猜你喜欢

麦克风声源广义
虚拟声源定位的等效源近场声全息算法
Rn中的广义逆Bonnesen型不等式
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
从广义心肾不交论治慢性心力衰竭
基于GCC-nearest时延估计的室内声源定位
基于数字麦克风的WIFI语音发射机
麦克风的艺术
运用内积相关性结合迭代相减识别两点声源
有限群的广义交换度
麦克风