rePhase, a loudspeaker phase linearization, EQ and FIR filtering tool

Thanks POS for the new version

I'm still testing with mine. So far it hasn't done any harm, but I'm not sure it's a huge improvement, either. :) The differences are subtle, to my ear. I've tried correcting just the box HP filter, and also the box with the crossovers. Wanting to hear what each part does.

Hope to have a report soon.

Hi Pano
If you can, try taking the measurement part of the process outdoors, at say 2 or more meters.
There are several issues which complicate the “soup” here. The magnitude and phase one measures from the loudspeaker often change slightly with distance and more so with position left to right / up and down within the radiation pattern.
Even a constant directivity horn has this effect to varying degrees. Your measurement mic only occupies one point in space and so what your electronic correction will be based on is that location.
So far as fixing the loudspeaker, ideally you would measure at a distance more like how you listen. Even this outdoors could have a built in problem is the woofer is high enough to cause a ground bounce. No amount of eq can fill in a strong cancelation notch.
Try an alignment this way with the system not including your room related issues, just loudspeaker correction.
Best,
Tom
 
Administrator
Joined 2004
Paid Member
Thanks Tom. I have kinda-sorta done this, without taking the speakers outside. That is a major pain, as they are so big and heavy. They barely fit thru the door.

I've done the correction from measurements taken at 5 ft, at the listening position, and from simulated filters and box response. Trying to make sense of it all.
 
Thanks pos !

also for the "dark side of the force":p

i 've just taken à look to the brickwall implementation.
as you said,complementary filter must be done manualy with the same parameters.

after generating 2 complementaries brickwall filters with 2 differents types of windows,
-export to REW and process the sum
-it does not give an all-pass.

a lot of care and minimum training ...
url


a deep look with rePhase next weeks.
summer starts to get down :yell:

PS:the raised cos EQ in a minimum phase option to apply shelving min.ph.:xmasman:
 
Hi Thierry,

Optimization and energy centering are automatically disabled when a brickwall filter is used, so you just need to use the same number of taps and windowing algorithm (and same sampling frequency of course) for the LP and HP and you will get a perfectly complementary crossover.

Here is an illustration using a nuttall window:

attachment.php




Now here is what you get if you mismatch either the windowing algorithm or the number of taps:

attachment.php
 

Attachments

  • rephase brickwall nuttall.PNG
    rephase brickwall nuttall.PNG
    54 KB · Views: 979
  • rephase brickwall mismatch.PNG
    rephase brickwall mismatch.PNG
    39.3 KB · Views: 803
I implemented brickwall filters them into rePhase because many people wanted them, and because they were easy enough to add, but using "real" complementary filter slopes (LR, Horbach-Keele, or other available types) and making the result curves match the target ones as closely as possible (using optimization and the appropriate number of taps and windowing algorithm for the task) is probably the best way to go.

Brickwalls will give you the sharpest possible slope for a given number of taps and windowing algorithm (and even that is not true with optimization...), but not the lowest ripples, and no real control on the slope whatsoever.
Plus, the fact that the exact same number of taps has to be used for the LP and HP is a waste of DSP power when most hardware solutions make it possible to arbitrarily distribute taps among channels...
 
Last edited:
I sat and played around some and got some questions since I'm no FIR expert =)

Assume only phase correction:

How big an evil is it to use few taps? Say you have a 24 dB roll off @ 20 hz and use 2048 taps with a FFT length of 8192. Apart from not having a perfect LR4 phase response what is the downside of doing this? Won't the speaker itself have much bigger phase response ripples or is there something I'm not seeing?

My current plan is to phase correct a LR4 @ 100 hz, one at 200 hz and the question become if I should also correct the phase of the 20 hz LR2/LR4 low frequency roll off or should I let it be?
 

Attachments

  • Phase.png
    Phase.png
    110.9 KB · Views: 177
Last edited:
Hi OllBoll,

When doing phase-only corrections with few taps you will get alteration in the amplitude and phase curves, but the optimization steps will try to compensate any amplitude alteration. You can check this effect by choosing a very narrow amplitude scale like -1/+1dB, and you should see amplitude ripples around your corrected crossover frequency than should diminish with optimization iterations.
But these optimization will cause phase to get worse, as you noted.
The optimization focuses on amplitude as this was judged the most important thing to preserve, but there will eventually be a point of diminishing return.
Having a phase curves that does not exactly follow target is probably not a problem (and it is still better than no correction at all), but rapid variations and ripples can be problematic. Best thing would be to check what group delay those will cause (adding a group delay visualization in rephase is on the todo list...).
As to what should be corrected or not, it is up to you to try :p
 
0.1 as a ratio (not dB), ie 10%, can be written -20dB when dealing with distortion figures.
But here it is 0.1dB, so applying this relation would give a percentage of accuracy: "lowest accuracy 99% at XX Hz" or something.
Would that be more meaningful?
You would have to count nines instead of zeros :p

Anyway, this indication was only useful when no target/result curve was shown (priori to version 0.8) and should probably go away now as close inspection of the curves gives more valuable information.
 
Ah, ok =)

It can't hurt to leave it there, a numerical proof that the ripple is small enough is nice to have. If you have to analyze then you might always have missed something somewhere =)

Question about the windowing functions, do they affect the optimizer or is it just for us to see the result? Or in other words, is the goal to find the windowing function which after optimization makes the ripple as small as possible or find the one where it is as large as possible?
 
Optimization is done on the result, after centering and windowing, so it takes everything into account.
You should choose the windowing that gives you the best result curves (for your criteria) after optimization, or even defeat optimization if it makes thing worse.

As a basic rule of thumb, phase-only correction will call for a rectangular windowing (or complex if "int" centering has to be used, but this is generally a bad idea), whereas corrections implying a LP or HP filter will generally work better with a blackman or nuttal windowing. For moderate amplitude corrections but high Q, rectangular, hamming or hann can be tried...

By the way OllBall, how did you current-drive project for the nc400 turn out?
 
Ah,

In my test of phase correction of 30 hz LR2, 100 hz LR4 and 200 hz LR4 with 2048-4096 taps @ 16384-65536 FFT length the hann window produced results with less than 10% as much amplitude ripple as with the rectangular.

And that project was abandoned =)

I built an F2J with ~ 800 ohm output impedance and tested on my speakers and it had a 20-30 dB reduction in odd order distortion except around the resonance of the driver. Putting a resistor in series with the NCore reduced odd distortion somewhat but not even close to the true current source F2J. Wrapping a feedback loop doesn't work either because the open loop is too low on the NCore and putting a such large series resistor isn't feasible either.

Fast forward to this new speaker project I made new distortion measurements but instead of a cheap monacor driver I used an AE TD6M with a high quality motor and on that one there was no significant distortion difference between the F2J and the NCore on odd order distortion. So while it does all the difference on drivers without shorting rings and such it doesn't affect as much if the driver has all that.

In the end I've decided to go active and use Hypex UcD for bass up to 200 hz and then small and inefficient amps above since I found the NCore to sound a bit too bright and not as relaxed as my Aleph J in the treble. I'm even planning to sell the NCores since I already have two PSC2.400d for the sub+woofer channels and the audio difference between the NCore and UcD shoulnd't be significant at those frequencies... and it would save space and money =)
 
Administrator
Joined 2004
Paid Member
Hey Pos. I'm trying to figure out how to use the crossover function to hit a desired target. Been searching the thread, but can't seem to find it.

For Example: I want a 4th order Linkwitz-Riley acoustic response at 650Hz. I import the measurement of the raw driver into rephase and see it there. Is there a way to now see the 4th order L-R target I want to achieve? I can see the results of what the built in filters will do to the response, but I can't tell if that matches the target I want. I need a guideline to compare. I've been able to import a target, but can't see it and my measured response at the same time.

Am I missing something? Is there a way to see if your imported and filtered response matches a chosen target? Thanks!
 
Ah,

In my test of phase correction of 30 hz LR2, 100 hz LR4 and 200 hz LR4 with 2048-4096 taps @ 16384-65536 FFT length the hann window produced results with less than 10% as much amplitude ripple as with the rectangular.
I tried your configuration and indeed rectangular is not giving the best amplitude matching there. Nuttall seems to give even better results than hann in that particular case. But if you look at the phase you will see that that the rectangular windows gives a better match, which seems to preclude the optimizer to get a good matching for the amplitude.
It is all trial and error :)

So while it does all the difference on drivers without shorting rings and such it doesn't affect as much if the driver has all that.
yes that is what I found when comparing the effect of a series resistor between a JBL 2020H (modern motor with shorting rings) and a TAD TM1201 (no shorting ring... but what a cone!).
I had hoped someone would have find a way to turn the ncore into a current source as Bruno told us it was possible...
Why so few current drive amplifier on the market?...
 
Hey Pos. I'm trying to figure out how to use the crossover function to hit a desired target. Been searching the thread, but can't seem to find it.

For Example: I want a 4th order Linkwitz-Riley acoustic response at 650Hz. I import the measurement of the raw driver into rephase and see it there. Is there a way to now see the 4th order L-R target I want to achieve? I can see the results of what the built in filters will do to the response, but I can't tell if that matches the target I want. I need a guideline to compare. I've been able to import a target, but can't see it and my measured response at the same time.

Am I missing something? Is there a way to see if your imported and filtered response matches a chosen target? Thanks!

Hi Pano,

There are no target curve as for now. The plan was to use the "capture" functionality to do that, but it is not there yet.

Anyhow, the easiest solution to get any acoustical filter you want is to EQ your drivers for flat (amplitude and phase) using any amount of EQ you need (watch your noise floor though), and then apply your filter(s).
That way you can try different filters slopes and types without having to redo all your EQing.
 
Administrator
Joined 2004
Paid Member
Merci Pos. I was trying doing some of that last night. It seems to work pretty well. Also working with the active filter section of the Passive Crossover Designer (PCD) and transferring those setting to rephase, then a little tweaking.

Generally I've been doing this.
  1. Import measurement.
  2. Correct for high pass phase
  3. Correct amplitude (overall, then low, mid, high)
  4. Fine tune phase. (overall, then low, mid high)
  5. Export impulse

I'll let you know how it goes from here.