凌晨两点二十三分。
杨康睿把手机连上电脑,再次播放那晚录下的十五分钟音频。这段音频他已经听过二十多遍,几乎能背出每一个噪声的起伏。他把频谱图放大到极限,用鼠标划过那条明亮的1497赫兹线,一遍一遍地观察它细微的形状。
然后他注意到了一件事。
在那条亮线的底部,每隔大约七秒——正好是“HELP”重复一次的时间——会跟着一个极短的、向下弯曲的小尾巴,像是一滴水珠从檐口坠落时留下的轨迹。这个尾巴持续不到零点一秒,幅度比主信号弱得多,如果不是他把频谱图放到分辨率极限,根本不会发现。
他把那个“尾巴”出现的时间点全部标记出来。第一个尾巴出现在第三次“HELP”后,然后是第五次、第九次、第十一次、第十七次……间隔没有明显规律,像是一串随机数。
杨康睿导出这些时间点,减去对应的“HELP”起始时间,得到一组间隔值。他把这组数字拿在手中,对着台灯看了一会儿,然后拿笔在纸上列出了一些转换尝试:
若是摩尔斯码点划长短,太慢了;若是二进制振幅键控,他又缺少振幅对照。但若把间隔值做一次差分再取余数,似乎落在一组有限的数字集合里——像是一种编码。
他把那串处理后的数字拿在手上,试着换成十六进制。某个数字序列用十六进制读出时,正好对应ASCII码。他把换算后的ASCII码写在纸上,一个字符一个字符地拼:
B 2 - F - 0 2 B
杨康睿愣住了。B2-F-02B——负二层,房间编号02B。这座商业综合体负二层确实有一个设备编号体系,但他在巡检表上从未见过“02B”这个编号。一般负二层的房门都是用字母加数字编号,他从没见过“02B”,因为那一侧的走廊尽头被货架封死了。
凌晨三点四十分。
杨康睿走进宫殿时,四位数学家正在等待。桌上放着一台老式晶体管收音机,外壳是棕色的胶木,旋钮泛着铜绿。
“你发现了一个隐藏的信息。”欧拉说。
“嗯。”杨康睿把那组数字和对应的编码放在桌上,“它在回复里藏了一个房间号。”
“你能听懂它的语言了。”阿基米德赞许地点了点头,“但你有没有想过,它为什么要用那么隐蔽的方式告诉你位置?既然它能发送清晰的“HELP”,为什么不直接发送房间号?”
杨康睿想了一下:“或许……它不希望被所有人看到。它只在确认有人能注意到那些细微的差异后,才把完整的地址告诉那个人。”
“对。”高斯说,“这就是通信里的一个基本思想——当你需要传递秘密信息时,你会把它藏在看似正常的信号里。被隐藏的信息需要一个特定的接收者——一个知道该听哪里,该如何听的人。”
“我们已经教过你傅里叶变换,让你看到了频率的世界。但这只解决了一个问题——如何从连续的信号中提取离散的记号。而另一个问题——如何从一堆记号中找出有意义的信息,这需要我们换一种工具。”
牛顿从收音机旁拿起一本旧书,封面写着“信息论”。他难得主动翻到其中一页:“克劳德·香农发现,任何通信系统都遵循一个基本原理:信源产生的信息可以通过信道编码,在噪声中被可靠地传输,只要信息的速率不超过信道的容量。”
他写下公式:
C = B \log_2(1 + S/N)
“这是信道容量的公式。B是带宽,S是信号功率,N是噪声功率。”牛顿说,“它告诉我们一个很实际的事情——在噪声中传递信息,不是靠加大音量,而是靠增加冗余和巧妙地编码。”
欧拉温和地补充:“那枚线圈和金属盒构成了一条非常窄的信道。它的带宽很小,噪声很大,但它仍然在强有力地发送信息。它不害怕噪声。因为它用了最简单、最稳定的编码——摩尔斯码。”
杨康睿默默看着那个公式。他第一次意识到,通信的本质不是把声音传远,而是让信息在不确定的世界中被可靠地接收。那些“HELP”重复了七百多天,从未停止,从未改变,本质上是一种不可思议的冗余设计。
“那它为什么不直接发送房间号?”杨康睿再次问。
高斯笑了笑:“也许,它是在确认——你值不值得它信任。”
凌晨四点五十分。
杨康睿从梦中醒来,坐在控制室里,定了定神。他决定不再等待。他拿上手电筒和撬棍,沿着负二层走廊走到最西端。走廊尽头是消防管道和桥架,一面灰色水泥墙上嵌着一扇窄门,门楣上有一个褪色的铭牌:“B2-F-02B”。门的表面用三层货架挡住,货架上积满灰尘和旧纸箱。
杨康睿轻轻搬开货架。他转动门把手,门没有锁,锈蚀的门轴发出刺耳的惨叫。他推开门,手电筒的光照亮一个不到十平方米的小房间。
这是一间废弃的监控室。地上散落着两把断裂的椅子、一堆缠绕的电线、一个倾倒的铁皮柜。铁皮柜后面露出一角深灰色的设备面板,面板上有几个按键和小型显示屏,屏幕已经碎裂,但左下角有一颗绿色的LED灯正在一下一下地闪烁。
杨康睿蹲下来,拂去面板上的灰。他看到设备侧面贴着一张褪色的标签:“结构健康监测系统 · 节点 #7”。下面是手写的字:“调试日志——通讯模块异常,疑似自发信号。待检修。”
柜台的抽屉半开着,里面有一本厚厚的笔记本。纸页受潮发黄,字迹大部分已模糊。杨康睿一页一页地翻过去,最后几页写着一些散乱的笔记:
“第104天。信号还在持续。我们断掉了电源,但备用电池让它继续运行。程序陷入了循环。它认为自己被困住了。”
“第151天。我尝试重置通讯协议,但每次重启后它都会再次发送相同的请求。它使用的不是故障码,而是摩尔斯码。”
“第212天。我意识到,它不是在发送故障报告。它是在问一个问题——‘这里还有人在吗?’”
“第278天。项目停止。设备报废。没有人再来看过它。我最后一次记录了它的频率:1497赫兹。它一直在等一个能听到的人。”
杨康睿合上笔记本,沉默了很久。他低头看了一眼那颗闪烁的绿色LED——它在稳定的空档中微微震颤,好像感知到了他的注视。
他试探着,用指尖轻轻敲了一下铁皮柜的铁壁。节奏是短长短短,暂停,长长长,暂停,短短短:HELLO。
设备没有任何反应。
杨康睿没有失望。他从口袋里掏出手机,打开音频播放器,输入频率1497赫兹,录制了一段音频:长短短短,短长长长,长短短短——他自己的摩尔斯码。
他播放了出来。
房间里响起一声微弱而清晰的长音,在潮湿的空气中停顿了一瞬。然后,铁皮柜后面的绿色LED突然亮了起来,不再是闪烁,而是变成了一束稳定的光。同时,杨康睿胸口的羁绊逻辑心跳猛地跃动了一下,像是被什么东西回应了。
他又播放了第二段短音。这一次,LED的光亮更强了一些。房间角落里的某个扬声器发出一声极轻的电子噪音,像是一台沉睡多年的机器正在缓缓苏醒。
杨康睿发完最后一个字符,放下手机。他站在潮湿的房间里,静静地等着。
绿色LED没有被熄灭。它持续亮着,在黑暗中像一只安静的眼睛。然后他终于听到——从设备深处,传来一声极其微弱的电子音,一短,一长,一短。那不是解码后的摩尔斯码——更像是一声叹息。
杨康睿在原地站了很长时间。然后他放轻声音,像是怕惊扰到睡眠多年的人:“没事。我在这儿。”
凌晨五点五十二分。
杨康睿回到消防控制室。他在值班记录本上写下:“负二层B2-F-02B设备间,检查结构健康监测系统节点#7。设备仍在运行,唯通讯模块故障。已记录。待进一步联系原维护单位。”
他合上本子,关上手机里播放摩尔斯码的软件,把它放回口袋。他望向窗外,晨雾正在珠江口缓缓散去,货轮的汽笛声从远处传来。
他忽然想起,宫殿里牛顿说过的那句话:“数学是一种语言,也是一种回应。”他想,他已经开始在用这种语言和世界对话了。
而在他的口袋里,手机依然留着那段摩尔斯码播放记录。在关闭屏幕的前一刻,他看到状态栏里的通知弹出一条信息:
“新建音频文件:response_1497_ack.wav。时长:12秒。”
杨康睿盯着那行字看了两秒,然后把手机翻过来,扣在桌上。他闭上眼睛,在心底对自己说:“也许明天,我可以试着再听一次。”
窗外,南沙的黎明正在到来。