Main Content

pre6GOFDMModulate

Generate pre-6G OFDM-modulated waveform

Since R2026a

    Description

    Add-On Required: This feature requires the 6G Exploration Library for 5G Toolbox add-on.

    waveform = pre6GOFDMModulate(carrier,grid) generates a pre-6G time-domain waveform by OFDM-modulating the carrier resource array grid for carrier configuration parameters carrier.

    example

    waveform = pre6GOFDMModulate(___,Name=Value) specifies options using one or more name-value arguments. For example, BatchAcrossSlots="on" enables batching across slots.

    example

    Examples

    collapse all

    Set carrier configuration parameters, specifying a subcarrier spacing of 3.75 kHz, 280 resource blocks (RBs), and extended cyclic prefix.

    carrier = pre6GCarrierConfig(SubcarrierSpacing=3.75,NSizeGrid=280,CyclicPrefix="extended");
    nSlots =  carrier.SlotsPerFrame;

    Get OFDM information for the carrier configuration, specifying an oversampling factor of 2.

    osf = 2;
    info = pre6GOFDMInfo(carrier,OversamplingFactor=osf,BatchAcrossSlots="off");

    Create a reference signal configuration object with default parameters. Specify a single transmit antenna and a batch size of 2. Calculate the number of batches in a frame.

    rs = pre6GReferenceSignalConfig;
    P = 1;
    B = 2;
    numBatches = nSlots/B;

    Produce the frame resource array by creating and concatenating individual batch resource arrays.

    grid = [];
    for i = 0:numBatches - 1
        slotGrid = pre6GResourceGrid(carrier,P,BatchSize=B);
        [K,L] = size(slotGrid);
        ind = pre6GReferenceSignalIndices(carrier,rs,BatchSize=B);
        sym = pre6GReferenceSignal(carrier,rs,BatchSize=B);
        slotGrid(ind) = sym;
        grid = cat(4,grid,slotGrid);
    end

    OFDM-modulate the resource array for the specified carrier configuration and oversampling factor.

    waveform = pre6GOFDMModulate(carrier,grid,OversamplingFactor=osf,BatchAcrossSlots="on");

    Input Arguments

    collapse all

    Carrier configuration parameters for a specific OFDM numerology, specified as a pre6GCarrierConfig object. Only these object properties are relevant for this function:

    Pre-6G carrier resource array, specified as a complex-valued array of size K-by-N-by-P-by-B.

    • K is the number of subcarriers.

    • N is the number of OFDM symbols.

    • P is the number of transmit antennas.

    • B is the batch size.

    Data Types: single | double
    Complex Number Support: Yes

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: BatchAcrossSlots="on" enables batching across slots.

    Number of time-domain samples for OFDM symbol windowing and overlapping, specified as a nonnegative integer. If you specify this argument as a value greater than 0, the function applies raised cosine windowing and overlapping of OFDM symbols over the number of samples you specify.

    Data Types: double

    Oversampling factor, specified as a positive scalar. The function performs oversampling by multiplying the initial number of FFT points by the factor you specify. The resulting number of FFT points must be an even integer that is greater than or equal to K, the number of subcarriers.

    Data Types: double

    Enable batching across slots, specified as "off" or "on". When you specify this argument as "on", the function interprets each slice along the fourth dimension (B) of the grid input as one slot. In this case, the second dimension (N) must be equal to the number of OFDM symbols in one slot.

    Data Types: char | string

    Output Arguments

    collapse all

    Pre-6G OFDM modulated waveform, returned as a complex-valued matrix of size T-by-P-by-B.

    • T is the number of time-domain samples in the waveform.

    • P is the number of transmit antennas.

    • B is the batch size.

    Data Types: single | double
    Complex Number Support: Yes

    Extended Capabilities

    expand all

    Version History

    Introduced in R2026a