Sunil Tyagi, PhD

Technical notes

Technical notes

Practical write-ups from the bench on underwater acoustics and deep learning for vessel detection — classical sonar techniques, open datasets, and the methods behind current projects. Full text hosted here or on oravontsystems.com, where the practice keeps its working notes and article series; some notes are also published on LinkedIn.

Working note · Deep learning

Re-identifying vessels from radiated noise

How an acoustic re-identification system decides which vessel it is hearing, or that it has never heard it: embeddings from the raw waveform, a gallery of enrolled recordings compared by cosine similarity, enrolling a new vessel without retraining the model, and the threshold behind an “unknown”.

It closes on evaluation done honestly, split by vessel and by recording, and on offline operation with fixed signal settings. A worked example in NumPy, with synthetic embeddings, runs the gallery logic and is shown with its real output.

Title card: similarity bars showing an enrolled vessel matched and an unknown vessel rejected

Read the note · Python example

Tutorial · Underwater acoustics with Python

Underwater acoustics for machine-learning engineers

A beginner’s tutorial on the physical quantities behind underwater audio data: acoustic pressure in pascals, RMS pressure and intensity, sound pressure level in dB re 1 µPa and why it cannot be compared with decibels in air, the power spectral density, band levels and the level in a 1 Hz band, and transmission loss for spherical spreading.

It closes on synthesis: why you generate the pressure waveform p(t) from a target spectrum, with random phases and an inverse FFT, and never model p²(t). Eight runnable Python examples at the 16 kHz rate of the synthetic dataset are shown with their real outputs, and every figure is computed from the same formulas and signals.

Title card: spectrogram and spectrum of four tonal lines over broadband noise

Read the tutorial · Python examples

Acoustic stealth · Oravont series: Submarine target strength, explained · Article 1

What an echo can tell a sonar

The first article of a series on submarine target strength, written from the designer’s side of the problem: what an active-sonar echo carries, why the exact problem is rarely solved inside a design loop, and the three assumptions that make the echo computable. The one most often under-checked is the far field: at 5 kHz a 40 m hull is still in its near field out to 2.7 km.

What an echo can tell a sonar: a ping goes out to a generic double hull and the echo comes back

Read the article on oravontsystems.com · Watch the 3-minute video · The series · All Oravont notes · Also on LinkedIn

Acoustic stealth · Oravont working note

SSR-Sim: what a submarine’s sonar echo is made of

SSR-Sim estimates how strongly a submarine returns active sonar, and says which part of the boat the echo comes from. On a generic 66 m double-hull boat with bare steel plating, it puts the target strength at 43 dB on the beam at 5 kHz, and more than half of that echo comes from the flat sides of the sail. Bow-on, the echo is 33 dB weaker and mostly diffuse scattering from the structure between the hulls.

The note explains target strength through the equivalent sphere, splits the echo into specular reflection, diffuse scattering and non-specular re-radiation, and reports five results on an invented 66 m double hull: target strength against aspect and against frequency, where the echo comes from, what changes with range (including the near-field effect a far-field estimate misses on a long hull), and what an illustrative coating buys. It closes on the method’s limits and the next step, a comparison on the public BeTSSi benchmark submarine.

On the beam at 5 kHz this boat echoes like a sphere 280 m in radius

SSR-Sim is target-strength software developed in-house at Oravont Systems LLP by Sunil Tyagi, and used in Oravont’s acoustic stealth engineering services.

Read the full note on oravontsystems.com · PDF · SSR-Sim target-strength service · About SSR-Sim · Series introduction

Signal processing

DEMON Analysis: Reading a Vessel’s Propulsion from Its Own Noise

A working note on a classical technique that still earns its place alongside deep learning — and one way it caught a bug that spectrograms missed.

DEMON — Detection of Envelope Modulation on Noise — reads a vessel’s propulsion from its own radiated noise. A cavitating propeller produces broadband noise that is amplitude-modulated at the blade-passage rhythm; demodulating that noise recovers the shaft rate and blade rate, and from them the blade count, without ever seeing the vessel. The note walks through the physics, the four-step pipeline (bandpass, Hilbert envelope, AC-coupling, envelope FFT) and the maths behind the Hilbert envelope, then shows how to read the harmonic comb on a real DEMON spectrum — including a case where naive peak-picking reports the wrong fundamental.

It also covers the decision most tutorials skip: choosing the cavitation band and display range by vessel class, since a fast small craft can put its blade rate well off the conventional 0–50 Hz window. The case study shows DEMON catching a sea-swell artefact in a synthetic training dataset that conventional spectrograms had hidden, and the note closes on where DEMON sits in an AI workflow for underwater domain awareness: validating training data, explaining what an embedding model has learned, and supplying compact physics-grounded features.

DEMON analysis: shaft- and blade-rate harmonics from the cavitation envelope of a vessel recording

Read the note · Also on LinkedIn

Open dataset for underwater domain awareness · CC BY 4.0

A Physics-Grounded Synthetic Underwater Acoustic Dataset

Full-factorial waveform generation from first-principle acoustic models — 12,000 physics-grounded clips across four vessel classes and ambient ocean noise, with corrected ambient-noise modelling, physics-based cavitation, and worked verification calculations. Openly released for self-supervised pretraining.

Real hydrophone recordings are voluminous, unlabelled and expensive to annotate, which is the bottleneck for machine learning in underwater acoustics. This note describes a synthetic passive-sonar dataset built to address that gap. Ambient sea noise follows a piecewise model fitted to digitised Knudsen curves for sea states 0 to 6, with all quantities kept in physical units (pascals, dB re 1 µPa). Ship-radiated noise combines spectral synthesis for shaft-rate and blade-rate tonals, structural resonances and generator harmonics with a physical burst model for propeller cavitation.

Tanker, cargo ship, fishing vessel and small craft are given non-overlapping shaft-rate ranges, a design choice the note explains after overlapping ranges caused downstream representation learning to fail. Sea state, vessel class, blade count, generator frequency and cavitation intensity are varied full-factorially. Each clip is verified with the same classical techniques used on real recordings — spectrogram and DEMON analysis — and, used to pre-train an encoder with the Barlow Twins self-supervised objective, with training pairs drawn within each class, the dataset produced embeddings with a silhouette score of 0.97 and 100% k-NN accuracy across five classes, measured on the same clips used for training.

Dataset infographic: design factors, shaft-rate ranges, Knudsen sea-noise spectra, spectrograms

Read the note · Hugging Face · GitHub · Also on LinkedIn