optic.comm.ofdm.demodulateOFDM

demodulateOFDM(sig, param=None)

Demodulate OFDM signal.

Parameters:
  • sig (np.np.array) – Complex-valued array representing the OFDM signal sequence received at one sample per symbol.

  • param (optic.utils.parameters object, optional) –

    Parameters for OFDM demodulation.

    • param.Nfft : scalar, optional. Size of the FFT [default: 512].

    • param.G : scalar, optional. Cyclic prefix length [default: 4].

    • param.hermitSymmetry : bool, optional. If True, indicates real OFDM symbols; if False, indicates complex OFDM symbols [default: False].

    • param.pilot : complex-valued scalar, optional. Pilot symbol [default: 1 + 1j].

    • param.pilotCarriers : np.array, optional. Indexes of pilot subcarriers [default: an empty array].

    • param.nullCarriers : np.array, optional. Indexes of null subcarriers [default: an empty array].

    • param.returnChannel : bool, optional. If True, return the estimated channel [default: False].

Returns:

If returnChannel is False, returns a complex-valued array representing the demodulated symbols sequence received. If returnChannel is True, returns a tuple containing the demodulated symbols sequence received and the estimated channel.

Return type:

np.array or tuple

Notes

  • The input signal must be sampled at one sample per symbol.

  • This function performs demodulation of the OFDM signal according to the provided parameters, including channel estimation and single tap equalization.

References

[1] Proakis, J. G., & Salehi, M. Digital Communications (5th Edition). McGraw-Hill Education, 2008.