07-03-2019 07:18 PM
DAQ NI9234 を使った音声スペクトラム解析をソフトをlabviewで作成しています。
DAQに入力したデータをWindows10にサウンド入力として渡す方法はないでしょうか?
PCから音を出したいのです。
以上 よろしくお願いします
07-04-2019 06:06 PM
自己レスです。
ただ、ぶつぶつ途切れるのと以下のメッセージとともに
停止します。解決方法をご教示ください。
エラーコード-200279 が****.viで発生
考えられる理由:
アプリケーションがハードウェア集録に追いついていません。
利用できるすべてのサンプルを読み取る代わりに、バッファサイズを増やす、データをより頻繁に読み取る、または固定のサンプル数を指定して読み取るのいずれかを行うと、問題が解決される可能性があります。
プロパティ: RelativeTo
相当する値: 現在の読み取り位置
プロパティ: Offset
相当する値: 0
タスク名: _unnamedTask<5>
07-05-2019 02:09 AM
平素よりNI製品をご愛顧頂きありがとうございます。
日本ナショナルインスツルメンツ技術部の上野です。
DAQmx関数によるNI 9234からのデータ入力と「波形を再生」Express VIを同じループ内で処理していませんか?
このExpress VIは、ループ内に入れて他のハードウェア処理と同時に使用するには適さないVIです。理由は、「波形を再生」Express VIが実行される度にサウンド出力構成VI、サウンド出力待機VI、およびサウンド出力をクリアVIが実行されて、DAQmx読み取りタイミングの遅延となるからです。
サウンドVIのサンプルに同期サウンド入出力というものがあり、入力部分をDAQmxと考えれば、同じループで処理する際に最適な手法となっています。
このサンプルは、ヘルプメニュー >> サンプルを検索 >> 参照タブ >> ハードウェア入力と出力 >> サウンド の中に含まれていますので、参照いただけると幸いです。
07-09-2019 01:43 AM
上野様 ご回答ありがとうございます。
ご迷惑をおかけします。お察しの通りでした。
以下のように書き換えると幾分良くなりましたが
エラーコード-200279が**.viで発生が同様に発生します。
考えられる理由:
アプリケーションがハードウェア集録に追いついていません。
利用できるすべてのサンプルを読み取る代わりに、バッファサイズを増やす、データをより頻繁に読み取る、または固定のサンプル数を指定して読み取るのいずれかを行うと、問題が解決される可能性があります。
07-09-2019 04:20 AM
ご返答ありがとうございます。それでもエラー -200279が発生するということは、サンプルレートが高いのではないかと思います。
エラーメッセージにあるようにバッファサイズを増やすことで、ある程度エラーを回避できるのではないかと思います。バッファサイズに関しては、下記のページに記載されているとおりに自動割り当てされますが、添付ファイルのように手動設定することも可能です。
添付ファイルのように手動設定することで、自動設定の場合よりエラーが発生しにくくなると思います。
この方法でもエラーが発生する場合は、下記のページで紹介されている生産者・消費者デザインパターンを利用して、アナログ入力とサウンド出力を別々のループに分けて処理する必要があります。(下記の例では、アナログ入力と保存を分離しています。今回の場合は保存部分をサウンド出力に変更することなります。)
07-10-2019 04:37 PM
ご迷惑をおかけします。
ご対応ありがとうございます。
添付頂いたviを改造することでかなり要望に近い状態になりましたが
DAQからの信号をFFT解析してlimitテストでGO/NOGO判定しているのですが
realtime性が著しく低下してしまいました。(動作時間が長くなればなるほど)
すみませんそのあたり如何でしょうか?
07-10-2019 08:33 PM
1つのWhileループ内で、データ収集とサウンド出力、FFT解析、リミットテストを含めているということは、すべてを処理しないと次のループに回りません。よって、演算処理に時間がかかっており、バッファサイズを増やしても結果的にエラー -20079が発生することになるのではないかと思います。
キュー関数を用いて処理を分散する生産者・消費者デザインパターンを用いることで収集、解析、サウンド出力を並列処理させれば改善する可能性が高くなるでしょう。