def Envelope3(syn, obs, nt, dt, eps=0.): # envelope lag # (Yuan et al 2015, eqs B-2, B-5) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) erat = _np.zeros(nt) erat[1:-1] = (esyn[2:] - esyn[0:-2]) / (2. * dt) erat[1:-1] /= esyn[1:-1] erat *= misfit.Envelope3(syn, obs, nt, dt) wadj = -erat * syn + _hilbert(erat * _hilbert(esyn)) return wadj
def Envelope3(syn, obs, nt, dt, eps=0.): # envelope lag # (Yuan et al 2015, eqs B-2, B-5) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) erat = _np.zeros(nt) erat[1:-1] = (esyn[2:] - esyn[0:-2])/(2.*dt) erat[1:-1] /= esyn[1:-1] erat *= misfit.Envelope3(syn, obs, nt, dt) wadj = -erat*syn + _hilbert(erat*_hilbert(esyn)) return wadj
def InstantaneousPhase2(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps*max(esyn) eobs1 = eobs + eps*max(eobs) esyn3 = esyn**3 + eps*max(esyn**3) diff1 = syn/(esyn1) - obs/(eobs1) diff2 = _hilbert(syn)/esyn1 - _hilbert(obs)/eobs1 part1 = diff1*_hilbert(syn)**2/esyn3 - diff2*syn*_hilbert(syn)/esyn3 part2 = diff1*syn*_hilbert(syn)/esyn3 - diff2*syn**2/esyn3 wadj = part1 + _hilbert(part2) return wadj