Skip to main content

Module grid

Module grid 

Source
Expand description

The OFDM resource grid: data and pilot resource elements.

A grid holds $K$ subcarriers × $L$ OFDM symbols; a PilotPattern marks the resource elements (REs) that carry known pilots, the others carry data. Pilots are unit-energy QPSK symbols drawn from a seed (known to the receiver), except those of a PilotTable, which carries its own values (the sequences and boosts of a standard).

PatternPilotsSuited to
PilotPattern::Blockevery subcarrier of one symbol in periodslow fading, frequency-selective channels
PilotPattern::Combone subcarrier in spacing, in every symbolfast fading
PilotPattern::Latticeone subcarrier in freq, one symbol in timeboth, at a lower overhead
PilotPattern::Explicitthe positions and values of a PilotTablethe pilots of a standard (scattered, staggered, boosted)

The grid is stored symbol after symbol: RE $(k, l)$ is at index $l K + k$; ResourceGrid::data_indices lists the indices of the data REs in that order, the one walk of the grid that ResourceGrid::map, ResourceGrid::extract and the OFDM link share. ResourceGrid::check refuses a spacing of zero (which ResourceGrid::is_pilot would otherwise read as one) and a table of another size.

§Examples

use comnum_waveform::ofdm::grid::{PilotPattern, ResourceGrid};
use comnum_math::C64;
let g = ResourceGrid { n_subcarriers: 12, n_symbols: 7, pattern: PilotPattern::Lattice { freq: 3, time: 3 }, seed: 1 };
assert_eq!(g.pilot_positions().len(), 4 * 3);
let d = vec![C64::new(1.0, 0.0); g.n_data()];
let grid = g.map(&d)?;
assert_eq!(g.extract(&grid)?, d);

§References

  1. S. Coleri, M. Ergen, A. Puri and A. Bahai, “Channel estimation techniques based on pilot arrangement in OFDM systems,” IEEE Trans. Broadcast., 48(3), 223–229, 2002.

Structs§

PilotTable
The pilots of a grid given one by one: their positions and their values (the sequences, phases and power boosts that a standard prescribes).
ResourceGrid
A grid of n_subcarriers × n_symbols resource elements with pilots.

Enums§

PilotPattern
The positions of the pilots in the grid.