About This Tutorial
In sonar education, it is often useful to review the process of sonar design: historic, current, and prospects for the future. Sound navigation and ranging equipment for subsea navigation, target detection, and imaging has undergone many iterations, with improved developments in the technology since World War II. Today, we may take these developments for granted, and it is easy to forget the underlying fundamentals for processing such data. This may lead to an improper handling of sonar data and a misunderstanding of what a specific transducer is capable of doing and what its output is telling the operator. This tutorial is designed to facilitate development of next generation engineering professionals, sensors, and automation techniques for maritime surveillance, reconnaissance, navigation and communication. The material will cover the history of sonar systems, review important sonar signal processing techniques, and practice converting raw sonar signals into meaningful output.
Who Should Attend
Practicing engineers, researchers, and graduate students working in sonar sensor design or sonar signal processing. Any attendees interested in learning more about the history of sonar system development are also encouraged to attend. This tutorial is also approachable for any students or researchers with a basic digital signal processing background but little exposure to sonar signals and data.
Recommended Prerequisites
Although we plan to make all material approachable for newcomers (programming solutions, slides/notes provided), we highly recommend that attendees (at minimum) have the following skills:- Linear Algebra: Basic understanding of what eigenvalues and eigenvectors are and what they represent for a multidimensional dataset.
- Digital Signal Processing: Basic knowledge of periodicity, frequency, Fourier Transforms.
- Water Channels: Basic knowledge of how ocean signals propagate underwater.
- Programming: Proficiency in reading, writing, and debugging Python code.
Learning Objectives
By the end of this tutorial, attendees will be able to...
- Recognize the historical trend of sonar signal processing since the early 1900s.
- Gain intuition about digital signal processing (DSP) techniques used to process sonar data.
- Program DSP algorithms for the purpose of beamforming multi-element sonar data.
- Apply matched filtering to coherently produce synthetic aperture sonar (SAS) data.
Planned Schedule
This tutorial is scheduled as a half-day, single-track event (4 hours) and currently has 3.5 hours total of planned topics/breaks. The first major topic of the tutorial will focus on lecture, but "Basics of DSP" and "Basics of Sonar DSP" will shift to multiple hands-on exercises that attendees are encouraged to use while following along. Thus, please bring your own laptop with appropriate libraries pre-installed (see Pre-Tutorial Software Setup below).| Time Length | Topic |
|---|---|
| [60 min] | The Evolution and Future of Sonar |
| 45 min | 1900s to Present Overview from the underwater signaling bell to present day sidescan and multibeam sonars. Timeline of sonar generations in the Navy and industry/academia. |
| 15 min | Future of Sonar Covering the future of sonar sensor development and application. |
| [35 min] | Basics of DSP |
| 10 min | Signal Characteristics Importance of sampling rate and signal phase. Connections between time delay and phase of returned echoes. Brief discussion on Euler's formula. Introduction of passband and baseband concept and the significance of both. |
| 10 min | Intuition on Fourier Series and Transforms Viewing Fourier transforms as projections. Review on the usefulness of the Fourier domain when processing/filtering and shifting signal frequency. |
| 15 min | Matched Filtering Overview of its place in the sonar processing pipeline. Derivation of the optimal filter for received signals given knowledge of projected radar or sonar pings. |
| [10 min] | Coffee Break |
| [90 min] | Basics of Sonar DSP |
| 25 min | Single-element, Multipath, and Noise Overview of the sonar equation. Flowchart of operations when finding probability of object detection. Discussion on how sonar signals propagate through water channels and noise sources to consider. Estimating transmission loss in a water channel using simulated data from BELLHOP (Acoustics Toolbox). |
| 30 min | Beam patterns and Beamforming Motivation for beamforming in reference to sonar equation. Derive basic delay-and-sum beamforming equations. Apply beam pattern windowing functions to suppress sidelobes and discuss tradeoffs. Compare different beamforming methods, including Minimum Variance Distortionless Response and Multiple Signal Classification. |
| 35 min | Sidescan Sonar and SAS Image Formation Demonstrate tradeoffs of sidescan and SAS image formation algorithms. Create a SAS image with time-delay beamforming. Cover intuition on the Omega-K beamforming algorithm. |
| [10 min] | Review and Q & A |
Tutorial Materials & Downloads
Sample files for the hands-on portions of this tutorial will be provided here prior to the event. Complete versions of the files will be provided to attendees closer to the OCEANS26. Any Tutorial Data released below are provided through publicly available data or through an acoustic simulator (Sonar-Sim/MASTODON).
Presentation Slides
Slide deck used during the tutorial to cover all topics, from the evolution of sonar to backprojection for SAS imagery.
SampleSlides.pdfJupyter Notebooks
Interactive Jupyter Notebook file containing hands-on coding exercises for DSP and sonar signal processing.
sonar_tutorial_sampler.ipynbNotebook Solutions
Completed versions of the Jupyter Notebook exercises for reference and self-checking.
Download link to be postedTutorial Data
Simulated sonar datasets and signals used in the hands-on beamforming and SAS sessions.
Download link to be postedPre-Tutorial Software Setup
Attendees are expected to bring their own laptops with Python installed. To ensure compatibility and ease of setup, we strongly recommend using Miniforge3 (a community-driven, minimal installer for conda specific to conda-forge) to manage your Python environment and dependencies.
Please download and install Miniforge3 for your operating system from the official Miniforge GitHub repository.
Once Python and your package manager are installed, please open your terminal or Anaconda prompt and ensure the following packages are installed in your environment prior to arriving:
Note: If you prefer using standard Python and pip, you can alternatively install them via:
About the Authors / Instructors
Acknowledgements
The instructors would like to acknowledge the following for their help in developing the material in this tutorial: Dr. Adriana L. McKinney, Samuel R. Shaffer, Evan Marcinkevage, John C. Moore, Jemma A. Smith, Jacqueline A. Sternlicht, Angelica M. Velazquez-Lassalle, and Kagan Zimmerman.