Minimum phase

Thierry Barnay

Registered
Thread Starter
Joined
Oct 11, 2017
Posts
4
Hi,
Just to report a little bug.
Seems the latest Beta version of REW is showing minimum phase far from theory.
Also,unwrap phase tab rise up absolute value to infinity.

Here,a example,with the minimum phase extracted from an impulse (rePhase) LR8 lowpass,(do not take in account the phase shift at the upper limit (ripple)).
-720° phase shift was expected (so excess phase is a very random criterium to define driver offset,time domain is more reliable,once coeff start to rise with loopback measurement)

http://www.casimages.com/i/171201044401394674.jpg.html

mini_171201044401394674.jpg
 
Last edited:
Are you saying it is different to earlier versions? Easier to examine if you attach the mdat file.
 

Attachments

Last edited:
Thanks. If you use rectangular or Tukey windows you should get rid of the ripple.

The main issue looks to be dynamic range of the IR. Because of the steep roll off the response hits the noise floor of the data by around 8 kHz and flattens off at the noise floor from there, that flattening of the response means the phase must change correspondingly. I have added support for 32-bit and 64-bit float format impulse response imports in the next beta version, if the IR can be generated in that format the response may follow the correct shape across the whole frequency span and give the expected result. If you already have or can generate a response in that format post it here and I'll try it out.
 
Ok.
Here some IEEE standard impulses.
LP LR48 @1KHz.
32 bits + 64 bits (and 48K + 96K sampling frequency).

replace .txt extension by .wav (.wav format with attached file is not supported).

rectangular (or other) windows do not allow to get rid of the (very) low magnitude of the ripple.
Not really important.(or a option like HOLM impulse "hide phase below -xxx dB" ?).
 

Attachments

Those files look like conversions from 32-bit PCM data rather than data originated as float, they don't have any more dynamic range than the original.
 
I understand.

a file with mantissa+exp ?
Like C float array.
But need to reorder coeff in a single column.
noise floor,in every case of float format,IEEE,754,C arrays is extremely low (more than -250dB).As shown below.

http://www.casimages.com/i/171203062556576435.png.html

Change .txt extension with .c file.(can open it with any text editor).
 

Attachments

Last edited:
I'm not understanding the issue for sure, but...
The minimum phase calculation appears to be correct to me given the applied bit depth setting. [This discussion may well be below my bit depth ability however, i.e., over my head.]
The only question I see is that REW sets the IR location for the minimum phase response in some manor. It appears to be at the initial rise of the impulse. It cannot be changed in REW. I have no idea what manor is most correct, but we would normally expect to see the minimum phase continually falling with this filter as shown in rePhase. Is that the issue for you? If so, then the phase discrepancy is just the REW choice of impulse location. If we moved the minimum phase impulse approximately 0.135 ms to the right the phase would appear as it does in rephase. We can see that impact using the actual phase itself. That is how I determined the amount of needed shift - by looking at a copy of the actual impulse.

See below the change in phase resulting from that shift:
Phase.jpg

IR Shift.jpg
 
a file with mantissa+exp ?
Like C float array.
But need to reorder coeff in a single column.
Sorry, but I can't use that. The size of the declaration crashes the java compiler if I try and include it directly and reformatting the file and writing code to import it seems to be a lot of trouble just to prove a point. What I was after was a WAV file in PCM_FLOAT format with the desired data in it.
 
Back
Top