主要内容

nrCodeBlockDesegmentLDPC

LDPC码块解分割和CRC解码

描述

例子

黑色犯错) = nrCodeBlockDesegmentLDPC (哥伦比亚广播公司bgnblklen连接输入代码块段哥伦比亚广播公司转换成单个输出数据块黑色的长度blklen.该函数验证输入的数据维度哥伦比亚广播公司基于指定的基图号bgn和输出块长度blklen.该函数删除输入中存在的任何填充位和type-24B循环冗余检查(CRC)位哥伦比亚广播公司.输出犯错是类型- 24b CRC解码的结果(如果适用)。这个过程是TS 38.212节5.2.2中规定的低密度奇偶校验(LDPC)代码块分割的逆过程[1]和实现nrCodeBlockSegmentLDPC

例子

全部折叠

执行二进制输入数据的随机序列的代码块分割。

bgn = 1;blklen = 10000;cbs = nrCodeBlockSegmentLDPC(randi([0 1],blklen,1),bgn); / /输出

当基图数为1时,只要输入长度大于8448,就会进行分割。长度为10000的输入数据被分成两个长度为5280的代码块段。代码块段有填充位和CRC附加。

大小(哥伦比亚广播公司)
ans =1×25280 2

连接代码块段。

(黑色,犯错)= nrCodeBlockDesegmentLDPC(美国哥伦比亚广播公司,bgn blklen);

连接的结果与去掉CRC和填充位的原始输入的大小相同。

blkSize =大小(黑色)
blkSize =1×210000年1

通过检查错误向量来验证CRC解码是否成功。

犯错
呃=1x2 uint32行向量0 0

创建一个表示两个代码块段的矩阵。每个元素都包含该元素在矩阵中的线性索引。

cbs =重塑([1:10560],[],2);

使用指定的基图号和输出块长度连接代码块段。

bgn = 1;blklen = 10000;黑色= nrCodeBlockDesegmentLDPC(美国哥伦比亚广播公司,bgn blklen);

要查看输入如何映射到输出,请将代码块段索引相对于连接的输入中的相应索引绘制出来。在每个代码块段中,最后280位代表CRC和填充位。从恢复的数据中删除这些额外的位。

情节(黑色);包含('代码块位索引');ylabel (“恢复数据位索引”);标题(代码块解分割操作);

图中包含一个坐标轴。具有“代码块解分割操作”标题的轴包含一个类型为line的对象。

输入参数

全部折叠

代码块段,指定为实矩阵。一个只有一列的矩阵对应一个没有附加CRC位的代码块段。如果指定一个矩阵有多个列,则矩阵中的每一列对应一个附加type-24B CRC位的单独代码块段。在这两种情况下,代码块段都可以包含填充位。

数据类型:|int8

基图编号,指定为12

数据类型:

输出块长度,指定为非负整数。如果blklen0,那么两个黑色犯错是空的。这个函数使用blklen以验证输入的数据维哥伦比亚广播公司并计算要移除的填充位的数量。

数据类型:

输出参数

全部折叠

连接的数据块,作为空向量返回(当blklen0)或实列向量。该函数删除输入中存在的任何填充位和type-24B CRC位哥伦比亚广播公司.输出黑色从输入继承其数据类型哥伦比亚广播公司

数据类型:|int8

CRC错误,返回如下值之一:

  • 空向量——当时函数返回这个值blklen0或者,如果哥伦比亚广播公司只有一列(CRC解码不发生)。

  • 非负整数的向量-如果哥伦比亚广播公司有不止一列,犯错包含从每个码块段的type-24B CRC位解码得到的CRC错误位。的长度犯错等于代码块段的数量(输入中的列的数量哥伦比亚广播公司).

数据类型:uint32

参考文献

[1]3 gpp TS 38.212。“NR;多路复用和信道编码。”第三代合作伙伴项目;技术规范无线电接入网

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了R2018b