08-15-2012 04:40 AM
いつもお世話になっております.
お伺いしたいのですが,DAQアシスタントで計測したデータを,周波数解析を行い,
その中で一番スペクトルの強度が大きい周波数のみを使用したいのですが,
計測しながら,通過させる周波数を変化させることの出来るフィルタや,方法はあるでしょうか.
ご教授の程,よろしくお願いします。
08-17-2012 01:50 AM
choroQ 様
平素よりNI製品をご利用頂きまして誠に有難うございます。
特定の周波数成分だけ取り出すということですので、バンドパスフィルタを使用することになるかと思います。
フィルタ関数は、関数パレットの信号処理<<フィルタに多数ございますので、ご希望のものを使用して頂けたらと思います。
個々のデジタルフィルタの特性などに関しては、市販のテキストブックなどをご参照願います。
実際に通過させる周波数帯は、フィルタ関数の低域カットオフ周波数と広域カットオフ周波数で設定します。
添付のVIではエクスプレスVIでフィルタを行なっております。
信号シミュレーションで100Hz(振幅1)、200Hz(振幅2)、300Hz(振幅3)の信号を生成し、それらを足しあわせております。
フィルタはバンドパス周波数を中心にバンド幅分の信号を通過させます。
VIの実行中にバンドパス周波数を変えて頂くと、個々の周波数成分を取り出すことが出来ます。
ご希望の動作のように、プログラム的に最大の信号成分を取り出す場合は、このバンドパス周波数をFFTなどからプログラム的に指定して頂く必要がございます。
宜しくお願いします。
日本ナショナルインスツルメンツ 技術部 三浦
08-19-2012 02:02 AM
日本ナショナルインスツルメンツ 三浦 様
ご回答ありがとうございます.
教えて頂いたバンドパスフィルタで出来ることがわかりました.
ありがとうございます.
ひとつ質問なんですが,添付して頂いたVIでFFT後の結果を,
フィルタのカットオフ周波数にフィードバックすることは出来るのでしょうか.
すみませんが,よろしくお願いいたします.
08-19-2012 08:09 PM
choroQ 様
「FFTパワースペクトルとPSD」や「スペクトル計測」の関数からは、周波数応答が出力されております。
この出力のデータから、例えば最大値の周波数を取り出して、
前記サンプルVIで「フィルタ」関数の入力の「バンドパス周波数」に替えて、
この周波数を使用して頂けたら実現できるかと思います。
日本ナショナルインスツルメンツ 技術部 三浦
08-24-2012 03:42 AM
日本ナショナルインスツルメンツ 三浦様
ご回答ありがとうございます.
教えて頂いた方法でVIを作成することは出来たのですが,
実行した際に,
エラーコード-20023 考えられる理由:
Analysis: 0 < f_low ≦ f_high ≦ fs/2 の条件を満たす必要があります。
と表示されます.これはどのような問題なのか教えていただけないでしょうか.
よろしくお願いします.
08-28-2012 04:07 AM
choroQ 様
ます、デジタルで集録したデータの周波数は、
サンプリング定理により、0<=f<=f_s/2だけとることができます。
f_sはサンプリングレートです。
このことから、カットオフ周波数もこの範囲にある必要がございます。
f_lowは、バンドパスフィルタを使用する際の低域カットオフ周波数で、
f_highは、高域カットオフ周波数です。
以前のサンプルでは、バンドパスの中央周波数(f_c)とバンド幅(f_w)から
f_low = f_c - f_w/2
f_high = f_c + f_w/2
となるようブロックダイアグラムで計算しております。
日本ナショナルインスツルメンツ 技術部 三浦
08-30-2012 11:09 PM
日本ナショナルインスツルメンツ 三浦様
ご回答ありがとうございます.
エラーの内容がよくわかりました.
これで問題を解決することが出来ました.
ありがとうございます.