DSP48EおよびDSP48E1関数端子の精度を維持する
- 更新日2025-03-06
- 4分で読める
DSP48EまたはDSP48E1アプリケーションでの数値精度を維持するには、構成ダイアログボックスの固定小数点の構成ページを使用して、入出力端子の整数ワード長を適切に設定します。LabVIEWはこれらの端子のワード長を定数に保つため、整数ワード長は制御可能な変数です。
LabVIEWは特定の関数端子をそれぞれグループ分けします。これらのグループは同じ固定小数点データタイプを保持する必要があります。以下の表は、各グループの端子およびワード長を示しています。
| グループ内の端子 | 端子のワード長 |
|---|---|
| a、acin | 関数ページで演算構成が選択され乗算器が使用される場合、ダイレクトモードでは25、カスケードモードでは30のワード長になります。それ以外の場合は、以下の例外を除きワード長は30になります。
|
| acout | 30 |
| b、bcin、bcout | 18 |
| c | 48 |
| p、pcin、pcout | 48 |
| (DSP48E1) d | 25 |
aおよびb端子の精度を維持する
NIは、aおよびb端子の整数ワード長が以下の条件を満たしていることを推奨します。
- これらの端子の整数ワード長からワード長を引いた小数部分ワード長は、端子に配線されたデータタイプの小数部分ワード長以上です。
- 端子の整数ワード長は、ソースの整数ワード長以上です。
たとえば、<+/–,16,1>データタイプをb端子に配線した場合、データタイプの小数部分ワード長は15ビットです。bのワード長は18ビットに固定されているため、bの整数ワード数を3、2、または1ビットに設定します。15、16、17ビットの小数部分ワード長、およびソースの整数ワード長以上であるbの整数ワード長という設定は、上の条件を満たします。
整数ワード長が1ビット以下または3ビット以上の場合、LabVIEWがb端子の値を強制変換するため、精度が失われます。入力端子上に強制ドットが表示され、この状況について警告します。
乗算器の精度を維持する
乗算器p = a * bとして構成されたDSP48EまたはDSP48E1関数で精度を完全に維持するには、pの小数部分ワード長をaおよびb端子の小数部分ワード長の合計に設定します。
以下の例について検証します。
- aへのソースのデータタイプは<+/–, 16, 1>です。小数部分ワード長は15ビットです。
- bへのソースのデータタイプは<+/–, 16, 2>です。小数部分ワード長は14ビットです。
小数部分ワード長の合計は29ビットです。この状況では、NIは以下の手順を実行することを推奨します。
- aを<+/–,30,15>に設定します。この設定は、この端子に配線されたソースの15ビット小数部分ワード長に一致します。
- bを<+/–,18,4>に設定します。この設定は、この端子に配線されたソースの14ビット小数部分ワード長に一致します。
- pを<+/–,48,19>に設定します。この設定は、aおよびb端子の合計である29ビット小数部分ワード長に一致します。
アキュムレータの精度を維持する
アキュムレータp = p + cとして構成されたDSP48EまたはDSP48E1関数で精度を完全に維持するには、pの小数部分ワード長をcの小数部分ワード長と同じに設定します。たとえば、cへのソースのデータタイプが<+/–, 16, 3>の場合、cの小数部分ワード長は13ビットです。pを<+/–,48,35>に設定します。