Mímisbrunnr知恵の泉

← 情報理論 一覧

🎓 レベル:発展 | 重要度:A(必須)

📎 前提:微分エントロピー通信路容量 | 次:レート歪み理論入門

要点(BLUF)

C=12log2 ⁣(1+PN)=12log2(1+SNR)[bit/通信路使用]C = \tfrac12\log_2\!\Big(1+\tfrac{P}{N}\Big) = \tfrac12\log_2(1+\mathrm{SNR}) \quad [\text{bit/通信路使用}]

1. 導出:容量は微分エントロピーの差

容量は相互情報量の最大化 C=maxp(x):E[X2]PI(X;Y)C=\max_{p(x):\,\mathbb E[X^2]\le P} I(X;Y)。連続なので

I(X;Y)=h(Y)h(YX)=h(Y)h(Z)I(X;Y) = h(Y) - h(Y\mid X) = h(Y) - h(Z)

Y=X+ZY=X+ZXX を固定すると YY のばらつきはノイズ ZZ そのものなので h(YX)=h(Z)h(Y\mid X)=h(Z))。h(Z)=12log2(2πeN)h(Z)=\frac12\log_2(2\pi e N) は固定。残るは h(Y)h(Y) の最大化です。Y=X+ZY=X+Z の分散は E[X2]+NP+N\mathbb E[X^2]+N\le P+N で、分散が固定なら h(Y)h(Y) はガウスで最大微分エントロピー)。YY がガウスになるのは XX がガウスのとき。よって

C=12log2(2πe(P+N))12log2(2πeN)=12log2 ⁣(1+PN)C = \tfrac12\log_2(2\pi e(P+N)) - \tfrac12\log_2(2\pi e N) = \tfrac12\log_2\!\Big(1+\tfrac{P}{N}\Big)

「信号パワー PP をノイズパワー NN で割った比(SNR)」だけで決まります。

2. シャノン・ハートレーの定理

帯域 BB Hz の連続時間通信路は、標本化定理により毎秒 2B2B 回の独立な使用に相当します。1回あたり容量 12log2(1+SNR)\frac12\log_2(1+\mathrm{SNR}) なので、毎秒では

C=Blog2 ⁣(1+SN)[bit/秒]C = B\log_2\!\Big(1+\frac{S}{N}\Big) \quad [\text{bit/秒}]

ここで S/NS/N は信号対雑音電力比。帯域を広げるか SNR を上げれば速度が上がる——ただし SNR は対数で効くので、SNR を10倍にしても容量は log2103.3\log_2 10\approx3.3 bit/使用しか増えません。帯域の方が線形に効くので、広帯域化(5G のミリ波など)が速度向上の主役になります。

3. コード:ガウス容量と SNR(底2, bit)

SNR を変えて容量 12log2(1+SNR)\frac12\log_2(1+\mathrm{SNR}) を計算し、帯域込みのビット毎秒も求めます。

import numpy as np
# ガウス通信路 Y=X+Z, Z~N(0,N), 電力制約 E[X^2]<=P
# 容量 C=0.5 log2(1+P/N) bit/使用 (SNR=P/N)
print("ガウス通信路の容量 C=0.5 log2(1+SNR) bit/通信路使用")
for snr_db in [0,3,10,20]:
    snr=10**(snr_db/10)
    C=0.5*np.log2(1+snr)
    print(f"  SNR={snr_db:>3} dB (={snr:7.3f}): C={C:.4f} bit/使用")
print("-"*56)
# シャノン・ハートレー:帯域 B Hz では C=B log2(1+SNR) bit/秒
B=1e6  # 1 MHz
for snr_db in [10,20,30]:
    snr=10**(snr_db/10)
    C=B*np.log2(1+snr)
    print(f"  B={B:.0e}Hz, SNR={snr_db}dB: C={C/1e6:.3f} Mbit/s")

出力:

ガウス通信路の容量 C=0.5 log2(1+SNR) bit/通信路使用
  SNR=  0 dB (=  1.000): C=0.5000 bit/使用
  SNR=  3 dB (=  1.995): C=0.7913 bit/使用
  SNR= 10 dB (= 10.000): C=1.7297 bit/使用
  SNR= 20 dB (=100.000): C=3.3291 bit/使用
--------------------------------------------------------
  B=1e+06Hz, SNR=10dB: C=3.459 Mbit/s
  B=1e+06Hz, SNR=20dB: C=6.658 Mbit/s
  B=1e+06Hz, SNR=30dB: C=9.967 Mbit/s

出力の意味:SNR が 00 dB(信号とノイズが等しい)でも容量 0.50.5 bit/使用は残り、SNR を上げると容量が増えますが伸びは緩やか——1010 dB(10倍)で 1.731.732020 dB(100倍)で 3.333.33 bit/使用と、SNR を10倍にするごとに約 1.66 bit しか増えない12log210\frac12\log_2 10)。これが「電力を10倍注いでも速度は1.6倍少々」という対数の壁です。一方、帯域 BB は線形に効くので、11 MHz・SNR 2020 dB で 6.666.66 Mbit/s。速度を稼ぐには電力より帯域、という現代無線設計の指針がそのまま出ています。

4. 数式の直観的意味

ガウス容量は「ノイズの球にどれだけ信号の球を詰められるか」の連続版です。受信信号 YY は分散 P+NP+N の球に収まり、各送信点はノイズで半径 N\sqrt N の球にぼやける。区別できる送信点の数は体積比 (P+NN)n/2\approx\big(\frac{P+N}{N}\big)^{n/2} で、対数を取って nn で割ると 12log2(1+P/N)\frac12\log_2(1+P/N)。離散の球充填(誤り検出と訂正の基礎)とまったく同じ発想です。SNR が対数で効くのは「区別可能な振幅レベルの数」が 1+SNR\sqrt{1+\mathrm{SNR}} に比例し、その対数が bit 数になるから。この式は、通信路符号化定理(シャノンの通信路符号化定理)の連続版として、実在する通信システムの速度限界を直接与えます。

⚠️ よくある誤解

対応シミュレーション

関連ノート