TableInterp2d
Overview
Table driven 2d interpolation module. Currently supports only bilinear interpolation
Discussion
This module performs an interpolated 2-dimensional table lookup using a grid of values evenly spaced from -1 to 1. The module currently supports only bilinear interpolation. The input pins specify the X and Y values at which to perform the interpolation. 4 points in the table are used and bilinear interpolation is applied. The X values interpolate along a row and Y values interpolate along a column.
The range of X and Y are always [-1 +1]. Values outside of this range are clipped to +/- 1.
At instantiation, specify the total number of points (NPOINTS) in each dimension of the table. The amount of memory allocated to the table equals (NPOINTS * NPOINTS).
Type Definition
typedef struct _ModuleTableInterp2d
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
INT32 nPoints; // Number of points in each dimension of the active interpolation table.
FLOAT32* table; // 2d Interpolation Lookup table
} ModuleTableInterp2dClass;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
nPoints | int | const | 0 | 5 | Unrestricted | |
table | float* | parameter | 0 | [5 x 5] | Unrestricted |
Pins
Input Pins
Name: inx
Description: index x
Data type: float
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Name: iny
Description: index y
Data type: float
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: out
Description: audio output
Data type: float
MATLAB Usage
File Name: table_interp2d_module.m
M=table_interp2d_module(NAME, NPOINTS)
This Audio Weaver process performs bilinear interpolation between values
defined on a lattice with NPTS evenly spaced points from [-1,1] in x and
y. For input coordinates between the lattice points, interpolate
linearly for x and then for y.
Arguments:
NAME - name of the module.
NPOINTS - number of points in each dimension. This is set at design
time and has a minimum value of 2.
The internal variable .table holds the underlying table of values.
.table has a size of NPOINTS x NPOINTS.