Seismic refraction in MATLAB

Jackie Caplan-Auerbach
Western Washington University,
Author Profile

This activity was selected for the Teaching Computation in the Sciences Using MATLAB Peer Reviewed Teaching Collection

This activity has received positive reviews in a peer review process involving five review categories. The five categories included in the process are

  • Computational, Quantitative, and Scientific Accuracy
  • Alignment of Learning Goals, Activities, and Assessments
  • Pedagogic Effectiveness
  • Robustness (usability and dependability of all components)
  • Completeness of the ActivitySheet web page

For more information about the peer review process itself, please see

This page first made public: Oct 7, 2015


This activity allows students to plot arrival times for direct and head waves in a simple refraction system (2 or 3 layers, assuming horizontal interfaces). Students use provided MATLAB functions to investigate the effects of changing layer thicknesses and velocities on arrival times and crossover distances.

Learning Goals

The goal of this project is for students to examine the effects of changing layer thickness and layer velocity on arrival times in a seismic refraction survey. By utilizing MATLAB functions students can easily change subsurface parameters and immediately see the effect on travel time curves. For the three layer system, students can see the effects of having a thin intermediate layer or a low velocity layer.

Context for Use

This activity can be an in-class project (if students have classroom access to MATLAB) or a homework assignment. The MATLAB functions are provided, but students should be familiar with basic MATLAB and with function syntax. This activity requires basic understanding of seismic refraction surveys and with the definitions of direct and refracted (head) waves.

Description and Teaching Materials

The step-by-step guide to running the MATLAB scripts is in the attached file: Refraction in MATLAB (Microsoft Word 2007 (.docx) 117kB Sep24 15)

This activity requires MATLAB functions:


After doing this activity students should be able to explain how travel times and crossover distances change when layer thickness and velocities change. They should be able to explain why this is (e.g. the head wave spend more time traveling through a thicker top layer). They should be able to explain that if a survey does not include arrivals on either side of the crossover, it is impossible find the speeds of both layers. For a three layer system, students should be able to see that a thin middle layer may not ever be the first arriving layer, and thus may not be identified in refraction surveys. Finally, they should be able to see and explain why there are no head wave arrivals from a low velocity layer.

References and Resources