# Predicting decay time of a resonant bandpass filter?

In a typical resonant bandpass filter, resonance is set as none at 0 and full at 1, such that the filter rings infinitely at 1 and not at all at 0.

If there is a two-pole resonant bandpass filter, with an impulse excitation to a maximum amplitude of "1" and resonance setting between 0 and 1:

What is the mathematical equation that would allow you to predict the decay time of the resonant filter based on its resonance setting? For example, to an arbitrary level of "1/e"? ie. To 36.7879% its original amplitude?

Thanks.

Update June 3, 2018 @ 5:17 PM

Thanks to some good answers below, I now better understand the problem as follows:

• I need an equation to solve for Q or ζ of the filter based on an input of time (where that time represents seconds to reach 1/e amplitude relative to a starting 1 amplitude).
• The bandpass filter will only be needed in an "underdamped" condition, ie. Q>0.5.

Thanks again. This has been very informative and I think this should be a clearer and more answerable question.

• Do you know of the Q factor? Your "resonance setting" comes across as an attempt to re-invent the same concept. – jms Jun 2 '18 at 21:28
• Thanks @jms! Very helpful question. Instead of using a "resonance factor" to set the filter, I can set it by bandwidth in octaves. From wiki: wikimedia.org/api/rest_v1/media/math/render/svg/… , I can solve for Q from BW & fo. Q is then the number of oscillations to reach e^-pi relative to original amplitude. Thus Q/fo = time to reach e^-pi amplitude. I am interested in calculating time to reach 1/e amplitude. So I would then just need the general amplitude decay equation to bridge that gap. Any help? Thanks again! – mike Jun 3 '18 at 6:01
• Is amplitude decay over time based on y=1/c^x? If so I can calculate c given that data (time to reach e^-pi amplitude). With c, I can then find any amplitude at any time. Is this correct? Thanks! – mike Jun 3 '18 at 6:12

I think I've got it worked out using "bandwidth" in octaves as my primary control point, but would appreciate if anyone can check my work.

According to wikipedia, the Q of the filter can be calculated as follows:

https://wikimedia.org/api/rest_v1/media/math/render/svg/e8d004126524d7bedf71098dc6d9c0ebe5935322

Again according to wiki, Q then represents the number of oscillations to reach e^-pi relative to original amplitude.

Thus: Q/fo = time in seconds for the filter to reach e^-pi amplitude.

I am interested in calculating time to reach 1/e amplitude. So I would then just need an equation to describe the general amplitude decay.

Would amplitude decay over time follow a curve of y=1/c^x?

If so, substituting in y = e^-pi would allow me to solve for c as: e^(pi/(Q/fo))

With c, I can then solve x at y=1/e (ie. time at my target amplitude):

y= 1/c^x

x= (ln(1/y))/ln(c)

x= (ln(1/(1/e))/ln(e^(pi/(Q/fo)))

x= (ln(e))/ln(e^((pi*fo)/Q)

x= 1/((pi*fo)/Q)

x= Q/(pi*fo)

This will then tell me the time to reach amplitude 1/e at the given bandwidth setting, which is what I want.

It really simplified to something very easy and elegant. Is this correct? Or did I screw something up in my reasoning or approach?

Thanks again

• Meant to comment before the answer, forgot: since you are interested in a time decay, you cannot have a formula involving frequency. – a concerned citizen Jun 3 '18 at 13:40
• Seems to work with Q=pift! And it's the same equation I got from your work once I subbed in the y=1/e and simplified. – mike Jun 3 '18 at 22:15
• Now I see, I thought you're using a formula as a function of f, rather than t, not that you're using a fixed term, f. – a concerned citizen Jun 4 '18 at 5:57

A band pass filter would typically have a transfer function like this: -

$$H(s) = \dfrac{s2\zeta\omega_n}{s^2 + s2\zeta\omega_n +\omega_n^2}$$

Where $2\zeta$ is 1/Q

And $\omega_n$ is the natural resonant frequency of the filter.

For an LC bandpass filter, $\omega_n$ = $\dfrac{1}{\sqrt{LC}}$

To convert this to the time domain (due to an impulse response) there will be three time-domain solutions: -

• $\zeta$ < 1 (under-damped)
• $\zeta$ = 1 (critically-damped)
• $\zeta$ > 1 (over-damped)

There is, unfortunately not a one-size-fits-all solution. Life gets easier if you set $\omega_n$ to 1 and then look at the inverse Laplace table for the three scenarios.

For a critically damped situation ($\zeta = 1$): -

$$H(s) = \dfrac{2s}{s^2 + 2s +1}$$

And, using inverse Laplace tables you find the solution as: -

$$h(t)=2e^{-t}-e^{-t}\cdot \:2t$$

For an underdamped situation with $\zeta$ = 0.5 you get: -

$$H(s) = \dfrac{s}{s^2 + s +1}$$

And this inverse transforms to: -

$$h(t)=e^{-\frac{t}{2}}\cos \left(\frac{\sqrt{3}t}{2}\right)-\frac{1}{\sqrt{3}}e^{-\frac{t}{2}}\sin \left(\frac{\sqrt{3}t}{2}\right)$$

For an overdamped situation where for example $\zeta$ = 2 you get: -

$$H(s)=\dfrac{4s}{s^2 + 4s+1}$$

And this inverse transforms to: -

$$h(t)=4e^{-2t}\cosh \left(\sqrt{3}t\right)-\frac{8}{\sqrt{3}}e^{-2t}\sinh \left(\sqrt{3}t\right)$$

You can use this really good interactive calculator instead of tables should you wish: - What is the mathematical equation that would allow you to predict the decay time of the resonant filter based on its resonance setting?

The above formulas are the only ones I can recommend.

Andy's answer is good, but it can be generalized. For the transfer function:

$$H(s)=\frac{2\zeta\omega_n s}{s^2+2\zeta\omega_n s+\omega_n^2}$$

the inverse Laplace for all of the three mentioned cases have the same exponential decaying term in them:

$$exp(-\zeta\omega_n t)$$

That will be the envelope of the whole response. The rest of the time response is either of the form $\sin{t}+\cos{t}$ (oscillating, for underdamped), or $\sinh{t}+\cosh{t}$ (for overdamped), or a fixed term as a function of time, involving $\omega_n$ and $\zeta$.

If you really want them in full, here they are:

• overdamped:

$$h(t)=\exp(-\omega_n\zeta t)\left[2\omega_n\zeta\cosh(\sqrt{\zeta^2-1}\omega_nt)-\frac{2\omega_n\zeta^2\sinh(\sqrt{\zeta^2-1}\omega_nt)}{\sqrt{\zeta^2-1}}\right]$$

• critically damped:

$$h(t)=\exp(-\omega_n\zeta t)\left[2\omega_n\zeta(1-\omega_n\zeta t)\right]$$

• underdamped:

$$h(t)=\exp(-\omega_n\zeta t)\left[2\omega_n\zeta\cos(\sqrt{1-\zeta^2}\omega_nt)-\frac{2\omega_n\zeta^2\sin(\sqrt{1-\zeta^2}\omega_nt)}{\sqrt{1-\zeta^2}}\right]$$

If you need to find the time when the envelope (alone) reaches a certain value x, then it's as simple as:

$$\exp(-\omega_n\zeta t)=x => -\omega_n\zeta t=\log x => t=-\frac{\log x}{\omega_n\zeta}$$

Update: This is only valid for the underdamped case, as there is a clear case of an oscillating term -- cos()-sin() -- multiplied by an inverse exponential. For the other two cases, it's impossible to do it analitically, as the time, t, is in more than one term, and that term is not oscillating, but either linearly variable (critically damped), or exponential (overdamped), so simplification is not possible. Also see the last pargraph.

Don't forget that, in all three cases, there is an additional term that can be factored out: $2\omega_n\zeta$, which gives the amplitude of the initial decay.

Note the $\omega_n$ in there, which tells you that the higher the frequency the higher the amplitude(!). This is related to an impulse that has the area of 1 (e.g. for a 1ms impulse, the amplitude is 1000). If you want to consider only a unity amplitude impulse, of zero duration (unity amplitude Dirac), then the extra term can be omitted (discarded).

Caveat emptor: the shape of the decay will not correspond to the final result in the case of $\zeta$>1, due to the hyperbolic functions! If the sinh() term would have been just like the cosh() term, the whole expression would have been reduced to an exp(-t), but sinh() is multiplied by $\frac{\zeta}{\sqrt{\zeta^2-1}}$, which means that the whole cosh()-sinh() term will "explode" if it were all by itself. Being multiplied by the exp() in front limits the response, but the envelope is no longer the same (contrary to the underdamped case). Here is what I mean: G1, G2, G3 together with C1, C2 form the bandpass filter having V(o) as the output. V(exp) is the exponential decay (together with the $\omega_n\zeta t$ term, see Rpar=2*z*wn in B1), V(sinh_cosh) is the cosh()-sinh() term, V(test) is the multiplication of the previous two, compared with V(o) in the lower-most plot (they are the same). The upper two plots show the individual responses of the envelope and of the hyperbolic term -- this is what I meant when I said it "explodes", it goes to $-\infty$. And here is why I said that the envelope will not match the response, only by itself, due to the hyperbolic term: Neither the output (blue trace), or its absolute value (black) will match the envelope alone (red). Which means that the solution above will not work, and the whole expression of the impulse response has to be considered, which means that, sadly, you're out of luck, since the expression contains the time, t, in both the envelope and the hyperbolic term. Even if you were to equivalate this with its equivalents, cosh=[exp(-x)+exp(-x)]/2 (minus for sinh), you cannot apply a logarithm to each exp(), only as a whole, which means the time cannot be extracted analitically, so you're stuck to numerical methods.

• Thanks! That's very helpful. I looked at the situation and I will always be dealing with the underdamped condition (Q≥1). At the resonant frequency (ie. ωn?), I believe ω=2pi*f and ζ=1/(2Q). What I lastly then need is an equation that will solve for ζ if input with a time, where that time presents seconds to decay to 1/e amplitude from an initial amplitude of 1. Can you help further to formulate this? I'd appreciate it if so! I tried putting your equation into desmos to confirm it is an amplitude equation starting from y=1 at x=0, but it didn't graph: desmos.com/calculator/ifkbvio6wg – mike Jun 3 '18 at 20:03
• I think the problem with graphing is coming from the sqrt(ζ^2-1) components. For underdamped, Q>0.5, thus ζ<1. If ζ<1, then this will always be a square root of a negative number. Was this intentional or an error? It obviously can't compute. – mike Jun 3 '18 at 20:16
• @mike You're right, I copy-pasted the darn mathjax and forgot to reverse 1 with $\zeta$ (since $\zeta$<1). I'll correct and also try to update with an analytical solution for your case. There is a caveat, though, I'll also add that. – a concerned citizen Jun 3 '18 at 20:20
• Awesome thanks! If it helps, I mainly need this to be relatively accurate between 1≤Q≤~3000. After that it starts resonating almost indefinitely which is not needed. Thanks again. Looking forward to your solution! – mike Jun 3 '18 at 20:31
• Hahaha. Thanks concerned citizen. That was very helpful. So for time to level 1/e, it all just simplifies to: Q= TpiFo, which is what I had figured out yesterday when I posted my own answer to the question myself. I just retested my project and it seems to work fine like this. There was another error in the project which I didn't see until today, and I didn't bother to retest it with that fixed today. Anyway, problem seems to be solved. Thanks a bunch. I've learned a lot! – mike Jun 3 '18 at 22:14