MATLAB変数データ型の設定について
9 views (last 30 days)
Show older comments
SimulinkでLTI Systemブロック(ローパスフィルタやノッチフィルタを組み合わせた離散系伝達関数)を通過した後のスカラー信号の数値が1.0123456e-322(実際には小数点以下15桁)など、double型における正の数の最小値 2.2251e-308 (=realmin) よりも小さくなる場合があります。
変数型はSimulinkのモデル設定>コンフィギュレーションパラメータ>数値とデータ型、にて「指定不足のデータ型の規定値」をdoubleにする以外では、自身で設定してはいません(SimulinkのGainなど各ブロックではデータ型を初期設定の "Inherit: Inherit via internal rule" にしています)。
【質問】
(1) どのような理由で、上記のようにSimulinkにおける信号の指数が1.0123456e-322になるなど、e-308(realmin相当)よりも小さくなるのでしょうか。
(2) 信号の数値をdouble型における正の数の最小値 2.2251e-308 (=realmin)の範囲までに留めるためには、どのように設定すればよいのでしょうか。
2 Comments
Toshinobu Shintai
on 1 Nov 2023
(1)について予想ですが、IntelのCPUを使うPCにインストールされたMATLABは、計算する際にIntelの拡張倍精度浮動小数点数(全長80bit、指数部15bit、仮数部64bit)を用いて計算します。
そのために、1.0123456e-322になるなど、e-308(realmin相当)よりも小さくなるのではと思いました。
Answers (0)
See Also
Categories
Find more on 信号属性とインデックス付け in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!