I was instructed in another question here that if a one pole (6 dB/oct) low pass filter is fed a discontinuity (ie. going from 1 to 0) it will take ${\tt time} = \frac{1}{2\pi f}$ to reach $1/e$ amplitude.

If that is in fact correct, what would be the response time to reach $1/e$ amplitude of a 3 dB/oct LPF? Or a 1 dB/oct LPF?

Or to phrase the question differently, what amplitude would a 3 dB/oct LPF reach by: ${\tt time} = \frac{1}{2\pi f}$?

I built a Spectral Tilt Filter from Julius Orion Smith III's article here and copying into into C++ from its implementation in the Faust library which I posted here.

It allows varying LPF slope from 0 dB/oct to 6 dB/oct. But I'm not sure how to predict the time response of varying slopes.

Any help?


1 Answer 1


The problem with the filters you want, e.g., 3dB/octave or 1 dB/octave, is that they are not simple filters: they are carefully designed by some very clever people, including at least one person here, e.g., robert bristow-johnson, and the aforementioned JOS III. So it is very helpful to look first at Pink (1/f) pseudo-random noise generation and all the answers and comments there. It is simply excellent.

Now if you follow the link, my answer there (at the bottom!) references Prof. Orfanidis's excellent book and I show how the transfer function, that he gave in his book, performs in terms of making approximate pink noise. So that transfer function is an approximate 3dB/octave low pass filter that can be used to find an approximate step response. This is illustrated below.

To begin, Orfanidis gives the transfer function of his "pinking" filter (his equation B.29, p. 736) as

$$ H(z) = G \times { {(1 - b_1z^{-1}) \space (1-b_2z^{-1}) \space (1 - b_3z^{-1})} \over {(1 - a_1z^{-1}) \space (1-a_2z^{-1}) \space (1 - a_3z^{-1})}} $$


$$ b_1 = 0.98444, \space b_2 = 0.83392, \space b_3 = 0.07568 $$ $$ a_1 = 0.99574, \space a_2 = 0.94791, \space a_3 = 0.53568 $$

These poles and zeroes were used to provide the necessary input for a simulation program's transfer function block, shown in the figure below. The simulation software is Extend (by Imagine That, Inc.), augmented with libraries of blocks I programmed over many years. There is obviously no requirement to use this particular software.

The figure shows the step response simulation model:

Step response test simulation

The transfer function block has its required inputs as shown in the next figure:

Transfer function for pink noise

This block was used, with no parameter changes, to generate the Orfanidis B.9 approximate 1/f noise in my answer at the above link. The simulation step size, T, was 0.001 s.

Then the unit step response, from the scope, is the red trace in the figure below:

Step responses

For comparison, the cyan trace shows the response of a simple RC LPF with RC = 0.221 s. This RC time constant was chosen so that both responses settled to within 99% of the final (unity) value at the same time, i.e., 1.02 s.

So this "pinking" filter's unit step response is clearly not the same as a simple RC LPF. The bottom line is that if you can get transfer functions that approximate the roll-off behavior you want, then getting numerically evaluated step responses is not so hard. I hope this helps a bit!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.