Channel file format specifications
Specification of the required and optional fields in the channel and noise .mat files, including the impulse response, phase/delay tracking, and metadata formats.
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. To install the Python package,
pip install uwa-channels
The library is also supported in Julia, hosted under the UnderwaterAcoustics.jl package. See that package’s documentation for installation and usage instructions.
replay on the signal.noisegen to the output of replay at a desired signal-to-noise ratio.channel = load('blue_1.mat');
noise = load('blue_1_noise.mat');
array_index = [1, 2, 3];
y = replay(input, fs, array_index, channel);
w = noisegen(size(y), fs, array_index, noise);
r = y + 0.05 * w;import h5py
from uwa_channels import replay, noisegen
channel = h5py.File("blue_1.mat", "r")
noise = h5py.File("blue_1_noise.mat", "r")
array_index = [0, 1, 2]
y = replay(input, fs, array_index, channel)
w = noisegen(y.shape, fs, array_index, noise)
r = y + 0.05 * wA simple example of this process is given in MATLAB and Python. Before running the example code, please read the corresponding README file.
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.
To visualize a channel as a collection of impulse responses evolving over time, you will need to decompress the channel impulse responses via unpack. 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.
Specification of the required and optional fields in the channel and noise .mat files, including the impulse response, phase/delay tracking, and metadata formats.
A guide for contributing to the MATLAB and Python implementations of the channel replay library, covering setup, coding standards, and pull requests.