Documentation

lteOFDMModulate

OFDM modulation

Syntax

  • [waveform,info] = lteOFDMModulate(enb,grid)
    example
  • [waveform,info] = lteOFDMModulate(enb,grid,windowing)

Description

example

[waveform,info] = lteOFDMModulate(enb,grid) performs DC subcarrier insertion, inverse fast Fourier transform (IFFT) calculation, cyclic prefix insertion, and optional raised cosine windowing and overlapping of adjacent OFDM symbols of the complex symbols in the resource array, grid. grid is a 3-D array containing the resource elements (REs) for a number of subframes across all configured antenna ports, as described in Data Structures. It could also be multiple concatenated matrices to give multiple subframes, using concatenation across the columns or second dimension. The antenna planes in grid are each OFDM modulated to yield the columns of the output waveform.

grid can span multiple subframes. Windowing and overlapping are applied between all adjacent OFDM symbols, including the last of one subframe and the first of the next. Therefore, a different result is obtained than if lteOFDMModulate is called on individual subframes and then those time-domain waveforms are concatenated. In that case, the resulting waveform has discontinuities at the start or end of each subframe. It is recommended that all subframes for OFDM modulation first be concatenated before calling lteOFDMModulate on the resulting multi-subframe array. However, individual subframes can be OFDM modulated and the resulting multi-subframe time-domain waveform created by manual overlapping.

[waveform,info] = lteOFDMModulate(enb,grid,windowing) allows control of the number of windowed and overlapped samples used in the time-domain windowing, specified by the windowing parameter. The value of enb.Windowing, if present, is ignored, and the output, info.Windowing is set to windowing.

Examples

collapse all

Perform OFDM Modulation

Perform OFDM modulation of one subframe of random uniformly-distributed noise using a 10 MHz two-antenna configuration.

enb = struct('NDLRB',50,'CyclicPrefix','Normal','CellRefP',2);
dims = lteDLResourceGridSize(enb);
regrid = complex(rand(dims)-0.5,rand(dims)-0.5);
waveform = lteOFDMModulate(enb,regrid);

Input Arguments

collapse all

enb — Cell-wide settingsstructure

Cell-wide settings, specified as a structure. enb can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer (6,...,110). Standard bandwidth values are 6, 15, 25, 50, 75, and 100. NDLRB also accepts the standardized bandwidths in string format from the set {'1.4MHz', '3MHz', '5MHz', '10MHz', '15MHz', '20MHz'}.

Number of downlink (DL) resource blocks (RBs)

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

WindowingOptional

Nonnegative scalar integer

Number of time-domain samples over which windowing and overlapping of OFDM symbols is applied

See Note

    Note:   If enb.Windowing is absent, a default value for the number of windowed and overlapped samples is used. The default value is chosen as a function of enb.NDLRB to compromise between the effective duration of cyclic prefix, and thus the channel delay spread tolerance, and the spectral characteristics of the transmitted signal, not considering any additional FIR filtering. The value used is returned in info.Windowing. If enb.Windowing is present, it must be even. The issues concerning concatenation of subframes before OFDM modulation do not apply when enb.Windowing is zero.

Data Types: struct

grid — Resource elements3-D numeric array

Resource elements, specified as a 3-D numeric array. grid stores the resource elements for a number of subframes across all configured antenna ports. grid is an M-by-N-by-P array, where M is the number of subcarriers, N is the number of OFDM symbols, and P is the number of antennas.

M must be 12 ×enb.NDLRB, where enb.NDLRB must be from 6 through 110. N must be a multiple of the number of symbols in a subframe, L, where L is 14 for normal cyclic prefix and 12 for extended cyclic prefix.

Data Types: double
Complex Number Support: Yes

windowing — OFDM sample spaneven scalar integer

OFDM sample span, specified as an even scalar integer. This input argument controls the number of windowed and overlapped samples used in the time-domain windowing. This value overwrites the value of the parameter field enb.Windowing, if present.

Data Types: double

Output Arguments

collapse all

waveform — OFDM modulated waveformnumeric matrix

OFDM modulated waveform, returned as a numeric matrix of size T-by-P, where P is the number of antennas and T is the number of time-domain samples. T = K × 30720 / 2048 × Nfft where Nfft is the IFFT size and K is the number of subframes in the input grid. Nfft is a function of the number of resource blocks (NRB), as shown in the following table.

NRBNfft
6128
15256
25512
501024
752048
1002048

In general, Nfft is the smallest power of 2 greater than or equal to 12*NRB/0.85. It is the smallest FFT that spans all subcarriers and results in a bandwidth occupancy, 12*NRB/Nfft, of no more than 85%.

Data Types: double
Complex Number Support: Yes

info — OFDM modulated waveform informationstructure

OFDM modulated waveform information, returned as a structure. info contains the following fields.

SamplingRate — Time-domain waveform sampling ratescalar value

Time-domain waveform sampling rate, returned as a scalar value. SamplingRate = 30.72 MHz / 2048 × Nfft.

Data Types: double

Nfft — Number of FFT pointsscalar power of 2

Number of FFT points, returned as a scalar power of 2. Nfft is the smallest power of 2 greater than or equal to 12 × NDLRB / 0.85. It is the smallest FFT that spans all subcarriers and results in a bandwidth occupancy (12 × NDLRB / Nfft) of no more than 85%.

Data Types: uint32

Windowing — OFDM sample spaneven integer scalar

OFDM sample span, returned as an even integer scalar. This parameter is the number of time-domain samples over which windowing and overlapping of OFDM symbols are applied.

Data Types: int32

CyclicPrefixLengths — Cyclic prefix lengtheven integer scalar

Cyclic prefix length (in samples) of each OFDM symbol in a subframe.

info.NfftCyclicPrefixLengths
for CyclicPrefix = 'Normal'for CyclicPrefix = 'Extended'
2048[160 144 144 144 144 144 144 160 144 144 144 144 144 144][512 512 512 512 512 512 512 512 512 512 512 512]
1024[80 72 72 72 72 72 72 80 72 72 72 72 72 72][256 256 256 256 256 256 256 256 256 256 256 256]
512[40 36 36 36 36 36 36 40 36 36 36 36 36 36][128 128 128 128 128 128 128 128 128 128 128 128]
256[20 18 18 18 18 18 18 20 18 18 18 18 18 18][64 64 64 64 64 64 64 64 64 64 64 64]
128[10 9 9 9 9 9 9 10 9 9 9 9 9 9][32 32 32 32 32 32 32 32 32 32 32 32]

    Note:   For info.Nfft < 2048, info.CyclicPrefixLengths are the CyclicPrefixLengths for info.Nfft = 2048 scaled by info.Nfft / 2048.

Data Types: uint32

Data Types: struct

More About

collapse all

Algorithms

Windowing

The use of the IFFT within the OFDM modulator constitutes the use of a rectangular pulse shape. This use of the IFFT means that discontinuities occur from one OFDM symbol to the next, resulting in out of band emissions. (Alternatively, considering the frequency domain, the frequency response of this rectangular pulse shape is a sinc pulse.) The discontinuities between OFDM symbols can be reduced by using windowing, which smooths the transitions between OFDM symbols. Within LTE System Toolbox, the windowing is performed as follows:

For Windowing = N samples, the cyclic prefix added to the nominal OFDM symbol extends by N additional samples.

This extended waveform is windowed by pointwise multiplication in the time domain with a raised cosine window, which applies a taper to the first N and last N samples, with all other values being 1. The y values in the first N samples are:

y=12(1sin(πN+12i2N)),wherei=1N

The values in the last N samples are the same values in reverse order.

The windowed OFDM symbols are then overlapped by commencing transmission of each windowed OFDM symbol N samples before the end of the previous OFDM symbol. This overlapping ensures that the time between OFDM symbols is maintained as required by the standard. The taper at the start of the first OFDM symbol for transmission is removed and is overlapped with the taper at the end of the last OFDM symbol.

Processing

The processing performed by this function is illustrated in the following diagram.

The number of samples used for windowing depends on the number of resource blocks and whether the cyclic prefix length is normal or extended. The number of samples is chosen in accordance with the maximum values implied by TS 36.101 [1], Tables F.5.3-1, and F.5.4-1.

Number of resource blocks (NRB)Windowing samples for normal cyclic prefixWindowing samples for extended cyclic prefix
6 4 4
15 6 6
25 4 4
50 6 6
75 8 8
100 8 8

The number of windowing samples is a compromise between the effective duration of cyclic prefix, and therefore the channel delay spread tolerance, and the spectral characteristics of the transmitted signal, not considering any additional FIR filtering. For a larger amount of windowing, the effective duration of the cyclic prefix is reduced but the transmitted signal spectrum has smaller out-of-band emissions.

References

[1] 3GPP TS 36.101. "User Equipment (UE) Radio Transmission and Reception." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

Introduced in R2014a

Was this topic helpful?