08-28-2019 01:06 AM
大学でLabVIEWを使い初めて1ヶ月の初心者です。
将来的には、DAQボードから入力した信号をフーリエ変換してファイルにデータ出力したいと考えています。
まず練習として正弦波をフーリエ変換してみたのですが、
出力では、正弦波の周波数ではないところにスペクトルがでていたり、振幅も入力した正弦波の振幅ではなかったり、何を表しているのかわかりません。
そこで質問なのですが、
・FFT VIの出力はR+jXではないのでしょうか?添付ファイルの出力のグラフでは横軸、縦軸は何を示しているのでしょうか?
・フーリエ変換されたF(x)を実数部分、虚数部分もしくは振幅、位相で分けて出力できる方法はありませんでしょうか?
どうかご教授お願いいたします。
解決済! 解決策の投稿を見る。
08-28-2019 02:40 PM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
FFT VIの出力から目的のデータを得るには、関数パレット>>数値>>複素数サブパレットにある複素数を極座標に変換関数を用いる必要がございます。
これらの処理に関してのサンプルと説明は下記のサンプルプログラムページをご参照ください。Youtubeの動画にて詳しく説明されています。
LabVIEWにはそれ以外にもFFT処理がされているVIがいくつかあり、それらを比較できるサンプルが付属しています。
ヘルプメニュー>>サンプルを検索>>参照タブ>>解析、信号処理および数学>>FFTと周波数解析フォルダにあるFFTとパワースペクトルの単位をダブルクリックするとサンプルが開きます。このサンプルVIを実行してスペクトル単位表にある各行をクリックすると処理に使用するVIが切り替わり比較できるようになっています。
フーリエ変換や周波数解析に関しては多くのお問い合わせがあり、下記にFAQがまとめられています。こちらも合わせて参照いただけると幸いです。
08-30-2019 01:33 AM
ご返答ありがとうございます。
大変参考になり、フーリエ変換後のグラフにすることができました。
また、別の関数のFFTスペクトル(実-虚) VIを用いて同じように正弦波をフーリエ変換してみたのですが、
結果として周波数部分に出るスペクトルの振幅が負に落ちていました。
振幅に設定した数値だけ正に伸びると思っていたのですが、これはなぜなのでしょうか?
お手数おかけいたしますが、ご教授いただければ幸いです。
08-30-2019 02:56 AM
FFTスペクトル(実-虚) VIを使用するのでしたら、直交座標から極座標に変換すれば、想定した結果となるかと思います。
09-02-2019 02:48 AM
上野様
大変参考になりました。
ありがとうございました。