NI製品ディスカッション

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

オシロスコープの波形から時間変化する位相差、最大値等を取り出す方法について

labview2016を使用しています。

Tek社のオシロスコープを用いて、USB接続により波形を取り込んでいます。

取り込みには図のようにして成功はしています。

ある一定時間内の波形の最大値と二つの波形の位相差のデータを取り出し、最大値と位相差のグラフを作りたいのですが、

どのようにしたらできるのでしょうか。教えていただけるとありがたいです。

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

こんにちは

 

データの最大値を検出する方法として、取得したデータについて、「波形要素取得」関数で「Y」の値を配列として取り出し、「配列最大&最小」関数で最大の値を検出する方法はいかがでしょうか。

複数チャンネルを測定なさっているようなので、集録なさっているデータの次元サイズによっては、そのままでは「波形要素取得」関数にデータを入力できないかもしれません。その場合は、添付画像のように「指標配列」関数や「For/Whileループ」を使用し、次元を下げる必要があります。

 

位相差のデータを取り出し、という部分ですが、上記関数で得られる「dt」の値では不足でしょうか。
dt」は横軸のデータをtとした場合の、データポイント間の時間間隔を返します。
以下のリンクもあわせてご参照ください。
波形要素取得(アナログ波形) 関数 - LabVIEW 2016ヘルプ - National Instruments:
https://www.ni.com/docs/ja-JP/bundle/labview-api-ref/page/functions/get-waveform-components.html

メッセージ2/5
5,698件の閲覧回数

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

要素の取り出し方について理解することができました。

しかし添付図のプログラムのように要素dtを追加して、エクセルファイルに書き込みを行った際に振幅のデータは入るのですが、

時間のデータがすべて0に表示されてしまいます。どこかに原因があるのでしょうか。

ご意見いただけるとありがたいです。

 

----------------------------------------------------------------------

Labview開発システム

Tek社オシロスコープ:USB接続

 

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

波形データを保存する際は、時間データの書き込みを行う際は、波形データは要素ごとに取り出さず、波形データのままプロットを行ったほうがよいです。分解すると、1点目の時間データ:t0、2点目:t0+dt, 3点目t0 + 2×dt,,,,,,という風に時間データを計算しなければなりません。 以下のviをお試しいただくといかがでしょうか。 波形をファイルに書き込む VI - LabVIEW 2015ヘルプ - National Instruments: https://www.ni.com/docs/ja-JP/bundle/labview-api-ref/page/vi-lib/waveform/wdtfileio-llb/write-wavefo...

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

 私が考案した, Synchro PRIMO 法というものがありますので使ってみてください。

2つの信号の周波数・振幅がが既知なら「ある外積演算」で簡単に求められます。

既知でない場合は、1)それぞれの周波数を計算、2)直交化、3)ベクトル演算、 という手順でもとめます。

 

単一成分でノイズが少ない場合(理想条件)は、5sampleで計算できます。

http://blog.goo.ne.jp/je-suis-sumichan

実装例 https://youtu.be/yR3R7KRuTn4

 

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