Frequency Splitter Design

Started by JKowalski, September 28, 2009, 04:48:08 PM

Previous topic - Next topic

JKowalski

I am working on a crossover type splitter pedal.

The idea is simple

IN     -----> Low pass Bessel  ------> Out             IN   ---->  Mixer  ----> Out
         \                                                                    /
           --> High Pass Bessel ------> Out             IN ---

Basically, you have the option of running low freq through certain pedals, and high through others, then combining them back together again. You can also use it as a simple amplifier crossover.

I am using bessel filters for minimum phase distortion, since I am combining them at the end and that becomes pretty important...

The problem is adjusting the frequency split.

The low pass filter is easy:

http://www-k.ext.ti.com/SRVS/Data/ti/KnowledgeBases/analog/document/faqs/sssklpbs.htm

I just use a dual pot for the two resistors.

But the high pass:

http://www-k.ext.ti.com/SRVS/Data/ti/KnowledgeBases/analog/document/faqs/ssskhpbs.htm

The two resistors are different values, the ratio being approx 2/3. I thought about changing the value of one of the dual pot sections with a resistor, but then I remembered that it would mess with the taper, and the ratio wouldn't match over most of the travel.

I thought perhaps it wasn't THAT important, so I spiced it, and with tiny variations in component values the difference between the input and the mixer output with both filter outs going into it starts to get pretty bad. With the correct ratios, it's almost perfect.

Any ideas? Different filter designs, adjustment methods, complete overhauls, etc.  

Perhaps I just need to breadboard it, and see what it SOUNDS like, rather then fret over precision spice simulations.


MikeH

"Sounds like a Fab Metal to me." -DougH

JKowalski


Processaurus

I've been wanting an analog pedal like this too, after messing with the crossover thing in NI Guitar Rig on the computer.  It would be outstanding for bass.  I was going to look into one of the state variable filters that has simultaneous HP and LP outputs, because the frequency could be varied with a single pot.

JKowalski

Thank you for that! That's exactly what I needed.

It's giving me some phase error issues at the moment, but I'm reading up on it and tweaking and it's looking better.

Might have to add a bandpass out too, just for the hell of it  :icon_lol:


Needs a dual pot for the center frequency adjust but that's fine with me


Once I am perfectly happy with the pedal, I'll post it here for ya, with a layout too if you want it  :icon_biggrin:

composition4

I'd be up for that if you don't mind sharing your hard work!

Jonathan

JKowalski

Alright, I got a design all layed out in LTspice.

With the LP/HP outputs connected to the mixer terminals, the frequency response from input to output is almost totally flat, with only a 0.1dB wiggle at the center frequency that I just can't get rid of. Transient analysis shows an almost perfect copy of the input wave.

The phase response of the low pass and high pass are the cause of this, I think, since they are very slightly off from matching perfectly.

I think this is going to work great. I'll breadboard it tomorrow, and post the schematic if I like it IRL!

Processaurus

Quote from: JKowalski on September 28, 2009, 10:51:04 PM
Once I am perfectly happy with the pedal, I'll post it here for ya, with a layout too if you want it  :icon_biggrin:


I would love to make something like that, and a schematic would be outstanding, if you had the time and inclination.


Rob Strand

#8
If you add the response from the Bessel LP and Bessel HP you don't end-up with a flat frequency response.

The family of filters which gives you a flat frequency response is the Linkwitz-Riley second order filters (LR2).   These are common is designing speaker crossovers where you want the tweeter and woofer outputs to add together to give a flat overall response.

Note when you spit the bands and add them back together the the magnitude of the response is flat in magnitude but it's not unity gain.   In other words | LP + HP | = 1 but  (LP + HP) <> 1.   With analog LP and HP filters you can only get  unity gain with first order filters.

One way to get (LP + HP)  = 1  is to create the "high-pass" filter by subtracting 1 from the LP pass ie.   HP = 1 - LP.   You can do this by feeding the raw input signal and the LP out to a subtraction circuit - the subtraction circuit has no filter/caps, it's just a differential amp.   The response of the resulting HP filter isn't HP in the classical sense it usually has a bump around the cut-off point.   The advantage of this configuration.  Is you only need a single dual pot to control the LP frequency, the HP filter automatically tracks it because it's derived from the LP.    You can choose any LP but it's best to keep the HP bump down to a reasonable number of dB's.


         IN   --+---   LP  -------+---------------  LP out
                  |                     |
                  |                     +--- (-)
                  |                               > ------  HP Out
                  + --------------------- (+)

                    Subtractive crossover




Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

JKowalski

Quote from: Rob Strand on September 29, 2009, 04:15:32 AM
If you add the response from the Bessel LP and Bessel HP you don't end-up with a flat frequency response.

The family of filters which gives you a flat frequency response is the Linkwitz-Riley second order filters (LR2).   These are common is designing speaker crossovers where you want the tweeter and woofer outputs to add together to give a flat overall response.

Note when you spit the bands and add them back together the the magnitude of the response is flat in magnitude but it's not unity gain.   In other words | LP + HP | = 1 but  (LP + HP) <> 1.   With analog LP and HP filters you can only get  unity gain with first order filters.

One way to get (LP + HP)  = 1  is to create the "high-pass" filter by subtracting 1 from the LP pass ie.   HP = 1 - LP.   You can do this by feeding the raw input signal and the LP out to a subtraction circuit - the subtraction circuit has no filter/caps, it's just a differential amp.   The response of the resulting HP filter isn't HP in the classical sense it usually has a bump around the cut-off point.   The advantage of this configuration.  Is you only need a single dual pot to control the LP frequency, the HP filter automatically tracks it because it's derived from the LP.    You can choose any LP but it's best to keep the HP bump down to a reasonable number of dB's.


         IN   --+---   LP  -------+---------------  LP out
                  |                     |
                  |                     +--- (-)
                  |                               > ------  HP Out
                  + --------------------- (+)

                    Subtractive crossover






Well, using the state variable filter for the LP and HP outs I managed to get a good flat frequency response, confirmed with LTspice analysis.

Thanks a ton for the info though. Definitely gives me more options to explore if I am not happy with the end result.


I really needed to work on this project, as I have not done any in depth work with filters before. Great learning experience.

Stompin Tom

Sorry, nothing to really add, but I've been thinking about something like this for a long time. It'd be great for bass (as processaurus suggested) and I think useful for a dual compressor setup. It'd open up some OD options (like the Klon?) that could be cool after some tweaking. Anywho, I'm watching!

JKowalski

Ah, sorry, I'll get the breadboarding done tomorrow. I have to finish a scholarship application essay today.  :icon_sad:

Rob Strand

One thing I forgot to mention is you have to get the sign of the HP section right.  When you use separate filters for LP and HP on second order filters you usually end up with a notch, if you follow the HP with a inverting stage it removes the notch.  You can see this in figs 2 and 3 in this paper.

http://www.frazierspeakers.com/download/cross.pdf

This site has some stuff about subtractive crossovers,

http://sound.westhost.com/articles/derived-xovers.htm

Some of the conclusions are for speakers and don't always apply when splitting bands electronically.

FYI:  The trace-elliot bass amplifiers have a split band compressor.  I seem to remember the final response was *not* flat on that crossover; not sure what the motive was behind it.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

JKowalski

Thanks again for the excessive info  :icon_biggrin:

So I guess what it boils down to in the war of state variable filter vs. subractive crossovers is whether you want a 100% perfect end summation or a symmetrical filter splitting... The subtractive filter's symmetry looks pretty hideous but I get the principle that SIG - LP = HP, HP + LP = SIG exactly...

It is tempting, but I think perhaps the state variable is the way to go simply because it has such perfect filter symmetry in terms of shape and rolloff, giving us a balanced frequency output if you know what I mean. And the summed frequency response's distortion looks, in my simulations, low enough not to be at all noticable (less than 0.1dB dip)

Finished that essay... ugh... At least I can look forward to a full day of worry-free tinkering tomorrow!

Rob Strand

There's nothing wrong with the state variable.

You might want to check the sign of the HP section is correct in that you don't end-up with the notch.
I have this feeling you have to invert the HP output (or LP, whatever).   

Off hand,    the high pass output is s^2 /second_order_polynomial  then it passes through two inverting integrating stages,
so the numerator is s^2 * (-1/s) * (-1/s) =  +1.   A numerator of +1 is what you want for a low pass.   The thing is
the HP is +s^2 and the LP is +1, so when you add them you get 1+s^2 which is a notch.   In other words you have to invert
one of them. 

Anyway check it out - see if you can find an example or thoroughly check on spice.
Send:     . .- .-. - .... / - --- / --. --- .-. -
According to the water analogy of electricity, transistor leakage is caused by holes.

JKowalski

Yup, you are correct.

I inverted one of them already. That's how I got the flat response  :icon_biggrin:

manis404



(This is the last part - tonestack?- of the MT-2)

I think BOSS engineers tried to do that in the boss MT-2 metal zone. I could be wrong though.
Sometimes to do it right, you have to Do It Yourself.

SeanCostello

#17
Do you need a 2nd order crossover? The Sallen-Key, Linkwitz-Riley and state-variable approaches will all yield 2nd order (or higher) crossovers. This gives you a -12 dB rolloff per octave in the lowpass band, which may be right for what you want to do, but it might be too steep.

A 1st order Bessel crossover is very simple:

lowOut = onePoleLowpassFilter(input); // RC lowpass filter, with buffering
highOut = input-lowOut; // highpass output is the input minus the output of the lowpass filter

I wrote the above in pseudo-programming language, but it should be easy to implement this in the analog domain. This crossover is well-behaved, as summing the low and high outputs results in the original signal. By varying the frequency of the lowpass filter (varying R in the RC filter), you can alter the crossover point. A single pot would work nicely for adjusting the crossover frequency.

Not sure what the "klon" references above were about, but this could be used for a distortion pedal, where the high frequencies are distorted to a greater degree than the low frequencies, for extra clarity. It would give you the distortion characteristics of something like the Tube Screamer (or other distortions that highpass filter before running it through the nonlinear part of the system) while allowing the lows to pass through with little to no distortion. For lower level signals, the results would be a cleanish full-frequency range signal, while for high level signals, the output would have a non-muddy distortion.

Sean Costello

aziltz

it kinda sounds like it might be easier to control the cutoff frequency in the subtractive method right?  1 Filter point instead of matching two separate filters?

JKowalski

Quote from: aziltz on September 30, 2009, 07:36:53 PM
it kinda sounds like it might be easier to control the cutoff frequency in the subtractive method right?  1 Filter point instead of matching two separate filters?

The state variable filter is frequency adjustable with a dual pot. Two resistors wired as rheostats, of the same value. It's not much trouble at all.

Since this is kind of dragging on, maybe I can sum up each type with it's pros and cons

State Variable Filter:
- Needs a Dual Pot to adjust center frequency
- Give simultaneous Lowpass, Highpass, and Bandpass outputs
- Flat frequency response with LP and HP outs mixed, only distortion is a barely noticeable 0.1dB wiggle near the center frequency when properly adjusted
- LP and HP filters are totally symmetrical to each other

Subtractive Filter:
- Mixed LP and HP forms perfect copy of input waveform
- Whatever filter is derived, does not match the filter it is derived from - for example, if you have a LP filter and subtract it from the original signal for a HP, the HP has a completely different filter rolloff, and a large gain bump before it levels off. The LP and HP filters are not matched in response
- Easy to control, only need to adjust one filter section






Alright. I still can't get around to breadboarding this thing. I have to finish up a delay pedal for my brothers birthday on Saturday.... It's gonna take alot of work these next few days. Just so I don't leave everyone hanging, I suppose I will just post the schematic as it is at the moment on my LTspice. Feel free to comment on it and make suggestions. Remember, this has only been tested on LTspice so far. If anyone else wants to b-board it and leave a review, feel free