В программном обеспечении Fixed-Point Designer™ объект fipref определяет свойства отображения объектов fi. Примеры кода обычно показывают объекты fi, когда они появляются со следующими свойствами объектов fipref:
NumberDisplay — 'RealWorldValue'
NumericTypeDisplay — 'full'
FimathDisplay — 'full'
Установка 'FimathDisplay' к 'full' обеспечивает быстрый и простой способ дифференцироваться между объектами fi с локальным fimath и теми, которые сопоставлены со значением по умолчанию fimath. Когда 'FimathDisplay' установлен в 'full', MATLAB® отображает свойства объектов fimath для объектов fi с локальным fimath. MATLAB никогда не отображает свойства объектов fimath для объектов fi, которые сопоставлены со значением по умолчанию fimath. Из-за этого различия в отображении можно сказать, когда объект fi сопоставлен со значением по умолчанию fimath только путем рассмотрения вывода.
Кроме того, если в противном случае не задано, примеры в документации Fixed-Point Designer используют следующую настройку по умолчанию fimath:
RoundingMethod: Nearest
OverflowAction: Saturate
ProductMode: FullPrecision
SumMode: FullPrecision
Для получения дополнительной информации о настройках отображения обратитесь к fi Настройкам Отображения объектов Используя fipref.
Чтобы видеть вывод, как это появляется в большинстве примеров кода Fixed-Point Designer, устанавливает ваши свойства fipref можно следующим образом и создают два объекта fi:
p = fipref('NumberDisplay', 'RealWorldValue',...
'NumericTypeDisplay', 'full', 'FimathDisplay', 'full');
a = fi(pi,'RoundingMethod', 'Floor', 'OverflowAction', 'Wrap')
b = fi(pi)
MATLAB возвращает следующее:
a =
3.1415
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13
RoundingMethod: Floor
OverflowAction: Wrap
ProductMode: FullPrecision
SumMode: FullPrecision
b =
3.1416
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13MATLAB отображает свойства объектов fimath в выводе объекта fi a, потому что a имеет локальный fimath.
MATLAB не отображает свойств объектов fimath в выводе объекта fi b, потому что b сопоставляет себя со значением по умолчанию fimath.
Если вы работаете с несколькими объектами fi, которые имеют локальный fimaths, можно хотеть выключить отображение объекта fimath:
NumberDisplay — 'RealWorldValue'
NumericTypeDisplay — 'full'
FimathDisplay — 'none'
Например,
p = fipref('NumberDisplay','RealWorldValue',...
'NumericTypeDisplay','full','FimathDisplay','none')
p =
NumberDisplay: 'RealWorldValue'
NumericTypeDisplay: 'full'
FimathDisplay: 'none'
LoggingMode: 'Off'
DataTypeOverride: 'ForceOff'
F = fimath('RoundingMethod','Floor','OverflowAction','Wrap');
a = fi(pi, F)
a =
3.1415
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13
Несмотря на то, что эта установка помогает уменьшить объем произведенного вывода, это также лишает возможности говорить от вывода, использует ли объект fi значение по умолчанию fimath. Для этого можно использовать функцию isfimathlocal. Например,
isfimathlocal(a)
ans =
1Когда функция isfimathlocal возвращает 1, объект fi имеет локальный fimath. Если функция возвращает 0, объект fi использует значение по умолчанию fimath.
Чтобы уменьшать объем вывода еще больше, можно установить NumericTypeDisplay на 'short'. Например,
p = fipref('NumberDisplay','RealWorldValue',...
'NumericTypeDisplay','short','FimathDisplay','full');
a = fi(pi)
a =
3.1416
s16,13