正交传感器正弦信号到距离值

Quadrature sensor sinus signal to distance value

从一个传感器我有 4 个正交信号。两个信号是模拟的,两个是数字的。这些信号代表拾取传感器的位置,见图。信号是:

模拟信号相移了 90 度。数字信号由过零检测器产生。模拟信号的一个周期代表传感器移动 2 毫米。

当我进行数字信号转换时,我可以通过 ADC(10 位)捕获模拟信号的最小值和最大值。我还可以使用数字信号的相位关系来检测我们是在正向还是负向移动。我还可以通过检测分辨率为 1 毫米的数字信号的转换来轻松测量距离。

但是根据模拟信号的当前值,最好 algorithm/method 得到距离的小数部分是什么?我想通过组合 A 和 B 模拟信号以最大动态分辨率做到这一点。

图:
(来源:spectron.us

如果您的模拟信号大致是正弦曲线,那么您可以将它们视为相位角的正弦和余弦(一个完整的 2 毫米行程将是 2 * pi 弧度的相位)。在 C(和其他语言)中,您可以使用 atan2 函数将模拟信号转换为相角。在伪代码中,您将拥有:

fractional_distance = atan2(analog-A, analog-B) * 2 mm / 2 pi radians

如果您的信号实际上不是正弦信号,那么这仍然有效,它只会在您的分数距离中引入失真。