sfa-numpy icon indicating copy to clipboard operation
sfa-numpy copied to clipboard

Linear-phase filterbank for radial filter design

Open narahahn opened this issue 6 years ago • 2 comments

In this PR, a frequency-dependent Ambisonic encoding using linear-phase filter-bank is implemented, which is proposed by Franz Zotter in his paper,

  • Franz Zotter, "A linear-phase filter-bank approach to process rigid spherical microphone array recordings", in Proc. IcETRAN, Palic, Serbia, 2018. link

Almost all scripts in this PR are based on Franz Zotter's Matlab code, which he kindly provided.

The scripts in the examples directory can be used to create the graphics in the abovementioned paper (the exact parameters differ, though). For instance, in examples/linph-filterbank-modal-beamforming-em32.py, the directional responses (frequency- and time-domain) are simulated for Eigenmike em32.

em32-fd em32-td

narahahn avatar Dec 12 '19 16:12 narahahn

Very nice to have this here, good work! I've run all example scripts and had look into the added functions. Looks all reasonable to me. Did not debug this in detail, though. I made some small suggestions in comments and PEP style coding. From my side we can merge this.

fs446 avatar Dec 18 '19 22:12 fs446

The commit 81efa0b9018fe27a10f23dc6f27d660dc0927032 includes two post processing steps which I took from the original Matlab code.

  • 2nd order Butterworth low-pass filter is used in order to limit the bandwidth to 20 kHz
  • a tapering window is applied to the impulse response

The FIR coefficients are now saved in wave files.

narahahn avatar Jan 07 '20 16:01 narahahn