Active all-pass filter design questions

Status
Not open for further replies.
I'd like to build a set of all-pass filters to change the shape of the subwoofer phase curve in my car audio application in order to get it to align more closely with the midrange drivers. Based on testing and modeling of the all-pass filters in REW, I've come up with three all-pass filters to apply:
1) fc=30 Hz, Q=6
2) fc=63 Hz, Q=3.6
3) fc=95 Hz, Q=2.3

Doug Self's book advises to avoid the two single op amp all-pass filters for various reasons, so that really leaves the two op amp MFBP and Fliege circuits.

My first question for you guys is this:
If I use the MFBP configuration for these three filter sections, is there any way to combine them such that they all use the same summing amplifier stage? That would cut two op amps out of the circuit.

Next question:
Does it matter which order I arrange the filters in the circuit?

Thanks!
 
For working into the same amp stage the filters are too close together, they influence each other and you won't get the delay you're aiming for and probably not the frequency response you'd want.

From the Q values I assume it's a kind of ported subwoofer. A sealed enclosure would probably be a better option, more uniform response and much lower group delay, easier to correct and more precise too. Another, really cheap solution would be a DSP board, i.e. the Sure DSP or maybe the MiniDSP.
 
I actually already have a DSP in the system, but the Rockford Fosgate 3sixty.3 doesn't have all-pass filter capability.

I've applied the three filters I listed above to the actual measured phase response of the sub and know that they will produce the desired effect. The interaction between them is a requirement to get the curve shifted to where I need it.

I'm just not experienced with op amps and would like to learn. I suppose I could add another DSP to handle the phase corrections, but I expect it's going to have to be something pretty powerful based on what I've read about RePhase. I'm not sure the bare bones critter will cut it.

This circuit should just take a pair of quad op amps and some misc resistors and capacitors. I'd expect about $30 worth of parts, tops.

But making your own phase correction filter: Priceless.
 
I actually already have a DSP in the system, but the Rockford Fosgate 3sixty.3 doesn't have all-pass filter capability.

I don't think it's a great idea mixing up the DSP and analogue filters since you get the drawbacks of both worlds. You can realize all-pass filters with both mentioned DSPs, for the mini-DSP are guides out there (i.e. this one of the Mini-DSP site itself, it's possible with the Sure aswell according to some forums, didn't find a guide though.

I've applied the three filters I listed above to the actual measured phase response of the sub and know that they will produce the desired effect. The interaction between them is a requirement to get the curve shifted to where I need it.

No, you don't. Calculate the changes in the voltages and dynamic ranges and apply it to the behaviour of the OP, I'm pretty sure it won't like it, at least former experiments didn't lead to satisfactory results. Give each filter it's own OP, it's not that expensive.

I'm just not experienced with op amps and would like to learn. I suppose I could add another DSP to handle the phase corrections, but I expect it's going to have to be something pretty powerful based on what I've read about RePhase. I'm not sure the bare bones critter will cut it.

Don't mix different DSPs! Besides adding another factor to the group delay, you're adding several A/D-D/A conversions to the signal since the Fosgate can't handle any digital input or output. That results in quantization errors and artifacts. And, ofcourse, noise.
The Fosgate 3Sixtys are very unflexible (i.e. no parametric EQs etc.) and very expensive, there are so much better options by replacing it.

This circuit should just take a pair of quad op amps and some misc resistors and capacitors. I'd expect about $30 worth of parts, tops.

But making your own phase correction filter: Priceless.

Getting back some hundred bucks and having the better sound is quite a thing.

Realizing some other DSP is for this application actually viable while getting money out of it is surely 'much more priceless'.
 
all phase filters have a group delay by definition, that is because they work that way.
you need at least an LRC meter to measure the caps accurately for the relative high Q filters. opamp loop gain should be no problem for LF and Q.
I once built analog delay derived crossovers (AES jvanderkooy) using 3 stages of 5th order bessel all pass filters. using infinite feedback all pass topology. inserting a separate DSP will create more group delay than you think..
 
all phase filters have a group delay by definition, that is because they work that way.

[...]

inserting a separate DSP will create more group delay than you think..

That was what I was talking about, additional group delay because of another DSP. Surely most ppl already know every DSP adds latency/group delay, so a 2nd DSP might not exactly be the thing one want to add in such a setting. What's a lesser known fact is, a lot of DSPs latency increases with more complex filters and that this is not only a FIR filter issue. So recreating the exact filter topology might not result in the same group delay correction as measured or calculated. After another correction of the filter there might be again a different deviation from the needed group delay profile. And that's only one reason why it's a bad idea to daisy chain DSPs.
 
ICG, you must be thinking of the older 3sixty.2. I had a pair of those in the car before the .3 came out in 2011. The 3sixty.3 has 31 bands of parametric eq (max Q=6) per channel, and 8 channels. It's a big step up over the .2, and noticeably better sound quality. It also has digital optical input. My source unit in the car is an Android tablet running USBAPP which bypasses the Android audio code and DAC and outputs through the USB OTG. The USB signal goes to an optical converter, and then the optical goes into the 3sixty.3. So there's only one conversion taking place, and that's the D/A out from the 3sixty.3. After that are two nice Class D amps. The system has no noise - it's really pretty amazing. Back in my day we had to listen to cassette tapes…

But back to the original op amp question:

The MFBP all-pass filter is a 1-2BP arrangement with an inverting BP section followed by a summing amplifier that multiplies the BP output by 2 and sums it with the input. It takes two op amps, one for the BP and one for the summing.

An externally hosted image should be here but it was not working when we last tested it.


What I'm trying to figure out is if I could use multiple BP sections but then just one summing section. Doug Self's book indicates that most of the noise in the MFBP filter design comes from the summing stage, so if I could eliminate 2 of the 3 it would probably perform better.
 
ICG, you must be thinking of the older 3sixty.2. I had a pair of those in the car before the .3 came out in 2011. The 3sixty.3 has 31 bands of parametric eq (max Q=6) per channel, and 8 channels. It's a big step up over the .2, and noticeably better sound quality. It also has digital optical input.

I can't remember when I saw it, it's probably (or even likely) the older version.

My source unit in the car is an Android tablet running USBAPP which bypasses the Android audio code and DAC and outputs through the USB OTG. The USB signal goes to an optical converter, and then the optical goes into the 3sixty.3. So there's only one conversion taking place, and that's the D/A out from the 3sixty.3.

There's still the 2nd DSP if you go'd with that plan. Besides conversion there's still the latency.

Whatever you'll use in the end, make sure to measure and verify it. GL!
 
FWIW, I'm using this single OpAmp allpass design (not covered by D.Self?) which is unity gain and has rather low noise (see noise gain plot) as well as reasonably low component value sensitivity. Component values are a bit tricky to find, though.

Note that E1 is for simplicity of simulation (value finding), actually R2 is a divider from output to GND with output resistance of R2 and gain factor g.
Use R3 or R4 to fine-trim gain flatness.
 

Attachments

  • SingleOpAllpass.gif
    SingleOpAllpass.gif
    7.1 KB · Views: 428
  • SingleOpAllpass(NoiseGain).gif
    SingleOpAllpass(NoiseGain).gif
    9.6 KB · Views: 418
Last edited:
For the original question, yes you can omit the intermediate active summers. Thevenin equivalents and some recursion will get you there. With three stages it's going to be a lot of resistors and it'll be a write-only circuit diagram ;-)
 
................
VB78bHy4kU2O3y05nEtz7t6Rf9gG2WVDYwnpum1Hb2VZhX9b5hD-tg


What I'm trying to figure out is if I could use multiple BP sections but then just one summing section. Doug Self's book indicates that most of the noise in the MFBP filter design comes from the summing stage, so if I could eliminate 2 of the 3 it would probably perform better.
the summing opamp sees two inputs and adds them.
One channel is the R, the other channel is the BandPass+R/2
Just repeat the BandPass+R/2 for each extra channel.
The summing stage just adds all the signals coming in from the R or R/2

But be careful you don't ask the summing stage to output more than the maximum of that stage. It does ADD all the input signals.
You could use AR to adjust the maximum output so that it never clips on worst case inputs. AR could even be made switchable for different output sensitivities.
 
Last edited:
KSTR, can you provide a little more detail on that single op amp allpass filter? With the two caps in there I'm assuming it would be a 2nd order, which is what I was after.

Thanks!
Hi,
Yes it's 2nd order. I now found the offical name for the circuit, it's called the Steffen circuit, dated 1975 (and I see it mentioned by D.Self but he finds no advantage in this circuit compared to the two OpAmp "1-2*BP"-method... this is puzzling as the Steffen circuit is really elegant and robust).

For a reference, look up "Active RC Filters Using Opamps", click the Springer link, a PDF will open. See Fig 2.13 on page 43, the associated text starts on page 47, last paragraph. Page 48 deals with the dimensioning (note that one of resistor values for R4 will be negative). I implemented the formulae in LTspice and it works like a charm. LTspice sim file, including a MonteCarlo sensitivity analysis, is attached (rename .txt to .asc after download).

For a second, more detailed reference, goto D.J.'s PUBLICATIONS, locate "Low-Sensitivity, Low-Noise, Band-Rejection and All-Pass Active-RC Filters" and download.
 

Attachments

Thank you so much for taking the time to put all that together for me. This is a gold mine!

I've searched for months and read every link and paper I can find, even the Springer link, but I completely missed that Steffen circuit. I'll pull that into LTSpice and let you know if I have any questions.

I did finally get the 1-2BP configuration running and used it to twist the phase of the right side channel in my car very effectively. That channel only needs a single stage of 2nd order all-pass at 165 Hz with Q=6. With the all-pass and a 180 inversion it made a huge difference, and added no discernable noise to the system.

One interesting this I did experience was a "fuzziness" to the sine wave that occurred in the summing stage. The BP output was nice and clean, but with 20k and 10k resistors in the summing stage it made a very messy looking output.

Here's the input sine wave (top) and the output of the BandPass section (bottom):

kMScP4fOlk-bS1d7C8eRHf_ORvoUHY_sP52KWlRWL9pr04zrbHw3y5myVCl5Kf5lnvkn--A8kyPSJBenLPhTdEJnRzoLjLwYGLAGiAfUJsZCzIhWja1iNRZAB6atq_ZJs0WNGw


And this is what the output sine wave looked like (bottom):

An externally hosted image should be here but it was not working when we last tested it.


But then I reduced the values of the resistors in the summing stage to about 16.9 ohms and 33.8 ohms and it cleaned up the output sine wave to this:

8HJB7QD3O8Ucv5w8EBX8U8LBiDX73fXMnd389lfXCv0LxoVX0DFJwcIAtmFRiezPrOMaYyv3PF5d28BaQ62ctswu-eNNg3ZD8cwgMyeWedP7bJDD7ku-MEqsnNQ1FveYr0wYlg
 
KSTR, it looks like I'd need a potentiometer model of some sort in order to run that LTSpice file. Can you send me that one as well?

I've only been doing the spice thing for a month or so (entirely as part of this project), and it looks like you've got some pretty advanced things going on in this model. It'll probably take me a bit to figure it all out.

Thanks!
 
The pot is optional, only needed to adjust response when you have part tolerances. You dont need it for the basic sim.
Just run the sim, don' t worry about the MC thing.
Enter your values in upper right parameter fields. To check the values of the computed resistors, swich to "dc op pt." in the sim menu and read the dc voltages in the lower right corner.
 
Well I must admit that your LTSpice simulation works slick. It easily predicts the resistors needed to get any frequency and Q, based on assumed values of the capacitors.

Using it I worked up separate circuits for my left, right, and sub channels, and then ordered parts. Once all that stuff comes in I'll breadboard them and let you know how it works.

Here's my 6th iteration of the breadboard for this - it's as compact as I can get it. I'm using a quad op amp so I can have a buffer stage before each channel's all-pass filter. That'll cover my left and right channels, but my sub needs 3 all-pass sections so it'll get a modified version.

An externally hosted image should be here but it was not working when we last tested it.


I'm using the LTE2426 rail splitter IC which is what you see off to the left. In a car application dividing the ~11V-13.8V range in half limits the whole thing to an input level of about 5V, so if you have something like a RF 3sixty.3 with an 8V output then a boost converter with like +/- 10V would be better.

I show a quad TL074 in there but the OPA quads would be better of course. But these are cheap and I tend to fry things.

Parts should be here tonight so I'll let you know how things go.
 
Well I got done breadboarding this circuit for two different Q's and two different frequencies.

The output waveform is only slightly noisier than the input on the scope. What's also interesting to me is that when you pull power from the op amp the output signal reverts to following the input, although slightly attenuated.

There's one feature though that would prevent me from using it in an audio application, and that is a crazy double waveform that occurs just on either side of the resonance frequency. It splits apart and then comes back together shortly thereafter, but it's does it consistently.

It might be a component tolerance thing, but I already hand picked resistors that were as matched as possible (1:1 in the one case and 2:1 in the other). If the anomaly is due to the caps then it's probably not going to be something I can sort out. And I worry that temp might have some impact on it as well.

At this point I'm leaning toward going back to the AP=1-2BP circuit. It's rock solid, although it takes up more space.
 
I've never seen the misbehaviour you describe. I never build it on breadboard, though. Always real PCB and standard split supply.
Also, I've never used Qs higher than 1 or so, don't know if there is a problem -- other than increased noise and component sensitivity -- with higher Qs like those numbers you're using (up to Q=6 I see, sort of extreme value I have never seen used before with allpass functions).

Maybe you're overloading the OpAmp outputs or the rail splitter?

Or Common-Mode Input Range of the OpAmps has been exceeded (eg for TL07x the input range is from Vee+3V to Vcc), this may result in the folding you describe.
 
Status
Not open for further replies.