nrCSIRSConfig
CSI-RS configuration parameters
Description
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].
Creation
Description
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.
Properties
CSIRSType
— Type of one or more CSI-RS resource configurations
'nzp'
(default) | 'zp'
| cell array | string scalar | string array
Type 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 array
Slot 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 theCSIRSType
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 resource
3
(default) | integer from 1 to 18 | vector of integers
Row 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 array
Frequency 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 theCSIRSType
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 resource
0
(default) | integer from 0 to 13 | vector of integers | cell array
Time-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.In a two-element vector based on l0 and l1, to avoid the overlap between the CDM groups corresponding to different CSI-RS ports, specify the symbol locations at least 2 locations apart.
The values of l0 and l1 are the higher-layer parameters firstOFDMSymbolInTimeDomain and firstOFDMSymbolInTimeDomain2, respectively, in the CSI-RS-ResourceMapping IE or CSI-RS-ResourceConfigMobility IE.
Data Types: double
SubcarrierLocations
— Frequency-domain locations of CSI-RS resource
0
(default) | numeric vector | cell array
Frequency-domain locations of the CSI-RS resource (ki elements in column 5 of TS 38.211 Table 7.4.1.5.3-1), specified as one of these options.
For Single CSI-RS Resource
Numeric vector with the number of elements 1, 2, 3, 4, or 6
For Multiple CSI-RS Resources
Cell array of numeric vectors with the number of 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.To avoid the overlap between the CDM groups that correspond to different CSI-RS ports, specify the subcarrier locations at least 2 locations apart. TS 38.211 Section 7.4.1.5.3 describes the procedure to calculate subcarrier locations from a bitmap defined by the higher-layer parameter frequencyDomainAllocation in the CSI-RS-ResourceMapping IE or CSI-RS-ResourceConfigMobility IE. To avoid the loss in orthogonality among different CSI-RS ports, this procedure ensures that there is no overlap between the CDM groups.
Data Types: double
NumRB
— CSI-RS resource bandwidth
52
(default) | integer from 1 to 275 | vector of integers
CSI-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 allocation
0
(default) | integer from 0 to 274 | vector of integers
Starting 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 identity
0
(default) | integer from 0 to 1023 | vector of integers
Scrambling 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 ports
2
(default) | 1
| 4
| 8
| 12
| 16
| 24
| 32
| vector of integers
This 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 array
This 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
Examples
Generate ZP and NZP-CSI-RS Symbols and Indices
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
Generate and Map CSI-RS Symbols Used for Tracking
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');
References
[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2019b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)