Miroslav Hallo - Software

Computation of covariance matrices of Green's functions

Open source functions for determining the (cross-)covariance matrix of Green's functions by approximate covariance function (ACF, AXCF) and stationarized approximate covariance function (SACF, SAXCF) (Hallo and Gallovic, 2016). The functions are distributed with an intuitive example, and return the full (cross-)covariance matrices. The codes are published under the GNU General Public License. To any licensee is given permission to modify the work, as well as to copy and redistribute the work or any derivative version. Still we would like to kindly ask you to acknowledge the authors and don't remove their names from the code. The code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.

Here we dare to state some practical notes for users:
  • Magnifying of the parameter L1 leads to magnifying the variance of the covariance matrix in both ACF and SACF.
  • ACF covariance matrix is more accurate than SACF for L1<T.
  • ACF and SACF covariance matrices are very similar (in the duration of the useful signal) for L1>T.
  • The time-independence of SACF produces non-zero variance even for zero signal (prior and after the duration of useful signal).
  • Consider to use zero cross-covariance matrix (independence of two receivers), for receivers with higher mutual distance.
  • The cosine taper is applied on final covariance matrix in the case of SAXCF, you can control the taper inside the saxcf.m function


  • axcf.m - MatLab function for determining the (cross-)covariance matrix by approximate covariance function (ACF, AXCF).
  • saxcf.m - MatLab function for determining the (cross-)covariance matrix by stationarized covariance function (SACF, SAXCF).
  • example.m - Example of MatLab code using the functions axcf.m and saxcf.m
  • axcf_saxcf_full.zip - Zip package containing axcf.m, saxcf.m, and example.m MatLab codes


The codes require MatLab functions: smooth from MatLab Curve Fitting Toolbox, and filtfilt from MatLab Signal Processing Toolbox.
The codes were tested on various versions of MatLab software, and it works without any problems even on older versions. Namely we tested: Matlab 2010a 32-bit (Windows XP), Matlab 2010b 64-bit (Windows 7), Matlab 2012b 32-bit (Windows 7), Matlab 2012a 64-bit (Ubuntu 14), Matlab 2014a 64-bit (Ubuntu 14), Matlab 2015a 64-bit (Ubuntu 14).