delay = hohmann2002_delay(fb, delay_samples)
fb | The filterbank structure as returned by hohmann2002. |
delay_samples | The desired group delay in samples. Must be at least 1, because of the way the phase factors are computed. Larger delays lead to better signal quality. |
delay | The new delay object |
hohmann2002_delay(fb, delay_samples) creates a new delay object that can act as the first stage of a synthesizer that resynthesizes the output of the gammatone filterbank. The purpose of the delay object is to delay the output of each band by a band-dependent ammount of samples, so that the envelope of the impulse response of the analyzer is as large as possible at the desired delay. Additionally, the delay object will multiply this delayed output with a band-dependent complex phase factor, so that the real part of the impulse response has a local maximum at the desired delay. Finally, the delay object will output only the real part of each band.
The phase factors are approximated numerically in this constructor, using a method described in Herzke & Hohmann (2007). The approximation assumes parabolic behaviour of the real part of the impulse response in the region of the desired local maximum: The phase factors are chosen so that the real parts of the impulse response in the samples directly preceeding and following the desired local maximum will be equal after multiplication with the pase factor.
T. Herzke and V. Hohmann. Improved numerical methods for gammatone filterbank analysis and synthesis. Acta Acustica united with Acoustica, 93(3):498-500, 2007.