Fixed-PointDesignerを使用中の警告発生原因について
1 view (last 30 days)
Show older comments
Yasuhiro Wakatsuki
on 18 Apr 2019
Answered: Yasuhiro Wakatsuki
on 16 May 2019
Fixed-PointDesignerを使用中の警告について、
Constantブロックの設定を [Fixedt(1,32,16)] に設定し、ワークスペースで設定した値(0.8900)を出力しようとすると、桁落ちの警告が発生します。
ブロックの設定を上記の値 としていますのて、桁落ちせずに表すことができる値だと考えますが、警告が発生する原因をお教えください。
MATLAB バージョン: 8.4.0.150421 (R2014b)
Fixed-PointDesigner
0 Comments
Accepted Answer
Shoumei
on 19 Apr 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) と入れておくと、固定小数点データがパラメータ定義されるので、桁落ちの警告が発生することはありません。
0 Comments
More Answers (1)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!