nrWavegenPUSCHConfig
Description
The nrWavegenPUSCHConfig
object sets physical uplink shared channel
(PUSCH) configuration parameters, as defined in TS 38.211 Sections 6.3.1, 6.4.1.1, and 6.4.1.2
[1]. Use this object to set the
PUSCH
property of the nrULCarrierConfig
object when
configuring 5G uplink waveform generation.
This object defines several properties of the PUSCH, including the modulation scheme, layer mapping, transform precoding, target code rate, and time-domain and frequency-domain allocation. The object also contains properties of the associated physical reference signals, such as the demodulation reference signal (DM-RS) and the phase tracking reference signal (PT-RS).
The default nrWavegenPUSCHConfig
object configures a single-layer PUSCH with
cyclic-prefix orthogonal frequency division multiplexing (CP-OFDM), mapping type A, QPSK
modulation, a resource allocation of 52 resource blocks and 14 OFDM symbols in a slot,
transmission in all slots, and a single-symbol DM-RS type 1. The default object also disables
frequency hopping, transform precoding, the PT-RS, and the uplink control information (UCI).
This configuration corresponds to a full resource allocation with respect to the default
nrWavegenBWPConfig
object.
For operation with shared spectrum channel access
for frequency range 1 (FR1), set the Interlacing
property to true
, then use the
RBSetIndex
and InterlaceIndex
object properties to specify the allocated frequency
resources. (since R2023b)
Creation
Description
creates a
default PUSCH configuration object for 5G waveform generation.pusch
= nrWavegenPUSCHConfig
specifies properties using one
or more name-value arguments. Enclose each property in quotes. For example,
pusch
= nrWavegenPUSCHConfig(Name,Value
)'NumLayers',4
specifies 4 transmission layers.
Properties
Channel Configuration
Enable
— Enable PUSCH
1
or true
(default) | 0
or false
Enable the PUSCH in 5G waveform generation, specified as one of these values.
1
(true
) — Enable the PUSCH.0
(false
) — Disable the PUSCH.
Data Types: double
| logical
Label
— Name of PUSCH configuration
'PUSCH1'
(default) | character array | string scalar
Name of the PUSCH configuration, specified as a character array or string scalar. Use this property to set a description to the PUSCH configuration.
Data Types: char
| string
Power
— Power scaling of PUSCH in dB
0
(default) | real-valued scalar | real-valued vector (since R2024b)
Power scaling of the PUSCH in dB, specified as a real-valued scalar or real-valued
vector of length equal to the number of allocated transmissions in a period configured
by the SlotAllocation
property. Use this property to scale the
power of the PUSCH in the generated 5G waveform.
Data Types: double
BandwidthPartID
— ID of BWP
1
(default) | nonnegative integer
ID of the bandwidth part (BWP) containing the configured PUSCH, specified as a
nonnegative integer. Use this property to associate this PUSCH configuration with one
of the BWP configurations specified by the BandwidthParts
property of the nrULCarrierConfig
object.
Data Types: double
Modulation
— Modulation scheme
'QPSK'
(default) | 'pi/2-BPSK'
| '16QAM'
| '64QAM'
| '256QAM'
| string scalar | string array (since R2024a) | cell array of character vectors (since R2024a)
Modulation scheme, specified as 'QPSK'
,
'pi/2-BPSK'
, '16QAM'
,
'64QAM'
, or '256QAM'
, a string scalar, a
string array, or a cell array of character vectors. This modulation scheme specifies the
modulation type of the codewords and the number of bits used per modulation symbol. For
one codeword, specify the modulation scheme as a character vector or string scalar. If
two codewords are present (NumLayers
> 4), the same modulation
scheme applies to both codewords or you can specify different modulation schemes for
each codeword by using a string array or a cell array of character vectors.
Modulation Scheme | Number of Bits Per Symbol |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Example: {'QPSK','16QAM'}
or ["QPSK","16QAM"]
specifies different modulation schemes for two codewords.
Data Types: char
| string
| cell
NumLayers
— Number of transmission layers
1
(default) | integer from 1 to 8
Number of transmission layers, specified as an integer from 1 to 8.
For one codeword, specify an integer from 1 to 4.
For two codewords, specify an integer from 5 to 8. (since R2024a)
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 integers
OFDM 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
SlotAllocation
— Slot allocation in PUSCH period
[0:9]
(default) | nonnegative integer | row vector of nonnegative integers
Slot allocation in a PUSCH period, specified as a nonnegative integer or a row
vector of nonnegative integers. This property specifies the slot positions of the
PUSCH by using 0-based indexing and values that are less than the value of the
Period
property. The object ignores slot allocation values that are
greater than the period.
Data Types: double
Period
— PUSCH allocation period in slots
10
(default) | nonnegative integer | []
PUSCH allocation period in slots, specified as a nonnegative integer or
[]
. An empty period indicates no repetition.
Data Types: double
PRBSet
— PRB allocation
[0:51]
(default) | vector of integers from 0 to 274
Physical resource block (PRB) allocation of the PUSCH within the BWP, specified as a vector of integers from 0 to 274.
Dependencies
To enable this property, set the Interlacing
property to
0
(false
).
Data Types: double
TransformPrecoding
— Transform precoding
0
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 ports
1
(default) | 2
| 4
| 8
(since R2024a)
Number of antenna ports, specified as 1
, 2
,
4
, or 8
. This value must be greater than or
equal to the NumLayers
property.
Dependencies
To enable this property, set TransmissionScheme
to
'codebook'
.
Data Types: double
TPMI
— Transmitted precoding matrix indicator
0
(default) | integer from 0 to 304
Transmitted precoding matrix indicator, specified as an integer from 0 to 304 (since R2024a). Set this
property based on the
NumLayers
,
NumAntennaPorts
, and
CodebookType
property values,
as defined in TS 38.211 Tables 6.3.1.5-1 to
6.3.1.5-47.
Dependencies
To enable this property, set the TransmissionScheme
property to
'codebook'
.
Data Types: double
CodebookType
— Codebook type
'codebook1_ng1n4n1'
(default) | 'codebook1_ng1n2n2'
| 'codebook2'
| 'codebook3'
| 'codebook4'
Since R2024a
Codebook type, specified as 'codebook1_ng1n4n1'
,
'codebook1_ng1n2n2'
, 'codebook2'
,
'codebook3'
, or 'codebook4'
. This property
together with the NumLayers
and TPMI
object
properties specify the precoding matrix W from TS 38.211 Tables
6.3.1.5-9 to 6.3.1.5-47 for codebook transmissions with 8 antenna ports.
Use this table to identify which codebook type to use for a specific number of antenna groups (Ng) and a specific table from TS 38.211. For a single antenna group (Ng=1), the table also shows the geometrical distribution of the antenna ports in each antenna group [N1 N2]. N1 is the number of antenna ports in the horizontal direction and N2 is the number of antenna ports in the vertical direction.
CodebookType | Ng | [N1 N2] | Tables from TS 38.211 |
---|---|---|---|
'codebook1_ng1n4n1' | 1 | [4 1] | Tables 6.3.1.5-9 to 6.3.1.5-16 |
'codebook1_ng1n2n2' | 1 | [2 2] | Tables 6.3.1.5-17 to 6.3.1.5-24 |
'codebook2' | 2 | N/A | Tables 6.3.1.5-25 to 6.3.1.5-36 |
'codebook3' | 4 | N/A | Tables 6.3.1.5-37 to 6.3.1.5-46 |
'codebook4' | 8 | N/A | Table 6.3.1.5-47 |
Data Types: char
| string
FrequencyHopping
— Frequency hopping
'neither'
(default) | 'intraSlot'
| 'interSlot'
Frequency hopping for the physical uplink shared channel, specified as
'neither'
, 'intraSlot'
, or
'interSlot'
.
Dependencies
To enable this property, set the Interlacing
property to
0
(false
).
Data Types: char
| string
SecondHopStartPRB
— Starting PRB index of second hop
1
(default) | integer from 0 to 274
Starting PRB index of the second hop relative to the BWP, specified as an integer from 0 to 274.
Dependencies
To enable this property, set the FrequencyHopping
property to
'intraSlot'
or 'interSlot'
and set the
Interlacing
property to 0
(false
).
Data Types: double
Interlacing
— Interlaced resource allocation
0
or false
(default) | 1
or true
Since R2023b
Interlaced resource allocation, specified as one of these values.
0
(false
) — Disable interlaced resource allocation.1
(true
) — Enable interlaced resource allocation. Use theRBSetIndex
andInterlaceIndex
properties to configure the frequency resource allocation.
This property implements the useInterlacePUCCH-PUSCH higher-layer parameter.
Data Types: double
| logical
RBSetIndex
— Indices of RB sets between intracell guard bands
0
(default) | vector of nonnegative integers
Since R2023b
Indices of RB sets between intracell guard bands (0-based), specified as a vector of nonnegative integers. Use this property to specify the indices of the RB sets in an interlaced resource allocation.
Dependencies
To enable this property, set the Interlacing
property to
1
(true
).
Data Types: double
InterlaceIndex
— Interlace indices
0
(default) | vector of nonnegative integers
Since R2023b
Interlace indices in the interlaced resource allocation, specified as a vector of nonnegative integers with up to M elements. The vector element must be in the range [0, M – 1). M = 10 for 15 kHz subcarrier spacing and M = 5 for 30 kHz subcarrier spacing.
Dependencies
To enable this property, set the
Interlacing
property to
1
(true
).
Data Types: double
NID
— PUSCH scrambling identity
[]
(default) | integer from 0 to 1023
PUSCH scrambling identity, specified as []
or an integer from 0 to
1023.
If the higher layer parameter dataScramblingIdentityPUSCH is configured,
NID
must be an integer from 0 to 1023.If the higher layer parameter dataScramblingIdentityPUSCH is not configured,
NID
must be an integer from 0 to 1007.
When you specify this property as []
, the object sets the PUSCH
scrambling identity to the physical layer cell identity, specified by the
NCellID
property of the carrier.
Data Types: double
RNTI
— Radio network temporary identifier
1
(default) | integer from 0 to 65,535
Radio network temporary identifier of the user equipment (UE), specified as an integer from 0 to 65,535.
Data Types: double
NRAPID
— Random access preamble index
[]
(default) | integer from 0 to 63
Random access preamble index, specified as one of these values.
[]
— Use this value to specify that the scrambling initialization does not consider msgA on PUSCH.Integer from 0 to 63 — Use this value to initialize the scrambling sequence for msgA on PUSCH, as defined in Release 16 of TS 38.211 Section 6.3.1.1.
Data Types: double
Coding
— UL-SCH encoding of transport blocks
1
or true
(default) | 0
or false
Uplink shared channel (UL-SCH) encoding of the transport blocks, specified as one of these values.
1
(true
) — Enable transport block encoding.0
(false
) — Disable transport block encoding.
Data Types: double
| logical
TargetCodeRate
— Target code rate
0.5137
(default) | numeric scalar | 1-by-2 numeric vector (since R2024a)
Target code rate, specified as a numeric scalar or a 1-by-2 numeric vector of
values in the range (0, 1). The default value corresponds to 526/1024. If you specify
this property as a scalar, the object applies scalar expansion when processing two
transport blocks
(NumLayers
> 4). To specify different target code rates
for each transport block, specify this property as a vector.
Dependencies
To enable this property, set the Coding
property to 1
(true
).
Data Types: double
XOverhead
— Rate matching overhead
0
(default) | 6
| 12
| 18
Rate matching overhead, specified as 0
, 6
, 12
, or 18
.
Data Types: double
LimitedBufferRateMatching
— Limited buffer rate matching
0
or false
(default) | 1
or true
Since R2024b
Limited buffer rate matching in the PUSCH transmission, as defined in TS 38.2.2 Section 6.2.5, specified as one of these values:
0
(false
) — Disable limited buffer rate matching.1
(true
) — Enable limited buffer rate matching.
Dependencies
To enable this property, set the Coding
property to 1
.
Data Types: double
| logical
MaxNumLayers
— Maximum number of layers
8
(default) | integer from 1 to 8
Since R2024b
Maximum number of layers, specified as an integer from 1 to 8. This property specifies the maximum number of layers for limited buffer rate matching, as defined in TS 38.2.2 Section 6.2.5.
Dependencies
To enable this property, set the Coding
and LimitedBufferRateMatching
properties to 1
.
Data Types: double
| logical
MCSTable
— MCS table configuration for UE
'qam256'
(default) | 'qam64'
Since R2024b
Modulation and coding scheme (MCS) table configuration for the UE, specified as
'qam256'
or 'qam64'
. This property is the
higher-layer parameter mcs-Table and defines the maximum
modulation order for limited buffer rate matching, as defined in TS 38.2.2 Section
6.2.5.
Dependencies
To enable this property, set the Coding
and LimitedBufferRateMatching
properties to 1
.
Data Types: string
| char
RVSequence
— Redundancy version sequence
[0 2 3 1]
(default) | nonnegative integer | vector of nonnegative integers | two-element cell array (since R2024a)
Redundancy version sequence, specified as a nonnegative integer, a vector of
nonnegative integers, or a two-element cell array containing unique nonnegative
integers. When the sequence is a two-element cell array, the second value applies only
to a second codeword
(NumLayers
> 4).
Dependencies
To enable this property, set the Coding
property to 1
(true
).
Data Types: double
DataSource
— Source of contents for transport blocks
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of contents for the transport blocks, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
)Binary-valued vector
If you do not specify a random seed, all shift registers are initialized with an active state.
Data Types: double
| cell
| string
| char
UCI on PUSCH Configuration
EnableACK
— HARQ-ACK for UCI on PUSCH
0
or false
(default) | 1
or true
Hybrid automatic repeat request acknowledgment (HARQ-ACK) for UCI on the PUSCH, specified as one of these values.
0
(false
) — Disable HARQ-ACK transmission.1
(true
) — Enable HARQ-ACK transmission.
Dependencies
To enable this property, set the Coding
property to 1
(true
).
Data Types: logical
| double
BetaOffsetACK
— Beta offset factor of HARQ-ACK
20
(default) | positive real-valued scalar
Beta offset factor of the HARQ-ACK, specified as a positive real-valued scalar. This property determines the number of resources for multiplexing HARQ-ACK. The nominal value is one of the entries from the Table 9.3-1 of TS 38.213.
Dependencies
To enable this property, set the Coding
and EnableACK
properties to 1
(true
)
and the NumACKBits
property to a positive value.
Data Types: double
DataSourceACK
— Source of HARQ-ACK contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of HARQ-ACK contents, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
)Binary-valued vector
If you do not specify a random seed, all shift registers are initialized with an active state.
Dependencies
To enable this property, set the Coding
and EnableACK
properties to 1
(true
)
and the NumACKBits
property to a positive value.
Data Types: double
EnableCSI1
— CSI part 1 for UCI on PUSCH
0
or false
(default) | 1
or true
Channel-state information (CSI) part 1 for the UCI on the PUSCH, specified as one of these options.
0
(false
) — Disable the CSI part 1 transmission on the PUSCH.1
(true
) — Enable the CSI part 1 transmission on the PUSCH.
Dependencies
To enable this property, set the Coding
property to 1
(true
).
Data Types: logical
| double
NumCSI1Bits
— Number of CSI part 1 bits for UCI on PUSCH
10
(default) | integer from 0 to 1706
Number of CSI part 1 bits for the UCI on the PUSCH, specified as an integer from 0 to 1706.
Dependencies
To enable this property, set the Coding
and EnableCSI1
properties to 1
(true
).
Data Types: double
BetaOffsetCSI1
— Beta offset factor of CSI part 1
6.25
(default) | positive real-valued scalar
Beta offset factor of CSI part 1, specified as a positive real-valued scalar. This property determines the number of resources for multiplexing CSI part 1. The nominal value is one of the entries from the Table 9.3-2 of TS 38.213.
Dependencies
To enable this property, set the Coding
and EnableCSI1
properties to 1
(true
) and the NumCSI1Bits
property to a positive value.
Data Types: double
DataSourceCSI1
— Source of CSI part 1 contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of CSI part 1 contents, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
).Binary-valued vector
If you do not specify a random seed, all shift registers are initialized with an active state.
Dependencies
To enable this property, set the Coding
and EnableCSI1
properties to 1
(true
) and the NumCSI1Bits
property to a positive value.
Data Types: double
EnableCSI2
— CSI part 2 for UCI on PUSCH
0
or false
(default) | 1
or true
CSI part 2 for the UCI on the PUSCH, specified as one of these values.
0
(false
) — Disable the CSI part 2 transmission on the PUSCH.1
(true
) — Enable the CSI part 2 transmission on the PUSCH.
Dependencies
To enable this property, set the Coding
and EnableCSI1
properties to 1
(true
) and the NumCSI1Bits
property to a positive value.
Data Types: logical
| double
NumCSI2Bits
— Number of CSI part 2 bits for UCI on PUSCH
10
(default) | integer from 0 to 1706
Number of CSI part 2 bits for the UCI on the PUSCH, specified as an integer from 0 to 1706.
Dependencies
To enable this property, set the Coding
, EnableCSI1
, and EnableCSI2
properties to 1
(true
) and the NumCSI1Bits
property to a positive value.
Data Types: double
BetaOffsetCSI2
— Beta offset factor of CSI part 2
6.25
(default) | positive real-valued scalar
Beta offset factor of the CSI part 2, specified as a positive real-valued scalar. This property determines the number of resources for multiplexing CSI part 2. The nominal value is one of the entries from the Table 9.3-2 of TS 38.213.
Dependencies
To enable this property, set the Coding
, EnableCSI1
, and EnableCSI2
properties to 1
(true
) and the NumCSI1Bits
and NumCSI2Bits
properties to a positive value.
Data Types: double
DataSourceCSI2
— Source of CSI part 2 contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of CSI part 2 contents, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
).Binary-valued vector
If you do not specify a random seed, all shift registers are initialized with an active state.
Dependencies
To enable this property, set the Coding
, EnableCSI1
, and EnableCSI2
properties to 1
(true
) and the NumCSI1Bits
and NumCSI2Bits
properties to a positive value.
Data Types: double
EnableCGUCI
— CG-UCI transmission on PUSCH
0
or false
(default) | 1
or true
Configured grant transmissions in UCI (CG-UCI) on the PUSCH, specified as one of these values.
0
(false
) — Disable CG-UCI transmission on the PUSCH.1
(true
) — Enable CG-UCI transmission on the PUSCH.
Dependencies
To enable this property, set the Coding
property to 1
(true
).
Data Types: logical
| double
NumCGUCIBits
— Number of CG-UCI bits on PUSCH
7
(default) | 0
| integer from 7 to 1706
Number of CG-UCI bits on PUSCH, specified as 0
or an integer
from 7 to 1706. Setting this property to 0
disables the
CG-UCI.
Dependencies
To enable this property, set the Coding
and EnableCGUCI
properties to 1
(true
).
Data Types: double
BetaOffsetCGUCI
— Beta offset factor of CG-UCI
20
(default) | positive real-valued scalar
Beta offset factor of the CG-UCI, specified as a positive real-valued scalar. This property determines the number of resources for multiplexing CG-UCI.
Dependencies
To enable this property, set the Coding
and EnableCGUCI
properties to 1
(true
) and the NumCGUCIBits
property to a positive value. If the EnableACK
property is also set to 1
(true
) and the NumACKBits
property is set to a positive value, the object uses the
BetaOffsetACK
property value as the beta offset factor for the CG-UCI
instead.
Data Types: double
DataSourceCGUCI
— Source of CG-UCI contents
'PN9-ITU'
(default) | 'PN9'
| 'PN11'
| 'PN15'
| 'PN23'
| two-element cell array | binary-valued vector
Source of CG-UCI, specified as one of these options.
'PN9-ITU'
,'PN9'
,'PN11'
,'PN15'
, or'PN23'
Two-element cell array consisting of one of the character vectors from the previous list and a random numeric seed (for example,
{'PN9',7}
).Binary-valued vector
If you do not specify a random seed, all shift registers are initialized with an active state.
Dependencies
To enable this property, set the Coding
and EnableCGUCI
properties to 1
(true
) and the NumCGUCIBits
property to a positive value.
Data Types: double
EnableULSCH
— UL-SCH for UCI on PUSCH
1
or true
(default) | 0
or false
UL-SCH transmission on the slots used for the UCI on the PUSCH, specified as one of these values.
1
(true
) — Enable UL-SCH and UCI multiplexing on the PUSCH.0
(false
) — Disable UL-SCH and UCI multiplexing on the PUSCH.
Dependencies
To enable this property, set the Coding
property to 1
(true
) and
one of these property combinations:
Set the
EnableACK
property to1
(true
) and theNumACKBits
property to a positive value.Set the
EnableCSI1
property to1
(true
) and theNumCSI1Bits
property to a positive value.Set the
EnableCGUCI
property to1
(true
) and theNumCGUCIBits
property to a positive value.
Data Types: logical
| double
UCIScaling
— Scaling factor
1
(default) | scalar between 0 and 1
Scaling factor to limit the number of the resource elements allocated for the UCI on the PUSCH, specified as a scalar between 0 and 1. The nominal value is 0.5, 0.65, 0.8, or 1.
Data Types: double
Reference Signals Configuration
DMRS
— PUSCH DM-RS configuration parameters
nrPUSCHDMRSConfig
object with default
properties (default) | nrPUSCHDMRSConfig
object
PUSCH DM-RS configuration parameters, specified as an nrPUSCHDMRSConfig
configuration object.
DMRSPower
— Power scaling of PUSCH DM-RS in dB
0
(default) | real-valued scalar
Power scaling of the PUSCH DM-RS in dB, specified as a real-valued scalar. Use
this property to scale the power of the PUSCH DM-RS in the generated 5G waveform. This
scaling is additional to the PUSCH-wide power scaling specified by the Power
property.
Data Types: double
EnablePTRS
— Enable PT-RS
0
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 parameters
default nrPUSCHPTRSConfig
object (default) | nrPUSCHPTRSConfig
object
PUSCH PT-RS configuration, specified as an nrPUSCHPTRSConfig
configuration object. This property relates to the PT-RS configuration and contains
all properties of the specified nrPUSCHPTRSConfig
object.
Dependencies
To enable this property, set the EnablePTRS
property to 1
.
PTRSPower
— Power scaling of PUSCH PT-RS in dB
0
(default) | real-valued scalar
Power scaling of the PUSCH PT-RS in dB, specified as a real-valued scalar. Use
this property to scale the power of the PUSCH PT-RS in the generated 5G waveform. This
scaling is additional to the PUSCH-wide power scaling specified by the Power
property. The object ignores this property value when you set the
TransformPrecoding
property to 1
(true
).
Dependencies
To enable this property, set the EnablePTRS
property to 1
(true
).
Data Types: double
Read-Only Properties
NumCodewords
— Number of codewords
1
| 2
Since R2024a
This property is read-only.
Number of codewords, returned as one of these values:
1
— IfNumLayers
is an integer from 1 to 42
— IfNumLayers
is an integer from 5 to 8
Data Types: double
Examples
Configure PUSCH for 5G Uplink Waveform Generation
Create a PUSCH configuration object for 5G waveform generation with the specified property values.
pusch = nrWavegenPUSCHConfig( ... 'BandwidthPartID',0, ... 'Modulation','16QAM', ... 'TargetCodeRate',658/1024, ... 'SymbolAllocation',[0 7], ... 'SlotAllocation',[0 2], ... 'Period',3, ... 'PRBSet',[0:20], ... 'EnablePTRS',true);
Create an uplink carrier configuration object, specifying the previously defined PUSCH configuration.
cfg = nrULCarrierConfig('PUSCH',{pusch});
Configure Multiple PUSCH for 5G Uplink Waveform Generation
Create two SCS carrier configuration objects with mixed numerologies.
carrier1 = nrSCSCarrierConfig('SubcarrierSpacing',15); carrier2 = nrSCSCarrierConfig('SubcarrierSpacing',30);
Create two BWP configuration objects, one for each of the SCS carriers.
bwp1 = nrWavegenBWPConfig('BandwidthPartID',0,'SubcarrierSpacing',15); bwp2 = nrWavegenBWPConfig('BandwidthPartID',1,'SubcarrierSpacing',30);
Create two PUSCH configuration objects for 5G waveform generation, specifying a unique UE and one of the BWP configurations for each PUSCH.
pusch1 = nrWavegenPUSCHConfig('RNTI',1,'BandwidthPartID',0,'Modulation','QPSK'); pusch2 = nrWavegenPUSCHConfig('RNTI',2,'BandwidthPartID',1,'Modulation','16QAM');
Create an uplink carrier configuration object, specifying the previously defined configurations.
cfg = nrULCarrierConfig( ... 'SCSCarriers',{carrier1,carrier2}, ... 'BandwidthParts',{bwp1,bwp2}, ... 'PUSCH',{pusch1,pusch2});
References
[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
[2] 3GPP TS 38.214. “NR; Physical layer procedures for data.” 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 R2021aR2024b: Configure separate power scaling for each PUSCH in a period
Configure separate power scaling for each PUSCH in a period by setting the Power
property to a vector of length equal to the number of allocated transmissions in a
period.
R2024b: Support for limited buffer rate matching
The object adds support for limited buffer rate matching through the LimitedBufferRateMatching
, MaxNumLayers
, and MCSTable
properties.
R2024a: Release 18 support for eight antenna ports, up to eight layers, and two codewords
The object adds support for eight antenna ports, up to eight layers, and two codewords in PUSCH transmissions, as defined in Release 18 of TS 38.211 Section 6.3.1. Use the object properties and the corresponding values listed in this table to enable this support.
Property | Value Summary for Eight Ports and Up to Eight Layers (since R2024a) |
---|---|
NumLayers |
|
Modulation | One-element or two-element cell array |
NumAntennaPorts | 8 |
TPMI | Integer between 0 and 304, depending on the
|
CodebookType | Precoding matrices for codebook transmission with eight antenna ports |
NumCodewords (read-only) | The number of configured codewords corresponding to the specified number of layers |
TargetCodeRate | One-element or two-element array |
RVSequence
| One-element or two-element cell array |
R2023b: Support for release 16 interlacing for operation in unlicensed spectrum (NR-U)
Use the Interlacing
, RBSetIndex
, and InterlaceIndex
properties to configure interlaced PUSCH
transmissions. Setting the Interlacing
property to
true
disables the PRBSet
and FrequencyHopping
properties.
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)