NI製品ディスカッション

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

FFTのオーバーラップについて

お世話になっております。
 
FFT分析を行う際、グラフに表示されるスペクトル図(画面)をオーバーラップさせる方法はありますか?
サンプリングは100Hzまで。サンプル個数は、1024個または、2048個で行なっております。
 
使用機器はBNC-2110
LabViewバージョンは8.20です。
 
よろしくお願い致します。
0 件の賞賛
メッセージ1/12
8,366件の閲覧回数
日本ナショナルインスツルメンツ技術部の櫻田と申します。
お世話になっております。


スペクトルのオーバーラップ表示との事ですが、1個のグラフへ複数信号のFFT分析結果を表示するということでしょうか。
もしそうであれば、グラフへのマルチプロットによって実現可能です。
FFT分析に使用している関数によって、複数のプロットデータを結合する方法が若干作業が異なります。

FFT分析に「スペクトル計測」ExpressVI等をご使用で、データ出力のタイプがダイナミックデータタイプの場合には、「信号を結合」ノードによって、複数のFFT解析データを結合させてから、グラフへ接続して下さい。
同様に、「FFTパワースペクトル」等をご使用で、データ出力のタイプが配列あるいは波形データタイプの場合には、「配列連結追加」ノードをご使用下さい。


私のオーバーラップに対する認識違いがございましたら
ご指摘の上、より詳細なご説明をお願い致します。


以上、よろしくお願い申し上げます。
0 件の賞賛
メッセージ2/12
8,330件の閲覧回数
櫻田様
 
お世話になっております。
ご返信ありがとうございました。
FFTオーバーラップについてですが私の説明不足でした。
申し訳ございませんでした。
 
サンプリング周波数256Hz サンプル個数1024個のとき、
一つの波形を取り込むのには4秒かかると思います。
連続でサンプリングしておりますので、グラフは4秒間隔で変化していきます。
逆を言ってしまいますと4秒経過しないと変化しません。
私が行ないたいのは、スペクトルが表示されてから次に表示されるまでの時間も
絶えずスペクトルが変化しているグラフを作成したいのです。
前回のスペクトルと今回表示されるスペクトルを重ねて(正確には、重ねてという日本語はおかしいかもしれませんが・・)
スペクトルの変化を動的に確認したいため、オーバーラップさせたいのです。
 
サンプリングレートをあげれば動的な変化は可能なのですが
そうしますと自分の欲している周波数が得られないので困っています。
FFTの関数に、オーバーラップについての項目があれば教えていただきたいのですが・・
 
よろしくお願い致します。
 
 
0 件の賞賛
メッセージ3/12
8,321件の閲覧回数
magu 様

お世話になっております。
日本ナショナルインスツルメンツ技術部の櫻田です。

ご所望のオーバーラップ表示とは、若干異なるかもしれませんが
徐々にFFT波形が変化する方法を提案させて頂きます。

FFT分析に使用するサンプル個数を複数回に分けて配列に格納する方法を使用します。
添付のサンプルプログラムをご参照下さい。

1回のループでの集録サンプル数を1024の約数で設定し、それを配列に格納し、FFT解析には1024個の要素を持った配列データで行います。
この方法により、表示のアップデートレートを早くしつつ、ご所望のFFT解析に使用するサンプル数とサンプリングレートを確保することが可能です。

固定要素数の配列データを更新のために、「配列から削除」関数で古いデータを配列から削除し、「配列連結追加」関数で新しいデータを追加しております。「配列連結追加」関数は右クリックのショートカットメニューから「入力を連結」を選択してください。


以上、よろしくお願い申し上げます。
メッセージ4/12
8,309件の閲覧回数
04-03-2007 05:47 AMのオーバーラップに関する技術部櫻田様のコメントは非常に私の仕事に参考になります
そこにあるサンプルviを用いて自分のプログラムに組み込もうと思っていますが、
残念ながら当方のLabviewはver. 7.1を使用しているため、参照することができません
お手数ですが、ver 7.1対応のサンプルしてもらえないでしょうか
 
また当方はLabviewを用いてほぼリアルタイムでNI製USB DAQからのデータをFFTにかけたいと思っております
この方法に関するより良いサンプルまたは情報があればお教えいただけないでしょうか
0 件の賞賛
メッセージ5/12
7,961件の閲覧回数
golgo 様


日本ナショナルインスツルメンツ技術部の櫻田です。
平素より弊社製品をご使用いただき誠に有難うございます。

LabVIEW7.1用に保存しなおしたサンプルを添付いたします。

リアルタイムでFFT解析を行いたい場合には、LabVIEWには1サンプルずつ集録して過去に集録したデータと合わせて解析を行うことができる「ポイントバイポイント」解析という関数群があります。
LabVIEW7.1ですと、全関数>>解析>>ポイントバイポイントにその関数群が用意されております。

「パワースペクトルPtByPt」等を使用しますと、現在集録した1サンプルと過去に集録したサンプルを合わせて、指定したサンプル数で解析を行います。ポイントバイポイント関数は過去のデータを保持しておく機能が含まれているため、この様な動作が可能になります。詳細につきましては、ヘルプなどをご参照頂ければと思います。



よろしくお願い申し上げます。
0 件の賞賛
メッセージ6/12
7,945件の閲覧回数

櫻田様

返信およびサンプルプログラムの添付、大変ありがとうございました

サンプルを参考に作ってみたところ、ほぼリアルタイムのFFT処理スピードが劇的に速くなりました

ありがとうございました

0 件の賞賛
メッセージ7/12
7,925件の閲覧回数

お世話になります。

sample for FFT.viを見させていただき、非常に参考になりました。

サンプルコードを参考に、1ch使用のものを複数chにしようと考えたのですが、

うまく動作していません。

よろしければ、1chだけでなく複数chで実施する場合のviを教えていただけませんでしょうか?

よろしくお願いいたします。

 

 

 

 

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


golgo 様

 

平素よりNI製品をご利用頂きまして誠にありがとうございます。

日本ナショナルインスツルメンツ技術部の伊藤と申します。


弊社櫻田の用意したサンプルプログラム「sample for FFT LV71.vi」を
複数チャンネルの集録用に編集しなおしたものを添付致します。
こちらをご参考にして頂けますと幸いです。

今後とも何卒宜しくお願い申し上げます。

 

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

Takesaka 様

 

平素よりNI製品をご利用頂きまして誠にありがとうございます。

日本ナショナルインスツルメンツ技術部の伊藤と申します。


弊社櫻田の用意したサンプルプログラム「sample for FFT LV71.vi」を
複数チャンネルの集録用に編集しなおしたものを添付致します。
こちらをご参考にして頂けますと幸いです。

今後とも何卒宜しくお願い申し上げます。

 

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