Постройте функцию приближения фиксированной точки для интерполяционной таблицы
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