A call for Bin-Files as for new Siglent HD-Models - Page 1
Forum section: electronics / testgear

author: hpw
author_rank: Frequent Contributor
timestamp: March 04, 2024, 08:29:18 am
content: I am very interested to get a BIN file of full possible sample size as may 100M or 200M or even more as like to see the 1/f noise or spurs.As from all new 800 HD, 1000 HD, 2000 HD, 3000HD, 6000 H12 & 7000A (HD) modelsMay with the following settings:- select ONLY one Channels as Ch1 or Ch2- Zero Offset the input and probe scale to 1- Input shorted as as for a) 50E or b) 1M by 50E resistor or opened connections- May the ERES to consider, currently to look at full BW of the DSO- Lowest Y division as 1mV or 500uV- As on my SDS2k + (10 bits), requires to set the time divisions may in the 2..5ms range,anyway the time division icon will display current sample size- save it as BIN file to a USB stick (as large data may not saved to local file space)- Copy the BIN file to your PC and zip/rar it please as 100M sampled data zipped gets about 10MBytesand please PM me for a link to download the file using a file share service & additional text about the used input setup (50E/1M, opened ERES & etc) ....Hp

author: rf-loop
author_rank: Super Contributor
timestamp: March 04, 2024, 10:37:23 am
content: Quote from: hpw on March 04, 2024, 08:29:18 amWhat is SDS6000 HD. Outside China here is SDS6000A and it is 8 bit.Then here outside China we have now SDS800X HD, SDS1000X HD, SDS2000X HD, SDS3000X HD and SDS7000A and these all are 12 bit models.It is good practice to use right model names for avoid confusions and for help also sarch engines.Because you did not ask SDS3000X HD,hereit is. (~460M .zip) Data start at 0x1000Inside .zip there is SDS3104X_HD_Binary_C4_1.bin (it include one single shot trace data: 800000000 bytes data 400Mpoints trace + 4096 byte header)500uv/divInput 50ohm (no signal)10ms/divmemory 400MptsSampling 4Gsa/sFull BW

author: ebastler
author_rank: Super Contributor
timestamp: March 04, 2024, 12:08:54 pm
content: Could you please clarify the conditions you are looking for? Thanks!Quote from: hpw on March 04, 2024, 08:29:18 amSo which one is it? Shorted, 50 Ohms, or open?QuoteI understand that as "Currently I want to look at the full bandwidth of the scope. Maybe we can look at ERES later." So no ERES for now, right?QuoteHang on, those 10 bitsarein ERES mode, aren't they? So do you want ERES or not?

author: hpw
author_rank: Frequent Contributor
timestamp: March 04, 2024, 01:29:23 pm
content: As rf-loop at first:500uv/divInput 50ohm (no signal)10ms/divmemory 400MptsSampling 4Gsa/sFull BW

author: egonotto
author_rank: Super Contributor
timestamp: March 04, 2024, 01:39:24 pm
content: Hello,please the data with 1 V/div also.Most modern oscilloscopes are very good at 1 mV/div. But at 1 V/div, opinions are divided and there are still big differences.And if possible in the 1 MOhm and 50 Ohm branch.Best regardsegonotto

author: hpw
author_rank: Frequent Contributor
timestamp: March 04, 2024, 01:56:01 pm
content: Quote from: rf-loop on March 04, 2024, 10:37:23 amLook attached, very noisy, as may the input requires some terminations....Removed rtHz as something went falseJust my 2 centsHp

author: Performa01
author_rank: Super Contributor
timestamp: March 04, 2024, 02:07:13 pm
content: A few facts to consider:At the highest sensitivities like 500 µV/div, there is no advantage having a 12-bit DSO – the ENOB will be less than 8 bits anyway because of the frontend noise, so no significant difference to an 8-bit DSO.It is different for the 10-bit mode in a SDS2000X Plus, because this is DSP filtering and limits the bandwidth to 125 MHz. Because of this we will see an advantage even at the high sensitivities.We cannot just ziprandom noiseand hope to achieve a compression factor of 20. My experiments rather hint on a compression factor of 2.There is a file for the SDS824X HDChannel 4, 500 µV/div, 50 ohms terminated;5 ms/div, 100 Mpts, 2 GSa/s;Full bandwidth = 254 MHz;Unsurprisingly, its size is about 90 MB:https://mega.nz/file/zSJn2KAS#l8JMLXh0_uEakIIrVbC-suonbcblvjp59ObsYzixDYg

author: Performa01
author_rank: Super Contributor
timestamp: March 04, 2024, 02:26:06 pm
content: Quote from: hpw on March 04, 2024, 01:56:01 pmWhat we see is a noise floor around -140 dB with lots of spurs. The diagram says the y-axis would be dBFS.Have you ever thought wat this actually means? FS = full scale = 500 µV * 8 = 4 mVpp = 1.4 mVrms.140 dB below that would be 140 pVrms – spoken out: picovolts!The same goes for the 2nd plot which claims to show the noise density in nV/√Hz. Do you realize that a passive 50 ohm resistor alone exhibits already 0.9 nV/√Hz, hence numbers at or below that are utter BS?And then you talk about very noisy…

author: rf-loop
author_rank: Super Contributor
timestamp: March 04, 2024, 03:24:42 pm
content: Quote from: Performa01 on March 04, 2024, 02:26:06 pmApplause!

author: hpw
author_rank: Frequent Contributor
timestamp: March 04, 2024, 04:13:57 pm
content: As now in this Siglent BIN task:1Veff is as 3.0103dBFS ... currently no calibration was used just the samples corrected & amplified by given BIN data.Nothing more, so the rthz needs to be checked again.Also keep in mind that rtHz scaling is for NOISE only valid, as peaks gets false values.hp

author: hpw
author_rank: Frequent Contributor
timestamp: March 04, 2024, 04:30:59 pm
content: Quote from: Performa01 on March 04, 2024, 02:07:13 pmThe Herbie Man plotstill with dBFS.

author: Performa01
author_rank: Super Contributor
timestamp: March 04, 2024, 05:06:15 pm
content: Okay, let’s see:A 64 Mpts FFT should result in a frequency step df = 953.67 Hz.Assuming a proper Flattop window, the RBW (resolution bandwidth) would be about 3.6 kHz.I don’t know where the peak at about 60 MHz comes from, but let’s assume the real noise floor is shown above 100 MHz, hence about -144 dB “FS”. Since I already know the real noise density is some 2.4 nV/√Hz at higher frequencies (which is pretty good), I can calculate the voltage level there: 2.4 nV * √3600 = 2.4 nV * 60 = 144 nVrms. This happens to be -142.85 dBVrms.At a setting of 500 µV/div, no one can deny that full scale is inevitably 1.4 mVrms at a grid that is 8 divisions vertically. The noise level above 100 MHz would then be about -80 dBFS.If the 144 dBFS were true, the reference level would have to be 2.28Vrms = 6.45 Vpp, equivalent to a vertical gain of 806 mV/div…

author: rf-loop
author_rank: Super Contributor
timestamp: March 04, 2024, 06:28:45 pm
content: And when we talk about noise, BW is important.Here SDS3104X HD (same what was used for this 400Mpts noise binary). Note that this measurement is not perfect. Signal is from old (in its time, HP "state of art" generator, today, boat anchor)I do not know its real flatness. But I know that it is quite sure in its specs. Also cable, around 80cm Suhner M17/846MHz - 2GHz sweep (and it was long time manual sweep, thank god this instrument have very good optical encoder with ball bearings... perhaps I need take one step motor for this sweep... it have also automatic hopping sweep but it some times produce high glitches )But so or so...this is however, sufficient in relation to this matter.

author: egonotto
author_rank: Super Contributor
timestamp: March 05, 2024, 02:46:13 am
content: Hello,I have a question for rf-loop.In the SDS3000X HD manual on page 63 it says: "Under the full Memory Depth, SDS3000X HD can still operate at full speed sampling at timebases <= 10 ms/div which provides high resolution captures for long time duration events". Is that correct? If so, 400 Mpts should be available when using CH1 and CH3.And how large is the segmented memory?Best regardsegonotto

author: rf-loop
author_rank: Super Contributor
timestamp: March 05, 2024, 07:18:49 am
content: Quote from: egonotto on March 05, 2024, 02:46:13 am1. Yes.2 No. 1Ch 400M, 2Ch 200M for both 3 or 4 Ch 100M for all.3. It is bit more complex to explain. Because it depends... how many channels and one segment sample points.(I have not yet made full table with all or most important combinations but perhaps (this is observed) up to total650Mpts652.760Mpts652.400 Mpts when 2 channels (only if 4GSa/s) or 4 channels onbut not know if there is still combination what give more. But yes, total max is more than just 400Mps)ETA:corrections

author: hpw
author_rank: Frequent Contributor
timestamp: March 05, 2024, 07:22:42 am
content: Well, as it gets. On Audio the sample data comes as dBFS as calibration comes after.Now on BIN the data comes as in Volts, so calibration has been done before. So different situation(s).The given pictures are from my upcoming Pro Version. As things changed a lot and internal used calibrations is different.Mainly changed things for PN measurements (1/f) and new ENF as Enhanced Noise Floor/Filter as getting the noise level even 12dB down & 3D view.As the incoming data is already in Volts normalized, I have to think about as different concept.The noise scales gets any down as higher FFT size used. Noise as a rule of dump, without any applied FFT Windows.Here attached my updated rtHz plots.Hp

author: Performa01
author_rank: Super Contributor
timestamp: March 05, 2024, 08:09:24 am
content: Sorry, but I'm giving up at this point.dBFS is universal and not related to audio. And everyone should know what it actually means.dBU would be used in audio pretty exclusively, but irrelevant here.FFT without the correct (Flattop) window function is totally worthless.The noise density plots are incorrect once again - apart from the fact that they cannot show the 1/f noise as long as there is a linear frequency axis.I've already measured the noise density long time ago, (Reply #1, 5th screenshot), so we can know what the noise density of the SDS824X HD is: 3.0 nV/√Hz at 300 kHz and 2.4 nV/√Hz at 10 MHz.https://www.eevblog.com/forum/testgear/sds800x-hd-review-demonstration-thread/msg5293744/#msg5293744

author: hpw
author_rank: Frequent Contributor
timestamp: March 05, 2024, 10:26:43 am
content: Quote from: Performa01 on March 05, 2024, 08:09:24 amThe normal deal is dBFS as it goes to DAC and comes from a ADC. The digital world do not tell about any scale.And one more: FFT windows is used to filter out signals, for noise no windows used.About your:Here you can see the noise characteristic up to 25 MHz at a RBW of ~90 Hz. In order to prevent aliasing taking effect, the noise measurement has been done of a 20 MHz bandwidth limited input channel. Since this bandwidth limiter is only first order, a digital 30 MHz lowpass filter has been added.So the given BIN files is without any filtering. Just to fiddle out your calculations and false mentioned scaling.While had this one once claimed as noise gets any false scaling.hp

author: 2N3055
author_rank: Super Contributor
timestamp: March 05, 2024, 11:32:05 am
content: Quote from: rf-loop on March 05, 2024, 07:18:49 amI verify 652.760 MPts total (163,19 MPts per CH) with 10kpts length.It is 159 Mpts with 1Mpts length, per channel.At very short and very long you get a bit less because of fragmentation...

author: hpw
author_rank: Frequent Contributor
timestamp: March 05, 2024, 03:44:18 pm
content: Quote from: Performa01 on March 05, 2024, 08:09:24 amPlease simple provide the BIN data of your F4 measurements.While like to go into the deep issue as to see where the false scaling happens.While you used picture data or given table data as already normalized by ENBW to RBW* what is not the real FFT RBW as50MHz / 2M samples as 23.81Hz...This means for me, as this RBW is already multiplied by the FlatTop Window factor of about 3.8.In other words if you multiply your values by 2, you will come simple in the regions of my values even you use a filtered samples.So again, please provide this BIN file ... attached my by log scales.

author: gf
author_rank: Super Contributor
timestamp: March 05, 2024, 06:04:15 pm
content: Quote from: hpw on March 05, 2024, 03:44:18 pmWhat matters for the noise density calculation is neither the FFT bin spacing, nor the -3dB bandwidth (RBW), but the ENBW.The ENBW of Matlab's flattopwin is about 3.7703 x FFT bin spacing (or IOW, 3.7703 * sample_rate / num_fft_points).If you use a different variant of the flattop window, then the factor may be different.Code:>> x = flattopwin(100000,"periodic");>> x /= sum(x);>> X = fft(x);>> sum(X.*conj(X))ans = 3.7703Or even simper:Code:>> x = flattopwin(100000,"periodic");>> mean(x.*x)/mean(x)^2ans = 3.7703

author: Performa01
author_rank: Super Contributor
timestamp: March 05, 2024, 06:05:46 pm
content: A new measurement with attached data file:https://www.eevblog.com/forum/testgear/sds800x-hd-review-demonstration-thread/msg5373974/#msg5373974

author: hpw
author_rank: Frequent Contributor
timestamp: March 07, 2024, 10:29:35 am
content: Quote from: Performa01 on March 05, 2024, 06:05:46 pmOK, thank you so farfor the given BIN files.After using & investigation the given BIN files:- Important, to use the equal FFT size as 2M, to consider- My given spectrum's uses peak values- To get into the given rtHz figures,AVERAGINGis the critical part as > 32 times to use- This requires a high amount of sample given on the BIN file as 2M * 32 = 64M minimum as 100M samples as best size- Various FFT Window types as: None, Hann, Flatop and any better once (higher orders than 3) ....must deliver equal rthz figures-Hann= Hanning is a common mistake,as false used NAME, while simple Hanning do not exist at all and was misused for a long timeCurrently large BIN files of the SDS1000 HD, SDS6000A H12, SDS7000A are not posted yet.The main goal was to get BIN files and hidden to get the performance of those new 12 bit DSO's.Hp

author: gf
author_rank: Super Contributor
timestamp: March 08, 2024, 02:13:05 pm
content: Moved my answer from the Siglent SDS800X HD Review & Demonstration Thread - I think it fits better here.Quote from: Performa01 on March 08, 2024, 09:04:43 am@hpw: IMO, this should be sufficient. With Welch's method with 80% overlap and 2M window size (FFT size), you end up in averaging 234 spectra anyway. This results in a lower noise floor variance than averaging 100 independently captured 2M traces. [ Btw, ~80% overlap is a good value in conjunction with a flattop window. More overlap does not lead to a significant improvement of the noise floor variance, although even more spectra will be averaged. ]Don't know if there exists a ready-to-use .bin file loader for Matlab/Octave.Here is an Octave example with random samples:Code:% create 100M samples of white random noise, 80uV RMSsample_rate = 2e9samples = 80e-6 * randn(1,100e6);% analyzewin = flattopwin(2*1024*1024,"periodic")';[PSD,f] = pwelch(samples,win,0.8,[],sample_rate);% plotsemilogy(f,sqrt(PSD))grid onylim([1e-10 1e-4])xlabel("Frequency ")ylabel("V/sqrt(Hz)")

author: gf
author_rank: Super Contributor
timestamp: March 08, 2024, 10:47:40 pm
content: I tried a spectral analysis of SDS824X_HD_Binary_C4_1.bin (as posted by Performa01, 100M points, 2GSa/s, 500µV/div) with Welch's method (2M window size, 80% overlap), and it results in a very similar shape as theSDS824X_HD_ND_2GSa_1mV screenshot(although calculated from a different data set).[ PS: The plot is just calculated from the raw sample values, so the absolute vertical scaling is not yet correct.I was too lazy yet to find out how to find the scaling factor from raw sample values to Volts in .bin file header. ]EDIT: Does anybody know the "code_per_div" value for the SDS800X?The value 25 from the following paper obviously applies only to 8-bit samples.https://siglentna.com/wp-content/uploads/dlm_uploads/2021/09/How-to-Extract-Data-from-the-Binary-File.pdfIs it 256*25=6400 for 16-bit samples? (just a guess)EDIT: Added a plot with scaling factor code_per_div=480*16.Instead of the average PSD I have plotted the 95% confidence interval to get a feeling for the uncertainty.

author: Performa01
author_rank: Super Contributor
timestamp: March 09, 2024, 07:08:12 am
content: Quote from: gf on March 08, 2024, 10:47:40 pmThank you very much for your effort!The binary file should be in "V4" format, as described in chapter "SDS2000X HD | | SDS5000X After 0.9.6 | | SDS6000 After 1.4.1.0" in the application note "How to Extract Data from the Binary File of Siglent oscilloscope", E02A that you've already using.I have not looked closely, but this document doesn't seem to be perfect, otherwise I would have said you should just treat the SDS800X HD like a SDS2000X HD. In any case, I've already asked for that document to be revised.I can tell you for sure, that the SDS800X HD has 480 codes per division like the SDS2000X HD, not 25 like the ancient 8-bit SDS1000X.EDIT: oh, and it might well be that you need to upscale this value to 16 bits: 480 * 2^16 / 2^12 = 480 * 16 = 7680;

author: gf
author_rank: Super Contributor
timestamp: March 09, 2024, 01:06:03 pm
content: Quote from: Performa01 on March 09, 2024, 07:08:12 amI the mentioned document I found (from 2021), there are no HD models considered at all.Does a new version exist?QuoteThank you, 7680 gives plausible results. I'll update my previous plot with this scaling.

author: 2N3055
author_rank: Super Contributor
timestamp: March 09, 2024, 02:00:42 pm
content: Quote from: gf on March 09, 2024, 01:06:03 pmYou should stick to EU serverhttps://www.siglenteu.com/wp-content/uploads/2021/08/How-to-Extract-Data-from-the-Binary-File.pdfThis is version Perfoma and myself are referencing.Vertical scaling value is contained to in file, per channel

author: m98
author_rank: Frequent Contributor
timestamp: April 01, 2024, 05:30:52 pm
content: Any chance someone has already written a python/matlab/etc. parser for the sds2000x hd bin format?

author: hpsoftek1965
author_rank: Newbie
timestamp: January 09, 2025, 10:08:48 pm
content: Good morning everyone,with a little effort and little collaboration from Siglent I managed to create a program to acquire in Matlab the binary file generated by my new SDS824X-HD. The biggest problem was understanding the CODE_PER_DIV for the scope of the SDS8XX series I also asked Siglent but the only thing I got from them was the programming table where the 4 bytes of the CODE_PER_DIV are saved but not the direct value 7680. I attach a PDF file where there are 3 programs the first and the second are used to read the 4 bytes and decode them of the CODE_PER_DIV (I think they can also be used by other series and not just the SDS8XX HD series), the last program is the simple version that can be used knowing the value of the CODE_PER_DIV.Happy New Year to everyoneEnrico