Increase the bode plot speed of your scope by 10x with this one trick (kinda) ![Evil >:D](https://www.eevblog.com/forum/Smileys/default/xevil.gif.pagespeed.ic.tdrs7Uj5gu.png)
I did an little experiment that puts the dynamic range of the SDS2000X HD into good use. I have been reading up on dynamic signal analysers (
https://www.testunlimited.com/pdf/an/5988-6774EN.pdf), and saw them mention a DSA can be used to perform bode plotting at real time. I was quite intrigued given my grievances with the speed of Siglent's bode plot tool.
I am planning to build my own DSA, but thought I'd test the concept with the SDS2000X HD first, as the hardware is already there, and it is easy to hack together some code to test out the idea.
The idea behind the concept is quite simple, network analysis (bode plotting) basically involves injecting a known signal into a network under test, and see what is the response. In the case of the scope, a sig gen is used as the stimulus, one channel of the scope is used to measure the stimulus at the input of the network under test, and another channel used to measure what comes out of it.
The "traditional" way of bode plotting, as used by the Siglent scope's built in bode plot function, is to inject a sine wave at a specific frequency into the network and measure the magnitude and phase change of the sine wave at the output compared to the input.
The way DSA and this experiment works is, you inject a wideband noise source into the network to stimulate all frequency of measurement interest, capture one sample with the scope (e.g. 1s of data at 20MSPS), run a FFT on both the input reference signal and the output response signal, divide the complex output result by the complex input result to get the transfer function of the network under test, and compute the magnitude and phase of this transfer function.
The advantage of this method of bode plotting is, you only need to do one data capture with the scope, and the data contains all the information needed to compute a bode plot across a range of frequency, versus the traditional way where data capture(s) are needed at every single frequency point of interest. So in terms of sampling time needed, you can expect to see a couple order of magnitude in reduction.
There are also drawbacks to this method. The traditional way of bode plotting allows the scope / network analyser to adjust its gain at every frequency measurement point to fill up its dynamic range, and so you can easily get massive dynamic range even with a 8-bit ADC and lousy frontend. In this method, the maximum dynamic range of the bode plot is limited by the inherent dynamic range of the scope's frontend and ADC. 12-bits is barely enough in this case, and this is the reason why this method is usually only reserved for DSA with very high input dynamic range.
Nevertheless, I wrote a Python script that performs the DSA bode plot method and ran a quick test comparing both methods of bode plotting on the SDS2000X HD with a simple RC filter. The results are interesting, The DSA method took 30 seconds to give a bode plot, although half of the time is used to transfer the data from the scope to the PC, and half was used to crunch the FFT and plotting, only 1 second was used to capture the data (20Mpts, 20MSPS, 1 second). The Siglent's built in bode plot was used, (50 pt per decade, auto gain) and it took
so long my ADHD brain forgot to time it around 8 minutes. Of course, the traditional bode plot is much higher fidelity with the output data, still more trustworthy IMO, and the Siglent bode plot is quite slow compared to competitors.
This post is not really about saying the DSA method is much better and the built in bode plot is bad or whatever. It is more of an academic study into different ways of bode plotting and to gain some insight for when I do build my DSA project. Hope you found this interesting.