Data Type Conversion​の出力データ最大値、​最小値設定

5 views (last 30 days)
Data Type Conversionにて出力データ型をsingleに設定しました。 出力をsingleの最大値、最小値である下記の範囲内に収める必要があったためです。 -3.40282e+38 to -1.17549e-38 and 1.17549e-38 to 3.40282e+38
しかし、このとき、simulationを通すと1e-45の出力が得られました。
次に、ブロックパラメーターにて出力の最小値、最大値の設定を行いましたが、 simulation上で警告(エラー)が表示されるだけで、値の補正は行われませんでした。
Data Type Conversionを使用して、singleの取りうる範囲内に出力値を収めたい場合の設定方法を教えてください。

Accepted Answer

Tohru Kikawada
Tohru Kikawada on 21 May 2018
Saturation ブロックを使って明示的に信号範囲を飽和処理してみてはいかがでしょうか。
  3 Comments
Yukiko Fujisawa
Yukiko Fujisawa on 22 May 2018
型変換の際の値の管理はユーザーの責任ということ、理解しました。
回答、解説ありがとうございました。

Sign in to comment.

More Answers (1)

Atsushi Matsumoto
Atsushi Matsumoto on 22 May 2018
Edited: Atsushi Matsumoto on 22 May 2018
Data Type Conversionブロックのブロックパラメータ[最小値]、[最大値]は、出力信号の制限を与えるためのものではありません。データ型のレンジ設定に制約を与えるためのものです。 &nbsp
例えば(出力の)最小値=-128、最大値=127としておいて、int8を設定すると範囲をカバーするので問題ありませんが、uint8を設定するとデータ型のレンジ(0~255)が最小/最大値の範囲を超えてしまうので、エラーを発生して変更を促します。 &nbsp
&nbsp
Data Type Conversionブロックのドキュメント &nbsp
&nbsp
前の回答にあるように、出力信号の振幅範囲を制限するにはSaturationブロックをお使い下さい、
  1 Comment
Yukiko Fujisawa
Yukiko Fujisawa on 22 May 2018
Data Type Conversionブロックの原理を理解しました。 振幅範囲を制限するにはSaturationブロックを使用する必要があることも理解しました。
回答、解説ありがとうございました。

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!