06-23-2010 10:54 PM
Hi,
I've noticed something strange when testing out the limit of the AO.
The maximum sampling rate for single channel analog output is 2.86 MS/s (according to PXI2-6259 specs).
So, by setting the following configurations in my code:
Sampling rate: 2.8 MS/s
Number of samples: 280k
==> this should generate the waveform with a period of 100 ms for each cycle.
I started generating the voltage and checked the output by using an oscilloscope.
I noticed that the period for 1 cycle is shorter than 100 ms (about 98ms only).
I thought there could be some problems with my code.
So by using the same code, I tried with different Sampling rate and Number of samples, but the period per cycle is accurate (100ms).
For e.g: 2M S/s + 200k samples, 2.5 MS/s + 250k samples.. etc..
After trying with many different combinations, I realised something.
When the specified Sampling rate is "normal" (which have finite reciprocal e.g. 1/1k = 0.001), period per cycle will be accurate.
When the specified Sampling rate is "not normal" (which have infinite reciprocal. e.g 1/3k = 0.0003333333...), perioed per cycle will not be accurate.
I get the same problem when using DAQ assistant.
May I know is this a limitation or a problem?
Thanks.
howmean
06-24-2010 08:51 AM
Sampling rate is based on the board's Timebase. In the case of this board, the default timebase is a 20MHz source. As a result, the board can only use sample rates that us an integer number of timebase ticks. As such, certain sample rates, such as ones that are cannot be met with an integer number of 50ns ticks, are coerced.
You can determine the coerced sample rate by reading the DAQmx Timing property "Sample Clock » Rate".
Setting a rate of 3000Hz results in a coerces sample rate of 2999.85Hz.
06-24-2010 09:23 PM
Thanks for your quick reply.
May I know is there a solution to this? By using external source?
howmean
06-25-2010 08:03 AM
If you can provide an external source that divides down to exactly the sample rate you need, then that will work fine. The main thing is to make sure that your timing source can provide an integer number of pulses to generate the desired sample rate.