Stochastic distorted-wave Born approximation for acoustic scattering, in Julia
Author ElOceanografo
4 Stars
Updated Last
9 Months Ago
Started In
September 2015


Build Status


This Julia package implements the (stochastic) distorted-wave Born approximation for acoustic scattering from fluid-like objects shaped like distorted cylinders. These models are useful for modeling the acoustic target strengths (TS) of zooplankton, which are needed to convert sonar echoes to estimates of biomass.

The full documentation and function reference can be found at here. A short demo is given below:

To install and load it, simply run

using SDWBA

Several models of common animals are included. To calculate the TS of an Antarctic krill, Euphausia superba:

krill = Models.krill_mcgeehee
freq = 120e3	# acoustic frequency (kHz)
c = 1456		# sound speed in water (m/s)
target_strength(krill, freq, c)
# -66.9

Functions are included to tilt/rotate scatterers, as well as to resize them:

krill2 = rescale(krill, 0.8) # shrink the krill by 20%
krill2 = rotate(krill2, tilt = 45) # tilt it 45 degrees nose-up
target_strength(krill2, freq, c)
# -100.09

Often, we are interested in how an animal scatters across a range of frequencies or tilt angles. Two convenience functions, tilt_spectrum and freq_spectrum, are included to do this easily. For instance, we can take our krill and examine its frequency-response curves at a few different tilt angles:

start, stop = 10e3, 1000e3 # endpoints of the spectrum, in Hz
nfreqs = 200
fs0 = freq_spectrum(krill, start, stop, c, nfreqs)
fs5 = freq_spectrum(rotate(krill, tilt=5), start, stop, c, nfreqs)
fs10 = freq_spectrum(rotate(krill, tilt=10), start, stop, c, nfreqs)

using PyPlot # for plotting functions
semilogx(fs0["freqs"] / 1000, fs["TS"])
semilogx(fs5["freqs"] / 1000, fs5["TS"])
semilogx(fs10["freqs"] / 1000, fs10["TS"])
xlabel("Frequency (kHz)")
ylabel("Target Strength (dB re m^2)")
legend(("", "", "10°"), title="Tilt angle", loc="upper left", frameon=false)

Krill frequency response

As expected, the target strength is lower at greater tilt angles, and the differences are more pronounced at higher freqencies in the geometric scattering region.

Used By Packages

No packages found.