Линейный интерполятор
Входные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Input | integer or decimal - control or audio | Входной сигнал, который будет сопоставлен с помощью функции линейной интерполяции |
Выходные пины
| Name | Format [int/dec] - [control/audio] | Function Description |
|---|---|---|
| Pin 0: Output | integer or decimal - control or audio | Выходной сигнал, который является результатом функции линейной интерполяции |
Элементы управления GUI
| GUI Control Name | Default Value | Range | Function Description |
|---|---|---|---|
| Max | 5 | -15.99 to +15.99 | Максимально допустимое входное значение. Для полномасштабного аудио используйте 1. |
| Min | 1 | -15.99 to +15.99 | Минимально допустимое входное значение. Для полномасштабного аудио используйте -1. |
| Pts | 5 | 1 to 100 | Количество точек в функции линейной интерполяции |
| Table | [1, 2, 3, 4, 5] | -16 to 15.9999999 | Точки в функции линейной интерполяции. Входной сигнал будет сопоставлен с этим набором данных. |
Параметры DSP
| GUI Name | Compiler Name | Function Description |
|---|---|---|
| Table | LinearIntAlg1_1 | Первая точка в индексной таблице |
| Table | LinearIntAlg1_p1_1 | Вторая точка в индексной таблице |
| Table | LinearIntAlg1_p1_1_autoincremented … | Третья и последующие точки в индексной таблице |
| Min | LinearIntAlg1Min_2 | Минимальное входное значение |
| Max | LinearIntAlg1Q_2 | Разница между минимальным и максимальным входным значением |
| Pts | LinearIntAlg1Number_2 | Количество точек в индексной таблице минус 1. Например, если в таблице 3 точки, этот параметр будет равен 2. |
Описание алгоритма
Ячейка линейной интерполяции выполняет интерполяцию набора данных.
Вход ячейки линейной интерполяции должен находиться между заданными минимальным и максимальным значениями. Входные значения между минимальным и максимальным входными значениями линейно сопоставляются с индексным номером от 0 до n, где n представляет максимальный индекс.
Например, если input = min, то выбирается индекс 0. Если input = max, то выбирается индекс n. Если входное значение находится ровно посередине между двумя индексами, то выходное значение будет средним значением двух соответствующих точек в наборе данных.
Процесс сопоставления входа с индексом показан графически ниже:

Фактическое выходное значение ячейки зависит от значений набора данных, хранящихся в индексной таблице. Пример ниже показывает таблицу с 6 точками. Если index = min, то выходным значением будет значение точки, хранящейся в индексе 0. Если index = 5, то выходным значением будет значение точки, хранящейся в индексе 5. Если, например, входное значение находится на одной трети пути между индексами 2 и 3, то выходное значение будет (index_2 * 2/3) + (index_3 * 1/3). Это проиллюстрировано оранжевой точкой на графике ниже — выходное значение ячейки будет равно смещению оранжевой точки по вертикальной оси. Синие точки представляют значения, хранящиеся в индексной таблице. Линии, соединяющие синие точки, представляют «интерполянты». Выходное значение ячейки всегда будет лежать на интерполянте.

Если входное значение ниже заданного минимума или выше заданного максимума, выходное значение ячейки будет непредсказуемым. Следует принять меры для соответствующего ограничения входного сигнала.
Пример
Пример ниже показывает ячейку линейного интерполятора, настроенную для интерполяции входных значений от 10 до 11. Входное значение, подаваемое ячейкой DC Input, равно 10.5. Поскольку 10.5 — это ровно середина между 10 и 11, выводится средняя точка таблицы, 3. Ячейка DSP Readback используется для подтверждения выходного значения ячейки линейного интерполятора.

Детали алгоритма
| Путь в Toolbox | Basic DSP - Index LUT - Linear Interpolator |
| Поддерживаемые ядра | ADAU1761 ADAU1781 ADAU144x ADAU170x AD1940 |
| Поддержка «Grow Algorithm» | yes |
| Поддержка «Add Algorithm» | no |
| На основе подпрограммы/цикла | no |
| Program RAM | 18 |
| Data RAM | 6 |
| Parameter RAM | 5* |
*На основе индексной таблицы с двумя точками. По мере добавления точек использование Parameter RAM будет увеличиваться на 1 на каждый индекс.
