摩尔斯电码的间隔规范

工具相关 ·

把「HELLO」转成摩尔斯电码,得到的是 .... . .-.. .-.. ---。中间那些空格从哪来的?为什么不能写成 ......-...-..---?答案在于摩尔斯电码不只是一组符号,它还包含一套关于时间间隔的规范。间隔错了,接收方就无法正确还原内容。

三种间隔

真实的电报有严格的时间规范,所有间隔都以一个点的时长为基本单位。

元素时长
点1 单位
划3 单位
同一字符内符号之间1 单位
字符与字符之间3 单位
单词与单词之间7 单位

可以看到,这里的区别是时间长度,不是符号本身。发送时,点持续 1 个单位时间,划持续 3 个单位时间,然后按不同的间隔停顿时长来区分边界。

接收方就是靠停顿的长度来判断边界的:停顿 1 单位说明同一个字符还没发完,停顿 3 单位说明一个字符结束了,停顿 7 单位说明一个单词结束了。

纯文本怎么表达

在纯文本环境里,无法表达「时间长度」,所以需要用可见符号来替代间隔。

通行的约定是:

字符内的符号:连在一起写,用空格分隔不同字符,用 / 分隔不同单词

举例,HELLO WORLD 的编码是:

.... . .-.. .-.. --- / .-- --- .-. .-.. -..

其中:

  • .... 是 H,四个点连写,中间不加空格
  • 各个字符之间用单个空格分隔
  • / 前后的空格表示单词边界

也可以把单词间隔写成更明显的三斜杠 ///,或者用竖线 | 表示字符间隔。这些变体在不同工具和不同场景里有使用,关键是发送方和接收方约定一致。

间隔错了会怎样

间隔规范不是形式主义,错了会直接导致解码失败。

如果字符间隔设成和符号间隔一样(都用单空格),解码时无法区分「一个字符内的多个符号」和「多个字符」。比如 .... 是 H,但如果把 .... 拆成 . . . .,解码器会看到四个独立的点,每个点代表 E,结果变成 EEEE。

如果单词间隔设成和字符间隔一样,解码器无法判断哪里是单词边界,所有字符会被连成一串。

如果符号之间的间隔太长,接收方可能误认为字符已经结束。这在人工收报时是常见错误。

所以在文本表达里,一条基本规则是:字符间隔和单词间隔必须使用不同的符号。用空格表示字符间隔、用 / 表示单词间隔是最常见的做法。

数字的电码为什么好记

顺带说一个有意思的设计。数字 0 到 9 的电码都是五个符号,而且排列有规律:

0  -----
1  .----
2  ..---
3  ...--
4  ....-
5  .....
6  -....
7  --...
8  ---..
9  ----.

规律是:从 0 到 5,划的数量从 5 递减到 0,点的数量从 0 递增到 5;从 5 到 9,再反过来,点的数量递减、划的数量递增。

记住这个规律,就不需要单独背 10 个数字的电码了。这也体现了摩尔斯电码在设计时的考量——让常用的内容更容易记忆和发送。

发送速度的影响

间隔规范还涉及发送速度。规范里的「1 单位」具体是多少毫秒,取决于发送速度。

专业报务员的速度可以用 WPM(每分钟单词数)来衡量。速度提高时,单位时长相应缩短,所有间隔按比例缩短。但比例关系不变——点永远是 1 单位,划永远是 3 单位。

人工发送时,间隔很难做到精确,所以接收方需要靠经验判断。自动发送(用电子键或软件)则能保持精确的比例。这也是为什么自动化设备出现后,电报的准确率明显提升。

检查清单

  • 摩尔斯电码的间隔以「一个点的时长」为基本单位
  • 点 1 单位、划 3 单位、字符内间隔 1 单位、字符间 3 单位、单词间 7 单位
  • 纯文本里用空格表示字符间隔,用 / 表示单词间隔
  • 字符间隔与单词间隔必须使用不同符号,否则解码歧义
  • 符号连在一起写表示同一字符,不要在每个符号之间加空格
  • 数字 0—9 都是五个符号,按「划递减再点递减」的规律排列
  • 发送速度变化时所有间隔按比例缩放,但比例关系不变
阅读 11