LabVIEWでDAQデバイスが指定したサンプルレートでサンプリングされない

更新しました Feb 5, 2024

使用製品

ソフトウェア

  • LabVIEW Full
  • LabVIEW Base
  • LabVIEW Professional

ドライバ

  • NI-DAQmx

プログラミング言語

  • LabVIEW G

問題

DAQmxを使用しているDAQデバイスがあります。サンプル周波数を指定しましたが、VIを実行するとデバイスはわずかに異なるレートでサンプリングします。いくつかの周波数では、設定したとおりに動作しているようです。なぜこのような動作となるのですか?自分が使用しているデバイスにはどのくらいの周波数が必要ですか?

解決策

アナログ入力タスク:

  1. サンプルクロックタイムベース / 指定するサンプルレート = X
  2. Xを次の整数値に切り捨てます。
  3. 実際のサンプルクロック = サンプルクロックタイムベース / X


算出例は以下のとおりです。

  1. 20 MHz / 17545 Hz =1139.93
  2. 1139.93の切り捨て結果は、1139です。
  3. 20MHz / 1139 = 17559.26 Hz


したがって、17559.26 Hzがアナログ入力タスクにおける実際のサンプルクロックレートです。

 

アナログ出力およびデジタルI/Oタスク:

  1. サンプルクロックタイムベース / 指定するサンプルレート = X
  2. Xを最も近い整数値(上または下)に丸め込みます。
  3. 実際のサンプルクロック = サンプルクロックタイムベース / X


よって、上記と同様の値で例えると以下のようになります。

  1. 20 MHz / 17545 Hz = 1139.93
  2. 1139.93の丸め込み結果は、1140です。
  3. 20 MHz / 1140 = 17543.86 Hz


したがって、17543.86 Hzがアナログ出力タスクまたはデジタルI/Oタスクにおける実際のサンプルクロックレートです。

 

プログラム的にアクセスする:

サンプルクロック>>レートを選択すると、DAQmxタイミングプロパティノードから実際のサンプルレートをプログラム的に確認することができます。使用例は以下のとおりです。

追加情報

メモ: NI DAQデバイスの中には、デルタシグマ型A/Dコンバータ(ADC)を使用して他のデバイスよりも高い分解能で集録するものがあります。これらのDAQデバイスは、上記で概説したもの以外に、サンプルレートに追加の制限がある場合があります。その場合の制限については、ハードウェアのユーザマニュアル/仕様書に記載されています。