The incentive for this tutorial arose when a student asked about
the error in a receiver function. The teleseismic P-wave receiver
function is a filter which converts the vertical component of the
P wave to the radial component. Typically this filter is defined
as that which converts the observed P-wave on the vertical
component to a low-pass filtered P-wave on the radial component.
This low pass operation is usually defined in terms of a Gaussian
function
H(f) = exp [ - ( π f / α ) 2 ]
If the filter determined from the data confidently predicts the low-pass filtered radial component, and if the filter satisfies elementary elastic wave theory, then the resultant receiver function can be used constrain Earth structure near the seismograph station.
This exercise is contained in the gzip'd tar file RFTNNOISE.tgz
After downloading execute the following commands:
gunzip -c RFTNNOISE.tgz | tar xf - cd RFTNNOISE.dist/src make all cd ..This procedure creates the directory structure:
RFTNNOISE.dist/ RFTNNOISE.dist/DOCLEANUP Script to clean up temporary files RFTNNOISE.dist/DOIT Simulation script RFTNNOISE.dist/DOPLOT Script to create PNG graphics RFTNNOISE.dist/Models/ Directory having models for making synthetics RFTNNOISE.dist/src/ RFTNNOISE.dist/src/Makefile RFTNNOISE.dist/src/noisemodel.h RFTNNOISE.dist/src/sacnoise.c RFTNNOISE.dist/src/sacsubc.c RFTNNOISE.dist/src/sacsubc.h RFTNNOISE.dist/Models/CUS.mod RFTNNOISE.dist/Models/tak135sph.modAs a result of the make all the executable sacnoise is created in the src directory.
DOIT is the driving script for the simulations. It
is bash shell script with all controls at the top of the
file. To keep the code manageable, the bash functions
are used. These appear first in the file. The logic of the
simulation is incorporated in these lines:
The comments indicate what each function does. init() creates NSIM random numbers between 0 and 9999 in the file surd.tmp, with one entry per line. maketeleseism uses hudson96 to make the teleseismic P wave signal on the Z and R components. The amplitude of the synthetic depends on Mw and on a source duration which is a function of Mw. dorftnnonoise creates the receiver functions for α = 0.5, 1.0 and 2.5.############################################################################ # main processing ############################################################################ ##### # clean up from previous runs ##### cleanup ##### # initialize the random number sequence ##### init ##### # make the teleseism signal # and then get the receiver function from the noisefree signal ##### maketeleseism dorftnnonoise ##### # add noise to the Z and R components for the teleseismic P wave # and compute receiver functions ##### SIM=00 while read SURD do SIM=`echo $SIM | awk '{printf "%3.3d", $1 + 1 }' ` domakenoise dorftnnoise done < surd.tmp ##### # now stack the noisy P signals to see if they are improved # stack the RFTNs from the noisy signal ##### dostack