本发明涉及一种三维声源定位方法,特别涉及一种基于压缩感知的三维声源定位方法。
背景技术:
基于压缩感知的声源定位方法,能够在不满足奈奎斯特采样定理的情况下对声源进行定位,而且能够获得超分辨率的定位结果。
文献“ningf,weij,qiul,etal.three-dimensionalacousticimagingwithplanarmicrophonearraysandcompressivesensing[j].journalofsoundandvibration,2016,380:112-128.”公开了一种基于压缩感知正交匹配追踪(orthogonalmatchingpursuit,omp)算法的三维声源定位方法。该方法能够基于麦克风阵列测量技术与压缩感知omp算法对三维区域内的声源进行定位。首先对所选三维声源区域进行网格划分,建立网格节点与麦克风阵列之间的测量矩阵,获得声源与麦克风阵列之间的三维窄带声源定位稀疏表达模型。进而通过omp算法迭代求解各网格节点的声源强度,达到声源定位的目的。虽然文献所述方法能够获得超分辨率的结果,但是当信噪比(signaltonoiseratio,snr)低至5db时,该方法不能对声源进行定位,即抗噪性能差。
综上所述,文献中采用压缩感知omp算法的三维声源定位方法抗噪性能差。
技术实现要素:
为了克服现有三维声源定位方法抗噪性能差的不足,本发明提供一种基于压缩感知的三维声源定位方法。该方法通过麦克风阵列获得声源信号的测量值,经过信号处理得到所需窄带频率点的测量数据。对选定的三维声源区域进行均匀的网格划分,将每一个网格节点作为潜在的声源位置。进而根据自由场格林函数的helmholtz方程建立网格节点与麦克风阵列之间的测量矩阵,获得麦克风阵列测量值与未知声源信号之间的三维窄带声源定位稀疏表达模型。通过对稀疏表达模型中的麦克风阵列测量值进行奇异值分解,获得变形后的声源定位稀疏表达模型。最后采用压缩感知omp算法对变形后的表达模型进行迭代求解,获得声源区域各网格节点的声源强度,对声源进行定位。由于采用了压缩感知omp算法,并通过对奇异值分解的使用,提高了声源定位方法的抗噪性能。
本发明解决其技术问题所采用的技术方案:一种基于压缩感知的三维声源定位方法,其特点是包括以下步骤:
步骤一、通过由m个麦克风传感器组成的麦克风阵列对三维空间的声源信号进行采集,获得时域的麦克风阵列测量数据。
步骤二、对所采集的麦克风阵列测量数据进行分块、加窗以及快速傅立叶变换处理,获得麦克风阵列在频域的测量数据。
步骤三、在每个麦克风传感器所对应的数据块内选择所需窄带频率点的测量数据y,维度为m×b,b为划分的数据块总数。
步骤四、建立三维窄带声源定位的稀疏表达模型,包括三维声源区域网格的划分和测量矩阵的建立。
对选定声源的三维空间区域进行网格划分。以每个网格节点作为潜在声源,构建未知声源信号x,维度为m×n,n为声源区域划分网格节点的数目。未知声源信号x由网格节点处的声源强度组成。
根据自由场格林函数的helmholtz方程建立网格节点与麦克风阵列之间的测量矩阵a,维度为m×n。公式如下:
式中,cmn为归一化因子,j为虚数单位,f为窄带频率,c为声速,dmn为第m个麦克风传感器与第n个网格节点间的距离。
三维窄带声源定位的稀疏表达模型即为:
y=ax+e,(2)
式中,e为麦克风阵列测量数据中包含的噪声项。
步骤五、对稀疏表达模型中的麦克风阵列测量值y进行奇异值分解处理,获得变形的三维声源定位稀疏表达模型。
对稀疏表达模型中的麦克风阵列频域测量值y进行奇异值分解,获得测量值y,未知声源信号x和噪声项e的信号子空间,
ysv=yvdk,xsv=xvdk,esv=evdk,(3)
dk=[ik0]t,(4)
式中,v为对测量值y奇异值分解后的酉矩阵,ik为k×k阶单位矩阵,0为k×(b-k)阶零矩阵,k为声源信号的稀疏度。
为便于后续压缩感知omp算法的使用,将已建立的表达模型变形为
式中,
步骤六、通过压缩感知omp算法对表达模型进行迭代求解,获得声源区域内各网格节点处的声源强度。omp算法的求解过程如下:
(a)初始化残差
(b)通过解决简单的优化问题寻找
(c)增加索引集合和所选原子的矩阵
φ0为一个空矩阵。
(d)使用最小二乘获得新的信号估计值
(e)计算获得新的近似并更新残差值
(f)如果新的残差值rt小于omp算法迭代的误差限ε,迭代计数值t加1,并返回到步骤(b)继续迭代求解。omp算法迭代的误差限ε通过求解麦克风阵列测量值中所含噪声的l2范数获得。
最后,将所求解的向量
本发明的有益效果是:该方法通过麦克风阵列获得声源信号的测量值,经过信号处理得到所需窄带频率点的测量数据。对选定的三维声源区域进行均匀的网格划分,将每一个网格节点作为潜在的声源位置。进而根据自由场格林函数的helmholtz方程建立网格节点与麦克风阵列之间的测量矩阵,获得麦克风阵列测量值与未知声源信号之间的三维窄带声源定位稀疏表达模型。通过对稀疏表达模型中的麦克风阵列测量值进行奇异值分解,获得变形后的声源定位稀疏表达模型。最后采用压缩感知omp算法对变形后的表达模型进行迭代求解,获得声源区域各网格节点的声源强度,对声源进行定位。由于采用了压缩感知omp算法,并通过对奇异值分解的使用,提高了声源定位方法的抗噪性能。经测试,当信噪比低至5db时,本发明方法仍然能够对声源进行定位。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明基于压缩感知的三维声源定位方法的流程图。
图2是本发明方法中三维声源定位的传播模型。
图3是图1中压缩感知正交匹配追踪算法的流程图。
图4是本发明方法在信噪比为5db下的定位结果。
图5是背景技术方法在信噪比为5db下的定位结果。
图中,方块表示仿真中所采用的真实声源,圆点表示通过声源定位方法所获得的重构声源。
具体实施方式
参照图1-5。本实施例采用位于s1(-0.2,0,0.43),s2(0.2,0,0.43)、s3(-0.2,0,0.74)和s4(-0.2,0,0.74)的四个单极子声源作为仿真中的声源信号。基于压缩感知的三维声源定位方法具体步骤如下:
步骤一、首先采用阵列口径为1m,包含60个麦克风传感器的阵列对仿真信号进行采集,获得每个麦克风的时域测量数据。
步骤二、对所获得的麦克风阵列测量数据进行分块、加窗以及快速傅里叶变换,获得麦克风阵列的频域测量数据。
在该过程中所分数据块的长度均为1024,对每个数据块加汉宁窗处理,并通过快速傅里叶变换得到麦克风阵列频域测量数据。为了探究所提出方法的抗噪性能,仿真中对麦克风阵列测量数据加入了高斯白噪声。选取窄带频率为5000hz,snr为5db。
步骤三、建立三维窄带声源定位稀疏表达模型,包括对三维声源区域的网格划分和测量矩阵的建立。
首先选定0.8m×0.8m×0.68m的三维声源区域,三维区域与阵列平面最小距离为0.4m。对所选声源区域进行网格划分,获得60×60×51个网格节点。然后根据自由场格林函数的helmholtz方程建立网格节点与麦克风阵列之间的测量矩阵a,其维度为60×183600。具体公式如下:
式中,cmn为归一化因子,j为虚数单位,f为窄带频率,c为声速,dmn为第m个麦克风传感器与第n个网格节点间的距离。
三维窄带声源定位的稀疏表达模型即为
y=ax+e,(2)
式中e为麦克风阵列测量数据中包含的噪声项。
步骤四、对稀疏表达模型中的麦克风阵列测量值y进行奇异值分解处理,获得变形的三维声源定位稀疏表达模型。
对稀疏表达模型中的麦克风阵列频域测量值y进行奇异值分解,获得测量值y,未知声源信号x和噪声项e的信号子空间,
ysv=yvdk,xsv=xvdk,esv=evdk,(3)
dk=[ik0]t,(4)
式中,v为对测量值y奇异值分解后的酉矩阵,ik为k×k阶单位矩阵,0为k×(b-k)阶零矩阵,k为声源信号的稀疏度。由于实际情况中,声源信号的稀疏度往往是未知的。研究中发现,稀疏度k的取值对声源定位的结果影响很小,因而本实施例选取k=1。
为便于后续压缩感知omp算法的使用,将已建立的表达模型变形为
式中
步骤五、采用压缩感知omp算法对变形后的表达模型进行迭代求解。omp算法的迭代终止条件选取误差限,误差限ε通过计算仿真中所加入高斯白噪声的能量而获得。具体步骤如下:
(a)初始化残差
(b)通过解决简单的优化问题寻找
(c)增加索引集合和所选原子的矩阵
φ0为一个空矩阵。
(d)使用最小二乘获得新的信号估计值
(e)计算获得新的近似并更新残差值
(f)如果新的残差值rt小于omp算法迭代的误差限ε,迭代计数值t加1,并返回到步骤(b)继续迭代求解。omp算法迭代的误差限ε通过求解麦克风阵列测量值中所含噪声的l2范数获得。
最后,将所求解的向量
从图4和图5可以发现,当信噪比等于5db时,背景技术方法对声源定位误差过大,本发明方法能够对每个声源进行定位,提高了抗噪性能。