matlab通信工具包包含了一个fec差错控制编码的工具包,其中有fec.ldpcenc,fec.ldpcdec是涉及有关ldpc编码的。使用过程如下:
首先要产生一个稀疏校验矩阵H,n列,(n-k)行。且最后(n-k)列为一个可逆阵。
编码:
直接使用fec.ldpcenc时,matlab默认使用一个32400*64800的ldpc校验矩阵。其第一行个数为1,2到32400行为6,第1到12960列1个数为8,12961到32400列1个数为3,剩下32401到64800的为一个下三角阵,其元素和次1对角元素为1,其余为0。此ldpc编码阵由DVB-S.2而来,可达到10的-7次方误包率。
格式如下:l=fec.ldpcenc(H);
产生的l为一结构体,包含如下参数:l.ParityCheckMatri:校验矩阵;
l.BlockLength:码元长度;n
l.NumInfoBits:信息位长度;k
l.NumParityBits:校验位长度;n-k
l.EncodingAlgorithm:编码算法 “ForwardSubstitution”“Backward
Substitution”“MatrixInverse”
然后使用encode函数进行编码:codeword=encode(l,msg);其中msg为待编的消息序列,其大小须为1*k
解码:
l=fec.ldpcdec(H),若省略H,则使用上述默认的校验矩阵。
l同样为结构体,由如下元素:</