fixpt_interp1

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

Синтаксис

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

Режим Rounding поддержан фиксированной точкой блоки Simulink®:

'Ceiling'

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

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

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

'Nearest'

Вокруг к самому близкому представимому номеру.

'Toward Zero'

Вокруг к самому близкому представимому номеру в направлении нуля.

Примеры

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

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