How awesome is the new FFT in firmware version 6.1.33? Answer = very awesome.
The ability to put markers with measurements on harmonics is very useful - seems to be just one step away from calculating total harmonic distortion (THD) for us. It does not seem to calculate THD yet though.
I don't really know how it is able to show so much dynamic range in FFT with an 8 bit scope. I have normal mode selected in acquire settings and in FFT. Is ERES/averaging on all the time or something for FFT even in normal mode? See attached picture - why is there so much dynamic range shown? Scope is looking at my audio amplifier that is outputting a 477Hz sine wave. If it is valid dynamic range that is very useful.
c should be 1908Hz rather than 2.05kHz.
Well, the FFT itself hasn’t changed at all. It’s just the markers and the table that have been added.
Normal mode is the right one for FFT and in fact you should stick to that. The ADC is only 8-bit, but a long FFT improves the S/N-ratio a lot, because the frequency domain is divided into bins where each of them covers only a narrow chunk out of the frequency spectrum, which in turn reduces the noise accordingly.
You should not confuse S/N-ratio with dynamic range though. Even with a low noise level like this, the single tone 1st order dynamic range would only be some 50dB, as is to be expected for an 8bit system.
Thankfully, the single tone test >50dB below the reference level isn’t a very realistic test scenario anyway, so we should look at the much more important dual tone 1st order dynamic test, where the amplitude of the first (reference) tone is close to the reference level and can thus act as a near ideal dither for the much weaker 2nd tone. This implicitly provides a major resolution enhancement. We are going to verify right now that there is actually much more dynamic range than what can originally be expected from just 8 bits…
I’ve also noticed that you did not setup your FFT very well, thus giving away a lot of its potential.
I suggest you have a closer look to the FFT chapter in my review document (parts 6 & 7) here:
https://www.eevblog.com/forum/testgear/siglent-sds1104x-e-in-depth-review/msg1371782/#msg1371782This will answer most of your questions and also contains a number of tables for assistance with the optimum setup of the FFT for most practical purposes. However, when I wrote that document, the FFT length selection was not available, so now this can be used instead of adjusting the record length limit in the [Acquire] menu.
First let’s check the FFT at higher frequencies, around 30MHz:
SDS1104X-E_FFT_128kpts_Dynamic_30MHz
To analyze a signal in the frequency domain, we need a sample rate that is at least twice as high, hence >60MSa/s is required for 30MHz. As you can see, I’ve chosen 100MSa/s which is accomplished by selecting 128k FFT length at a timebase of 100µs/div.
Next I’ve adjusted the center frequency to 30MHz and the horizontal scale to 1MHz/div, so I can watch the frequency span from 25 to 35MHz.
I feed two signals into CH.4 of the scope:
1. 30MHz, 14dBm
2. 31MHz, -66dBm
Normally, I do not use the vertical scale of 20dB/div, but in this case the whole picture shall be revealed at once. With a total display range of 160dB, the setting of the reference level is not critical anymore, so it has been set to 40dBm in order to give some headroom.
I’ve set a 16x averaging to get more stable measurements together with a nicely condensed noise floor. This is not strictly required for higher signal levels, but a valuable tool to make measurements both clearer and look nicer, especially for low level / high dynamic range measurements.
From the peak table we can see that the measurement is not too far off from the true levels. Most importantly, the weak 2nd tone is fairly accurately measured as -66.2dBm. The total dynamic range in this scenario is >80dB and the noise floor is below -70dBm.
Now for the low frequency (audio) stuff:
SDS1104X-E_FFT_512kpts_Dynamic_500Hz_01
To analyze signals in the audio range, we can assume a bandwidth of 50kHz maximum, which requires a sample rate >100kSa/s. Consequently, I’ve chosen 100kSa/s which is accomplished by selecting 512k FFT length at a timebase of 500ms/div. Note that we’ve now got a frequency resolution of only 190mHz which allows a very precise analysis of what’s going on.
Next I’ve adjusted the center frequency to 500Hz and the horizontal scale to 50Hz/div, so I can watch the frequency span from 250 to 750Hz.
I feed two signals into CH.4 of the scope:
1. 440Hz, 14dBm
2. 500Hz, -56dBm
This time I’ve used a vertical scale of 10dB/div, which hides the noise floor and limits the display range to 80dB, but that is usually not an issue as is demonstrated with the next screenshot. By simply shifting the reference level by 20dB to 0dBm, we can see the signals down to -80dBm and the noise floor gets visible again. The stronger 1st tone is still accurately measured, since other than on a real SA, the reference level here is really nothing more than a display setting.
SDS1104X-E_FFT_512kpts_Dynamic_500Hz_02
From the peak table we can see that the measurements are once again pretty accurate. The total dynamic range in this scenario is “only” >70dB and the noise floor is below -75dBm.
But we can indeed lower the 2nd tone by another 10dB and see if this still works:
SDS1104X-E_FFT_512kpts_Dynamic_500Hz_03
We can see that accuracy begins to degrade now for the weak 2nd tone, but still very usable. All in all an 80dB dynamic range is not too bad for only 8 bits.
You may notice some spurious signals here at ~560Hz and 680Hz – these are imperfections from the generator due to the external signal mixing without proper isolation between the generator outputs. To prove that, I’ve switched off the output for the 2nd signal and now everything is clean:
SDS1104X-E_FFT_512kpts_SpurTest_500Hz
Marker 2 now happens to show the level of the noise floor at -77dBm.
You mentioned automatic distortion measurements … I wouldn’t rule out that we’ll get that someday