This is a continuation of the discussion that arose from my comment here:
https://www.eevblog.com/forum/testgear/siglent-sds2000x-plus-coming/msg3401936/#msg3401936In a video done by Shahriar (a.k.a. The Signal Path, a Youtuber who does truly awesome videos. You should check it out if you haven't already), he shows what he calls out as a firmware bug in the Tektronix AFG31000 series AWGs. Here's a link to the video at the relevant time:
https://youtu.be/SOHjFtw0sgo?t=1248The bug is that the carrier frequency of the modulated signal generated by the AWG seems to be slightly incorrect relative to an unmodulated signal of the same frequency as that carrier, as generated by the same AWG.
The question is: why is that happening in the first place? If you follow the discussion, you'll see that the Tek isn't alone in that regard. The Siglent series of AWGs does the same thing.
I can see it happening under some circumstances as a result of the amount of waveform memory that the AWG has. If the waveform can't be constructed in full within the sample memory then the AWG would have to construct it on the fly. As long as the AWG can manage to do so in such a way that the average carrier waveform within the modulation envelope has a frequency that matches the frequency of the unmodulated carrier, the end result should be an apparent carrier frequency that is a match (within, I'd guess, the jitter of the clock).
The example in Shahriar's video is a 1 MHz carrier modulated by a 10 KHz signal. Now, the sample rate of the SDG2042X is 1.2GS/s, and it has 8 Mpts of memory. The amount of time that a 10 kHz period represents is, of course, 100 us. The entire period of the modulating signal, and thus the entire waveform that needs to be constructed, can thus be represented by exactly 120K points at 1.2GS/s. Similarly, each period of the base carrier signal can be represented by exactly 1200 points (but since this is a FM signal, the number of points needed to represent a single period of the modulated signal will vary between 1188 points and 1212 points, roughly. But for the purpose of this, given that an entire period of the modulating signal can be represented in memory, that doesn't matter). Given that, why would the SDG2042X show
any deviation between the modulated carrier signal and the unmodulated one, when the two signals are presented on the two outputs of the AWG? Note, too, that the carrier frequency is an exact multiple of the modulating frequency, so there should be no problems with the values at the ends of the buffer failing to match up for the purpose of repeated play. It's about as ideal of a scenario for an AWG as you can get.
For the AFG31000 series unit, it has 131072 points of waveform storage. But it does 2GS/s. That means there isn't enough waveform storage to represent an entire period of the modulating signal at the maximum sample rate. But can't the AWG control the sample rate, or do sinc interpolation of a reduced sample set, and, thus, control the amount of memory needed to represent the waveform? As long as the amount of memory is enough to properly represent the carrier at the highest end of the frequency range (1.01 MHz), i.e. satisfy Nyquist, why would it, too, see a difference between the average frequency of the modulated signal and the frequency of the unmodulated carrier?
My SDG1025 outputs at 125MS/s and has 16 Kpts of memory. 100 us of time requires 12.5 Kpts, so it, too, has enough memory -- but that's with only one channel active. With 2 channels active it might have to either interpolate or reduce its sample rate. But even with the sample rate cut in half, or with decimation and sinc interpolation, there's way more points per carrier cycle than needed to satisfy Nyquist. So it, too, should be able to do this without issue. And yet, it doesn't. Why??
Finally, are there AWGs that don't demonstrate this behavior? If so, which ones? Anyone have a Keysight AWG to test this with? An Instek?