高速フーリエ変換 (FFT) を計算します。シングルチャンネル、1サンプル入力形式は、FFTをポイントごとに計算します。シングルチャンネル、複数サンプル入力形式を使用すると、複数のサンプル/サイクルを使用して、データストリームに対するFFT解析を実行できます。

を使用した後、このExpress VIの 単一チャンネル、単一サンプル 入力形式を使用できます。切り捨てられた波形に関連するスペクトル漏れを最小限に抑えるための スケールされたウィンドウExpress VI です。また、 シングルチャンネル、シングルサンプル 入力形式を使用する場合に、このExpress VIの出力を振幅またはパワースペクトルに変換するための FFTからスペクトル VI。


icon

ダイアログボックスオプション

パラメータ 説明
入力形式

次のオプションがあります。

  • 単一チャンネル、単一サンプル―各入力が1つのチャンネルからの1つのサンプルである場合、このオプションを選択します。
  • シングルチャンネル、複数サンプル―各クロックサイクルで1つのチャンネルから複数のサンプルを処理する場合は、このオプションを選択します。このオプションを選択すると、実データ入力虚データ入力実データ出力および虚データ出力は、各要素が1つのサンプルを表す配列になります。これらの入力は、2、4、8、および16の配列サイズをサポートします。データクロックサイクルごとに複数のサンプルを送信するハードウェアを使用する場合、 単一チャンネル、複数サンプル 入力形式により、FPGA I/Oノードから直接データを処理できます。 。I/Oモジュールを使用していない場合は、このオプションを使用して、シングルチャンネル、1サンプル入力形式を使用したときと比べて高いデータスループットを達成することができます。
    メモ 単一チャンネル、複数サンプル 入力形式を選択すると、 単一チャンネル、単一サンプル 入力形式に比べてFPGAリソースが大幅に消費されます。FPGAターゲットのリソース不足でコンパイルが失敗する場合は、リソースを増やしてFPGAターゲットを使用することを検討してください。
パラメータを変換

次のオプションがあります。

  • FFTサイズ―このExpress VIが計算する変換の長さを指定します。入力形式セクションでシングルチャンネル、1サンプルを選択した場合、有効なオプションは、8~8,192の2の累乗になります。入力形式セクションでシングルチャンネル、複数サンプルを選択した場合、有効なオプションは、8~65,536の2の累乗になります。デフォルトは64です。
  • 方向 ( Direction)―順FFTまたは逆FFTのどちらを計算するかを指定します。
出力データタイプ

次のオプションがあります。

  • ソースに適応―このExpress VIが出力データタイプを決定するかどうかを指定します。ワード長を使用して出力データタイプを決定する場合は、ソースに適応チェックボックスを無効にしてください。
  • ワード長―出力ワード長を[8, 32]の範囲で指定します。ワード長 は、ソースに適応チェックボックスを選択解除した場合にのみ使用できます。入力が符号付きの場合、ワード長は入力ワード長~32の間である必要があります。入力が符号なしの場合、ワード長は入力ワード長+1~32の間である必要があります。実データ入力に配線されるデータによって、入力ワード長が決まります。
    ヒント ワード長 の値を小さくすると、FPGAリソースを節約できますが、精度が低下します。NIでは、所定の構成のシミュレーションを行って、得られる精度がお使いのFPGAリソースとタイミングのニーズを満たしていることを確認することをお勧めします。
  • 整数ワード長―このExpress VIが計算する出力整数ワード長を示します。
実行モード

次のオプションがあります。

  • シングルサイクルタイミングループの外側―このExpress VIをシングルサイクルタイミングループの外側で使用する場合は、このオプションを選択します。このオプションは、入力形式セクションでシングルチャンネル、1サンプルを選択した場合にのみ使用可能です。

    シングルサイクルタイミングループの外側でこのExpress VIを使用すると、長さの2倍のレイテンシが生じます。つまり、Express VIが有効出力を返す前に、Express VIに対する呼び出しに、2倍の長さがかかることになります。最初のレイテンシの後、このExpress VIは、LabVIEWがこのExpress VIを呼び出すたびに有効な出力を返します。

  • シングルサイクルタイミングループの内側―このExpress VIをシングルサイクルタイミングループの内側で使用する場合は、このオプションを選択します。シングルサイクルタイミングループの内側を選択すると、スループットオプションが有効になります。このExpress VIをシングルサイクルタイミングループ内で実行すると、データのタイミングをスケジュールするための ハンドシェイク信号
  • スループット―2つの連続する入力データ間の最小サイクル数を指定します。シングルチャンネル、1サンプルシングルサイクルタイミングループの内側を選択した場合のみ、このオプションを使用できます。シングルチャンネル、1サンプルを選択してからシングルサイクルタイミングループの外側を選択すると、スループットが1呼び出し/入力に設定されます。これは、Express VIが呼び出されるたびにデータの受信が可能になるということです。シングルチャンネル、複数サンプルを選択した場合、LabVIEWによって設定されるスループットは1サイクル / 入力になります。これは、Express VIが新しいデータを各サイクルごとに受け入れることができるということです。
    ヒント スループットを増加すると、より多くのFPGAリソースが消費されます。より高いスループットが必要な場合は1サイクル/入力のみを選択してください。
  • レイテンシ―入力フレームの最初のポイントと有効な出力フレームの最初のポイント間のサイクル数を表示します。
  • クロックレート―このExpress VIが内部で使用するパイプラインステージのレベルを指定します。ステージ数を増やすと、このExpress VIがシングルサイクルタイミングループの内側シングルサイクルタイミングループの外側の両方でコンパイル可能なクロックレートが向上します。このオプションによってクロックレートが明示的に設定されることはありません。
    メモ クロックレート の値を調整すると、このExpress VIのFPGAリソースの使用量とレイテンシが増加します。レイテンシの増加は、このExpress VIが有効な結果を返すために必要な時間が長くなることを示します。

    入力形式 セクションで シングルチャンネル、複数サンプル を選択すると、 クロックレート の値はHIGHになります。

実装目標

このExpress VIを使用してFFT結果の確度を最適化するか、FPGAターゲットのリソース使用を最適化するかを指定します。このオプションは、入力形式セクションでシングルチャンネル、複数サンプルを選択し、出力データタイプセクションでソースに適応を選択した場合にのみ使用可能です。ソースに適応をオフにした場合は、確度のみが選択可能にあり、構成する出力ワード長によって、確度とFPGAリソース使用量が決定されます。次のオプションがあります。

  • 確度―FPGAリソース使用量の増加を犠牲にして、出力データの最後のビットの確度を高めたい場合は、このオプションを選択します。デフォルトは確度です。
  • リソース使用量―結果の確度が低下する代わりにFPGAリソースの使用量を削減する場合は、このオプションを選択します。
    メモ NIでは、入力に1サイクルあたり16サンプルが含まれ、FFT長が16384、32768、または65536の場合、 リソース使用量 を選択することを推奨します。サイクルごとの入力に16サンプルが含まれており、FFTの長さが16384、32768、65536の場合に確度を選択すると、FPGAリソース要件が大きくなります。
入力/出力指標パターン

入力データと出力データのFFTフレームの指標間隔を指定します。入力/出力指標パターン の下の画像は、選択した構成を表します。次のオプションがあります。

  • 連続入力指標/連続出力指標―入力データと出力データの両方でFFTフレームの指標を連続にするには、このオプションを選択します。このオプションは、入力形式セクションでシングルチャンネル、1サンプルを選択した場合にのみ使用可能です。
  • 連続入力指標/M間隔出力指標―入力データに対してFFTフレームの指標を連続させ、出力データに対してFFTフレームの指標の間隔を M にする場合は、このオプションを選択します。ここで、M=FFTサイズ/入力あたりのサンプル数このオプションは、入力形式セクションでシングルチャンネル、複数サンプルを選択した場合にのみ使用可能です。
    メモ FFT結果に対して逆FFTを実行する場合など、FFT Express VIのデータソースが別のFFT Express VIから来ている場合は、2番目のFFT Express VIの入力パターンが最初のFFT Express VIの出力パターンと同じであることを確認する。そうしないと、FFTの結果が不正確になってしまいます。
  • M間隔入力指標/連続出力指標―入力データに対してFFTフレームの指標の間隔をMにする場合、このオプションを選択します。ここで、M=FFTサイズ/入力ごとのサンプル数、およびFFTの指標フレームが出力データに対して連続的である必要があります。このオプションは、入力形式セクションでシングルチャンネル、複数サンプルを選択した場合にのみ使用可能です。
    メモ FFT結果に対して逆FFTを実行する場合など、FFT Express VIのデータソースが別のFFT Express VIから来ている場合は、2番目のFFT Express VIの入力パターンが最初のFFT Express VIの出力パターンと同じであることを確認する。そうしないと、FFTの結果が不正確になってしまいます。
構成フィードバック

このExpress VIの実行方法に関する情報、および警告やエラーなどのその他の有用な情報を表示します。

入力/出力

  • cunkn.png 実データ入力

  • cunkn.png 虚データ入力

  • cbool.png リセット

  • iunkn.png 実データ出力

  • ibool.png 出力有効

  • iu16.png データ指標

  • iunkn.png 虚データ出力

  • シングルサイクルタイミングループの外のタイミング図 (シングルチャンネル、1サンプル入力形式)

    以下の図は、このExpress VIをシングルサイクルタイミングループの外側で使用した場合のタイミングを示しています。

    スループットが1サイクル/入力の場合のシングルサイクルタイミングループ内のタイミング図

    以下の図は、このExpress VIをスループットが1サイクル/入力のシングルサイクルタイミングループの内部で使用した場合のタイミングを示しています。

    スループットが1サイクル/入力ではない場合のシングルサイクルタイミングループ内のタイミング図

    以下の図は、このExpress VIをスループットが1サイクル/入力ではないシングルサイクルタイミングループの内部で使用した場合のタイミングを示しています。

    FFTの計算中にデータの損失を防ぐ

    このExpress VIは、シングルサイクルタイミングループ内でFFTの計算中に値の受け渡しを行いません。この間、システムや他のノードからこのExpress VIにデータが送信されると、データは破棄されます。これは、このExpress VIが複雑で不均一な方法でデータを受信すると起こります。

    データが失われないようにするには、このExpress VIが再度値を受け入れるまでデータを保持 するFIFOを作成し ます。作成するFIFOが、FFTの計算を行っている間に収集されるすべてのデータポイントを保持するのに十分な大きさにしてください。作成する必要のあるFIFOのサイズを概算するには、このExpress VIのレイテンシを平均のシステムスループットで除算します。

    適切な入力/出力指標パターンを選択する (シングルチャンネル、複数サンプル入力形式)

    シングルチャンネル、複数サンプル入力形式を使用するときは、適切な入力/出力指標パターンを選択する必要があります。FFT Express VIのデータソースがFPGA I/Oノードの場合は、連続入力指標/M間隔出力指標を選択します。FFTの結果に対して逆FFTを実行するときなどのように、データソースが別のFFT Express VIの出力になる場合は、2番目のFFT Express VIの入力パターンが、最初のFFT Express VIの出力パターンと同じであることを確認してください。そうしないと、FFTの結果が不正確になってしまいます。

    連続入力指標/M間隔出力指標 入力/出力指標パターン (M=1024とする) を使用した、入力ごとに4サンプルを持つ4096ポイントのFFTの場合、 入力サンプルの指標は、最初の有効入力サイクルでは0、1、2、3となり、2番目のサイクルでは4、5、6、7、という具合になります。出力サンプルの指標は、最初の有効出力サイクルでは0、1024、2048、3072となり、2番目のサイクルでは、1、1025、2049、3073という具合になります。以下の図は、そのような連続入力指標/M間隔出力指標 入力/出力指標パターンを視覚表示したものです。

    反対に、M間隔出力指標/連続入力指標 入力/出力指標パターンを選択すると、出力は連続パターンになります。さきほどの例と比較すると、入力と出力のパターンが逆になります。以下の図は、そのようなM間隔出力指標/連続入力指標 入力/出力指標パターンを視覚表示したものです。

    実装目標に関する注意事項 (シングルチャンネル、複数サンプル入力形式)

    理論的には、固定小数点入力データ上でN ポイントのFFTを実行すると、入力データと比べてワード長がlog2(N)+1ビット多い出力データが生成されます。構成ダイアログボックスの実装目標セクションで確度を選択すると、FFT Express VIはゼロを付加することによって入力データのワード長を出力ワード長に延長するため、すべての内部複素数の積の演算でこのワード長が使用されます。反対に、リソース使用量を使用した場合、FFT Express VIは入力から出力までワード長を段階を踏んで増やします。このため、複素乗算器のビット幅も段階単位で増加します。

    リソース使用量を選択した場合、確度を選択した場合よりも複素乗算器で保持されるビット数が少なくなるため、出力データでlog2(N)+1ビットが増えても、確度を選択したときと比べて確度が劣ることになります。リソース使用量を選択すると、複素乗算器と内部レジスタのビット幅が、確度を選択したときに生じるビット幅よりも少なくなります。.リソース使用量を選択すると、複素乗算器で短いワード長が使用されるため、コンパイル時のFPGAクロックレートを高くすることができる可能性があります。

    サンプルプログラム

    LabVIEW FPGAモジュールに含まれている以下のサンプルファイルを参照してください。

    • labview\examples\CompactRIO\FPGA Fundamentals\FPGA Math and Analysis\FFT\FFT.lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\FFT (1 Channel, N Samples)\FFT (1 Channel, N Samples).lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\Cross-correlation Using FFT (1 Channel, N Samples)\Cross-correlation Using FFT (1 Channel, N Samples).lvproj
    • labview\examples\R Series\FPGA Fundamentals\FPGA Math and Analysis\FFT\FFT.lvproj