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).
| Pattern | Pilots | Suited to |
|---|---|---|
PilotPattern::Block | every subcarrier of one symbol in period | slow fading, frequency-selective channels |
PilotPattern::Comb | one subcarrier in spacing, in every symbol | fast fading |
PilotPattern::Lattice | one subcarrier in freq, one symbol in time | both, at a lower overhead |
PilotPattern::Explicit | the positions and values of a PilotTable | the 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
- 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§
- Pilot
Table - The pilots of a grid given one by one: their positions and their values (the sequences, phases and power boosts that a standard prescribes).
- Resource
Grid - A grid of
n_subcarriers×n_symbolsresource elements with pilots.
Enums§
- Pilot
Pattern - The positions of the pilots in the grid.