Fixed-Poin​tDesignerを​使用中の警告発生原因​について

1 visualización (últimos 30 días)
Yasuhiro Wakatsuki
Yasuhiro Wakatsuki el 18 de Abr. de 2019
Respondida: Yasuhiro Wakatsuki el 16 de Mayo de 2019
Fixed-PointDesignerを使用中の警告について、
Constantブロックの設定を [Fixedt(1,32,16)] に設定し、ワークスペースで設定した値(0.8900)を出力しようとすると、桁落ちの警告が発生します。
ブロックの設定を上記の値 としていますのて、桁落ちせずに表すことができる値だと考えますが、警告が発生する原因をお教えください。
MATLAB バージョン: 8.4.0.150421 (R2014b)
Fixed-PointDesigner

Respuesta aceptada

Shoumei
Shoumei el 19 de Abr. de 2019
0.89をfixdt(1, 32, 16)で定義すると0.8899993896...となり、打切り誤差が発生しています。
MATLABのデフォルト設定でのコマンドウィンドウの「表示」は小数点以下下4桁までとなっています。これを変更するにはformatを使います。デフォルトはformat shortです。
また、定数の固定小数点化における打切り誤差やオーバーフローの確認は fi コマンドを使うとわかりやすいです。
こちらMATLABで実行してみて下さい。
>> A = fi(0.89, 1, 32, 16)
A =
0.8900
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 32
FractionLength: 16
>> format long
>> A
A =
0.889999389648438
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 32
FractionLength: 16
ちなみに、Simulinkのブロックパラメータに直接 fi(0.89, 1, 32, 16) と入れておくと、固定小数点データがパラメータ定義されるので、桁落ちの警告が発生することはありません。

Más respuestas (1)

Yasuhiro Wakatsuki
Yasuhiro Wakatsuki el 16 de Mayo de 2019
ご回答ありがとうございました。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!