主要内容

nrDLSCH

应用DL-SCH编码器处理链

描述

这个nrDLSCH系统对象™将下行链路共享通道(DL-SCH)编码器处理链应用于一个或两个传输块。DL-SCH编码过程由循环冗余校验(CRC),代码块分段和CRC,低密度奇偶校验(LDPC)编码,速率匹配和代码块连接组成。系统对象实现TS 38.212第7.2节[1]

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

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

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

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

创造

描述

ENCDL.= nrdlsch.创建DL-SCH编码器系统对象。

ENCDL.= nrdlsch(名称,价值)使用一个或多个名称-值对创建具有属性的对象。将属性名括在引号内,后面跟着指定的值。未指定的属性采用默认值。

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

性质

展开全部

除非另有说明,否则属性为不可努力,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定释放功能解锁它们。

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

有关更改特性值的详细信息,请参见基于系统对象的MATLAB系统设计

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

数据类型:符合逻辑的

目标代码率,指定为数字标量或1×2数字矢量。值必须位于间隔(0,1)。默认值对应于526/1024。如果您指定目标编码率作为标量,对象在处理两个传输块时应用标量扩展。要为每个传输块指定不同的目标码率,请指定目标编码率作为向量。

可调:

数据类型:双倍的

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

数据类型:双倍的

用法

描述

例子

编码比特=encDL(摩擦,纳罗尔,奥特伦,房车)将DL-SCH编码器处理链应用于一个或两个传输块。该对象以一个或两个长度的码字的形式返回编码的、速率匹配的和级联的代码块奥特伦.调用此对象之前,必须使用设置传输块目标函数。摩擦指定调制方式。纳罗尔指定传输层的数量。房车指定传输的冗余版本。

例子

编码比特=encDL(___,哈里琴)指定HARQ进程号哈里琴除了前面语法中的输入参数外,还与当前传输一起使用。要使用此语法,请设置多进程财产真的.当属性设置为时假的,对象使用HARQ进程号0。

处理两个传输块时,调用时为每个传输块指定相同的HARQ进程号设置传输块功能。

输入参数

展开全部

调制方案,指定为'QPSK',16 qam的,“64QAM”,'256QAM',字符串阵列或字符向量的单元格数组。该调制方案确定每个调制符号使用的调制类型和比特数。对于两个传输块,调制方案适用于两个块。或者,您可以使用字符串阵列或字符向量的小区数组来为每个传输块指定不同的调制方案。

调制方案 每个符号的位数
'QPSK' 2.
16 qam的 4.
“64QAM” 6.
'256QAM' 8.

数据类型:char|一串

传输层数,指定为1到8之间的整数。对于纳罗尔>4,对象需要两个传输块。

数据类型:双倍的

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

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

数据类型:双倍的

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

数据类型:双倍的

HARQ过程编号,指定为0到15的整数。

数据类型:双倍的

输出参数

展开全部

一个或两个DL-SCH码字,作为二进制列向量或两个二进制列向量的单元数组返回。码字是通过处理一个传输块而获得的编码、速率匹配和级联码块。通过使用奥特伦输入参数。

数据类型:int8

目标函数

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

释放(obj)

展开全部

getTransportBlock 从UL-SCH或DL-SCH编码器获取传输块
设置传输块 将传输块加载到UL-SCH或DL-SCH编码器中
系统对象算法
克隆 创建重复系统对象
孤岛 确定if.系统对象正在使用中
释放 释放资源并允许更改系统对象属性值和输入特征
重启 使内部状态复位系统对象

例子

全部收缩

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

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

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

TargetCoderate = 567/1024;encdl = nrdlsch;encdl.targetCoderate = targetCodate;

将传输块加载到DL-SCH编码器中。

setTransportBlock(ENCDL,TRBLK);

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

国防部=“64QAM”;nlayers = 1;概述= 10240;RV = 0;CodedTrblock = ENCDL(MOD,NLayers,Intenten,RV);

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

decDL=nrDLSCHDecoder;decDL.TargetCodeRate=TargetCodeRate;decDL.TransportBlockLength=trBlkLen;

将DL-SCH解码器致电表示编码传输块的软比特。使用为编码器指定的配置参数。输出中的错误标志表示块解码没有错误。

rxSoftBits=1.0-2.0*双精度(CodedTtrBlock)[decbits,blkerr]=decDL(rxSoftBits,mod,nLayers,rv)
十进位=5120x1 int8列向量1 1 0 1 1 0 1 1 1⋮
布克尔=符合逻辑的0

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

Isequal(Decbits,Trblk)
ans =.符合逻辑的1.

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

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

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

encdl = nrdlsch;encdl.multipreharqprocesses = true;

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

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

使用QPSK调制方案调用编码器,3个传输层,输出长度为10,002位,冗余版本3.编码器将DL-SCH处理链应用于加载到HARQ过程编号2对象的传输块。

国防部='QPSK'; nLayers=3;outlen=10002;rv=3;codedTrBlock=encDL(mod、nLayers、outlen、rv、harqID);

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

等长(长度(代码块),输出长度)
ans =.符合逻辑的1.

参考文献

[1]3GPP TS 38.212。“nr;多路复用和信道编码。“第三代合作伙伴计划;技术规范集团无线电接入网络

扩展能力

在R2019a中引入