A small MATLAB pipeline exploring bio-inspired sonar waveform design + reverberation-suppressed matched filtering, built as a simplified reimplementation of the core idea in:
Sheng, X.; Dong, C.; Guo, L.; Li, L. "A Bioinspired Twin Inverted Multiscale Matched Filtering Method for Detecting an Underwater Moving Target in a Reverberant Environment." Sensors 2019, 19(23), 5305. DOI: 10.3390/s19235305 Open access: https://www.mdpi.com/1424-8220/19/23/5305 (also on PMC: https://pmc.ncbi.nlm.nih.gov/articles/PMC6928992/)
This is a student exploration/reimplementation for learning and portfolio purposes — not a claim of novel research, and not affiliated with the paper's authors. Several details of the original underwater/reverberation physics are approximated with toy models (see "Modeling choices" below) so the whole thing runs as a self-contained MATLAB simulation with no hardware or real sonar data.
- Bio-inspired pulse — generates a hyperbolic-FM continuous-wave (HFM-CW) multiharmonic pulse modeled on bat/dolphin click structure, alongside a conventional linear-FM (LFM) chirp as the non-bio baseline.
- Scene simulation — synthesizes a received echo containing a target return, dense reverberation clutter (many small delayed scatterer echoes), and additive noise at a controlled SNR.
- Detection pipeline:
- standard matched filtering (baseline),
- the twin-inverted trick: transmit the pulse and a phase-inverted twin, matched-filter each received echo against its own replica, and sum — linear reverberation cancels, the target (modeled with a non-invertible, Doppler/nonlinearity-like component) survives,
- multiscale matched filtering: a bank of time-stretched replicas to handle unknown target velocity/Doppler.
- Metrics — output SNR gain, reverberation suppression (dB), and ROC curves (P_D vs P_FA) across a few SNR levels, comparing the bio-inspired waveform against the plain LFM chirp, and standard vs. twin-inverted processing.
- Reverberation is modeled as a set of purely linear scatterers: their
echo exactly flips sign when the transmitted pulse is inverted, so
r1 + r2cancels it (matches the linear/nonlinear scatterer argument from Leighton's TWIPS work, which the paper builds on). - The target is given a small non-invertible component (
b*s(t)^2, since(-s)^2 = s^2) to stand in for the Doppler/motion-induced asymmetry the real paper derives more rigorously from a moving target's time-varying delay between the two transmissions. - No real underwater channel (multipath, absorption, boundary reflections) is modeled — reverberation is a flat-random delay/amplitude field, not a physically simulated seabed/surface.
- Doppler is emulated at the matched-filter stage via a small bank of time-scaled pulse replicas, rather than deriving delay-Doppler ambiguity functions in closed form.
- MATLAB (R2020a or newer recommended)
- Signal Processing Toolbox (
tukeywin,cumtrapz,resample-style interpolation) - No other toolboxes required. No hardware needed.
cd src
run_demoThis will:
- generate and plot both pulses (
results/pulses.png), - run one example scene and plot standard vs. twin-inverted vs.
multiscale detection outputs (
results/detection_outputs.png), - sweep SNR from -10 to 10 dB and plot output SNR / reverb suppression
(
results/snr_reverb_metrics.png), - run Monte Carlo trials at 3 SNR levels and plot ROC curves
(
results/roc_curves.png), - save all numeric results to
results/run_demo_results.mat.
src/
generate_hfm_multiharmonic.m bio-inspired HFM-CW multiharmonic pulse
generate_lfm_chirp.m conventional LFM chirp baseline
simulate_scene.m twin-pulse echo + reverb + noise simulator
matched_filter.m standard matched filter
twin_inverted_process.m twin-inverted combination step
multiscale_bank.m Doppler-stretch matched filter bank
run_demo.m main script: runs everything, makes plots
results/ figures + .mat output (generated on run)
If you use or reference this code, please cite the original paper, not this repo, for the underlying method:
@article{Sheng2019Bioinspired,
title = {A Bioinspired Twin Inverted Multiscale Matched Filtering
Method for Detecting an Underwater Moving Target in a
Reverberant Environment},
author = {Sheng, Xueli and Dong, Chaoping and Guo, Longxiang and Li, Li},
journal = {Sensors},
volume = {19},
number = {23},
pages = {5305},
year = {2019},
doi = {10.3390/s19235305}
}