EEVblog Electronics Community Forum
Products => Test Equipment => Topic started by: maxwell3e10 on July 15, 2022, 03:18:39 pm
-
I am looking for a scope that can do fast waveform averaging. For example, if the horizontal time span is 10 microsec and trigger rate is 100 kHz, it should be able to average 32768 waveforms in less than 1 sec while skipping every other trigger. In practice it usually takes much longer. Partly it has to do with waveform update rate, but even scopes that claim fast update rate slow down when averaging is on.
I am wondering if anyone has looked at this characteristic among low and medium cost scopes?
-
I am still collecting data for how fast various scopes can perform waveform averaging. The simplest setup is to send a 1 Hz sine signal to the scope, expand to minimum timescale and shortest waveform length and then increase the number of averages until the amplitude of the waveform oscillating up and down on the screen goes down by 1/2.
So far my results are:
Typical low-cost scopes (Siglent, Micsig, Owon): 8 to 16 averages
Keysight EDUX: 512 4096 (max allowed 65536)
Rigol DS6104: 8192 (max allowed 8192)
Siglent SDS2000X HD: 1024 drops by 2% (max allowed 1024) -thanks to rf-loop
I would be curious to collect data for other newer scopes: Keysight DSOX3000 series, R&S, etc. Thanks!
-
I haven't looked lately, but I assume they are all still sadly pathetic, for no reason other than the firmware sucking. They have the FPGA and memory bandwidth to do better, but they just don't.
A few years back in a thread (https://www.eevblog.com/forum/testgear/4-gss-oscilloscope-with-averaging-and-very-fast-retrigger/) on capture systems with really fast averaging Gage (https://www.gage-applied.com/expert-fpga-dsp/signal-averaging.htm) seemed to be the cheapest which came up.
-
A few years back in a thread (https://www.eevblog.com/forum/testgear/4-gss-oscilloscope-with-averaging-and-very-fast-retrigger/) on capture systems with really fast averaging Gage (https://www.gage-applied.com/expert-fpga-dsp/signal-averaging.htm) seemed to be the cheapest which came up.
Another option for purpose-build digitizer with averaging is https://spectrum-instrumentation.com/ (https://spectrum-instrumentation.com/), they claim it can do 5M waveforms per sec. They also have a software solution using CUDA GPU. Gage can only do 100k waveforms/s with FPGA.
But in general I don't like digitizer approach unless absolutely necessary. It can be setup and work for a single project. Then inevitably the computer or the software gets messed up and no one wants to touch it again. In contrast, a good scope can last decades for many projects.
-
I am still collecting data for how fast various scopes can perform waveform averaging. The simplest setup is to send a 1 Hz signal to the scope, expand to minimum timescale and shortest waveform length and then increase the number of averages until the amplitude of the waveform oscillating up and down on the screen goes down by 1/2.
But whats the trigger? if "auto" then its anyone guess how fast triggers are being issued and if they are uncorrelated with the 1Hz signal. Sounds like a very roundabout way to try and estimate averaging speed.
There are some measured averaging rates already on the forum:
https://www.eevblog.com/forum/testgear/oscilloscopes-averaging-speed/ (https://www.eevblog.com/forum/testgear/oscilloscopes-averaging-speed/)
-
One can add a separate trigger signal and make it 100 kHz or faster. One can also measure the trigger out frequency. But this is just the simplest setup to quickly estimate the averaging speed by eye.
-
I am still collecting data for how fast various scopes can perform waveform averaging. The simplest setup is to send a 1 Hz signal to the scope, expand to minimum timescale and shortest waveform length and then increase the number of averages until the amplitude of the waveform oscillating up and down on the screen goes down by 1/2.
But whats the trigger? if "auto" then its anyone guess how fast triggers are being issued and if they are uncorrelated with the 1Hz signal. Sounds like a very roundabout way to try and estimate averaging speed.
Indeed. And it will go wrong on scopes which halt for a little while before going back into auto-trigger mode or have a low auto-trigger rate to begin with.
-
Rohde & Schwarz RTO1024: 4626/s (795.5/s with secondary zoom view)
You can combine with low-pass averaging for no additional performance penalty.
EDIT: it's about 10000/s at shorter timebases, the above was for 10us.
-
Indeed. And it will go wrong on scopes which halt for a little while before going back into auto-trigger mode or have a low auto-trigger rate to begin with.
Whatever conditions that make it go faster is the best. Basic question is what is the maximum possible update rate while averaging. By increasing the number of averages one can actually see the response time by eye.
One of the crucial parameters is the minimum waveform length. At 10 GS/s and 10k points it takes 1 usec to collect one waveform, even if the horizontal full scale is zoomed to 100 nsec or less. If the minimum possible waveform length is longer or sampling rate is smaller, it takes even longer.
-
So far my results are:
Typical low-cost scopes (Siglent, Micsig, Owon): 8 to 16 averages
Keysight EDUX: 512 (max allowed 65536)
Rigol DS6104: 8192 (max allowed 8192)
Siglent SDS2000X HD: 1024 drops by 2% (max allowed 1024) -thanks to rf-loop
Siglent SDS6000 manages 8192 averages at about 62% of the original amplitude (600 mVpp). Similar to the SDS2000X HD, there is still almost no amplitude drop with only 1024 averages. See screenshot with 1 s display persistence:
SDS6204_Avg8192_1Hz_600mVpp
I don't have one here, but I strongly disagree that the current low end Siglents will have slow averaging. Even the cheapest SDS1202X-E has the averaging acquisition mode implemented in hardware, so its speed should be in the same ballpark as SDS2000X HD. The SDS2000X Plus is the only modern Siglent DSO, which explicitely lacks the Average acquisition mode and has it as a math function exclusively - which is slow, of course.
EDIT: SDS1000X-E series actually doesn't seem to have hardware support for averaging.
-
I retested a few scopes again, couldn't see much difference between auto trigger and normal trigger with >100 kHz rate.
On Keysight EDUX1002 I now get up to 4096 averages before the waveform amplitude drops by a bit more than 1/2 (see picture, initial signal is nearly full vertical scale).
On Siglent SDS1104X-E I get very slow averages even if the number is set to 4. Not sure if it has the latest firmware or maybe some other setting is making it slow, perhaps someone else should check.
-
Ohh, 10us wasn't a part of the requirement? In that case, the RTO is faster, see above.
-
On a Keysight 2000X series scope I can get up to 13.3k wfms/s in averaging mode (dependent on the timebase setting but not the number of averages), down from 220k wfms/s in normal mode. This is measured with a frequency counter connected to the trigger output.
The -3dB frequency of a moving average filter is approx. fs * 0.443 / N (for large N). So that works out at around 5800 averages in your methodology. Depending on the actual implementation, things may be a bit more complicated (don't believe it is actually purely a FIR filter, so the frequency response may be somewhat different).
-
I might not be running this test right, but I was bored and had a few minutes this evening around the house - my Rigol MSO8204 just falls under the halfway mark at 32768 averaged samples. At 8k, no drop at all and at 16k it just starts to fall off.
This is at 200ps/div though - I did not play around much with longer time base settings.
1Hz square wave on channel 1, 1Vpp. I had the external trigger on 1MHz though but I don't think she will actually trigger that often :'(...
I don't know if there is a built in display on the Rigol for wfms/s (which would be nice) and I didn't feel like dragging its baby brother I have on the shelf out for checking trigger rate, but I think in this configuration it should be running basically full speed.
32k samples
[attachimg=1]
16k samples
[attachimg=2]
8k samples
[attachimg=3]
-
Welcome to the forum! This looks like the fastest so far! But I am not sure if square wave input would give the same result as sine wave. Could you check if it's similar with 1 Hz sine wave input?
Also I noticed it says the waveform has only 20 pts. Does the scope give you an option to limit number of waveform points to only what is on the screen?
-
I tried again with a 1Hz sine wave - it does get a bit worse, you can see the 16K averages and 32K averages attached. 16K is a bit over half, 32k is roughly 1/4 FS.
The only other difference to the last test is I just moved the GPSDO 10M reference to the EXT trigger in, so we have a 10M instead of 1M external trigger for this, but I don't think that will matter.
On auto memory depth at 200ps/div it sets 20pts - if I manually select the lowest option for memory depth in the averaging window (1k) it does not appear to change the measurement by much if at all (maybe the tiniest bit smaller with more data).
The last two attachments are at 32k samples 100ns/div. Auto memory sets 10kpts, signal is basically gone, manually setting 1k points we are right around 1/4 FS still, just the smallest bit less than at 200ps/div.
-
On Siglent SDS1104X-E I get very slow averages even if the number is set to 4. Not sure if it has the latest firmware or maybe some other setting is making it slow, perhaps someone else should check.
I had the opportunity to have a look today and unfortunately you're right. The implementation of the Average mode seems to be very different on the SDS1000X-E series.
We get only a handfull of averages per second, yet the acquisition rate remains high at up to 50k triggers per second. This can serve as a warning that the trigger rate does not necessarily need to be correlated with averaging speed. Averaging looks like a true acquisition mode on the SDS1000X-E, but quite obviously is some post processing.
On the SDS1000X-E, we can use Dots display mode to speed up the trigger rate, but the averaging performance will not change because of this, i.e. it is still very slow.
By contrast, a SDS2000X HD or SDS6000 does not even allow Dots Display mode to be used together with Averaging Acquisition mode. Trigger rate is slower (yet well beyond 10k) but averaging performance is vastly better.
BTW, what's the "Rigol DS6104" in your 2nd posting?
-
Thanks for checking SDS1104X-E. It's interesting that trigger rate is not always indicative of average update rate.
Rigol DS6104 is a (now discontinued) 1 GHz scope that I have, it's around 2010 vintage. I am hoping there is something faster now.
-
i
I am still collecting data for how fast various scope...
So far my results are:
Typical low-cost scopes (Siglent, Micsig, Owon): 8 to 16 averages
That is as relative as it comes.. if you have tested something specific on a given osccilioscope' then refer to that model, and not the whole brand as per se..
Do recall these vendors have tons of models ranging from a few hundred bucks to numerous thousands,
even Micisig varies from entry "M-model" to "ETO model" and there are numerous models in between and they seem to vary quite a bit from model to model.
Same with Siglent and likely also Owon.
- if you have tested a given model, and have some tangible test-data, then at least refer to it. and clock it to a given model..
-
I was referring to typical low cost, but popular models (Siglent 1104X-E, Micsig TO1104, Owon XDS3104), under $1k. I don't have a Rigol in this class to test. Here the standout is Keysight EDUX, which uses the hardware of higher-end models.
Btw, there is no data so for on any Tektronix scopes, is there any hope for them?
-
I played a bit more with Rigol DS6104. It's trigger out rate also has no direct relation to the number of averages, it does not change when averaging is turned on. The trigger out rate maxes out at about 180 kHz when the horizontal scale is 10 nsec/div and memory depth is set to auto, giving 700 waveform points. For shorter horizontal scale the trigger out rate goes down again.
Under these conditions it can average 8192 points without significant drop in amplitude for 1 Hz sine wave. I can't increase the number of average points any more, but I can increase the input frequency to 3 Hz before the amplitude goes down to 1/2.
-
Could someone run the 1 Hz sinewave test on a Keysight DSOX3000 series scopes? I am hoping they might be faster based on 1 M waveforms/sec update speed and the fact that my puny EDUX1002A with 50,000 waveforms/s update can still do fairly close to a top Rigol.
-
Could someone run the 1 Hz sinewave test on a Keysight DSOX3000 series scopes? I am hoping they might be faster based on 1 M waveforms/sec update speed and the fact that my puny EDUX1002A with 50,000 waveforms/s update can still do fairly close to a top Rigol.
No, because it is a poorly designed test that doesn't measure what you think it does. We already have people posting/reporting the averaging rate in wfms/s
-
No, it gives you exactly what you want, which is how fast the scope completes a given number of averages. So if you are playing with your DUT, it tells you how quickly the scope will respond to a signal change while doing the averages. Or if you want to save the data, it tells you how long to wait until you can hit the stop button.
The waveforms per second (if the scope has a trigger out and one has another scope nearby to measure it) do not necessarily correspond to the number of waveforms averaged, as seen in a couple of examples above.
Now, there was a test done earlier on another thread with 3000T scope:
I made a test with my 3000T.
3 ns pulse with 10 kHz repetition rate. at 20 ns/div, normal ACQ mode, on trig out full 10 kHz.
BUT, if I set average ACQ mode, it is STILL 10 kHz....
It seems to be doing running average. Meaning, there is no slowdown in acq rate, but latency in result after change.
Latency will be proportional to number of averages and timebase, of course.
At 200 ns/div normal ACQ, trigger rate is still 10kHz, but average ACQ drops to 1.7 kHz (at 1024 averages)
So there is a slowdown here.
It is highly dependent on settings. If OP would give exact settings, I have no problem running scenario to verify exactly how fast 3000T would be.
But all it says that the scope can average at more than 10 kHz, assuming the trigger out equals to waveforms averaged. Increasing the ns/div scale will necessarily slow it down, both because of longer acquisition time and possibly because there are more points in the waveform. Increasing the trigger rate until it is much higher than waveform/sec speed would tell what is the maximum speed.
-
The waveforms per second (if the scope even has a trigger out) do not necessarily correspond to the number of waveforms averaged, as seen in a couple of examples above.
Now, there was a test done earlier on another thread with 3000T scope:I made a test with my 3000T.
3 ns pulse with 10 kHz repetition rate. at 20 ns/div, normal ACQ mode, on trig out full 10 kHz.
BUT, if I set average ACQ mode, it is STILL 10 kHz....
It seems to be doing running average. Meaning, there is no slowdown in acq rate, but latency in result after change.
Latency will be proportional to number of averages and timebase, of course.
At 200 ns/div normal ACQ, trigger rate is still 10kHz, but average ACQ drops to 1.7 kHz (at 1024 averages)
So there is a slowdown here.
It is highly dependent on settings. If OP would give exact settings, I have no problem running scenario to verify exactly how fast 3000T would be.
But all it says that the scope can average at more than 10 kHz, assuming the trigger out equals to waveforms averaged. Increasing the ns/div scale will necessarily slow it down, but increasing the trigger rate until it is much higher than waveform/sec speed would tell what is the maximum speed.
Keysight 3000, measuring averaging speed, and that thread has posts carefully checking that the trigger output rate was an accurate representation of acquisitions (not just raw triggers as in some other scopes).
The post you quoted explicitly shows how the rate on the trigger output dropped when enabling averaging compared to the "normal" acquisition mode. Averaging speed is not some constant or even a ratio of the normal speed, it will have its own characteristics and limitations, which is why it has to be tested in isolation (and for the specific use case since fast in one situation will not always be fast in others).
Averaging on that particular scope is slower than "normal" acquisitions, but you only notice it when the trigger rate approaches the limit. Which is why "testing" with trigger set to auto and estimating averaging rate by adjusting the ??? number??? of averages is many layers of misdirection. An (unintentionally) correlated trigger could make that average to 0 very quickly and provide extremely misleading results.
-
A quick 3000T datapoint (include disclaimer on methodology here):
The 3000T 1Mwfms/s starts dropping around 20ns/div. While at 1Mwfms/s, if enabling Averaging, the wfms/s drops to 26kHz (at least according to the trigger output), regardless of the # of averages (which is 2-64k on the 3000T).
Below that, there is a very variable ratio between Normal wfms/s and Averaging wfms/s (in the 1-50 range). The ratio gets smaller as longer time bases, with an asymptote at 1.
At and above 20us/div, the sample rate is locked at 5GSa/s in both mode. Below 20us/div, the Normal sample rate starts dropping and the Averaging sample rate is locked at 1/4 the Normal sample rate (as reported by the scope).
In all cases, the number of averages (2-64k) has no impact on wfms/s.
Rough wfms/s (as measured by Trig Out - disclaimers apply):
500ps/, 1ns/, 2ns/, 5ns/, 10ns/: 26.4 kHz
20ns/: 34.2 kHz
50ns/: 13.8 kHz
100ns/: 6.9 kHz
200ns/: 1.7 kHz
500ns/: 1.1 kHz
1us/: 1.1 kHz
2us/: 1.0 kHz
5us/: 950 Hz
10us/: 820 Hz
20us/: 650 Hz
50us/: 96 Hz
100us/: 96Hz
200us/: 62 Hz
500us/: 78 Hz
1ms/: 62 Hz
2ms/: 44 Hz
5ms/: 18 Hz
10ms/: 9 Hz
20ms/: 4 Hz
50ms/: 2 Hz
100ms/: 1Hz
-
Thanks for detailed measurements. It looks like there is also a sweet spot for 20 nsec/div. What was the waveform length for these measurements? That could have an effect on the speed.
In principle, running average requires only one multiplication/addition per waveform, so it's no more complicated calculation than scaling/offset that needs to be applied to every waveform to display it. Display calculations are often done on decimated data. But for low number of waveform points there should not be a big difference in number of points.
To compare it to Rigol measurements (which does not have a useful Trig out signal in this case), one needs to use:
On a Keysight 2000X series scope I can get up to 13.3k wfms/s in averaging mode (dependent on the timebase setting but not the number of averages), down from 220k wfms/s in normal mode. This is measured with a frequency counter connected to the trigger output.
The -3dB frequency of a moving average filter is approx. fs * 0.443 / N (for large N). So that works out at around 5800 averages in your methodology. Depending on the actual implementation, things may be a bit more complicated (don't believe it is actually purely a FIR filter, so the frequency response may be somewhat different).
So roughly speaking it looks comparable between Rigol 8000, 6000 and Keysight 3000T.
An (unintentionally) correlated trigger could make that average to 0 very quickly and provide extremely misleading results.
The whole idea is that if the triggering is fast and without gaps the whole averaging completes before the slowly changing sine wave has a chance to change sign. Now, one does have to be careful if using auto trigger that it is set on a different channel or outside of waveform range, so the scope does not introduce display delay when getting a trigger on auto setting.
-
Record in a long buffer then download the wave and make the averaging yourself ?
-
Record in a long buffer then download the wave and make the averaging yourself ?
No, that defeats the whole purpose of a scope to look at signals in real time and diagnose things based on small features in averaged signal.
-
Thanks for detailed measurements. It looks like there is also a sweet spot for 20 nsec/div. What was the waveform length for these measurements? That could have an effect on the speed.
I used a 30MHz sine wave to get enough triggers. I also tried in auto trigger with noise and saw no difference at any of the time bases.
-
What was the waveform length for these measurements? That could have an effect on the speed.
-
Record in a long buffer then download the wave and make the averaging yourself ?
No, that defeats the whole purpose of a scope to look at signals in real time and diagnose things based on small features in averaged signal.
Averaging without a trigger defeats the whole purpose of averaging....
-
Yes, in most cases that's true, when measuring a fast signal. But in this case it doesn't matter (assuming auto trigger is fast enough), because the signal is very slow. Think of it as a kind of box-car high-resolution averaging.
Still curious what is the waveform length LaurentR used. I haven't used a 3000T. Does it just default to auto length equal to number of points displayed on the screen?
-
According to the manual, 3000T uses waveform length to fill the screen or half the working memory, it's not so clear. On my EDUX1002 it uses 50k points all the time in run mode independent of time scale and 100k points in single shot mode. In single shot mode with averaging on it is supposed to do just one set of N averages and stop.
I am leaning toward Rigol 7000 series scope, it's likely to have one of the fastest averaging for a scope under $10k, new or used. Having long memory would help if one has to resort to downloading the data.
-
On the rigol front, I was playing around more with my 8k this morning and trying to see if I could hit the 600k trigger rate, but I have been having no luck. The baby rigol watching trig out is seeing ~110k max. Interestingly whether I have averaging on or not seems to make no difference (200ps/div, 20pt 'auto' memory - all settings from 1k averages to 64k show same trigger rate).
Scope is supposed to do 600k/s but I am not sure under exactly what circumstances, would be interesting to actually get it there and see if turning on averaging makes a difference.
-
On Rigol 6104 I was able to hit the advertised trigger rate of 180k/sec, but interestingly not at the shortest time scale. The averaging also does not seem to affect the trigger out rate, the scope must just pick some fraction of the waveforms to average.
You should be able to get from Rigol tech support the conditions to get 600k/sec since they advertise it so prominently.
The datasheet has this note for waveforms update. I wonder how narrow are the conditions to get highest rate.
Note[3]: Maximum value. single-channel, 10 ns horizontal time base, input amplitude 4 div, sine wave signal with 10 MHz frequency. Others are default settings.
-
Quickly messing around, it does indeed hit >600k wfms/s (~700 actually) at 10ns/div. Funnily enough, only there, but I have not bothered to play with it more to see where else it might be running at that rate.
In this case turning on averaging brings the trigger rate back to roughly 110k/s.