文档

nrCodeBlockDesegmentLDPC

LDPC代码块脱位和CRC解码

描述

例子

[[BLK,,,,] = nrCodeBlockDesegmentLDPC(cbs,,,,BGN,,,,布尔克伦连接输入代码块段cbs进入单个输出数据块BLK长度布尔克伦。The function validates the data dimensions of the inputcbs基于指定的基本图号BGNand output block length布尔克伦。该功能删除了输入中存在cbs。The output是24B型CRC解码(如果适用)的结果。此过程是低密度奇偶校验检查(LDPC)代码块分割的倒数,在TS 38.212第5.2.2节中指定。[[1]并实施nrCodeBlockSegmentLDPC

例子

全部收缩

Perform code block segmentation of a random sequence of binary input data. When the base graph number is 1, segmentation occurs whenever the input length is greater than 8448. The input data of length 10000 is split into two code block segments of length 5280. The code block segments have filler bits and CRC attached. Concatenate the code block segments usingnrCodeBlockDesegmentLDPC。串联结果的大小与已删除的CRC和填充位的原始输入相同。通过检查错误向量,检查CRC解码是否成功。

bgn = 1;blklen = 10000;cbs = nrcodeBlockSegmentLdpc(randi([0 1],blklen,1),bgn);size(CBS)[BLK,ERR] = NRCodeBlockDesementLDPC(CBS,BGN,Blklen);blksize = size(blk)err
ans = 5280 2 blksize = 10000 1 err = 1×2 uint32行矢量0 0

创建一个代表两个代码块段的矩阵。每个元素在矩阵中包含该元素的线性索引。使用代码块段的串联nrCodeBlockDesegmentLDPC带有指定的基本图和输出块长度。要查看输入映射如何到输出上,请绘制代码块段索引相对于串联输入中的相应索引。在每个代码块段中,最后280位代表CRC和填充位。这些额外的位从恢复的数据中删除。

cbs = reshape([1:10560]',[],2); bgn = 1; blklen = 10000; blk = nrCodeBlockDesegmentLDPC(cbs,bgn,blklen); plot(blk); xlabel('Code Block Bit Indices');ylabel(“恢复数据位指数”);title(“代码块脱色操作”);

输入参数

全部收缩

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

数据类型:双倍的|int8

基本图号,指定为1or2

数据类型:双倍的

输出块长度,指定为非负整数。如果布尔克伦0,,,,then bothBLKand是空的。功能使用布尔克伦验证输入的数据尺寸cbs并计算要删除的填充物数量。

数据类型:双倍的

输出参数

全部收缩

串联数据块,返回为空矢量(当布尔克伦0)或真实的列向量。该函数删除了输入中存在的任何填充物和类型24B CRC位cbs。The outputBLK从输入继承其数据类型cbs

数据类型:双倍的|int8

CRC错误,作为以下值之一返回:

  • 空矢量 - 当功能返回此值时布尔克伦0或者如果cbs只有一列(不进行CRC解码)。

  • 非负整数的向量 - 如果cbs有多个列,包含通过解码每个代码块段中的类型24B CRC位获得的CRC错误位。长度等于代码块段的数量(输入中的列数cbs)。

数据类型:UINT32

References

[[1]3GPP TS 38.212。“ nr;多路复用和通道编码。”第三代合伙项目;技术规格组无线电访问网络

扩展功能

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

在R2018B中引入