主要内容

nrLDPCDecode

低密度奇偶校验解码

描述

actNumIterfinalParityChecks= nrLDPCDecode(bgnmaxNumIter返回ldpc解码的输出矩阵为输入数据矩阵,基图数bgn,最大译码迭代次数maxNumIter.该函数还返回实际的迭代次数actNumIter最后对每个码字进行奇偶校验finalParityChecks

解码器使用和积消息传递算法。数据位必须按照TS 38.212节5.3.2中定义的方式进行ldpc编码[1]

例子

actNumIterfinalParityChecks= nrLDPCDecode(<年代pan class="argument_placeholder">___名称,值指定可选的名称-值对参数,以及前面语法中的输入参数。

例子

全部折叠

创建包含两个长度为2560的代码块段和末端填充位36的传输数据。

C = 2;K = 2560;F = 36;txcbs = ones(K-F,C);填充= -1*ones(F,C);TXCBS = [TXCBS;填料];

为传输数据生成LDPC码字。使用底图2。

BGN = 2;txcodedcbs = nrLDPCEncode(txcbs,bgn);

将传输数据转换为软位。传输数据中的填充没有日志似然比(LLR)软位。

Rxcodedcbs = double(1-2*txcodedcbs);fillerindexes = find(txcodedcbs(:,1) == -1);rxcodedcbs(fillerindexes,:) = 0;

解码编码码字,最多迭代25次。

[rxcbs,actualniters] = nrLDPCDecode(rxcodedcbs,bgn,25);

将传输数据中的填充位替换为零,并比较编解码结果。

txcbs(end- f +1:end,:) = 0;isequal (rxcbs txcbs)
ans =<年代pan class="emphasis">逻辑1
actualniters
actualniters =<年代pan class="emphasis">1×21

输入参数

全部折叠

输入代码块段的速率恢复软位,指定为实矩阵。的列数等于计划代码块段的数量。的行数等于码字的长度,其中有一些系统位被戳穿。

数据类型:|

基图号,指定为12.该值选择TS 38.212节5.3.2中定义的两个基本图之一[1]

数据类型:

译码迭代的最大次数,指定为正整数标量。当所有奇偶校验都满足时,解码终止maxNumIter迭代次数。

数据类型:

名称-值对实参

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:[out,actNumIter,finalParityChecks] = nrLDPCDecode(in,bgn,maxNumIter,'DecisionType','hard')

输出格式,指定为逗号分隔的对,由“OutputFormat”其中一个价值观是:

  • “信息”- in的行数等于信息比特的长度。

  • “整体”- in的行数等于码字的长度。

数据类型:字符|字符串

用于解码的判定方法,指定为逗号分隔的对“DecisionType”其中一个价值观是:

  • “硬”的数据类型int8

  • “软”-输出包含相同数据类型的对数似然比

数据类型:字符|字符串

LDPC解码算法,由逗号分隔的对组成“算法”其中一个价值观是:

  • “信念传播”—使用此选项指定信念传递或消息传递算法。有关更多信息,请参见信念传播解码

  • “分层信仰传播”-使用此选项指定分层的信念传递算法,该算法适用于准循环奇偶校验矩阵(PCMs)。有关更多信息,请参见分层信念传播解码

  • “规范化min-sum”-使用此选项指定具有归一化最小和近似的分层信念传播算法。有关更多信息,请参见归一化最小和解码

  • “抵消min-sum”-使用此选项指定带有偏移最小和近似的分层信念传播算法。有关更多信息,请参见偏移最小和译码

请注意

当将此名称-值对参数的值指定为“规范化min-sum”“抵消min-sum”,该函数在解码前将输入(对数似然比)LLR值剪辑到[-1e10 1e10]范围内。

数据类型:字符|字符串

归一化最小和解码的比例因子,指定为逗号分隔的对,由“ScalingFactor”和(0,1)范围内的实标量。

依赖关系

要启用此名称-值对参数,请设置算法的名称-值对参数“规范化min-sum”

数据类型:

Offset用于偏移最小和解码,指定为逗号分隔的对,由“抵消”和一个非负的有限实标量。

依赖关系

要启用此名称-值对参数,请设置算法的名称-值对参数“抵消min-sum”

数据类型:

解码终止条件,指定为逗号分隔的对,由“终止”其中一个价值观是:

  • “早”—当所有奇偶校验都满足或经过奇偶校验后,解码结束maxNumIter迭代次数。

  • “马克斯”—解码结束maxNumIter迭代次数。

数据类型:字符|字符串

输出参数

全部折叠

解码的LDPC码字或信息位,作为实矩阵返回。的列数等于计划代码块段的数量。的行数取决于名值对参数“OutputFormat”.的数据类型取决于名值对参数“DecisionType”

数据类型:||int8

实际迭代次数,作为正整数的行向量返回。的长度actNumIter等于的列数.的第Th元素actNumIter对象执行的实际迭代次数的第Th列

数据类型:

最后的奇偶校验,作为矩阵返回。的行数finalParityChecks等于LDPC码字中的奇偶校验位数。的的第Th列finalParityChecks对应的最终奇偶校验码字。

数据类型:

算法

全部折叠

nrLDPCDecode函数支持这四种LD金宝appPC解码算法。

信念传播解码

信念传播算法的实现基于文中给出的解码算法[2].对于传输的ldpc编码码字,c,在那里<年代pan class="inlineequation"> c c 0 c 1 ... c n 1 , LDPC解码器的输入为对数似然比(LLR)值<年代pan class="inlineequation"> l c 日志 公关 c 0 | 通道输出 c 公关 c 1 | 通道输出 c

在每一次迭代中,算法的关键组件都会根据以下方程进行更新:

l r j 2 atanh V j 双曲正切 1 2 l j

l j l c + j C j l r j ,初始化为<年代pan class="inlineequation"> l j l c 在第一次迭代之前,和

l l c + j C l r j

在每次迭代结束时,<年代pan class="inlineequation"> l 是传输位的LLR值的更新估计吗<年代pan class="inlineequation"> c .的值<年代pan class="inlineequation"> l 软决策输出是为<年代pan class="inlineequation"> c .如果<年代pan class="inlineequation"> l < 0 的硬决策输出<年代pan class="inlineequation"> c 是1。否则,输出为0。

指标集<年代pan class="inlineequation"> C j 而且<年代pan class="inlineequation"> V j 基于奇偶校验矩阵(PCM)。指标集<年代pan class="inlineequation"> C 而且<年代pan class="inlineequation"> V j 对应列中所有非零元素和行j,分别。

该图突出显示了给定PCM中这些索引集的计算= 5和j= 3。

为了避免算法方程中的无限数,将atanh(1)和atanh(-1)分别设为19.07和-19.07。由于精度有限,MATLAB<年代up>®对于tanh(19.07)返回1,对于tanh(-19.07)返回-1。

当名称-值对参数“终止”设置为“马克斯”后,解码终止maxNumIter迭代次数。当“终止”设置为“早”,当所有奇偶校验都满足时,解码终止(<年代pan class="inlineequation"> H c T 0 )或之后maxNumIter迭代次数。

分层信念传播解码

分层信念传播算法的实现是基于文中给出的解码算法[3],第II.A节。解码循环在PCM的行(层)子集上迭代。对于每一行,,在一个层和每个位索引中,j,实现基于这些方程更新算法的关键组件:

(1)<年代pan class="inlineequation"> l j l j R j

(2)<年代pan class="inlineequation"> 一个 j n N n j ψ l n

(3)<年代pan class="inlineequation"> 年代 j n N n j 标志 l n

(4)<年代pan class="inlineequation"> R j 年代 j ψ 一个 j ,

(5)<年代pan class="inlineequation"> l j l j + R j

对于每一层,解码方程(5)作用于从当前LLR输入获得的组合输入<年代pan class="inlineequation"> l j 和之前的图层更新<年代pan class="inlineequation"> R j

由于在一层中只更新节点的子集,因此分层信念传播算法比信念传播算法更快。为了达到与信念传播译码相同的错误率,在使用分层信念传播算法时使用译码迭代次数的一半。

归一化最小和解码

归一化最小和解码算法的实现遵循分层信念传播算法,将式(2)替换为

一个 j 最小值 n N n j | l n | α

在哪里<年代pan class="emphasis">α是在(0,1)的范围内,并且比例因子是由ScalingFactor.该方程是中(4)式的改编[4]

偏移最小和译码

偏移最小和解码算法的实现遵循分层信念传播算法,将式(2)替换为

一个 j 马克斯 最小值 n N n j | l n | β 0

在哪里<年代pan class="emphasis">β≥0,是由抵消.该方程是式(5)的改编[4]

参考文献

[1]<年代pan>3gpp ts 38.212。“NR;多路复用和信道编码。”第三代伙伴关系项目;技术规范组无线电接入网

罗伯特·G·加拉格<年代pan class="emphasis">低密度校验码麻省理工学院出版社,1963年。

[3] Hocevar de“通过分层解码LDPC码来降低复杂度的解码器架构。”在<年代pan class="emphasis">IEEE信号处理系统研讨会,2004。口2004.doi: 10.1109 / SIPS.2004.1363033

[4]陈景虎,R.M. Tanner, C. Jones,李燕。改进的不规则LDPC码最小和解码算法。在<年代pan class="emphasis">程序。信息理论国际研讨会,2005。2005年有更深的了解.doi: 10.1109 / ISIT.2005.1523374

扩展功能

另请参阅

功能

  • |<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">
在R2018b中介绍