地震数据处理课程设计浙江大学Word文档格式.docx
《地震数据处理课程设计浙江大学Word文档格式.docx》由会员分享,可在线阅读,更多相关《地震数据处理课程设计浙江大学Word文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
(11)静校正…………………………………………………
二、附录…………………………………………………………………………
(1)附录1:
相关程序……………………………………
(2)附录2:
相关图件……………………………………
【附录1:
有关程序】
1.褶积滤波
CCCCCCCCCCCCCCCCC褶积滤波CCCCCCCCCCCCCCCCC
PROGRAMMAIN
DIMENSIONX(100),H1(-50:
50),H2(-50:
50),Y_LOW(200),Y_BAND(200)
PARAMETER(PI=3.141592654)
CCCCCCCCH1是低通滤波因子,H2为带通滤波因子CCCCCC
REALX,H1,H2,Y_LOW,Y_BAND
REALdt,F,F1,F2
INTEGERI
dt=0.002
F=70.0
F1=10.0
F2=80.0
OPEN(1,FILE='
INPUT1.DAT'
FORM='
FORMATTED'
STATUS='
UNKNOWN'
)
READ(1,*)(X(I),I=1,100)
CCCCCCCCCCCCCCCCCC低通滤波器CCCCCCCCCCCCCCCCC
DO10I=-50,50
IF(I.EQ.0)THEN
H1(I)=2*F*PI/PI
ELSE
H1(I)=SIN(2*PI*F*I*dt)/(PI*I*dt)
ENDIF
10CONTINUE
CCCCCCCCCCCCCCCC输出低通滤波因子CCCCCCCCCCCCCCCC
OPEN(2,FILE='
H1_LOW.DAT'
WRITE(2,*)(H1(I),I=-50,50)
CLOSE
(2)
CALLCON(X,H1,Y_LOW,100,101,200)
CCCCCCCCCCCCCCCC输出滤波后的数据CCCCCCCCCCCCCCCC
OPEN(3,FILE='
Y_LOW.DAT'
WRITE(3,*)(Y_LOW(I),I=51,150)
CLOSE(3)
CCCCCCCCCCCCCCCCCC带通滤波器CCCCCCCCCCCCCCCCCCCC
DO20I=-50,50
IF(I.EQ.0)THEN
H2(I)=140
ELSE
H2(I)=SIN(2*PI*F2*I*dt)/(PI*I*dt)-SIN(2*PI*F1*I*dt)/(PI*I*dt)
ENDIF
20CONTINUE
CCCCCCCCCCCCCCC输出带通滤波因子CCCCCCCCCCCCCCCCC
OPEN(4,FILE='
H2_BAND.DAT'
WRITE(4,*)(H2(I),I=-50,50)
CLOSE(4)
CALLCON(X,H2,Y_BAND,100,101,200)
CCCCCCCCCCCCCCCC输出滤波后的数据CCCCCCCCCCCCCCCCC
OPEN(5,FILE='
Y_BAND.DAT'
WRITE(5,*)(Y_BAND(I),I=51,150)
CLOSE(5)
END
CCCCCCCCCCCCCCCCCCCCC褶积函数CCCCCCCCCCCCCCCCCCCC
SUBROUTINECON(A,B,C,I,J,K)
DIMENSIONA(I),B(J),C(K)
DO1K1=1,K
1C(K1)=0.0
DO2I1=1,I
DO2I2=1,J
II=I1+I2-1
2C(II)=C(II)+A(I1)*B(I2)*0.002
RETURN
END
2.快变滤波
CCCCCCCCCCCCCCC频率滤波CCCCCCCCCCCCCCCCCCCC
REALH_LOW(1:
200),H_BAND(1:
200),Y_LOW(1:
200),Y_BAND(1:
200)
REALX(1:
INTEGERI,NFFT,K,NP
COMPLEXC(1:
200),TEMP(1:
REALDT,DF,F,F1,F2
DT=0.002
READ(1,*)(X(I),I=1,100)
NP=100
K=LOG(100.0)/LOG(2.0)
IF(2**K.LT.100)THEN
K=K+1
NFFT=2**K
DF=1.0/(NFFT*DT)
DO10I=101,128
X(I)=0.0
10CONTINUE
CCCCCCCCCCC数据变换成复数形式CCCCCCCCCCC
DO20I=1,NFFT
20C(I)=CMPLX(X(I),0.0)
CCCCCCCCCCC向频率域转换CCCCCCCCCCCCCCCCC
CALLFFT(NFFT,C,1.0)
CCCCCCCCCCC低通滤波因子的设计CCCCCCCCCCC
DO30I=1,NFFT/2
IF(I*DF.LE.F)THEN
H_LOW(I)=1.0
H_LOW(I)=0.0
30CONTINUE
CCCCCCCCC使滤波器理想化(对称)CCCCCCCCCC
DO40I=NFFT/2+1,NFFT
F=I*DF
H_LOW(I)=H_LOW(NFFT-I+1)
40CONTINUE
CCCCCCCCCCCCCCC实现滤波CCCCCCCCCCCCCCCCC
DO50I=1,NFFT
50TEMP(I)=C(I)*H_LOW(I)
CCCCCCCCCCCCCCC向时间域变换CCCCCCCCCCCCC
CALLFFT(NFFT,TEMP,-1.0)
DO60I=1,NFFT
60Y_LOW(I)=REAL(TEMP(I))
LOWPASS.DAT'
WRITE(2,*)(Y_LOW(I),I=1,NFFT)
CLOSE
(2)
CCCCCCCCCCC带通滤波因子的设计CCCCCCCCCCC
DO70I=1,NFFT/2
IF((I*DF.GE.F1).AND.(I*DF.LE.F2))THEN
H_BAND(I)=1.0
H_BAND(I)=0.0
70CONTINUE
DO80I=NFFT/2+1,NFFT
H_LOW(I)=H_BAND(NFFT-I+1)
80CONTINUE
DO90I=1,NFFT
90TEMP(I)=C(I)*H_BAND(I)
DO100I=1,NFFT
100Y_BAND(I)=REAL(TEMP(I))
BANDPASS.DAT'
WRITE(3,*)(Y_BAND(I),I=1,NFFT)
CLOSE
(1)
CCCCCCCCCCCCCCCCC子程序CCCCCCCCCCCCCCCC
CCCCCLX为输入数据的点数CCCCCCCCCCCCCCCCC
CCCCCCX为复型数组CCCCCCCCCCCCCCCCCCCCCC
CCCCCSIGNI为转换标志CCCCCCCCCCCCCCCCCCCC
SUBROUTINEFFT(LX,CX,SIGNI)
COMPLEXCX(LX),CARG,CEXP,CW,CTEMP
J=1
SC=1.0/LX
IF(SIGNI.EQ.1.0)SC=1.0
SIG=-SIGNI
DO300I=1,LX
IF(I.GT.J)GOTO100
CTEMP=CX(J)*SC
CX(J)=CX(I)*SC
CX(I)=CTEMP
100M=LX/2
200IF(J.LE.M)GOTO300
J=J-M
M=M/2
IF(M.GE.1)GOTO200
300J=J+M
L=1
400ISTEP=2*L
DO500M=1,L
CARG=(0.0,1.0)*(3.14159265*SIG*(M-1))/L
CW=CEXP(CARG)
DO500I=M,LX,ISTEP
CTEMP=CW*CX(I+L)
CX(I+L)=CX(I)-CTEMP
500CX(I)=CX(I)+CTEMP
L=ISTEP
IF(L.LT.LX)GOTO400
3.褶积滤波与快变滤波的比较
CCCCCCCCCCCCC褶积滤波与递归滤波的比较CCCCCCCCCCCCCC
CCCCCCCCCCCCCCCC褶积滤波的设计CCCCCCCCCCCCCCCCCC
PARAMETER(DT=0.002)
CH_NZ为非零相位滤波因子,H_Z为零相位滤波因子C
CY_CNZ为非零相位滤波结果,Y_CZ为零相位滤波结果C
REALY_CNZ(1:
100),Y_CZ(1:
REALH_Z(1:
20),H_NZ(1:
20)
50)
INTEGERI,J,K,N
REALA(0:
100),B(0:
100)
REALY_DNZ(1:
100),Y_DZ(1:
REALX3(1:
100),X4(1:
100),X1(1: