Siglent Bode Implementation Details - Page 1
Forum section: electronics / testgear

author: mawyatt
author_rank: Super Contributor
timestamp: September 24, 2025, 06:02:17 pm
content: Sinisa mentioned the present Siglent DSO Bode function (version Bode II) which "might" implement the Goertzel Algorithm over here:https://www.eevblog.com/forum/projects/bode-plot-of-flyback-control-loop-using-oscilloscope-dho924s/msg6048171/#msg6048171Because the algorithm performs the computations only on the desired frequency this reduces the computation burden on the host processor and should be a good candidate for use with DSO based Bode analysis, and seems like others (Pico) have also implemented this.We've experienced some impressive results with Bode II and the use of a DFT/FFT at each Bode sampling frequency rather than synchronous sampling/demodulation helps explain these results, altho we have noinsideinfo on how this is/was implemented.Maybe someknowledgablefolks can provide more details and information on how these Bode functions are/were implemented.Best

author: voltsandjolts
author_rank: Unknown
timestamp: September 24, 2025, 07:52:57 pm
content: Bode plotting with PicoScopes is best achieved with a third-party utility called FRA4PicoScope by Aaron Hexamer. He started development more than 10 years ago and it has seen quite some changes and updates, and is a solid utility compatible with the many PicoScopes which have a built-in function generator. It is licensed under the GPLv3 and can be found at...https://bitbucket.org/hexamer/fra4picoscope/src/master/FRA4PicoScope/It uses the Goertzel Algorithm.https://www.picotech.com/support/viewtopic.php?p=141279&sid=e3c0e3369f67d211de6b019da3670e6b#p141279Quote

author: 2N3055
author_rank: Super Contributor
timestamp: September 24, 2025, 08:16:09 pm
content: I have been using Picoscope for 20+years now. And started using excellent Aarons program very early...It is working well.But all of my Picoscopes have 600Ω generators and limited amplitude.So when I got MSOX3000T I tried that one. For DUT scenarios where I could run both Pico and Keysight they agreed perfectly.Then i added Siglents to the mix. That work with their proper AWGs, with full amplitudes.My favorite at the moment is Siglent because of more control and more capability.OTOH for a quick go that does not need too much detail, MSOX3000T is most convenient.It has built in gen with BNC on front panel, and app is very simple but that means it is quick to start. It runs faster than Siglent at the moment. But Siglent has better dynamic range (and 12 bit) and out of band noise rejection.So does Hexamer-Pico combination, but only if generator range/impedance is sufficient.I use all 3 depending on circumstances, but mostly Siglent because that is usually the scope that is at hand. And it is more developed and feature complete, with measurements etc... Thing that would be nice to have is option to run faster when super noise suppression is not needed.

author: TimFox
author_rank: Super Contributor
timestamp: September 24, 2025, 09:01:51 pm
content: I'm not a firmware guy, so I can't do this myself.I purchased a Rigol DHO914S because it included the AWG and claimed a Bode Plot function.The AWG works, but I found the Bode Plot uselessly inaccurate, as in my much earlier thread.https://www.eevblog.com/forum/testgear/rigol-dho914s-bode-plot/Can the promising method discussed by Mayawatt be loaded into the Rigol?

author: Someone
author_rank: Super Contributor
timestamp: September 24, 2025, 10:20:58 pm
content: Quote from: TimFox on September 24, 2025, 09:01:51 pmTheoretically possible, yes. But needs a skilled person to develop that application.Goertzel Algorithm is only a tiny part of the overall, and with the optimization that has usually gone into FFT libraries it is not always a time saver.As in the thread you linked, off device processing is able to do these sorts of analysis. There is little to no benefit in doing it in the onboard processor, and it can be quicker on a remote host as well as more flexible/capable. But that does require getting familiar with automation/scripting.

author: voltsandjolts
author_rank: Unknown
timestamp: September 25, 2025, 06:33:39 am
content: A nice outcome of this thread would be a portable application for bode plots, where you could define an interface for your particular scpi scope and scpi sig gen. Perhaps python based as it's cross platform, has the excellent pyvisa, nice plots with matplotlib, and extensive math libraries of course. Hah, should be a dozen of lines of code(not).

author: Someone
author_rank: Super Contributor
timestamp: September 25, 2025, 07:18:59 am
content: Quote from: voltsandjolts on September 25, 2025, 06:33:39 amA few dozen…https://www.eevblog.com/forum/testgear/faster-fra-from-scope-by-external-control-over-visa/The commands are relatively plain and can be translated to other hardware easily.Pulling full depth memory captures and processing (FFT etc) on the host is tempting but the formats are manufacturer specific and it can be slower, depends on the specifics of the scope and test parameters.

author: 2N3055
author_rank: Super Contributor
timestamp: September 25, 2025, 09:30:28 am
content: Quote from: voltsandjolts on September 25, 2025, 06:33:39 amOTOH, I would think nice outcome of this thread is for people actually owning Siglent scopes and actually use Siglent FRA for real work would discuss implementation and maybe point out what is working for them and what is not.That way they might be able to use it better, and if there are worthy improvements to be made to be relayed back to Siglent and ask for implementation...I kinda got that vibe from OPs first post.Volts is right. I aplogize, I overreacted, I explain myself better i later post.I striketrough-ed my previous text without editing.

author: voltsandjolts
author_rank: Unknown
timestamp: September 25, 2025, 09:55:36 am
content: Quote from: 2N3055 on September 25, 2025, 09:30:28 amI thought this was to be a discussion of the Siglent algorithm (as per thread title), to which end a comparison with an open-source implementation (such as the PicoScope version I linked, or indeed an experimental python implementation) might reveal some details/benefits/shortcomings of the Siglent implementation. Such comparison and experimentation, could then feedback improvements for the Siglent bode application. If this is just a user survey for Siglent owners, then fine, I'll gladly get my coat on the way out.

author: 2N3055
author_rank: Super Contributor
timestamp: September 25, 2025, 11:13:47 am
content: Quote from: voltsandjolts on September 25, 2025, 09:55:36 amNo you are right, your interpretation is OK. I apologize if it came out that way...Your comments are up to point, and I also contributed data about Pico and Keysight.

author: 2N3055
author_rank: Super Contributor
timestamp: September 25, 2025, 12:34:30 pm
content: Quote from: Someone on September 25, 2025, 07:18:59 amWhat you show in that post is caveman version compared to what I have built in my Keysight. Why on Earth would I do that when there is perfectly good FRA in scope itself?It is nice if you have scope without that option to be able to do it.But your keep claiming your external version is better than any embedded one. Which it is obviously not.Do I have doubts that you are capable of making full blown, excellent FRA application that runs on a PC and externally controls AWG and scope?No, I have no doubt you could make it, and well too, if you applied to it and spend significant amount of time. In this case, with many good ready made options, I refuse to waste mine.Hexamer is very clever guy, Picoscope has good API he could use. It still took him years to polish it to the state it is now.And frankly it is still not very polished. It still has quirks, and it took few years before custom stimulus plan was added.GUI looks exactly like nobody really care how it looks. It is all there, organized in logical groups and that is it.At this moment it works pretty well (there are some bugs but mostly annoyances) and has many options to setup.But that is also a problem, because you can as easily setup bad configuration as a good one.So mostly you use it on default and toggle Low Noise mode or Noise Rejection mode. Low Noise mode is used when your DUT is clean and noise is low. Noise Rejection mode is the opposite and that is what you use for switchers, for instance. This is the mode Siglent works in all the time.Siglent FRA has more of options for measurements and such. Only thing missing is precision/speed tradeoff setting, as Siglent always work in Noise Rejection mode.I consider FRA4forPicoscope by Hexamer to be to decent standard of development, but realistically it provides only better configurability of speed and is at the same time missing some of other Siglent's capability.Unless somebody makes anotherFRA4EveryScopeapplication that is at least equal or better than Hexamer's, any improvised FRA is significant step backwards to well made embedded apps in Keysight, R&S, Siglent and what not. I can attest those 3 work, because I tried. If there any others there other people might know.Of course, if a person does not have a scope with well functioning FRA (or it simply does not support it at all) then any external FRA is golden to them. In which case I am glad if they can make it work in any way.If I were someone that wanted to make universal FRA, maybe contact Hexamer and see if he would not mind forking his code to do this.His code is decently modular, he already did some work to support addition of external AWGs, setup of scope and getting data from scope via SCPI could be rewired from direct PICO API, and you would have decent external FRA .His code is Windows only (so OpenSource guys might not like that) and someone should actually put in the work.If you want to write something from the scratch, I would still suggest studying his Goertzel code.If you use some of it, credit him.I hope this clears up my opinion on this and helps someone with direction.I am not against someone writing good universal FRA, quite the opposite. But I am not going to do it because I don't see the benefit (I simply choose to buy scopes that already do it right). Those that could benefit from it, I pointed out to good implementation with published source code that can be used as a model for development.I am a bit jaded discussing this, because this 10th time this discussion flares up, it is always same actors, and then nothing happens, and you realize everybody expects somebody else to do it for them.In meantime, if you want to use good FRA, and your scope does not support it, you can go out there today and just buy different scope that does support it. That is my solution.Some will keep discussing this ad nauseam, baiting somebody to do their bidding...Somebody might even choose write a software for themselves because reasons.. Good for them. If I can help with advice, I am here.Best to all.

author: mawyatt
author_rank: Super Contributor
timestamp: September 25, 2025, 01:50:42 pm
content: Personally we don't prefer using an instrument thatrequiresa separate computer to perform a given task, so have alwaysleanedtowards stand alone instruments. A few years back (before affordable 12bit DSO were available) we acquired a Pico 4262 DSO for a specific project which required the 16bit ADC (and benefitted from the clean built-in AWG), because of our preference this DSO has seen little use since.A thanks tovoltsandjoltsfor the links to the FRA4PicoScope and the Goertzel Algorithm, now we need to hook-up the 4262 and do some investigative experimentationAgree a Universal Bode FRA Analysis Application would be a great project for someone to tackle, the Rigol folks would surely appreciate suchAnyway, our understanding of the mentioned Goertzel Algorithm is this provides a reduced computational effort to achieve a similar result as a DFT/FFT based solution since Goertzel only processes the singular frequency bin at hand, while the DFT/FFT computes all frequency bins within the Nyquist limit. Since the Goertzel is essentially a reduced DFT/FFT computation, the filtering properties of such are preserved including the superior interference rejection, at least that's our understanding and why we are curious as to how this algorithm is implemented within the Siglent Bode function, and other implementations as well.Best

author: KungFuJosh
author_rank: Super Contributor
timestamp: September 25, 2025, 02:07:42 pm
content: There's also this:https://bodeplotter.github.io/BodePlotter/

author: Someone
author_rank: Super Contributor
timestamp: September 26, 2025, 12:04:51 am
content: Quote from: 2N3055 on September 25, 2025, 12:34:30 pmThat example is comparable to the built in Keysight app on performance, a little better in one aspect and a little worse in another. You say caveman, but it is feature competitive and performance competitive. Exactly the sort of thing which is needed to make comparisons. Nowhere do I say that example is better than any embedded one, what I keep saying and you keep making noise around is:a scripted/software solution allows the end user to extend or adjust the process beyond what the built in apps offerThat is extended with some examples of limitations in various built in apps such as having no way to control the selectivity (which then causes you to fly off into long winded defences), or boring things like specific frequency steps or fine sweeps with many points over a small frequency range.I'll cut through the noise and pull out the key point that blows this up:Quote from: 2N3055 on September 25, 2025, 12:34:30 pmQuote from: 2N3055 on September 25, 2025, 12:34:30 pmGreat, so say that rather than positng out long winded siglent fanboy "better better better" claims while refusing to acknowledge or massively discounting that users could get all those same advantages with their existing hardware and external automation.You are happy buying more scopes and using their fixed feature apps. I think that is silly when the different hardware is not the limitation, and automation can not only reproduce the same benefits of various vendors apps, but it can go beyond them.

author: KungFuJosh
author_rank: Super Contributor
timestamp: September 26, 2025, 12:38:52 am
content: Great. Here we go with the fanboy name calling.In a Siglent thread.

author: Someone
author_rank: Super Contributor
timestamp: September 26, 2025, 12:43:19 am
content: Quote from: KungFuJosh on September 26, 2025, 12:38:52 amI'm waiting for the implementation details...Quote from: 2N3055 on September 25, 2025, 12:34:30 pmRather than misleading claims about code I'd shared.

author: KungFuJosh
author_rank: Super Contributor
timestamp: September 26, 2025, 01:04:59 am
content: What you posted is cool! There's no need to go ad hominem if somebody doesn't share the same opinion as you.