File Exchange

image thumbnail

Fast simulation of acoustic room impulse responses (image-source method)

version 1.7.0.0 (36.7 KB) by Eric A. Lehmann
Fast simulation of audio data at one or more microphones from a source moving in a reverberant room

6 Downloads

Updated 10 Mar 2012

View License

These files provide a fast implementation of the image-source model (ISM) for the simulation of room impulse responses (RIRs) in small-room acoustics. This implementation produces RIRs that are virtually identical to those obtained with the standard ISM, but the simulations are up to two orders of magnitude faster. This represents a significant advantage when computing a large number of RIRs, e.g., as in the case of moving sound sources and/or microphone array applications.

These files can be used to simulate a sound source moving in a reverberant environment and generate the corresponding samples of audio data received at one or more microphones. This can be done by simply executing the following two commands:

>> fast_ISM_RIR_bank(my_ISM_setup,'fastISM_RIRs.mat');
>> AuData = ISM_AudioData('fastISM_RIRs.mat',SrcSignalVec);

where SrcSignalVec contains the source signal, and my_ISM_setup.m contains the various user-defined parameters needed for the simulation (room dimensions, positions of the microphones, sound source trajectory, desired reverberation time, etc.). The multi-channel matrix of audio data AuData contains the signals generated at each of the sensors.

These files further allow the user to define a range of simulation parameters such as automatic saving of the audio data into a .mat or .wav file, addition of white noise to the resulting signals, how much to crop the generated impulse responses, different ratios of absorption coefficients in the room, etc.

A full documentation of these files, as well as detailed explanations regarding the simulation process can be found at http://www.eric-lehmann.com . Also, please note that several of these files are identical to those provided on my other page "Image-source method for room impulse response simulation" ( http://www.mathworks.com.au/matlabcentral/fileexchange/20962 ).

The method implemented in this Matlab code effectively represents an approximation of the reverberant tail in RIRs, which in turn leads to some limitations in practice (see full documentation for more information). For a majority of applications however, this code should allow users to generate proper ISM-based results in a very efficient manner. Please feel free to leave a comment below or drop me a line at the above address to let me know about your results. Thanks!

Comments and Ratings (6)

ruiyq ruiyq

It's very useful.

jing zhang

jing zhang

Zhang

chen xy

Thank you very much, it's very usefull !

Updates

1.7.0.0

Minor update to fast_ISM_RoomResp.m so as to better handle anechoic environments (thanks to comments from Maryam Naghibolhosseini). Anechoic responses can now be achieved by setting either RT_VAL=0 or BETA=[0 0 0 0 0 0] (or both).

1.3.0.0

Small bug fixed in 'fast_ISM_RoomResp.m', which could occasionally lead to the last value of a RIR being NaN instead of a correct value (thanks to Marius Hennecke for this!)

1.2.0.0

Minor update in "Description" text.

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux