Оптимизация аппроксимации нелинейной функции с фиксированной точкой путем интерполяции точек данных таблицы поиска
[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 с фиксированной точкой:
| ||||||||
|
Максимально допустимая ошибка между идеальной функцией и аппроксимацией, заданной в таблице подстановки. | ||||||||
|
Максимальное количество точек для таблицы подстановки. | ||||||||
|
Интервал между точками останова для таблицы подстановки:
|
| Если указать... | Точки останова таблицы подстановки... |
|---|---|
| По возможности удовлетворяйте обоим критериям. |
| Соответствие критериям ошибки и |
| Соответствие критериям начисления баллов и |
|
Вектор точек останова для таблицы подстановки. |
|
Вектор значений от применения идеальной функции к точкам останова. |
|
Наихудшая ошибка, которая является максимальной абсолютной ошибкой между идеальной функцией и аппроксимацией, заданной таблицей подстановки. |
Аппроксимация синусоидальной функции с фиксированной точкой с помощью таблицы подстановки:
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