An automated P-phase Arrival Time Picker with SNR output

PPHASEPICKER is a powerful tool for automatically picking P-phase onsets.
Updated 3 Apr 2019

View License

PPHASEPICKER is a powerful tool for automatically picking P-phase onsets with high precision without requiring detection interval or threshold settings. The algorithm detects P-phase onset in single-component acceleration or broadband velocity records using the histogram method. It also computes signal-to-noise ratio (SNR).

PPHASEPICKER has been integrated into the “Automated Processing and Review Interface for Strong Motion Data (PRISM)” software ( of the U.S. Geological Survey in order to identify pre-event time-window for systematic and automated processing of large numbers of strong-motion data.

An example MatLAB code is provided in zip file to show how to run PPHASEPICKER using three sample waveforms, one from strong earthquake and others from micro seismic events.

For your intended application, please note that filter corner frequencies may need to be updated manually within the code based on the frequency content of the input record.


Kalkan, E. (2016). “An Automatic P-phase Arrival Time Picker“, Bull. of Seis. Soc. of Am., 106(3): 971-986, doi: 10.1785/0120150111.

Cite As

Dr. Erol Kalkan, P.E. (2024). An automated P-phase Arrival Time Picker with SNR output (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Description updated


Updated notes

Added signal-to-noise ratio computation
Updated demo example file
Updated the reference
Updated description

Code is modified to prevent numerical errors due to very low amplitude input signals

Added BSSA paper describing the picker
Fixed "nbins" for arbitrary sampling rates; tested for inhomogeneous (arbitrarily sampled) weak acceleration records from China.

Modified for low sampled input waveforms (lower than 100 samples-per-second, sps) and third example (waveform with 80 sps) is included in demo file.

Tested for MatLAB 2013a, 2014a and 2016a.

Text is revised
Typo has been fixed.
A new micro seismic earthquake example is included.
Histogram computation is added in order to eliminate need for digital signal processing toolbox.
"no bandpass filter" option is added.