User manual
Programmer’s Guide Page 19 of 64
3.4.2. Dithering
Dithering reduces the effect of non-ideal differential non-linearity of the analog-to-digital converter, by adding or
subtracting small offsets to the input signal. The offset is constant during the acquisition of a single waveform, and
then modified to another value during the next waveform.
The dithering range, N is programmable between 0 (no dithering) and 15, with the function
AcqrsD1_configAvgConfig(instrID, channelNbr,
"DitherRange", N);
Dithering reduces the range of the ADC by N levels at the top and another N levels at the bottom. In order to avoid
any undesirable effects, you should make sure that the signal range of interest is within the reduced ADC range.
To use dithering with the U1084A, it must be explicitly enabled in addition to setting the dither range. Use the
following API call to enable dithering on the U1084A:
AcqrsD1_configAvgConfigInt32(instrID, channelNbr,
"DitherEnable", 1);
3.4.3. ‘Fixed Pattern’ Background Subtraction
If an averaging operation is executed while the input is open or no signal is applied, the averaged waveform should
tend to a constant value with a standard deviation σ
avg
= σ / √N, where N is the number of waveforms in the average,
and σ is the standard deviation of a single waveform.
In reality, only random noise sources are averaged out, while those that are coherent with the sampling clock are not
reduced. The open-input averaged waveform thus represents the ‘fixed pattern’ background of the averager.
Subtracting this waveform from each subsequently acquired averaged waveform should result in more precise data.
In order to facilitate the acquisition of the ‘fixed pattern’ background, the Averager modules offer the following
possibilities:
• disconnection of the input with the value coupling = 0 in the function AcqrsD1_configVertical
• For the AP family averagers only: acquisition of an averaged waveform without a trigger signal with the value
‘TrigResync’ = 2 (free run) in the function AcqrsD1_configAvgConfig. However, you get a better measurement
of the ‘fixed pattern’ background if you acquire with the same trigger conditions as the averaged waveforms that
will be corrected. Typically, it is better to continue using an external trigger signal, rather than ‘TrigResync’ = 2.
The ‘fixed pattern’ background should be acquired in the same conditions as the averaged waveforms that will be
corrected. In particular, the dithering range and the number of waveforms should be the same.
Use the following code fragment to acquire a ‘fixed pattern’ background with a free- running trigger (AP family
averagers only):
const long channelNbr = 0;
double fsr, offset;
long coupl, bwidth, reSync, freeRun = 2;
// Make an acquisition, at the current conditions, but with
// “Grnd” coupling and free running trigger.
AcqrsD1_getVertical(instrID, 1, &fsr, &offset, &coupl, &bwidth);
AcqrsD1_configVertical(instrID, 1, fsr, offset, 0, bwidth);
AcqrsD1_getAvgConfig(instrID, channelNbr, "TrigResync", &reSync);
AcqrsD1_configAvgConfig(instrID, channelNbr, "TrigResync", &freeRun);
AcqrsD1_acquire(instrID);
long timeOut = 1000; // depends on conditions!
AcqrsD1_waitForEndOfAcquisition(instrID, timeOut);