nrDLCarrierConfig
Description
The nrDLCarrierConfig
object sets the parameters of a
single-component-carrier 5G downlink waveform. Use this object to configure 5G downlink
waveform generation when calling the nrWaveformGenerator
function.
This object defines these aspects of the downlink waveform:
Frequency range
Channel bandwidth
Cell identity
Waveform duration
Subcarrier spacing (SCS) carriers
Bandwidth parts (BWPs)
Synchronization signal (SS) burst
Control resource sets (CORESETs)
Search spaces
Physical downlink control channel (PDCCH) and PDCCH demodulation reference signal (DM-RS)
Physical downlink shared channel (PDSCH), PDSCH DM-RS, and PDSCH phase-tracking reference signal (PT-RS)
Channel state information reference signal (CSI-RS)
Creation
Description
cfgDL = nrDLCarrierConfig
creates a default
single-component-carrier 5G downlink waveform configuration object.
cfgDL = nrDLCarrierConfig(
sets
properties using one
or more name-value pair arguments. Enclose each property name in quotes. For example,
Name,Value
)'FrequencyRange','FR2'
specifies a downlink waveform for frequency
range 2 (FR2).
Properties
Label
— Name of downlink carrier configuration
'Downlink carrier 1'
(default) | character array | string scalar
Name of the downlink carrier configuration, specified as a character array or string scalar. Use this property to set a description to the downlink 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 | six-element row vector | eight-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.
Six-element row vector of the form [w1 w2 w3 w4 w5 w6 ], 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 240 kHz, 480 kHz, or 960 kHz SCS.
Eight-element row vector of the form [w1 w2 w3 w4 w5 w6 w7 w8], 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 240 kHz SCS.
w7 specifies the windowing percentage for 480 kHz SCS.
w8 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.
SSBurst
— SS burst configuration
default nrWavegenSSBurstConfig
object (default) | nrWavegenSSBurstConfig
object
SS burst configuration, specified as an nrWavegenSSBurstConfig
object. Use this property to configure the SS burst and blocks.
CORESET
— One or more CORESET configurations
{nrCORESETConfig
}
(default) | cell array of nrCORESETConfig
objects
nrCORESETConfig
}One or more CORESET configurations, specified as a cell array of nrCORESETConfig
objects. Use
this property to specify different CORESET configurations for multiple search spaces and
PDCCH.
SearchSpaces
— One or more search space set configurations
{nrSearchSpaceConfig
}
(default) | cell array of nrSearchSpaceConfig
objects
nrSearchSpaceConfig
}One or more search space set configurations, specified as a cell array of nrSearchSpaceConfig
objects. Use this property to specify different search space set configurations for
linking to a CORESET and for multiple PDCCH.
PDCCH
— One or more PDCCH configurations
{nrWavegenPDCCHConfig
}
(default) | cell array of nrWavegenPDCCHConfig
objects
nrWavegenPDCCHConfig
}One or more PDCCH configurations, specified as a cell array of nrWavegenPDCCHConfig
objects. Use this property to configure different PDCCH and associated DM-RS.
PDSCH
— One or more PDSCH configurations
{nrWavegenPDSCHConfig
}
(default) | cell array of nrWavegenPDSCHConfig
objects
nrWavegenPDSCHConfig
}One or more PDSCH configurations, specified as a cell array of nrWavegenPDSCHConfig
objects. Use this property to configure different PDSCH and associated DM-RS and
PT-RS.
CSIRS
— One or more CSI-RS configurations
{nrWavegenCSIRSConfig('Enable',0)}
(default) | cell array of nrWavegenCSIRSConfig
objects
One or more CSI-RS configurations, specified as a cell array of nrWavegenCSIRSConfig
objects.
Object Functions
openInGenerator | Open 5G waveform configuration in 5G Waveform Generator app |
Examples
Configure and Generate Single-User 5G Downlink 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 an SS burst configuration object with block pattern Case A.
ssb = nrWavegenSSBurstConfig('BlockPattern','Case A');
Create a PDCCH configuration object, specifying an aggregation of size two and the fourth candidate for the PDCCH instance.
pdcch = nrWavegenPDCCHConfig('AggregationLevel',2,'AllocatedCandidate',4);
Create a CORESET configuration object, specifying four frequency resources and a duration of three OFDM symbols.
coreset = nrCORESETConfig; coreset.FrequencyResources = [1 1 1 1]; coreset.Duration = 3;
Create a search space set configuration object, specifying two aggregation levels.
ss = nrSearchSpaceConfig; ss.NumCandidates = [8 4 0 0 0];
Create a PDSCH configuration object, specifying the modulation scheme and the target code rate. Enable the PDSCH PT-RS.
pdsch = nrWavegenPDSCHConfig( ... 'Modulation','16QAM','TargetCodeRate',658/1024,'EnablePTRS',true);
Create a PDSCH DM-RS and a PDSCH PT-RS configuration object with the specified property values.
dmrs = nrPDSCHDMRSConfig('DMRSTypeAPosition',3); pdsch.DMRS = dmrs; ptrs = nrPDSCHPTRSConfig('TimeDensity',2); pdsch.PTRS = ptrs;
Create a CSI-RS configuration object with the specified property values.
csirs = nrWavegenCSIRSConfig('RowNumber',4,'RBOffset',10,'NumRB',10,'SymbolLocations',5);
Create a single-user 5G downlink waveform configuration object, specifying the previously defined configurations.
cfgDL = nrDLCarrierConfig( ... 'FrequencyRange','FR1', ... 'ChannelBandwidth',40, ... 'NumSubframes',20, ... 'SCSCarriers',{carrier}, ... 'BandwidthParts',{bwp}, ... 'SSBurst',ssb, ... 'CORESET',{coreset}, ... 'SearchSpaces',{ss}, ... 'PDCCH',{pdcch}, ... 'PDSCH',{pdsch}, ... 'CSIRS',{csirs});
Generate a 5G downlink waveform using the specified configuration.
waveform = nrWaveformGenerator(cfgDL);
Configure and Generate Multiuser 5G Downlink 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',1,'SubcarrierSpacing',15,'NStartBWP',10,'NSizeBWP',80), ... nrWavegenBWPConfig('BandwidthPartID',2,'SubcarrierSpacing',30,'NStartBWP',0,'NSizeBWP',60)};
Create an SS burst configuration object with block pattern Case A, corresponding to an SCS of 15 kHz.
ssb = nrWavegenSSBurstConfig('BlockPattern','Case A');
Create two PDCCH configuration objects.
pdcch = { nrWavegenPDCCHConfig('SearchSpaceID',1,'BandwidthPartID',1,'RNTI',1,'DMRSScramblingID',1), ... nrWavegenPDCCHConfig('SearchSpaceID',2,'BandwidthPartID',2,'RNTI',2,'DMRSScramblingID',2, ... 'AggregationLevel',4)};
Create two CORESET configuration objects and two search space set configuration objects for the two PDCCH.
coreset = { nrCORESETConfig('CORESETID',1,'FrequencyResources',[1 1 1 1 1 0 0 0 0 0 1],'Duration',3), ... nrCORESETConfig('CORESETID',2,'FrequencyResources',[0 0 0 0 0 0 0 0 1 1])}; ss = { nrSearchSpaceConfig('SearchSpaceID',1,'CORESETID',1,'StartSymbolWithinSlot',4), ... nrSearchSpaceConfig('SearchSpaceID',2,'CORESETID',2,'NumCandidates',[8 8 4 0 0])};
Create two PDSCH configuration objects with mixed modulation schemes.
pdsch = { nrWavegenPDSCHConfig('BandwidthPartID',1,'Modulation','16QAM','RNTI',1,'NID',1,'PRBSet',10:51), ... nrWavegenPDSCHConfig('BandwidthPartID',2,'Modulation','QPSK','RNTI',2,'NID',2, ... 'PRBSet', 50:59)};
Create two CSI-RS configuration objects.
csirs = { nrWavegenCSIRSConfig('BandwidthPartID',1,'RowNumber',2,'RBOffset',20), ... nrWavegenCSIRSConfig('BandwidthPartID',2,'Density','one','RowNumber',4,'NumRB',10)};
Create a multiuser 5G downlink waveform configuration object, specifying the previously defined configurations.
cfgDL = nrDLCarrierConfig( ... 'FrequencyRange','FR1', ... 'ChannelBandwidth',40, ... 'NumSubframes',20, ... 'SCSCarriers',carriers, ... 'BandwidthParts',bwp, ... 'SSBurst',ssb, ... 'CORESET',coreset, ... 'SearchSpaces',ss, ... 'PDCCH',pdcch, ... 'PDSCH',pdsch, ... 'CSIRS',csirs);
Generate a 5G downlink waveform using the specified configuration.
waveform = nrWaveformGenerator(cfgDL);
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2020bR2023b: Specify initial subframe number
Use the InitialNSubframe
property to specify the initial subframe number
in the waveform.
R2023b: Open downlink waveform configuration parameters in app
Use the openInGenerator
object function
to open your downlink 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.
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 (한국어)