我通过窄带 40 kHz 发射器向窄带 40 kHz 接收器发送 6.6Vpp 方波。我想找到两者之间非常准确的距离(亚毫米)。
到目前为止,我的假设是,如果我可以在固定距离上获得非常一致的结果,那么我可以校准声速和偏移误差时间,以便在一堆不同的结果中获得一致的结果(并且是绝对的,而不仅仅是相对的)。
不幸的是,我尝试了 3 种不同的信号处理方法,但都没有产生我想要的完美结果。我以 500 kHz 采样。
阈值法:我发射10-20个周期,然后寻找接收到的波形通过给定的阈值,然后我把这个样本作为TOF。显然,如果有噪音,就会出现一些错误,所以这是可以理解的,为什么这不起作用。
BFSK 方法:我以 41 kHZ 传输 50 个周期,20 个周期线性过渡到 39 kHz,然后以 39 kHz 传输 50 个周期。我接收波形,并使用零检测算法,然后检测瞬时频率。当我检测到 40 kHz 的频率交叉时,我用它来确定 TOF。这是我最准确的方法。但是我遇到了一个奇怪的错误:有时我得到所有结果的精度都在 0.5 毫米以内(500 次试验),但有时我运行这段代码,我得到一堆错误,比如 50% 的错误大于 5毫米。
互相关法:我将先前接收到的信号存储在内存中,该信号是在已知距离处拍摄的,然后我将接收到的信号与此结果相关联。我的相关性仅在试验信号峰值的每一侧使用 4-5 个周期,以减少相关性的计算时间。
对用于超声测距的实时、稳健、亚毫米信号处理方法有什么建议吗?