Skip to content

Replay a signal of your choice through an underwater acoustic channel, or unpack an underwater acoustic channel.

License

Notifications You must be signed in to change notification settings

amirtadayon/matlab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI codecov

Underwater Acoustic Channel Toolbox - MATLAB / Octave

Generic badge with Signal Processing Toolbox™ or Generic badge with signal and statistics packages.

MATLAB®/Octave toolbox to apply underwater acoustic channels to a signal of your choice, or to unpack an underwater acoustic channel. To learn more about the channels, check out the documentation.

Please report bugs and suggest enhancements by creating a new issue. We welcome your comments. See CONTRIBUTING.md for more information.

Using the replay and noise generation functions

This code repository contains the function replay and noise generation function noisegen in the src folder. To replay your desired signal, download MAT-files from here, and store them in a folder where MATLAB®/Octave can find them.

To load the channel and noise MAT-files, and replay a signal of your choice through an underwater acoustic channel,

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;

In examples/example_replay.m, the blue_1 channel is used. The blue_1.mat contains the channel impulse responses, while the blue_1_noise.mat contains the noise statistics extracted from the same recording. The script generates a single-carrier modulated BPSK signal consisting of n_repeat repetitions of a pseudo-random sequence, passes the signal through the blue_1 channel, and adds blue_1 noise. Three plots are displayed: the received signal amplitude in time, the cross-correlation between the received signal and the transmitted signal, where n_repeat peaks are visible, and the spectrum of the received signal. Multiple curves on each plot correspond to multiple receiving elements.

Using the unpack function

To unpack an underwater acoustic channel,

channel = load('blue_1.mat');
unpacked = unpack(fs_time, array_index, channel);

See examples/example_unpack.m for details.

Open in MATLAB Online

License

The license is available in the LICENSE file within this repository.

© 2025, Underwater Acoustic Channels Group.

About

Replay a signal of your choice through an underwater acoustic channel, or unpack an underwater acoustic channel.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 100.0%