本站所有资源均为高质量资源,各种姿势下载。
本项目是一个专门用于研究和评估Turbo码性能的MATLAB仿真平台。通过模拟完整的数字通信链路,包括随机信息序列生成、并行级联递归系统卷积编码、加性高斯白噪声(AWGN)信道传输、以及基于对数域最大后验概率(Log-MAP)算法的迭代译码过程,该系统能够精确给出在不同信噪比和迭代次数下的误码率(BER)性能表现。
MATLAB R2016b 或更高版本。 需要包含通信工具箱(用于调用网格定义相关函数,如poly2trellis)。
系统的核心运行逻辑如下:
首先进行参数初始化,设定信噪比范围为0到2.5 dB,迭代次数分别选取1、2、4、6次,每一帧数据长度设定为1024比特。编码率固定为1/3,通过公式计算对应的加性高斯白噪声标准差。
进入仿真主循环后,针对每一个信噪比点,系统执行蒙特卡洛循环。每一轮循环中产生随机的二进制序列。随后执行编码操作,通过两个相同的RSC编译器配合随机交织器,生成复合编码序列。生成的比特流经过BPSK调制转换成电平信号并注入高斯噪声。
译码环节是系统的重点。接收信号被分解为系统位、分量码1的校验位和分量码2的校验位。系统在两个SISO译码器之间往复传递外部信息(Extrinsic Information)。在每一次迭代中: 第一个译码器根据接收到的系统位、校验位1以及由第二个译码器上一轮提供的外部信息,计算新的外部信息; 随后,将系统位和新的外部信息经过同样的交织处理,与校验位2一起输入第二个译码器; 第二个译码器输出计算结果,并经过解交织后反馈回第一个译码器,作为下一次迭代的先验信息。
最后,系统根据预设的任务点记录不同迭代后的硬判决结果,统计累计错误比特,并最终计算误码率。
Turbo编码实现 编码器采用并联结构。第一路直接对原始序列进行RSC编码;第二路先通过随机交织器打乱原始序列顺序,再进行相同的RSC编码。输出通过多路复用组合成[s, p1, p2]的序列形式。
SISO Log-MAP译码核心 该函数实现了在对数域的网格搜索算法。它包含前项递归计算(Alpha)、后项递归计算(Beta)以及对数似然比(LLR)的计算: 前向与后向递归:基于转移度量Gamma,计算每个状态在每个时刻的可能性。为了防止数值溢出,在每一个步长都进行了归一化处理。 分支度量计算:结合了接收到的信道信息和来自另一译码器的先验概率信息。
Max-Star运算 在计算Log-Sum-Exp时,采用了精确的修正计算方式。通过 max(x, y) + log(1 + exp(-|x-y|)) 这一公式,在对数域内实现了概率的相加。这种方式比单纯的Max-Log-MAP算法具有更高的译码增益,更接近理论上的最优性能。
外部信息交互机制 在迭代过程中,每个译码器仅将“通过本级译码新获得的经验(外部信息)”传递给下一级,而不是传递总的似然值,这有效地防止了正反馈带来的信息污染,是Turbo码性能卓越的关键点。