版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生實驗報告實驗課程 油氣勘探新方法 學院名稱 地球物理學院 專業(yè)名稱 勘查技術與工程(石油物探) 學生姓名 學生學號 指導教師 熊高君 實驗地點 5417 實驗成績 2015年12月 成都理工大學油氣勘探新方法實驗報告實驗時間2015年 12月開課單位地球物理學院指導教師熊高君實驗題目:疊前地震記錄的相移波動方程正演模擬實驗姓名學號班級專業(yè)勘測技術與工程(石油物探)院(系)地球物理學院 地球探測與信息技術系單項成績內容理解寫作結構程序設計模型設計計算結果結果分析總成績實驗報告一、 實驗題目疊前地震記錄的相移波動方程正演模擬實驗二、實驗目的掌握各向同性介質任意構造、水平層狀速度結構地質模型的
2、疊前地震記錄相移波動方程正演模擬基本理論、實現方法與程序編制,由正演記錄初步分析地震信號的分辨率。三、原理公式1、地震波傳播的波動方程設(x,z)為空間坐標,t為時間,地震波傳播速度為v(x,z),則二維介質中任意位置、任意時刻的地震波場為p(z,x,t):壓縮波縱波。則二維各向同性均勻介質中地震波傳播遵循的聲波方程: 2p(x,z,t)x2+2p(x,z,t)z2=1v2(x,z)2p(x,z,t)t2 (1)2、傅里葉變換的微分性質p(t)與其傅里葉變換的P()的關系: P=-pte-itdt 正傅里葉變換 pt=12-Peitdt 逆傅里葉變換 2則有時間微分性質: (i)P=-dptd
3、te-itdt 一階微分 (i)2P=-d2ptdt2e-itdt 二階微分 3為頻率,=2T,T為周期。同理有空間微分性質: (ik)Pk=-dpxdxe-ikxdx 一階微分 (ik)2Pk=-d2pxdx2e-ikxdx 二階微分 (4)k為波數, k=2, 為波長。3、地震波傳播的相移外推公式令速度v不隨x變化,只隨z變化,則利用傅里葉變換微分性質(3)和(4)式,把波動方程(1)式變換到頻率波數域,得: ik2Pk,zi,+2P(k,z,)z2=i2vz2Pk,z, (5)或: 2P(k,z,)z2=-2vz2-k2Pk,z, (6)令:kz2=2vz2-k2則(6)式的解為: Pk
4、,z,=c1e-ikzz+c2eikzz (7)包括上行波和下行波兩項,正演模擬取上行波: Pk,z,=c1e-ikzz (8)若Zj和Zj+1間隔為z,速度v(z)為在此間隔內不隨Z變的常數,(8)式實現波場從Zj+1到Zj的延拓,即: Pk,zj,=c1e-ikzz (9)在深度Zj+1開始向上延拓到Zj,若延拓深度為零,即:Z=Zj+1-Zj,則 Pk,zj=zj+1,=c1e-ikz(zj+1-zj)=ce-ikz×0=c (10)對于任意深度Zj+1到Zj的延拓,可得正演模擬中地震波的傳播方程(延拓公式) Pk,zj,=Pk,zj+1,c1e-ikz(zj+1-zj) (1
5、1)4、初始條件和邊界條件按照爆炸界面理論,反射界面震源在 t=0 時刻同時起爆,此時刻的波場就是震源。根據不同情況,可直接使用反射系數脈沖或子波作震源。如果直接使用反射系數作震源脈沖,則初始條件可表示為: p0x,z,t=rx,z t=0 0 t=其他 (12)p0x,z,t對時間t和空間x做二維傅立葉變換,則得頻率-波數域的初始波場p0k,z,。邊界條件: p0x,z,t=rx,z t=0,xmin<x<xmax,zmin<z<zmax 0 t=其他,x=其他,z=其他 (13) 其他參數都是在xmin<x<xmax,zmin<z<zmax范
6、圍內定義的。5、邊界處理(1)邊界反射問題把實際無窮空間區(qū)域中求解波場的問題化為有窮區(qū)域求解時,左右兩邊使用零邊界條件。物理上假設探區(qū)距Xmin與Xmax兩個端點很遠,在兩個端點上收到的反射波很弱。但是,上述條件在實際中不能成立,造成零邊界條件反而成為絕對阻止波通過的強反射面。在正演模擬的剖面上出現了邊界假反射干涉正常界面的反射。(2)邊界強反射的處理鑲邊法、削波法、吸收邊界都能有效消除邊界強反射。削波法就是在波場延拓過程中,每延拓一次,在其兩側均勻衰減到零,從而消除邊界強反射的影響。假設橫向總長度為NX,以兩邊Lx道吸波為例,有以下吸波公式: AbsNx-Ix=AbsIx=sin(2
7、5;LxLx-1) 0<=Ix<Lx AbsIx=1. Ix=其它 (14)6、定位原理某一震源在某一固定檢波點產生的記錄, 就等于該固定檢波點主動到所有可能反射點處接收的由這一震源激發(fā)的反射波的總和。形象地稱為檢波點下延記錄原理。7、反射記錄的形成 1)待激發(fā)的二次源的描述:介質的離散化把整個介質空間離散化,每個離散點都可以看成一個繞射點,某深度的反射界面與這一深度線的交點為這一反射界面的分布點。 每個離散點就是待激發(fā)的二次源 2)反射界面的分布某一深度層的反射界面分布在這一深度的離散點上,即反射界面與這一深度線的交點為這一反射界面的分布點。 3)反射界面二次源的形成 :繞射波的
8、產生震源從炸點開始向下傳播,遍歷介質的每一個離散點繞射點。每遇到一個繞射點,都會激發(fā)該點的繞射波。反射界面與某深度離散點的 交叉點的反射系數不為零, 產生的繞射波也不為零, 而其他沒有反射界面的地方,反 反射系數為零,是均勻介質, 產生的繞射波為零。 4)反射記錄的形成把檢波器的檢波機制看成一個數學算子,或檢波因子,可用脈沖或雷克子波。在延拓震源的同時,把檢波器即檢波因子也做完全相同的向下延拓,同樣遍歷每個離散點。震源和檢波因子每延拓一個深度步長,震源、檢波因子及反射系數三者做相關運算,則檢波點就記錄到了該深度每個繞射點的繞射波。所有二次源地震波都傳播到測線某檢波點,疊加而成該點的記錄炮集中的
9、某一記錄道。測線排列多少道檢波器,則都可記錄道所在位置的地震模擬記錄。8、數字化根據數字信號處理的采樣定理,把連續(xù)的信號變?yōu)橛嬎銠C能處理的數字信號,使相移法正演模擬得以實現。頻域抽樣定理:一個頻譜受限信號 f(t),如果時間只占據 -tm-tm的范圍,若在頻域以不大于 1/2tm 頻率間隔 f1/2tm 對信號f(t)的頻譜F()采樣,則抽樣到的離散信號 F1 可以唯一表示原信號。時域抽樣定理:一個時間受限信號 f(t),如果頻譜只占據-m-m的范圍,則信號 f(t)可以用等間隔的抽樣值唯一表示出來,而時間 t 抽樣間隔必須不大于1/2fm,m=2fm,t=1/2fm。四、實驗內容削波法相位移
10、正演模擬(1)點繞射構造和水平層狀速度模型(參數如圖1所示)的正演數值模擬; 1)削波的正演;2)無削波的正演;(2)計算中點和兩個邊界的信號位置,分析實驗結果的正確性;(3)做同樣模型的褶積模型數值模擬,對比分析兩者的異同;(4)改變繞射點位置、速度,再做正演模擬;圖1 點繞射構造與水平速度模型五、 方法路線1、參數初始化;2、二次源的形成:1)震源波場定義:Scr(x,z,t) Scrx,z,t=1 x=x0,z=z0,t=00 其它 (15)2)界面待激發(fā)爆炸源定義:Rsht(x,z,t) Rshtx,z,t=Rflctx,z t=00 其它 (16)3)形成削波數據:Absb( x )
11、在所有深度都用同樣的削波數據: AbsNx-Ix=AbsIx=sin(2×LxLx-1) 0<=Ix<Lx AbsIx=1. Ix=其它 (17)4)從測線深度開始向下做波場延拓 在所有深度都用同樣的削波數據震源波場做削波處理 Scrx,zj,t=Scrx,zj,t×Absbx (18)震源做 x 和t 的傅里葉變換到頻率-波數域: Scrx,zj,tFFTScrx,zj,t (19)計算相移延拓算子: eikzdzkx,zj,=e-i2vzj+12-kx2(zj+1-zj) (20)震源波場延拓計算 Scrkx,zj+1,= Scrkx,zj,×ei
12、kzdzkx,zj, (21) 延拓后的震源波場變換到時間-空間域: Scrkx,zj+1,FFT-1 Scrx,zj,t (22)激發(fā)當前深度的二次源:震源波場與待激發(fā)波場相關 Rscndx,zj+1,t=-Scrx,zj+1,Rshtx,zj+1,t+d (23)將二次源變換到頻率域存儲: Rscndx,zj+1,tFFTRscndx,zj+1, 24從目前深度開始,重到步,震源波場繼續(xù)向下延拓,直至介質最深處,生成介質所有點的繞射波- 整個介質的二次源形成。3、正演記錄產生的數學過程 1)定義頻率域延拓波場:wfld(x,z,);2)調入削波數據:Absb(x);3)在頻率域延拓波場:
13、每給一個頻率j,延拓波場初始化:wfldx,z,j=0;從最深處開始,波場向上延拓: a、取出當前頻率和深度的二次源:Rscnd(x,zj,j);b、形成新延拓波場: wfldx,zj,j=wfldx,zj,j+Rscndx,zj,j (25)c、新延拓波場做削波處理 wfldx,zj,j=wfldx,zj,j×Absbx (26)d、新延拓波場變換到波數域: wfldx,zj,jFFTwfldkx,zj,j (27)e、計算相移延拓算子: eikzdzkx,zj,j=e-ij2vzj2-kx2(zj-zj-1) (28)f、波場延拓計算 wfldkx,zj-1,j=wfldkx,z
14、j,j×eikzdzkx,zj,j (29)g、波場變換到空間域: wlfdkx,zj-1,jFFT-1wlfdx,zj-1,j (30)h、重復a到g的計算,直至波場延拓到測線深度,ZJ=Z1,得到測線上的頻率域波場:wlfdx,z1,j,存儲測線上的波場:wlfdx,z1,j;重復到的計算,直到完成所有頻率的循環(huán);4)把波場變換到時間域,得一炮的疊前正演模擬結果: wlfdx,z1,FFT-1wlfdx,z1,t (31)4、頻率-空間域波場對頻率做反傅里葉變換,得時間-空間波場;5、使用Fimage軟件顯示所得結果。六、實驗結果1、結果顯示及分析(點繞射結構)圖2 削波(左)正
15、演模擬結果與未削波正演模擬結果(右)由圖2分析可知:削波前,由于在兩個端點上收到的反射波很弱,造成零邊界條件反而成為絕對阻止波通過的強反射面,在正演模擬的剖面上出現了邊界假反射干涉正常界面的反射。削波后,邊界假反射的影響消除了,且曲線變得更光滑了。a、速度V1=5000、V2=5500,深度h=2000時,改變繞射點x的位置;圖3 x=Nx/4-1時,反射系數(左)與削波正演模擬結果(右)圖4 x=Nx/2-1時,反射系數(左)與削波正演模擬結果(右)由圖3與圖4對比分析可知:當速度,深度一定時,改變繞射點的位置,曲線隨繞射點位置的改變而左右移動,且移動趨勢與繞射點位置的移動一致。b、繞射點x
16、=Nx/2-1,深度h=2000 ,速度V2=5500時,改變速度V1;V1=4000V2=5500圖5 V1=4000時,速度模型(左)與削波正演模擬結果(右)V1=6000V2=5500圖6 V1=6000時,速度模型(左)與削波正演模擬結果(右)由圖5與圖6對比分析可知:當繞射點位置固定,深度一定時,隨著介質速度增大,曲線變得越平緩。這是由于速度增大時,波的傳播時間減小所致。c、速度V1=5000、V2=5500,繞射點x=Nx/2-1,改變深度h;圖7 h=1000時,反射系數(左)與削波正演模擬結果(右)圖8 h=3000時,反射系數(左)與削波正演模擬結果(右)由圖7與圖8對比分析
17、可知:當介質速度一定,繞射點位置不變時,隨著繞射點深度的增加,曲線變得越來越平滑。顯然是由于深度變大,波的傳播時間變小所致。2、結果分析(水平層速度模型)圖9 未削波(左)正演模擬結果與削波正演模擬結果(右)由圖9分析可知:削波前,由于在兩個端點上收到的反射波很弱,造成零邊界條件反而成為絕對阻止波通過的強反射面,在正演模擬的剖面上出現了邊界假反射干涉正常界面的反射。削波后,邊界假反射的影響消除了,且曲線變得更光滑了。a、 深度h=2000 ,速度V2=5500時,改變速度V1;V1=4000V2=5500圖10 V1=4000時,速度模型(左)與削波正演模擬結果(右)V2=5500V1=600
18、0圖11 V1=6000時,速度模型(左)與削波正演模擬結果(右)由圖10與圖11對比分析可知:水平層深度不變時,隨著速度的增加,結果顯示的水平層向上移動。這是由于速度增大時,波的傳播時間減小的。b、 速度V1=5000、V2=5500,改變深度h;圖12 h=1000時,反射系數(左)與削波正演模擬結果(右)圖13 h=3000時,反射系數(左)與削波正演模擬結果(右)由圖12與圖13對比分析可知:當波的傳播速度不改變時,隨著水平層深度的增加,結果顯示的水平層向下移動。這是由于深度增加,波的傳播時間增大。七、討論建議1、實驗收獲通過本次實驗,對疊后相移波動方程正演模擬的過程有了更深入的理解,
19、以及對其公式和意義都有了進一步的認識。編程能力又有了一定提高。2、存在問題圖14 x=3*Nx/4-1時,反射系數(左)與削波正演模擬結果(右)如圖14,當速度,深度一定時,繞射點位置x=3*Nx/4-1,其反射系數不能用Fimage正確顯示,由顯示的削波正演模擬結果可知,使用削波函數并未起到削波的作用。3、心得體會本次實驗,并不容易。在實驗中,必須要理解理論知識,才能夠正確的編寫程序。在實驗過程中,遇到許多問題,通過和同學討論,向老師求解,最終才得出實驗結果。附程序代碼:/Include #include <stdlib.h> #include <conio.h> #
20、include <math.h> #include <stdio.h> #include <string.h> /Parameters set #define Nx 128 /Trace Number #define Nt 256 /Record Number #define Nz 100 /Depth Number #define Labs 15 /Length Of Boundary Absorbing #define Dx 20 /Trace Interval #define Dt 0.004 /Record Interval #define Dz 2
21、0 /Depth Interval #define Pai 3.1415926 /function:Judge the power of 2 int Po2Judge(int N) int k=0; long Ln=0; for(k=0;N-Ln>0;k+) Ln=(long)pow(2,k); Ln=(long)pow(2,k-1); if(fabs(Ln-N)>=1)return(0); return(1); /function:Form Absorb Bounderyint Absorb( ) FILE *fp_Abs; int Ix; double AbsNx; if(fp
22、_Abs=fopen("Absb.dat","wb")=NULL)printf("Connot open file ""Absb"""); for(Ix=0;Ix<Nx;Ix+) AbsIx=1.; for(Ix=0;Ix<=Labs-1;Ix+) AbsIx=sqrt(sin(Pai/2)*(Ix/(Labs-1);AbsNx-Ix-1=AbsIx; for(Ix=0;Ix<Nx;Ix+) fwrite(&AbsIx,sizeof(AbsIx),1,fp_Abs);
23、fclose(fp_Abs); return(1); /function:Form Reflect Structure Model int Rflct( ) FILE *fp_Rflct; int Ix,Iz; float RflctNz; if(fp_Rflct=fopen("Rflct.dat","wb")=NULL)printf("Connot open file ""Reflection"""); for(Ix=0;Ix<Nx;Ix+) for(Iz=0;Iz<Nz;Iz+)
24、 RflctIz=0.; if(Iz=Nz/5&&Ix<Nx/2) RflctIz=1.; if(Iz=2*Nz/5&&Ix>=Nx/2) RflctIz=1.; /if(Iz=3*Nz/5&&fmod(Ix+1,16)=0.) RflctIz=5.; /if(Iz=4*Nz/5&&fmod(Ix+1,32)=0.) RflctIz=7.; fwrite(&RflctIz,sizeof(RflctIz),1,fp_Rflct); fclose(fp_Rflct); return(1); /function:Rs
25、ht(x,z,t)int Rsht()int Ix,Iz,It;float RshtNt,RflctNz;FILE *fp_Rflct=fopen("Rflct.dat","rb");FILE *fp_Rsht=fopen("Rsht.dat","wb");for(Ix=0;Ix<Nx;Ix+)for(Iz=0;Iz<Nz;Iz+)fread(&RflctIz,sizeof(RflctIz),1,fp_Rflct);for(It=0;It<Nt;It+)RshtIt=0.;Rsht0=Rf
26、lctIz;for(It=0;It<Nt;It+)fwrite(&RshtIt,sizeof(RshtIt),1,fp_Rsht);fclose(fp_Rflct);fclose(fp_Rsht);return(1); /function:Form Velocity Modelint Vlcty( ) FILE *fp_Vlcty; int Ix,Iz; float VlctyNz; if(fp_Vlcty=fopen("Vlcty.dat","wb")=NULL) printf("Connot open file "&
27、quot;Vlcty"""); for(Ix=0;Ix<Nx;Ix+) for(Iz=0;Iz<(int)(3*Nz/4);Iz+) VlctyIz=5000.; fwrite(&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty); for(Iz=(int)(3*Nz/4);Iz<Nz;Iz+) VlctyIz=5500.; fwrite(&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty); fclose(fp_Vlcty); return(1); /function:Fourier Tr
28、ansform:FFT(i=0) or IFFT(l=1)int kkfft(float pr, float pi, int n, int l)int it,m,is,i,j,nv,l0,il=0; float p,q,s,vr,vi,poddr,poddi; float fr4096,fi4096; int k=0; long Ln=0; for(k=0;n-Ln>0;k+)Ln=(long)pow(2,k); k=k-1; for (it=0; it<=n-1; it+)m = it; is = 0; for(i=0; i<=k-1; i+)j = m/2; is = 2
29、*is+(m-2*j); m = j; frit = pris; fiit = piis; pr0 = 1.0; pi0 = 0.0; p = 6.283185306/(1.0*n); pr1 = (float) cos(p); pi1 = -(float)sin(p); if (l!=0)pi1=-pi1; for (i=2; i<=n-1; i+)p = pri-1*pr1; q = pii-1*pi1; s = (pri-1+pii-1)*(pr1+pi1); pri = p-q; pii = s-p-q;for (it=0; it<=n-2; it=it+2)vr = fr
30、it; vi = fiit; frit = vr+frit+1; fiit = vi+fiit+1; frit+1 = vr-frit+1; fiit+1 = vi-fiit+1; m = n/2; nv = 2; for (l0=k-2; l0>=0; l0-)m = m/2; nv = 2*nv; for(it=0; it<=(m-1)*nv; it=it+nv)for (j=0; j<=(nv/2)-1; j+)p = prm*j*frit+j+nv/2; q = pim*j*fiit+j+nv/2; s = prm*j+pim*j; s = s*(frit+j+nv/
31、2+fiit+j+nv/2); poddr = p-q; poddi = s-p-q; frit+j+nv/2 = frit+j-poddr; fiit+j+nv/2 = fiit+j-poddi; frit+j = frit+j+poddr; fiit+j = fiit+j+poddi; if(l!=0)for(i=0; i<=n-1; i+)fri = fri/(1.0*n); fii = fii/(1.0*n); if(il!=0)for(i=0; i<=n-1; i+)pri = sqrt(fri*fri+fii*fii); if(fabs(fri)<0.000001
32、*fabs(fii)if (fii*fri)>0)pii = 90.0;elsepii = -90.0;elsepii = atan(fii/fri)*360.0/6.283185306; for(i=0;i<n;i+)pri=fri; pii=fii; return ( 1 );/function:Form Inition Wave Field:ReflectCoefficiency int Scr0()/Function05.1:kkfft(Wfld0r,Wfld0i,Nt,0) FILE *fp_Scr0r,*fp_Scr0i; int Ix,Iz,It; float Scr
33、0rNt,Scr0iNt; if(fp_Scr0r=fopen("Scr0r.dat","wb")=NULL)printf("Connot open Wfld0r.dat"); if(fp_Scr0i=fopen("Scr0i.dat","wb")=NULL)printf("Connot open Wfld0i.dat"); /if(fp_Rflct=fopen("Rflct.dat", "rb")=NULL) printf("
34、;Connot open Rflct.dat"); for(Ix=0;Ix<Nx;Ix+) printf("Scr0_FFT:Ix=%dn",Ix); for(Iz=0;Iz<Nz;Iz+) for(It=0;It<Nt;It+) Scr0rIt=0; Scr0iIt=0; if(Ix=64&&Iz=0)Scr0r0=1.; if(kkfft(Scr0r,Scr0i,Nt,0)!=1) printf("FFT is error"); exit(0); for(It=0;It<Nt/2+1;It+) fwr
35、ite(&Scr0rIt,sizeof(Scr0iIt),1,fp_Scr0r); fwrite(&Scr0iIt,sizeof(Scr0iIt),1,fp_Scr0i);fclose(fp_Scr0r); fclose(fp_Scr0i); return(1); /Function06.1.1:Read In Velocity Data and Absorb Boundary Data int ReadVlctyAbsb(float Vlcty,float Absb) FILE *fp_Vlcty,*fp_Absb; int Iz,Ix; if(fp_Vlcty=fopen(
36、"Vlcty.dat","rb")=NULL)printf("Connot open Rflct.dat" );for(Iz=0;Iz<Nz;Iz+)fread(&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty);fclose(fp_Vlcty); if(fp_Absb=fopen("Absb.dat","rb")=NULL)printf("Connot open Absb.dat"); for(Ix=0;Ix<Nx;Ix+)frea
37、d(&AbsbIx,sizeof(AbsbIx),1,fp_Absb);fclose(fp_Absb);/remove("Absb.dat");return(1);/06.1.2.1:Read Data From (Ix,Iz,Iw)Oder to (Iw,Iz,Ix)Oderint ReadIxIzIwToIwIzIx(FILE *fp_Scr0r,FILE *fp_Scr0i,float Scr0r,float Scr0i,int Iz,int Iw)int Ix,Nw=Nt; long AddfrmStrt; for(Ix=0;Ix<Nx;Ix+)/Da
38、ta Numbers From start Position To Current Position AddfrmStrt=(Ix*Nz+Iz)*(Nt/2+1)+Iw; /Byte Numbers From start Position To Current Position fseek(fp_Scr0r, sizeof(Scr0rIx)*AddfrmStrt,0); fread(&Scr0rIx,sizeof(Scr0rIx),1,fp_Scr0r); fseek(fp_Scr0i, sizeof(Scr0iIx)*AddfrmStrt,0); fread(&Scr0iIx
39、,sizeof(Scr0iIx),1,fp_Scr0i);return(1);/function06.1.2:Form New Wave Field int FrmNewWfld(FILE *fp_Scr0r,FILE *fp_Scr0i,float Scrr,float Scri,float Absb,int Iz,int Iw) /function06.1.2.1 ReadIxIzIwToIwIzIx(.) int ReadIxIzIwToIwIzIx(FILE *fp_Scr0r,FILE *fp_Scr0i,float Scr0r,float Scr0i,int Iz,int Iw);
40、 int Ix,Nw=Nt; float Scr0rNx,Scr0iNx; /Take out Initial Wave Field Data With Individual Depth if(ReadIxIzIwToIwIzIx(fp_Scr0r,fp_Scr0i,Scr0r,Scr0i,Iz,Iw)!=1)printf("exp_ikzDz is error");exit(0); /Form New Wave Field for(Ix=0;Ix<Nx;Ix+) /Compute Current New Wave Field ScrrIx=ScrrIx+Scr0rI
41、x; ScriIx=ScriIx+Scr0iIx; /Boundary Obsorb of New Wave Fied ScrrIx=ScrrIx*AbsbIx; ScriIx=ScriIx*AbsbIx; return(1);/function06.1.3.1:Compute out PhaseShift Data int exp_ikzDz(float eikzdz,int Ix,float Vc,int Iw,float Dw,float Dkx) float kz=0;eikzdz0=0.;eikzdz1=0.; kz=(Iw*Dw*Iw*Dw)/(Vc*Vc)-Ix*Ix*Dkx*D
42、kx; if(kz>0) kz=sqrt(kz); eikzdz0=(float)cos(-kz*Dz); eikzdz1=(float)sin(-kz*Dz); return(1); /function06.1.3: Extrapolate One Depth Stepint MoveOneDz(float Scrr,float Scri,float Vz,float Dkx,float Dw,int Iw)/06.1.3.1:exp_ikzDz(kz,Ix,Vz,Iw,Dw,Dkx) /06.1.3.2:kkfft(Wfldr, Wfldi,Nx,j) int Ikx,Nkx=Nx;
43、 float kz2,Scr_r,Scr_i; if(kkfft(Scrr,Scri,Nx,0)!=1) printf("FFT is error");exit(0); for(Ikx=0;Ikx<Nx/2+1;Ikx+) /4.2.3.1 Computing Phaseshift Function if(exp_ikzDz(kz,Ikx,Vz,Iw,Dw,Dkx)!=1)printf("exp_ikzDz is error");exit(0); /4.2.3.2 WaveField multiply Phaseshift Function /Co
44、mpute WaveField Phaseshift Scr_r=ScrrIkx*kz0-ScriIkx*kz1; Scr_i=ScriIkx*kz0+ScrrIkx*kz1; ScrrIkx=Scr_r; ScriIkx=Scr_i; if(Ikx!=0&&Ikx!=Nkx/2) Scr_r=kz0*ScrrNkx-Ikx-kz1*ScriNkx-Ikx; Scr_i=kz1*ScrrNkx-Ikx+kz0*ScriNkx-Ikx; ScrrNkx-Ikx=Scr_r; ScriNkx-Ikx=Scr_i; /4.2.4 IFFT of New Wave field From
45、 WaveNumber to Space if(kkfft(Scrr,Scri,Nkx,1)!=1)/37.FFT or Inverse FFT printf("FFT is error");exit(0); return(1);/function06.1:PhaseShift calculate int PhaseShift( ) int ReadVlctyAbsb(float *,float *); int FrmNewWfld(FILE *,FILE *,float *,float *,float *,int,int); int MoveOneDz (float *,float *,float,float,float,int); /1.2 Define Varibles FILE *fp_Scrr,*fp_Scri,*fp_Scr0r,*fp_Scr0i; int Ix,Iz,I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年審計個人工作總結參考樣本(四篇)
- 2024年工廠承包合同標準范文(二篇)
- 2024年小學班主任的個人工作計劃范文(二篇)
- 2024年安全獎懲考核制度(二篇)
- 2024年小學體育老師教學計劃模版(四篇)
- 【《幼兒園自主區(qū)域游戲中的材料投放策略探究》2300字】
- 【《網絡中立幫助行為的可罰性探究》13000字(論文)】
- 【《企業(yè)業(yè)務員薪酬管理問題探析-以A電梯傳媒廣告公司為例(數據論文)》11000字】
- 文明校園倡議書400字(11篇)
- 2024年大班幼兒教師工作計劃模版(三篇)
- 餐前檢查表(標準模版)
- 2022-2023學年廣東深圳福田區(qū)七年級上冊期中地理試卷及答案
- 重大風險管控方案及措施客運站
- 關于小學數學課堂中數形結合教學的調查研究的開題報告
- 傳統文化的傳承和創(chuàng)新
- 2024春國開會計實務專題形考任務題庫及答案匯總
- 工序質量控制措施和自檢、自控措施
- 2024年科技部事業(yè)單位招聘95人歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2024年深圳市公務員考試申論真題A卷綜覽
- 香港貿易創(chuàng)業(yè)計劃書
- 老年精神科健康宣教
評論
0/150
提交評論