基于MATLAB的Turbo码多帧传输性能仿真系统
项目介绍
本项目是一套基于MATLAB开发的Turbo码通信链路仿真系统。该系统模拟了完整的数字通信流程,包括信源产生、Turbo编码、BPSK调制、加性高斯白噪声(AWGN)信道传输以及迭代译码。系统能够评估Turbo码在不同信噪比(Eb/N0)环境下的误码率(BER)表现,特别强化了多帧连续传输的统计逻辑,通过大量样本的积累来确保仿真结果的准确性与统计学意义。
功能特性
- 完整的Turbo编解码链路:实现了基于两个递归系统卷积码(RSC)和一个伪随机交织器构成的标准Turbo编码结构。
- 高性能译码算法:采用软输入软输出(SISO)的Log-MAP译码算法,支持配置多次迭代以优化纠错性能。
- 动态信噪比仿真:支持用户自定义Eb/N0范围,自动计算信道噪声强度。
- 多帧统计机制:系统预设针对400帧数据进行连续仿真,自动累加误码总数并计算整机误码率。
使用方法
- 配置仿真参数:在程序起始部分的参数设置区域,根据需求修改信噪比范围(EbN0_dB)、仿真帧数(num_frames)、每帧长度(frame_len)以及迭代次数(iterations)。
- 运行程序:启动MATLAB脚本,系统将依次针对每个信噪比点进行仿真。
- 结果观察:程序在命令行窗口实时显示当前仿真的信噪比进度,仿真结束后通过统计数据获取最终的BER性能曲线。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 核心组件:包含RSC构造函数、RSC编码函数以及SISO Log-MAP译码逻辑函数。
仿真程序实现逻辑
- 参数初始化与结构预计算
程序首先定义仿真环境,包括0到2.0dB的信噪比步进范围、400帧的仿真规模及1024位的帧长。同时,利用生成多项式(7,5)初始化RSC分量码的状态转移表和输出表,为后续编解码提供基础结构。
- 信噪比外循环
系统遍历设定的信噪比序列。针对每一个Eb/N0值,程序计算对应的线性信噪比,并根据Turbo码1/3的码率计算AWGN信道的噪声标准差(sigma)。此外,在此环节生成该信噪比下通用的随机交织映射表及对应的解交织映射表。
- 帧循环处理(400帧连续仿真)
在每一帧的传输过程中,系统执行以下操作:
生成随机二元信息序列。
进行Turbo编码:原始序列通过第一个RSC编码器生成校验位1;原始序列经交织器打乱后通过第二个RSC编码器生成校验位2。
BPSK调制:将0映射为1,1映射为-1,涵盖系统位和两个校验位。
信道传输:在调制后的信号上叠加符合计算强度的高斯白噪声。
- 迭代译码实现
译码端首先计算信道观测值的对数似然比(LLR)。随后,在设定的迭代次数(6次)内进行如下循环:
译码器1接收系统位信息与译码器2反馈的先验信息,利用Log-MAP算法结合校验位1产生的外部信息。
将译码器1产生的外部信息经过交织处理后,作为译码器2的先验信息。
译码器2接收交织后的系统位信息与来自译码器1的先验信息,结合校验位2产生新的外部信息,并解交织反馈回译码器1。
- 硬判决与误差统计
迭代完成后,系统结合译码器2的输出、系统位信道观测值以及先验信息进行最终的对数似然比累加,进行零阈值判决恢复原始比特。随后,将判决结果与原始信源比对,记录并累加误码总数。
关键算法与实现细节
- Log-MAP译码:在SISO译码模块中,利用对数域的最大后验概率算法处理软信息,有效避免了Max-Log-MAP可能带来的性能损失。
- 迭代结构:实现了典型的并行级联卷积码迭代架构,通过外部信息的在两个SISO组件间的循环流动实现增益。
- 噪声建模:根据1/3码率修正信号能量,确保在Eb/N0对比下的公平性。
- 统计可靠性:通过400帧(约40万比特)的连续传输统计,消除了单帧随机性波动,保证了在低信噪比区域BER曲线的平滑度。