Generate PUSCH modulation symbols
[
returns physical uplink shared channel (PUSCH) modulation symbols, as defined in TS 38.211
Sections 6.3.1.1 to 6.3.1.5 [1]. The process consists of
scrambling with scrambling identity sym
,ptrsSym
] = nrPUSCH(cw
,mod
,nLayers
,nid
,rnti
)nid
, performing symbol modulation
with modulation scheme mod
, and layer mapping. cw
specifies an uplink shared channel (UL-SCH) codeword, as described in TS 38.212 Section
6.2.7 [2].
nLayers
specifies the number of transmission layers.
rnti
is the radio network temporary identifier (RNTI) of the user
equipment (UE). When you use this syntax, the output ptrsSym
is
empty.
[
specifies transform precoding as a logical value in addition to the input arguments in the
first syntax. When sym
,ptrsSym
] = nrPUSCH(___,transformPrecode
,mrb
)transformPrecode
is set to true
,
the function applies the transform precoding defined in TS 38.211 Section 6.3.1.4.
mrb
specifies the allocated number of PUSCH resource blocks. When you
use this syntax, the output ptrsSym
is empty.
[
specifies the transmission scheme in addition to the input arguments in the second syntax.
When sym
,ptrsSym
] = nrPUSCH(___,txScheme
,nPorts
,tpmi
)txScheme
is set to 'codebook'
, the function
performs multi-input multi-output (MIMO) precoding based on the specified number of layers
nLayers
, number of antenna ports nPorts
, and the
transmitted precoding matrix indicator (TPMI) tpmi
. When you use this
syntax, the output ptrsSym
is empty.
[
returns PUSCH modulation symbols, sym
,ptrsSym
] = nrPUSCH(carrier
,pusch
,cw
)sym
, for the specified carrier
configuration carrier
and PUSCH configuration
pusch
. The input cw
specifies the UL-SCH
codeword. The function also returns the precoded phase tracking reference signals (PT-RS)
symbols, ptrsSym
, which are mapped to the resource grid. When you use
this syntax with transform precoding, the function maps the data modulated symbols and PT-RS
symbols at appropriate locations prior to starting the transform precoding process.
Specify a random sequence of binary values corresponding to a codeword of 8064 bits.
cw = randi([0 1],8064,1);
Using 16-QAM modulation, generate PUSCH modulation symbols for the specified physical layer cell identity number, RNTI, and two transmission layers. By default, the function disables transform precoding and noncodebook-based transmission.
modulation = '16QAM';
nlayers = 2;
ncellid = 17;
rnti = 111;
sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti)
sym = 1008×2 complex
-0.9487 - 0.9487i -0.3162 + 0.3162i
0.3162 + 0.3162i -0.9487 - 0.3162i
0.3162 + 0.3162i 0.3162 - 0.3162i
0.9487 - 0.3162i -0.3162 + 0.9487i
-0.3162 - 0.9487i 0.3162 - 0.9487i
-0.3162 + 0.9487i 0.3162 - 0.3162i
0.3162 + 0.3162i 0.9487 - 0.9487i
-0.9487 + 0.9487i -0.3162 + 0.3162i
0.9487 - 0.9487i -0.9487 - 0.3162i
-0.9487 - 0.9487i 0.3162 + 0.9487i
⋮
Specify a random sequence of binary values corresponding to a codeword of 8064 bits.
cw = randi([0 1],8064,1);
Using 256-QAM modulation, generate PUSCH modulation symbols for the specified physical layer cell identity number, RNTI, bandwidth, and one transmission layer. Enable transform precoding and codebook-based transmission based on the specified TPMI and four antennas.
modulation = '256QAM'; ncellid = 17; rnti = 111; mrb = 6; nlayers = 1; transformPrecode = true; txScheme = 'codebook'; tpmi = 1; nports = 4; sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti,transformPrecode,mrb,txScheme,nports,tpmi)
sym = 1008×4 complex
0.0000 + 0.0000i 0.2169 + 0.2350i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.2296 + 0.3713i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.0797 - 0.9008i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.4767 - 0.0143i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.4124 + 0.2638i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.1433 - 0.2366i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0885 - 0.1080i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.5507 - 0.1894i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.3039 - 0.9165i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.1498 + 0.3356i 0.0000 + 0.0000i 0.0000 + 0.0000i
⋮
Create a carrier configuration object with default properties. This object corresponds to 30 kHz of subcarrier spacing and 20 MHz transmission bandwidth.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 51;
Create a PUSCH configuration object with specified properties. When transform precoding is 1, the waveform type is discrete fourier transform spread orthogonal frequency division multiplexing (DFT-s-OFDM).
pusch = nrPUSCHConfig; pusch.NStartBWP = 10; pusch.NSizeBWP = 41; pusch.Modulation = '16QAM'; pusch.NID = []; % Set NID equal to the NCellID property of carrier. pusch.PRBSet = 0:5; pusch.TransformPrecoding = 1; pusch.FrequencyHopping = 'intraSlot'; pusch.SecondHopStartPRB = 3;
Generate PUSCH indices, setting the index orientation with respect to the carrier grid.
[ind,info] = nrPUSCHIndices(carrier,pusch,'IndexOrientation','carrier')
ind = 864x1 uint32 column vector
121
122
123
124
125
126
127
128
129
130
⋮
info = struct with fields:
G: 3456
Gd: 864
NREPerPRB: 144
DMRSSymbolSet: [2 7]
PTRSSymbolSet: [1x0 double]
Generate PUSCH symbols of data type single.
numDataBits = info.G; cws = randi([0 1],numDataBits,1); sym = nrPUSCH(carrier,pusch,cws,'OutputDataType','single')
sym = 864x1 single column vector
-0.7454 + 0.2981i
0.3406 - 0.2312i
-0.1153 + 0.2756i
1.1921 - 0.3658i
-0.3968 - 0.0277i
-0.8788 - 0.6493i
-0.8737 + 0.8318i
-0.5764 + 0.0269i
-1.6638 + 0.0482i
-1.0270 - 0.1347i
⋮
Plot the generated symbols and indices on the carrier resource grid.
grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); grid(ind) = sym; imagesc(abs(grid(:,:,1))); axis xy; xlabel('OFDM Symbols'); ylabel('Subcarriers'); title('PUSCH Resource Elements in Carrier Resource Grid');
Specify a random sequence of binary values corresponding to a codeword of 4032 bits.
cw = randi([0 1],4032,1);
Create a carrier configuration object with 30 kHz subcarrier spacing and 20 MHz transmission bandwidth.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 51;
Create a PUSCH configuration object with these specified properties.
pusch = nrPUSCHConfig; pusch.NStartBWP = 10; pusch.NSizeBWP = 41; pusch.Modulation = '64QAM'; pusch.PRBSet = 0:5; pusch.TransformPrecoding = 1; pusch.FrequencyHopping = 'intraSlot'; pusch.EnablePTRS = 1;
Create a PUSCH phase tracking reference signal (PT-RS) configuration object with these specified properties.
ptrs = nrPUSCHPTRSConfig; ptrs.TimeDensity = 2; ptrs.NumPTRSSamples = 4; ptrs.NumPTRSGroups = 8; ptrs.NID = 750;
Assign the PUSCH PT-RS configuration object to the PTRS property of the PUSCH configuration object.
pusch.PTRS = ptrs;
Generate PUSCH PT-RS symbols.
[sym,ptrsSym] = nrPUSCH(carrier,pusch,cw)
sym = 864×1 complex
0.0000 - 0.3273i
-0.0879 - 0.3552i
0.4931 + 0.1194i
-1.4765 - 0.6074i
-0.1208 + 0.1961i
0.8119 - 0.3622i
-0.4653 + 0.0519i
0.7790 + 0.9679i
1.2730 + 1.0205i
-1.6337 + 0.6741i
⋮
ptrsSym = 192×1 complex
0.0000 - 0.3273i
-0.0879 - 0.3552i
0.4931 + 0.1194i
-1.4765 - 0.6074i
-0.5758 + 0.1331i
2.2422 + 0.5442i
-1.1968 + 1.4190i
0.7160 + 0.7333i
-0.7518 - 0.5147i
1.3432 - 0.0623i
⋮
cw
— UL-SCH codewordUL-SCH codeword from TS 38.212 Section 6.2.7, specified as a column vector of integers from –2 to 1.
0 and 1 represent false and true bit values, respectively.
–1 and –2 represent x and y placeholders in the uplink control information (UCI), respectively. For more details, see TS 38.212 Sections 5.3.3.1 and 5.3.3.2.
Data Types: double
| int8
mod
— Modulation scheme'pi/2-BPSK'
| 'QPSK'
| '16QAM'
| '64QAM'
| '256QAM'
Modulation scheme, specified as 'pi/2-BPSK'
,
'QPSK'
, '16QAM'
, '64QAM'
,
or '256QAM'
. This modulation scheme determines the modulation type
and number of bits used per modulation symbol.
Modulation Scheme | Number of Bits Per Symbol |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Data Types: char
| string
nLayers
— Number of transmission layersNumber of transmission layers, specified as an integer from 1 to 4. For more information, see TS 38.211 Section 6.3.1.3.
Data Types: double
nid
— Scrambling identityScrambling identity, specified as an integer from 0 to 1023. nid
is
higher layer parameter dataScramblingIdentityPUSCH, ranging from 0 to
1023, if the higher layer parameter is configured. Otherwise, nid
is physical layer cell identity number NCellID, ranging from 0 to
1007. For more information, see TS 38.211 Section 6.3.1.1.
Data Types: double
rnti
— RNTI of UERNTI of the UE, specified as an integer from 0 to 65,535.
Data Types: double
transformPrecode
— Transform precodingfalse
(default) | true
Transform precoding, specified as false
or true
. For
more information, see TS 38.211 Section 6.3.1.4.
Data Types: double
| logical
mrb
— Number of allocated PUSCH resource blocksNumber of allocated PUSCH resource blocks, specified as an integer from 1 to 275. For more information, see TS 38.214 Section 6.1.2.
Data Types: double
txScheme
— Transmission scheme'nonCodebook'
(default) | 'codebook'
Transmission scheme, specified as one of these values:
'nonCodebook'
— Use this option to disable MIMO
precoding.
'codebook'
— Use this option for codebook-based
transmission using MIMO precoding.
For more information, see TS 38.211 Section 6.3.1.4.
Data Types: char
| string
tpmi
— Transmitted precoding matrix indicatornPorts
— Number of antenna ports1
| 2
| 4
Number of antenna ports, specified as 1
, 2
, or
4
. For more information, see TS 38.211 Section 6.3.1.5.
Data Types: double
datatype
— Data type of output symbols'double'
(default) | 'single'
Data type of the output symbols, specified as 'double'
or
'single'
.
Data Types: char
| string
carrier
— Carrier configuration parametersnrCarrierConfig
objectCarrier configuration parameters for a specific OFDM numerology, specified as an
nrCarrierConfig
object. This function only uses these nrCarrierConfig
object
properties.
NCellID
— Physical layer cell identity1
(default) | integer from 0 to 1007Physical layer cell identity, specified as an integer from 0 to 1007.
Data Types: double
SubcarrierSpacing
— Subcarrier spacing in kHz15
(default) | 30
| 60
| 120
| 240
Subcarrier spacing in kHz, for all channels and reference signals of the carrier, specified as 15
, 30
, 60
, 120
, or 240
.
Data Types: double
CyclicPrefix
— Cyclic prefix length'normal'
(default) | 'extended'
Cyclic prefix length, specified as one of these options.
'normal'
— Use this value to specify normal cyclic
prefix. This option corresponds to 14 OFDM symbols in a slot.
'extended'
— Use this value to specify extended cyclic
prefix. This option corresponds to 12 OFDM symbols in a slot. For the
numerologies specified in TS 38.211 Section 4.2, extended cyclic prefix
length applies for only 60 kHz subcarrier spacing.
Data Types: char
| string
NSizeGrid
— Number of RBs in carrier resource grid52
(default) | integer from 1 to 275Number of RBs in the carrier resource grid, specified as an integer from 1 to 275. The default
value of 52
corresponds to the maximum number of RBs of a 10 MHz
carrier with 15 kHz SCS.
Data Types: double
NStartGrid
— Start of carrier resource grid relative to CRB 00
(default) | integer from 0 to 2199Start of carrier resource grid relative to CRB 0, specified as an integer from 0 to 2199. This property is the higher-layer parameter offsetToCarrier.
Data Types: double
NSlot
— Slot number0
(default) | nonnegative integerSlot number, specified as a nonnegative integer. You can set NSlot
to a value larger than the number of slots per frame. For example, you can set this value using transmission loop counters in a MATLAB® simulation. In this case, you may have to ensure that the property value is modulo the number of slots per frame in a calling code.
Data Types: double
pusch
— PUSCH configuration parametersnrPUSCHConfig
objectPUSCH configuration parameters for a specific OFDM numerology, specified as an
nrPUSCHConfig
object. This function only uses these nrPUSCHConfig
object
properties.
NSizeBWP
— Number of PRBs in BWP[]
(default) | integer from 1 to 275Number of PRBs in bandwidth part (BWP), specified as an integer from 1 to 275.
Use []
to set this property to the NSizeGrid
property of the nrCarrierConfig
object.
Data Types: double
NStartBWP
— Starting PRB index of BWP relative to CRB 0[]
(default) | integer from 0 to 2473Starting PRB index of BWP relative to common resource block 0 (CRB 0),
specified as an integer from 0 to 2473. Use []
to set this
property to the NStartGrid
property of the
nrCarrierConfig
object.
Data Types: double
Modulation
— Modulation scheme'QPSK'
(default) | 'pi/2-BPSK'
| '16QAM'
| '64QAM'
| '256QAM'
| string scalarModulation scheme, specified as 'QPSK'
,
'pi/2-BPSK'
, '16QAM'
,
'64QAM'
, or '256QAM'
, a string scalar, or a
character array.
Modulation Scheme | Number of Bits Per Symbol |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Data Types: char
| string
NumLayers
— Number of transmission layers1
(default) | 2
| 3
| 4
Number of transmission layers, specified as 1
,
2
, 3
, or 4
.
Data Types: double
MappingType
— Mapping type'A'
(default) | 'B'
Mapping type of the physical shared channel, specified as 'A'
or 'B'
.
Data Types: char
| string
SymbolAllocation
— OFDM symbol allocation[0 14]
(default) | two-element vector of nonnegative integersOFDM symbol allocation of the physical shared channel, specified as a two-element vector of nonnegative integers. The first element of this property represents the start of symbol allocation (0-based). The second element represents the number of allocated OFDM symbols.
When you set this property to
[]
or the second element of the vector to 0
,
no symbol is allocated for the channel.
Data Types: double
PRBSet
— PRB allocation[0:51]
(default) | vector of integers from 0 to 274Physical resource block (PRB) allocation of the PUSCH within the BWP, specified as a vector of integers from 0 to 274.
Data Types: double
TransformPrecoding
— Transform precoding0
or false
(default) | 1
or true
Transform precoding, specified as one of these values.
0
(false
) — Disable transform
precoding. The waveform type is cyclic-prefix orthogonal frequency division
multiplexing (CP-OFDM).
1
(true
) — Enable transform
precoding. The waveform type is discrete Fourier transform spread orthogonal
frequency division multiplexing (DFT-s-OFDM).
Data Types: double
| logical
TransmissionScheme
— PUSCH transmission scheme'nonCodebook'
(default) | 'codebook'
PUSCH transmission scheme, specified as 'nonCodebook'
or
'codebook'
.
Data Types: char
| string
NumAntennaPorts
— Number of antenna ports1
(default) | 2
| 4
Number of antenna ports, specified as 1
,
2
, or 4
. This value must be greater than
or equal to the NumLayers
property.
This property is applicable only when
TransmissionScheme
is set to
'codebook'
.
Data Types: double
TPMI
— Transmitted precoding matrix indicator0
(default) | integer from 0 to 27Transmitted precoding matrix indicator, specified as an integer from 0 to 27.
This property is applicable only when
TransmissionScheme
is set to
'codebook'
.
Data Types: double
FrequencyHopping
— Frequency hopping'neither'
(default) | 'intraSlot'
| 'interSlot'
Frequency hopping for the physical uplink shared channel, specified as
'neither'
, 'intraSlot'
, or
'interSlot'
.
Data Types: char
| string
SecondHopStartPRB
— Starting PRB index of second hop1
(default) | integer from 0 to 274Starting PRB index of the second hop relative to the BWP, specified as an integer from 0 to 274.
This property is applicable only when FrequencyHopping
is set to 'intraSlot'
, or
'interSlot'
.
Data Types: double
NID
— Scrambling identity[]
(default) | integer from 0 to 1023Scrambling identity, specified as an integer from 0 to 1023. Use
[]
to set this property to the NCellID
property of the
nrCarrierConfig
object.
Data Types: double
RNTI
— Radio network temporary identifier1
(default) | integer from 0 to 65,535Radio network temporary identifier of the user equipment (UE), specified as an integer from 0 to 65,535.
Data Types: double
DMRS
— PUSCH DM-RS configuration parametersnrPUSCHDMRSConfig
object (default) | nrPUSCHDMRSConfig
objectPUSCH DM-RS configuration parameters, specified as an nrPUSCHDMRSConfig
object. This function uses only these nrPUSCHDMRSConfig
properties.
DMRSConfigurationType
— DM-RS configuration type1
(default) | 2
DM-RS configuration type, specified as 1
or
2
. This property is the higher-layer parameter
dmrs-Type.
This property value must be 1
when
nrPUSCHDMRSConfig
is a property of
nrPUSCHConfig
with TransformPrecoding
property set to
1
.
Data Types: double
DMRSTypeAPosition
— Position of first DM-RS OFDM symbol2
(default) | 3
Position of first DM-RS OFDM symbol, provided by higher layer parameter
dmrs-TypeA-Position, specified as
2
or 3
.
This property is applicable when nrPUSCHDMRSConfig
is a
property of nrPUSCHConfig
object with MappingType
property value set to
'A'
.
Data Types: double
DMRSAdditionalPosition
— Maximum number of DM-RS additional positions0
(default) | 1
| 2
| 3
Maximum number of DM-RS additional positions, specified as
0
, 1
, 2
, or
3
. This property is the higher layer parameter
dmrs-AdditionalPosition.
This property value must be 0
or 1
when nrPUSCHDMRSConfig
is a property of
nrPUSCHConfig
object with FrequencyHopping
property set to
'intraSlot'
.
Data Types: double
DMRSLength
— Number of consecutive front-loaded DM-RS OFDM symbols1
(default) | 2
Number of consecutive front-loaded DM-RS OFDM symbols, specified as
1
(single-symbol DM-RS) or 2
(double-symbol DM-RS).
This property value must be 1
when
nrPUSCHDMRSConfig
is a property of
nrPUSCHConfig
object with FrequencyHopping
property set to
'intraSlot'
.
Data Types: double
CustomSymbolSet
— DM-RS OFDM symbol locations[]
(default) | integer from 0 to 13 | vector of nonnegative integersDM-RS OFDM symbol locations that are 0-based, specified as one of these options.
Integer from 0 to 13 — For one DM-RS symbol
Vector of nonnegative integers from 0 to 13 — For multiple DM-RS symbols
Each input symbol location is assumed to be a single-symbol DM-RS within the physical shared channel symbol allocation.
The default value, []
, corresponds to the DM-RS
symbols locations as per TS 38.211 Table 6.4.1.1.3-3, 6.4.1.1.3-4, or
6.4.1.1.3-6 [1]. Setting this property
overrides the corresponding DM-RS symbol locations in these standard lookup
tables.
Data Types: double
DMRSPortSet
— DM-RS antenna ports[]
(default) | integer scalar | vector of nonnegative integersDM-RS antenna ports, specified as one of these options.
Integer from 0 to 11 — For a single antenna port
Vector of nonnegative integers from 0 to 11 — For multiple antenna ports
Nominal antenna ports supported depend on
DMRSLength
and
DMRSConfigurationType
property values, as shown in
this table.
DMRSLength Value | DMRSConfigurationType Value | Nominal Range of Antenna Ports Supported |
---|---|---|
1 | 1 | [0, 3] |
2 | [0, 5] | |
2 | 1 | [0, 7] |
2 | [0, 11] |
The default value of []
implies that DM-RS antenna
port is equal to 0
.
When nrPUSCHDMRSConfig
is a property of
nrPUSCHConfig
object, []
implies that
DMRSPortSet
is in the range from 0 to NumLayers
–1.
Data Types: double
NIDNSCID
— DM-RS scrambling identity for CP-OFDM[]
(default) | integer from 0 to 65,535DM-RS scrambling identity for CP-OFDM, specified as one of these options.
Integer from 0 to 65,535 — If NIDNSCID
is
higher-layer parameter
scramblingID0/scramblingID1
[]
— If NIDNSCID
is not a
higher-layer parameter, then the value is equal to the NCellID
property of the
nrCarrierConfig
object. Use []
to set this property to the NCellID
property
value.
This property applies when the TransformPrecoding
property of the nrPUSCHConfig
object is set to
0
.
Data Types: double
NSCID
— DM-RS scrambling initialization for CP-OFDM0
(default) | 1
DM-RS scrambling initialization for CP-OFDM, specified as
0
or 1
.
This property applies when the TransformPrecoding
property of the nrPUSCHConfig
object is set to
0
.
Data Types: double
NRSID
— DM-RS scrambling identity for DFT-s-OFDM[]
(default) | integer from 0 to 1007DM-RS scrambling identity for DFT-s-OFDM, specified as one of these options.
Integer from 0 to 1007 — If NRSID
is the
higher-layer parameter nPUSCH-Identity.
[]
— Use this option to set the value of this
property to the NCellID
property value of the
nrCarrierConfig
object when the higher-layer
parameter nPUSCH-Identity is undefined.
This property applies when the TransformPrecoding
property of the nrPUSCHConfig
object is set to
1
.
Data Types: double
EnablePTRS
— Enable PT-RS0
or false
(default) | 1
or true
Enable the PT-RS, specified as one of these values.
0
(false
) — Disable the PT-RS
configuration.
1
(true
) — Enable the PT-RS
configuration.
Data Types: double
| logical
PTRS
— PUSCH PT-RS configuration parametersnrPUSCHPTRSConfig
object (default) | nrPUSCHPTRSConfig
object PUSCH PT-RS configuration, specified as an nrPUSCHPTRSConfig
object. This function uses only these nrPUSCHPTRSConfig
properties.
TimeDensity
— PT-RS time density1
(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 density2
(default) | 4
PT-RS frequency density, specified as 2
or
4
. This property is the higher layer parameter
frequencyDensity.
This property applies only when nrPUSCHPTRSConfig
is
a property of nrPUSCHConfig
with
TransformPrecoding
set to
0
.
Data Types: double
PTRSPortSet
— PT-RS antenna port set[]
(default) | nonnegative integer | two-element vector of nonnegative integersPT-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.
This property applies only when nrPUSCHPTRSConfig
is
a property of nrPUSCHConfig
with
TransformPrecoding
set to
0
.
Data Types: double
NumPTRSSamples
— Number of PT-RS samples2
(default) | 4
Number of PT-RS samples per PT-RS group, specified as
2
or 4
. This property is the higher
layer parameter sampleDensity.
This property applies only when nrPUSCHPTRSConfig
is
a property of nrPUSCHConfig
with
TransformPrecoding
set to
1
.
Data Types: double
NumPTRSGroups
— Number of PT-RS groups2
(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.
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.
This property applies only when nrPUSCHPTRSConfig
is
a property of nrPUSCHConfig
with
TransformPrecoding
set to
0
.
Data Types: char
| string
NID
— PT-RS scrambling identity[]
(default) | integer from 0 to 1007PT-RS scrambling identity, specified as an integer from 0 to 1007.
Specify []
to set this property equal to the
NRSID
property of nrPUSCHDMRSConfig
object.
This property applies only when nrPUSCHPTRSConfig
is
a property of nrPUSCHConfig
with
TransformPrecoding
set to
1
.
Data Types: double
sym
— PUSCH modulation symbolsPUSCH modulation symbols, returned as a complex matrix. If you set the
txScheme
input to 'codebook'
, the number of
matrix columns is nPorts
. If you set the
txScheme
input to 'nonCodebook'
, the number of
matrix columns is nLayers
. When you enable transform precoding, the
output sym
represents all of the post transform precoding data
modulated symbols and PT-RS symbols.
Data Types: single
| double
Complex Number Support: Yes
ptrsSym
— PT-RS symbols mapped to resource gridPT-RS symbols mapped to the resource grid, returned as a complex matrix. When you
enable transform precoding, the output ptrsSym
is the subset of
output sym
, at the PT-RS locations prior to transform precoding
process. The output ptrsSym
returns an empty value when you do not
specify the pusch
input argument.
Data Types: single
| double
Complex Number Support: Yes
[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
[2] 3GPP TS 38.212. “NR; Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
Usage notes and limitations:
The
datatype
input argument must be compile-time constant. For example,
when specifying 'single'
as the output data type, include
{coder.Constant('OutputDataType'),coder.Constant('single')}
in the
-args
value of the codegen
function. For more
information, see the coder.Constant
(MATLAB Coder) class.
You have a modified version of this example. Do you want to open this example with your edits?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.