反过来,正过去

▲ Baby Tapir

▲ Baby Tapir

有参加智能车竞赛的同学提议,信标组发送的声音导航信号不要中间的间隔,这样可以使得声音测量速度提高一倍。这的确是一个很好的想法。

今天收到北京科技大学佟超发送过来的合成Chirp定位信号。他巧妙的将Chirp信号反褶过来填充在原来定义的0.2048空闲区间,这样听起来就有意思了。

下面是连续正反播放的Chirp信号波形。
▲ 正反Chirp声音

▲ 正反Chirp声音

使用python中numpy的spectrum绘制的信号的时频联合分布图,可也称清楚看到信号的频率在上下波动。
▲ 信号的时频分布

▲ 信号的时频分布

根据同学们的建议,将Chirp信号连续起来的确可以提高导航信号发送的速率,使得信标比赛的车模运行更加平顺。

由于导航声音连续,所以在接受信号的时候,可以不用管声音的起始位置,只要能够接收到0.2048秒,就基本上可以保证一帧的数据。但是使用上面左右翻转拼接的Chirp信号,如果仅仅取0.2048秒的数据,那么随着不同位置,信号的波形还是有很大的区别的。如下面动图所示。

▲ 在不同起始位置所取得0.2048秒信号波形

▲ 在不同起始位置所取得0.2048秒信号波形

有的时候,数据高频比较多,有的时候信号中的低频比较多。这就是的该信号用于定位的时候,效果不一样。

下面分别将不同起始位一帧0.2048秒信号的自相关的波形绘制如下动图:

▲ 在不同起始位置所取得信号的自相关信号

▲ 在不同起始位置所取得信号的自相关信号

使用自相关来确定声音的延时,为了获得更加精确地数值,需要自相关的峰值比起它周围的信号要高很多才行。下面显示了不同起始位置信号自相关核心位置波形变化。可以看到随着选取信号起始点不同,自相关的峰值与周围信号的大小比例还是变化很大的。

▲ 在不同起始位置所取得信号自相关信号中心峰值变化

▲ 在不同起始位置所取得信号自相关信号中心峰值变化

如果不使用反褶Chirp信号去填补原来空闲的信号,而是直接将Chirp信号,不经过反褶,直接重复填充。这样在0.2048秒内的波形,无论起始点是哪个时刻,它所包含的高频、低频波形都是相同的,只是位置不同。但这不影响信号的自相关的结果。

▲ 重复Chirp信号在不同起始位置的信号波形

▲ 重复Chirp信号在不同起始位置的信号波形

下面给出了不同起始位置,重复Chirp信号自相关的波形,可以看到信号的自相关变化不大。
▲ 重复Chirp信号在不同起始位置的自相关波形

▲ 重复Chirp信号在不同起始位置的自相关波形

放大自相关核心波形,可以看到它的峰值基本上保持不变。
▲ 重复Chirp信号在不同起始位置的自相关中心位置波形

▲ 重复Chirp信号在不同起始位置的自相关中心位置波形

如果还是按照以前的有间断的Chirp信号,那么随着采集的起始位置不同,信号的自行关会发生很大的变化。这就是的位置判断变得不太可靠。

▲ 断续情况下,取0.2048秒数据进行自相关信号的变化

▲ 断续情况下,取0.2048秒数据进行自相关信号的变化

因此,为了使得信号采集的起始位置不影响自相关信号波形,进而使得测量声音延时变的可靠,那么只要保证采集的时间为0.4096,也就是连续采集两帧的数据即可。

下面显示了三种Chirp信号波形(断续波形、重复波形、正反波形)下,连续采集0.4096秒的数据自行关波形。可以看到自相关信号的波形基本上保持一致。

▲ 断续情况下,取0.4096秒数据进行自相关信号的变化

▲ 断续情况下,取0.4096秒数据进行自相关信号的变化

▲ 重复情况下,取0.4096秒数据进行自相关信号的变化

▲ 重复情况下,取0.4096秒数据进行自相关信号的变化

▲ 反褶情况下,取0.4096秒数据进行自相关信号的变化

▲ 反褶情况下,取0.4096秒数据进行自相关信号的变化

下面是将重复Chirp信号与反褶Chirp信号在不同起始位置下自相关核心波形的对比。可以看到他们基本上保持一致。
▲ 取0.4096秒数据后的相关信号波形

▲ 取0.4096秒数据后的相关信号波形

采集连续两帧的声音数据不仅可以保证自相关信号特性不变,同时也提高自相关信号的信噪比。但这也将前面所提到测量数据更新速率有降一倍。

因此,为了提高测量速率,除了使用重复Chirp信号之外,还可通过使用先进先出的数据队列(保存0.4096秒的数据)来存储采集数据,这样就可以在任意时间点,通过相关运算来确定声音信号的延迟了。

原创文章 466 获赞 556 访问量 15万+

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/105798447