Room Impulse Response Generator
Updated 2 Jan 2013
This function calculates a room's impulse response for an arbitrarily positioned sound source in an arbitrarily dimensioned rectangular room, as it would be heard at an arbitrary position. The output of RIR.m is a vector and can be used as an FIR filter to produce a reverb effect. To implement this filter you will need to do a fast convolution. I have another program, FCONV.m that performs this task. It is available on the Mathworks File Exchange.
For instructions on how to use this function, put RIR.m in your Matlab work folder and type "help rir."
The physics theory used by this function is not perfect. However, the function was intended to be used for space rendering in audio productions, and for this it works pretty well. For an article detailing the theory used go to http://www.sgm-audio.com/research/rir/rir.html.
Some Additional Notes:
The following was taken from an email. It regards the input variable N.
"...During the computation, the end of the reverb tail gets cut off. The variable N relates to how long the tail is prior to the cut off. If N=6 then some echoes that have undergone more than 6 reflections and will be unaccounted for. Additionally no echoes that have undergone more than 3*N=18 reflections will be accounted for. You may use any value of N you like. However, small N may mean that the impulse response is shorter than the Sabine reverb time, and large N may mean that it is longer..."
As for the reflection coefficient R, I usually use a positive value. However, a negative value for R will produce an output that more closely resembles more traditional impulse response calculations.
Stephen McGovern (2023). Room Impulse Response Generator (https://www.mathworks.com/matlabcentral/fileexchange/5116-room-impulse-response-generator), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Signal Processing > Signal Processing Toolbox > Signal Generation and Preprocessing >
- Signal Processing > Audio Toolbox > Audio I/O and Waveform Generation >
- Signal Processing > Audio Toolbox > Audio Processing Algorithm Design >
- Signal Processing > Signal Processing Toolbox > Digital and Analog Filters > Digital Filter Design >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.