主要内容

nrCarrierConfig

载波配置参数

说明

nrCarrierConfig 对象为特定 OFDM 参数集设置载波配置参数,如 TS 38.211 第 4.2、4.3 和 4.4 节[1] 中所定义。

该对象定义了载波的子载波间隔、带宽以及相对于点 A(公共资源块 0 (CRB 0) 中子载波 0 的中心)的偏移量参数。对于 60 kHz 子载波间隔,您可以指定普通循环前缀或扩展循环前缀。该对象的只读属性提供了载波资源网格的时域维度。默认情况下,该对象指定一个 10 MHz 载波,对应于 52 个资源块 (RB) 和 15 kHz 子载波间隔。您可以通过指定当前时隙和帧编号,在面向时隙的处理中使用该对象。

创建对象

描述

carrier = nrCarrierConfig 创建具有默认属性的载波配置对象。

示例

carrier = nrCarrierConfig(Name,Value) 使用一个或多个名称-值对组参量指定属性。每个属性需用引号括起来。例如,'SubcarrierSpacing',30,'NSizeGrid',273 指定一个 100 MHz 载波,对应于 273 个 RB 和 30 kHz 子载波间隔。未指定的属性采用其默认值。

示例

属性

全部展开

物理层小区标识,指定为 0 到 1007 之间的整数。

数据类型: double

子载波间隔 (kHz),适用于载波的所有信道和参考信号,指定为 153060120240480960

数据类型: double

循环前缀长度,指定为以下选项之一。

  • 'normal' - 使用此值可指定普通循环前缀。此选项对应于一个时隙中的 14 个 OFDM 符号。

  • 'extended' - 使用此值可指定扩展循环前缀。此选项对应于一个时隙中的 12 个 OFDM 符号。对于 TS 38.211 第 4.2 节中指定的参数集,扩展循环前缀长度仅适用于 60 kHz 子载波间隔。

数据类型: char | string

载波资源网格中的 RB 数量,指定为 1 到 275 之间的整数。默认值 52 对应于具有 15 kHz SCS 的 10 MHz 载波的最大 RB 数量。

数据类型: double

相对于 CRB 0 的载波资源网格起始位置,指定为 0 到 2199 之间的整数。此属性对应于高层参数 offsetToCarrier

数据类型: double

时隙数,指定为非负整数。您可以将 NSlot 设置为大于每帧时隙数的值。例如,您可以在 MATLAB® 仿真中使用发射循环计数器来设置此值。在这种情况下,您可能需要确保在调用代码中,该属性值对每帧时隙数取模。

数据类型: double

系统帧编号,指定为非负整数。您可以将 NFrame 设置为大于最大帧编号 1023 的值。例如,您可以在 MATLAB 仿真中使用发射循环计数器来设置此值。在这种情况下,您可能需要确保在调用代码中,该属性值对 1024 取模。

数据类型: double

自 R2023b 起

用于 FR1 共享频谱信道接入操作的小区内保护带,指定为以下选项之一:

  • 由非负整数组成的 NGB×2 矩阵 - NGB 是保护带的数量。每行定义一个保护带:第一列指定相对于载波的第一个 CRB 的保护带起始位置(通过 NStartGrid 指定),第二列定义保护带的大小(以 RB 为单位)。

  • nrIntraCellGuardBandsConfig 对象组成的元胞数组 - 只有与 SubcarrierSpacing 对象属性具有相同子载波间隔的保护带配置才适用。

默认值 [] 表示未配置小区内保护带,这意味着所有资源均可用。

此属性对应于 TS 38.331[2] 中的高层参数 IntraCellGuardBandsPerSCS

此 属性 为只读。

每个时隙的 OFDM 符号数,对于普通循环前缀返回为 14,对于扩展循环前缀返回为 12。对象会基于 CyclicPrefix 属性来设置此属性。

数据类型: double

此 属性 为只读。

每 1 毫秒子帧的时隙数,返回为 1248163264。对象会分别基于 SubcarrierSpacing 属性值 153060120240480960 来设置此属性。

数据类型: double

此 属性 为只读。

每 10 毫秒帧的时隙数,返回为 10204080160320640。对象会分别基于 SubcarrierSpacing 属性值 153060120240480960 来设置此属性。

数据类型: double

示例

全部折叠

创建一个具有默认属性的载波配置对象。该对象对应于 10 MHz 载波。

carrier = nrCarrierConfig;

创建一个具有默认属性的 CSI-RS 配置对象。

csirs = nrCSIRSConfig;

生成 single 数据类型的 CSI-RS 符号。

[sym,info_sym] = nrCSIRS(carrier,csirs,'OutputDataType','single');

为 CSI-RS 生成资源元素索引。

[ind,info_ind] = nrCSIRSIndices(carrier,csirs);

创建一个载波配置对象,将时隙数指定为 10

carrier = nrCarrierConfig('NSlot',10);

为两个周期性资源创建一个 CSI-RS 资源配置对象。指定一个 NZP 资源和一个 ZP 资源,行号分别为 35,符号位置分别为 139,子载波位置分别为 64。对于这两个资源,将周期设置为 5,将偏移量设置为 1,将密度设置为 'one'

csirs = nrCSIRSConfig;
csirs.CSIRSType = {'nzp','zp'};
csirs.CSIRSPeriod = {[5 1],[5 1]};
csirs.RowNumber = [3 5];
csirs.Density = {'one','one'};
csirs.SymbolLocations = {13,9};
csirs.SubcarrierLocations = {6,4};

为指定载波、CSI-RS 资源配置和输出格式名称-值对组参量生成 CSI-RS 符号和索引。验证符号和索引的格式。

[sym,info_sym] = nrCSIRS(carrier,csirs, ...
                'OutputResourceFormat','cell')
sym=1×2 cell array
    {0×1 double}    {0×1 double}

info_sym = struct with fields:
      ResourceOrder: [2 1]
           KBarLBar: {{1×1 cell}  {1×2 cell}}
    CDMGroupIndices: {[0]  [0 1]}
             KPrime: {[0 1]  [0 1]}
             LPrime: {[0]  [0]}

[ind,info_ind] = nrCSIRSIndices(carrier,csirs, ...
                'IndexStyle','subscript','OutputResourceFormat','cell')
ind=1×2 cell array
    {0×3 uint32}    {0×3 uint32}

info_ind = struct with fields:
      ResourceOrder: [2 1]
           KBarLBar: {{1×1 cell}  {1×2 cell}}
    CDMGroupIndices: {[0]  [0 1]}
             KPrime: {[0 1]  [0 1]}
             LPrime: {[0]  [0]}

验证生成的输出是否按照指定的 csirs.CSIRSType 索引排序,即先 ZP-CSI-RS 资源后 NZP-CSI-RS 资源。

info_sym.ResourceOrder
ans = 1×2

     2     1

info_ind.ResourceOrder
ans = 1×2

     2     1

参考

[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.331. “NR; Radio Resource Control (RRC) protocol specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2019b 中推出

全部展开