シングルチャンネル、1サンプル
- 更新日2023-02-17
- 8分で読める
シングルチャンネル、1サンプル
入力信号の高速フーリエ変換 (FFT) をポイントごとに計算します。
入力/出力

リセット
ノードの内部状態をリセットするかどうかを指定するブール値です。
| True | ノードの内部状態をリセットします。 |
| False | ノードの内部状態をリセットしません。 |
Default value: False
ハンドシェイク入力および出力における動作
このノードでのハンドシェイク入力および出力は、リセットがTrueのサイクル中に以下のように動作します。
- 入力有効は無視されます。
- 出力準備完了は無視されます。
- 出力有効はFalseです。
- 入力準備完了はFalseで、リセットが1サイクル以上Trueに保持されるケースを処理します。このノードは、リセットが完了し、リセットがFalseを返した後に入力準備完了になります。

データ入力
FFTを計算する入力信号です。
この入力には以下のデータタイプを使用できます。
- 8ビット符号付き整数
- 8ビット符号なし整数
- 16ビット符号付き整数
- 16ビット符号なし整数
- 32ビット符号付き整数
- 固定小数点数
- 複素固定小数点数
この入力の最大ワード長は32ビットです。

入力有効
次の処理データ要素を受信したかどうかを示すブール値です。先行ノードからこのノードにデータを渡すには、先行ノードの出力有効出力をこの入力に配線します。
| True | 次の処理データ要素を受信しました。 |
| False | 次の処理データ要素を受信していません。 |

出力準備完了
後続ノードがこのノードから返される新しい値を受信できる状態かどうかを定義するブール値です。後続ノードの入力準備完了出力を現在のノードのこの入力に配線するには、フィードバックノードを使用します。
| True | 後続ノードがこのノードから返される新しい値を受信できる状態です。 |
| False | 後続ノードがこのノードから返される新しい値を受信できる状態ではありません。 |
Default value: True

データ出力
入力信号のFFTです。
DFT結果の最大ワード長は32ビットです。
FFTのワード長をカスタマイズする
通常、FFTのワード長は、入力データよりもlog2 (N)+1ビット大きくなります (NはFFTサイズ)。FFTのワード長をカスタマイズするには、項目タブの端子セクションの精度制御器の隣にある複素固定小数点数コンフィギュレータボタンをクリックします。
出力ワード長を小さくすると、FPGAリソースは節約されますが、確度が低下します。NIでは、所定の構成のシミュレーションを行って、得られる精度がお使いのFPGAリソースとタイミングのニーズを満たしていることを確認することをお勧めします。

データ指標
このノードが返すFFTビンの指標です。
Default value: 0

出力有効
このノードが後続ノードで使用できる結果を計算するかどうかを示すブール値です。
ノードのデータを後続ノードに送信するには、この出力を後続の入力有効入力に配線します。
| True | 後続ノードは、このノードが計算する結果を使用できます。 |
| False | このノードは、後続ノードが使用できない未定義の値を返します。 メモ このノードは、シミュレーションモードで実行した場合、ハードウェア上で実行した場合と比較して、未定義の異なる値を返す可能性があります。 |

入力準備完了
このノードが新しい入力データを受信できる状態かどうかを決定するブール値です。この出力を先行ノードの出力準備完了入力に配線するには、フィードバックノードを使用します。
| True | このノードは新しい入力データを受信できる状態です。 |
| False | このノードは新しい入力データを受信できる状態ではありません。 |
タイミングダイアグラム
このノードは、スループットがサンプルにつき1サイクルであるため、各呼び出しでデータを受け入れます。次の図は、このノードが使用するタイミングを示しています。
FFTの計算中にデータの損失を防ぐ
このノードは、FFTの計算中に値を送受信しません。この間、このノードは、システムや他のノードからデータを受信すると、データを破棄します。これは、このノードが複雑または不均一な方法でデータを受信した場合に起こる可能性があります。
データの損失を防ぐため、このノードが値を受信するまでデータを保持しておくFIFOを作成してください。FFTの計算中に収集されるすべてのデータポイントを保持するのに十分な大きさのFIFOを作成します。作成する必要のあるFIFOのサイズを概算するには、このノードのレイテンシを平均のシステムスループットで除算します。レイテンシは、構成ペーンの項目タブのパフォーマンスセクションにあります。
確度、リソース使用量、またはタイミングを最適化する
このノードで確度、最小リソース使用量、またはタイミングを最適化するように構成するには、構成ペーンの項目タブの最適化セクションを使用します。
目標セクションで、出力データのワード長を決める際、このノードは出力データの確度を最適化するか、リソース使用量を最小限に抑えるかを構成できます。次の表は、特定の使用例においてどちらのオプションを使用するか決定する際の基準を示しています。
| 使用例 | 推奨オプション | ノード動作 | 結果 |
|---|---|---|---|
| FPGAリソース使用量を増加させてでも、出力データの最終ビットの確度を最適化したい場合。 | 確度 | このノードは、ゼロをパディングして、入力データのワード長を出力ワード長に拡張します。内部複素乗算演算は、すべてこのワード長を使用します。 | リソース使用量オプションと比較すると、複素乗算器は、より多くのビットを保持し、出力データの増加したlog2(N)+1ビットはより正確です。 |
| 出力データの確度を落としても、FPGAリソース使用を削減したい場合。 | リソース使用量 | このノードは、ワード長を入力から出力まで段階的に増加させます。このため、複素乗算器のビット幅も段階単位で増えます。 | 確度オプションと比較すると、複素乗算器と内部レジスタのビット幅は小さいため、FPGAリソースが節約され、コンパイル時にFPGAクロックレートが高くなる可能性があります。 |
最適化目標を構成した後も、このノードが、確度、リソース、またはタイミングの要件を満たさない場合は、Twiddle係数語長とバタフライのパイプライン段階の数の値を調整してこのノードのパフォーマンスを改善させます。