tg

· Tim G

原来,“噪声” 里藏着数据

用 Signal Lab 探索 SAME 编码:紧急警报里的报头藏着什么信息?

ProjectsLearning

On this page

最开始,我认为紧急警报开头的那三段声音只是噪声,吸引人的注意。后来才发现,里面竟然包含很多信息。

这一下就有意思了起来:在 “开始说话” 前,接收设备就可能已经知道发生了哪类事件、涉及哪些区域,以及消息的有效时长。我想探究这个过程到底如何实现,于是把 SAME 学习功能做进了 Signal Lab。

一段神秘的报头

SAME 的全称是 Specific Area Message Encoding,用于 NOAA 气象广播和美国的紧急警报系统 EAS。开头的短促信号传输的是供机器读取的报头,语音播报则是消息的另一个部分。NOAA 的说明介绍了接收设备如何利用这些字段筛选与自己有关的警报。

这里的 “三段” 指重复发送三次。每段信号内部用两种频率传递数据:1,562.5 Hz 表示 0,约 2,083.3 Hz 表示 1,速率约为每秒 520.83 位。后面那段较长的提示音是另一回事。EAS 协议分别规定了它们的格式。

解码之后,我们会发现报头其实是一行文字。下面用一个虚构的洛杉矶县每周测试消息做例子。可以试着更改一些数据,再看看里面的含义。

读懂这段信号

ZCZC-EAS-RWT-006037+0015-3021800-SIGLAB -

无需脚本,也能阅读报头、字段说明和正文。

开始标记
ZCZC 标记报头的开始。同步用的前导码位于它之前,这里没有显示。
发起方
EAS 表示发起方属于 EAS 参与机构。这是类别,不是某个电台的名称。
事件
三个字母的事件码说明消息类型,并不包含语音播报的正文。 RWT = Required Weekly Test(规定的每周测试)。
区域
PSSCCC 依次表示分区、州和县或同等区域。这里的示例均以 0 表示全部或未指定的部分。 0 · 06 · 037 = 加利福尼亚州洛杉矶县。
有效时长
+ 后面的四位数字采用 HHMM 格式,表示消息的有效时长。 +0015 = 0 小时 15 分钟。
发布时间
3021800 表示一年中的第 302 天、UTC 18:00。这个字段本身不含年份。
发送方
SIGLAB 后补两个空格,组成八字符的虚构发送方标识,仅用于本例。

这里演示 Signal Lab 对完整报头的比较方式。副本一致不能证明发送方的身份,实际接收设备的接受与恢复规则也可能不同。

一些值得细看的地方

地理区域码就很有意思。006037 可以拆成 0 · 06 · 037,分别对应分区、加利福尼亚州和洛杉矶县。它不是邮政编码。第一位可以选择由当地定义的县内分区,随便改一个数字,并不代表就选中了一个实际有效的区域。NOAA 的分区说明解释了这一点。

时间字段也很紧凑:3021800 表示一年中的第 302 天、UTC 18:00,但它本身不包含年份。发送方标识有固定长度,所以本例中 SIGLAB 后面的两个空格也有作用。在这些可读字符之前,还有十六字节的前导码帮助接收端同步。NOAA 存档的技术规范记录了字节格式和时序。

我在 Signal Lab 里做了什么

在 Signal Lab 里,SAME 与音频调制解调器和摩尔斯电码工具放在一起。我把编码、解码和相关说明集中在一个地方,方便改动参数,再看看信号发生了什么变化。SAME 是这个声音与数据实验的一部分。

在 SAME 模式中,我可以修改报头字段、查找地理区域码、生成对应的波形,再通过 Test in decoder(在解码器中测试)直接送入解码器。这个内部测试是无声的:它处理生成的采样数据,不经过扬声器和麦克风。

接收端还会追踪重复发送的报头。其中有个容易忽略的实现细节:解码器可能通过几个不同的时序候选检测到同一次物理发送。如果把每次检测都算作一次新发送,一段信号就可能被误计成多份副本。Signal Lab 根据这些检测在音频中的位置,避免重复计数。

目前它比较的是完整、已经解析出来的报头。三次一致,才满足应用里的比较条件;少收到是不完整,不同则标记为冲突。它不会用逐位多数表决来重建损坏的报头,而且即使副本一致也不能证明发送方的身份。上面的实验演示的是这个比较过程,而不是实际警报设备的全部处理规则。

从一段声音,到可以解码的数据

这就是我想分享的小发现:原本被我当作噪声的声音,里面有可以拆开研究的结构。字符、时长和反复播放,各有具体作用。把它们做成一个小工具,也让我能顺着信息走一遍:从数据到波形,再从波形读回数据。

可以在 Signal Lab → Learn(学习)→ EAS / SAME 阅读带注释的格式说明,再打开项目中的 Encoder(编码器)→ EAS / SAME,试试完整工具。

Signal Lab 是学习项目,不是经过认证的警报设备。本文的实验不播放声音。美国对 EAS 编码和提示音的传输有限制,也包括录音和模拟信号;标注“测试”并不等于获得授权。考虑播放或分发之前,请先阅读 47 CFR § 11.45。

© Tim G · CC BY-NC-ND 4.0