SC-FDMA demodulation


  • grid = lteSCFDMADemodulate(ue,waveform)
  • grid = lteSCFDMADemodulate(ue,waveform,cpfraction)



grid = lteSCFDMADemodulate(ue,waveform) performs SC-FDMA demodulation of the time-domain waveform, waveform, given UE-specific settings structure, ue.

The demodulation performs one FFT operation per received SC-FDMA symbol. It recovers the received subcarrier values, which are then used to construct each column of the output resource array, grid. The FFT is positioned partway through the cyclic prefix, to allow for a certain degree of channel delay spread while avoiding the overlap between adjacent OFDM symbols. The input FFT is also shifted by half of one subcarrier. The particular position of the FFT chosen here avoids the SC-FDMA symbol overlapping used in the lteSCFDMAModulate function. Since the FFT is performed away from the original zero phase point on the transmitted subcarriers, a phase correction is applied to each subcarrier after the FFT.

grid = lteSCFDMADemodulate(ue,waveform,cpfraction) allows the specification of the position of the demodulation through the cyclic prefix.


collapse all

Perform SC-FDMA Demodulation

Perform SC-FDMA demodulation of uplink fixed reference channel (FRC) A3-2.

frc = lteRMCUL('A3-2');
waveform = lteRMCULTool(frc,randi([0,1],frc.PUSCH.TrBlkSizes(1),1));
rgrid = lteSCFDMADemodulate(frc,waveform);

Input Arguments

collapse all

ue — UE-specific settingsstructure

UE-specific settings, specified as a structure. ue contains the following fields.

Parameter FieldRequired or OptionalValuesDescription

Positive scalar integer

Number of uplink (UL) resource blocks (RBs)


'Normal' (default), 'Extended'

Cyclic prefix length

Data Types: struct

waveform — Time-domain waveformnumeric matrix

Time-domain waveform, specified as a numeric matrix. The sampling rate of the time domain waveform waveform must be the same as used in the lteSCFDMAModulate modulator function for the specified number of resource blocks NULRB. waveform must also be time-aligned such that the first sample is the first sample of the cyclic prefix of the first SC-FDMA symbol in a subframe.

Data Types: double
Complex Number Support: Yes

cpfraction — Cyclic prefix fraction0.55 (default) | positive numeric scalar

Cyclic prefix fraction, specified as a positive numeric scalar between 0 and 1. This argument specifies the position of the demodulation through the cyclic prefix. A value of 0 represents the start of the cyclic prefix. A value of 1 represents the end of the cyclic prefix. The default value of 0.55 allows for the default level of windowing in the lteSCFDMAModulate function.

Data Types: double

Output Arguments

collapse all

grid — Output resource arraynumeric matrix

Output resource array, returned as a numeric matrix.

Data Types: double
Complex Number Support: Yes

Introduced in R2014a

Was this topic helpful?