Contenido principal

ofdmPilotGrid

Specify OFDM pilot locations using rectangular patterns

Since R2026a

Description

pilotLocations = ofdmPilotGrid(scIndices,symIndices,clusterScPos,clusterSymPos) returns OFDM pilot locations based on rectangular patterns specified by the inputs. The function creates a template cluster of pilot positions using a mesh grid defined by scIndices (subcarrier indices) and symIndices (symbol indices), then replicates the template and places each copy at the starting positions given by clusterScPos and clusterSymPos. The result is multiple rectangular pilot clusters distributed throughout the resource grid.

A cluster is a small group of pilot positions that sit close together in the OFDM grid (across subcarriers and symbols) and are treated as one unit for estimating the channel. Within a cluster, the transmit pilot vectors are orthogonal. The cluster can be a square or any other nearby pattern and does not have to be contiguous.

example

Examples

collapse all

Set pilot locations using these properties:

  • [1 2] are the subcarrier indices for the cluster template.

  • [1 2] are the symbol indices for the cluster template.

  • [7 31 57] are the starting subcarrier positions for each cluster.

  • [1 7 13] are the starting symbol positions for each cluster.

pilotLocations = ofdmPilotGrid([1 2], [1 2], [7 31 57], [1 7 13]);
fprintf('Number of clusters = %d\n', size(pilotLocations, 3));
Number of clusters = 9

Display the coordinates of the four pilot symbols in the very first 2-by-2 block.

disp(pilotLocations(1:4,:,1))
     7     1
     8     1
     7     2
     8     2

Column 1 displays the subcarrier indices and column 2 displays the symbol indices. This cluster has 4 pilot symbols. They are located at subcarriers 7 and 8, and OFDM symbols 1 and 2. This cluster forms a 2-by-2 rectangular block in the subcarrier-symbol grid, starting at subcarrier 7 and symbol 1.

Input Arguments

collapse all

Subcarrier indices for pilot symbols in a single cluster, specified as a vector of integers. If you want each cluster to cover two subcarriers at 1 and 3, set scIndices = [1 3], which means that each cluster has two pilot symbols at the first and third subcarriers of that cluster.

Data Types: single | double

OFDM symbol indices for pilot symbols in a single cluster, specified as a vector of integers. If you want each cluster to cover two OFDM symbols at 1 and 3, set symIndices = [1 3], which means that each cluster has two pilot symbols at the first and third OFDM symbols of that cluster.

Data Types: single | double

Starting subcarrier positions for each cluster, specified as a vector of integers. Consider pilot clusters that start at subcarriers 5, 20, and 40. Then clusterScPos=[5 20 40] means the first pilot cluster starts at subcarrier 5, the second starts at subcarrier 20, and the third starts at subcarrier 40.

Data Types: single | double

Starting symbol positions for each cluster, specified as a vector of integers. Consider pilot clusters that start at symbols 2, 5, and 9. Then clusterSymPos=[2 5 9] means the first pilot cluster starts at symbol 2, the second starts at symbol 5, and the third starts at symbol 9.

Data Types: single | double

Output Arguments

collapse all

Pilot locations, returned as a 3-D array where the:

  • First dimension is the number of pilot locations per cluster of size (scIndices)-by-(symIndices).

  • Second dimension is always 2, where the first column is the subcarrier index and the second column is the symbol index.

  • Third dimension is the number of clusters.

Version History

Introduced in R2026a

See Also

Objects

Functions