- ベストアンサー
DAQの出力ファイルをコピーして、別のファイルを作成し、リアルタイム解析は可能か
- DAQの出力ファイルをコピーして、別のファイルを作成し、そのファイルを元にリアルタイムに解析をしたいのですが、これって可能でしょうか?
- DAQの出力ファイルをコピーして、別のファイルを作成し、そのファイルを元に解析する方法を考えていますが、C言語の知識が不足しているため、どのように実現できるかわかりません。
- ファイルをコピーし、別のファイルとして保存し、そのファイルを元に解析することでDAQの出力ファイルを排他制御したいですが、実現可能なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
前の質問の時から気になっていたのですが、 利用する機器ってPCと一緒に写ってますけど。そのPCに表示されているのは機器に対応しているソフトでは? であれば、リアルタイム表示しているように見えるのですが、それでは満足できないのでしょうか? >という結論に至りました。 はい。 前回も他の回答者さんと書いていますが、これは言語に関係ない問題です。 「PC」ではなく、「人」で考えてみてください。 隣に座っている人が、黒板の内容をノートに書き写しているのを、横から横からのぞき見ながら書き写すことと一緒です。 書いている途中にノートが次のページにめくられたら? とか色々と問題は考えられますよね。それと一緒です。
その他の回答 (1)
- hidebun
- ベストアンサー率50% (92/181)
ファイルをコピーするのは、非常に時間のかかる処理です。 しかも、データのサンプリング周波数が高く、チャンネル数もそこそこある場合、データファイルはどんどん膨れ上がっていくと思います。 ファイルのコピーが終わったときには、データは何十秒も先まで収録進んでいて、リアルタイム性は保たれないでしょう。 C言語はほとんどわからないということですが、基本的なファイルアクセスについて(MATLAB上で)、わかりますか? これがわからないと解決は難しいと思いますが、 ・収録中のファイルを読み込みオープンできるかどうか ・fseek, ftell,freadを使い、収録中のデータを読み込めるかどうか ・読み込んだデータに(書き込み途中の)不正な状態のものがあれば排除できるか(データが固定長であれば、読み込めたデータサイズで確認するのも有効) などが解決の糸口になると思います。 リアルタイムの解析結果を何らかの形で被験者にフィードバックしたり、状態をモニタをしたいというのがやりたいことだと思うのですが、MATLABは低速なので、あまり複雑な処理を組むとリアルタイム解析も間に合わず、なかなか難しいですよ。 MATLABで収録の完了したデータファイルをオフラインでfopen+freadを使って、擬似的にオンラインのように動作するプログラムを組んでみたらどうでしょうか。 それがオンラインで出せる最高の速度です。 組んでみて、満足のいく速度が出なければ、そもそもリアルタイムは無理です。 また、それで、ファイルの扱いに関する技術的な習得はかなり進むはずです。 おまけに解析側のプログラムも作成できます。 あ、ファイルがテキスト形式なら、freadではなく、fscanfやfgetsかな。 #Cと同様の入出力I/FをMATLABはサポートしています。 では。
お礼
ありがとうございます。ご指摘のとおりMatlabでやってみました。オフラインで、0.01秒ぐらいでアウトプットを出してくれたので、まずまずかなと思ってました。結局、排他制御が出来ないため、オンラインでは無理でしたが(残念)。今回、いろいろ教えて頂いたおかげで、少しデータ獲得に関して、理解が進みました。直ぐに使えるものではないですが、何処かで役にたつんだろうと思っています。ありがとうございます。
お礼
ありがとうございます。簡単な処理(スペクトラムとか)をしたいので、擬似的なリアルタイム解析をしてみようと思ったのです。トレースだけでは、分かりにくので。 そうですよね、、、そこら辺に私の知らないマジックがあるかもしれないと思ったのですが。今回はPCのデータ獲得に関して、少し理解が進んだように思います。ありがとうございました。