# LTE OFDM Modulator

Modulate LTE resource grid and return time-domain OFDM samples

• Library:
• Wireless HDL Toolbox / Modulation

## Description

The LTE OFDM Modulator block implements an algorithm for modulating LTE resource grid samples specified by LTE standard TS 36.212 [1]. The block uses an orthogonal frequency-division multiplexing (OFDM) mechanism in its operation and converts the resource grid input samples to an equivalent time-domain signal output. OFDM is effective for communication over channels with high-frequency selectivity and is widely used in the development of the LTE downlink transmitter. The block implements a windowing feature to reduce the spectral regrowth, or adjacent channel leakage ratio (ACLR), of an OFDM signal.

The block provides an interface and architecture suitable for HDL code generation and hardware deployment.

You can select the number of downlink resource blocks (NDLRB) and choose either normal or extended cyclic prefix (CP), as described in the LTE standard. The latency from the first input sample to the first output sample depends on your selection of the NDLRB.

NDLRBLatency
66268
156376
256496
506796
757096
1007396

## Ports

### Input

expand all

Input data, specified as a signed real or complex number. `double` and `single` data types are supported for simulation, but not for HDL code generation.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `signed fixed point`
Complex Number Support: Yes

Control signal that indicates if the data from the data input port is valid. When this value is `1` (`true`), the block captures the value on the data input port. When this value is `0` (`false`), the block ignores the values on the data input port.

Data Types: `Boolean`

Number of downlink resource blocks, specified as `6`, `15`, `25`, `50`, `75`, or `100`. The NDLRB must be one of these six values specified by LTE standard TS 36.212 [1]. The block samples this port at the start of each subframe and ignores any changes within a subframe.

#### Dependencies

To enable this port, set the NDLRB source parameter to `Input port`.

Data Types: `uint8` | `uint16` | `uint32` | `fixdt(0,K,0), K >= 7` | `single` | `double`

Type of CP, specified as a `Boolean` scalar. When this value is `0` (false), the block selects normal CP. When this value is `1` (true), the block selects extended CP. The block samples this port at the start of each subframe and ignores any changes within a subframe.

#### Dependencies

To enable this port, set the Cyclic prefix source parameter to `Input port`.

Data Types: `Boolean`

Clears internal states, specified as a `Boolean` scalar. When this value is `1` (`true`), the block stops the current calculation and clears all internal states. When this value is `0` (`false`) and the valid input value is `1` (`true`), the block begins a new subframe.

#### Dependencies

To enable this port, select the Enable reset input port parameter.

Data Types: `Boolean`

### Output

expand all

Output data, returned as a signed real or complex number. The data type is the same as the data type of the data input port. When you clear the Divide butterfly outputs by two parameter, the word length increases by 1 bit per stage in inverse fast fourier transform (IFFT).

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `signed fixed point`
Complex Number Support: Yes

Control signal that indicates if the data from the data output port is valid. The block sets this value to `1` (`true`) when the modulated samples are available on the data output port.

Data Types: `Boolean`

Control signal that indicates that the block is ready for new input data. When this value is `1` (`true`), the block accepts input data in the next time step. When this value is `0` (`false`), the block ignores input data in the next time step.

Data Types: `Boolean`

## Parameters

expand all

### Main

You can set the NDLRB by selecting a parameter value or using an input port. To enable the NDLRB parameter, select `Property`. To enable the NDLRB port, select ```Input port```.

Number of downlink resource blocks, specified as `6`, `15`, `25`, `50`, `75`, or `100`. NDLRB must be one of these six values specified by LTE standard TS 36.212 [1].

#### Dependencies

To enable this parameter, set the NDLRB source parameter to `Property`.

You can set the cyclic prefix by selecting a parameter value or using an input port. To enable the Cyclic prefix type parameter, select `Property`. To enable the cyclicPrefixType port, select `Input port`.

Type of cyclic prefix, specified as `Normal` or `Extended`.

#### Dependencies

To enable this parameter, set the Cyclic prefix source parameter to `Property`.

Select this parameter to perform a windowing operation that reduces spectral growth and uses the NDRLB window length specified by the Window length per NDLRB parameter. Clear this parameter to disable windowing operation.

NDRLB window length, specified as a row vector of nonnegative integers whose elements correspond to the window lengths for NDRLB `6`, `15`, `25`, `50`, `75`, and `100` respectively. By default, the window lengths for NDRLB 6, 15, 25, 50, 75, and 100 are 4, 6, 4, 6, 8, and 8, respectively. The window length for each NDLRB can range from 0 to the minimum CP value.

• For normal CP, the minimum CP values for NDRLB `6`, `15`, `25`, `50`, `75`, and `100` are 9, 18, 36, 72, 144, and 144, respectively.

• For extended CP, the minimum CP values for NDRLB `6`, `15`, `25`, `50`, `75`, and `100` are 32, 64, 128, 256, 512, and 512, respectively.

#### Dependencies

To enable this parameter, select the Windowing parameter.

Select this parameter to enable the reset port on the block icon.

This parameter specifies the type of sample rate for the block to select for the output data.

• To provide an output data sample rate of 30.72 MHz, select ```Use maximum output data sample rate```.

• To provide an output data sample rate based on the NDLRB parameter, select ```Match output data sample rate to NDLRB```. The output sampling rates for NDLRB `6`, `15`, `25`, `50`, `75`, and `100` are 1.92 MHz, 3.84 MHz, 7.68 MHz, 15.36 MHz, 30.72 MHz, and 30.72 MHz, respectively.

### IFFT Block Parameters

When you select this parameter, the IFFT HDL Optimized (DSP System Toolbox) block in the LTE OFDM Modulator block implements an overall 1/N scale factor by dividing the output of each butterfly multiplication by two. This adjustment keeps the output of the IFFT block in the same amplitude range as its input. If you disable this parameter, the block avoids overflow by increasing the word length by 1 bit after each butterfly multiplication.

This parameter specifies the type of rounding mode for internal fixed-point calculations. Rounding applies to twiddle-factor multiplication and scaling operations. For more information about rounding modes, see Rounding Modes (DSP System Toolbox).

When the input is any integer or fixed-point data type, the IFFT algorithm uses fixed-point arithmetic for internal calculations. This parameter does not apply when the input data is of data type `single` or `double`.

## Algorithms

expand all

The LTE OFDM Modulator block operation sequence is carried over using these blocks: OFDM Symbol Formation, IFFT, FFT Shift, CP Addition, Windowing, and Base Rate Controller. The OFDM Symbol Formation block maps the resource grid input to active subcarrier bins to form 2048 subcarriers. The IFFT block converts the frequency-domain signal to time-domain signal, and the FFT Shift block performs time-domain FFT shift. The CP Addition block adds CP-length samples from the end of the symbol to its prefix. The Windowing block performs windowing and overlapping of adjacent OFDM symbols of complex symbols in the resource array. The Base Rate Controller block defines the sample rate of the output data. The parameters shown in the following figure configure the behavior of the block.

## References

[1] 3GPP TS 36.212. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: https://www.3gpp.org.

## Extended Capabilities

### Functions

Introduced in R2019a