fixpt_interp1

Реализуйте 1-D интерполяционную таблицу

Синтаксис

y = fixpt_interp1(xdata,ydata,x,xdt,xscale,ydt,yscale,rndmeth)

Описание

y = fixpt_interp1(xdata,ydata,x,xdt,xscale,ydt,yscale,rndmeth) реализует одномерную интерполяционную таблицу для поиска выхода y для входных x. Если x падает между двумя xdata значения (точки останова), y является результатом интерполяции между соответствующими ydata значения. Если x больше максимального значения в xdata, y является максимальным ydata значение. Если x меньше минимального значения в xdata, y является минимальным ydata значение.

Если тип входных данных xdt или тип выходных данных ydt является плавающей точкой, fixpt_interp1 выполняет интерполяцию с использованием вычислений с плавающей точкой. В противном случае, fixpt_interp1 использует вычисления только для целого числа. Эти вычисления обрабатывают масштабирование входа xscale и выход масштабирования yscale и подчиняться методу округления rndmeth.

Входные параметры

xdata

Вектор точек по оси Х для интерполяционной таблицы, такой как linspace(0,8,33).

ydata

Вектор данных таблицы, которые соответствуют точкам останова для интерполяционной таблицы, таким как sin(xdata).

x

Вектор значений входа для интерполяционной таблицы, такой как linspace(-1,9,201).

xdt

Тип данных входов x, таких как sfix(8).

xscale

Масштабирование для входных x, таких как 2^-3.

ydt

Тип данных выходов y, таких как sfix(16).

yscale

Масштабирование для выходных y, таких как 2^-14.

rndmeth

Режим округления, поддерживаемый Simulink с фиксированной точкой® блоки:

'Ceiling'

Округлить до ближайшего представимого числа в направлении положительной бесконечности.

'Floor' (по умолчанию)

Округлить до ближайшего представимого числа в направлении отрицательной бесконечности.

'Nearest'

Округлить до ближайшего представимого числа.

'Toward Zero'

Округлить до ближайшего представимого числа в направлении нуля.

Примеры

Интерполяция выходов для x использование интерполяционной таблицы 1-D, которая аппроксимирует функцию синуса:

xdata = linspace(0,8,33).';
ydata = sin(xdata);
% Define input x as a vector of 201 evenly
% spaced points between -1 and 9 (includes
% values both lower and higher than the range
% of breakpoints in xdata)
x = linspace(-1,9,201).';
% Interpolate output values for x
y = fixpt_interp1(xdata,ydata,x,sfix(8),2^-3,sfix(16),...
 2^-14,'Floor')
Представлено до R2006a