Skip to content

About

A MATLAB simulation exploring bio-inspired sonar waveform design and reverberation-suppressed matched filtering. Based on a 2019 paper, it contrasts HFM-CW multiharmonic pulses with LFM chirps using twin-inverted multiscale matched filtering to evaluate moving target detection in dense reverberation via SNR, suppression metrics, and ROC curves.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

biosonar-matched-filtering

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.

What it does

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Modeling choices (what's simplified vs. the paper)

  • Reverberation is modeled as a set of purely linear scatterers: their echo exactly flips sign when the transmitted pulse is inverted, so r1 + r2 cancels 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.

Requirements

  • MATLAB (R2020a or newer recommended)
  • Signal Processing Toolbox (tukeywin, cumtrapz, resample-style interpolation)
  • No other toolboxes required. No hardware needed.

Running it

cd src
run_demo

This 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.

File structure

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)

Citation

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}
}

About

A MATLAB simulation exploring bio-inspired sonar waveform design and reverberation-suppressed matched filtering. Based on a 2019 paper, it contrasts HFM-CW multiharmonic pulses with LFM chirps using twin-inverted multiscale matched filtering to evaluate moving target detection in dense reverberation via SNR, suppression metrics, and ROC curves.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages