极化码在BEC信道下的可靠性边界仿真与性能分析系统
项目介绍
本项目是一个基于MATLAB开发的极化码(Polar Codes)性能评估与仿真系统,专门针对二进制擦除信道(BEC)环境。该系统深度还原了Erdal Arikan教授关于信道极化的理论框架,重点演示了如何通过递归计算Bhattacharyya参数来衡量极化子信道的可靠性。
系统的核心价值在于通过数学模拟直观展示信道极化现象:随着码长的增加,原本相同的信道会分化为极端可靠(擦除概率趋于0)和极端不可靠(擦除概率趋于1)的子信道。这种特性使得极化码能够通过在可靠子信道上发送信息、在不可靠子信道上放置冻结位,从而达到对称信道的容量。
---
功能特性
- 信道极化演进模拟:通过递归算法实时计算不同码长下的Bhattacharyya参数分布。
- 子信道可靠性排序:根据计算出的参数对所有子信道进行升序排列,自动筛选用于传输信息位的最佳位置。
- BLER界限理论计算:
*
理论上界:基于联合界(Union Bound)计算所选子信道错误概率之和。
*
理论下界:取选定子信道中最大的单个错误概率作为参考下界。
*
极化分布图:展示不同码长下子信道可靠性的散点分布。
*
CDF累计分布曲线:对比不同码长下极化效应的剧烈程度,体现极化速度。
*
性能趋势图:分析在固定码率下,理论误块率随着码长指数级增加而下降的趋势。
---
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 核心算法:需要支持基本矩阵运算与递归函数调用。
- 硬件要求:标准桌面电脑即可,处理大码长(如N=8192)时需占用少量内存进行多层递归。
---
使用方法
- 打开环境并配置参数:在脚本头部通过修改内置变量,可以调整设计信道的擦除概率(epsilon)、目标码率(R)以及待比较的码长序列。
- 执行仿真:直接运行主程序。系统将自动开始递归演化计算。
- 结果查看:
* 命令行窗口将实时打印各码长下的BLER理论上界、理论下界以及可靠性最高的前10个子信道索引。
* 图形界面将弹出两个窗口:窗口一展示不同码长的子信道分布与极化CDF图;窗口二展示BLER随码长变化的演进趋势。
---
实现逻辑与算法细节分析
#### 1. 递归计算Bhattacharyya参数
系统实现了BEC信道特有的递归公式。在BEC信道下,极化变换的转移概率具有闭式解,这使得计算复杂度远低于通用信道:
- 较差子信道(W-)计算:$Z(W_{2i-1}) = 2Z(W_i) - Z(W_i)^2$。
- 较好子信道(W+)计算:$Z(W_{2i}) = Z(W_i)^2$。
程序通过定义的递归函数,从长度为1的信道(基础擦除概率)开始,逐层向上推导至指定码长N。
#### 2. 可靠性构造与排序
得到N个子信道的Bhattacharyya参数后,系统执行从低到高(即可靠性从高到低)的排序。根据预设的码率,选择排名前K个索引作为信息比特位置。通过这种方式,系统模拟了极化码构造中最核心的“选择最佳子信道”过程。
#### 3. 性能分析边界
程序通过以下统计逻辑评估性能:
- Union Bound(上界):在高斯或擦除信道下,整个编码块发生错误的概率。程序通过对选中的K个最优子信道的Bhattacharyya参数求和得到,公式为 $sum Z_i$。
- Lower Bound(下界):只要有一个信息位出错,整个块就会出错。因此,选中的子信道中表现最差(Z值最大)的一个决定了BLER的最小可能值。
#### 4. 可视化实现技术
- 子信道可靠性分布:使用散点图绘制1到N个点的Z值,可以观察到随着N增大,中间区域的Z值迅速向0和1两端靠拢。
- 极化效果CDF曲线:通过对Z值排序并计算其累计占比,展示系统容量的收敛速度。曲线越陡峭,说明极化越彻底。
- BLER趋势演变:程序额外循环了从128到8192的多个码长,通过半对数坐标系(semilogy)绘制曲线,清晰地展示了误码性能随码长增加呈现的指数级优化趋势。