[hrir_data,hrir_angles,fs] = enzner2008(mu,delta_phi,...)
|x||reference signal (excitation signal used for the measurements)|
|y||recorded binaural signal|
|P||structure with parameters|
|--X_DOT_mu||: NLMS stepzize, e.g., 0.75 or 1|
.h_length : length of the impulse responses in samples, e.g., 256 (or 308 for single channel perfect sweeps)
sampled HRIR data at the azimuth-resolution delta_phi with the structure:
hrir_data(filter coefficients, left/right, no. of channels, azimuthal index)
filter coefficients: see h_length
left/right: 1 = left, 2 = right
no. of channels: allways 1 (single channel NLMS-algorithm)
|hrir_angles||vector with azimuthal angles corresponding to the azimuthal index of hrir_data|
|errorsig||error signal (???)|
enzner2008 calculates a set of HRIRs using the normalized LMS-algorithm. A test signal in mono, e.g., white noise, perfect sweeps, or a reference recording at the position in the middle of the listeners head is used as the input of the algorithm, whereas the other input of the algorithm is given by the corresponding spatially-continuous (i.e., dynamical) binaural recording.
This recording contains the measured ear signals along the trajectory of interest, e.g., the horizontal plane, plus some symmetric overhead. The overhead is used to ensure capturing of all data of interest, to give the algorithm a scope to adapt and to be able to shift the signals against each other to ensure causality (see sys_latency). The binaural recording of the ear signals has to begin/end at the rear of the subject. Thus the first recorded sample number subsequent to the required overhead (see adapt) corresponds to an azimuth of phi = 180° (rear).
From a given set of example files, the HRIR data will be calculated. Per default the measured ear signals (stimulus: white noise) and the corresponding reference recording will be used for the computation. If you want to use the loudspeaker driving signals or a perfect sweep data set, please uncomment only the case of interest in the section "changeable parameters" in lines 74-104. In this section you can also adjust the used filter length.
The computation is performed continuously for each sample, in compliance with a continuous-azimuth HRIR representation. The storage of the HRIR data is sampled with an arbitrary azimuth-spacing delta_phi. The HRIR data will be written into the array hrir_data.