Точность ограничена уклоном. Для достижения максимальной точности необходимо сделать уклон как можно меньшим, сохраняя при этом диапазон адекватно большим. Смещение регулируется в соответствии с уклоном.
Предположим, что максимальное и минимальное реальные значения задаются как max (V) и min (V) соответственно. Эти пределы могут быть известны на основе физических принципов или технических соображений. Чтобы максимизировать точность, необходимо определить схему округления и то, насыщают или оборачивают переполнения. Для упрощения этого примера предполагается, что минимальное значение реального мира соответствует минимальному кодированному значению, а максимальное значение реального мира соответствует максимальному кодированному значению. Используя схему кодирования, описанную в Scaling, эти значения задаются
(min (Q)) + B.
Решая для уклона, вы получаете
) − min (V) 2ws − 1.
Эта формула не зависит от округления и проблем переполнения и зависит только от размера слова ws.
Заполнение задними нулями включает расширение младшего бита (LSB) числа дополнительными битами. Способ включает переход от низкой точности к более высокой.
Например, предположим, что два числа вычитаются друг от друга. Во-первых, экспоненты должны быть выровнены, что обычно включает правый сдвиг числа с меньшим значением. При выполнении этого сдвига значащие цифры могут «отпадать» вправо. Однако, когда добавляется соответствующее количество дополнительных битов, точность результата максимизируется. Рассмотрим два 8-разрядных числа с фиксированной точкой, близких по значению и вычитаемых друг от друга:
где q - целое число. Для выполнения этой операции экспоненты должны быть равны:
Если верхнее число заполнено двумя нулями, а нижнее число заполнено одним нулем, то вышеприведенное уравнение становится
что дает более точный результат. Пример заполнения задними нулями в модели Simulink ® показан в разделе Реализация цифрового контроллера.
Следующие блоки Simulink с фиксированной точкой обеспечивают режим масштабирования параметров, значения которых являются постоянными векторами или матрицами:
Этот режим масштабирования основан на масштабировании только в двоичной точке. С помощью этого режима можно масштабировать постоянный вектор или матрицу так, чтобы была найдена общая двоичная точка на основе наилучшей точности для наибольшего значения в векторе или матрице.
Постоянное масштабирование для лучшей точности доступно только для типов данных с фиксированной точкой и неопределенным масштабированием. Все другие типы данных с фиксированной точкой используют заданное масштабирование. Можно использовать помощник по типам данных (см. раздел Задание типов данных с помощью помощника по типам данных) в диалоговом окне блока для включения режима масштабирования с наилучшей точностью.
В диалоговом окне блока нажмите кнопку «Показать помощник по типу данных».![]()
Появится помощник по типам данных.
В помощнике по типам данных и в списке Режим выберите Fixed point.
Помощник по типам данных отображает дополнительные параметры, связанные с типами данных с фиксированной точкой.
В списке «Масштабирование» выберите Best precision.

Чтобы понять, как можно использовать этот режим масштабирования, рассмотрим матрицу двойных M 3 на 3, определенную как
3.3333e-003 3.3333e-004 3.3333e-005 3.3333e-002 3.3333e-003 3.3333e-004 3.3333e-001 3.3333e-002 3.3333e-003
Теперь предположим, что в качестве значения параметра «Усиление» для блока «Усиление» указывается M. Результаты определения собственного масштабирования по сравнению с использованием режима постоянного масштабирования описаны ниже.
Указанное масштабирование
Предположим, что элементы матрицы преобразуются в 10-разрядный обобщенный тип данных с фиксированной точкой с двоичным масштабированием только для точки 2-7 (то есть двоичная точка расположена в семи местах слева от самого правого бита). При таком формате данных M становится
0 0 0 3.1250e-002 0 0 3.3594e-001 3.1250e-002 0
Обратите внимание, что многие элементы матрицы равны нулю, а для ненулевых записей масштабированные значения отличаются от исходных значений. Это происходит потому, что двойник преобразуется в двоичное слово фиксированного размера и ограниченной точности для каждого элемента. Чем больше и точнее тип данных преобразования, тем более точно масштабированные значения соответствуют исходным значениям.
Постоянное масштабирование для лучшей точности
Если M масштабируется на основе его наибольшего значения матрицы, получается
2.9297e-003 0 0 3.3203e-002 2.9297e-003 0 3.3301e-001 3.3203e-002 2.9297e-003
Наилучшая точность автоматически выберет длину дроби, которая минимизирует ошибку квантования. Даже несмотря на то, что точность была максимизирована для заданной длины слова, ошибки квантования все еще могут возникать. В этом примере несколько элементов все еще квантуются до нуля.