# lteOFDMModulate

OFDM modulation

## Syntax

``````[waveform,info] = lteOFDMModulate(enb,grid)``````
``````[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 Representing Resource Grids. 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 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 = reshape(lteSymbolModulate(randi([0,1],prod(dims)*2,1), ... 'QPSK'),dims); waveform = lteOFDMModulate(enb,regrid);```

## Input Arguments

collapse all

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

Parameter FieldRequired or OptionalValuesDescription
`CyclicPrefix`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`Windowing`Optional

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 NRB 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`

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 a multiple of 12 REs per Resource Block, since number of resource blocks is NRB =M / 12. 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

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

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

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

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

Data Types: `double`

Number of FFT points, returned as a scalar power of 2. `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: `uint32`

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`

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`

## Algorithms

collapse all

### 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 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=\frac{1}{2}\left(1-\mathrm{sin}\left(\pi \frac{N+1-2i}{2N}\right)\right),\text{\hspace{0.17em}}\text{where}\text{\hspace{0.17em}}i=1\dots N$`

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. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.