Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

NumericTypeScope

固定小数点データ型を判別

構文

H = NumericTypeScope
show(H)
step(H, data)
release(H)
reset(H)

説明

NumericTypeScope は、データのダイナミック レンジについての情報を提供するオブジェクトです。このスコープはデータのダイナミック レンジを log2 ヒストグラムの形式で視覚的に表現したものです。このヒストグラムでは、ビットの重みが X 軸、出現割合が Y 軸に沿って表示されます。ヒストグラムの各ビンはバイナリ ワードのビットに対応しています。たとえば、20 はバイナリ ワードの最初の整数ビットに対応し、2-1 はバイナリ ワードの最初の小数ビットに対応します。

このスコープは、指定された基準を満たす numerictype オブジェクトの形式のデータ型を示唆します。ダイアログのパネルのビット割り当ての節を参照してください。

H = NumericTypeScope は、MATLAB® でデータのダイナミック レンジを確認するために使用できる NumericTypeScope オブジェクトを返します。H の作成後に NumericTypeScope ウィンドウを表示するには、show メソッドを使用します。

show(H)NumericTypeScope オブジェクト H を開いて表示します。スコープ ウィンドウを閉じても、オブジェクトはワークスペースから削除されません。スコープ オブジェクトがワークスペースに残っていれば、show メソッドを使用して開いて再度表示することができます。

step(H, data) はデータを処理し、ダイナミック レンジを可視化できるようにします。H オブジェクトは以前に step が一度呼び出されてから次回呼び出される間に収集された変数に関する情報を保持します。

release(H) はシステム リソース (メモリ、ファイル ハンドル、ハードウェア接続など) を解放し、すべてのプロパティと入力特性の変更を可能にします。

reset(H) は保存された情報をすべて NumericTypeScope オブジェクト H から消去します。オブジェクトをリセットすると、スコープ ウィンドウに表示されている情報が消去されます。

範囲外または精度の低い値の特定

NumericTypeScope を使用すると、現在のデータ型に基づいて範囲外または精度の低い値を特定しやすくなります。そのような値を特定するために NumericTypeScope を作成するには、fi オブジェクトである入力変数を指定し、次のいずれかの条件が真であることを確認します。

  • fi オブジェクトの DataTypeModeScaled doubles: binary point scaling に設定されている。

  • Fixed-Point Designer™ fipref オブジェクトの DataTypeOverride プロパティが ScaledDoubles に設定されている。

この情報を入手できる場合、スコープはデータ型の範囲外にある値、精度が低い値および範囲内にある値について、ヒストグラム バーを次のように色分けして示します。

  • 青 - ヒストグラム ビンに現在のデータ型の範囲内にある値が格納されます。

  • 赤 - ヒストグラム ビンに現在のデータ型の範囲外にある値が格納されます。

  • 黄 - ヒストグラム ビンに現在のデータ型で精度の低い値が格納されます。

スコープの色分けの例は、垂直方向の単位の図を参照してください。

ダイアログのパネルの凡例も参照してください。

NumericTypeScope を使用してデータ型を選択する方法の詳細は、の節を参照してください。

ダイアログ ボックスとツール バー

[NumericTypeScope] ウィンドウ

NumericTypeScope はウィンドウの上部に既定のツール バーを表示し、右側にダイアログ パネルを表示した状態で開きます。

[構成] ダイアログ ボックス

NumericTypeScope 設定を使用すると、スコープ ウィンドウの動作と外観を制御することができます。

[構成] ダイアログ ボックスを開くには、[ファイル][構成] を選択するか、スコープをアクティブなウィンドウにして N キーを押します。

[構成] ダイアログ ボックスには一連のペインがあり、各ペインには設定オプションの一覧表が表示されます。各ペインでオプションを設定する方法については、各ペインに関するリファレンスの節を参照してください。このダイアログ ボックスには 1 つの [コア] ペインと、スコープ ユーザー インターフェイスの一般的な UI を設定するためのオプションが 1 つあるだけです。

後で使用するためにコンフィギュレーション設定を保存するには、[ファイル][構成][名前を付けて保存] をクリックします。保存した設定は NumericTypeScope オブジェクトの既定の設定になります。

注意

独自の設定を matlab/toolbox/fixedpoint/fixedpoint フォルダーに保存する前に、既定の設定のバックアップ コピーを別の場所に保存してください。既定の設定のバックアップ コピーを別の場所に保存しておかないと、後で復元できなくなります。

後で使用するために設定を保存するには、ファイル名を NumericTypeScopeComponent.cfg として matlab/toolbox/fixedpoint/fixedpoint フォルダーに保存します。設定はいつでも再保存できますが、指定のファイル名で指定のフォルダーに保存しなければならないことを忘れないでください。

[コア] ペイン

[構成] ダイアログ ボックスの [コア] ペインは、スコープの一般的な設定を制御します。

[一般的な UI] をクリックしたまま [オプション] をクリックすると、[一般的な UI オプション] ダイアログ ボックスを開きます。

  • タイトル バーに絶対ソース パスを表示 - スコープのタイトル バーにファイル名と変数名を表示するには、このチェック ボックスをオンにします。スコープがファイルからのものでないか、このチェック ボックスをオフにすると、スコープはタイトル バーに変数名のみを表示します。

  • [メッセージ ログを開く] - [メッセージ ログ] ウィンドウをいつ開くのかを制御します。[メッセージ ログ] ウィンドウを使用すると、スコープに関する問題のデバッグが容易になります。次のどの条件によって [メッセージ ログ] ウィンドウを開くかを選択します。

    • 新規メッセージ用

    • 警告/エラー メッセージ用

    • エラー メッセージ専用

    • 手動

    このオプションの既定値は [警告/エラー メッセージ用] です。

    [ヘルプ][メッセージ ログ] を選択するか、Ctrl+M を押して、メッセージ ログをいつでも開くことができます。[メッセージ ログ] ダイアログ ボックスでは、読み込まれた構成と登録済み拡張機能のシステム レベルの記録が提供されます。[メッセージ ログ] ダイアログ ボックスには各メッセージの概要と詳細が表示され、メッセージ表示をタイプまたはカテゴリ別にフィルター処理することができます。

    • [タイプ] - [メッセージ ログ] ダイアログ ボックスに表示するメッセージのタイプを選択します。選択できるのは [すべて][情報][警告] または [失敗] です。[タイプ] の既定値は [すべて] です。

    • [カテゴリ] - [メッセージ ログ] ダイアログ ボックスに表示するメッセージのカテゴリを選択します。選択できるのは [すべて][構成] または [拡張子] です。スコープでは [構成] メッセージを使用して新しいコンフィギュレーション ファイルがいつ読み込まれるのかを示し、[拡張子] メッセージを使用してコンポーネントがいつ登録されるのかを示します。[カテゴリ] の既定値は [すべて] です。

ダイアログのパネル

ビット割り当て

スコープの [ビット割り当て] ダイアログ パネルには、次の図のようにデータ型の基準を指定するためのオプションがいくつかあります。

このパネルを使用して、既知の語長と、範囲外での目的の最大出現数を指定することができます。また、範囲外での目的の出現数と、推奨されたデータ型で表現される最小値を指定することもできます。ストリーミング データの場合、指定の基準を引き続き満たすために、推奨された数値型オブジェクトが時間の経過に従って調整されます。

スコープではヒストグラム プロットと対話することもできます。[ビット割り当て] ダイアログ パネルの [グラフィカル コントロール] チェック ボックスをオンにすると、2 進小数点の両側にあるカーソルが有効になります。これらのカーソルを対話的に操作し、推奨された数値型が入力データに及ぼす影響を確認することができます。たとえば、範囲外の値の数や、精度が低い値の数を確認することができます。また、データ型で表現できる最大値と最小値を確認することもできます。

凡例

スコープの [凡例] パネルには、スコープで値を示すために使用される色が説明されています。これらの色はスコープで表示されるときの範囲外の値、範囲内の値、精度の低い値を表します。

結果のタイプ

[結果のタイプ] パネルには、スコープ設定で定義された固定小数点データ型が示されます。[ビット割り当て] パネルまたはカーソルを使用して視覚的表示を操作することで、データ型の値を変更することができます。

[データの詳細] セクションには、このパネルの一番上の numerictype オブジェクトについて、範囲外の値または精度の低い値の割合が表示されます。[SQNR] (信号量子化ノイズ比) は信号によって異なります。このパラメーターに値が指定されていない場合、データ不足のため SQNR を計算できません。スコープ情報または numerictype が変化すると SQNR はリセットされます。

[データのタイプ] セクションには、固定小数点データ型の詳細が表示されます。

入力データ

[入力データ] パネルには、NumericScopeType オブジェクトで現在表示されている値についての統計情報が表示されます。

垂直方向の単位

範囲外または精度の低い値を割合または実際の個数として表示するには、[垂直方向の範囲] オプションを使用します。たとえば、次の図は範囲外または精度の低い値を合計値に対する割合として示したものです。

次の例では、範囲外または精度の低い値が実際の個数として表示されます。

すべての Numeric Type Scope ウィンドウを前面へ移動

NumericScopeType GUI には [表示][すべての Numeric Type Scope ウィンドウを前面へ移動] メニュー オプションがあり、NumericTypeScope ウィンドウを簡単に管理することができます。このオプションを選択するか、Ctrl + F キーを押すと、NumericTypeScope ウィンドウがすべて表示されます。NumericTypeScope ウィンドウが現在開いていない場合、このメニュー オプションをクリックするとウィンドウが開いて表示されます。

ツール バー (Mac 専用)

ツール バーを有効にするには、[表示][ツール バー] をクリックします。このツールを有効にすると、スコープを GUI にドッキングしたりドッキング解除したりすることができます。

このツール バー機能は Mac 専用です。Windows® または UNIX® バージョンで [ツール バー] をクリックしても、空のツール バーが表示されるだけです。これらのバージョンでは、右上にある GUI にドッキング アイコンが表示されます。

メソッド

release

このメソッドを使用して、システム リソース (メモリ、ファイル ハンドルまたはハードウェア接続など) を解放し、すべてのプロパティと入力特性を変更できるようにします。

例:

>>release(H)

reset

オブジェクト H に格納された情報を消去するには、このメソッドを使用します。これにより、H を再利用して別の変数のデータを処理できます。

例:

>>reset(H)

show

スコープ ウィンドウを開いて表示するには、このメソッドを使用します。

例:

>>show(H)

step

データを処理してダイナミック レンジをスコープ ウィンドウに表示するには、このメソッドを使用します。

例:

>>step(H, data)

すべて折りたたむ

fi オブジェクトの DataTypeOverride を「スケーリングされた double」に設定し、そのダイナミック レンジを表示します。

fp = fipref;
initialDTOSetting = fp.DataTypeOverride;
fp.DataTypeOverride = 'ScaledDoubles';
a = fi(magic(10),1,8,2);
b = fi([a; 2.^(-5:4)],1,8,3);
h = NumericTypeScope;
step(h,b);
fp.DataTypeOverride = initialDTOSetting;

log2 ヒストグラム表示には、変数の値のうち範囲外の値と精度の低い値の両方が表示されています。この場合、b のデータ型は numerictype(1,8,3) です。numerictype(1,8,3) のデータ型では 5 つの整数ビット (符号付きビットも含む) と 3 個の小数部ビットを使用できます。したがって、このデータ型は -2^4 から 2^4- 2^-3 まで (-16 ~ 15.8750) の範囲値のみを表現できます。このデータ型に範囲と精度を指定すると、2^4 を超える値は範囲外となり、2^–3 未満の値はデータ型の精度を下回ることになります。NumericTypeScope の表示を調べると、ビット 5、6 および 7 を必要とする値は範囲外であり、小数部のビット 4 と 5 を必要とする値は精度が低いことがわかります。この情報が手元にあるので、変数 b のデータ型を numerictype(0,13,5) に変えることにより、範囲外の値と精度の低い値を回避することができます。

ダイナミック レンジを確認し、DataTypeMode が「スケーリングされた double: 2 進小数点スケーリング」である fi オブジェクトに適した数値型を決定します。

DataTypeMode が「スケーリングされた double: 2 進小数点スケーリング」の numerictype オブジェクトを作成します。その後、この numerictype オブジェクトを使用して fi オブジェクトを構築できます。DataTypeMode を「スケーリングされた double: 2 進小数点スケーリング」に設定したので、NumericTypeScope はデータ内のオーバーフローを特定できるようになります。

T = numerictype;
T.DataTypeMode = 'Scaled double: binary point scaling';
T.WordLength = 8;
T.FractionLength = 6;
a = fi(sin(0:100)*3.5, T);
b = fi(cos(0:100)*1.75,T);
acc = fi(0,T);
h = NumericTypeScope;
for i = 1:length(a)
    acc(:) = a(i)*0.7+b(i);
    step(h,acc)
end

このダイナミック レンジ解析では、5 ビットのアキュムレータ内のデータの全範囲を表現できることが示されました。5 ビットの内訳は 2 進小数点の左側 2 ビットが整数ビットで右側 3 ビットが小数ビットです。このデータ型により、numerictype オブジェクト T の WordLength および FractionLength プロパティを変更することで、すべての値を表すことができることを確認できます。その後、T を使用してアキュムレータを再定義します。

この新しいデータ型に基づくダイナミック レンジ解析を確認するには、NumericTypeScope オブジェクト h をリセットし、次のループを再実行します。

T.WordLength = 5;
T.FractionLength = 2;
acc = fi(0,T);
release(h)
reset(h)
for i = 1:length(a)
    acc(:) = a(i)*0.7 + b(i);
    step(h,acc)
end

バージョン履歴

R2010a で導入

参考

|