Signal Conditioning

cancel
Showing results for 
Search instead for 
Did you mean: 

In order to sample a 3 Hz sine wave, I have to scan it at 30 Hz.

My setup is as follows:
I have two PXI 6031E DAQ cards in a PXI 1000B chassis. Each DAQ card connects to a SCXI 1001 chassis. On the first SCXI chassis I have six SCXI 1102C modules and in the second SCXI chassis I have three SCXI 1102 modules. I set up two seperate scan lists. One for the first DAQ card and one for the second DAQ card. The actual scanning functions are placed in seperate threads. After I acquire the data, I move it to "shared memory." The display program reads the value from shared memory and plots the value. For simplicity I left the data as a short int and plotted it that way. If I connect a function generator to any channel I can read a clean wave only if my scan rate is 10
times the function generator value. For example, if I want to read a 3Hz sine wave I have to set the scan rate on the DataAcq program to 30Hz and the update rate on the display program to 30Hz. Should I be able to read a 3Hz sine wave while scanning at 3Hz? Also, I am open to any recommendations in my code.
Download All
0 Kudos
Message 1 of 2
(2,903 Views)
What you have discovered is quite normal for acquiring data in the time domain. If you were only interested in the frequency domain, you could follow the Nyquist criteria and sample at a frequency at least twice your desired frequency (6 Hz). Since you wish to examine the data as a sine wave (to view and recognize), you need to sample the waveform at a rate of at least ten times the desired frequency. Hence, to plot and recognize a 3 Hz signal, you would need to sample at a rate of 30 Hz. This action allows ten actual data points per wave cycle.
As a rule, I use 16 times "oversampling" for my application where I desire to manipulate the data in the time domain. Twenty times oversampling would be even better. It really depends upon the resolution you would like to
see in your data.
Message 2 of 2
(2,903 Views)