超声信号处理方法

信息处理 互相关 即时的 超声波 模数
2022-02-23 12:02:19

我通过窄带 40 kHz 发射器向窄带 40 kHz 接收器发送 6.6Vpp 方波。我想找到两者之间非常准确的距离(亚毫米)。

到目前为止,我的假设是,如果我可以在固定距离上获得非常一致的结果,那么我可以校准声速和偏移误差时间,以便在一堆不同的结果中获得一致的结果(并且是绝对的,而不仅仅是相对的)。

不幸的是,我尝试了 3 种不同的信号处理方法,但都没有产生我想要的完美结果。我以 500 kHz 采样。

  1. 阈值法:我发射10-20个周期,然后寻找接收到的波形通过给定的阈值,然后我把这个样本作为TOF。显然,如果有噪音,就会出现一些错误,所以这是可以理解的,为什么这不起作用。

  2. BFSK 方法:我以 41 kHZ 传输 50 个周期,20 个周期线性过渡到 39 kHz,然后以 39 kHz 传输 50 个周期。我接收波形,并使用零检测算法,然后检测瞬时频率。当我检测到 40 kHz 的频率交叉时,我用它来确定 TOF。这是我最准确的方法。但是我遇到了一个奇怪的错误:有时我得到所有结果的精度都在 0.5 毫米以内(500 次试验),但有时我运行这段代码,我得到一堆错误,比如 50% 的错误大于 5毫米。

  3. 互相关法:我将先前接收到的信号存储在内存中,该信号是在已知距离处拍摄的,然后我将接收到的信号与此结果相关联。我的相关性仅在试验信号峰值的每一侧使用 4-5 个周期,以减少相关性的计算时间。

对用于超声测距的实时、稳健、亚毫米信号处理方法有什么建议吗?

1个回答

互相关应该有效。我认为问题在于您使用的波形。方波具有不良的自相关特性。如果它是一个周期性方波,它将有多个峰值。听起来您只是使用更好的单个脉冲,但它仍然会逐渐滚降,这是一个问题。取而代之的是,使用Barker 代码,它会给你一个很好的尖峰和非常低的侧峰。我会 BPSK 调制巴克代码,然后将您收到的内容与“理想”信号交叉关联。