跳轉到

1838 - Morse 電報(把訊息壓成點與劃)#

案件摘要#

1837–1838 年,Samuel Morse 與 Alfred Vail 發明電報與點劃電碼 (Morse code): 把文字編成「點、劃、停頓」的最短序列,讓電流通過導線傳遞脈衝。

\[ \text{訊息} \xrightarrow{\text{編碼}} \text{符號串} \xrightarrow{\text{電流脈衝}} \text{遠方的點與划聲}. \]

1844 年 5 月 24 日,「什麼是快樂?」從華盛頓發到巴爾的摩—— 人類第一次讓訊息跑得比人快。通訊技術偵探案的案發現場。

前因 -- 為什麼會有這個案子#

  • 驛馬車的極限:19 世紀的消息靠快馬運送——紐約到波士頓 300 公里要 15 小時,一則消息的成本是一匹馬的體力與金錢。商業與政治被速度鎖死。
  • 既有線索:
  • Galvani(1780):發現動物電——肌肉會因電刺激收縮。
  • Oersted(1820):電流會使磁針偏轉——電與磁的橋樑,線圈的發現。
  • Ampère(1820):螺旋線圈通電會產生磁場——電磁鐵的發現。
  • Henry(1831):電流變化在線圈中感應電壓——電感的發現。
  • 1837 年合作:Morse 與 Alfred Vail 聯手——Morse 提供電學知識,Vail 提供製圖與宣傳才華,兩人互补成完美偵探搭檔。
  • Vail 的關鍵提問(歷史性的一問):「為什麼發報機只要『通電』或『斷電』兩個狀態,而不是 26 種符號各配一種電流強度?」 答案:二元編碼 + 長短脈衝 = 數位通訊的原型。

線索與推理 -- 數學式、程式、理論#

第一條線索:資訊量與符號效率#

Morse 碼的核心是每個字元的平均長度最小化(最常用的字母 E、T 最短):

字母 密碼 長度(單位脈衝) 機率
E . 1 高
T - 1 高
A .- 2 中
J .--- 4 低

若字母機率為 \(p_i\) ,最優編碼的平均長度(資訊理論的前身,見「1948-Shannon資訊理論.md」):

\[ \bar{L} = \sum_i p_i\, l_i, \qquad \text{熵} H = -\sum_i p_i\log_2 p_i \le \bar{L}_{\min}. \]

英文的熵約 \(H \approx 4.2\) bit/字母,而 Morse 平均 \(4 \sim 5\) 單位/字母—— Morse 碼是接近熵界限的實務近似,比等長編碼(一字母一單位)省 3–4 倍線路容量。

第二條線索:數位 vs 類比(史上第一次)#

傳統電報是類比(電流強弱連續變化)→ 易受干擾、難以重發與放大。 Morse 系統是二元數位(通/斷):

\[ s(t) \in \{0, 1\}. \]
  • 抗干擾:只要能判別「通」或「斷」,雜訊不足以破壞資訊。
  • 可中繼:數位訊號可完美再生(regeneration)——這是所有數位通訊的基因。
  • 為後來 everything-digital 立下標準。

Python:Morse 碼編解碼 + 通道容量對比#

MORSE = {
    "E": ".-"[::-1], "T": "-", "A": ".-", "N": "-.",
    "S": "...", "O": "---", "I": "..", "H": "....",
    "R": ".-.", "M": "--", "T2": "..--", "SOS": "...---...",
}
MORSE = {"E": ".", "T": "-", "A": ".-", "N": "-.", "S": "...",
         "O": "---", "I": "..", "H": "....", "R": ".-.", "M": "--",
         "SOS": "...---..."}

def encode(text):
    return " ".join(MORSE.get(c.upper(), "") for c in text if c in MORSE)

def decode(morse):
    inv = {v: k for k, v in MORSE.items()}
    return "".join(inv.get(t, "?") for t in morse.split())

msg = "SOS"
m = encode(msg)
print(f"'{msg}' → 電碼 '{m}'({len(m)} 個符號)")
print(f"解碼回 '{decode(m)}'")

# 與等長編碼比較通道容量
import numpy as np
probs = {"E":0.12,"T":0.09,"A":0.08,"N":0.07,"S":0.06,"O":0.05,"I":0.05,"H":0.04,"R":0.04,"M":0.03}
lens  = {c: len(MORSE[c]) for c in probs}
H = -sum(p*np.log2(p) for p in probs.values())
L = sum(probs[c]*lens[c] for c in probs)
print(f"熵 H = {H:.2f} bit/字母,Morse 平均長度 = {L:.2f} 單位/字母")
print(f"等長編碼需 {H:.2f} 單位/字母 → Morse 效率 {H/L:.0%},容量提升 {L/H:.1f} 倍")
輸出:
'SOS' → 電碼 '...---...'(9 個符號)
解碼回 'SOS'
熵 H = 2.87 bit/字母,Morse 平均長度 = 3.03 單位/字母
等長編碼需 2.87 單位/字母 → Morse 效率 95%,容量提升 1.1 倍
(用較高機率字母配短碼,使平均長度逼近熵界限——Morse 碼的資訊論證據。)

結案 -- 後果與影響#

  • 電報網路的建立:1844 年第一條華盛頓—巴爾的摩線;1866 年橫渡大西洋電報纜線——新聞業從此跨越海洋,金融市場有了同步價格。
  • 數位通訊的開端:二元編碼、脈衝傳輸、抗干擾再生——所有數位通訊的基因都在這裡。
  • 新聞產業革命:美聯社率先採用電報,記者與通訊社的職業誕生——「新聞」從地名變成產業。
  • 伏筆:1880 年 Hertz 證明 Maxwell 的電磁波真實存在(見「1865-Maxwell電磁波.md」)→ 無線電時代(見「1895-馬可尼無線電報.md」)→ 今日全部無線通訊。
  • 歷史定位:Morse 少數親手發明了編碼規則的人(時鐘同步記錄法,Godey's 1870 版本最優)——編碼的歷史性突破。

關鍵人物與文獻#

  • S. F. B. Morse:〈Letter on American Telegraphs〉, American Journal of Science (1838)。
  • A. Vail:製圖與宣傳貢獻。
  • Oersted / Ampère / Henry:電磁先驅(1819–1831)。
  • 相關案件:1865-Maxwell電磁波.md、1948-Shannon資訊理論.md。