Skip to main content

Module ufmc

Module ufmc 

Source
Expand description

Universal filtered multicarrier (UFMC): OFDM filtered per sub-band.

§Model

$K = BQ$ contiguous subcarriers centred on the carrier, out of a grid of $N$, are grouped in $B$ sub-bands of $Q$ subcarriers. Every sub-band is brought to the time domain by an IDFT of size $N$ (no cyclic prefix) and filtered by a filter of $L$ taps centred on it; the symbol is the sum of the $B$ filtered components, $N + L - 1$ samples, and consecutive symbols do not overlap (Schaich & Wild 2014, Sec. 3):

$$ \mathbf{x} = \sum_{i=1}^{B} \mathbf{F}{i} \mathbf{V}{i} \mathbf{s}_{i}, $$

with $\mathbf{V}{i}$ the columns of the IDFT of the sub-band and $\mathbf{F}{i}$ the Toeplitz matrix of the filter $f_{i}[l] = w[l], e^{j 2\pi c_{i} l / N}$, $w$ a Dolph–Chebyshev window (comnum_dsp::window::chebyshev) normalised to unit energy and $c_{i}$ the centre of the sub-band. The receiver appends zeros up to $2N$ samples and takes the DFT: the even bins $2k$ carry the subcarriers $k$, $\mathbf{s}_{k}$ times the response of its filter at $k/N$, which a one-tap equaliser removes. The other sub-bands vanish there exactly (the IDFT of a sub-band is zero at the bins of the others): UFMC is orthogonal in the complex sense, unlike FBMC/OQAM, and needs no prefix; the filters lower the sidelobes between sub-bands.

The symbols on the subcarriers have unit energy: the IDFT is scaled by $1/\sqrt{K}$ as in crate::ofdm.

§Examples

use comnum_waveform::ufmc::Ufmc;
use comnum_math::C64;
// 4 sub-bands of 12 subcarriers on a grid of 64, L = 16
let u = Ufmc { n_fft: 64, n_subbands: 4, subband_size: 12, filter_len: 16, ..Ufmc::default() };
u.check()?;
let d: Vec<C64> = (0..96).map(|i| C64::new(if i % 3 == 0 { 1.0 } else { -1.0 }, 1.0)).collect();
let x = u.modulate(&d)?;
assert_eq!(x.len(), 2 * (64 + 15));
let back = u.demodulate(&x)?;
assert!(back.iter().zip(&d).all(|(a, b)| (a - b).norm() < 1e-9));

§References

  1. F. Schaich and T. Wild, “Waveform contenders for 5G — OFDM vs. FBMC vs. UFMC,” Proc. 6th Int. Symp. Communications, Control and Signal Processing (ISCCSP), 2014.
  2. F. J. Harris, “On the use of windows for harmonic analysis with the discrete Fourier transform,” Proc. IEEE, 66(1), 51–83, 1978.

Structs§

Ufmc
A UFMC modem (see the module): its fields are its parameters, set by struct update from Ufmc::default and checked by Ufmc::check (and by the modulator and the demodulator).