互相關與褶積是勘探地震學和天然地震學中比較常用的一種數據分析手段。在勘探地震學中,往往用褶積模型(地震記錄是子波與地層反射係數的褶積)描述地震記錄的產生;在天然地震學中,常常用互相關來去除震源影響,即A點記錄的地震信號與B點記錄的地震信號的互相關結果(以A為參考)的正支是A點到B點的經驗格林函數,其與真正的格林函數只有振幅上的差異。獲得經驗格林函數之後,我們才可以從經驗格林函數中測量地震波的相速度或群速度,以便進一步分析。由此可見,無論是對於勘探地震學還是天然地震學,正確地理解和使用互相關與褶積都是極其重要的。首先,我們給出時間域的互相關與褶積的定義公式。
對於兩個連續信號f和g,以g為參考,互相關的定義公式為:
其中T是信號的持續時間,對於離散信號,上式的離散表達式為:
其中,N是離散信號的採樣點數,對於連續信號f和g,褶積的定義公式為:
其中T為信號f和g的持續時間,從上式可以看出,褶積運算可以交換順序,結果不變。對於離散信號,其表達式為:
仔細觀察公式(1)~(4),我們總覺得相關與褶積存在某種聯繫,事實上,我們可以用褶積來表達相關,即:
以上是時間域的互相關與褶積的計算方法,同樣地,也可以在頻率域實現互相關,而且頻率域計算速度較快。為此,我們對式(1)作傅立葉變換有:
即以信號g為參考,f與g的互相關,其頻率域結果是信號g的頻譜的共軛乘以f的頻譜,對式(6)做傅立葉反變換,即可獲得以g為參考的f與g之間的互相關結果。廢話不多說,上matlab代碼:
我們利用波場數值模擬的方法獲得了某一個模型在偏移距為30 m和60 m處的地震道信號,即上圖代碼中的信號g和f。採取四種方法計算以信號g為參考的f與g之間的互相關,分別是按時間域離散公式直接計算、調用matlab的xcorr函數計算、調用matlab的conv函數計算、在頻率域計算。代碼如下圖所示:
接下來,我們繪製原始信號和互相關結果的波形。繪圖部分代碼如下圖所示:
原始信號g和f如圖1所示,四種方法獲得的互相關結果如圖2所示。
由於信號f的偏移距更長,因此其同相軸起跳時間更滯後(圖1)。以g為參考,作f與g之間的互相關,事實上得到的互相關結果的正支是檢波點f到g的經驗格林函數(以f為震源的零延遲互相關結果的因果部分,反映了信號f相對於信號g的延遲程度),如圖2所示。如果以f 為參考,因果部分會出現在負支,因為相關方向相反。對于震源位置未知的背景噪聲成像領域中的應用,通常是將正支與負支相加除以2來獲得經驗格林函數。
1)xcorr函數的互相關結果是以參數2為參考,見代碼第33行;
2)conv函數實現互相關,一定令參考信號反序,見代碼第35-36行;
3)在頻率域實現互相關,一定要給信號補零(代碼第41行),互相關結果的時間序列是按[0~+lag_max, -lag_max~0]的形式輸出的,因此,要對其調用fftshift函數,使其時間序列變為[-lag_max +lag_max]。事實上,matlab的xcorr函數也是在頻率域實現的,而且在輸出時調整了時間序列順序,xcorr函數內部細節如下圖所示;
PS:完整的matlab代碼例子請從以下百度網盤分享連結下載(有效期為7天):
https://eyun.baidu.com/s/3dBm3hk
掃描二維碼
關注我們
微信號 : seismictechnique