Dynamic Signal Acquisition

cancel
Showing results for 
Search instead for 
Did you mean: 

DSA Signal Delay Calculation and Manual compensation

Hello All. 

I am having some issues with understanding the integer based sample delay compensation for DSA cards, when you as a developer can only use Manual signal alignment for your application. Considering the options I have seen in this knowledgebase article

Synchronized Data Delayed When Using DSA Devices

 

An example:

I have tried to compensate a c series 9239 module to match a 9401 signal, where both signals measure the same signal generated by a signal generator, 1hz square wave 5V TTL.

The delay between for the 9239 module can be calculated as follows:

 

Input Delay [s] :                        (40 + 5/512) / f_s + 3.3e-6 [s]

Input Delay in Samples [-]:     (Input Delay [s])*f_s

 

In all calculations the input delay in samples, will be above 40, but it is not possible to remove a non-integer number of samples from the measured data, and looking at the math the number of samples can never be less than 40 samples ( no negative values so the first part will always be more than 40 divided by frequency).

But why is it not 41 samples since the calculated value is more than 40?

 

In the linked example above, option 3 refers to the manual compensation of PXI-4461, which in one mode is 63 samples for all sample rates, but the card supports another mode where the sample delay is non integer values. I have added the image of the ADC filter delay table below. 

ADC filter delay NI 4461 page 5ADC filter delay NI 4461 page 5

 

Could some one please explain how to compensate for these non integer values? 

 

Rounding the samples to integers would still leave a difference between the signals of up to 0.5 samples at the most, which for a sample rate of 12.8 kS/s results in 

Rounding delay = 1/12.8e3 [ s / samples] * 0.5 [samples] = approximately 3.9e-5 [s]

So no matter how careful I manually align my signals, the chosen card will have 39µs in delay compared to the other cards either trailing or leading, depending on my rounding up or down, to the other and faster measurements. This delay I cannot remove by manually aligning the measurements.

 

In full disclosure I have do not have a NI-4461 card, but I am trying to understand this Dynamic Sampling Delay and manual compensation

Best regards

JKSoerensen

GCentral
CTD + CLD + Pythonista
0 Kudos
Message 1 of 2
(3,449 Views)

As long as you know the delay, you can use that information in your data processing.

Example: If you display the values as wfrms in a graph, adjust the t0  (and set the graph to not ignore the t0 of the wfrm)

In the frequency domain, a delay is a linear phase shift, so you can shift the signal in the frequency domain by any fraction of sample time...

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


Message 2 of 2
(3,353 Views)