Используйте свойство fipref
DataTypeOverride
заменить объекты fi
с одиночными играми, удваивается, или масштабируемый удваивается. Переопределение типа данных только происходит, когда функция конструктора fi
называется. Объекты, которые создаются, в то время как переопределение типа данных включено, имеют замененный тип данных. Они поддерживают тот тип данных, когда переопределение типа данных позже выключено. Чтобы получить объект с типом данных, который не является типом данных переопределения, необходимо создать объект, когда переопределение типа данных прочь:
p = fipref('DataTypeOverride', 'TrueDoubles') p = NumberDisplay: 'RealWorldValue' NumericTypeDisplay: 'full' FimathDisplay: 'full' LoggingMode: 'Off' DataTypeOverride: 'TrueDoubles' a = fi(pi) a = 3.1416 DataTypeMode: Double p = fipref('DataTypeOverride', 'ForceOff') p = NumberDisplay: 'RealWorldValue' NumericTypeDisplay: 'full' FimathDisplay: 'full' LoggingMode: 'Off' DataTypeOverride: 'ForceOff' a a = 3.1416 DataTypeMode: Double b = fi(pi) b = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
Чтобы сбросить объект fipref
к его значениям по умолчанию используют reset(fipref)
или reset(p)
, где p
является объектом fipref
. Это полезно, чтобы гарантировать, что переопределение типа данных и журналирование выключены.
Выбор масштабирования для переменных фиксированной точки в ваших алгоритмах может быть трудным. В программном обеспечении Fixed-Point Designer™ можно использовать комбинацию переопределения типа данных и журналирования min / макс. журналирования, чтобы помочь вам обнаружить числовые области значений, которые должны покрыть ваши типы данных с фиксированной точкой. Эти области значений диктуют соответствующие масштабирования для ваших типов данных с фиксированной точкой. В целом процедура
Реализуйте свой алгоритм с помощью фиксированной точки, которую объекты fi
, с помощью начальной буквы “лучше всего предполагают” для размеров слова и масштабирований.
Установите свойство fipref
DataTypeOverride
на ScaledDoubles
, TrueSingles
или TrueDoubles
.
Установите свойство fipref
LoggingMode
на on
.
Используйте maxlog
и функции minlog
, чтобы регистрировать максимальные и минимальные значения, достигнутые переменными в вашем алгоритме в режиме с плавающей точкой.
Установите свойство fipref
DataTypeOverride
на ForceOff
.
Используйте информацию, полученную на шаге 4, чтобы установить фиксированную точку, масштабирующуюся для каждой переменной в вашем алгоритме, таким образом, что полная числовая область значений каждой переменной является представимой ее типом данных и масштабированием.
Подробный пример этого процесса показывают в Fixed-Point Designer, Подающем Типы данных с фиксированной точкой Используя пример Инструментирования Min/Max.