シングルチャンネル、複数サンプル
- 更新日2023-02-17
- 10分で読める
シングルチャンネル、複数サンプル
1サイクルあたりのサンプル数が複数である入力信号ストリームの高速フーリエ変換 (FFT) を計算します。
このノードでは、1データクロックサイクルあたりのサンプル数が複数であるFPGA I/Oを処理できます。このノードは、より高いデータスループットを実現しますが、「FFT (シングルチャンネル、1サンプル)」ノードよりも大幅に多くのFPGAリソースを消費します。
入力/出力

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

データ入力
FFTを計算する信号の入力ストリームです。
- 8ビット符号付き整数
- 8ビット符号なし整数
- 16ビット符号付き整数
- 16ビット符号なし整数
- 32ビット符号付き整数
- 固定小数点数
- 複素固定小数点数
配列サイズは、2、4、8、または16である必要があります。各配列要素の最大ワード長は32ビットです。

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

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

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

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

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

入力準備完了
このノードが新しい入力データを受信できる状態かどうかを決定するブール値です。この出力を先行ノードの出力準備完了入力に配線するには、フィードバックノードを使用します。
| True | このノードは新しい入力データを受信できる状態です。 |
| False | このノードは新しい入力データを受信できる状態ではありません。 |
タイミングダイアグラム
このノードは、スループットが入力あたり1サイクルであるため、各サイクルで新規データを受け入れます。次の図は、このノードが使用するタイミングを示しています。
FFTの計算中にデータの損失を防ぐ
このノードは、FFTの計算中に値を送受信しません。この間、このノードは、システムや他のノードからデータを受信すると、データを破棄します。これは、このノードが複雑または不均一な方法でデータを受信した場合に起こる可能性があります。
データの損失を防ぐため、このノードが値を受信するまでデータを保持しておくFIFOを作成してください。FFTの計算中に収集されるすべてのデータポイントを保持するのに十分な大きさのFIFOを作成します。作成する必要のあるFIFOのサイズを概算するには、このノードのレイテンシを平均のシステムスループットで除算します。レイテンシは、構成ペーンの項目タブのパフォーマンスセクションにあります。
入力/出力指標パターンを理解する
構成ペーンの項目タブのインタフェースセクションで、このノードで連続入力/M間隔出力またはM間隔入力/連続出力指標パターンを使用するか構成できます。
次の表は、入力あたりのサンプル数が4、FFTサイズが4096 (つまり、Mが1024) である信号の入力ストリームの例を使用して指標パターンを比較したものです。
| 指標パターン | 説明 | 例 | コメント |
|---|---|---|---|
| 連続入力/M間隔出力 | FFTフレームにおける指標は、入力データでは連続、出力データではM間隔です (M = FFTサイズ/データ入力のサイズ)。 |
|
このノードが使用する入力サンプルの指標は、最初の有効な入力サイクルで0、1、2、3であり、2番目のサイクルで4、5、6、7となります。出力サンプルの指標は、最初の有効出力サイクルで0、1024、2048、3072であり、2番目のサイクルで1、1025、2049、3073となります。 |
| M間隔入力/連続出力 | FFTフレームにおける指標は、入力データでM間隔、出力データで連続です (M = FFTサイズ/データ入力のサイズ)。 |
|
入力と出力の指標は、連続入力/M間隔出力指標パターンの逆です。 |
データソースが1サイクルあたり複数のサンプルをもつFPGA I/Oの場合は、連続入力/M間隔出力指標パターンを選択します。別の「FFT (シングルチャンネル、複数サンプル)」ノードから取得したFFT結果の逆数を計算する場合など、データソースが別の「FFT (シングルチャンネル、複数サンプル)」ノードの出力である場合は、このノードの入力指標パターン設定が、その別の「FFT (シングルチャンネル、複数サンプル)」ノードの出力指標パターン設定と一致するようにしてください。
確度、リソース使用量、またはタイミングを最適化する
このノードで確度、最小リソース使用量、またはタイミングを最適化するように構成するには、構成ペーンの項目タブの最適化セクションを使用します。
目標セクションで、出力データのワード長を決める際、このノードは出力データの確度を最適化するか、リソース使用量を最小限に抑えるかを構成できます。次の表は、特定の使用例に対して使用するオプションを決定する際の基準を示しています。
| 使用例 | 推奨オプション | ノード動作 | 結果 |
|---|---|---|---|
| FPGAリソース使用量を増加させても、出力データの最終ビットの確度を最適化する。 | 確度 | このノードは、ゼロをパディングして、入力データのワード長を出力ワード長に拡張します。内部複素乗算演算は、すべてこのワード長を使用します。 | リソース使用量オプションと比較すると、複素乗算器は、より多くのビットを保持し、出力データの確度はlog2(N)+1ビットに増加します。 |
いずれかの使用例の場合:
|
リソース使用量 | このノードは、ワード長を入力から出力まで段階的に増加させます。このため、複素乗算器のビット幅も段階単位で増加します。 | 確度オプションと比較すると、複素乗算器と内部レジスタのビット幅が小さいため、FPGAリソースが節約され、コンパイル時にFPGAクロックレートが高くなる可能性があります。 |
最適化の目標を構成した後も、このノードが、確度、リソース、またはタイミングの要件を満たさない場合は、Twiddle係数語長とバタフライのパイプライン段階の数の値を調整してこのノードのパフォーマンスを改善させます。