NI製品ディスカッション

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

波形データ

波形生成vi を使用して、2つの正弦波を作製し、これをDAQボードから出力しております。
出力した信号によってシステムから何らかの応答がありますので、この応答信号を
収録する という実験をしております。
ここでは、2つの波形データを”配列連結追加”によって2D波形データにしておき、
これをアナログ出力しております。
 
一旦、2D波形データにしてしまうと、後からそれらを分割する事は出来ないのでしょうか?
アナログ出力データ と それに対する応答 をファイルに保存したいのですが、
2D波形データのままでは、保存出来ず困っております。
 
案1; 2D波形データを1D波形データに分割して、それらを保存する
案2; 2D波形データのまま保存する
 
どちらでも構いませんので、
ご存知の方がいらっしゃいましたら、教えて頂きたいと思っております。宜しくお願い致します。
0 件の賞賛
メッセージ1/5
4,741件の閲覧回数

お返事が遅くなってしまい大変申しわけございません。
ご質問へ下記の通り回答いたします。

波形データをファイルに書き込むにはいくつかの方法が考えられます。
案1:2D波形を1D波形に分割するには「指標配列」関数を使用して各波形を取り出します。
1D波形を取り出した後それぞれの波形を「計測ファイルへ書き込み」「バイナリファイルへ書き込み」関数でファイルへ書き込みます。
上記のファイル書き込み関数以外にも「スプレッドシートファイルへ書き込み」を使用することも出来ますが、
この関数を使用した場合、波形の時間軸情報が失われてしまいますので、別途書き込む必要があります。

案2:2D波形のままファイルへ書き込むには「計測ファイルへ書き込み」関数を使います。
「バイナリファイルへ書き込み」も使用できますが、データがバイナリ表記になってしまうため、
データを書き込んだファイルをLV以外のプログラムで直接開いたときにデータ内容を把握することが出来ません。

日本NI
大澤

メッセージ2/5
4,629件の閲覧回数
大澤さま ありがとうございました。良く分りました。ところで、スプレッドシートに書き込むと 時間軸データが失われるので別途書き込む必要があるとの事ですが、 そのやり方の1例は・・・ 1.波形データを波形要素に分割して1D(または2D)データ配列を取得しておいて、・・・ 2.for loop を用いて、繰り返し回数Nに「配列サイズ」で取得した要素数を   入力し・・・ 3.先ほどの波形要素のうち⊿tを使って(⊿t)x(i)を   指標付けして、時間データの1D配列を作る 4.最後に、この時間データ1D配列を、先ほど分割しておいたデータ配列と連結   させる という手順でしょうか。もっと効率的な方法がありましたら、ぜひご連絡下さい。
0 件の賞賛
メッセージ3/5
4,520件の閲覧回数
日本ナショナルインスツルメンツ技術部 神谷です。
 
「スプレッドシートへ書き込み」関数を用いて時間データも書き込むには、kojiando様のご指摘の通り波形データからdtを取り出し、べつに時間データの配列を生成する必要があります。これが一番効率のよい方法だと思います。添付のブロックダイアグラムもご参照下さい。
 
0 件の賞賛
メッセージ4/5
4,480件の閲覧回数
神谷さま

そうですね。考えて見たら、dtを利用して時間軸1D配列を作ることくらい、
小さなforループ1個でできますからね。
納得しました!  ご丁寧な対応ありがとうございました。
0 件の賞賛
メッセージ5/5
4,472件の閲覧回数