解码来自温度传感器的二进制信号

信息处理 信号检测
2022-01-25 20:20:54

我有来自温度传感器的以下信号(在 433.92 MHz 上广播,显然是 ASK)。

我无法终生提取温度数据。

我尝试以多种不同的方式(主要是通过查看脉冲宽度)读取这些位,然后在数据中搜索温度信息。

例如:

PWM信号

这对应于 21.0 的温度。

我试图在前 4 个大脉冲之后读取每个脉冲 - 给出 37 位:

1000111110010010110001100011111111000

然后我尝试只搜索 21 部分。所以我尝试搜索 21、61、71(以防设计师添加 40 或 50 度以避免负数)。我尝试搜索 2,然后将 1 位移 4。我尝试否定所有位。我尝试反向搜索。

这可能不是脉宽调制吗?这里可能没有37位吗?

1个回答

仅使用一个样本不可能从该字符串中提取正确的数据(正如 Laurent Duval 在评论中提到的那样)。这是引起我注意的事情:

标记

你在信号的开头和结尾有这四个块,它们是某种开始/结束标记,我想。你确定你抓住了整个标记吗?

1000111110010010110001100011111111000可以通过以下方式拆分:

1000
1111

100100101100011000111

1111
1000

所以1000and1111可能实际上是标记的一部分。

温度本身

您说信号对应于 21.0°,即精度为 0.1° 的数字。可能是被编码为整数 210。二进制中的 210 是11010010,你可以在其中找到这个字符串(反转):

100100101100011000111
  01001011

前缀10是十进制的 2,可以是编码温度的 4 位字数的 2 位指示符,但是这会很奇怪,因为温度是相反的,前缀不是……

请尝试以下方法:

  1. 在独立实验中多次测量相同的温度。每个实验的结果数据字符串是否相同?每个实验中的字符串部分是否相同?

  2. 测量仅相差 0.1° 的多个温度。数据串中是否有对应的模式?

  3. 您有传感器的数据表吗?