[LAD] Determining Phase

Fons Adriaensen fons at linuxaudio.org
Sun Jun 26 11:26:04 UTC 2011

On Sun, Jun 26, 2011 at 11:43:46AM +0200, Jörn Nettingsmeier wrote:
> On 06/26/2011 04:17 AM, Fons Adriaensen wrote:
>> On Sun, Jun 26, 2011 at 12:22:58AM +0200, Jörn Nettingsmeier wrote:
>> - Phase is related to delay but it is not the same thing.
>> Group delay is again something different. Mixing up all
>> these is not going to help anyone understand things any
>> better.
> well, i was trying to connect all those buzzwords... but you are right,  
> it should be done more carefully. let me try again.
> *delay* makes the *phase* response curve steeper. it doesn't introduce  
> any non-linearities in the phase response.
> amplitude response over frequency can be interpreted "as-is", but phase  
> response needs to be looked at with your first-derivative glasses on: a  
> system comprising a perfect speaker and your perfect ear only has zero  
> phase when you stick your head into the speaker.
> as soon as you move away, the phase drops, the steeper the further you go.
> morale: constant amplitude response is what we want. constant phase  
> response almost never happens, because of delays that creep in. instead,  
> we want _linear_ phase response.

Right. And 'linear' here means 'without a constant term' - we don't
want our system to be a Hilbert transform for example. 

> *group* *delay* is a *time* *delay* for a specific frequency. if you  
> have a linear-phase system, the group delay is a _constant_: high  
> frequencies may be phase-shifted by more cycles, but the time it takes  
> them to arrive is the same as for low frequencies.
> i think you get the group delay when you differentiate the phase  
> response wrt frequency (but don't believe me when i talk calculus...)

Correct. It it the derivative of the phase response w.r.t. angular 
frequency (minus that value if your convention is that a delay
corresponds to positive time).

Group delay actually tells us how the 'envelope' of a signal is
modified by nonlinear phase response, something we can easily hear
on any 'percussive' signals.

Let w = 2 * pi * f

Suppose you have some filter that has a non-linear phase 
response, e.g.

P(w) = a * w^2    (radians)

The corresponding phase delay is

D(w) = P(w) / w = a * w  (seconds)
The group delay is

G(w) = dP(w)/dw = 2 * a * w (seconds) 

Now if you have a relatively narrowband signal centered at
some frequency w1, e.g. a 'ping' with a gentle attack, then
it would appear to be delayed by  2 * a * w1, not  a * w1,
because what we hear as delay is the delay on the envelope,
not on the 'cycles'.



More information about the Linux-audio-dev mailing list