# Filter signal on oscilloscope using math functions

Is there a way to do a time domain low pass filter, in software, on a Siglent SDS2000X Plus series oscilloscope using these math functions?

The ones that stand out the most are d/dt and ∫dt. However, there is no sin(t), cos(t) :/

• I like the way you're thinking! Can you Implement something like $\int e^{\tau-t}C_1(t) \,\mathrm dt$? Apr 9, 2022 at 20:33
• @MarcusMüller Nope, only $e^{<contant>}$. All operators can only be applied to some arbitrary constant or any of the 4 channels, $C_{1-4}(t)$. Apr 10, 2022 at 9:39
• hm, that's not to great. As the answer below points out, only if you have a way to access a delayed version of the signal, or weigh the history of the signal somehow, you get something like a filter (of course, the integral itself is an IIR filter, it's just not useful). Apr 10, 2022 at 10:04

I see Avg, so that's one lowpass, but it's not very malleable. Then you have integral and, if you can time-shift a signal, you get a moving average: idt(x-delay(x,T)). But perhaps a better option would be, if you can assign custom constants, you can write your own transfer function in time domain. For example, a generic 2nd order transfer function can be written like this, in both integral and derivative form:

\begin{align} H(s)&=\dfrac{a_2s^2+a_1s+a_0}{b_2s^2+b_1s+b_0} \tag{1} \\ y(t)&=\dfrac{1}{b_2}\left\{a_2x(t)+\int{\left[a_1x(t)-b_1y(t)+\int{(a_0x(t)-b_0y(t))}\right]}\right\} \tag{2} \\ {}&=\dfrac{1}{b_0}\left\{a_0x(t)+a_1\dfrac{\text{d}}{\text{d}t}x(t)+a_2\dfrac{\text{d}}{\text{d}t}\left(\dfrac{\text{d}}{\text{d}t}x(t)\right)-b_1\dfrac{\text{d}}{\text{d}t}y(t)-b_2\dfrac{\text{d}}{\text{d}t}\left(\dfrac{\text{d}}{\text{d}t}y(t)\right)\right\} \tag{3} \end{align}

Where I've written the derivatives as nested since it doesn't look like you have the option for second, or more, derivatives (but maybe I'm wrong). Pay attention to the indices(!). At any rate, I do not recommend using the derivative version due to possible noise (it's not mandatory, but it may be).

Just in case you have doubts, all three versions work (all three traces overlap completely):

And a time-domain response for a sine with some 50 mVpk noise (the Laplace expression, V(w), is known to not be very cooperative in .TRAN, in LTspice):

• Unfortunately, Avg is not a moving window average, it's an average between $n$ displayed/triggered waveforms. Delay option is possible, I could put the signal on a second channel and use the deskew channel setting, but unfortunately is limited to 100ns. I would have to use an external delay. Time-domain transfer functions looks really promising, but I don't think they can be calculated in real-time in this form. I can't reference $y(t)$ in the formula, only $x(t)$ (the channel signal). Apr 10, 2022 at 10:08
• @Chris I never said Avg to be the moving average, I said it's a lowpass (fixed, since you get to see a constant over a fixed number of samples). Only then I mentioned the moving average: idt(x-delay(x,T)). If you can't reference the output then the denominator in (1) is not possible, which leaves your only other choice: a FIR, using the same time-shifted input, several times over (cumbersome). But the most efficient would be the moving average as described. Intrp (if it's iterpolation) is also a moving average. Last resort: zero out bins with FFT, but you'll get time domain artifacts. Apr 10, 2022 at 10:59
• I know, I know. What I was saying is that the way Avg is implemented on this oscilloscope cannot be used as an LPF. It's an average between waveforms, not subsequent samples. Intrp is also not usable as an LPF, because you can't subsample on oscilloscopes. Sample rate is automatic based on timebase and mem depth. Apr 11, 2022 at 12:03
• @Chris Looks like you're quite limited. What do those C, Z, and F buttons do? Alternatively, I see a "freq-analysis", maybe that ab has more options? Also, in the top menu, there's "analysis"? Apr 11, 2022 at 13:46
• Those are sources that can be used as arguments in functions: $C_{1-4}$ signal channels, $Z_{1-4}$ channel zooms, and $F_{1-2}$ functions to use the output of one function in another (only 2 math functions can be defined). "freq-analysis" has just FFT. "Formula Editor" has all the other tabs conglomerated into one (the other tabs have subsets of this). "analysis" has stuff like pulse search, counter, digital bus decoder, Bode plot and power analysis (input-output measurements) Apr 12, 2022 at 9:49