摘要

二进制对称信道(BSC)是离散无记忆信道最基础模型,多级BSC信道串联是通信链路多级中继传输的简化模型。本文先推导两级BSC串联等效转移矩阵与信道容量闭式解,进一步推广得到m级串联BSC通用容量公式;通过Python完成数值仿真,绘制信道容量随误码率、串联级数变化的关系曲线,直观分析串联链路对传输容量的衰减规律,同时结合通信工程场景解释结论物理意义。

一、研究背景与意义

二进制对称信道BSC广泛用于数字基带传输、二进制调制解调、无线中继通信系统建模。多级中继级联传输时,每一段链路均可等效为独立BSC信道,整条通信链路等价于多个BSC信道串联模型。

主流信息论教材仅给出两级BSC串联简单例题,缺少任意m级信道通用数学推导,同时没有数值仿真曲线直观展示容量变化规律。本文完整完成两级推导、m级通用公式拓展,并通过编程可视化定量分析两大核心问题:

  1. 多级相同BSC串联后等效总误码如何计算?
  2. 信道容量随串联阶数、单段链路误码率存在怎样的衰减规律?

研究结论可直接用于多跳中继通信系统性能分析。

二、基础理论铺垫

2.1 单级BSC信道模型

BSC输入符号集合 X={0,1},输出 Y={0,1},单级误码概率为a:

发送0收到0、发送1收到1:正确传输,概率 1-a
发送0收到1、发送1收到0:传输错误,概率 a

单级BSC转移矩阵:
在这里插入图片描述

离散对称无记忆信道核心结论:输入等概分布 P(X=0)=P(X=1)=0.5 时,信道取得最大互信息,即信道容量。

单BSC信道容量公式:

在这里插入图片描述

H2(.) 为二元熵函数,单位:bit/符号。

2.2 DMC离散无记忆信道串联规则

若信道1输出作为信道2输入,两信道串联,总等效转移矩阵为两个信道转移矩阵依次相乘。
m个相同BSC串联时,总等效转移矩阵等于单级矩阵的m次幂 P^m。

三、两级BSC串联理论推导

设两段完全相同BSC,单级误码率均为 a,信道1转移矩阵 P,信道2转移矩阵同样为 P,两级串联总转移矩阵 P_2=P *P。

3.1 等效转移概率求解

手写扫描

3.2 两级串联信道容量

等效信道仍为对称BSC,等概输入达到容量,代入容量公式:

在这里插入图片描述

3.3 数值实例计算

取单级误码 a=0.1
等效两级误码:a2=20.10.9=0.18
单级容量:C_1=1-H2(0.1)≈0.531 bit
两级容量:C_2=1-H2(0.18)≈0.310 bit
直观可见:串联两级后信道容量明显下降。

四、m级BSC串联通用公式拓展(加分拓展内容)

4.1 m级等效总误码数学归纳推导

  1. 归纳基:m=1,a1=a;m=2,a2=2a(1-a),成立
  2. 归纳假设:m级等效误码 am
  3. m+1级为m级串联单级BSC,递推关系:

a{m+1}=2am(1-am)

可推导出闭式通项:

在这里插入图片描述

4.2 m级串联信道通用容量

m级串联后整体等效为BSC信道,等效误码为 am,信道容量:

在这里插入图片描述

4.3 容量变化规律定性分析

  1. 当串联阶数 m趋于无穷大,(1-2a)^m趋于0,am趋于0.5
  2. 二元熵 H2(0.5)=1,因此极限容量
    在这里插入图片描述

物理含义:大量BSC信道级联,传输错误不断累积,输入输出几乎无相关性,信道无法承载有效信息。

五、Python仿真实现

5.1 完整代码

python

import numpy as np
import matplotlib.pyplot as plt

二元熵函数

def binary_entropy§:
p = np.clip(p, 1e-10, 1 - 1e-10) # 避免log2(0)报错
return -p * np.log2§ - (1 - p) * np.log2(1 - p)

m级BSC串联等效误码

def equiv_error(m, eps):
return (1 - (1 - 2 * eps) ** m) / 2

m级串联信道容量

def channel_capacity(m, eps):
em = equiv_error(m, eps)
return 1 - binary_entropy(em)

---------------------- 绘图1:固定误码a,容量随串联级数m变化 ----------------------

eps_fixed = 0.1
m_list = np.arange(1, 21) # 串联1~20级
cap_list = [channel_capacity(m, eps_fixed) for m in m_list]

plt.figure(figsize=(10,4))
plt.subplot(1,2,1)
plt.plot(m_list, cap_list, ‘o-’, color=‘#1f77b4’, linewidth=2)
plt.xlabel(“串联级数 m”)
plt.ylabel(“信道容量 C / bit”)
plt.title(f"单级误码a={eps_fixed},容量随串联级数变化")
plt.grid(alpha=0.3)

---------------------- 绘图2:固定级数m,容量随单级误码a变化 ----------------------

m_fixed = 3
eps_list = np.linspace(0, 0.5, 100)
cap_eps = [channel_capacity(m_fixed, e) for e in eps_list]

plt.subplot(1,2,2)
plt.plot(eps_list, cap_eps, ‘-’, color=‘#ff7f0e’, linewidth=2)
plt.xlabel(“单级BSC误码率 a”)
plt.ylabel(“信道容量 C / bit”)
plt.title(f"串联级数m={m_fixed},容量随单级误码变化")
plt.grid(alpha=0.3)

plt.tight_layout()
plt.show()

5.2 代码说明与运行截图说明

  1. 函数 binary_entropy 实现二元熵计算,截断极小值防止对数无意义报错;

  2. equiv_error 根据推导公式计算m级串联等效总误码;

  3. 左子图:固定单段误码0.1,遍历1~20级串联,观察容量衰减;在这里插入图片描述

  4. 右子图:固定串联3级,误码0~0.5区间扫描,观察容量随误码下降趋势;在这里插入图片描述

  5. 运行成功截图
    在这里插入图片描述
    在这里插入图片描述
    六、仿真结果分析与工程解读

  6. 串联级数增长,信道容量单调递减,衰减速度前期快、后期逐渐平缓,无限多级后容量趋近于0;

  7. 单级链路误码率a越大,相同串联级数下整体容量越低,容量衰减幅度明显加剧;

  8. 工程实际启示:多跳中继通信系统中,单纯增加中继节点(等效BSC串联)会持续损耗信道传输上限。工程上需搭配信道编码、均衡算法、分集接收补偿误码累积,缓解容量下降问题;

  9. 等效误码物理本质:每一级信道独立引入随机比特翻转,多级叠加后发送与接收比特一致性持续降低。

七、拓展思考与踩坑总结

7.1 高频易错点

  1. 矩阵乘法顺序颠倒:信道串联矩阵不可交换,必须按信号传输顺序相乘;BSC对称模型数值结果巧合不受影响,非对称信道会直接算错等效误码。
  2. 混淆串、并联信道:并联多条BSC信道容量叠加提升;串联信道容量持续衰减,二者规律完全相反,不可混用。
  3. 熵函数计算边界:a取0或0.5时对数无定义,代码中必须增加极小值截断处理。

7.2 拓展延伸方向

本文全部基于相同误码率BSC串联,可进一步拓展:各级链路误码a₁,a₂…aₘ互不相等时,通过逐次矩阵相乘求解整体等效转移矩阵,推导非均匀级联信道容量。

八、完整总结

本文以二进制对称信道BSC为基础模型,完成两级串联完整矩阵推导,利用数学归纳法得到任意m级BSC串联等效误码闭式表达式,推导出多级串联信道容量通用计算公式。

通过Python数值仿真绘制两组特性曲线,定量验证核心规律:串联级数越多、单级链路误码越大,信道传输容量越低,无限级联后信道丧失信息传输能力。结合多跳中继通信场景解释理论结论工程价值,同时梳理推导与仿真过程中常见计算错误,拓展非均匀链路级联研究思路,完整覆盖理论推导、数值实例、编程仿真、工程分析四大模块。

更多推荐