Shelving 2nd order high-pass?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
well, I think that might be a good thing to do for now.. The tweeter is going back to 1600Hz crossover and Im moving the woofer up to just under 1700Hz.

Phase alignment.. yes, that will inevitably be the next thing to deal with..and understand..

My failure to get a clean "reverse tweeter null" is an obvious sign that woofer and tweeter is not in phase in the x-over region..

Looking at the phase-plots, it seems the woofer and tweeter coincide in phase at a approx 1200-1300 Hz, i.e a bit below the x-over frequency. The phase of the drivers are allso not symetrical arround this point..

On my X-over board, there is provision for a phase-correction network in the tweeter channel.

On the linkwitz page, there is a description on how to go about setting correct delay, Allso with a clear statement that the final result will have to be established experimentally. Unfortunately, there are no phase plots to give a clue what to aim for...

My assumption would be:

Coincident phase at x-over frequency
Symmetrical shape of the tweeter and woofer phase curves arround this point. (I guess flat phase-response for both tweeter and woofer would be perfect, but that must be impossible due to the filter function and the natural phase variations in the drivers them selves?)

Is this correct?

If so, I have something to aim for..
 
Hmm.. I'm a bit on thin Ice here...

Should I try to allign the phase at the 1600 Hz crossover point before tweaking the woofer/ tweeter x-over points?

Taking a rough glance at the phase plots, the drivers are about 40 degrees different in phase at 1600 Hz. Could this explain the uneveness of the FR in the crossover area on the red graph?
 
My doubt was really in which end to start, but you Answered that! :)

That takes me to actually implementing the allpass section on my card..

I don't know if you're at all familiar with the Linkwitz MT1 board and the calculator spreadsheet on the linkwitz page..

Active Filters

A rough calculation gave me a translation of 40 deg phase difference at 1600Hz in to a corresponding voice-coil inter-distance of 23 mm (input to the spreadsheet.

The spreadsheet then gives a required delay at x-over of 67 uS and the required resistor values with a given capacitor value.

Under the row for "real values", I get half the required delay cited.

From this I understand that I need to implement two stages in series (which is what my card allows for by the way)

There are allso two alternative schematics, one for 0-180 deg, and one for -180 to -360 deg.

Am I right in assuming that I need two of the 0-180 deg circuits in series??

I'm probably not asking very intelligent questions here, but this is fairly virgin territory for me.. (to say the least..)

PS

I will of course need to do a proper check of the values, just took some rough figures here whilst trying to understand the general approach.
 
Well, that's cool then! :)

In the meantime, I've had a closer look at the phase plot, turns out I was a bit quick off the mark regarding the phase and required delay..

I completely forgot that I had the tweeter reversed 180 degrees. this put the tweeter 70 degrees behind the woofer at x-over! So with the tweeter connected in phase, the tweeter is 110 degrees ahead of the woofer, which woould in turn require 110 degrees, or 190 uS of delay.

On the spreadsheet, it says that the recommended Allpass Fo is 8kHz.

This is problematic as this would require cascading lots more allpass stages than the two I can realize..

So, I either have to use less delay and hope that what I can get will improve matters somewhat, or I'll have to live with a much lower allpass Fo than recommended.. I figure I can get 152 uS of delay and a Fo of 3430 Hz..

my guess is that such a low Fo will mess up the phase response further up in the x-over region?

:confused:
 
Well, leaving the tweeter reversed will then give me the current situation with about 70 degrees delay relative to the woofer at X-over.. so no nice "reverse polarity dip" then.. :( That will only leave tweaking the x-over frequencies to get the smoothest possible summation at the x-over point on axis, hoping it won't get too messy off-axis.. :(

:cuss::crazy::gnasher: .. and I thought I had something going for me with that allpass filter..

:(
 
Last edited:
Sure!

Here we go, hope I got this right...

This is the woofer with 1600 Hz 24 dB/Oct and tweeter with same, this is what gave the "better" red measurement curve with the slight dip arround 1500 Hz..
 

Attachments

  • woofer 1600 Hz 24dB oct.txt
    152.4 KB · Views: 30
  • Tweeter 1600 Hz 24dB oct.txt
    156 KB · Views: 25
First of all Mark K took the DXT to 1500hz with a 2nd order acoustic roll off. He also posted several distortion plots showing that the tweeter could also handle it, so don't worry about that.

I agree with Bob that the lower you can take it, the better. Both with regards to eliminating the mid/woofers break up and with respect the off axis response.

I use the DXT and the peak you've got at just over 20khz is normal. Mine peak at around 25k. The issue I see with yours is that the peak starts in the audible band, which mine do not. I'm surprised that SEAS QC let this through as to me it seems a bit below spec. SEAS always tend to keep their metal dome resonances out of band.

You seem to be on the right track with regards to the method of how to get things right.

I believe that Linktwitz has the correct idea. First you arrive at 'perfect' acoustic targets - say 1600hz 4th order LW. After which you add in a delay network to phase align the drivers at the xover frequency. This is something I have done many times and it works really well.

1) you arrive at 'perfect' acoustic target slopes.
2) you measure the drivers together and if there is any gross difference in relative level, sort that out.
3) look for a reverse null. If none is readily apparent, invert the polarity of one driver and try again. If that doesn't help (sometimes both can look equally bad), set the polarity as you'd expect the textbook xover to sum to provide you with a deep notch. After all we are supposed to be working with perfect acoustic slopes here;), the only issue is the phase, which is less then perfect.
4) Once you've set your polarities, so that you're expecting to measure a null, place the microphone, if possible, at your preferred listening distance and preferred listening height.
5) Engage your delay filter and take a measurement. The measurement should have no smoothing applied, any smoothing will smooth out the notch, which is something at this time that we do not want. The measurement should also have a short gate on it, say 1-2ms or so. The gate is to remove as many room influences as we can (theoretically you should be able to gate out all of the reflections if there is nothing close to the mic and the speakers), whilst still maintaining accurate data around the xover point (as the gate length shortens, as does the lowest frequency you can expect to get accurate data at.)

If you're handling your data correctly, the measurement (apart from the notch) should look really smooth. You only need to apply software smoothing when small reflections are blurring and interfering with your data. If the response looks really ragged then you've not set the gate correctly, or you're getting reflections from things in the room. Either set the gate correctly, or move the loudspeakers and mic, so that you're no longer getting reflections into the mix.

If everything so far is going fine, this is where you alter the amount of delay, then measure the loudspeaker to check for the null. As you approach the correct value of delay the notch should appear and increasing the delay should make it get deeper and deeper. Then, beyond a point the notch will start to go the other way. Obviously you want to stop where the null is at it's deepest.

Once you've arrived at that point, flip the polarity and the response should be pretty flat. Now's the point to set the gain on the tweeter exactly how you want it to be. If it's differed by more then say 2dB or so, flip the polarity around again and check the null is still where you want it to be.

Once you've done that you're done.

In my delay filters I use a 5nF cap and a 47k trim pot.

Your main trouble will be arriving at those 'perfect' acoustic targets. My best advice to you would be to download the LspCAD6 demo and play with that.

It does not allow you to save, this is it's only major shortcoming however.

What it will allow you do is,

1) Import your measured data.
2) Create an active filter (you create it exactly as you've implemented it).
3) Perform a system optimisation against a target slope, so that you can arrive at your perfect acoustic target.

Set the capacitor values to ones you've got. Say something like 1-10nF (do remember that you need to use 1 and 2x your C value in the low pass). Then when performing the optimisation tell it that it is to keep the capacitor values as you've implemented and only alter the resistor values. Sometimes the optimiser will freak out and complain. In this instance you probably need to set the bandwidth limitation to which the optimiser is trying to fit the curve. Such as limit it at 500hz on the bottom end for the tweeter optimisation. It will otherwise try to do things at 50hz where there's zero real data and as you'd expect do strange things, or get stuck.

Attached is an image of the LspCAD6 demo in operation doing what I've just described, it's a bit of a headache to learn how to use (hence the picture). LspCAD5.25 was far more user friendly in this regard, but it will allow you to accurately create your filters.

A coupe of pointers.

The edit tab of the main window allows you to add in and connect components. It does NOT allow you to modify these in any way. To do that you click on the simulate tab to the right of it. This will bring up a graph, move it out of the way. Now you can click on your components and load in a frequency response file, as with the loudspeaker driver, or alter the component values.

To bring up the optimiser you have to click on tools, then optimiser. What's immediately visible is obvious, you add in the driver response (this includes what the filter does too) then clicking through the various tabs allows you to tune the optimisation process. Click live update as this allows you see in real time how the response is being altered.

Now you need to add in what components you want LspCAD to alter with regards to the optimisation, otherwise it will try to alter nothing, which isn't very helpful. You will see towards the top right a button with some arrows pointing to the right, click on this and it will open an additional tab that will have all your components in it. Select the resistors and click GO!
 

Attachments

  • 12.jpg
    12.jpg
    186.1 KB · Views: 87
Well,

In my time-zone, it's well past bedtime! But tomorrow I'll pick up a fresh supply of resistors from the electronics shop, change the woofer xo to 1700Hz and then tweak the tweeter XO to see if things can be made to sum reasonably smooth. (I have trim-pots in stead of resistors in the tweeter xo, so easy to tweak)

But thank you very much again Bob, your advice and support is hugely appreciated!! :)
 
Whilst I was typing.. a new post!

5th element, it is obvious that my big shortcommig here so far, is that I've not been able to acheive correct acoustic+electric slopes, and as a consequence, I'm sort of trying to bodge my way arround that.

I've read Vance dicasons loudspeaker cookbok, and he employed LspCad quite extensively for passive filters, but this was never something I considered for my project.

But if there is a demo-version out there that will allow me to import measurement files of my raw driver-in box response and use that to modify my active filter circuitry for correct slopes.. wow.. I will DEFINITIVELY try that! :)

I don't know which of my plots you looked at in particular, but I got the real big HF peak when trying to straighten out the tweeter response, a response which I suspect has been altered by some diffraction effect and possibly some absorption from the foam I've covered the baffle with, so I wouldn't use that as a basis for slating of SEAS. Allso the two tweeters I have are from entirely differrent batches, yet behave simmilar, so that should rule out any quality issues at SEAS. (i've allways found SEAS to be top-notch, patriotic bias aside! :))

From recent posts, it is evident that I have limited scope available with regards to delay-time, but If i can optimize the filters with LspCad, then I might need far less delay.

Thank you very much for chiming in with some excellent and exciting advice! :)
 
Actually the amount of delay you need is related entirely to the difference in acoustic offset between the drivers in the Z axis & with the delay intrinsic to your choice of filter.

As proper time delay is a pain to do in a passive loudspeaker one way of phase aligning the two drivers is to implement asymmetric slopes as Bob said a while back.

Here you carefully juggle the xover frequency, Q and order of both the tweeter and the midbass at the same time. The end goal is a flat summation with a deep notch when the tweeter polarity is reversed (of course this isn't always the case, such as with 1st order xovers).

As you can appreciate, if the driver slopes are asymmetric, then the notch symmetry will also suffer, as will the off-axis performance somewhat. Of course you might be able to use this to your advantage where you might be able to steer a lobe at a particular frequency, away from a reflective surface if it's giving you an issue in your room. However doing something like this would generally have to be incorporated into the original design plan, as juggling passive xovers to sum properly can sometimes be a right pain.

In my opinion active is a much better approach, where you can create your 'perfect' acoustic slopes. Then phase align the entire thing with a delay filter.
 
Now, I've modelled the active x-over circuits and hooked a driver to each one.

In the optimizer graph window, I cet the transfer function of the filters, but not the imported river response.. What have I done wrong?? On the simulations schematic, I clicked on the drivers, and entered the measurement-files from WinIsd, which are in txt format.. have I missed something here??:confused:
 
I spent a bunch of time last night poring over the manual and didn't find the file format requirements. We'll probably have some manipulation to do to bring the Holm Impulse frequency measurements to LSPCAD.

LSPCAD locked up when I tried to import your woofer file. Probably too many data points. It may help to limit the number of points to 500 or so. I've run into limitations like that before.

Here's hoping 5th will help us through the learning curve.

Did you notice that LSPCAD has an emulator? With a multiple output sound card you can listen to your proposed crossover before actually building it.
 
Last edited:
Hmmm..

Looking at one of the data files for the LspCAD tutorial and thw WinIsd, it looks like the data is simmilar (lots of data points in both by the way), but the separation/ layout of the data columns are different.. perhaps this could be the issue?

Yup.. that must be it, the file that came with the demo opened just fine.

So the question is, how can one modify the file from WinISD so that LspCad wil read it? Doing it manually line by line is of course impossible..
 

Attachments

  • Nearfield + U15 80cm.TXT
    27 KB · Views: 20
  • tweeter raw.txt
    155.7 KB · Views: 23
Last edited:
well,

That wasn't too difficult to fix... just had to look at the options under file export in WinIsd, unselect info header and select space in stead of semicolon for separator! :)

Now it all went straight in to LspCad and I can start palying arround!! :)
 

Attachments

  • tweeter raw.txt
    155.7 KB · Views: 29
  • woofer raw.txt
    156.2 KB · Views: 24
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.