文档

nrDLSCH

采用DL-SCH编码器加工链

描述

nrDLSCH系统对象™将下行共享通道(DL-SCH)编码器处理链应用到一个或两个传输块。DL-SCH编码过程包括循环冗余校验(CRC)、代码块分割和CRC、低密度奇偶校验(LDPC)编码、速率匹配和代码块拼接。System对象实现了TR 38.212章节7.2[1]

要应用DL-SCH编码器处理链:

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

  2. 调用带有参数的对象,就像调用函数一样。

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

创建

描述

encDL= nrDLSCH创建一个DL-SCH编码器系统对象。

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

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

属性

全部展开

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

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

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

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

数据类型:逻辑

目标码率,指定为数值标量或1乘2的数值向量。取值范围必须为(0,1)。缺省值为526/1024。如果你指定TargetCodeRate作为标量,对象在处理两个传输块时应用标量展开。要为每个传输块指定不同的目标码率,请指定TargetCodeRate作为一个向量。

可调:是的

数据类型:

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

数据类型:

使用

描述

例子

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

例子

codedBits= encDL (___harqIDHARQ进程号harqID与当前传输一起使用,用于前面语法中的输入参数之外。要使用此语法,请设置MultipleHARQProcesses财产真正的.当属性设置为,该对象使用HARQ进程号为0。

方法时,为每个传输块指定相同的HARQ进程号setTransportBlock函数。

输入参数

全部展开

调制方案,指定为“正交相移编码”16 qam的64 qam256 qam,字符串数组或字符向量的单元格数组。这种调制方案决定了调制类型和每个调制符号使用的比特数。对于两个传输块,调制方案都适用于两个传输块。或者,可以使用字符串数组或字符向量的单元格数组为每个传输块指定不同的调制方案。

调制方案 每个符号的比特数
“正交相移编码” 2
16 qam的 4
64 qam 6
256 qam 8

数据类型:字符|字符串

传输层数,取值为1 ~ 8之间的整数。为nLayers> 4,对象期望两个传输块。

数据类型:

输出码字长度(以位为单位),指定为非负整数或1 × 2整数向量。如果你指定outlen作为标量,对象在处理两个传输块时应用标量展开。若要为每个传输块指定不同的码字长度,请指定outlen作为一个向量。

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

数据类型:

冗余版本,指定为0到3的整数或1乘2的整数向量。如果你指定房车作为标量,对象在处理两个传输块时应用标量展开。要为每个传输块指定不同的冗余版本,请指定房车作为一个向量。

数据类型:

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

数据类型:

输出参数

全部展开

一个或两个DL-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”);

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

targetCodeRate = 567/1024;encDL = nrDLSCH;encDL。TargetCodeRate = TargetCodeRate;

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

setTransportBlock (encDL trBlk);

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

mod =64 qam;nLayers = 1;Outlen = 10240;Rv = 0;codedTrBlock = encDL(mod,nLayers,outlen,rv);

创建并配置DL-SCH解码器系统对象。

decDL = nrDLSCHDecoder;decDL。TargetCodeRate = TargetCodeRate;decDL。TransportBlockLength = trBlkLen;

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

rxSoftBits = 1.0 - 2.0*double(codedTrBlock);[decbits,blkerr] = decDL(rxSoftBits,mod,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”);

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

encDL = nrDLSCH;encDL。MultipleHARQProcesses = true;

负载输送块trBlk用于传输块编号0到DL-SCH编码器,指定HARQ进程编号2。

harqID = 2;trBlkID = 0;setTransportBlock (encDL trBlk、trBlkID harqID);

调用编码器的QPSK调制方案,3个传输层,输出长度10002位,冗余版本3。编码器将DL-SCH处理链应用到装载到HARQ进程号2的对象中的传输块。

mod =“正交相移编码”;nLayers = 3;Outlen = 10002;Rv = 3;codedTrBlock = encDL(mod,nLayers,outlen,rv,harqID);

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

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

参考文献

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

扩展功能

在R2019a中引入