## 3dB/0.5 pole filter?

DSP, Plug-in and Host development discussion.
S0lo
KVRian
663 posts since 31 Dec, 2008
BertKoor wrote:
S0lo wrote:@CinningBao

I'm sure I got you wrong here, but as the title says, a slope of 3db/0.5 octave is pretty much the same as 6db/1 octave. What did you mean?
Having read more than just the thread title, but the first post also, I think he meant arbitrary dB's per octave, other than the staple multiples of 6dB/oct, where the gain reduction is lower than 6dB/oct.
I got that impression too when I read the first post and a couple of others. But just wanted to make sure since the title is a bit vague

CinningBao
KVRAF
1819 posts since 15 Apr, 2004 from Capital City, UK
S0lo wrote:
BertKoor wrote:
S0lo wrote:@CinningBao

I'm sure I got you wrong here, but as the title says, a slope of 3db/0.5 octave is pretty much the same as 6db/1 octave. What did you mean?
Having read more than just the thread title, but the first post also, I think he meant arbitrary dB's per octave, other than the staple multiples of 6dB/oct, where the gain reduction is lower than 6dB/oct.
I got that impression too when I read the first post and a couple of others. But just wanted to make sure since the title is a bit vague
Hi S0lo - yeh, apologies for not being clear, I wanted to start a conversation about decimal filter poles and/or arbitrary filter slopes. I recently wondered why I've never seen dB-per-octave slopes with anything but factors of 6, which led me to ponder what principles of DSP design keep the filter designers within this 6dB/octave limit.

I've had a smorgasbord of answers here, understanding the detail of which will keep me busy for a few weeks; for this I am most grateful.

I _think_ I understand why true-variable filter slopes, eg 2.7dB/octave or 20.6dB/octave, (not just doing some elaborate crossfade from multiple sources) aren't a common thing - we just don't have the maths! So we cascade smaller components to emulate, as best we can, these non-standard slopes. I gather it might be easier to build it with electronic components in the real world, but since those principles are often difficult to translate to DSP, a digital solution would be nothing like the analogue solution.

please, someone tell me if I'm an idiot

matt42
KVRian
1077 posts since 9 Jan, 2006
CinningBao wrote: gather it might be easier to build it with electronic components in the real world, but since those principles are often difficult to translate to DSP, a digital solution would be nothing like the analogue solution
If anything it would be easier in digital. You just have to get the maths right and there's no need to worry about part tolerances and so on.

kryptonaut
KVRian
730 posts since 25 Apr, 2011
The basic reason for filters normally being multiples of 6dB/octave is because at heart they use integration and differentiation.

If you integrate cos(x) you get sin(x).
If you double the frequency (ie increase by one octave) and integrate cos(2x) you get sin(2x)/2
If you quadruple the frequency (increase by two octaves) and integrate cos(4x) you get sin(4x)/4

So each octave successively halves the amplitude of the output. A halving of amplitude corresponds to -6dB because gain in dB is defined as
gain = 20 x log(amplitude_ratio)
and log(0.5) is approximately -0.3

Similarly with differentiation, each octave doubles the amplitude - corresponding to +6dB per octave.

Any subsequent integrations will further halve the voltage gain, which is equivalent to subtracting another 6dB (because dB is a logarithmic scale). So integrating twice results in -12dB/octave, 3 times results in -18dB/octave, etc.

In theory, you can perform fractional differentiation which would produce slopes other than integer multiples of 6dB/octave, but the formula for doing so requires an infinite sum over the waveform so does not nicely translate to practical analogue or digital systems. You could try to window the sum in a digital model - but then you'd basically just be implementing a FIR filter approximating the desired response.

S0lo
KVRian
663 posts since 31 Dec, 2008
CinningBao wrote:
S0lo wrote:
BertKoor wrote:
S0lo wrote:@CinningBao

I'm sure I got you wrong here, but as the title says, a slope of 3db/0.5 octave is pretty much the same as 6db/1 octave. What did you mean?
Having read more than just the thread title, but the first post also, I think he meant arbitrary dB's per octave, other than the staple multiples of 6dB/oct, where the gain reduction is lower than 6dB/oct.
I got that impression too when I read the first post and a couple of others. But just wanted to make sure since the title is a bit vague
Hi S0lo - yeh, apologies for not being clear, I wanted to start a conversation about decimal filter poles and/or arbitrary filter slopes. I recently wondered why I've never seen dB-per-octave slopes with anything but factors of 6, which led me to ponder what principles of DSP design keep the filter designers within this 6dB/octave limit.

I've had a smorgasbord of answers here, understanding the detail of which will keep me busy for a few weeks; for this I am most grateful.

I _think_ I understand why true-variable filter slopes, eg 2.7dB/octave or 20.6dB/octave, (not just doing some elaborate crossfade from multiple sources) aren't a common thing - we just don't have the maths! So we cascade smaller components to emulate, as best we can, these non-standard slopes. I gather it might be easier to build it with electronic components in the real world, but since those principles are often difficult to translate to DSP, a digital solution would be nothing like the analogue solution.

please, someone tell me if I'm an idiot
It's actually a very good question. I have a long and a short answer to this. The short answer is, yes you can do it. By introducing a few zeros (or notch filters) after the cutoff. I just did a patch in SoloRack that demonstrates that.

The blue spectrum is a sawtooth filtered with a regular 12db/oct LP. Cutoff at 1Khz. The green spectrum is the output of the LP passed to two notch filters
ExportedImage.png
Now notice how the slope (of the green) changes when I move the notch filters frequency smoothly closer to the cutoff of the LP.
ExportedImage2.png
That reaches about 36db/oct. The transition is smooth which means all slopes between 12 to 36 are possible including fractionals. For even higher slopes, you may need to add more notch filters to avoid ripple side effects.
You do not have the required permissions to view the files attached to this post.

aciddose
KVRAF
12128 posts since 7 Dec, 2004
The slope is identical. The slope is the straight line. As you can see the combination of two slopes is 2nd order which is not a straight line.

Another slope would be a straight line at a different angle and not a 2nd or higher order curve.

What you're seeing is the two filters in series with their slopes combined. The 2nd filter though has its cutoff higher up and is flat below that. This is why the slope appears to gradually change from 20 dB/d to 40 dB/d.

There is no true 30 dB/d slope between the two: only the ramp in to the second slope from the first one due to the difference in frequency.

A true 10 dB/d (3 dB) or 30 dB/d (9 dB) would be one that goes from zero (flat) asymptotically toward the actual slope octaves above. It would become more and more straight.

If you want a clearer picture you need to double the range. So if you have a 12 dB/o (40 dB/d) filter ranging from 0 dB to -120 dB and you layer a second on top your range is now -240 dB.

In your graph you're displaying 90 dB, so you need to double it to 180 dB to see clearly the effect of placing two filters in series. You must only measure the slope at the point where it asymptotically approaches a straight line depending upon your accuracy requirements. Since we're dealing with very few pixels here you should measure it approximately after the distance from the asymptote is less than one pixel.

You will find the first slope = 40 dB/d
The second slope = 80 dB/d
Last edited by aciddose on Tue Aug 14, 2018 7:27 am, edited 1 time in total.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

S0lo
KVRian
663 posts since 31 Dec, 2008
aciddose wrote:The slope is identical. The slope is the straight line. As you can see the combination of two slopes is 2nd order which is not a straight line.

Another slope would be a straight line at a different angle and not a 2nd or higher order curve.
Mathematically speaking, I recon your correct. Musically speaking, it's doesn't matter. I highly doubt that any musician will ever notice the difference. And even if he did, I doubt that he would care.

aciddose
KVRAF
12128 posts since 7 Dec, 2004
Musically speaking nothing matters so no point in even going there.

Technically speaking you're 100% incorrect. This is more magical thinking and magical beliefs with no basis in reality.

Being uneducated and incapable of understanding the real properties of a system doesn't suddenly qualify you to make statements about them.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

S0lo
KVRian
663 posts since 31 Dec, 2008
aciddose wrote:Musically speaking nothing matters so no point in even going there.
No, musically speaking it does matter if the actual sound is too different than the goal sound.

aciddose
KVRAF
12128 posts since 7 Dec, 2004
CinningBao wrote:I _think_ I understand why true-variable filter slopes, eg 2.7dB/octave or 20.6dB/octave, (not just doing some elaborate crossfade from multiple sources) aren't a common thing - we just don't have the maths!
It's more "we just don't have the possibility." Like time travel in the "back to the future" sense of rigging up a flux capacitor and traveling at least 88 miles per hour while supplying 1.21 giga watts.

It doesn't work anywhere outside a sci-fi fantasy.

... the dimensional travel in Buckaroo Banzai is a better example though I think.
CinningBao wrote: So we cascade smaller components to emulate, as best we can, these non-standard slopes. I gather it might be easier to build it with electronic components in the real world, but since those principles are often difficult to translate to DSP, a digital solution would be nothing like the analogue solution.
Actually the implementation is identical whether digital or analog... with the usual discrete signal processing (DSP) caveats.

In other words a 3 dB filter is no different than a 6 dB filter and we can implement the 6 dB (integrator) with no major problems other than the usual caveats: do your research if you care.

So since the two are the same thing in both discrete and analog signal processing what applies to one (6 dB) inherently applies to the other (3 dB).
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

aciddose
KVRAF
12128 posts since 7 Dec, 2004
S0lo wrote:
aciddose wrote:Musically speaking nothing matters so no point in even going there.
No, musically speaking it does matter if the actual sound is too different than the goal sound.
Well, that's all fine and good but totally irrelevant.

The important thing is: no, running two filters in series will not get you anywhere closer to "less slope" because in series the transfer functions are multiplied.

So if you multiply a fraction like 1/2 by another fraction like 1/8, it can't ever be "less slope" or a higher value, it's always a lower value.

You need to instead add the transfer functions which is a simple matter of addition: running them in parallel!

So by mixing different 6 dB filters at different frequencies and amplitudes we can get an approximately "less" 3 dB slope.

By running them in series this is simply impossible. Any combination of integration and differentiation is going to either get you to some order of differentiation, integration or back where you started. It won't ever get you half-way.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

S0lo
KVRian
663 posts since 31 Dec, 2008
aciddose wrote:The important thing is: no, running two filters in series will not get you anywhere closer to "less slope" because in series the transfer functions are multiplied.
Simple question,

Can't a -12db/oct LP be made by cascading (series) two -6db/oct LPs ?

aciddose
KVRAF
12128 posts since 7 Dec, 2004
That's multiplication. 1/2 (6) * 1/2 (6) = 1/4 (12).

Decibels are a logarithmic scale, so:
ln(exp(6) * exp(6)) = 12

A logarithmic multiplication is = raising to a power.
Logarithmic addition is = multiplication.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

S0lo
KVRian
663 posts since 31 Dec, 2008
aciddose wrote:That's multiplication. 1/2 (6) * 1/2 (6) = 1/4 (12).

Decibels are a logarithmic scale, so:
ln(exp(6) * exp(6)) = 12

A logarithmic multiplication is = raising to a power.
Logarithmic addition is = multiplication.
So your answer to my question is "yes it can" ?
Last edited by S0lo on Tue Aug 14, 2018 9:38 am, edited 1 time in total.

S0lo
KVRian
663 posts since 31 Dec, 2008
shhhhh....t, double post again