Main Content

查看定点数据

在 Fixed-Point Designer™ 软件中,fipref 对象确定 fi 对象的显示属性。对于 fi 对象,代码示例通常在它们与下列 fipref 对象属性一起使用时才显示它们:

  • NumberDisplay'RealWorldValue'

  • NumericTypeDisplay'full'

  • FimathDisplay'full'

通过将 'FimathDisplay' 设置为 'full',可以快速、轻松地区分具有局部 fimath 配置的 fi 对象和那些与默认 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

有关显示设置的详细信息,请参阅Set fi Object Display Preferences Using fipref

显示 fi 对象的 fimath 属性

要查看大多数 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: 13

MATLAB 在 fi 对象 a 的输出中显示 fimath 对象属性,因为 a 具有局部 fimath 配置。

MATLAB 在 fi 对象 b 的输出中不显示任何 fimath 对象属性,因为 b 将自身与默认 fimath 关联。

隐藏 fi 对象的 fimath 属性

如果您正在使用多个具有局部 fimath 配置的 fi 对象,则可能需要关闭 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 =

  logical

   1

isfimathlocal 函数返回 1 时,fi 对象具有局部 fimath 配置。如果函数返回 0,则 fi 对象使用默认 fimath 配置。

缩短 fi 对象的数值类型显示

要进一步减少输出量,可以将 NumericTypeDisplay 设置为 'short'。例如,

p = fipref('NumberDisplay','RealWorldValue',... 
'NumericTypeDisplay','short','FimathDisplay','full');

a = fi(pi)
a = 

    3.1416
      numerictype(1,16,13)