Оптимизируйте приближение нелинейной функции с фиксированной точкой путем интерполяции точек данных интерполяционной таблицы
[xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,nptsmax)
[xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[])
[xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax)
[xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydtydt,yscale,rndmeth,errmax,nptsmax,spacing)
[ возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке и максимальному числу точек, которые вы задаете.xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,nptsmax)
[ возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке, которую вы задаете.xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[])
[ возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимальному числу точек, которые вы задаете.xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax)
[ возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке, максимальному числу точек и заданному интервалу точек по оси Х.xdata,ydata,errworst]
= fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydtydt,yscale,rndmeth,errmax,nptsmax,spacing)
В каждом случае, fixpt_look1_func_approx интерполирует между точками данных интерполяционной таблицы для оптимизации приближения с фиксированной точкой. Входы xmin и xmax задайте область значений, над которой можно аппроксимировать точки останова. Входы xdt, xscale, ydt, yscale, и rndmeth следовать соглашениям, используемым Simulink с фиксированной точкой® блоки.
Входы errmax, nptsmax, и spacing являются необязательными. Из этих входов необходимо задать как минимум errmax или nptsmax. Если вы опускаете один из этих двух входов, необходимо использовать скобки, [], вместо опущенного входа. fixpt_look1_func_approx игнорирует это требование для интерполяционной таблицы.
Если интервал не задан, и удовлетворяет несколько интервалов errmax и nptsmax, fixpt_look1_func_approx выбирает в таком порядке: степень-2 интервала, четное расстояние, неравномерное расстояние. Это поведение применяется, когда вы задаете оба errmax и nptsmaxно не тогда, когда вы задаете только один из двух.
|
Функция | ||||||||
|
Минимальное значение | ||||||||
|
Максимальное значение | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Режим округления, поддерживаемый блоками Simulink с фиксированной точкой:
| ||||||||
|
Максимально допустимая ошибка между идеальной функцией и приближением, заданная интерполяционной таблицей. | ||||||||
|
Максимальное число точек для интерполяционной таблицы. | ||||||||
|
Интервалы между точками останова для интерполяционной таблицы:
|
| Если вы задаете... | Точки останова интерполяционной таблицы... |
|---|---|
| По возможности удовлетворяйте обоим критериям. The |
| Удовлетворяйте критериям ошибки, и |
| Удовлетворяйте критериям точек, и |
|
Вектор точек по оси Х для интерполяционной таблицы. |
|
Вектор значений от применения идеальной функции к точкам останова. |
|
Ошибка в худшем случае, которая является максимальной абсолютной ошибкой между идеальной функцией и приближением, заданной интерполяционной таблицей. |
Аппроксимируйте функцию синуса с фиксированной точкой с помощью интерполяционной таблицы:
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'; % Create the lookup table [xdata,ydata,errworst] = fixpt_look1_func_approx(func,... xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing);
fixpt_evenspace_cleanup | fixpt_interp1 | fixpt_look1_func_plot