Skip to content
SanjanakambojPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Acoustics Sensing

Underwater acoustic signal processing of a hydrophone recording of boat noise (Hydrographic_boat.wav), analyzed in acoustic_sensing.ipynb.

Recording

  • File: Hydrographic_boat.wav
  • Sample rate: 11025 Hz
  • Duration: ≈ 125.3 s
  • Channels: stereo (only channel 0 is analyzed)

Pipeline

  1. Load the WAV file (scipy.io.wavfile).
  2. Preprocess — select one channel, remove DC offset.
  3. Calibrate raw counts to pressure (Pa) via a hydrophone sensitivity factor.
  4. Leq — broadband equivalent sound level, referenced to 1 µPa (the underwater acoustics standard, not the 20 µPa airborne standard).
  5. Spectral analysis:
    • Windowed FFT (Hann window, leakage-reduced)
    • Welch PSD (averaged periodogram, less noisy than a single long FFT)
    • Spectrogram (time-varying spectral content)
    • 1/3-octave band levels (standard reporting format for underwater acoustics)
  6. Denoising — 4th-order Butterworth bandpass filter (20 Hz–5 kHz, zero-phase filtfilt) to separate boat-band content from low-frequency, likely non-acoustic noise.

Key Findings

  • Leq (raw, uncalibrated): ≈ 194.78 dB re 1 µPa → Leq (bandpass-filtered): ≈ 183.23 dB re 1 µPa (≈ 11.55 dB drop). Both values are on an uncalibrated scale — see caveat below.
  • ≈ 81% of spectral energy sits below 20 Hz, most likely flow/handling noise or mechanical coupling rather than genuine boat-radiated sound. This dominates the raw broadband level and motivated the bandpass filter.
  • Likely boat-machinery tonals at 157.5 Hz, 198.4 Hz, and 396.9 Hz — the strongest 1/3-octave bands once the low-frequency artifact is set aside.
  • Transient event at t ≈ 92.5 s — a clear loudness spike in the spectrogram, consistent with a closest-point-of-approach or similar single loud event.

Caveat: Calibration

calibration_factor in the notebook is currently a placeholder (1.0). All dB values are therefore on an uncalibrated scale — valid for relative/spectral comparisons within this dataset, but not yet true SPL. Substitute the hydrophone's actual sensitivity (from its calibration sheet) to get physically meaningful sound levels.

Requirements

  • Python 3
  • numpy, scipy, matplotlib, jupyter

Usage

python3 -m jupyter nbconvert --to notebook --execute --inplace acoustic_sensing.ipynb

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages