Main Content

pre6GChannelEstimate

Pre-6G practical channel estimation

Since R2026a

    Description

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

    [H,nVar] = pre6GChannelEstimate(carrier,rs,rxGrid) performs practical channel estimation on the received resource grid rxGrid for 6G research and prototyping. The function uses the reference signal configuration rs and carrier parameters carrier to generate reference symbols internally, then estimates the channel frequency response H and noise variance nVar.

    example

    [H,nVar] = pre6GChannelEstimate(___,Interpolation=interp) additionally specifies whether to interpolate the channel estimate across the resource grid.

    Examples

    collapse all

    Create carrier and reference signal configuration objects. Configure the RS to occupy every other subcarrier on two OFDM symbols.

    carrier = pre6GCarrierConfig;
    carrier.NSizeGrid = 52;
    carrier.SubcarrierSpacing = 120;
    
    rs = pre6GReferenceSignalConfig;
    rs.PRBSet = 0:carrier.NSizeGrid-1;
    rs.SubcarrierLocations = 0:2:10;
    rs.SymbolLocations = [0 7];

    Generate reference signal symbols and indices. Map the symbols onto a resource grid and apply AWGN.

    txGrid = pre6GResourceGrid(carrier,1);
    rsInd = pre6GReferenceSignalIndices(carrier,rs);
    rsSym = pre6GReferenceSignal(carrier,rs);
    txGrid(rsInd) = rsSym;
    rxGrid = awgn(txGrid,25);

    Perform practical channel estimation with interpolation disabled. Verify the function returns the channel estimate only at reference signal locations.

    [H,nVar] = pre6GChannelEstimate(carrier,rs,rxGrid,Interpolation="off");
    isequal(rsInd,find(H))
    ans = logical
       1
    
    

    Input Arguments

    collapse all

    Carrier configuration parameters for a specific OFDM numerology, specified as a pre6GCarrierConfig object. This function uses the NCellID, NSizeGrid, and SymbolsPerSlot properties of the pre6GCarrierConfig object.

    RS configuration parameters, specified as a pre6GRSConfig object. The function uses these pre6GRSConfig object properties to generate reference symbols and determine pilot locations:

    Received resource grid, specified as a K-by-L-by-R-by-B complex array, where:

    • K is the number of subcarriers.

    • L is the number of OFDM symbols.

    • R is the number of receive antennas.

    • B is the batch size.

    Data Types: single | double
    Complex Number Support: Yes

    Channel estimate interpolation, specified as one of these values:

    • "on" — The function interpolates the channel estimate across all resource elements in the grid.

    • "off" — The function returns the channel estimate only at the reference signal locations. All other grid locations are zero.

    Data Types: char | string

    Output Arguments

    collapse all

    Practical channel estimate, returned as a K-by-L-by-R-by-P-by-B complex array, where K, L, R, and B match the dimensions of rxGrid, and P is the number of reference signal ports.

    H inherits its data type from rxGrid.

    Data Types: single | double
    Complex Number Support: Yes

    Noise variance estimate, returned as a 1-by-B nonnegative row vector, where B is the batch size. Each element is the measured variance of additive white Gaussian noise on the received reference symbols for the corresponding batch element.

    Data Types: single | double

    Extended Capabilities

    expand all

    Version History

    Introduced in R2026a