Dynamic Signal Acquisition

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. 

NI 4461 ADC filter delay.pngADC 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


CTD + CLD + Pythonista
0 Kudos
Message 1 of 1