exponenta event banner

Максимизация точности

Точность ограничена уклоном. Для достижения максимальной точности необходимо сделать уклон как можно меньшим, сохраняя при этом диапазон адекватно большим. Смещение регулируется в соответствии с уклоном.

Предположим, что максимальное и минимальное реальные значения задаются как max (V) и min (V) соответственно. Эти пределы могут быть известны на основе физических принципов или технических соображений. Чтобы максимизировать точность, необходимо определить схему округления и то, насыщают или оборачивают переполнения. Для упрощения этого примера предполагается, что минимальное значение реального мира соответствует минимальному кодированному значению, а максимальное значение реального мира соответствует максимальному кодированному значению. Используя схему кодирования, описанную в Scaling, эти значения задаются

max (V) = F2E (max (Q)) + Bmin (V) = F2E (min (Q)) + B.

Решая для уклона, вы получаете

F2E = max (V) min (V) max (Q) min (Q) = max (V) − min (V) 2ws − 1.

Эта формула не зависит от округления и проблем переполнения и зависит только от размера слова ws.

Площадка с задними нулями

Заполнение задними нулями включает расширение младшего бита (LSB) числа дополнительными битами. Способ включает переход от низкой точности к более высокой.

Например, предположим, что два числа вычитаются друг от друга. Во-первых, экспоненты должны быть выровнены, что обычно включает правый сдвиг числа с меньшим значением. При выполнении этого сдвига значащие цифры могут «отпадать» вправо. Однако, когда добавляется соответствующее количество дополнительных битов, точность результата максимизируется. Рассмотрим два 8-разрядных числа с фиксированной точкой, близких по значению и вычитаемых друг от друга:

1.0000000×2q−1.1111111×2q−1,

где q - целое число. Для выполнения этой операции экспоненты должны быть равны:

1.0000000×2q−0.1111111×2q 0.0000001×2q.

Если верхнее число заполнено двумя нулями, а нижнее число заполнено одним нулем, то вышеприведенное уравнение становится

1.000000000×2q−0.111111110×2q 0.000000010×2q,

что дает более точный результат. Пример заполнения задними нулями в модели Simulink ® показан в разделе Реализация цифрового контроллера.

Постоянное масштабирование для лучшей точности

Следующие блоки Simulink с фиксированной точкой обеспечивают режим масштабирования параметров, значения которых являются постоянными векторами или матрицами:

Этот режим масштабирования основан на масштабировании только в двоичной точке. С помощью этого режима можно масштабировать постоянный вектор или матрицу так, чтобы была найдена общая двоичная точка на основе наилучшей точности для наибольшего значения в векторе или матрице.

Постоянное масштабирование для лучшей точности доступно только для типов данных с фиксированной точкой и неопределенным масштабированием. Все другие типы данных с фиксированной точкой используют заданное масштабирование. Можно использовать помощник по типам данных (см. раздел Задание типов данных с помощью помощника по типам данных) в диалоговом окне блока для включения режима масштабирования с наилучшей точностью.

  1. В диалоговом окне блока нажмите кнопку «Показать помощник по типу данных».

    Появится помощник по типам данных.

  2. В помощнике по типам данных и в списке Режим выберите Fixed point.

    Помощник по типам данных отображает дополнительные параметры, связанные с типами данных с фиксированной точкой.

  3. В списке «Масштабирование» выберите 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

    Наилучшая точность автоматически выберет длину дроби, которая минимизирует ошибку квантования. Даже несмотря на то, что точность была максимизирована для заданной длины слова, ошибки квантования все еще могут возникать. В этом примере несколько элементов все еще квантуются до нуля.

Связанные темы