# 3D look-up table

Description of the three-dimensional look-up table component, which generates an output signal by interpolating based on a given data set and three input values.

## Component Icon

## Description

Two-dimensional Lookup table generates an output signal by interpolating based on a given data set and three input values: input values x, input values y, and input values z. The Input values x, the Input values y, and the Input values z properties must be strictly increasing or decreasing arrays.

- An example of equidistant distribution of input values would be: in_vec_x = [-2, -1, 0, 1, 2];

- An example of non-equidistant distribution of input values would be: in_vec_x = [-4, 0, 2, 3, 10]

The table output can be calculated using equidistant space method or non-equidistant (binary search) implementation method.

When the input vectors (Input values x, Input values y, and/or Input values z) have non-equidistant distribution and equidistant space method is selected, internal conversion from non-equidistant to equidistant distribution will be done. In this case, a warning will be displayed during compilation.

- If the extrapolation method is Clip, the value returned on the output will be the first value of the output vector, if the input value x and/or the input value y is less than the first set of values of input vectors. If the input value is greater than the last set of values of the input vector, the value returned on the output will be the last value of the output vector

- If the extrapolation method is linear, a line between the first or last values of output vector f(x,y) is traced, depending on whether the input values are less than the first or greater than the last values of the output vector. Linear extrapolation method returns the value of the generated line corresponding to the inputs.

## Ports

**In x (in)**- Input signal x according to which the component will output a corresponding value
taking into consideration the table indexes.
- Supported types: uint, int, and real.
- Vector support: no.

- Input signal x according to which the component will output a corresponding value
taking into consideration the table indexes.

**In y (in)**- Input signal y according to which the component will output a corresponding value
taking into consideration the table indexes.
- Supported types: uint, int, and real.
- Vector support: no.

- Input signal y according to which the component will output a corresponding value
taking into consideration the table indexes.

**In z (in)**- Input signal z according to which the component will output a corresponding value
taking into consideration the table indexes.
- Supported types: uint, int, and real.
- Vector support: no.

- Input signal z according to which the component will output a corresponding value
taking into consideration the table indexes.

**Output f(x, y, z) (out)**- Output signal related to the input values and the lookup table.
- Supported types: real.
- Vector support: no

- Output signal related to the input values and the lookup table.

## Properties

**Input values x**- Type in the array of input values x used to calculate the output of the lookup table

**Input values y**- Type in the array of input values y used to calculate the output of the lookup table

**Input values z**- Type in the array of input values z used to calculate the output of the lookup table

**Output values f(x, y, z)**- Type in the array of output values according to the related input values used to calculate the output of the lookup table.

**Implementation method**- Choose the interpolation method used to calculate the output values when the input value is within the input array range.

**Extrapolation method**- Choose the extrapolation method used to calculate output values when the input value is outside of the input array range.

**Execution rate**- Type in the desired signal processing execution rate. This value must be compatible with other signal processing components of the same circuit: the value must be a multiple of the fastest execution rate in the circuit. There can be up to four different execution rates. To specify the execution rate, you can use either decimal (e.g. 0.001) or exponential values (e.g. 1e-3) in seconds. Alternatively, you can type in â€˜inheritâ€™ in which case the component will be assigned execution rate based on the execution rate of the components it is receiving input from.