Постройте функцию приближения с фиксированной точкой для интерполяционной таблицы
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 может, в некоторых случаях, создать интерполяционную таблицу с меньшей максимальной абсолютной ошибкой.
|
Вектор точек по оси Х для интерполяционной таблицы. | ||||||||
|
Вектор значений от применения идеальной функции к точкам останова. | ||||||||
|
Функция | ||||||||
|
Минимальное значение | ||||||||
|
Максимальное значение | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Режим округления, поддерживаемый 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