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

BYRTT, I think I see what happened with the higher sampling rates....

I tried 192kHz and yes, got a normal polarity like you did...and on closer inspection in a sim, I could see 96k heading to positive polarity.

I think like maybe you were saying ?, sims will include VHF influence all the way to nyquist...such that extra VHF influence dominates the impulse function, reversing the inverted polarity at 44.1 or 48k..

But the positive polarity flip will only be seen in a sim...
..not in measurement, or maybe at least not with anything short of AudioPrecision gear.

Does this make sense ?
 
...rate shouldn't matter should it ???

...Does this make sense ?

Hope have theory or thinking right here : ) it matters for digital domain when at half the nyquist phase always starts its point out at zero deg, because then especially for the lower bandwidth rates a real looking replica of textbook minimum phase domain is impossible, for example see below where all Rephase rates are presented for a 20Hz-20kHz passband, textbook minimum phase roll off slope for a 20kHz point we know of is a precise at minus 90º as its presented visual back in Rephase but over in REW or VituixCAD it counts for rate domain and now we see not even one of them used low to high rates have nyquist bandwidth to reach down to the real textbook number point at minus 90º before they set their course heading north for zero deg target, and same is case your relative high frq at 6300Hz it can not reach all the way down to minus 360º where it should be at so high a frq on horizontal axis when bandwidth rate there is so close to half of nyquist.

attachment.php


Now forgive me because this is subjective and about personal sensed resolution/3D/rhythm of harmonics, but think it over why for example a analog listening and locked 192kHz or higher DSP chain can add minimum phase realism at HF stopband closer to sound as in analog days :)
 

Attachments

  • 1000.png
    1000.png
    142.8 KB · Views: 480
Last edited:
...VituixCAD and it confirmed with below rates 44/48/96/192kHz.

Short disclaimer about IR function in VituixCAD. Internal frequency range ends to 40 kHz so if you export response of analog system as IR for 192 kHz sample rate, frequency range 40...96 kHz will be extrapolated by the program and won't be minimum-phase and exact fact in IR. This will be revealed if you load exported IR to program which is able to show up to Nyquist 96 kHz. This is not big deal in practice but should be aware in case IR is investigated with a microscope and interpreted in forums like this.

Another tiny issue is related to .NET graphic function DrawCurve() which draws IR and step curves. There is some graphical smoothing with 'tension' parameter which causes tiny overshoot to very sharp corners.
 
Hi BYRTT,
Where does minus 90 degrees at 20kHz textbook come from?...

That previous graph was a model of a 20Hz-20kHz minimum phase band pass domain, used BW2 slopes there for stop bands but for phase point it doesn't change number at amplitude filter point if we used bessel or LR slopes, they 2nd order (90º per order) so phase number is half 90º at amplitude point and tails go out to +/-180º at exstremes. Into Rephase below we see the reel minimum phase numbers had it been for example a real world enviroment surroundings that present us for that band pass filter or had it been a good old passive filtered speaker with exstreme advanced complicated filters and high number of components to get that smooth system band pass without any excess phase from XO points. Now notice in below graph say 500Hz and up that those natural minimum phase numbers is not what we get with low rate DSP use, and although we can force them phase numbers with Rephase we will still miss amplitude domain clue into sound stream, so the higher rate DSP for speaker system run at the closer we get to have real world minimum phase numbers both in amplitude and phase clues from that say 500Hz point and up.

attachment.php


...When I put a LR4 6300 HPF in rePhase, it shows phase zero at about 500kHz, no matter what sample rate is used.
Only nyquist cutoff freq appears to change. Phase is +50 degrees @20kHz all cases.

In a perfect minimum phase domain as Rephase, 90º per octave, 180º at amplitude filter point, 360º at extremes.

attachment.php
 

Attachments

  • 1000.png
    1000.png
    8.4 KB · Views: 442
  • 1001.png
    1001.png
    8.5 KB · Views: 460
Last edited:
Yes, this same rePhase graph is what I was looking at when I said phase goes to zero at about 500kHz, and is about 50 degrees at 20kHz with any sample rate.

It seem to me there are two aspects of sample rate changes in rePhase as seen in REW.

One is the apparent polarity flip of a linear impulse. I can attribute that to dominating VHF content as Nyquist rises. Hope this thinking is correct??

The other aspect is phase...and where is it at 20kHz?...
(Smaartlive appears to want to find delay times where phase zero occurs at 20kHz...so I key off that alot)

From the two graphs below, it looks like REW sets phase to zero degrees at Nyquist (with est IIR shift). Is that your take too?
 

Attachments

  • 48k sample rate phase.jpg
    48k sample rate phase.jpg
    108.4 KB · Views: 89
  • 192k sample rate phase.jpg
    192k sample rate phase.jpg
    111.9 KB · Views: 98
^Maybe I don't fully understand what is your goal here. If you want to see exactly the same phase response in both rePhase and REW, you have to use exactly the same timing offset in both programs. For example: export IR file with rePhase so that centering settings are "48" (samples) and "round to closest sample". That is 1.000 ms offset with 48 kHz sample rate. Then you jump to REW and import IR. Adjust timing manually back to very original in Impulse tab by setting 't=0 offset (samples)' to 48. Abracadabra, you have exactly same phase in both places.

Automatic timing adjustment after importing is subjective and incidental process because receiver (REW in this case) does not have a clue what original timing/phase has been. Phase could hit zero at 20k or at Nyquist or somewhere else.
 
Last edited:
@kimmosto, thanks your posts info helps alot, forgive user understanding and microscope invetigations guess we look more or less for textbook target examples to quality check our acoustic curves so as to get as less a distortion and big a improvement as possible down the DSP power road.

@mark100, to get kimmosto guide for timing offset working into REW i had to change one settings parameter into Preferences/Analysis to "For imports set t=0 at first sample".
 
Last edited:
^Maybe I don't fully understand what is your goal here. If you want to see exactly the same phase response in both rePhase and REW, you have to use exactly the same timing offset in both programs. For example: export IR file with rePhase so that centering settings are "48" (samples) and "round to closest sample". That is 1.000 ms offset with 48 kHz sample rate. Then you jump to REW and import IR. Adjust timing manually back to very original in Impulse tab by setting 't=0 offset (samples)' to 48. Abracadabra, you have exactly same phase in both places.

Automatic timing adjustment after importing is subjective and incidental process because receiver (REW in this case) does not have a clue what original timing/phase has been. Phase could hit zero at 20k or at Nyquist or somewhere else.

Thanks alot! That really helped.

My goal (once past the polarity inversion originally questioned) has been to simply understand how the sims work using the different programs.


Most all of my effort with phase alignment has been with acoustic measurement and alignment using Smaart, and not with sims.

I've been using linear-phase crossovers which IMO are incredibly easy.
I thought I'd study min-phase crossovers using sims first, before moving to measuring and acoustic alignment.
I figure if I don't understand why I get two different results using two different programs, I don't really understand what I'm doing. Thx again :)

@BYRTT, yes thx, at least that much i knew to do LoL
 
I received a message today from sourceforge telling me that the rephase project was infringing their term of service because no source code was made available.

rePhase is free software, but not open source, and I intend to keep it that way.
As a consequence I will have to remove it from sourceforge and find another hosting solution that accepts binary-only software.

I will keep you informed, and I hope I will be able to maintain the sourceforce project page alive in order to point users to the new hosting solution.
 
  • Like
Reactions: 1 user
I received a message today from sourceforge telling me that the rephase project was infringing their term of service because no source code was made available.

rePhase is free software, but not open source, and I intend to keep it that way.
As a consequence I will have to remove it from sourceforge and find another hosting solution that accepts binary-only software.

I will keep you informed, and I hope I will be able to maintain the sourceforce project page alive in order to point users to the new hosting solution.

rephase.org is now online: rePhase

It is a quick and dirty port of the info that was on the sourceforge project page. Consider it a first draft :p

Please tell me if it works for you.
If it does I will remove all binary files from the sourceforge project and put a link to the rephase.org website in the description.
 
Last edited:
  • Like
Reactions: 1 user