User's Guide
The channels stored in this library can be used in two ways: (1) a channel can be applied directly to a user-generated signal, or (2) it can be decompressed for visualizing. Ready-to-use code for performing these functions is available under GitHub. You can also download the MATLAB package here.
Applying a channel to an arbitrary signal
- To pass a signal of your choice through a channel, generate the desired signal in passband, respecting the bandwidth and the sampling rate limits of the chosen channel (see the channel tab).
- State the sampling frequency of your passband signal.
- Run
replay
on the signal. - Specify the noise power, and add the output of
noisegen
to the output ofreplay
at a desired signal-to-noise ratio. - This will produce a noisy passband received signal.
channel = load('blue_1.mat');
noise = load('blue_1_noise.mat');
y = replay(input, fs, array_index, channel);
w = noisegen(size(y), fs);
r = y + 0.05 * w;
channel = h5py.File("blue_1.mat", "r")
noise = h5py.File("blue_1_noise.mat", "r")
y = replay(input, fs, array_index, channel);
w = noisegen(y.shape, fs);
r = y + 0.05 * w;
A simple example of this process is given in MATLAB
and Python
. Before running the example code, please read the corresponding README
file.
Important note
The channels are specified for a certain acoustic bandwidth that was used during the experiment. When working with a channel, please understand that only that bandwidth is visible. If you are designing a signal that you will pass through a channel, the bandwidth of your signal must fit within the stated limit. Note that you do not need to decompress the channel first to replay the signal.Visualizing a channel
To visualize a channel as a collection of impulse responses evolving over time, you will need to decompress the channel impulse responses via unpack.m
. This will produce a new channel matrix that is decompressed (it is larger than the stored original) and contains all the physical effects of delay drifting. The new matrix can be generated at arbitrary sampling rates in time, provided it is no greater than the sampling rate in delay.
A simple example of this process is given in MATLAB
and Python
. Before running the example code, please read the corresponding README
file.