LIBML  Version 3.2.4
LIBML DSP Software Library
Functions
Linear Interpolation
Collaboration diagram for Linear Interpolation:

Functions

static f32_t tpt_linear_interpolate_f32 (tpt_linear_interpolate_f32_t *aFunction, f32_t aX)
 Process function for the floating-point Linear Interpolation Function. More...
 
static q31_t tpt_linear_interpolate_q31 (q31_t *pYData, q31_t aX, uint32_t nValues)
 Process function for the Q31 Linear Interpolation Function. More...
 
static q15_t tpt_linear_interpolate_q15 (q15_t *pYData, q31_t aX, uint32_t nValues)
 Process function for the Q15 Linear Interpolation Function. More...
 
static q7_t tpt_linear_interpolate_q7 (q7_t *pYData, q31_t aX, uint32_t nValues)
 Process function for the Q7 Linear Interpolation Function. More...
 

Detailed Description

Linear interpolation is a method of curve fitting using linear polynomials. Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line.

Linear interpolation
A Linear Interpolate function calculates an output value (y), for the input (x) using linear interpolation of the input values x0, x1 (nearest input values) and the output values y0 and y1 (nearest output values)
Algorithm:
    y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0))
    where x0, x1 are nearest values of input x
          y0, y1 are nearest values to output y
  
This set of functions implements Linear interpolation process for Q7, Q15, Q31, and floating-point data types. The functions operate on a single sample of data and each call to the function returns a single processed value. aFunction points to an instance of the Linear Interpolate function data structure. aX is the input sample value. The functions returns the output value.
If aX is outside of the table boundary, Linear interpolation returns first value of the table if aX is below input range and returns last value of table if aX is above range.

Function Documentation

◆ tpt_linear_interpolate_f32()

static f32_t tpt_linear_interpolate_f32 ( tpt_linear_interpolate_f32_t aFunction,
f32_t  aX 
)
inlinestatic

Process function for the floating-point Linear Interpolation Function.

Parameters
[in,out]aFunctionan instance of the Linear Interpolation structure
[in]aXinput sample to process
Returns
y processed output sample.

◆ tpt_linear_interpolate_q15()

static q15_t tpt_linear_interpolate_q15 ( q15_t pYData,
q31_t  aX,
uint32_t  nValues 
)
inlinestatic

Process function for the Q15 Linear Interpolation Function.

Input sample aX is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. This function can support maximum of table size 2^12.

Parameters
[in]pYDatapointer to Linear Interpolation table.
[in]aXinput sample to process
[in]nValuesnumber of table values
Returns
y processed output sample.

◆ tpt_linear_interpolate_q31()

static q31_t tpt_linear_interpolate_q31 ( q31_t pYData,
q31_t  aX,
uint32_t  nValues 
)
inlinestatic

Process function for the Q31 Linear Interpolation Function.

Input sample aX is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. This function can support maximum of table size 2^12.

Parameters
[in]pYDatapointer to Linear Interpolation table.
[in]aXinput sample to process
[in]nValuesnumber of table values
Returns
y processed output sample.

◆ tpt_linear_interpolate_q7()

static q7_t tpt_linear_interpolate_q7 ( q7_t pYData,
q31_t  aX,
uint32_t  nValues 
)
inlinestatic

Process function for the Q7 Linear Interpolation Function.

Input sample aX is in 12.20 format which contains 12 bits for table index and 20 bits for fractional part. This function can support maximum of table size 2^12.

Parameters
[in]pYDatapointer to Linear Interpolation table.
[in]aXinput sample to process
[in]nValuesnumber of table values
Returns
y processed output sample.