Exponentiated Phase Misfit
Warning
Please refer to the original paper [Yuan2020] for rigorous mathematical derivations of this misfit function.
The exponentiated phase misfit measures misfit using a complex-valued phase representation that is a good substitute for instantaneous-phase measurements, which can suffer from phase wrapping.
The exponentiated phase misfit measures the difference between observed and the synthetic normalized analytic signals. The misfit \(\chi(\mathbf{m})\) for a given Earth model \(\mathbf{m}\) and a single receiver and component is given by
where
is the difference in the real parts of the Hilbert transform, and
is the difference in the imaginary parts of the Hilbert transform.
Above, \(\mathcal{H}\) represents the Hilbert transform and \(E_s\) and \(E_d\) represent the instantaneous phase of synthetics and data, respectively,
The adjoint source for the exponentiated phase misfit function for a given receiver and component is given by:
Note
For the sake of simplicity we omit the spatial Kronecker delta and define the adjoint source as acting solely at the receiver’s location. For more details, please see [Tromp2005] and [Yuan2020].
Usage
adjsrc_type = "exponentiated_phase"
The following code snippet illustrates the basic usage of the cross correlation traveltime misfit function. See the corresponding Config object for additional configuration parameters.
import pyadjoint
obs, syn = pyadjoint.get_example_data()
obs = obs.select(component="Z")[0]
syn = syn.select(component="Z")[0]
config = pyadjoint.get_config(adjsrc_type="exponentiated_phase",
min_period=20., max_period=100.,
taper_percentage=0.3, taper_type="cos")
adj_src = pyadjoint.calculate_adjoint_source(config=config,
observed=obs, synthetic=syn,
windows=[(800., 900.)]
)