A collection of MATLAB scripts for simulating active acoustic enhancement systems.
Requires AKtools available from https://github.com/f-brinkmann/AKtools (not necessary if you already have an RIR dataset)
The branch review-simulations provides scripts and audio examples to recreate the simulations from the paper "Active Acoustic Enhancement Systems - A Review and Simulations" (link to follow).
Requires my fork of AKtools to handle cardioid sources/receivers (https://github.com/willcassidy00454/AKtools-FreqIndepSH).
This script allows the user to simulate multiple AAESs iteratively given existing impulse response data. These data can either be measured from real AAES installations, or simulated using AutomatedRIRGenerator.m.
rir_parent_diris the read directory for the room impulse responses. The simulator will use these RIRs to populate the model.output_diris the write directory for the simulated output RIRs.num_channels_setspecifies the different channel counts available e.g.[8 12 16]. This currently assumes the number of microphones equals the number of loudspeakers.room_numsspecifies the indices of the rooms to use according to the folder labels inrir_parent_dire.g.[1 2 3].alpha_setsspecifies the indices of the alpha sets to use according to the folder labels inrir_parent_dire.g.[1 2 3].loop_gain_biases_dBspecifies the loop gains to use relative to the limit of stability in decibels e.g.[-2 -4 -6]. A relative loop gain of 0 dB should be critically stable.uses_parallel_processingcan be set totrueto use MATLAB's Parallel Computing Toolbox for parallelisation.
This script simulates the room impulse responses between loudspeaker and microphone positions in shoebox rooms. Multiple rooms can be specified with varying dimensions and absorption coefficients in seven octave bands. The absorption coefficients are read from .dat files, as well as the loudspeaker and microphone coordinates. Find examples in the folders Example Absorption Coefficients and Example Transducer Coordinates.
- This script will create RIRs for the example data, which are for 8, 12 and 16-channel square AAESs.
- Mono sources and receivers are used, positioned 1/3 and 2/3 along the floor diagonal at 1.2 metres high.
- All sources and receivers are omnidirectional, but this can be changed in
GenerateAKToolsRIRs.m.
room_dimsspecifies the room dimensions in metres in the following format:[x y z; x y z; etc.]wherexandyare the floor dimensions andzis height.absorptions_diris the read directory of the absorption coefficients.transducer_coords_diris the read directory of the transducer coordinates.output_parent_diris the write directory of the simulated RIRs. These will be written into folders regarding each room condition.uses_parallel_processingcan be set totrueto use MATLAB's Parallel Computing Toolbox for parallelisation.