主要内容

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

双から固定小数点へのキャスト

この例では,一般化固定小数点データ型を使用して連続した実際の双信号をシミュレートする方法を示します。モデルfxpdemo_dbl2fixを使用して,以下を含む定点设计师™ソフトウェアの多くの重要な機能を調べることができます。

  • データ型

  • スケーリング

  • 丸め

  • シミュレーションの最小値と最大値のワークスペースへの記録

  • オーバーフローの処理

モデルを開くには,MATLAB®コマンドラインで次を入力します。

fxpdemo_dbl2fix

この例では,信号发生器ブロックを5 [5]の区間で振幅が定義された正弦波信号を出力するように設定します。信号发生器ブロックは常に倍精度数を出力します。

Dbl-to-FixPt数据类型转换ブロックは,信号发生器ブロックからの倍精度数を定点设计师データ型の1つに変換します。簡単にするために,この例では出力信号のサイズは5ビットです。

FixPt-to-Dbl数据类型转换定点设计师ブロックはデータ型の1つを仿真软件金宝app®データ型に変換します。この例では,倍精度数が出力されます。

2進小数点のみのスケーリングを使用したシミュレーション

2進小数点のみのスケーリングを使用する場合,目的はスケーリングで定義された最適な2のべき乗の指数Eを見つけることです。このスケーリングモードでは,小数部の勾配Fは1でバイアスはありません。

2進小数点のみのスケーリングを使用するようにモデルを設定するには,以下の手順に従います。

  1. 信号发生器ブロックを5 [5]の区間で振幅が定義された正弦波信号を出力するように設定します。

    1. 信号发生器ブロックをダブルクリックして[ブロックパラメーター]ダイアログを開きます。

    2. [波形]パラメーターを[正弦]に設定します。

    3. [振幅]パラメーターを5に設定します。

    4. (好的)をクリックします。

  2. 数据类型转换(Dbl-to-FixPt)ブロックを設定します。

    1. (Dbl-to-FixPt)ブロックをダブルクリックして[ブロックパラメーター]ダイアログを開きます。

    2. (出力データ型)パラメーターがfixdt(1、5、2)であることを確認します。これにより,スケーリング2 ^ 2の5ビットの符号付き固定小数点数が指定され,2進小数点を右端のビットの2桁左側に配置します。したがって,最大値は011.11 = 3.75,最小値は100.00 = -4.00,精度は(1/2)2= 0.25になります。

    3. (整数丸めモード]パラメーターが[負方向]に設定されていることを確認します。これにより,固定小数点の結果が負の無限大方向に丸められます。

    4. (整数オーバーフローで飽和)チェックボックスをオンにして,オーバーフローでブロックがラッピングしないようにします。

    5. (好的)をクリックします。

  3. モデルをシミュレートするには,[シミュレーション]タブで[実行]をクリックします。

范围で理想のシミュレーション結果と固定小数点のシミュレーション結果が表示されます。

シミュレーションは,固定小数点演算の量子化の影響を示します。精度 (1/2)25 = 0.25のビットの語長を使用すると,入力信号の全範囲を含まない離散化出力が生成されます。

2進小数点のみのスケーリングを使用して5ビットの入力信号の全範囲を含めるには,出力スケーリングを2 ^ 1に設定します。これにより2進小数点が右端のビットの1桁左側に配置され,最大値は0111.1 = 7.5,最小値は1000.0 = -8.0になります。ただし,精度は(1/2)1= 0.5に低下します。2進小数点のみのスケーリングを使用して、5 ビットの入力信号の完全範囲を含むための唯一のオプションは、精度を犠牲にすることです。したがって、出力スケーリングは2 ^ 1です。このスケーリングでは2進小数点が右端のビットの1桁左側に配置されます。このスケーリングでは,最大値0111.1 = 7.5,最小値1000.0 = -8.0,そして精度(1/2)1= 0.5が与えられます。

精度が0.5に低下したことによる影響を確認するには,Dbl-to-FixPt数据类型转换ブロックの(出力データ型)パラメーターをfixdt(1、5、1)に設定してシミュレーションを再実行します。

(勾配バイアス]スケーリングを使用したシミュレーション

(勾配バイアス]スケーリングを使用する場合の目的は,スケーリングで定義された最適な小数部の勾配Fと固定した2のべき乗の指数Eを見つけることです。正弦波は5 [5]の区間で定義されるため,この例にはバイアスはありません。

勾配を求めるには,固定した2のべき乗の指数2を想定することから始めます。小数部の勾配を求めるには,正弦波の最大値をスケーリングされた5ビットの数値で割ります。結果は,5.00/3.75 = 1.3333になります。勾配(および精度)は1.3333(0.25)= 0.3333です。(出力データ型)パラメーターの値として式fixdt(1、5,0.3333,0)を入力することで,勾配バイアス]を0.3333[0]として指定します。

また,固定した2のべき乗の指数1および対応する小数部の勾配0.6667を指定することもできます。Eは1ビット減りますが,Fは1ビット増えるため,結果の勾配は同じです。定点设计师ソフトウェアは、正規化条件 1 ≤ F < 2 のため、F1.3332をとし,Eを2として自動的に格納します。

(勾配バイアス]スケーリングを使用するようにモデルを設定するには,以下の手順に従います。

  1. 信号发生器ブロックを5 [5]の区間で振幅が定義された正弦波信号を出力するように設定します。

    1. 信号发生器ブロックをダブルクリックして[ブロックパラメーター]ダイアログを開きます。

    2. [波形]パラメーターを正弦に設定します。

    3. [振幅]パラメーターを5に設定します。

    4. (好的)をクリックします。

  2. Dbl-to-FixPt数据类型转换ブロックを設定します。

    1. (Dbl-to-FixPt)ブロックをダブルクリックして[ブロックパラメーター]ダイアログを開きます。

    2. 0.3333[0]の[勾配バイアス]スケーリングを指定するには,(出力データ型)パラメーターをfixdt(1、5,0.3333,0)に設定します。

    3. (整数丸めモード]パラメーターが地板上であることを確認します。これにより,固定小数点の結果が負の無限大方向に丸められます。

    4. (整数オーバーフローで飽和)チェックボックスをオンにして,オーバーフローでブロックがラッピングしないようにします。

    5. (好的)をクリックします。

  3. モデルをシミュレートするには,[シミュレーション]タブで[実行]をクリックします。

范围で理想のシミュレーション結果と固定小数点のシミュレーション結果が表示されます。

勾配が不明な場合は,以下の公式に基づきスケーリングを選択することで,適切なシミュレーション結果を取得できます。

一个 x _ v 一个 l u e n _ v 一个 l u e 2 w 年代 1

ここで,

  • max_valueは,シミュレートする最大値です。

  • min_valueは,シミュレートする最小値です。

  • wsはビット単位のワードサイズです。

  • 2ws- 1はワードサイズwsのワードの最大値です。

この例では,公式により0.32258の勾配が生成されます。

関連するトピック