程序结构
校验矩阵和编码程序已经给定程序(脚本)按顺序由以下几个部分构成参数设置
随机序列(数据)生成和编码
AWGN信道仿真
译码程序
误比特数等信息统计
校验矩阵已知,且命名为H(800,480).mat,采用load('H(800,480).mat')即可载入,校验矩阵为H。随机序列(数据)生成和编码采用ldpcencoder(H)调用函数,返回数据及其编码。本文仅对AWGN信道和译码程序做说明。
AWGN信道
加性高斯白噪声信道,说明信道的仿真只需要加上一个高斯白噪声就可以了。"白"意味着任意两个不同时刻的噪声都是不相关的,"高斯"即服从高斯分布,满足这两个要求很简单,采用randn生成一组序列即可。唯一不确定的就是噪声的方差了。
对于零均值信号而言,方差代表的就是功率。问题就转变成了如何通过EbN0计算噪声的功率?EbN0是一个比值,每比特能量/噪声功率谱密度。如果我们将信号功率归一化,那么噪声功率就是信噪比SNR的倒数。
在本程序中,校验矩阵为480×800(比特速率为码速率的0.4),采样频率等于码速率(带宽为采样频率的一半),因此有
SNR_dB = EbN0_dB((nEbN0)) + 10*log10(2)+10*log10(0.4);
译码程序编写思想(置信传播为例)
译码算法实际上是很简单的,问题在于呢,如何早到那些要乘的数。就是下式中所表现的
集合中的数据<