14. PoPi decomposition, the Fast way

  1. Load 2 channels of audio signals, recorded with a pair of microphones. The example below uses microphones with 60cm spacing.
  2. Cut frames, get cross-correlation of the frames.
    popi_demo_xcorr
  3. Calculate the look-up tables for phase (PhiLUT), pitch (PitLUT)…
    phi_lut and pit_lut
    … and “phase-pitch” 😉
    popi_lutx3
  4. Multiply the cross-correlation vector from point 2 by the 3 PoPi-LUTs above.
  5. Sum the 3 sub-results (L+O+R).
  6. Wanna try out cascading different approaches?
    – If not, just go to point 9. But.
    – If yes, create one more sub-final matrix by multiplying the sub-results
    (dot products from point 4) instead of summing them.
  7. Sum the sums (from p.5), sum also the dot-products (from p.6).
  8. Below you’ll find examples of summing (L+O+R) and multiplying the (L*O*R) sub-results.
    Finally, you also see the results of cascading the two approaches.
    cascade_decomp_example
  9. Download the code.
  10. Check out the theory.

Leave a comment