当前位置:首页 > 公众号精选 > TsinghuaJoking
[导读]你可以使用广义互相关( Generialized Cross-Correlation[1] )来估计一个信号达到两个传感器的时间延迟。比如应用麦克风阵列来确定声源方位的应用背景。问题可以用以下模型来描述: 其中 是声音信号, 是两个声音传感器检测噪声,D就是声音信号在两个麦克风

你可以使用广义互相关( Generialized Cross-Correlation[1] )来估计一个信号达到两个传感器的时间延迟。比如应用麦克风阵列来确定声源方位的应用背景。问题可以用以下模型来描述:

其中 是声音信号, 是两个声音传感器检测噪声,D就是声音信号在两个麦克风传感器上的到达时间差(TDOA),或称为时间延迟(Time Lag),表示以一个传感器为基准,信号到达另一个传感器的延迟。

通常假设声音信号 是广义稳定随机过程且三者之间不相关。可以使用两个传感器获得信号之间的互相关最大化来得到该时间延迟。

在实际应用中, 通常都是采集到的有限长 的信号,因此 只要在时间 内近似保持平稳和不相关即可。两个信号的互相关可以通过下面公式进行估计:


通过两个相距 的传感器上所得到的信号到达时间差 (TDOA),可以计算出声音的方向:

▲ 声源方向与两个相距d的传感器之间的TDOA之间的关系

公式中的 是声音在空气中传播的速度。


如果声音信号 的频谱很宽,那么它的自相关信号就会呈现非常窄带的尖峰,使用前面估算TDOA的公式就可以得到非常好的结果。比如Chirp信号就是一个宽带声音信号。下面是 Chirp 信号就是应用在智能车信标组的导航声音信号,它的频率范围是250Hz~2000Hz。下面是叠加有五倍幅值噪声的两个版本。

▲ Chirp信号以及两个叠加有5倍幅值随机噪声的信号

下面给出了是两个带有很大噪声的Chirp信号互相关之后的结果。 得益于Chirp信号的宽带,尽快两个信号带有的噪声非常大,但相关后的峰值还是依然非常明显。
▲ 将两个叠加有随机噪声的Chirp信号互相关结果。上:全部的互相关;下:将中心峰值展开的结果

如果信号不是宽带信号,则使用普通的互相关所检测到的峰值就会不明显,而且受到噪声影响很大。


比如下面是一个带宽只有100Hz(1900~2000Hz)的Chirp信号。叠加有幅度只有0.25的随机噪声。

▲ 频带宽度只有1900~2000Hz的Chirp信号及其带有噪声的版本

下面是计算得到的信号的互相关波形。展开之后可以看到它的峰值就不是非常明显,而且在峰值附近受到噪声的影响会出现左右的偏移。

▲ 使用普通互相关得到的结果

使用广义互相关(GCC:Generallized  Cross-Correlation)可以提高检测的精度。


下面就是使用GCC-PHAT重新计算上面窄带Chirp信号的互相关,可以看到所得到的相关峰值就大大改善了,从而提高了计算的精度。

▲ 使用广义互相关相位变换(GCC-PHAT)计算得到的互相关结果

参考资料

[1]

Generialized Cross-Correlation: https://ww2.mathworks.cn/help/phased/ref/gccphat.html





公众号留言

大大您好,我是一名信标组的参赛选手。声音定位我已经实现了一个多月了,经过这一个多月的优化改进,取得了不错的效果。


我采用的是四元十字麦克风阵列,10k采样率,2048点fft,时延估计算法是GCC-PHAT。


经过测试1.5米左右,接近0、90、180、270度时角度误差在5度左右,其他位置误差在1-2度左右。随着距离增加误差有所增加,不过都在可以接受的范围内。


音乐识别的效果


不得不吐槽一下,chip声音真的是太洗脑了,听几分钟整个脑袋都在嗡嗡响(强烈建议信标灯增加一个放音乐的功能)。


自从开始在家里做信标感觉家里人看我的眼色都变了。看学校的安排这个学期应该是不会开学的了,看来是要在家里调车了,希望麦克纳姆轮和信标的声音不会吵到邻居,到时候提着菜刀上来找我就不好了。


5米左右的识别效果

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭