情報理論の基本的な概念である情報源符号化(ハフマン符号)と通信路符号化((7,4)ハミング符号)が、誤りのある通信路でどのように機能するかを体験します。
通信路として「2元対称通信路」というモデルを使用します。これは、送信されたビット(0または1)が、ある一定の確率 p で反転する(0が1に、1が0になる)最も基本的な通信路のひとつです。
入力したメッセージがハフマン符号で圧縮され、さらに(7,4)ハミング符号で誤り訂正能力を付加された後、この2元対称通信路を通過します。ビット誤り確率 $p$ を変化させながら、どの程度の誤り率までメッセージを正確に復元できるのか、また通信路符号化定理で示される理論限界(通信路容量 $C$)と符号の伝送速度 $R$ の関係がどのように影響するのか観察します。
2. 理論的背景
使用する(7,4)ハミング符号の伝送速度 $R$ は、$R = k/n = 4/7 \approx 0.5714$ です。
設定された通信路のビット誤り確率 $p=$ のとき、
二元エントロピー関数 $H_2(p) = -p \log_2 p - (1-p) \log_2 (1-p) \approx$ となります。
これにより、この2元対称通信路の通信路容量 $C$ は $C = 1 - H_2(p) \approx$ です。
通信路符号化定理について
通信路符号化定理(シャノンの第二定理)は、信頼性の高い通信の限界を示します。伝送速度 $R$ が通信路容量 $C$ より小さい場合 ($R < C$) のみ、誤り確率を任意に小さくできる符号化・復号方式が存在し、信頼性の高い通信が可能となります。逆に、$R > C$ となる場合、原理的にエラーなしでの通信は不可能になります。このシミュレーションでは、$p$ の値によって $C$ が変化し、$R$ と $C$ を比較することで、特定の伝送速度を持つ(7,4)ハミング符号が、どの程度の通信路条件 ($p$ の値) で有効に機能しうるかの示唆を得られます。
(7,4)ハミング符号の限界とブロック誤り
(7,4)ハミング符号は、7ビットのブロック内で最大1ビットの誤りしか訂正できません。ビット誤り確率 $p$ のとき、1つの7ビットブロックが
- 誤りなしで受信される確率: $P_0 = (1-p)^7 \approx$
- ちょうど1ビットの誤りを含み、訂正可能である確率: $P_1 = \binom{7}{1} p (1-p)^6 \approx$
- 正しく復号される確率 (誤りなしか1ビット誤り訂正): $P_\textrm{Correct} = P_0 + P_1 \approx$
- 誤って復号される確率 (2ビット以上の誤り): $P_\textrm{ErrorBlock} = 1 - P_\textrm{Correct} \approx$
$P_\textrm{ErrorBlock}$ が無視できないほど大きくなると、(7,4)ハミング符号ではメッセージ全体の完全な復元が困難になります。これは、$R < C$ という条件を満たしていても、(7,4)ハミング符号のような具体的な符号には、その構成(例:7ビットブロックでの1ビット誤り訂正能力)に起因する限界が存在することを示しています。そのため、$R$ を $C$ に近づけ、より効率的な通信を実現するには、より強力で洗練された符号化方式が必要となります。
$H_2(p) = -p \log_2 p - (1-p) \log_2 (1-p) \approx$ -
通信路容量 $C = 1 - H_2(p) \approx$ -
ハミング符号の伝送速度 $R = 4/7 \approx$ 0.5714 (固定)
比較:
3. 情報源符号化 (ハフマン符号)
元のメッセージ:
元のビット長 (仮定): ビット (1文字8ビット)
文字出現頻度:
ハフマン符号化されたビット列:
符号化後のビット長: ビット
(圧縮率: %)
4. 通信路符号化 ((7,4)ハミング符号)
入力ビット長 (ハフマン符号化後): ビット
ブロック分割とハミング符号化の詳細:
ハミング符号化されたビット列 (7ビットブロック群):
ハミング符号化ビット列 (連結形式):
符号化後の総ビット長: ビット
5. 通信路 (2元対称通信路) とノイズ
ハミング符号化されたビット列が、ビット誤り確率 $p=$ の2元対称通信路を通過します。
受信データ (誤り注入後 - 7ビットブロック群):
受信データ (誤り注入後 - 連結形式):
6. 通信路復号と誤り訂正 ((7,4)ハミング符号)
誤り訂正・復号の詳細 (ブロック毎):
ハミング復号後のビット列 (ハフマン符号形式、パディング除去前):
最終的なハフマン符号形式ビット列 (パディング除去後):
復号後のビット長: ビット
7. 情報源復号 (ハフマン符号)
入力ビット長 (ハフマン符号形式): ビット
参照ハフマン符号表:
復号されたメッセージ:
9. まとめと発展的な符号技術
このシミュレーションでは(7,4)ハミング符号を使用しましたが、理論的には伝送速度 $R$ が通信路容量 $C$ 未満 ($R < C$) であれば、誤り率を限りなく低くできる符号が存在するはずです。では、どうして $R < C$ を満たしていても、このシミュレーションでは誤りが発生することがあるのでしょう?
その主な理由は、(7,4)ハミング符号が7ビットのブロックで1ビットの誤りしか訂正できないという、符号固有の能力限界にあります。ビット誤り確率 $p$ がある程度高くなると、$R < C$ を満たしていても、ブロック内で2つ以上の誤りが発生する確率が無視できなくなり、ハミング符号の訂正能力を超えてしまいます。結果としてメッセージ全体の正確な復元が困難になります。特に、$R$ が $C$ に近い値(つまり、$p$ が比較的高い状態)では、この符号の限界が顕著になります。
実際の通信システムでは、$R$ を $C$ に可能な限り近づけるため、より高度な通信路符号が用いられています。たとえば
- LDPC符号 (低密度パリティ検査符号): シャノンの限界に迫る非常に優れた性能を持ち、Wi-Fi (IEEE 802.11n以降) や 5G移動通信システムなどで広く採用されています。
- ターボ符号: 複数の符号を並列または直列に組み合わせ、反復復号を行うことで高い誤り訂正能力を実現します。3Gや4G (LTE) の移動通信システムで重要な役割を果たしました。
- ポーラ符号: 2009年に提案された比較的新しい符号ですが、理論的にチャネル容量を達成可能であることが示されており、5G NR (New Radio) の制御チャネルに採用されています。
これらの進んだ符号技術により、ノイズの多い環境でも信頼性の高い通信が実現されています。