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

3 vues (au cours des 30 derniers jours)
Yasuhiro Wakatsuki
Yasuhiro Wakatsuki le 18 Avr 2019
Fixed-PointDesignerを使用中の警告について、
Constantブロックの設定を [Fixedt(1,32,16)] に設定し、ワークスペースで設定した値(0.8900)を出力しようとすると、桁落ちの警告が発生します。
ブロックの設定を上記の値 としていますのて、桁落ちせずに表すことができる値だと考えますが、警告が発生する原因をお教えください。
MATLAB バージョン: 8.4.0.150421 (R2014b)
Fixed-PointDesigner

Réponse acceptée

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

Plus de réponses (1)

Yasuhiro Wakatsuki
Yasuhiro Wakatsuki le 16 Mai 2019
ご回答ありがとうございました。

Community Treasure Hunt

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

Start Hunting!