Thanks for your comment, RoGeorge.
Does the same Agilent voltmeter shows the generated voltage (after calibration) as correct (constant) when tested at various fixed frequencies? If not, then the calibration procedure went wrong.
True (as long as I use frequencies within the meter's AC range), but that doesn't tell us where it went wrong:
- voltmeter not working correctly (e.g. giving inconsistent readings at different frequencies)
- I misapplied the calibration procedure (failed to write some values, entered incorrect values by mistyping for example)
- there's a bug in the user calibration procedure code e.g. it
-- tries to measure voltages at frequencies outside the DMMs capabilities
-- does something wrong with the entered values (stores them in the wrong place, wrong format, etc)
If yes, then it's either the voltmeter or the spectrum analyzer.
Not necessarily. The software in the DG4000 in general, and the sweep function in particular, may make some assumptions about the calibration. It is certainly doing something strange when sweeping, as the jumps may or may not be present depending on exactly what frequency range you sweep. Intuitively, miscalibration should always lead to the same voltage at the same frequency, just the wrong voltage, and that is not happens. The voltage you get at a particular frequency depends on the frequency range of the sweep.
Unfortunately, because of the jumps, I reset it to the factory calibration (which doesn't have them), so I have now way of telling which of these possibilities it is, without wasting another 1/2 day to redo the calibration. Note that lack of jumps observed with the factory calibration indicates that the jumps are real in my calibration (you said to see if they exist using a different instrument).
Furthermore, the factory calibration does give readings on the voltmeter (using the same leads) from 1kHz to 100kHz (in steps of 1kHz) which are within 0.2% or better of the stated output of the DG4000, so I have no reason to think the voltmeter is playing up.
Perhaps the software makes some assumptions about the entered calibration values, and if the calibration values entered are too far from the expected ones, it breaks these assumptions