nrULCarrierConfig
Description
The nrULCarrierConfig
object sets the parameters of a
single-component-carrier 5G uplink waveform. Use this object to configure 5G uplink waveform
generation when calling the nrWaveformGenerator
function.
This object defines these aspects of the uplink waveform:
Frequency range
Channel bandwidth
Cell identity
Waveform duration
Subcarrier spacing (SCS) carriers
Bandwidth parts (BWPs)
Physical uplink shared channel (PUSCH), PUSCH demodulation reference signal (DM-RS), and PUSCH phase-tracking reference signal (PT-RS)
Physical uplink control channel (PUCCH) and associated DM-RS
Sounding reference signal (SRS)
Creation
Description
cfgUL = nrULCarrierConfig
creates a default
single-component-carrier 5G uplink waveform configuration object.
cfgUL = nrULCarrierConfig(
sets
properties using one
or more name-value arguments. Enclose each property name in quotes. For example,
Name,Value
)'FrequencyRange','FR2'
specifies an uplink waveform for frequency
range 2 (FR2).
Properties
Label
— Name of uplink carrier configuration
'Uplink carrier 1'
(default) | character array | string scalar
Name of the uplink carrier configuration, specified as a character array or string scalar. Use this property to set a description to the uplink carrier configuration.
Data Types: char
| string
FrequencyRange
— Frequency range
'FR1'
(default) | 'FR2'
Frequency range, specified as one of these values.
'FR1'
— Frequency range 1 (FR1) that corresponds to frequencies from 410 MHz to 7.125 GHz.'FR2'
— Frequency range 2 (FR2) that corresponds to frequencies from 24.25 GHz to 52.6 GHz (FR2-1) and from 52.6 GHz to 71 GHz (FR2-2).
Data Types: char
| string
ChannelBandwidth
— Channel bandwidth
50
(default) | 5
| 10
| 15
| 20
| 25
| 30
| 35
| 40
| 45
| 50
| 60
| 70
| 80
| 90
| 100
| 200
| 400
| 800
| 1600
| 2000
Channel bandwidth, in MHz, specified as one of these values.
5
,10
,15
,20
,25
,30
,35
,40
,45
,50
,60
,70
,80
,90
, or100
for FR150
,100
,200
,400
,800
,1600
, or2000
for FR2
Set the frequency range with the FrequencyRange
property.
Data Types: double
NCellID
— Physical layer cell identity
1
(default) | integer from 0 to 1007
Physical layer cell identity, specified as an integer from 0 to 1007.
Data Types: double
NumSubframes
— Waveform duration in subframes
10
(default) | positive integer
Waveform duration in subframes (multiples of 1 ms), specified as a positive integer. The default value of 10 subframes corresponds to one frame.
Data Types: double
InitialNSubframe
— Initial subframe number
0
(default) | nonnegative integer
Since R2023b
Initial subframe number, specified as a nonnegative integer.
Data Types: double
WindowingPercent
— Windowing percentage relative to FFT length
0
(default) | real scalar from 0 to 50 | five-element row vector | seven-element row vector | []
Windowing percentage relative to the fast Fourier transform (FFT) length, specified as one of these values.
Real scalar from 0 to 50 — The object sets the same windowing percentage for all combinations of SCS and cyclic prefix.
Five-element row vector of the form [w1 w2 w3 w4 w5 ], where each element is a real scalar from 0 to 50 — The object sets individual windowing percentage for the different SCS and cyclic prefix combinations.
w1 specifies the windowing percentage for 15 kHz SCS.
w2 specifies the windowing percentage for 30 kHz SCS.
w3 specifies the windowing percentage for 60 kHz SCS and normal cyclic prefix.
w4 specifies the windowing percentage for 60 kHz SCS and extended cyclic prefix.
w5 specifies the windowing percentage for 120 kHz, 480 kHz, or 960 kHz SCS.
Seven-element row vector of the form [w1 w2 w3 w4 w5 w6 w7], where each element is a real scalar from 0 to 50 — The object sets individual windowing percentage for the different SCS and cyclic prefix combinations.
w1 specifies the windowing percentage for 15 kHz SCS.
w2 specifies the windowing percentage for 30 kHz SCS.
w3 specifies the windowing percentage for 60 kHz SCS and normal cyclic prefix.
w4 specifies the windowing percentage for 60 kHz SCS and extended cyclic prefix.
w5 specifies the windowing percentage for 120 kHz SCS.
w6 specifies the windowing percentage for 480 kHz SCS.
w7 specifies the windowing percentage for 960 kHz SCS.
[]
— The object automatically selects the windowing percentage of each SCS carrier (specified bySCSCarriers
) based on theSampleRate
property and these additional properties.The
NSizeGrid
andSubcarrierSpacing
properties of the actual SCS carrier.The
CyclicPrefix
property of the actual BWP specified by theBandwidthParts
property.
For more information, see the
'Windowing'
name-value argument description of thenrOFDMModulate
function.
This property configures the number of time-domain samples, as a percentage of the FFT length, over which windowing and overlapping of the OFDM symbols take place.
Data Types: double
SampleRate
— Sample rate of OFDM-modulated waveform
[]
(default) | positive integer scalar
Sample rate of the OFDM-modulated waveform, specified as []
or a
positive integer scalar. When you set this value to []
, the object
sets the sample rate to the minimum value that accommodates all carriers in the waveform
without aliasing.
CarrierFrequency
— Carrier frequency in Hz
0
(default) | real number
Carrier frequency in Hz, specified as a real number. This property corresponds to f0, defined in TS 38.211 Section 5.4, and is used for symbol phase compensation before OFDM modulation.
Data Types: double
SCSCarriers
— One or more SCS carrier configurations
{nrSCSCarrierConfig
}
(default) | cell array of nrSCSCarrierConfig
objects
nrSCSCarrierConfig
}One or more SCS carrier configurations, specified as a cell array of nrSCSCarrierConfig
objects. Because this property configures the subcarrier spacing and grid size of each
numerology, each nrSCSCarrierConfig
object in the cell array must have
a unique SubcarrierSpacing
property value.
BandwidthParts
— One or more BWP configurations
{nrWavegenBWPConfig
}
(default) | cell array of nrWavegenBWPConfig
objects
nrWavegenBWPConfig
}One or more BWP configurations, specified as a cell array of nrWavegenBWPConfig
objects. The SubcarrierSpacing
properties of these BWP objects must be one of the
values defined by the SubcarrierSpacing
properties of the carriers specified by
the SCSCarriers
property.
IntraCellGuardBands
— Intracell guard bands
{nrIntraCellGuardBandsConfig}
(default) | cell array of nrIntraCellGuardBandsConfig
objects
Since R2023b
Intracell guard bands for operation with shared spectrum channel access for FR1,
specified as a cell array of nrIntraCellGuardBandsConfig
objects. The default
nrIntraCellGuardBandsConfig
object does not configure intracell guard
bands. Therefore, the default value of this property,
{nrIntraCellGuardBandsConfig}
, specifies that all resource blocks
of all SCS carriers are available.
PUSCH
— One or more PUSCH configurations
{nrWavegenPUSCHConfig}
(default) | cell array of nrWavegenPUSCHConfig
objects
One or more PUSCH configurations, specified as a cell array of nrWavegenPUSCHConfig
objects. Use this property to configure different PUSCH and associated DM-RS and
PT-RS.
PUCCH
— One or more PUCCH configurations
{nrWavegenPUCCH0Config('Enable',0)}
(default) | cell array of nrWavegenPUCCH0Config
,
nrWavegenPUCCH1Config
, nrWavegenPUCCH2Config
,
nrWavegenPUCCH3Config
, and nrWavegenPUCCH4Config
objects
One or more PUCCH configurations, specified as a cell array of any combination of
nrWavegenPUCCH0Config
,
nrWavegenPUCCH1Config
,
nrWavegenPUCCH2Config
,
nrWavegenPUCCH3Config
,
and nrWavegenPUCCH4Config
objects. This property configures different PUCCH and associated DM-RS. By default, the
PUCCH is disabled in the uplink configuration.
SRS
— One or more SRS configurations
{nrWavegenSRSConfig('Enable',0)}
(default) | cell array of nrWavegenSRSConfig
objects
One or more SRS configurations, specified as a cell array of nrWavegenSRSConfig
objects.
Use this property to configure different SRS. By default, the SRS is disabled in the
uplink configuration.
Object Functions
openInGenerator | Open 5G waveform configuration in 5G Waveform Generator app |
Examples
Configure and Generate Single-User 5G Uplink Waveform
Create an SCS carrier configuration object with the default SCS of 15 kHz and 100 resource blocks.
carrier = nrSCSCarrierConfig('NSizeGrid',100);
Create a customized BWP configuration object for the SCS carrier.
bwp = nrWavegenBWPConfig('NStartBWP',carrier.NStartGrid+10);
Create a single-user 5G uplink waveform configuration object, specifying the previously defined configurations. In the uplink configuration object, by default, the PUSCH is enabled, while the PUCCH and the SRS are disabled.
cfgUL = nrULCarrierConfig( ... 'FrequencyRange','FR1', ... 'ChannelBandwidth',40, ... 'NumSubframes',20, ... 'SCSCarriers',{carrier}, ... 'BandwidthParts',{bwp});
Generate a 5G uplink waveform using the specified configuration.
waveform = nrWaveformGenerator(cfgUL);
Configure and Generate Multiuser 5G Uplink Waveform
Create two SCS carrier configuration objects with mixed numerologies and custom numbers of resource blocks.
carriers = { nrSCSCarrierConfig('SubcarrierSpacing',15,'NStartGrid',10,'NSizeGrid',100), ... nrSCSCarrierConfig('SubcarrierSpacing',30,'NStartGrid',0,'NSizeGrid',70)};
Create two custom BWP configuration objects, one for each of the carriers.
bwp = { nrWavegenBWPConfig('BandwidthPartID',0,'SubcarrierSpacing',15,'NStartBWP',30,'NSizeBWP',80), ... nrWavegenBWPConfig('BandwidthPartID',1,'SubcarrierSpacing',30,'NStartBWP',0,'NSizeBWP',60)};
Create two PUSCH configuration objects, one for each of the carriers, with mixed modulation schemes.
pusch = { nrWavegenPUSCHConfig('BandwidthPartID',0,'Modulation','16QAM','SlotAllocation',0:2:9,'PRBSet',0:19,'RNTI',1,'NID',1), ... nrWavegenPUSCHConfig('BandwidthPartID',1,'Modulation','QPSK','RNTI',2,'NID',2,'PRBSet',50:59)};
Create a single PUCCH configuration object, only for the second carrier. By default, the PUCCH is enabled in this configuration.
pucch = {nrWavegenPUCCH0Config('BandwidthPartID',1,'SlotAllocation',0:9,'PRBSet',2,'DataSourceUCI', 'PN9')};
Create two SRS configuration objects, one for each of the carriers. By default, the SRS is enabled in both configurations.
srs = { nrWavegenSRSConfig('BandwidthPartID',0,'SlotAllocation',1:2:9,'NumSRSPorts',2), ... nrWavegenSRSConfig('BandwidthPartID',1,'FrequencyStart',4)};
Create a multiuser 5G uplink waveform configuration object, specifying the previously defined configurations.
cfgUL = nrULCarrierConfig( ... 'FrequencyRange','FR1', ... 'ChannelBandwidth',40, ... 'NumSubframes',20, ... 'SCSCarriers',carriers, ... 'BandwidthParts',bwp, ... 'PUSCH',pusch, ... 'PUCCH',pucch, ... 'SRS',srs);
Generate a 5G uplink waveform using the specified configuration.
waveform = nrWaveformGenerator(cfgUL);
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2021aR2023b: Specify initial subframe number
You can use the InitialNSubframe
property to specify the initial subframe number
in the waveform.
R2023b: Configure intracell guard bands
Use the IntraCellGuardBands
object property to specify intracell guard bands for
uplink transmissions.
R2023b: Open uplink waveform configuration parameters in app
Use the openInGenerator
object function
to open your uplink waveform configuration parameters in the 5G Waveform Generator
app. You can then visualize, edit, and generate your waveform in the app.
R2023a: Release 17 support for FR1 and FR2-2
The ChannelBandwidth
object property supports 35 MHz and 45 MHz for
FR1 and 800 MHz, 1600 MHz, and 2000 MHz for FR2-2.
The WindowingPercent
object property supports 480 kHz and 960 kHz subcarrier
spacings.
See Also
Functions
Objects
nrWavegenBWPConfig
|nrSCSCarrierConfig
|nrWavegenSRSConfig
|nrDLCarrierConfig
|nrWavegenPUCCH0Config
|nrWavegenPUCCH1Config
|nrWavegenPUCCH2Config
|nrWavegenPUCCH3Config
|nrWavegenPUCCH4Config
|nrWavegenPUSCHConfig
|nrPUSCHDMRSConfig
|nrPUSCHPTRSConfig
|nrWavegenSRSConfig
|nrIntraCellGuardBandsConfig
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 (한국어)