GCC-PHAT算法
GCC-PHAT是一个计算AOA的算法。 这里的AOA是指信号入射到与阵列垂直的线的夹角。 画个图做个示意: 这里AB为两个microphone, 虚线为入射信号,这里计算AOA的前提是信号是平面波,即两个虚线是平行的。 那么AOA即为 θ \theta θ , 范围为[-90,90]. 与AB垂直时,角度为0. 这里AB的距离为L, τ \tau τ 为到达时间差,c为声音速度。 假设到达两个microphone的信号为: 用cross-correlation计算 τ \tau τ 计算AOA β \beta β 这里有一个问题,就是 当信噪比低时用cross-correlation直接计算得到的D不是太准 。那么有一种方法,就是可以用PSD去做一个weight,效果会好很多。 我们知道 信号相关与PSD是一个傅里叶变换对 ,那么先求PSD: 求PSD normalize PSD,再做傅里叶变换得到weight后的相关 3.求D 实践证明这种方式效果更好。需要注意的是,这里得到的只是AOA, 并不是对于平面上的旋转角和仰角。这个角的名字叫 broadside angle of arrival , 三个角中,知道两个才能求另外一个,详情可以看 这里 。 只有两个microphone只能求AOA,但是三个不共线的microphone就可以求其他的角度了。 对于任意一对麦克风k,j,有