信道容量Skill channel-capacity

这个技能提供信息理论中信道容量的问题解决策略,包括互信息计算、信道模型分析、容量最大化方法,以及常见信道如二进制对称信道、二进制擦除信道和AWGN信道的容量公式。适用于数据分析、通信工程和量化金融领域,关键词包括信道容量、信息理论、互信息、Blahut-Arimoto算法、数据分析和量化交易。

其他 0 次安装 0 次浏览 更新于 3/14/2026

name: channel-capacity description: “信息理论中信道容量的问题解决策略” allowed-tools: [Bash, Read]

信道容量

何时使用

在信息理论中处理信道容量问题时使用此技能。

决策树

  1. 互信息

    • 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
  2. 信道模型

    • 输入 X, 输出 Y, 信道 P(Y|X)
    • 信道矩阵: 行 = 输入, 列 = 输出
    • 元素 (i,j) = P(Y=j | X=i)
  3. 信道容量

    • C = max_{p(x)} I(X;Y)
    • 最大化输入分布
    • 通过容量实现分布实现
  4. 常见信道

    信道 容量
    二进制对称信道 (BSC) 1 - H(p) 其中 p = 交叉概率
    二进制擦除信道 (BEC) 1 - epsilon 其中 epsilon = 擦除概率
    AWGN 0.5 * log2(1 + SNR)
  5. 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 获取完整工具文档。