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 of replay 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.

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.