モールス符号:可変長符号としての設計と現代の用途
モールス符号は 1830 年代に誕生した、世界で最古級の電気通信用符号です。短点(ドット)と長点(ダッシュ)の組み合わせで文字を表す仕組みは、可変長符号の古典的な例として現代の符号理論の入り口にもなっています。
モールス符号の基本
各文字を 短点(・)と長点(ー)の組み合わせで表します:
A: ・ー
B: ー・・・
C: ー・ーー
SOS: ・・・ ーーー ・・・ - 短点:1 単位の長さ
- 長点:3 単位の長さ
- 文字内の符号間:1 単位の無音
- 文字間:3 単位の無音
- 単語間:7 単位の無音
頻度に応じた符号長:可変長符号の元祖
サミュエル・モールスは 英語で頻出する文字に短い符号を割り当てる設計を採用しました:
| 文字 | 符号 | 英語での頻度 |
|---|---|---|
| E | ・ | 12.7%(最頻) |
| T | ー | 9.1% |
| A | ・ー | 8.2% |
| O | ーーー | 7.5% |
| I | ・・ | 7.0% |
E と T が最短(1 単位)、頻度の低い Q や Z は長い(5 単位)。
これは エントロピー符号化(ハフマン符号、算術符号など)の原型です。「頻度が高いものに短い符号を」という考えは、現代のデータ圧縮アルゴリズムにも継承されています。
国際モールス符号 vs アメリカモールス
歴史的には 2 種類のモールス符号がありました:
- アメリカモールス:1838 年、初期のモールス。一部の文字が独特
- 国際モールス:1865 年に国際電信会議で標準化、現在使われているもの
現代「モールス符号」と言えば国際モールスを指します。
SOS の由来
国際遭難信号 ・・・ ーーー ・・・ は 「Save Our Souls」の略ではなく、覚えやすい符号パターンとして選ばれました(1906 年制定)。
- 連続する 9 個の短点・長点で覚えやすい
- 雑音の中でも認識しやすい独特なリズム
- 文字単位で区切らず連続して送る(SOS は 1 つの符号として扱う)
「SOS = Save Our Souls」「Save Our Ship」は後付けの解釈です。
数字と特殊文字
0: ーーーーー
1: ・ーーーー
2: ・・ーーー
3: ・・・ーー
4: ・・・・ー
5: ・・・・・
6: ー・・・・
7: ーー・・・
8: ーーー・・
9: ーーーー・ 数字は 5 単位の符号で規則的。
特殊文字も国際モールスで定義:
.(ピリオド): ・ー・ー・ー
,(コンマ): ーー・・ーー
?(クエスチョン): ・・ーー・・
@(アットマーク): ・ーー・ー・ (2004 年追加、最新) 現代でも使われる場面
電信は廃れましたが、モールス符号は完全には消えていません:
1. アマチュア無線
世界中のアマチュア無線家が CW(連続波)モードで使用。狭帯域で長距離通信できる利点がある。
2. 航空機の VOR ナビ
航空無線標識(VOR)は識別信号としてモールス符号で 3 文字の局名を放送している。
3. 軍事・救命
電波妨害下や音声通信が困難な状況での補助手段として残存。
4. アクセシビリティ
身体障害者向けの入力デバイスで、モールス符号でテキスト入力する補助技術がある。
5. シグナリング
懐中電灯や鏡で「光モールス」を送る、SOS を打つなど、緊急時の手段として教えられる。
学習・覚え方
主要な符号の覚え方:
- E = ・(最も短い)
- T = ー
- I = ・・
- M = ーー
- S = ・・・
- O = ーーー
- H = ・・・・
「アルファベットの最頻文字は短い」と覚えると、E、T、A、I、O、N が直感的。
アルゴリズム:エンコード・デコード
辞書型のシンプルな実装:
const morseTable = {
A: '.-',
B: '-...',
C: '-.-.'
// ... 全文字
};
function toMorse(text) {
return text
.toUpperCase()
.split('')
.map((c) => morseTable[c] ?? '')
.join(' ');
}
function fromMorse(morse) {
const reverse = Object.fromEntries(Object.entries(morseTable).map(([k, v]) => [v, k]));
return morse
.split(' ')
.map((m) => reverse[m] ?? '')
.join('');
} タイミング情報まで再現するには、各単位の時間長を秒単位で扱い、音声生成(WebAudio)と組み合わせる。
まとめ
- モールス符号は 1830 年代の電気通信用符号
- 頻度に応じた可変長符号、ハフマン符号の原型
- 国際モールス符号が現代の標準
- SOS は「覚えやすい符号」として選ばれたパターン
- アマチュア無線、航空、緊急時補助で今も使われる
テキストとモールス符号を相互変換したい場面では、本サイトのモールス符号ツールでエンコード・デコードができます。