ProSoundWeb Community

Please login or register.

Login with username, password and session length
Advanced search  

Pages: 1 2 3 [4]   Go Down

Author Topic: Frequency depending resistor  (Read 3909 times)

Frank Koenig

  • Hero Member
  • *****
  • Offline Offline
  • Posts: 1080
Re: Frequency depending resistor
« Reply #30 on: September 03, 2018, 03:10:08 pm »

In our sandbox absolute phase is determining t=0 as the zero cross of the first arriving frequency in the spectrum.* In other words, learning how to properly remove TOF from a measurement will allow you to measure absolute phase. Absolute phase is rarely a useful or necessary quantity for people aligning drivers and systems of drivers, in that case what we really care about is...

I agree about the limited utility of absolute phase in day-to-day audio work. I find the subject interesting, however, from an intellectual standpoint. It's a dark corner in a room some other parts of which I think I know pretty well.

If I understand your definition it's equivalent to taking the first arrival of the impulse response (IR) as t=0 and then applying the Fourier transform and accepting the phase as is. This seems correct in theory but in realizable measurement we don't have the luxury of integrating out to infinity on a continuous signal in the absence of noise. We're working with (uniform) samples of the IR and we need to window the IR to be able to use a finite-size discrete Fourier transform.

I recall that in some earlier experiments I did the phase at the origin appeared chaotic and at the time I didn't figure out why. I looked at it again and I think it's pretty simple (famous last words...). Ideally the IR has no DC component so H(0) = 0 + 0i (Fourier transform of the IR  at zero frequency) and phi(0) = Arg{H(0)} = 0 or is undefined  --  more on this later.  But when we truncate (window) the IR we introduce a slight DC offset. If the real part happens to be positive then phi(0) = 0 is computed as 0 . If the real part happens to be negative then phi(0) is computed as pi. The imaginary part of H(0) is always zero as Im{H(jw)} is an odd function due to the symmetry properties of the Fourier transform.

Now on the phase of zero: I'm not a mathematician by any stretch and a cursory look at my references on complex variables doesn't answer the question of whether Arg{0 + 0i} is defined. If we define Arg{H} as arctan(Im{H} / Re{H})  then it would seem not, as x / 0 is undefined. We're asking what is the direction of a vector of zero length. But if I type Arg(0) into  R's interpreter it happily returns 0, so the smart folks there found it at least computationally expedient to define it this way.

In my analysis programs I've inserted code to subtract from the IR the mean (DC component) of the IR after windowing thereby removing the offset. This makes the zero-frequency element of the DFT essentially zero (there are finite precision effects). Then, knowing that H(0) should be 0,  I force it to exactly 0, which will cause phi(0) always to evaluate to 0. This should get rid of the chaotic behavior.

Perhaps the best thing to do is to throw out absolute phase and talk, to the extent possible, only in terms of time. There are ways of computing group delay (GD) without unwrapping the phase and numerically differentiating. Furthermore, the GD at zero frequency is well defined and equal to the centroid of the impulse response. Once we have GD we can integrate to get relative phase with full visibility of the time reference. I'm still thinking about all this and welcome comments and guidance.


Clarification: When I say that the IR has no DC component I'm assuming a high-pass system -- one with infinite attenuation at DC. This is true of most acoustic measurements but not true in general. A system with H(jw) = 1 for all w clearly passes DC.
« Last Edit: September 04, 2018, 01:42:30 pm by Frank Koenig »
"Nature abhors a vacuum tube." -- John Pierce, Bell Labs

ProSoundWeb Community

Re: Frequency depending resistor
« Reply #30 on: September 03, 2018, 03:10:08 pm »

Pages: 1 2 3 [4]   Go Up

Page created in 0.065 seconds with 23 queries.