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

5 ビュー (過去 30 日間)
Yasuhiro Wakatsuki
Yasuhiro Wakatsuki 2019 年 4 月 18 日
回答済み: Yasuhiro Wakatsuki 2019 年 5 月 16 日
Fixed-PointDesignerを使用中の警告について、
Constantブロックの設定を [Fixedt(1,32,16)] に設定し、ワークスペースで設定した値(0.8900)を出力しようとすると、桁落ちの警告が発生します。
ブロックの設定を上記の値 としていますのて、桁落ちせずに表すことができる値だと考えますが、警告が発生する原因をお教えください。
MATLAB バージョン: 8.4.0.150421 (R2014b)
Fixed-PointDesigner

採用された回答

Shoumei
Shoumei 2019 年 4 月 19 日
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) と入れておくと、固定小数点データがパラメータ定義されるので、桁落ちの警告が発生することはありません。

その他の回答 (1 件)

Yasuhiro Wakatsuki
Yasuhiro Wakatsuki 2019 年 5 月 16 日
ご回答ありがとうございました。

カテゴリ

Help Center および File Exchange固定小数点 についてさらに検索

Community Treasure Hunt

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

Start Hunting!