2022-10-28 Adaptive stacking,一種最大化疊加beam能量的方法

import numpy as np
from numba import jit
@jit()
def astack(array, norm_p = 3, nsi = 1, roll_scale = np.array([-20,20])):
    nch, npts = array.shape
    ref_trace = np.zeros(npts)
    out_data  = np.zeros_like(array)
    for i in range(nsi):
        tau_ = np.zeros(nch)
        if i == 0:
            data_ = np.zeros_like(array)
            for ch, tr in enumerate(array):
                data_[ch] = tr/np.sqrt(np.sum(np.square(tr)))  #6s, 300個(gè)點(diǎn)做l2歸一化
                ref_trace += tr/np.sqrt(np.sum(np.square(tr))) #6s, 歸一化的reference trace
            ref_trace = ref_trace/nch
            tau = np.zeros(nch)
            
            ref_4s = ref_trace[50:-50]  #4s的reference trace
            data_4s = np.zeros((nch, 200))
            for n, tr in enumerate(data_):
                P_tr = np.zeros(roll_scale[1] - roll_scale[0])
                for j, shift_samp in enumerate(np.arange(roll_scale[0], roll_scale[1])):
                    tr_roll = np.roll(tr, shift_samp)[50:-50]
                    P_tr[j] = np.linalg.norm((ref_4s - tr_roll), norm_p)
                tau[n] = np.argmin(P_tr)
            
            for b, idx in enumerate(tau):
                tau_[b] = np.arange(roll_scale[0], roll_scale[1])[int(idx)]
#             np.arange(roll_scale[0], roll_scale[1])[]
            
#             tau_ = np.array([np.arange(roll_scale[0], roll_scale[1])[int(idx)] for idx in tau])
            
#     ref_4s = np.zeros(200)
#     for i, tr in enumerate(data_):
#         tr_roll = np.roll(tr, tau_[i])[50:-50]
#         ref_4s+=tr_roll
#     ref_4s = ref_4s/nch
            
    return tau_, ref_4s
            

還沒(méi)有寫多個(gè)循環(huán),加入遞歸的操作。該算法的目的是把沒(méi)有對(duì)齊的波形自適應(yīng)拉齊。
參考自Rawlinson, N., & Kennett, B. L. (2004). Rapid estimation of relative and absolute delay times across a network by adaptive stacking. Geophysical Journal International, 157(1), 332-340.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Google Play應(yīng)用市場(chǎng)對(duì)于應(yīng)用的targetSdkVersion有了更為嚴(yán)格的要求。從 2018 年...
    申國(guó)駿閱讀 65,829評(píng)論 15 98
  • 《來(lái),我們說(shuō)說(shuō)孤獨(dú)》 1·他們都在寫孤獨(dú) 一個(gè)詩(shī)人 如果 不說(shuō)說(shuō) 內(nèi)心的孤獨(dú) 不將孤獨(dú) 寫進(jìn)詩(shī)里 是不是很掉價(jià)呢 ...
    聽(tīng)太陽(yáng)升起閱讀 4,602評(píng)論 1 7
  • 自幼貧民窟長(zhǎng)大的女子,僥幸多念了兩本書,枉以為可以與人平起平坐??墒侨松鷱膩?lái)都是接力賽,我們卻天真的當(dāng)成了百米沖刺...
    Leeanran閱讀 5,910評(píng)論 1 5
  • 云舒老師,姓甚名誰(shuí),男的女的,多大歲數(shù),這些我全然不知。之所以要寫寫云舒老師,完全是因?yàn)樗麑懙奈恼?,如一個(gè)巨大的磁...
    數(shù)豆者m閱讀 2,537評(píng)論 6 9
  • """1.個(gè)性化消息: 將用戶的姓名存到一個(gè)變量中,并向該用戶顯示一條消息。顯示的消息應(yīng)非常簡(jiǎn)單,如“Hello ...
    她即我命閱讀 5,077評(píng)論 0 6

友情鏈接更多精彩內(nèi)容