nrPUSCHPTRSConfig
Description
The nrPUSCHPTRSConfig
object sets phase tracking reference signal
(PT-RS) configuration parameters for the physical uplink shared channel (PUSCH), as defined in
TS 38.211 Section 6.4.1.2 [1]. This object bundles all the
properties involved in PUSCH PT-RS symbols and indices generation. By default, the object
defines the PT-RS with a frequency density of 2 and time density of 1. Use this object when
setting the PTRS
property of the nrPUSCHConfig
or nrWavegenPUSCHConfig
objects.
Creation
Description
creates a
PUSCH-specific PT-RS configuration object with default properties.ptrs
= nrPUSCHPTRSConfig
specifies properties using one or more name-value pair arguments. Enclose each property in
quotes. For example, ptrs
= nrPUSCHPTRSConfig(Name,Value
)'TimeDensity',2,'FrequencyDensity',4
sets the time
density to 2 and frequency density to 4. Unspecified properties take their default
values.
Properties
TimeDensity
— PT-RS time density
1
(default) | 2
| 4
PT-RS time density, specified as 1
, 2
, or
4
. This property is the higher layer parameter
timeDensity.
Data Types: double
FrequencyDensity
— PT-RS frequency density
2
(default) | 4
PT-RS frequency density, specified as 2
or 4
.
This property is the higher layer parameter
frequencyDensity.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with
TransformPrecoding
set to 0
.
Data Types: double
NumPTRSSamples
— Number of PT-RS samples
2
(default) | 4
Number of PT-RS samples per PT-RS group, specified as 2
or
4
. This property is the higher layer parameter
sampleDensity.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with TransformPrecoding
set to
1
.
Data Types: double
NumPTRSGroups
— Number of PT-RS groups
2
(default) | 4
| 8
Number of PT-RS groups, specified as 2
, 4
, or
8
. This property is the higher layer parameter
sampleDensity.
When this property is set to 8
, the number of PT-RS samples set
by the NumPTRSSamples
property must be set to 4.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with TransformPrecoding
set to
1
.
Data Types: double
REOffset
— Resource element offset
'00'
(default) | '01'
| '10'
| '11'
Resource element offset, specified as '00'
,
'01'
,'10'
, or '11'
. This
property is the higher layer parameter
resourceElementOffset.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with TransformPrecoding
set to
0
.
Data Types: char
| string
PTRSPortSet
— PT-RS antenna port set
[]
(default) | nonnegative integer | two-element vector of nonnegative integers
PT-RS antenna port set, specified as a two-element vector of nonnegative integers.
Specify []
to set this property to the lowest value in the DMRSPortSet
property of nrPUSCHDMRSConfig
object.
This usage of []
value is applicable only when
nrPUSCHDMRSConfig
object is used as a property of
nrPUSCHConfig
object.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with TransformPrecoding
set to
0
.
Data Types: double
NID
— PT-RS scrambling identity
[]
(default) | integer from 0 to 1007
PT-RS scrambling identity, specified as an integer from 0 to 1007. Specify
[]
to set this property equal to the NRSID
property of nrPUSCHDMRSConfig
object.
Dependencies
This property applies only when nrPUSCHPTRSConfig
is a property
of nrPUSCHConfig
with TransformPrecoding
set to
1
.
Data Types: double
Examples
Create PUSCH PT-RS Object
Create a default PUSCH configuration object. Enable the PT-RS configuration and transform precoding for a DFT-s-OFDM waveform.
pusch = nrPUSCHConfig; pusch.EnablePTRS = 1; pusch.TransformPrecoding = 1;
Create a default PT-RS configuration object for the PUSCH. Set number of PT-RS samples to 4, number of PT-RS groups to 8, and PT-RS scrambling identity to 750.
ptrs = nrPUSCHPTRSConfig; ptrs.NumPTRSSamples = 4; ptrs.NumPTRSGroups = 8; ptrs.NID = 750;
Assign the PUSCH PT-RS configuration object to the PTRS property of PUSCH configuration object.
pusch.PTRS = ptrs;
Display the properties for PUSCH PT-RS configuration object and PUSCH configuration object, respectively.
disp(pusch)
nrPUSCHConfig with properties: NSizeBWP: [] NStartBWP: [] Modulation: 'QPSK' NumLayers: 1 MappingType: 'A' SymbolAllocation: [0 14] PRBSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51] TransformPrecoding: 1 TransmissionScheme: 'nonCodebook' NumAntennaPorts: 1 TPMI: 0 CodebookType: 'codebook1_ng1n4n1' FrequencyHopping: 'neither' SecondHopStartPRB: 1 Interlacing: 0 BetaOffsetACK: 20 BetaOffsetCSI1: 6.2500 BetaOffsetCSI2: 6.2500 UCIScaling: 1 NID: [] RNTI: 1 NRAPID: [] DMRS: [1x1 nrPUSCHDMRSConfig] EnablePTRS: 1 PTRS: [1x1 nrPUSCHPTRSConfig] Read-only properties: NumCodewords: 1
disp(pusch.PTRS)
nrPUSCHPTRSConfig with properties: TimeDensity: 1 NumPTRSSamples: 4 NumPTRSGroups: 8 NID: 750
Generate PUSCH PT-RS Indices for Codebook-Based Transmission
Create a carrier configuration object with default properties. This object corresponds to a 10 MHz carrier with 15 kHz subcarrier spacing.
carrier = nrCarrierConfig;
Create a PUSCH configuration object with codebook-based transmission and enable the PT-RS configuration. Set the number of antenna ports to 4 and transform precoding to 0. When transform precoding is 0, the waveform type is cyclic-prefix orthogonal frequency division multiplexing (CP-OFDM).
pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.EnablePTRS = 1;
Create a PUSCH phase tracking reference signal (PT-RS) configuration object with specified properties.
ptrs = nrPUSCHPTRSConfig;
ptrs.TimeDensity = 2;
ptrs.FrequencyDensity = 4;
ptrs.REOffset = '11';
Assign the PUSCH PT-RS configuration object to PTRS property of PUSCH configuration object.
pusch.PTRS = ptrs;
Generate PUSCH PT-RS indices in subscript form
ind = nrPUSCHPTRSIndices(carrier,pusch,'IndexStyle','subscript')
ind = 312x3 uint32 matrix
21 1 1
69 1 1
117 1 1
165 1 1
213 1 1
261 1 1
309 1 1
357 1 1
405 1 1
453 1 1
⋮
Generate PUSCH PT-RS Symbols and Indices
Create a carrier configuration object with 30 kHz subcarrier spacing and 5 MHz transmission bandwidth.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 11;
Create a PUSCH configuration object with intraslot frequency hopping and enable the PT-RS configuration. Set the transform precoding to 1, starting physical resource blocks (PRB) index of the second hop to 3 and PRB set to 0:5. When transform precoding is 1, the waveform type is discrete fourier transform spread orthogonal frequency division multiplexing (DFT-s-OFDM).
pusch = nrPUSCHConfig;
pusch.PRBSet = 0:5;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 3;
pusch.EnablePTRS = 1;
Create a PUSCH phase tracking reference signal (PT-RS) configuration object with specified properties.
ptrs = nrPUSCHPTRSConfig; ptrs.TimeDensity = 2; ptrs.NumPTRSSamples = 4; ptrs.NumPTRSGroups = 8; ptrs.NID = 750;
Assign the PUSCH PT-RS configuration object to PTRS property of PUSCH configuration object.
pusch.PTRS = ptrs;
Generate PUSCH PT-RS symbols of data type single.
sym = nrPUSCHPTRS(carrier,pusch,'OutputDataType','single')
sym = 192x1 single column vector
0.7071 + 0.7071i
-0.7071 + 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
-0.7071 + 0.7071i
0.7071 + 0.7071i
-0.7071 + 0.7071i
0.7071 + 0.7071i
0.7071 + 0.7071i
-0.7071 + 0.7071i
⋮
Generate PUSCH PT-RS indices in subscript form.
ind = nrPUSCHPTRSIndices(carrier,pusch,'IndexStyle','subscript')
ind = 192x3 uint32 matrix
1 1 1
2 1 1
3 1 1
4 1 1
12 1 1
13 1 1
14 1 1
15 1 1
21 1 1
22 1 1
⋮
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 R2020a
See Also
Functions
Objects
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)