文档

nrULSCH

采用UL-SCH编码器加工链

描述

nrULSCH系统对象™将上行共享通道(UL-SCH)编码器处理链应用到传输块。ull - sch编码过程包括循环冗余校验(CRC)、代码块分割和CRC、低密度奇偶校验(LDPC)编码、速率匹配和代码块拼接。该对象实现了TR 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对象如何工作的信息,请参见什么是系统对象?(MATLAB)。

创建

描述

encUL= nrULSCH创建一个UL-SCH编码器系统对象。

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

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

属性

全部展开

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

如果属性是可调,您可以随时更改其值。

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

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

数据类型:逻辑

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

可调:是的

数据类型:

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

数据类型:逻辑

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

依赖关系

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

数据类型:

使用

描述

例子

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

例子

codedBits= encUL (___harqIDHARQ进程号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个传输层,如果指定16 Foroutlen,实际输出长度为6x1x3 = 18。

数据类型:

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

数据类型:

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

数据类型:

输出参数

全部展开

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

数据类型:int8

对象的功能

要使用对象函数,请将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解码器系统对象。

decUL = nrULSCHDecoder;decUL。TargetCodeRate = TargetCodeRate;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
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