raytrace
In ocean acoustics a common task is to model the propagation of sound through the water column. The speed of sound varies with temperature, salinity and pressure (depth). To a first approximation, the ocean is horizontally stratified and these parameters only vary with depth. Variations in sound speed in layers of the water column cause a "ray" of acoustic energy to be refracted (to bend) as the ray passes through it.
When given a starting location, launch angle, vertical sound speed profile and total travel time, the attached function, raytrace.m, models the propagation of sound though a water column. It handles both reflection from the surface of the water and the bottom (the deepest depth given in the sound speed profile) as well as caustics (places in which the ray is bent back in the direction from which it came). Raytrace automatically plots the provided sound speed profile and the results of the ray-trace.
Although raytrace.m is designed for ocean acoustics, the mathematics for optical refraction is the same and where the assumptions apply raytrace.m will produce reasonable results.
Cite As
Val Schmidt (2024). raytrace (https://www.mathworks.com/matlabcentral/fileexchange/26253-raytrace), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Sciences > Geoscience > Oceanography and Hydrology >
- Signal Processing > Audio Toolbox > Simulation, Tuning, and Visualization >
- Engineering > Mechanical Engineering > Acoustics, Noise and Vibration >
Tags
Acknowledgements
Inspired: Water sound speed calculator
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.6.0.0 | Fixed bug which prevented handling of launch angles above horizontal. Make code MLINT green compatible with R2013a. |
||
1.4.0.0 | Fixed bug that prevented proper ray tracing for rays with launch angles above horizontal.
|
||
1.0.0.0 |