NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

如何做到高頻率的類比輸出

已解決!
前往解決方案

您好 

        我被這個問題困惑很久了「如何輸出14000 Hz的高頻率的正弦電訊號」,我是用Labview 8.2,DAQ卡為PCI 6221。在兩情況下,DAQ卡就不再輸出電訊號了!

1) "simulate signal" 的"sample per second"調超過8000,且"number of sample" 超過800

2)"DAQ assistant" 在"continuous sample"模式下,"sample to right"超過5k, "rate"超過50k

(我的認知是,想要輸出14000 Hz的正弦波,那幾項數值的設定應該都要超過上面列的吧!!)

當數值設定成以上所講的,除了沒有輸出電訊號外,也未有任何錯誤訊息跑出。

 

我該如何處理呢? 

 

感謝   

由 Antbro 在 03-26-2009 11:22 AM
上編輯的訊息
0 積分
1 條訊息(共 12 條)
7,503 檢視

您好,關於「如何輸出14000 Hz的高頻率的正弦電訊號」,由於您的PCI-6221類比輸出頻率最高為833KS/s (for one channel,最高輸出頻率由使用頻道數決定http://www.ni.com/pdf/manuals/371290g.pdf),而一個sin波最好由10個點以上組成,因此sin波頻率最高為83.3KHz,因此卡片能滿足您的需求

 

請詳細說明 "當數值設定成以上所講的,除了沒有輸出電訊號外,也未有任何錯誤訊息跑出。"  以及  有輸出電訊號  的情況(例如使用幾個channel等等),並請附圖說明以供判斷

 

謝謝

NI應用工程部

AAron

由 Jen-Liang.Wang 在 03-27-2009 01:01 AM
上編輯的訊息
0 積分
2 條訊息(共 12 條)
7,478 檢視

感謝您的回應

 

我只使用一個通道。而我是將三用電錶(或示波器)接上DAQ卡上的AO0通道上,看看是否有電訊號。當"signal simulated"和"DAQ assistant"的上四個參數設定的比上面所提還要低時,可以在三用電錶看到電壓值或示波器上看到波形。但當參數設定超過上面所提,三用電表顯示0 V,示波器看不到任何的波形起伏,且此時沒有任何erorr signal的視窗跑出,說這樣的設定是超出規範,假如將輸出的sine波改成triangular時,就會有error signal跑出來,說這樣的設定是不對的。 

0 積分
3 條訊息(共 12 條)
7,469 檢視

關於您的問題 "當simulate signal的sample per second調超過8000,且number of sample超過800"時沒有訊號產生,可能的原因在於你所要產生的訊號為14KHz,但是simulate signal設定並不符合Nyquist rate,因此沒有任何訊號產生,請你檢查simulate signal的設定並在LV的Front Panel顯示出波形確保訊號有輸出

 

NI應用工程部
AAron

 

 

0 積分
4 條訊息(共 12 條)
7,461 檢視

感謝您的回應 

 

最後想到其實要再error out 接個東西,才會顯示error signal

這是依據error code查到的解釋

Error -200016 occurred at an unidentified location

Possible reason(s):

Measurements: Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate.

Reduce your sample rate, alter the data transfer method (from interrupts to DMA), use a product with more onboard memory, or reduce the number of programs your computer is executing concurrently.

 

此時的sample rate為140k (因為要輸出14kHz的正弦電訊號 )

請問在這樣的需求下,我該如何做 

 

0 積分
5 條訊息(共 12 條)
7,445 檢視

關於Onboard Memory Underflow問題,主要原因在於Onboard Memory裏頭的資料數量不足夠提供output.

可能問題在於1. 卡片輸出的速度過快 2. Onboard Memory不夠大 3. 資料傳輸到卡片上的Onboard Memory速率太慢

建議您 1. 改採DMA的資料傳輸方式以增加資料傳輸效率
            2. 減少使用到PCI bus的其他裝置或程式以免分享PCI頻寬
            3. 採用Onboard Memory較大的產品

 

NI應用工程部

Aaron

由 Jen-Liang.Wang 在 03-30-2009 02:32 AM
上編輯的訊息
由 Jen-Liang.Wang 在 03-30-2009 02:33 AM
上編輯的訊息
0 積分
6 條訊息(共 12 條)
7,427 檢視

另外 關於”如何輸出14000 Hz的高頻率的正弦電訊號”,根據您的接線圖設定,在Simulate Signal端必須設定至少三個參數:Frequency (Hz), Samples per second (Hz), Number of samples. 

 

 
在Signal的部分要產生14KHz的訊號,因此你的Frequency(Hz)設為14KHz, 另外在Timing的部分關係到取樣頻率,因此建議您的Samples per second(Hz)設為10倍的待測訊號頻率,也就是140KHz.代表一個波由10點來描述,當然您也可以設定成一個波由100或1000點來描述,完全由使用者來決定不同於傳統儀器。這麼做的意義在於較少的點來描述待測波,雖然犧牲了波形卻能測得更高頻率的待測波。就PCI-6221來說,由於最高輸出頻率為833KS/s,因此最多能約以60 (833K/14K)個點來描述一個波。最後,Number of Samples設為14K.

 

 

另外在DAQ Assistance部分,有三個參數必須設定: Mode, Samples to write及Rate部分,在輸出rate部分因為要輸出14KHz的sin波,rate設定為140KHz並且samples to write設定為14k即可達到

 

NI應用工程部

AAron

 

0 積分
7 條訊息(共 12 條)
7,417 檢視

感謝回應 

想進一步問要怎麼改成DMA資料傳輸方式,

還有為什麼取樣頻率高時,會有underflow的問題,而不是overflow,

另外您講到的參數,我已經設定過了!!但仍不行順利輸出我想要的電訊號。 

 

0 積分
8 條訊息(共 12 條)
7,411 檢視
您好,關於變更為DMA的傳輸方式,由於您使用DAQmx,請依照以下步驟設定
  1. 在Block Diagram上放一個DAQmx Channel Property Node,並把它和DAQmx Create Channel.vi連接。
  2. 您需要根據您要做的操作的類型選擇不同的操作類型Operation Type屬性。點選屬性,選擇Operation Type > General Properties > More > Advanced > Data Transfer and Memory > Data Transfer Mechanism。
  3. 右擊DAQmx Channel Property Node的Termal,選擇create constant。選擇您想採用的傳輸方式

另外關於underflow,常發生於資料的填補速度比資料讀取速度慢的情況,wiki有詳細的說明 http://en.wikipedia.org/wiki/Buffer_underflow
不行順利輸出的錯誤訊息是您之前所貼的情況嗎?

由 Jen-Liang.Wang 在 03-31-2009 08:30 AM
上編輯的訊息
0 積分
9 條訊息(共 12 條)
7,392 檢視

另外補充說明由於您使用DAQ Assistance,因此請在上述步驟之前將DAQ Assistance的Front Panel開啟

也就是說再放置DAQmx Channel Property Node前,先在DAQ Assistance上按右鍵 >> Open Front Panel如下圖所示

 

 
NITW AAron

0 積分
10 條訊息(共 12 條)
7,389 檢視