Числа фиксированной точки в Simulink

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

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

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

Постоянное масштабирование для лучшей точности доступно только для типов данных с фиксированной точкой с незаданным масштабированием. Все другие типы данных с фиксированной точкой используют свое заданное масштабирование. Можно использовать Data Type Assistant (см., Задают Типы данных Используя Ассистент Типа данных (Simulink)) на диалоговом окне блока, чтобы включить лучший режим масштабирования точности.

  1. На диалоговом окне блока нажмите кнопку Show data type assistant.

    Data Type Assistant появляется.

  2. В Data Type Assistant, и из списка Mode, выбирают Fixed point.

    Data Type Assistant отображает дополнительные опции, сопоставленные с типами данных с фиксированной точкой.

  3. Из списка Scaling выберите Best precision.

Чтобы понять, как вы можете использовать этот режим масштабирования, полагайте, что 3х3 матрица удваивается, M, заданный как

  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 как значение параметра Gain для блока Gain. Результаты определения вашего собственного масштабирования по сравнению с использованием постоянного режима масштабирования описаны здесь:

  • Specified Scaling

    Предположим, что элементы матрицы преобразованы в 10-битный обобщенный тип данных с фиксированной точкой со знаком с единственным двоичной точкой масштабированием 2-7 (то есть, двоичная точка расположена семь мест слева от права большая часть бита). С этим форматом данных M становится

    0            0            0
    3.1250e-002  0            0
    3.3594e-001  3.1250e-002  0

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

  • Constant Scaling for Best Precision

    Если M масштабируется на основе его самого большого матричного значения, вы получаете

    2.9297e-003  0            0
    3.3203e-002  2.9297e-003  0
    3.3301e-001  3.3203e-002  2.9297e-003

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

Тип данных с фиксированной точкой и масштабирующееся обозначение

Имена типов данных Simulink должны быть допустимыми идентификаторами MATLAB® меньше чем с 128 символами. Имя типа данных предоставляет информацию о контейнерном типе, кодировании номера и масштабировании.

Можно представлять номер фиксированной точки с помощью уравнения масштабирования фиксированной точки

VV~=SQ+B,

где

  • V является реальным значением.

  • V~ аппроксимированное реальное значение.

  • S=F2E наклон.

  • F является наклонным поправочным коэффициентом.

  • E является фиксированной экспонентой степени двойки.

  • Q является сохраненным целым числом.

  • B является смещением.

Для получения дополнительной информации смотрите Масштабирование.

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

Символ

Описание

Пример

Контейнерный тип

ufix

Тип данных с фиксированной точкой без знака

ufix8 является 8-битным типом данных с фиксированной точкой без знака

sfix

Тип данных с фиксированной точкой со знаком

sfix128 является 128-битным типом данных с фиксированной точкой со знаком

fltu

Масштабируемый Удваивает переопределение типа данных с фиксированной точкой без знака (ufix)

fltu32 является масштабированным, удваивает переопределение ufix32

flts

Масштабируемый Удваивает переопределение типа данных с фиксированной точкой со знаком (sfix)

flts64 является масштабированным, удваивает переопределение sfix64

Кодирование номера

e

10^

125e8 равняется 125*(10^(8))

n

Отрицательный

n31 равняется -31

p

Десятичная точка

1p5 равняется 1.5

p2 равняется 0.2

Масштабирование кодирования

S

Наклон

ufix16_S5_B7 является 16-битным типом данных с фиксированной точкой без знака с Slope 5 и Bias 7

B

Смещение

ufix16_S5_B7 является 16-битным типом данных с фиксированной точкой без знака с Slope 5 и Bias 7

E

Фиксированная экспонента (2^)

Отрицательная фиксированная экспонента описывает дробную длину

sfix32_En31 является 32-битным типом данных с фиксированной точкой со знаком с дробной длиной 31

F

Наклонный поправочный коэффициент

ufix16_F1p5_En50 является 16-битным типом данных с фиксированной точкой без знака с SlopeAdjustmentFactor 1.5 и FixedExponent -50

C, c, D, или d

Сжатое кодирование для Смещения

Примечание

Если вы передаете этот символ функции slDataTypeAndScale, он возвращает допустимый тип данных fixdt.

Никакой доступный пример. Для назад совместимости только.

Чтобы идентифицировать и заменить вызовы slDataTypeAndScale, используйте Проверку на вызовы slDataTypeAndScale (Simulink) проверка Model Advisor.

T или t

Сжатое кодирование для Наклона

Примечание

Если вы передаете этот символ slDataTypeAndScale, он возвращает допустимый тип данных fixdt.

Никакой доступный пример. Для назад совместимости только.

Чтобы идентифицировать и заменить вызовы slDataTypeAndScale, используйте Проверку на вызовы slDataTypeAndScale (Simulink) проверка Model Advisor.