美文网首页
matlab2007以上版本的ldpc编码器(转载)

matlab2007以上版本的ldpc编码器(转载)

作者: cherry_liujie | 来源:发表于2019-02-23 10:33 被阅读0次

    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同样为结构体,由如下元素:

    l.ParityCheckMatrix:校验矩阵

    l.BlockLength: 码长

    l.NumInfoBits: 信息位长

    l.NumParityBits: 校验位长

    l.DecisionType: 判决方式'Hard decision','Soft decision'

    l.OutputFormat: 'Information part' 'Whole codeword'

    l.DoParityChecks: 是否做奇偶校验,默认为'No',当为'Yes'时,每次迭代后均进行校验,当为全零时结束迭代。

    l.NumIterations: 迭代次数

    l.ActualNumIterations: Actual number of iterations executed for the last codeword. Initial value is [].

    l.FinalParityChecks:(n-k)-by-1 vector. 1s indicate the parity checks that are not satisfied when the decoder stops. Initial value is [].

    然后采用decode函数解码:

    decoded=decode(l,llr);l为ldpc的译码结构体变量,llr为对数似然比,大小为1*BlockLength

    译码结果与l.DecisionType有关,输出与l.OutputFormat有关。这里的迭代译码算法为消息传递算法。

    相关文章

      网友评论

          本文标题:matlab2007以上版本的ldpc编码器(转载)

          本文链接:https://www.haomeiwen.com/subject/uzbuyqtx.html