Main Content

固定小数点ツールを使用した固定小数点の変換と派生範囲解析

この例は、派生範囲解析を使用し、固定小数点ツールが使用可能な範囲を収集して固定小数点のスケーリングを推奨する方法を示しています。

概要

固定小数点ツールでは、モデルのシミュレーションを実行して範囲情報のログを作成するか、派生範囲解析を実行することによって範囲データを収集できます。シミュレーションから取得された範囲情報は、シミュレーションへの入力に完全に依存します。正確な範囲情報が取得できるのは、入力によって動作範囲全体でシステムが実行された場合にのみです。シミュレーション ログを使用した範囲の収集とは異なり、派生範囲解析はサンプル入力に依存しません。代わりに形式的手法を用いて範囲情報を生成します。

シミュレーション ログに対する派生範囲解析の利点は次のとおりです。

  • 入力データの品質に左右されない正確な結果

  • 短い解析時間

モデルを開いて検査

ex_fxpdemo_corner_detection モデルを開きます。

このモデルでは、Harris のコーナー検出法に基づいてコーナー検出アルゴリズムを実装します。モデルの最上位には、シミュレーションの実行に必要なブロックが含まれます。シミュレーションへの入力は市松模様のイメージであり、出力は検出されたすべてのコーナーの場所を含む 2 行 n 列のワークスペース行列変数 cornerMarks であることに注意してください。Corner Detector サブシステムではアルゴリズムを実装します。Corner Detector サブシステム内では、Sobel Edge ブロックがソーベル演算子を入力データに適用し、Corner Metric サブシステムが Harris のコーナー メトリクスを計算します。この例では、固定小数点ツールを使用した Corner Metric サブシステムの範囲の解析に注目します。

メモ: Corner Metric サブシステムへの入力の設計範囲は、解析を実行する前にユーザーによって明示的に指定されています。これらの設計範囲は、派生範囲解析の実行、システムに関するログを使用したモデルのシミュレーションによって取得するか、モデルから推定することができます。

モデルのシミュレーション

Corner Metric サブシステム内部の一部のブロックには、固定小数点型が手動で指定されています。しかし、一部の型が不十分に選択されたため、モデルはコーナーを正しく検出できません。[シミュレーション] ボタンをクリックしてモデルをシミュレーションします。多数のオーバーフローが発生し、コーナーのほとんどがマークされないことを確認してください。

固定小数点ツールの [シミュレーション データの可視化] ペインで、オーバーフロー マーカーはモデル内の、シミュレーション中にオーバーフローしたブロックを示します。固定小数点ツールは、ガウス フィルター アキュムレータで発生したオーバーフローを示します。

変換するモデルの準備

固定小数点ツールを開くには、Corner Metric サブシステムを右クリックし、Fixed-Point Tool を選択します。

派生範囲解析の実行

固定小数点ツールは生成されたコードを解析することによって範囲を派生させます。固定小数点データ型は多くのコードを生成するため、解析で正確な範囲を派生させることはより困難になる可能性があります。結果の精度を向上させるには、倍精度データ型を使用してモデルの範囲を派生させます。

固定小数点ツールの、ツールストリップの [範囲の収集] セクションで、[派生範囲] ボタンをクリックして範囲の収集方法を指定します。範囲解析を開始するには、[範囲の収集] ボタンをクリックします。このアクションは、結果の精度を向上するために、モデルのデータ型を倍精度型でオーバーライドしてから解析を実行します。解析が完了すると、固定小数点ツールは収集された範囲情報を表示します。

固定小数点データ型の推奨

派生範囲解析から得られた範囲情報は、モデルのブロックの固定小数点データ型を推奨するために固定小数点ツールによって使用されることがあります。これは、固定小数点ツールの [データ型を推奨] ボタンをクリックすることで実行できます。

推奨されたデータ型の適用

推奨されたデータ型を適用するには、[データ型を適用] ボタンをクリックします。既定では、固定小数点ツールはすべての推奨されたデータ型を適用します。推奨のサブセットを適用するには、[確定] チェック ボックスを使用して、適用する推奨を指定します。

推奨されたデータ型の確認

推奨された型は考えられるすべての入力を正しく処理する必要があります。新たに適用された型を使用するようにモデルを設定し、モデルのシミュレーションを実行して、すべてのコーナーが検出されるようになったことを確認します。

メモ: 推奨されたデータ型を適用すると、データ型の可視化が更新され、対応するオーバーフロー インジケーターが削除されます。