主要内容

nrULSCH

采用UL-SCH编码器加工链

描述

nrULSCH系统对象™将上行共享通道(UL-SCH)编码器处理链应用于传输块。UL-SCH编码过程包括循环冗余校验(CRC)、码块分割和CRC、低密度奇偶校验(LDPC)编码、速率匹配和码块拼接。该对象实现了TS 38.212的这些方面[1]

  • 第6.2.1节:传输块CRC附件

  • 第6.2.2节:LDPC基图的选择

  • 第6.2.3节:代码块分割和代码块CRC附件

  • 第6.2.4节:UL-SCH的信道编码

  • 第6.2.5节:速率匹配

  • 第6.2.6节:代码块连接

应用UL-SCH编码器加工链:

  1. 创建nrULSCH对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

encUL= nrULSCH创建UL-SCH编码器System对象。

encUL= nrULSCH (名称,值使用一个或多个名称值对创建具有属性的对象。括在引号内的属性名称,后跟指定值。未指定的属性占用默认值。

例子:例如,nrULSCH (MultipleHARQProcesses,真的)创建对象并启用多个混合自动重复请求(HARQ)进程。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

启用多个HARQ进程,指定为真正的.当设置为,对象使用单个进程。当设置为真正的,对象使用多个HARQ进程,最多16个。在这两种情况下,为了在发生故障时启用重传输,对象缓冲输入数据。

数据类型:逻辑

目标码率,指定为间隔(0,1)内的实数,默认值为526/1024。

可调:是的

数据类型:

启用有限的缓冲速率匹配,指定为真正的.当设置为,用于速率匹配的内部缓冲区的大小是每个代码块的完整编码长度。当设置为真正的时,可通过设置LimitedBufferSize财产。

数据类型:逻辑

用于速率匹配的限量缓冲大小,指定为正整数。默认值对应于384×66,这是代码块的最大编码长度。默认值意味着缓冲区大小没有限制。

依赖关系

若要启用此属性,请设置LimitedBufferRateMatching真正的

数据类型:

使用

描述

例子

codedBits= encUL (国防部nLayersoutlen房车将UL-SCH编码器处理链应用于先前加载到对象中的传输块。该对象将编码的、速率匹配的和连接的代码块作为长度的码字返回outlen.调用此对象之前,必须使用setTransportBlock对象的功能。国防部指定调制方式。nLayers指定传输层数。房车指定传输的冗余版本。

例子

codedBits= encUL (___harqID指定HARQ进程号harqID除了前面语法中的输入参数外,还与当前传输块一起使用。要使用此语法,请设置MultipleHARQProcesses财产真正的.当属性设置为时,对象使用HARQ进程号0。

输入参数

全部展开

调制方案,指定为“π/ 2-BPSK”“正交相移编码”16 qam的64 qam,或256 qam.这个调制方案决定了调制类型和每个调制符号使用的比特数。

调制方案 每个符号的位数
“π/ 2-BPSK” 1
“正交相移编码” 2
16 qam的 4
64 qam 6
256 qam 8

数据类型:字符|字符串

传输图层数,指定为从1到4的整数。有关更多信息,请参阅TS 38.211第6.3.1.3节。

数据类型:

输出码字长度,以位为单位,指定为非负整数。实际的输出长度是每个符号的比特数和传输层数乘积的倍数。例如,对于64-QAM和1个传输层,如果指定16outlen,实际输出长度为6x1x3 = 18。

数据类型:

冗余版本,指定为0到3之间的整数。

数据类型:

HARQ进程号,取值为0 ~ 15的整数。

数据类型:

输出参数

全部展开

UL-SCH码字,返回为长度的二进制列向量outlen.码字是通过处理传输块而获得的经过编码、速率匹配和连接的码块。

数据类型:int8

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

getTransportBlock 从UL-SCH或DL-SCH编码器获取传输块
setTransportBlock 将传输块装入UL-SCH或DL-SCH编码器
一步 运行系统对象算法
克隆 创建重复的系统对象
isLocked 确定系统对象在使用
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置内部状态系统对象

例子

全部折叠

生成一个长度为5120的传输块对应的二进制值的随机序列。

trBlkLen = 5120;trBlk = randi([0 1],trBlkLen,1,“int8”);

创建并配置具有指定目标码率的UL-SCH编码器系统对象。

targetCodeRate = 567/1024;encUL = nrULSCH;encUL。TargetCodeRate = TargetCodeRate;

将传输块装入UL-SCH编码器。

setTransportBlock (encUL trBlk);

调用64-QAM调制方案,1传输层,10240位输出长度,冗余版本0的编码器。编码器将UL-SCH处理链应用于加载到对象中的传输块。

mod =64 qam;nLayers = 1;outlen = 10240;房车= 0;codedTrBlock = encUL (mod, nLayers outlen, rv);

创建并配置一个UL-SCH解码器System对象。

Decul = Nrulschdecoder;Decul.targetCoderate = TargetCodate;decul.transportblocklength = trblklen;

在代表编码传输块的软位上调用UL-SCH解码器。使用为编码器指定的配置参数。输出中的错误标志表示块解码没有错误。

rxSoftBits = 1.0 - 2.0*double(codedTrBlock);[decbits, blkerr] = decUL (mod, rxSoftBits nLayers, rv)
decbits =5120x1 INT8列向量1 1 0 1 1 0 0 1 1 1 1⋮
blkerr =逻辑0

验证发送和接收的消息位是相同的。

isequal (decbits trBlk)
ans =逻辑1

生成一个长度为5120的传输块对应的二进制值的随机序列。

trBlkLen = 5120;trBlk = randi([0 1],trBlkLen,1,“int8”);

创建并配置一个UL-SCH编码器系统对象,用于多个HARQ进程。

encUL = nrULSCH;encUL。MultipleHARQProcesses = true;

将传输块加载到UL-SCH编码器中,指定HARQ进程号2。

harqID = 2;setTransportBlock (encUL trBlk harqID);

调用具有QPSK调制方案、3个传输层、输出长度为10002位、冗余版本3的编码器。编码器将UL-SCH处理链应用于加载到HARQ进程2对象中的传输块。

mod =“正交相移编码”;nLayers = 3;outlen = 10002;房车= 3;codedTrBlock = encUL (mod, nLayers outlen,房车,harqID);

验证已编码的传输块具有所需的位数。

isequal(长度(codedTrBlock)、outlen)
ans =逻辑1

参考

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

[2]3 gpp TS 38.211。“NR;物理通道和调制。”第三代合作伙伴项目;技术规范无线电接入网

扩展功能

另请参阅

对象

功能

介绍了R2019a