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) | trueTransform 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 | 4Number 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 | 240Subcarrier 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 | 4Number 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 trueTransform 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 | 4Number 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) | 2DM-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) | 3Position 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 | 3Maximum 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) | 2Number 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) | 1DM-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 trueEnable 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 | 4PT-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) | 4PT-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) | 4Number 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 | 8Number 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.