08-30-2011 05:13 AM
shinichiro 様
ご連絡頂きましてありがとうございます。
While ループの更新時間についてご教示頂きましてありがとうございます。
> 30,000Hzにすると、実際には30030,..Hzとなるので、一秒間に更新される数は30030/3000=10.01となり、少しずつ 4000Hzのデバイスとwhile を 回るタイミングが異なってくると思うのですが問題ないのでしょうか?
確かに仰る通りです。この場合の回避策と致しまして待機関数にて最適な待機時間を指定することが考えられます。例えば、一回のWhile ループの速度はそれぞれのデバイスにて、99.90msecと100msecになります。
そこで、While ループの中に102,103,..105msecの待機関数を配置して頂くと長期間中に収録されても問題にならないと思います。
お手数ですが、デジタル変検出について、折り返しご連絡致します。
以上、宜しくお願い致します。
08-30-2011 09:11 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。添付ファイルのようにwhileに待機関数を入れても、どちらも待機するので
Excelのようにずれていきます。意図をくみちがえていたら申し訳ありません。
40,000Hzか25,000Hzで計測すれば解決するのですが、25,000Hzでは小さくて、40,000Hzでは32chあるのでマルチチャンネルの
計測できるサンプルの限界の1Mhzを超えてしまします。
外部クロック等を用いて30,000Hzにすることはできますでしょうか?
また31.25kHzにすればボードのクロックの20MHzを割り切ることができ、31.25kHz×32ch=1MHzとなり、PXI6254,6259の限界の1MHzちょうどに
なりますが、限界のサンプリングレートでも問題はおきないでしょうか?
ご教授お願いします。
08-31-2011 03:51 AM - 編集済み 08-31-2011 03:54 AM
shinichiro 様
ご連絡頂きましてありがとうございます。
添付ファイルをお送りいただきましてありがとうございます。
今日ご質問頂きました点について、ご連絡を申し上げます。
まず、Excelデータでは、4KHzと30KHzの場合の時間がありますが、こちらはWhile ループ一回のミリ秒時間でしょうか。また、こちらはデバイス単独の場合、算出されたWhile ループの処理時間でしょうか。ご存知の通り、今回の待機関数は100msecより前にWhile ループの処理が終了される場合のみに待機します。処理時間が100msecより多くなると待機関数は効きません。
なお、400サンプルを4000Hzで読み込まれる際、必要とされる最小時間は400/4000=0.1[100ms]となります。しかし、Whileループ中に読み込まれたデータがさらに処理されるとWhile ループの処理時間が長くなります。したがって、今回の場合は、100msecの待機は無効果的だと思われます。
さらに、各デバイスにてタスク開始位置が異なっていおりますので、こちらは取得されたデータに発生する時間ずれの原因になっていることが想定されます。
また、30,000Hzの外部クロックをご利用されたいプログラムの構成は添付致しましたサンプルよりご参照ください。
>31.25kHzにすればボードのクロックの20MHzを割り切ることができ、31.25kHz×32ch=1MHzとなり、PXI6254,6259の限 界の1MHzちょうどになりますが、限界のサンプリングレートでも問題はおきないでしょうか?
仰る通りです。限界のサンプリングレートをご利用頂いても結構です。
以上、宜しくお願い致します。
09-05-2011 06:58 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。とても参考になりました。
あと一点だけ質問お願いします。
Digital inputにおいて同じデバイスで異なるsampling rateでデータを計測することはできますでしょうか?
例えば、デバイスの異なるチャンネルで4,000Hzと31,250Hzでデータを計測したり、またできないのであれば、
31250Hzのデータを4,000Hzにすることはできるでしょうか?
よろしくお願いします。
09-07-2011 04:01 AM
shinichiro 様
ご連絡頂きましてありがとうございます。
ご質問について、できるかどうかを含めて現在、お調べ中ですが、
追ってご連絡致します。
09-09-2011 02:11 AM - 編集済み 09-09-2011 02:16 AM
shinichiro 様
日本ナショナルインスツルメンツ技術部のワカスと申します。
本件に関しまして現状を報告致します。
ご質問頂きました点についてですが、こちらではPCI-6251のデバイスで
異なるサンプリングレートでDIを収録することができませんでした。
回避策として2チャンネルを同じサンプリングレート(高いレート)で収録し、後処理でチャンネルの収録ダータを間引いて頂くこと
が考えられます。
例えば、チャンネル1,2 同時に 32[kHz] で集録し、後処理でチャンネル 2 の集録サンプルを 1/8 に間引けば 4[kHz] で集録したことと等しくなります。
こちらの処理のため、下記のデシメート1D配列関数ご利用頂ければと思います。
プログラミング » 配列 » デシメート1D配列
簡単なサンプルプログラムを添付致しますので、ご参考頂ければと思います。
09-11-2011 04:33 AM
日本ナショナルインスツルメンツ技術部 ワカス様
回答ありがとうございます。とても参考になりました。
前に質問したデジタル変化検出の件なのですが、以下のURLもデバイスは違いますが同じ症状がでています。
何か新たに分かったことはありますでしょうか?
09-14-2011 02:48 AM
shinichiro 様
日本ナショナルインスツルメンツ技術部のワカスと申します。
ご連絡頂きましてありがとうございます。
返信が遅くなり、申し訳ございません。
ディジタルラインの変化検出についてですが、イベントストラクチャを利用した
ディジタル変化検出方法があります。
こちらのサンプルプログラムを添付致しますので、お試して頂けますでしょうか。
09-15-2011 10:44 AM
日本ナショナルインスツルメンツ技術部 ワカス様
添付でいただいたviでも同様に4回変化してからindicatorのledが光ります。
PXI1045のRX,TXが以下のような反応をするのですが、関係ありますでしょうか?
送られてくるdigital data 0 1 0 1 0 1 0 1 0 1
RX,TX off on------------>点滅 off on-------------->点滅 off on
indicator(LED) 点滅 点滅
09-16-2011 01:12 AM
日本ナショナルインスツルメンツ技術部 ワカス様
以下のURLが今回の問題の解決策だと思うのですが、このURLの関連リンク先の画像がないのですが、
参考となるviはないでしょうか?
よろしくお願いします。
http://digital.ni.com/public.nsf/allkb/BFF11E6A8F5A825D862576E2001CC0EA
関連リンク
http://digital.ni.com/public.nsf/allkb/96312721DA3C637086257686002BFA19?OpenDocument