Is there any way someone could explain OnePole filter (and perhaps very basic digital filters theory) without presenting a diagram, a formula, and a graph? In other words: how can one understand what a OnePole filter is without being fluent in physics/math and DSP? To be frank - the formulas give me anxiety, coming from non-CS, non-math background, I’m struggling to understand it.
A one pole filter is a filter with a very gentle slope (6db/oct). It essentially gives a weighted average of the current input sample and the previous one. Common usages include
-smoothing out envelopes or other control signals
-removing high frequency noise (lowpass)
-DC blocking (highpass)
-tone shaping
Most digital filters are essentially a weighted average of current samples and previous samples, but that’s a pretty reductive explanation.
In digital signal processing time is passing by in samples.
The number of samples which are passing by in seconds are specified by the sampling rate (for example 44100 or 48000). For a filter we want to evaluate a function for every sample, which has an input and an output.
The specific function we want to evaluate per sample for a OnePole filter takes the current value of the input signal and adds it to the prior output value. So we need to remember the value of the last output sample. To remember what has happened at the last output sample we want to use a single-sample feedback loop, a memory of one sample. This function is then adding up everything it receives as an input signal. Thats called integration.
But the OnePole filter is not just adding up these values, it has an additional control parameter, the filter coefficient, which is a value less than 1. If you multiply something with less than 1 it gets smaller.
For every sample the current input signal is multiplied by this coefficient (1 - coefficient) and is added to the prior output value multiplied by this coefficient. So for each sample we evaluate our OnePole filter function, the rate of change in amplitude of our output signal is limited by the filter coefficient. That’s called a “leaky” Integrator. The smaller the filter coefficient is, the more the integrator “leaks” and the faster the output is changing.
But integration is just one way to look at whats going on. Another way is Averaging. You can think of this as having two signals the input and the output signal and the filter coefficient is setting the mixing between these two, a weighted average like a crossfade. A weighted average changes the weight values for the input and output signal, but keeps them balanced so that the sum of both weights in still equal to 1 (eg. multiply your input by (1- coefficient) and multiply your output by coefficient).
The filter coefficient can for example be calculated in cycles per second (Hz) for a filter cutoff or time (sec) to smooth out control signals.
Generally, the steepness of a filters spectral cutoff correlates with the amount of delay introduced - filters with steeper cutoffs (higher order filters) typically introduce more delay. For example, a second-order biquad filter will generally introduce more delay than a first-order OnePole filter, especially near the cutoff frequency, but the exact delay depends on the specific filter design and isnt always directly quantifiable as a specific number of samples.