极化码高性能编译码链路MATLAB仿真平台
项目介绍
本平台是一套基于MATLAB开发的极化码(Polar Codes)通信系统仿真环境。系统模拟了5G通信标准中控制信道的纠错方案,实现了从信源生成、极化码构造、编码、信道传输到高性能CRC辅助连续消去列表(CA-SCL)译码的完整链路。通过高斯近似算法精确计算信道可靠性,并结合蒙特卡洛测试方法,本平台能够准确评估极化码在加性高斯白噪声(AWGN)信道下的误码率(BER)和误帧率(FER)性能。
核心功能特性
- 高精度极化码构造:采用高斯近似(GA)算法,通过递归演进计算各个子信道的均值,从而精确确定信息位与冻结位的位置。
- 递归编码实现:基于极化矩阵的 Kronecker 积特性,实现了高效的递归极化编码器。
- CRC辅助SCL译码:集成了CA-SCL译码算法,支持多路径保留(List),并利用CRC校验位进行路径过滤,显著提升译码性能。
- 数值稳定性优化:在译码过程中采用对数似然比(LLR)域进行计算,并使用专门的近似函数处理非线性运算,有效避免数值溢出。
- 自动化仿真评估:支持自定义信噪比(SNR)范围、仿真停止准则(最大帧数与错误帧数限制),并自动生成性能曲线图。
逻辑架构与实现细节
系统按照标准的通信链路顺序执行仿真过程:
- 参数预设:系统默认配置码长为512,信息位长度为256(含CRC),译码列表宽度为8。采用16位CRC校验多项式(CRC-16)。
- 构建阶段:
- 极化码构造:程序首先在设计信噪比下执行高斯近似算法。通过递归计算子信道的LLR均值,对计算结果进行比特翻转序排列,选取可靠度最高的前K个位置作为信息位索引,其余为冻结位。
- 发送端处理:
- 数据生成:产生随机二进制信息流。
- CRC编码:在信息位后附加16位冗余校验码。
- 极化编码:将带有CRC的信息包映射到选定的可靠信道位置,冻结位填0,通过递归函数生成编码比特。
- 信道传输:
- 调制:采用BPSK调制方案,将逻辑比特映射为双极性信号。
- 噪声:根据当前信噪比计算噪声方差,向调制信号添加AWGN。
- 接收端处理:
- LLR转换:接收信号被转化为信道初始LLR值。
- CA-SCL译码:译码器在每一位决策时根据LLR进行路径分裂。若为信息位,则每个存活路径分裂为0和1两个分支;若为冻结位,则强制判决为0。
- 路径管理:通过路径度量值(PM)在每一级进行剪枝,仅保留PM最小(最可靠)的前L个候选路径。
- 递归更新:通过特定函数进行向下LLR传播(f和g运算)以及向上比特归并。
- CRC筛选:所有路径遍历完成后,对L个候选路径进行CRC校验。优先选择通过CRC且PM值最小的路径作为最终输出。
- 统计与绘图:计算每轮循环的比特错误和帧错误,当误差达到阈值或完成最大帧数后,输出SNR曲线图。
关键算法分析
- 高斯近似(GA)算法:
本系统实现了GA算法的非线性函数 phi 及其反函数。针对不同输入区间,采用分段近似公式以降低计算复杂度。通过递归公式,系统模拟了极化变换过程中信道可靠度的演化。
- 对数域递归译码:
译码器通过维护一个多层存储结构来保存中间LLR。
- 向下传递(step_down):左子树采用 min-sum 近似(f运算),右子树结合左子树的判决结果进行线性组合(g运算)。
- 向上传递(step_up):当叶子节点完成判决后,逐层向上合并比特流,为后续分支的g运算提供必要的判决反馈。
- 路径度量更新:
路径度量值 PM 采用累加对数概率的方式计算。对于每一个决策位,根据当前LLR值计算不同判决方向可能产生的增量,从而量化路径的似然程度。
使用方法
- 参数调整:在主函数开头部分,根据需要配置 N(码长)、K(信息位长度)、L(列表宽度)以及 EbNo_dB(信噪比范围)。
- 运行仿真:在MATLAB命令行运行主函数。
- 过程监控:控制台将实时显示当前信噪比下的误帧率、误码率以及已完成的仿真帧数。
- 结果产出:仿真结束后,系统会自动弹出绘图窗口,以半对数坐标展示FER和BER曲线。
系统要求
- MATLAB R2016b 或更高版本。
- 硬件环境:建议主频2.0GHz以上,内存4GB以上。
- 依赖项:无需额外工具箱,算法核心逻辑均采用纯数学公式和逻辑数组实现。