I have set of HRIR( Head related impulse response) downloaded. I want to convolve it with an audio signal to generate 3D signal in Matlab.

I am new to this field. Is there any tutorials or can any one help me how to start

  • 1
    $\begingroup$ Your question is a bit too brief and contains spelling and grammar errors, please take the time to formulate your question if you would like people to spend time formulating answers. Can you please explain what you mean by 'generate 3D signal' - it is not clear from the question what you are trying to achieve. $\endgroup$ – PAK-9 Nov 20 '13 at 19:25

Each HRIR is meant to represent the acoustic impulse response from an audio source at a specified angle (relative to the head) to the ear canal. There is no such thing as a 3D signal, but if you want to simulate audio from a given azimuth and elevation angle, just convolve your audio source with the corresponding HRIR as follows:

left_channel = conv(audio_signal,hrir_left_az_elev)
right_channel = conv(audio_signal,hrir_right_az_elev)

In this case, I am using hrir_left_az_elev to signify the HRIR that corresponds to the left-ear impulse response to a sound event at azimuth angle az and elevation angle elev. How you actually code this up will depend completely upon the format of your HRIR data.

| improve this answer | |
  • $\begingroup$ HI, Thank You very much for your reply. I have the audio signal x (4790599x1 double), and in HRIR ( Head related impulse response) the data is ITD, OnL ( 25x50), OnR (25x 50), hrir_l (25x50x200) and hrir_r (25x 50x 200). How should I use convolve function? and the matrix dimention is different. To understand this, are there any links or pdf or matlabs examples to study about these thing. $\endgroup$ – Dina Nov 21 '13 at 14:24
  • $\begingroup$ Most likely not. You should be able to finds lots of resources about convolution and about impulse responses. Once you have an understanding of these concepts then it is up to you to apply it to the data at hand. If I had to guess, I would say that 25x50x200 probably represents a 200-point impulse response over 25 spatial locations for 50 test subjects, but I have no way of knowing for sure. You would have to refer to the documentation provided with the data set. Surely one exists. $\endgroup$ – nispio Nov 22 '13 at 4:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.