Постройте функцию приближения фиксированной точки для интерполяционной таблицы
fixpt_look1_func_plot(
xdata
,ydata
,'func
',...
xmin
,xmax
,xdt
,xscale
,ydt
,yscale
,rndmeth
)
errworst
= fixpt_look1_func_plot(xdata
,ydata
,'func
',...
xmin
,xmax
,xdt
,xscale
,ydt
,yscale
,rndmeth
)
fixpt_look1_func_plot(
строит функцию приближения интерполяционной таблицы и ошибку от идеальной функции.xdata
,ydata
,'func
',...
xmin
,xmax
,xdt
,xscale
,ydt
,yscale
,rndmeth
)
строит функцию приближения интерполяционной таблицы и ошибку от идеальной функции. Вывод errworst
= fixpt_look1_func_plot(xdata
,ydata
,'func
',...
xmin
,xmax
,xdt
,xscale
,ydt
,yscale
,rndmeth
)errworst
является максимальной абсолютной погрешностью.
Можно использовать fixpt_look1_func_approx
, чтобы сгенерировать xdata
и ydata
, точки останова и табличные данные для интерполяционной таблицы, соответственно. fixpt_look1_func_approx
применяет идеальную функцию к точкам останова в xdata
, чтобы произвести ydata
. В то время как этот метод является самым легким способом сгенерировать ydata
, можно выбрать другие значения для ydata
, как введено для fixpt_look1_func_plot
. Выбор различных значений для ydata
может, в некоторых случаях, произвести интерполяционную таблицу с меньшей максимальной абсолютной погрешностью.
|
Вектор точек останова для интерполяционной таблицы. | ||||||||
|
Вектор значений от применения идеальной функции к точкам останова. | ||||||||
|
Функция | ||||||||
|
Минимальное значение | ||||||||
|
Максимальное значение | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для значений | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для значений | ||||||||
|
Режим Rounding поддержан фиксированной точкой блоки Simulink®:
|
Постройте приближение фиксированной точки синусоидальной функции с помощью точек данных, сгенерированных fixpt_look1_func_approx
:
func = 'sin(2*pi*x)'; % Define the range over which to optimize breakpoints xmin = 0; xmax = 0.25; % Define the data type and scaling for the inputs xdt = ufix(16); xscale = 2^-16; % Define the data type and scaling for the outputs ydt = sfix(16); yscale = 2^-14; % Specify the rounding method rndmeth = 'Floor'; % Define the maximum acceptable error errmax = 2^-10; % Choose even, power-of-2 spacing for breakpoints spacing = 'pow2'; % Generate data points for the lookup table [xdata,ydata,errworst]=fixpt_look1_func_approx(func,... xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing); % Plot the sine function (ideal and fixed-point) & errors fixpt_look1_func_plot(xdata,ydata,func,xmin,xmax,... xdt,xscale,ydt,yscale,rndmeth);
fixpt_look1_func_plot
строит синусоидальную функцию фиксированной точки, с помощью сгенерированных точек данных, и строит ошибку между идеальной функцией и функцией фиксированной точки. Максимальная абсолютная погрешность и требуемое число точек появляются на графике. Ошибка опускается до нуля в точке останова, но увеличивается между точками останова из-за различий в искривлении между идеальной функцией и линией, проведенной между точками останова.
Интерполяционная таблица требует, чтобы 33 точки достигли максимальной абсолютной погрешности 2^-11.3922
.
fixpt_evenspace_cleanup
| fixpt_interp1
| fixpt_look1_func_approx