Replies: 14 comments
-
I have one more idea which relates to this: One way to use this result would be to display "≤" in front of the THD reading when it reaches the SQNR. References: |
Beta Was this translation helpful? Give feedback.
-
Interesting project, I will keep this in mind for the next version 3.5. Due to lack of time I cannot implement it at the moment, but I would ask you to provide a proof of concept or better a PR. |
Beta Was this translation helpful? Give feedback.
-
I currently don't have the time either. Still there's one more thing which came to my mind: It would be nice to indicate what the chances are for the trigger to miss or hit based on the current settings. I don't understand enough about this process to say if the probability is always the same. I would prioritise the display of hardware/software gain, oversampling and the trigger probability over the SQNR calculation. The SQNR wouldn't be fully accurate anyways since other deviations from the true value like noise and other errors which occur during the digital to analog conversion may apply. |
Beta Was this translation helpful? Give feedback.
-
Oversampling display was added with 7b8942a.
The triggering is the weakest point of the Hantek HW (it's non-existing). I do it in SW, as described there:
|
Beta Was this translation helpful? Give feedback.
-
I read that part but I still don't understand everything:
What does free running actually mean? Does the oscilloscope just send all the data? The entire point of my questions is to find out:
My naive assumption for short time windows is that only part of the signal is shown because at some point part of the signal is discarded. I'll introduce some math: So Now what is the value of Is T the same in |
Beta Was this translation helpful? Give feedback.
-
During 2. - 7. no data is captured, the scope is blind, the 1 ms or 10 ms Hold off is added too. Have a look at developer_info.md and triggering.cpp where I wrote a lot of comments. As already written above:
|
Beta Was this translation helpful? Give feedback.
-
This rule cuts the probability of a successful trigger in half. So in a best case scenario we have: If the processing time The maximum probability is strictly determined by So both values can in theory be improved by having a bigger buffer size |
Beta Was this translation helpful? Give feedback.
-
Here's the python code for the plot
import numpy as np
from matplotlib import pyplot as plt
# all numbers in SI units (e.g. seconds) unless specified otherwise
scale = np.array([1, 2, 5])
b = scale # time basis (5 s down to 1 ns)
for x in [1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8, 1e-9]:
b = np.append(scale*x, b)
W = 20*b # buffer size in time
h = 1e-3 # holding time (settings)
p = 0 # processing time (unknown)
T = W+h+p # duration of each buffer
P = W/(T)/2 # probability of a successful trigger on a singular event
#plt.plot(b, W)
#plt.plot(b, T)
plt.plot(b, P*100)
plt.grid()
plt.xscale('log')
plt.ylabel('probability in %')
plt.xlabel('time base in s')
plt.suptitle('Probability of a successful trigger on a singular event')
plt.title('(Neglecting processing time)')
plt.show() |
Beta Was this translation helpful? Give feedback.
-
How is the ratio of It seems very likely to me that a maximum probability between 75% and 95% ( |
Beta Was this translation helpful? Give feedback.
-
Another way to achieve an improvement would be to loosen the condition:
That would not be very elegant though. Edit: Unless.... On the other hand the W/w increase will cause a tradeoff between trigger probability and responsiveness at big time windows. Which is probably fine if it's communicated by an (expected or actual) fps number on screen. |
Beta Was this translation helpful? Give feedback.
-
The solution to these tradeoffs is a control which allows to switch between different modes/settings: |
Beta Was this translation helpful? Give feedback.
-
Dead endOoh... I have yet another idea which seems pretty elegant to me. But it has an obvious problem which I missed when it first came into my mind: It all boils down to continuous data capture. If there's no gap between following blocks that would make it possible to put two following blocks of the window size (10kS) as one block. The blocks get put into a FiFo queue of length 2. This would achieve 100% trigger probability while halving the response time compared to the current approach. It seems like it's somewhat similar to the rolling mode. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
This topic is going in a completely different direction, I will move it to the Discussions section and give it a more appropriate name. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Is your feature request related to a problem?.
The SNR of the oscilloscope varies based on the settings. This is confusing at the beginning. I'm pretty sure this is due to the oversampling and hardware/software gain.
Describe the solution you'd like
Display the oversampling factor and the hardware/software gain. This will stop users from wondering about the varying SNR and will make it easier to achieve high SNR when necessary.
Beta Was this translation helpful? Give feedback.
All reactions