使用外部的Sample Clock時,為什麼還需要指定Rate這個輸入值?



主要軟體:
主要軟體版本: 7.0
主要軟體修正版本:
次要軟體: N/A

問題: 使用外部的Sample Clock時,為什麼還需要指定Rate這個輸入值?

解答:

NI-DAQmx使用rate這個輸入值來計算資料擷取工作所需要的記憶體緩衝區大小。如果想要直接指定緩衝區的大小,可以使用DAQmx Configure Input Buffer VI或者是DAQmx Configure Output Buffer VI。

Sample Clock VI的rate輸入值也可以用來計算呼叫DAQmx Read所產生waveform資料型態中的dt值。藉著修改rate輸入值,你可以看到隨著不同的輸入值,資料的顯示每次也會跟著有所不同,這是因為dt值會隨著rate輸入值的改變而變動。在DAQmx Timing VI的說明文件有提到,設定rate輸入值時最好是根據外部clock的最大期望頻率來設定。

要注意的是資料本身的內容並不受rate輸入值變化的影響。這是因為DAQmx Read並不知道實際用來擷取資料的外部clock其頻率為何。

舉例來說,假設你使用1 KHz的外部clock來擷取弦波,但是設定rate輸入值為 5 KHz,那麼DAQmx Read所產生的waveform其dt值就會是0 .0002(5000的倒數)而不是 0.001(1000的倒數)。因此,雖然是使用外部1 KHz的clock來擷取資料,但是資料的顯示會如同使用5 KHz的外部clock來作資料擷取。

除了不改變rate輸入值以外,還有其他方法可以避免資料的顯示會受到dt值的影響:ㄧ個方法是在選擇DAQmx Read的輸出狀態時,選擇double來替代waveform。另外一個方法是使用實際的計數器來產生sample clock,並將其clock頻率值拿來產生waveform的dt值即可,如下面的範例所示。



相關連結:

附加檔案:


AI External Clock.vi - AI External Clock.vi



報告日期: 05/05/2003
最後更新: 10/07/2007
文件偏號: 2X4C3J3J