CSI-RS configuration parameters
The nrCSIRSConfig
object sets channel state information
reference signal (CSI-RS) configuration parameters for one or more zero-power (ZP) or
non-zero-power (NZP) CSI-RS resources, as defined in TS 38.211 Section 7.4.1.5 [1].
csirs = nrCSIRSConfig
creates a CSI-RS configuration object with
default properties.
csirs = nrCSIRSConfig(
specifies
properties using one or more name-value pair arguments. Enclose each property in quotes.
For example,
Name,Value
)'CSIRSType',{'zp','nzp','zp'},'Density',{'one','dot5odd','three'},'SubcarrierLocations',{0,4,[0
4]}
specifies three CSI-RS resources with different frequency density values
and different frequency-domain locations. Unspecified properties take their default
values.
CSIRSType
— Type of one or more CSI-RS resource configurations'nzp'
(default) | 'zp'
| cell array | string scalar | string arrayType of one or more CSI-RS resource configurations, specified as one of these options.
'nzp'
— Use this option to specify a single NZP-CSI-RS resource.
'zp'
— Use this option to specify a single ZP-CSI-RS resource.
Cell array with elements 'nzp'
or 'zp'
— Use this option to specify multiple CSI-RS resources.
Alternatively, you can specify this property by using "nzp"
and
"zp"
as string scalars or as elements of a string array.
The number of CSI-RS resource configurations is equal to the number of values provided for this property.
Data Types: cell
| string
| char
CSIRSPeriod
— Slot periodicity and offset of CSI-RS resource'on'
(default) | 'off'
| vector of integers | cell array | string scalar | string arraySlot periodicity and offset of the CSI-RS resource, specified as one of these options.
For Single CSI-RS Resource
'on'
— Use this option to indicate that the resource is present in all slots.
'off'
— Use this option to indicate that the resource is absent in all slots.
Vector of integers of the form [Tcsi-rs Toffset] — Use this option to specify slot periodicity Tcsi-rs and offset Toffset for scheduling the CSI-RS resource in specific slots.
Tcsi-rs is 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 160, 320, or 640. For a particular value of Tcsi-rs, the value of Toffset is in the range from 0 to Tcsi-rs–1.
For Multiple CSI-RS Resources
Cell array with elements 'on'
,
'off'
, or [Tcsi-rs
Toffset] — The number of elements in the cell array must
be one or equal the number of CSI-RS resources specified by the
CSIRSType
property. When the cell array contains
only one element, the specified value applies to all CSI-RS
resources.
Alternatively, you can specify this property by using "on"
and
"off"
as string scalars or as elements of a string array.
This property is the higher-layer parameter CSI-ResourcePeriodicityAndOffset or slotConfig defined in the CSI-RS-CellMobility IE.
Data Types: cell
| string
| char
| double
RowNumber
— Row number of CSI-RS resource3
(default) | integer from 1 to 18 | vector of integersRow number of CSI-RS resource, as defined in TS 38.211 Table 7.4.1.5.3-1, specified as one of these options.
For Single CSI-RS Resource
Integer from 1 to 18
For Multiple CSI-RS Resources
Vector of integers in the range from 1 to 18 — The number of vector
elements must equal the number of CSI-RS resources specified by the
CSIRSType
property.
Data Types: double
Density
— Frequency density of CSI-RS resource'one'
(default) | 'three'
| 'dot5even'
| 'dot5odd'
| cell array | string scalar | string arrayFrequency density of the CSI-RS resource, as defined in TS 38.211 Table 7.4.1.5.3-1, specified as one of these options.
For Single CSI-RS Resource
'one'
— This option corresponds to ρ = 1 from the specified table.
'three'
— This option corresponds to ρ = 3 from the specified table.
'dot5even'
— This option corresponds to ρ = 0.5 from the specified table with even resource block (RB) allocation regarding the common resource block 0 (CRB 0).
'dot5odd'
— This option corresponds to ρ = 0.5 from the specified table with odd RB allocation regarding CRB 0.
For Multiple CSI-RS Resources
Cell array of the character vectors 'one'
,
'three'
, 'dot5even'
, or
'dot5odd'
— The number of elements in the cell array
must equal the number of CSI-RS resources specified by the
CSIRSType
property.
Alternatively, you can specify this property by using "one"
,
"three"
, "dot5even"
, and
"dot5odd"
as string scalars or as elements of a string
array.
The value of ρ is the higher-layer parameter density defined in the CSI-RS-ResourceMapping IE or the CSI-RS-CellMobility IE.
Data Types: cell
| string
| char
SymbolLocations
— Time-domain locations of CSI-RS resource0
(default) | integer from 0 to 13 | vector of integers | cell arrayTime-domain locations of the CSI-RS resource (l0 and l1 values in the TS 38.211 Table 7.4.1.5.3-1), specified as one of these options.
For Single CSI-RS Resource
Integer from 0 to 13 — This option corresponds to the l0 value in the specified table.
Vector of integers of the form [l0 l1] or [l0; l1], where l0 and l1 are the corresponding l0 and l1 values in the specified table — The l1 values are required only in table rows 13, 14, 16, and 17. l0 is an integer from 0 to 13, and l1 is an integer from 2 to 12.
For Multiple CSI-RS Resources
Cell array of
l0
values or vectors of the form
[l0
l1] or
[l0;
l1] —
The number of elements in the cell array must equal
the number of CSI-RS resources specified by the
CSIRSType
property.
The values of l0 and l1 are the higher-layer parameters firstOFDMSymbolInTimeDomain and firstOFDMSymbolInTimeDomain2, respectively, in the CSI-RS-ResourceMapping IE or CSI-RS-Resource-Mobility IE.
Data Types: double
SubcarrierLocations
— Frequency-domain locations of CSI-RS resource0
(default) | numeric vector | cell arrayFrequency-domain locations of the CSI-RS resource (ki values in the TS 38.211 Table 7.4.1.5.3-1), specified as one of these options.
For Single CSI-RS Resource
Numeric vector with elements 1, 2, 3, 4, or 6 — The vector elements correspond to the possible lengths of subcarrier locations.
For Multiple CSI-RS Resources
Cell array of numeric vectors with elements 1, 2, 3, 4, or 6 — The number
of elements in the cell array must equal the number of CSI-RS resources
specified by the CSIRSType
property.
Data Types: double
NumRB
— CSI-RS resource bandwidth52
(default) | integer from 1 to 275 | vector of integersCSI-RS resource bandwidth, in terms of the number of allocated RBs, specified as one of these options.
For Single CSI-RS Resource
Integer from 1 to 275
For Multiple CSI-RS Resources
Vector of integers in the range from 1 to 275 — The number of vector
elements must equal to one or the number of CSI-RS resources specified by
the CSIRSType
property. When the vector contains only
one element, the specified value applies to all CSI-RS resources.
This property is the higher-layer parameter nrOfRBs in FrequencyOccupation IE or nrOfPRBs in CSI-RS-ResourceConfigMobility IE.
Data Types: double
RBOffset
— Starting RB index of CSI-RS resource allocation0
(default) | integer from 0 to 274 | vector of integersStarting RB index of the CSI-RS resource allocation, relative to the carrier resource grid, specified as one of these options.
For Single CSI-RS Resource
Integer from 0 to 274
For Multiple CSI-RS Resources
Vector of integers in the range from 0 to 274 — The number of vector elements
must be one or equal the number of CSI-RS resources specified by the
CSIRSType
property. When the vector contains only one
element, the specified value applies to all CSI-RS resources.
Data Types: double
NID
— Scrambling identity0
(default) | integer from 0 to 1023 | vector of integersScrambling identity, specified as one of these options.
For Single CSI-RS Resource
Integer from 0 to 1023
For Multiple CSI-RS Resources
Vector of integers in the range from 0 to 1023 — The number of vector elements must be one or equal the number of CSI-RS resources specified by the CSIRSType
property. When the vector contains only one element, the specified value applies to all CSI-RS resources.
This property is the higher-layer parameter scramblingID in NZP-CSI-RS-Resource IE or sequenceGenerationConfig in CSI-RS-ResourceConfigMobility IE.
When the CSIRSType
property defines only ZP resources, this property is
hidden.
Data Types: double
NumCSIRSPorts
— Number of CSI-RS antenna ports2
(default) | 1
| 4
| 8
| 12
| 16
| 24
| 32
| vector of integersThis property is read-only.
Number of CSI-RS antenna ports, specified as 1
,
2
, 4
, 8
,
12
, 16
, 24
,
32
, or a vector of integers from this list. The object sets this
property based on the RowNumber
property.
Data Types: double
CDMType
— CDM type of CSI-RS resource'FD-CDM2'
(default) | 'noCDM'
| 'CDM4'
| 'CDM8'
| cell arrayThis property is read-only.
CDM type of CSI-RS resource, specified as 'noCDM'
,
'FD-CDM2'
, 'CDM4'
, 'CDM8'
, or
a cell array of character vectors from this list. The object sets this property based on
the RowNumber
property.
Data Types: char
Create a carrier configuration object, specifying the slot number as 10
.
carrier = nrCarrierConfig('NSlot',10);
Create a CSI-RS resource configuration object for two periodic resources. Specify one NZP resource and one ZP resource with row numbers 3
and 5
, symbol locations 13
and 9
, and subcarrier locations 6
and 4
, respectively. For both resources, set the periodicity to 5
, offset to 1
, and density to '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};
Generate CSI-RS symbols and indices for the specified carrier, CSI-RS resource configuration, and output formatting name-value pair arguments. Verify the format of the symbols and indices.
[sym,info_sym] = nrCSIRS(carrier,csirs,... 'OutputResourceFormat','cell')
sym=1×2 cell array
{0x1 double} {0x1 double}
info_sym = struct with fields:
ResourceOrder: [2 1]
KBarLBar: {{1x1 cell} {1x2 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
{0x3 uint32} {0x3 uint32}
info_ind = struct with fields:
ResourceOrder: [2 1]
KBarLBar: {{1x1 cell} {1x2 cell}}
CDMGroupIndices: {[0] [0 1]}
KPrime: {[0 1] [0 1]}
LPrime: {[0] [0]}
Verify that the generated outputs are in the order of ZP-CSI-RS resources followed by NZP-CSI-RS resources in terms of the specified csirs.CSIRSType
indices.
info_sym.ResourceOrder
ans = 1×2
2 1
info_ind.ResourceOrder
ans = 1×2
2 1
Create a carrier configuration object with default properties.
carrier = nrCarrierConfig;
Create a CSI-RS resource configuration object with CSI-RS parameters set for tracking. Specify four periodic NZP-CSI-RS resources in two consecutive slots. Specify for each slot to contain two periodic NZP-CSI-RS resources with periodicity set to 20
. Set the offset for the first two resources to 0
. Set the offset for the next two resources to 1
. Set the row number to 1
and density to 'three'
for all resources.
csirs = nrCSIRSConfig; csirs.CSIRSType = {'nzp','nzp','nzp','nzp'}; csirs.CSIRSPeriod = {[20 0],[20 0],[20 1],[20 1]}; csirs.RowNumber = [1 1 1 1]; csirs.Density = {'three','three','three','three'}; csirs.SymbolLocations = {6,10,6,10}; csirs.SubcarrierLocations = {0,0,0,0};
Generate CSI-RS symbols and indices for the default slot number of the carrier configuration object (slot number 0).
ind0 = nrCSIRSIndices(carrier,csirs); sym0 = nrCSIRS(carrier,csirs);
Map the symbols to a carrier grid of one slot duration.
gridSize = [12*carrier.NSizeGrid carrier.SymbolsPerSlot max(csirs.NumCSIRSPorts)]; slotgrid0 = complex(zeros(gridSize)); slotgrid0(ind0) = sym0;
Change the absolute slot number in the carrier configuration from 0
to 1
.
carrier.NSlot = 1;
Generate CSI-RS symbols and indices for slot number 1.
ind1 = nrCSIRSIndices(carrier,csirs); sym1 = nrCSIRS(carrier,csirs);
Map the symbols to another carrier grid of one slot duration.
slotgrid1 = complex(zeros(gridSize)); slotgrid1(ind1) = sym1;
Concatenate the two slots to form the final grid.
grid = [slotgrid0 slotgrid1];
Plot the grid.
imagesc(abs(grid(:,:,1))); axis xy; title('CSI-RS as Tracking Reference Signal'); xlabel('OFDM Symbols'); ylabel('Subcarriers');
[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
You have a modified version of this example. Do you want to open this example with your edits?