这段代码提供了基于MATLAB的Turbo编码和解码系统的全面仿真,内含详尽注释以辅助理解复杂过程。借鉴了Dr. Wuyufei的研究成果,适用于通信工程领域的学习与研究。
为了构建Turbo系统,参考Dr.wuyufei的数学架构是必要的,在我的代码中已经做了详细的注释。这份文档非常适合作为学习资料,并具有很高的参考价值!在运行结果中列出了每次迭代过程中的误码率数据,用户可以自行调整迭代次数,但请注意这将导致较长的计算时间。
本段落档实现了Log-Map译码算法,而SOVA译码算法虽然已经给出代码,但是尚未调试完成。请下载的朋友注意这一点!
以下是Dr. wuyufei典型Turbo系统的主函数描述:
该脚本模拟了经典的Turbo编码与解码系统。
它采用并行级联卷积码(Parallel Concatenated Convolutional Codes)。
假设有两个RSC (Recursive Systematic Convolutional) 码率1/2的组件编码器。
第一个编码器使用尾比特终止。信息位加上尾比特后进行随机化处理,并传递给第二个编码器;而第二个编码器没有添加自身的尾比特。
随机的信息位被调制为+1/-1信号,然后通过AWGN(加性高斯白噪声)信道传输。
每个帧的交织器是随机生成的。在我们的第一个版本中这其实不是必需的!
本段落档使用了无量化或近似化的Log-Map算法,并利用 ln(e^x + e^y) = max(x,y) + ln(1+e^(-abs(x-y))) 来简化 Log-MAP 算法,通过查找表实现修正函数。如果采用 ln(e^x + e^y) = max(x,y) 的近似方式,则算法变为 MAX-Log-MAP。