NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

FFT VIの出力について

解決済み
解決策を見る

大学でLabVIEWを使い初めて1ヶ月の初心者です。

将来的には、DAQボードから入力した信号をフーリエ変換してファイルにデータ出力したいと考えています。

まず練習として正弦波をフーリエ変換してみたのですが、

出力では、正弦波の周波数ではないところにスペクトルがでていたり、振幅も入力した正弦波の振幅ではなかったり、何を表しているのかわかりません。

そこで質問なのですが、

・FFT VIの出力はR+jXではないのでしょうか?添付ファイルの出力のグラフでは横軸、縦軸は何を示しているのでしょうか?

・フーリエ変換されたF(x)を実数部分、虚数部分もしくは振幅、位相で分けて出力できる方法はありませんでしょうか?

どうかご教授お願いいたします。FFTtest1.jpg

0 件の賞賛
メッセージ1/5
5,748件の閲覧回数

平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。

 

FFT VIの出力から目的のデータを得るには、関数パレット>>数値>>複素数サブパレットにある複素数を極座標に変換関数を用いる必要がございます。

 

これらの処理に関してのサンプルと説明は下記のサンプルプログラムページをご参照ください。Youtubeの動画にて詳しく説明されています。

 

 

LabVIEWにはそれ以外にもFFT処理がされているVIがいくつかあり、それらを比較できるサンプルが付属しています。

ヘルプメニュー>>サンプルを検索>>参照タブ>>解析、信号処理および数学>>FFTと周波数解析フォルダにあるFFTとパワースペクトルの単位をダブルクリックするとサンプルが開きます。このサンプルVIを実行してスペクトル単位表にある各行をクリックすると処理に使用するVIが切り替わり比較できるようになっています。

 

フーリエ変換や周波数解析に関しては多くのお問い合わせがあり、下記にFAQがまとめられています。こちらも合わせて参照いただけると幸いです。

 

0 件の賞賛
メッセージ2/5
5,674件の閲覧回数

ご返答ありがとうございます。

大変参考になり、フーリエ変換後のグラフにすることができました。

 

また、別の関数のFFTスペクトル(実-虚) VIを用いて同じように正弦波をフーリエ変換してみたのですが、

結果として周波数部分に出るスペクトルの振幅が負に落ちていました。

振幅に設定した数値だけ正に伸びると思っていたのですが、これはなぜなのでしょうか?

お手数おかけいたしますが、ご教授いただければ幸いです。

FFTspectrumtest.jpg

0 件の賞賛
メッセージ3/5
5,654件の閲覧回数
解決策
受理者 nakariko

FFTスペクトル(実-虚) VIを使用するのでしたら、直交座標から極座標に変換すれば、想定した結果となるかと思います。

0 件の賞賛
メッセージ4/5
5,641件の閲覧回数

上野様

 

大変参考になりました。

ありがとうございました。

0 件の賞賛
メッセージ5/5
5,616件の閲覧回数