APP下载

基于GCC 算法的声源识别与三维空间实时定位

2023-10-24王铭邹捷源张国才林同尘刘俊杰洪丽敏李洁莹

物联网技术 2023年10期
关键词:麦克风声源时延

王铭 ,邹捷源,张国才,林同尘,刘俊杰,洪丽敏,李洁莹

(北京理工大学珠海学院 数理与土木工程学院,广东 珠海 519088)

0 引 言

声源定位技术具有非常大的潜在应用价值,随着科技的飞速发展,声源定位技术已应用于军事、工业、民用等多方面、全覆盖领域[1]。如在直升机声探测系统、探测航空器的噪声源、机器故障诊断、智能机器人听觉系统、安防系统、鸣笛抓拍系统、视频会议、户外搜救等诸多系统中的应用,有效利用了声源信号,实现对声源位置的实时追踪[2]。

在现实生活中,每年的自然灾害都会造成无数的人命伤亡,所以搜救时必须争分夺秒[3]。在地震、楼房坍塌、火灾、森林搜救等急需高效搜救的情况下,提高从开始搜救到完成搜救的效率是很有必要的。因此,需要一个能实时检测出受害者位置的声源定位程序。在该想法下,本文研究设计一种麦克风三维球面阵结构装置,采用广义互相关函数的时延估计算法(GCC-PHAT)[4],实现声源空间三维实时定位识别,以便搜寻被困于倒塌物下或被埋于瓦砾中的幸存者,快速锁定被困者位置,加速救援行动,在有限时间内拯救更多生命。

1 实验系统的设计与实现

1.1 整体架构

系统由三维球面阵麦克风阵列、数据采集模块、LabVIEW 系统组成,系统架构如图1 所示。由麦克风阵列收集到的6 路信号,经过NI-USB-6363 数据采集卡收集,将六通道输入信号输入到LabVIEW 系统上。软件部分基于LabVIEW 系统开发,实现了对声音的实时定位。

图1 声源定位系统整体架构

1.2 硬件系统主要功能模块

实验采集系统是选用NI-USB-6363 数据采集卡,可以高性能地进行NI 信号读写,并且有30 个模拟输入通道、6 路模拟输出[5],能够实现高级定时与触发,和对实时信号的收集。NI 数据采集卡通过数据线与上位机相连。本文采用6 通道的数据采集,设置20 000 个采样点数,44.1 kHz 采样频率进行同步采样。

本实验搭建球面阵声源定位装置,高50 cm,由六个麦克风组成球面阵[6],两两麦克风之间固定距离设置为13.9 cm,小巧轻便。实验室噪声信号为高斯白噪声,信噪比约为20 dB,声源为脉冲信号以及连续信号。声源定位装置实物图如图2 所示。其中,直流恒压源用于给数据采集卡提供15 V 的电压。Ni-USB-6363 数据采集卡用于采集麦克风球面阵收集到的声源信号数据并上传至PC 机(上位机)中做处理显示。

图2 声源定位装置实物图

1.3 软件系统主要功能模块

LabVIEW 是一款图形化编程语言,其自身还具有优异的性能。数据传输至上位机后,用LabVIEW 自带的语言进行数据预处理以及滤波降噪处理,并在前面板中进行声源定位的可视化,程序前面板如图3 所示。图中:左上角为二维平面的空间定位,箭头指向是平面声源的角度;左下角是6 个输入信号的波形,该波形接收信号灵敏但含有一定噪声;右上角为三维空间声源定位,以X轴指向为平面角度0°,Z轴下半面为俯仰角0°,绿色的点为空间声源点,可以清楚地对声源进行三维定位;右下角为调节阈值旋钮,与安静条件下相比,设置阈值可以让超过一定范围的声音信号被捕捉并保持下去,这样可以降低微小噪声所带来的干扰。

图3 LabVIEW 程序前面板

系统的软件采用LabVIEW 2018 编程,软件程序流程如图4 所示[7]。

图4 系统软件流程

2 声源定位系统的工作原理

2.1 信号预处理

通过NI-USB-6363 数据采集卡与LabVIEW 内置DAQ助手,获取到6 路麦克风传感器信号。该信号中除了所需的声源信号,还包含现实背景的各种高低频段的噪声。因此,还需要对所接收到的声源信号进行滤波。LabVIEW 程序内置的butterworth滤波模块可以通过参数调节有效保留所需频段的声源信号,去除高低频段的噪声[8-9]。振幅的平方对频率公式为:

式中:n为滤波器的阶数,阶数越大通带和阻带的近似性越好,过渡带也越陡;ωc为截止频率;ωp为通频带边缘频率。

2.2 基于广义互相关函数的时延估计算法

在声源定位算法中,基于到达时间差的定位技术(TDOA)在定位准确性上得到了良好的验证,被广泛应用,而准确的时延估计是该技术实现的前提。在众多时延估计算法中,广义互相关(GCC)算法因其较低的运算复杂度和易于实现的特点得到了广泛的应用[10]。

在广义互相关函数的时延估计算法流程中,首先通过接收信号x1(t)和x2(t)计算互功率谱,其次对互功率谱进行加权计算,最后进行傅里叶变换,得到广义的互相关函数。首先计算互功率谱,有:

式中:X1(·)和X2(·)为接收信号x1(t)和x2(t)的滤波函数;X2*(·)为X2(·)取共轭函数。

加权函数对时延估计精度有着不错的提高[11]。本文主要基于相位变化(PHAT)的加权函数进行研究。PHAT 函数的表达式为:

由式(3)可知,相位变换加权函数可以使信号间互功率谱更加平滑,从而锐化广义互相关函数的峰值。

最后,对加权后的互功率谱进行傅里叶变换,得到广义互相关函数,有:

由式(4)可知,通过广义互相关函数计算会使两个相关信号存在一个最大峰值,该点最大峰值处与采样数的差值即为相位差。

2.3 声源角度算法

在声源定位系统中,往往需要一个线性麦克风阵列才可以更好地得到声源传输到麦克风之间的角度及距离关系,而对于一个线性排列的麦克风阵列[12],声音到达不同麦克风的时间总会有先后顺序[13]。

图5 为球面阵麦克风阵列声源角度原理图。其中,利用线性麦克风阵列可以使得三维空间中声源与线性麦克风阵列接收信号时间存在一定关系,如下:

图5 球面阵麦克风阵列声源角度原理

式中:τ12为2个麦克风y1(k)、y2(k)接收同一声源s(k)的时延值;d为2 个麦克风y1(k)、y2(k)之间的距离;θ为入射角;c为声速,取340 m/s。

通过时延GCC 算法得到不同空间位置的麦克风时差τ12,从而得到声音波束相对于2 个麦克风的角度θ。通过以上算法可基本实现声源定位功能。

根据以上原理,通过编写程序实现角度转换算法[8],角度转换算法如图6 所示。

图6 编写程序实现角度转换算法

本系统采用频率为44.1 kHz,采集点数为2×104,利用广义互相关算法得出2 个麦克风传感器之间GCC 最大峰值所在点数。根据定义,用采样点数减去GCC 最大峰值所在点数,即可得到2 个麦克风对声音接收的相位差值,通过频率换算获得单位时间,将其相乘得到的就是2 个麦克风的时间差。麦克风到两个点距离的差值如下:

式中:x为相对接收距离;t为2 个麦克风接收到同一信号的时间差。利用x相对接收距离再除以2 个麦克风之间的直线距离,得到余弦角度θ的数值,进行反余弦计算得到θ,在LabVIEW 系统中此时得到的为弧度制,最后进行角度制转换,得到2 个麦克风关于声源的平面角度。

2.4 实验测试结果与分析

本文着重测试该模型对连续信号的识别作用,所以选用在安静的环境下进行测试,这样可以有效地避免噪声对测试结果的影响并测试其性能,以手机播放的音乐作为声源,在测试范围内不断移动,涵盖方位角30°~330°,一共11 个数据点,每个声源位置测试10 次,得出的数据取平均值。一共获取110 组数据测量点,并记录声源角度数据。

通过实时的声音采集对其进行误差分析。图7 为系统连续信号误差分析图,从中可以直观地看出连续信号的一个误差范围。经过分析,该程序能较好地识别出声音的实时定位,将得到的110 组数据进行拟合,可以得到拟合曲线范围为[1.7,2],并且P值为0.025 21<0.05。一般可以认为P≤0.05时(一般选择这个显著水平),该数据得出的结果不存在偶然性,该程序的结果可靠。误差偏移值控制在2°左右,产生该误差的原因有:麦克风硬件及系统性能的限制,噪声信号无法最大化去除连续声音信号误差;除此之外,还可能是系统在高频率响应下无法及时分析,返回正确的角度值。

图7 连续信号误差分析

3 结 语

本文基于GCC-PHAT 算法、LabVIEW 软件平台开发了一套六通道球面阵列声源定位系统,详细介绍了该系统的各硬件构成、软件程序模块及实验操作流程。本文对连续信号方位角进行多点多次测量,对所得实验数据进行分析,归纳总结了声源定位精度的变化趋势,并分析了主要误差来源。实验结果表明该系统有良好的连续信号声源定位效果。本文的设计思路及程序算法实现可为声源定位仪器开发人员提供一定的参考。

猜你喜欢

麦克风声源时延
虚拟声源定位的等效源近场声全息算法
Binaural Rendering based on Linear Differential Microphone Array and Ambisonic Reproduction
基于GCC-nearest时延估计的室内声源定位
基于数字麦克风的WIFI语音发射机
基于改进二次相关算法的TDOA时延估计
运用内积相关性结合迭代相减识别两点声源
FRFT在水声信道时延频移联合估计中的应用
基于分段CEEMD降噪的时延估计研究
力-声互易在水下声源强度测量中的应用