I don't like that you are not seeing a problem with linear interpolation. That tells me we are missing something. Let's minimize the variables. The attached were created using your latest software/firmware/FPGA. Same Marconi RF generator, Pasternak splitter and cables. Using different settings than before. Note how it glitches positive on the rise and negative on the fall. Also note, all four glitch synchronously.
For example, while streaming I drag the screen you are expecting it to error out? It is very possible this is what happened in this case.
I can certainly start providing you with data using your NPZ format, however without being able to view the data, I have no way to know if I would be sending you anything useful. It keeps getting back to the lack of some sort of min/max function.
For the custom software, baby step 1, showing raw CDF, Gaussian error applied and inverse Gaussian error applied. Is this what you are expecting?
We can't tell in detail without zooming into the interesting area. But you should either:
1. Fit a Gaussian error function directly to the CDF data, or
2. Apply the inverse Gaussian error function to the CDF data and then fit a line with proper weights.
Both approaches are equivalent (to first-order).
...
It will also help the fit stability (particularly with method 2) if you discard all data where the CDF is <0.1 or >0.9.
The Gaussian error function should never be applied to the data.
Looking at the previous data I provided, you only plotted channels 1&2. Also note that you only plot 119 of the 150 sweeps. I wrote a simple viewer for your CSV files to show all of the data and have included the data for channel 3. I assume these micro glitches toward the peak are considered normal based on your previous statements.
From the 4.3.3 example, there are only three data points that meet that criteria. Showing the raw plus two methods for these three points. Using least squares for linear fit of the inverse Gaussian Error.
Totally lost me but I suspect based on your comment about them being the same, there is something wrong with what I have shown.
The inverse Gaussian error function (as described in 4.3.4) should send 0.5 to 0. As a sanity check, verify that:
g(0.5) = 0
g(0.8 ) = 0.5951
g(0.2) = -0.5951
1 Start by selecting only CDFs that meet: "The fit is performed only on the subset of entries satisfying 0.1 < F < 0.9 for numerical stability."
2) g(x) = erf^-1(2x-1) is then calculated for the CDF subset.
2) run a linear fit on this data using some sort of weighted numbers.
3) For the weights, we take the derivative of CDF raised to ^-2
1 Start by selecting only CDFs that meet: "The fit is performed only on the subset of entries satisfying 0.1 < F < 0.9 for numerical stability."
2) g(x) = erf^-1(2x-1) is then calculated for the CDF subset.
2) run a linear fit on this data using some sort of weighted numbers.
3) For the weights, we take the derivative of CDF raised to ^-2Yes, this should work. The extracted voltage is then just the x-intercept of the fitted line. This is how it's done in the software.
The derivative of g should always be positive - if the blue line is g'(F), then that part looks incorrect.
Remember when using a scope meant adjusting a few knobs?
If correct ...
So the weights now come out correctly. Least squares fit?
If you get the same results, the next question I have is there any difference between this and what your software is doing?
Painful for you I'm sure but I appreciate you hanging in there.
Also, this entire time I have been running tests looking for a single glitch using your software (and not touching the screen) and everything is clean. I tried all sorts of settings.
Does your hardware support a low power draw mode? Basically, I want to turn it off when not in use without having to pull the cable.
Do you have any plans to add THD measurements to verify performance?
There is nothing in the calibration sheet or manual that talks about the linearity.
Thinking about the inputs, any idea where they start to compress?
The inputs do not compress - they're not sent through an amplifier. We have found the THD to be largely independent of signal amplitude.