Main Content

nrDLCarrierConfig

5G downlink waveform configuration parameters

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.

example

cfgDL = nrDLCarrierConfig(Name,Value) sets properties using one or more name-value pair arguments. Enclose each property name in quotes. For example, 'FrequencyRange','FR2' specifies a downlink waveform for frequency range 2 (FR2).

Properties

expand all

Frequency range, specified as one of these values.

  • 'FR1' for frequency range 1 (FR1)

  • 'FR2' for frequency range 2 (FR2)

Data Types: char | string

Downlink channel bandwidth, in MHz, specified as one of these values.

  • 5, 10, 15, 20, 25, 30, 40, 50, 60, 80, 90, or 100 for FR1

  • 50, 100, 200, or 400 for FR2

Set the frequency range with the FrequencyRange property.

Data Types: double

Physical layer cell identity, specified as an integer from 0 to 1007.

Data Types: double

Waveform duration, in number of subframes, specified as a positive integer.

Data Types: double

Windowing percentage relative to fast Fourier transform (FFT) length, specified as one of these values.

  • Real scalar in the range [0 50] — The object sets the same windowing percentage for all combinations of SCS and cyclic prefix.

  • [w1 w2 w3 w4 w5 w6 ] real vector with element values in the range [0 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

  • [] — The object automatically selects windowing percentage based on other object properties. For more information, see nrOFDMModulate.

This property configures the number of time-domain samples, as a percentage of the FFT length, over which windowing and overlapping of OFDM symbols take place.

Data Types: double

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.

One or more BWP configurations, specified as a cell array of nrWavegenBWPConfig objects.

SS burst configuration, specified as an nrWavegenSSBurstConfig object. Use this property to configure the SS burst and blocks.

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.

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.

One or more PDCCH configurations, specified as a cell array of nrWavegenPDCCHConfig objects. Use this property to configure different PDCCH and associated DM-RS.

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.

One or more CSI-RS configurations, specified as a cell array of nrWavegenCSIRSConfig objects.

Examples

collapse all

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);

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);

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), ...
    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',10), ... 
     nrWavegenCSIRSConfig('BandwidthPartID',2,'Density','three','RowNumber',4)};

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);
Introduced in R2020b