跳轉到

1844 莫斯電報#

案發現場#

1844 年 5 月 24 日,華盛頓國會大廈。一位曾經是職業畫家的美國人——塞繆爾·莫斯(Samuel Morse, 1791–1872)——坐在電報機前,敲出了一句話,瞬間出現在 64 公里外巴爾的摩的接收機上:

「上帝創造了何等的奇蹟!」(What hath God wrought!)

這句《聖經》引語不是抒情,而是準確的歷史判斷:資訊傳播的速度,第一次脫離了交通的速度。 在此之前,人類通信的極限就是馬、船與烽火——信件要走幾天,消息要靠驛站接力。古代中國的烽火台、歐洲的信號塔(法國 Chappe 光學信號塔 1794 年已能傳遞軍情),都受制於天氣與視距。而「用電流傳字」的構想,在 1830 年代初至少有三人同時在賽跑:莫斯、庫克與惠斯通(英國)、施泰因海爾(德國)。

本案的微妙之處在於:莫斯本人不懂電學。真正解決技術難題的,是他的合作夥伴——普林斯頓大學教授約瑟夫·亨利(Joseph Henry,電磁鐵與繼電器的發明者)。這樁案件的「偵探團」,是一個畫家+一個物理學家的組合。

偵查過程#

第一步:認清物理瓶頸。 電報的難題不只是「讓指針動起來」,而是距離:電流通過長導線會衰減,數十公里外電磁鐵就吸不動銜鐵。亨利已經證明:用繼電器(relay)——弱電流驅動小電磁鐵、小電磁鐵接通本地強電池——可以把信號一站一站接力放大。莫斯與助手維爾(Alfred Vail)把亨利的繼電器裝進自己的系統,長距離電報的物理難題就此解決。(這也埋下一樁著名的公案:亨利認為莫斯盜用了他的發明,甚至對簿公堂。)

第二步:資訊的編碼——莫斯電碼。 這是本案最深刻的一步。要讓「通電—斷電」這個二元的物理事件承載人類語言,必須編碼。莫斯與維爾的做法極具現代性:他們統計了英文排版廠的字模數量,發現 E 用得最多、Z 最少——於是把最短的碼(一個點)分配給最常用的字母:

  • E = ·(一點)
  • T = −(一划)
  • A = ·−,B = −···……
  • S = ···,O = −−−(後世求救信號 SOS 的由來)

這是人類歷史上第一個按使用頻率最佳化的編碼系統——比夏農的資訊論早了一百年,卻已經包含了「資訊量與概率相關」的直覺。報務員用點與划的節奏聽音辨字,熟練者每分鐘可收發 40 個單詞。

第三步:商業與制度的推廣。 莫斯從國會爭取到 3 萬美元的示範線補助(幾乎被否決),1844 年華盛頓—巴爾的摩線通車。此後美國電報線爆發式增長:1851 年西聯電報公司成立,1861 年橫貫大陸電報線通車(取代了快馬郵驛 Pony Express,後者僅存活 18 個月)。1858 年大西洋電纜(幾經失敗)讓歐美通信從十天縮短到幾分鐘。

結案報告#

莫斯電報是電的第一個大規模應用。用金觀濤的框架說,本案屬於技術⚙環節,它對迴路的推動在於:

  1. 資訊傳播脫離交通——這是自 1450-古騰堡印刷術.md(知識複製成本暴跌)之後資訊史的第二次飛躍:知識的「傳播速度」不再受馬蹄與風帆限制。新聞、金融報價、軍事命令全部改寫。
  2. 電學從實驗室走向市場——1831-法拉第電磁感應.md 的發現(實驗)經亨利的繼電器(技術)落地為產業:理論—實驗—技術迴路在資訊領域第一次閉合。
  3. 編碼思想的誕生——按頻率最佳化的電碼是資訊時代的原始碼:從莫斯電碼到 ASCII 到深度學習的 token,「把世界編碼成符號」的路線由此開端。
  4. 資本的孵化——電報公司是最早的技術股市寵兒,示範了「基礎科學→專利→公司」的商業迴路,為愛迪生的發明工廠(1879-愛迪生白熾燈.md)提供了範式。

證據與工具#

# 莫斯電碼編解碼器:人類第一個按頻率最佳化的編碼系統

MORSE = {'A':'.-','B':'-...','C':'-.-.','D':'-..','E':'.','F':'..-.',
         'G':'--.','H':'....','I':'..','J':'.---','K':'-.-','L':'.-..',
         'M':'--','N':'-.','O':'---','P':'.--.','Q':'--.-','R':'.-.',
         'S':'...','T':'-','U':'..-','V':'...-','W':'.--','X':'-..-',
         'Y':'-.--','Z':'--..','0':'-----','1':'.----','2':'..---',
         '3':'...--','4':'....-','5':'.....','6':'-....','7':'--...',
         '8':'---..','9':'----.'}
REVERSE = {v: k for k, v in MORSE.items()}

def encode(text):
    return ' '.join(MORSE[c] for c in text.upper() if c in MORSE)

def decode(code):
    return ''.join(REVERSE[t] for t in code.split() if t in REVERSE)

msg = "WHAT HATH GOD WROUGHT"
m = encode(msg)
print(f"原文:{msg}")
print(f"編碼:{m}")
print(f"解碼:{decode(m)}")

# 為何 E 是一個點?——按使用頻率分配碼長(夏農之前的資訊論直覺)
freq = {'E':12.0,'T':9.1,'A':8.2,'O':7.7,'I':7.0,'N':6.7,'S':6.3,'H':6.1,'R':6.0}
cost = {L: len(MORSE[L]) for L in freq}
avg = sum(freq[L]*cost[L] for L in freq) / sum(freq.values())
print(f"\n高頻字母平均碼長:{avg:.2f} 個符號(越常用越短 => 傳輸成本最低)")
print("注意:E(頻率最高)碼長為 1 —— 頻率最佳化的編碼,比夏農早一百年。")