Unfortunately, this isn’t unproblematic. The frequency of affordable pulsers is usually fixed at 10 MHz. The resulting pulse train generated in software would be even twice this frequency – but we don’t want that. We rather want a low frequency, like 1 MHz or even lower, so that we can get better frequency resolution and enable frequency response measurements down to the single-digit megahertz.
A while back I’ve done it with the SDS2504X HD, it didn’t work well, but enabling Average acquisition mode helped. Today I’m inclined to consider the results back then more as a coincidence than anything else.
I have now taken the time to investigate this a little bit more, step by step.
I’m starting with the obvious: the spectrum of a 1 MHz pulse train should reveal the frequency response of the SDS824X HD. Since I don’t have an ultra-fast pulse generator, I had to make do with 1 ns wide pulses from the SDG7102A:
SDS824X HD_FFT_FR_Pulse_W1ns_M1us
That doesn’t look too far off. The deviations are as follows:
100 MHz: -0.376 dB
200 MHz: -0.961 dB
244 MHz: -1.093 dB
I would attribute this to the non-ideal pulse shape – with this signal, the generator is already working outside its specifications.
I’ve once measured the pulse spectrum with a 2 GHz DSO and found the bandwidth to be ~378 MHz, so it is perfectly plausible to have about 1.1 dB amplitude drop at 244 MHz (unfortunately, I didn’t measure any other frequencies between 100 and300 MHz):
https://www.eevblog.com/forum/testgear/siglent-sdg7000a-350-500-mhz-and-1-ghz-awgs-coming/msg5101176/#msg5101176So while the “real pulse” method might not be accurate (at least not as long as there are no perfect pulses available), it is certainly good enough for a quick overview.
The next step would be to make our own pulses, at least mathematically, by numerical differentiation of a 500 kHz square wave. It’s only 500 kHz because now we get two pulses per signal period, and I wanted to stay as close as possible to the previous conditions.
Since the polarity of the resulting pulses depends on the direction of the signal edges, I’ve added the abs() function to get only positive pulses like with the real pulse generator – once again, this is for best conformity with the previous test.
SDS824X HD_Math_Square_2ns_abs_diff_dx4
For this screenshot, I’ve changed the square wave with a duty cycle of 50% to a 10 ns wide pulse, just to show both edges at high time resolution in one screenshot. They are absolutely identical and the measurements hint on pulse width of ~1.65 ns and ~1 ns rise and fall times.
Here is the FFT with the pulses – this time from a 50% duty cycle square wave again:
SDS824X HD_FFT_FR_Square_1us_abs_diff
That’s significantly worse than before. The deviations are as follows:
100 MHz: -1.557 dB
200 MHz: -3.727 dB
244 MHz: -5.035 dB
We have already looked at the generated pulse from the differentiation, now let’s compare with the generator pulse from the first test:
SDS824X HD_PR_W1ns_RT500ps
It’s funny; the original pulse as it was seen by the SDS824X HD was almost 1.8 ns wide and had 1.2 ns rise-time. The software generated pulse was clearly faster, yet the FFT-results are so much worse?
Now for the (20 times) interpolation – which shouldn’t be strictly necessary, as the initial test with the pulse train has proven.
SDS824X HD_FFT_FR_Square_1us_abs_diff_int20
As expected, that’s only marginal better than without interpolation. The deviations are as follows:
100 MHz: -1.527 dB
200 MHz: -3.675 dB
244 MHz: -5.016 dB
Also as expected, the pulse shape and measurements are almost exactly the same as without interpolation.
We can select a faster time-base in order to get a smoother graph, yet at least at high sample rates this is not recommended as it significantly increases the frequency step of the FFT, thus reducing the frequency resolution, shifting up the lowest measurable frequency and finally compromising the measurement accuracy (if there was any in the first place, that is). For the original 2 GSa/s, it works reasonably well, even though the measurement accuracy has yet suffered even further:
SDS824X HD_FFT_FR_Square_200ns_abs_diff