name: channel-capacity description: “信息理论中信道容量的问题解决策略” allowed-tools: [Bash, Read]
信道容量
何时使用
在信息理论中处理信道容量问题时使用此技能。
决策树
-
互信息
- I(X;Y) = H(X) + H(Y) - H(X,Y)
- I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)
- 对称性: I(X;Y) = I(Y;X)
scipy.stats.entropy(p) + scipy.stats.entropy(q) - joint_entropy
-
信道模型
- 输入 X, 输出 Y, 信道 P(Y|X)
- 信道矩阵: 行 = 输入, 列 = 输出
- 元素 (i,j) = P(Y=j | X=i)
-
信道容量
- C = max_{p(x)} I(X;Y)
- 最大化输入分布
- 通过容量实现分布实现
-
常见信道
信道 容量 二进制对称信道 (BSC) 1 - H(p) 其中 p = 交叉概率 二进制擦除信道 (BEC) 1 - epsilon 其中 epsilon = 擦除概率 AWGN 0.5 * log2(1 + SNR) -
Blahut-Arimoto 算法
- 计算容量的迭代算法
- 交替优化 p(x) 和 p(y|x)
- 收敛到容量
z3_solve.py prove "capacity_upper_bound"
工具命令
Scipy_Mutual_Info
uv run python -c "from scipy.stats import entropy; p = [0.5, 0.5]; q = [0.6, 0.4]; H_X = entropy(p, base=2); H_Y = entropy(q, base=2); print('H(X)=', H_X, 'H(Y)=', H_Y)"
Sympy_Bsc_Capacity
uv run python -m runtime.harness scripts/sympy_compute.py simplify "1 + p*log(p, 2) + (1-p)*log(1-p, 2)"
Z3_Capacity_Bound
uv run python -m runtime.harness scripts/z3_solve.py prove "I(X;Y) <= H(X)"
关键技术
摘自索引教科书:
- [信息理论基础] Elements of Information Theory – Thomas M_ Cover & Joy A_ Thomas – 第二版, New York, NY, 2012 – Wiley-Interscience – 9780470303153 – 2fcfe3e8a16b3aeefeaf9429fcf9a513 – Anna’s Archive。使用随机生成的代码,香农证明了可以在信道容量 C 以下的任何速率发送信息,且错误概率任意低。随机生成代码的想法非常不寻常。
认知工具参考
参见 .claude/skills/math-mode/SKILL.md 获取完整工具文档。