瑞利极限与远场判据
之前我们提到过判断声场模型的判据:
当声源与阵列的绝对距离大于这个值时即可认为是远场模型,此时不同麦克风接收信号的幅度差异较小,因此把不同麦克风采集的语音信号的幅值认为都是一样的,只需对各麦克风接收信号的相位差异进行处理即可。声波视为平面波。
并且从公式中我们可以得知波长越小(频率越高),这个判据就会越远,即我们需要更远的距离才能将当前频率下的声场视作远场处理,因此若想使用更简单的远场模型,则要求我们的频段选择偏小
但是这又带来了一个问题,即瑞利极限带来的空间分辨率问题。
瑞利极限最先在光学中提出,在声学成像中,我们可以理解为当两个点源小于这个距离时,系统则无法分辨他们的准确位置,在我个人的使用中,会出现两个声源在中点合成为一个源峰的现象(主要是DAS和SPR-phat)。
也就是说,当阵列尺寸不变时,我们如果想获得较高的空间分辨率,则要求波长偏小,也就是频段选择偏高,这与我们在远场判据中的要求是冲突的
将上两式联立我们可以得到:
也就是说阵列分辨率越高,则远场要求更远
因此,在实际成像中,我们应该优先满足高分辨率,则频段选择应该略高一些;即使采集距离较近,也不该使用较低频段强行拉低远场判据,因为这必然会导致分辨率急剧下降,此时就算可以用远场模型,也是没意义的
综上,若想获得质量较高的成像,在工程中首选是提高孔径D与取到合适的频段
主瓣宽度问题
刚刚我们提到,当空间分辨率不足时,也就是波长较长,频率较低时,会出现声源相互合成的现象(或者其他无法准确显示声源位置的现象)。其中很大一部分原因就是声源的主瓣宽度与空间分辨率成强正比关系,也就是说合成的峰值其实就是两个声源的主瓣叠加后超过了各自的主瓣中心强度
也就是说,在不改变孔径的条件下,频率越低,主瓣越宽。当然,主瓣宽度还与孔径大小、阵列数量和使用的定位算法有关,这一节我们主要就讲频率的问题
其实很好理解,在各类利用相位差的算法中(SRP-PHAT,DAS),我们在频域对相位的表达是:
也就是说,f越小,相位差越不明显,最终导致功率图峰值附近都很平滑,变化很慢,就会呈现出宽主瓣的现象
MUSIC为什么可以突破瑞利极限
其实基于上一节主瓣宽度的分析,再结合music的原理,就很好理解了。对于DAS,其定位图像是利用的波束功率,因此非常受限于波长和孔径;而对于SRP-PHAT,由于其舍弃了幅值,相比于DAS会稍微好一点,但是其本质还是基于相位差的互相关功率,也会被上述的主瓣问题影响。
而对于MUSIC,其是直接利用的导向矢量和噪声子空间的正交关系,与相位差无关,因此其空间分辨率理论上可以自己决定其扫描步长,而不是受限于瑞利极限,从而实现超分辨率成像
虽然但是,实际还是会与频率有影响,因为导向矢量中也包含了相位信息,但是没有去专门计算差值了;但实际中其分辨率还是会达到瑞利极限的数倍。
关于TDOA,导向矢量和波束权重的定义习惯
TDOA
本博客中使用的TODA均为下述函数
1 | def get_tdoa(self, phi, theta): |
其中,a代表了从0点指向声源的方向(正负问题的核心,这点ai都容易搞错,需要注意),但实际信号是从声源指向阵列,因此这里得到的tdoa,正值则代表了信号提前于参考点到达,因此,为了和后续标准公式中的τ接轨,该函数最终应返回负值,即:
τ为正代表信号晚到
导向矢量
再说完了上述tdoa的定义后,我们来说导向矢量。现在大部分的导向矢量都定义为:
而这里的τ则是代表信号晚到了多少(即晚到信号τ为正),现在大部分文献都是用的这种格式(虽然本人觉得tdoa就带值然后导向矢量不带负号更合理),因此本博客中所有导向矢量也采用这种形式
波束权重
最阴的来了,现在对于波束形成,最常见的公式是:
我其实一直就在想W的这个共轭转置是何意味,按照我的理解来说W就应该直接代表了波束形成的最终权重。但现在大部分的定义就是W形式与导向矢量相同,即
因此对于DAS来说,若要对齐相位则需要对W取共轭来抵消导向矢量中的相位,这真的太反人类了,也就是说在代码里W和导向矢量a甚至是相同的值。而在各DOA,波束形成算法中,使用的大都也都是上述的导向矢量和权重格式,即默认:
导向矢量指数默认带负号
W^H才代表波束形成最终权重
同时还需要注意的就是,对于协方差矩阵也要配套为X乘X^H,千万不要写反了