DSPRelated.com
Forums

minimum phase HRTF

Started by Emile June 22, 2007
Hello,

i'm looking for a tool or matlab function to convert head related 
transfer functions (impulse responses) into a minimum phase filter + 
corresponding allpass filter (or phase excess in the form of nr of 
samples for the interaural time delay).
I would also be happy with a dataset that already has been converted.
I've read through the minimum phase chapter in the oppenheim&schafer 
book, and i think i understand most of it, but have no idea how to let 
matlab do it to the HRTF data.
I'm a comp science student with no background in dsp, only what ive 
learned myself the past year, and that isnt all that much. I just want 
to use minimum phase hrtf + correstponding ITD in a program I'm writing.
Be careful, if you convert your filters to minimum phase, the ITD for a 
given direction may be wrong, which is probably unwanted!

Best regards,

Andre

Emile wrote:
> Hello, > > i'm looking for a tool or matlab function to convert head related > transfer functions (impulse responses) into a minimum phase filter + > corresponding allpass filter (or phase excess in the form of nr of > samples for the interaural time delay). > I would also be happy with a dataset that already has been converted. > I've read through the minimum phase chapter in the oppenheim&schafer > book, and i think i understand most of it, but have no idea how to let > matlab do it to the HRTF data. > I'm a comp science student with no background in dsp, only what ive > learned myself the past year, and that isnt all that much. I just want > to use minimum phase hrtf + correstponding ITD in a program I'm writing.
>Hello, > >i'm looking for a tool or matlab function to convert head related >transfer functions (impulse responses) into a minimum phase filter + >corresponding allpass filter (or phase excess in the form of nr of >samples for the interaural time delay). >I would also be happy with a dataset that already has been converted. >I've read through the minimum phase chapter in the oppenheim&schafer >book, and i think i understand most of it, but have no idea how to let >matlab do it to the HRTF data. >I'm a comp science student with no background in dsp, only what ive >learned myself the past year, and that isnt all that much. I just want >to use minimum phase hrtf + correstponding ITD in a program I'm writing. >
Here is the expression for matlab using Hilbert Transform (Article by Malcolm Hawksford): c=fft(signal,fftsize); hmin=real(ifft(exp(conj(hilbert(log(abs(c))))),fftsize)); for the excess phase, just divide element to element in the fft domain, signal and hmin There is another direct way with matlab functios using the cepstrum: try cceps and rceps, its just the same. Be careful with phase and HRTF, you may loose critical info!