地震数据处理课程设计(报告)

合集下载

地震资料的处理

地震资料的处理

中国石油大学胜利学院地球物理勘探课程设计报告地震资料的处理方法学生姓名:***学号:************专业班级:资源勘查工程08级2班2011年6 月28 日地震资料数字处理方法地震勘探是利用地下介质弹性和密度的差异,通过观测和分析大地对人工激发地震波的响应,推断地下岩层的性质和形态的地球物理勘探方法。

地震勘探是钻探前勘测石油、天然气资源、固体资源地质找矿的重要手段,在煤田和工程地质勘查、区域地质研究和地壳研究等方面,也得到广泛应用。

地震勘探包括:野外采集、(室内)资料处理、资料解释三项。

一、野外数据采集数据采集就是采集供自动绘图用的绘图信息,是数字测图的一项重要工作。

不同的数据源、不同的作业模式有不同的数据采集方式,有内业数据采集与外业数据采集之分,有手工输入、半自动输入、自动输入之分。

一个优秀的数字测图系统通常支持多种数据采集方式。

〈一〉、测图前的准备工作1、控制测量野外数据采集包括两个阶段,即控制测量和地形特征点(碎部点)采集。

实施数字测图之前必须先进行控制测量。

控制测量方法与白纸测图法中的控制测量基本相同。

由于利用光电测距,测站点到地物、地形点的距离即使在500m,也能保证测量精度,故对图根点的密度要求已不很严格,一般以在500m以内能测到碎部点为原则。

通视条件好的地方,图根点可稀疏些;地物密集、通视困难的地方,图根点可密些(相当白纸测图时图根点的密度)。

等级控制点尽量选在制高点。

控制测量主要使用导线测量,观测结果(方向值、竖角、距离、仪器高、目标高、点号等)自动或手工输入电子手簿,一般直接由电子手簿解算出控制点坐标与高程。

对于图根控制点,还可采用“辐射法”和“一步测量法”。

辐射法就是在某一通视良好的等级控制上,用极坐标测量方法,按全圆方向观测方式一次测定周围几个图根点。

这种方法无需平差计算,直接测出坐标。

为了保证图根点的可靠性,一般要进行两次观测(另选定向点)。

所谓一步测量法就是将图根导线与碎部测量同时作业。

课程设计报告(模板)

课程设计报告(模板)

《地震勘探课程设计》报告院系班级学生学号指导教师完成日期2014年3月12日长江大学工程技术学院目录一、课程设计目的 (3)二、课程设计的容 (3)三、课程设计原理 (3)四、工区数据 (4)五、课程设计步骤 (5)1、建立工区 (5)2、资料加载 (8)3、层位标定和层位追踪 (10)4、断层解释 (13)5、构造图绘制 (14)六、心得体会 (15)一、课程设计目的地震勘探解释课程设计是我们勘查技术与工程专业和资源勘查工程专业教学中的一个重要的实践性训练环节,通过上机实际操作,训练我们对地震资料进行常规构造解释的实际能力,最终使我们达到:学会利用地震解释软件来进行地震数据的加载,地震层位的标定,地震层位的追踪对比,在地震资料上分析和解释各种断层,以及地震构造图的编制方法。

同时,还要学会综合地震地质资料对构造解释结果进行分析,进而对含油气有利地带进行评价和预测,最终编制成果报告。

二、课程设计的容本次课程设计是理论联系实际的具体表现,是培养学生分析问题、解决问题能力的一个必不可少的环节,主要分为两部分:一、通过对地震资料解释软件Discovery的使用,追踪解释层位数据;二、通过surfer软件学习成图。

使学生对地震常用的解释软件有一个初步的认识,能为毕业后从事地震勘探工作奠定良好的基础。

地震解释课程设计是勘查技术与工程专业教学中的一个重要的实践性训练环节。

通过实验主要训练学生对地震资料进行常规构造解释的实际能力,具体要使学生达到:1.了解人机联作的基本知识;2.初步学会地震解释软件的操作流程(工区建立、资料加载、合成记录制作、层位标定、层位追踪、断层解释、断点组合);3. 进一步巩固和掌握地震资料解释的基本功;4.初步学会地震成果的地质分析;5.初步学会编写地震资料解释文字报告;6. 尽量利用所学的知识和得到的成果图写出建议钻探的井位及其依据。

三、课程设计原理地震资料解释是将地震信息转换成地质信息。

地震勘探课程设计

地震勘探课程设计

地震勘探课程设计一、教学目标本课程旨在让学生了解和掌握地震勘探的基本原理和方法,培养学生对地震勘探技术的兴趣和认识,提高学生运用地震勘探知识解决实际问题的能力。

1.了解地震勘探的定义、原理和分类;2.掌握地震波的产生、传播和接收规律;3.熟悉地震数据采集、处理和解释的方法和技术。

4.能够运用地震勘探原理分析地震数据;5.能够操作地震数据处理软件,进行地震数据处理和解释;6.能够运用地震勘探知识解决实际工程问题。

情感态度价值观目标:1.培养学生对地震勘探技术的兴趣和认识,提高学生对地球科学的热爱;2.培养学生团队协作、创新思维和实践能力,提高学生综合素质;3.培养学生关注社会热点问题,提高学生社会责任感。

二、教学内容本课程的教学内容主要包括地震勘探的基本原理、方法和应用。

1.地震勘探概述:地震勘探的定义、原理和分类;2.地震波的产生与传播:地震波的类型、产生机制和传播规律;3.地震数据采集:地震仪器的使用、地震数据的采集和质量控制;4.地震数据处理:地震数据预处理、地震资料解释和地震图绘制;5.地震勘探方法与应用:地震勘探技术在石油、地质、环境等领域的应用。

三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解地震勘探的基本原理、方法和应用,使学生掌握相关知识;2.讨论法:学生进行小组讨论,培养学生团队协作和创新思维能力;3.案例分析法:分析实际地震勘探案例,提高学生运用地震勘探知识解决实际问题的能力;4.实验法:安排地震数据处理实验,培养学生动手操作和实践能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的地震勘探教材,为学生提供系统的学习资料;2.参考书:提供相关领域的参考书籍,丰富学生的知识体系;3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣;4.实验设备:配置齐全的地震数据处理实验设备,为学生提供实践操作的机会。

地震资料解释课程设计

地震资料解释课程设计

地震资料解释课程设计一、课程目标知识目标:1. 学生能够掌握地震波的基本概念、传播特性和影响因子。

2. 学生能够理解并解释地震资料中的常见图件,如地震剖面、地震反射波和折射波。

3. 学生能够运用地震资料分析地下的地质结构和构造特点。

技能目标:1. 学生能够运用地震学原理,对地震资料进行初步的解读和分析。

2. 学生能够使用专业软件或工具,绘制地震剖面图,并识别重要地质界面。

3. 学生能够通过小组合作,共同完成地震资料的解释任务,提高解决问题的能力。

情感态度价值观目标:1. 培养学生对地球科学的好奇心和探索精神,激发他们关爱地球、保护环境的意识。

2. 增强学生的团队合作意识,培养他们在合作中尊重他人、倾听意见、共同进步的能力。

3. 让学生认识到地震学在资源勘探、灾害预防等领域的重要意义,提高他们的社会责任感。

本课程针对高年级学生,结合地震学原理和实际地震资料,注重培养学生的实践操作能力和综合分析能力。

课程内容与教材紧密相关,旨在帮助学生将理论知识与实际应用相结合,提高他们对地震资料的理解和解释能力。

通过本课程的学习,使学生能够在今后的学习和工作中,更好地应对地震相关领域的问题。

二、教学内容1. 地震波传播原理:包括地震波分类、传播特性、速度和衰减等基本概念,对应教材第三章第一节。

2. 地震资料采集与处理:介绍地震资料采集方法、数据处理流程,强调数据质量对解释结果的影响,对应教材第三章第二节。

3. 地震图件识别与解释:a. 地震剖面图识别:学习如何识别地震反射波、折射波等图件,对应教材第三章第三节;b. 地震事件识别:掌握断层、褶皱等地质构造的识别方法,对应教材第三章第四节。

4. 地震资料综合解释:结合实际案例,学习如何运用地震资料分析地下地质结构,对应教材第三章第五节。

5. 实践操作:分组进行地震资料解释实践,运用所学知识,对实际地震数据进行解读和分析。

教学内容安排和进度:第一周:地震波传播原理;第二周:地震资料采集与处理;第三周:地震图件识别与解释(1);第四周:地震图件识别与解释(2);第五周:地震资料综合解释;第六周:实践操作与成果展示。

地震资料解释课程设计报告

地震资料解释课程设计报告

地震资料解释课程设计报告学院:地球科学与工程学院班级:物探0901姓名:杨继东学号:200911020105日期:6月18-6月29指导老师:李磊老师简介本次课程设计用了两周时间完成,从十七周周一开始到十八周周五结束,课程设计的地点是校本部第一实验楼地震勘探处理解释分室,有李磊李老师带领指导完成。

此次课程设计的主要内容包括两部分:地震资料构造解释和地震相解释。

其中地震资料构造解释使用的资料是华北油田某部分经偏移处理后的三维数据体,其内容主要包括在剖面上断层的识别,在平面上利用相干体进行断层的组合,在inline和crossline方向进行地层对比追踪,最后由解释的断层和层位做等T0构造图。

地震相解释使用的资料是海相水道偏移处理后的三维数据体,主要内容是在剖面上识别水道的形状,在平面上识别水道的空间展布情况,还要学会利用剖面上的地震反射构型、地震反射结构投影到平面上做出平面地震相图。

本次课程设计应用的软件是兰德马克开发的Geographix Discovery,由于软件比较复杂,在软件的安装、建工区、数据加载、成图的方面,李磊老师给了极大帮助。

本次课程设计的主要目的是了解地震资料解释的基本流程,掌握地震资料解释的基本方法,学会在剖面上识别断层、在平面上组合断层、学会制作等T0构造图、学会在剖面上识别典型地震相以及利用剖面资料做出平面图。

另外,在做出构造图、地震相平面图后要尝试推断其地质成因及演化过程,进一步推断有利储油构造区及预探井位。

第一部地震资料构造解释一、本部分目的首先学会利用Discovery软件的安装、建立工区、三维数据加载、剖面显示地震记录。

另外,要学会利用Discovery的Horizon模块进行层位对比追踪,利用Fault模块进行断层解释,以及学会利用相干体进行断层的平面组合,最后学会利用解释的层位和断层做出等时构造图。

在作出构造图后,要结合剖面图会分析其石油地质意义,分析盆地内生储盖组合,推断有利储油区,学会设置最有利的预探井位。

地震勘探仪器课程设计

地震勘探仪器课程设计

地震勘探仪器课程设计一、课程目标知识目标:1. 学生能理解地震勘探仪器的基本原理,掌握其工作方式和应用场景。

2. 学生能描述地震勘探中常用的仪器设备,了解其功能、特点及操作要求。

3. 学生能解释地震波在勘探过程中的传播特性,以及如何通过仪器数据进行地震构造分析。

技能目标:1. 学生能够操作地震勘探仪器,进行简单的数据采集和处理。

2. 学生能够运用所学知识,分析地震勘探数据,识别地质构造特征。

3. 学生能够通过团队合作,解决地震勘探中遇到的实际问题。

情感态度价值观目标:1. 培养学生对地球科学和地震勘探领域的兴趣,激发他们的求知欲和探索精神。

2. 培养学生具备科学严谨、实事求是的态度,认识到地震勘探在资源勘探和地震预测中的重要性。

3. 培养学生关爱自然、保护环境的思想观念,关注地震勘探对环境的影响。

本课程针对高年级学生,结合地震勘探仪器的学科特点,旨在提高学生的理论知识和实践技能。

课程目标具体、可衡量,便于教学设计和评估。

通过本课程的学习,学生将能够更好地理解地震勘探仪器及其在地质勘探中的应用,为未来从事相关工作打下坚实基础。

二、教学内容1. 地震勘探仪器原理:介绍地震波的产生、传播及接收原理,包括反射波、折射波、绕射波等概念,以及相应的仪器工作原理。

教材章节:第三章 地震勘探原理2. 常见地震勘探仪器设备:讲解地震勘探中常用的仪器设备,如地震仪、检波器、数据采集系统等,及其功能、特点和应用。

教材章节:第四章 地震勘探仪器设备3. 地震勘探数据处理:介绍地震勘探数据的采集、处理和解释方法,包括地震资料预处理、地震事件识别、地震剖面绘制等。

教材章节:第五章 地震勘探数据处理4. 地震勘探应用实例:分析地震勘探在不同领域的应用,如油气勘探、矿产资源勘探、地震预测等,结合实际案例进行讲解。

教材章节:第六章 地震勘探应用5. 实践操作与团队合作:组织学生进行地震勘探仪器的实际操作,学习数据采集和处理方法,通过团队合作解决实际问题。

地震数据处理报告

地震数据处理报告

地震数据处理报告地震是一种极具破坏性的自然现象,对人类的生命和财产安全造成巨大威胁。

为了更好地预防和减少地震灾害带来的损失,对地震数据进行处理和分析是至关重要的。

本报告将介绍地震数据处理的方法和步骤,并利用实际的地震数据进行分析和讨论。

一、地震数据处理的方法和步骤:1.数据收集:从地震监测站点收集地震数据,包括地震震级、震中位置、震源深度、地震波形等。

2.数据预处理:对原始地震数据进行预处理,包括去除无效数据、噪声滤波和数据校正等。

这些步骤可以提高数据质量,为后续分析做好准备。

3.数据分析:根据收集到的地震数据,进行各种分析和计算,包括震级评定、地震波传播路径的推测、震源机制的研究等。

这些分析可以更好地了解地震的特征和规律。

4.数据可视化:将分析得到的结果以图表的形式展示出来,便于理解和传播。

常用的可视化方法包括地震波形图、震中分布图、震级时间图等。

5.数据存储和共享:将处理后的地震数据保存在数据库中,方便以后的研究和参考。

同时,可以将结果分享给相关的科研人员和公众,提高地震预警和应急救援的能力。

二、地震数据分析和讨论:根据实际的地震数据,我们选取了次地震的震中位置(经度:120.05度,纬度:30.00度)和震级(7.0级)。

通过分析地震波形图,我们发现地震波传播方向主要为东西向,表明地震震源可能位于南北断裂带。

同时,我们通过分析地震震级时间图,发现该地震具有较长的持续时间,震级变化范围较广。

这可能意味着地震活动较为活跃,需要引起足够的重视。

根据震级和震中位置,我们还可以进一步研究地震的震源机制。

通过震源机制分析,可以了解地震发生的原因和机制,进而预测未来地震的可能性和影响范围,对地震风险评估和应对策略的制定具有重要意义。

三、结论和建议:通过地震数据处理和分析,我们对该地震的特征和规律有了更深入的了解。

基于此,我们提出以下建议:1.加强地震监测网络的建设,提高地震数据的采集和处理能力。

2.加强地震救援和灾害应对能力,提高公众的地震意识和自救能力。

地震资料处理课程设计

地震资料处理课程设计

地震资料处理课程设计一、课程目标知识目标:1. 学生能理解地震波的传播原理,掌握地震资料处理的基本概念和流程。

2. 学生能够识别并描述不同类型的地震波,了解它们在地震资料处理中的作用。

3. 学生能够掌握地震资料处理中的数据校正、滤波、震相识别等基本技能。

技能目标:1. 学生能够运用地震资料处理软件进行数据预处理,包括数据导入、格式转换等。

2. 学生能够独立完成地震资料的质量控制和数据分析,对异常数据做出合理判断和处理。

3. 学生能够运用地震资料处理技术,绘制地震剖面图,并解释地震事件。

情感态度价值观目标:1. 学生通过学习地震资料处理,培养对地球科学研究的兴趣,增强探索自然现象的欲望。

2. 学生能够认识到地震资料处理在防震减灾和资源勘探等领域的重要性,增强社会责任感。

3. 学生在合作学习过程中,培养团队协作意识,提高沟通与表达能力。

课程性质:本课程为地球科学领域的高年级专业课程,旨在帮助学生掌握地震资料处理的基本原理和方法,提高实践操作能力。

学生特点:学生具备一定的地球科学基础知识,具有较强的学习兴趣和动手能力,但地震资料处理方面的实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,以案例教学为主,引导学生主动参与课堂讨论,提高分析问题和解决问题的能力。

通过课程学习,使学生能够达到上述具体的学习成果。

二、教学内容本课程教学内容主要包括以下几部分:1. 地震资料处理基本原理:介绍地震波传播理论,地震资料采集方法,以及地震资料处理的基本流程。

- 教材章节:第二章 地震波传播原理,第三章 地震资料采集与处理流程2. 地震资料预处理:讲解数据校正、滤波、去噪等预处理方法,以及相关软件操作技巧。

- 教材章节:第四章 地震资料预处理技术3. 震相识别与分析:介绍震相识别的基本方法,震相分析在地震资料处理中的应用。

- 教材章节:第五章 震相识别与分析4. 地震剖面图绘制与解释:教授如何利用地震资料处理软件绘制地震剖面图,以及地震事件的解释方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《地震资料数据处理》课程设计总结报告专业班级:姓名:学号:设计时间:指导老师:2011年5月30日目录一、设计内容………………………………………………………………(1)褶积滤波………………………………………………(2)快变滤波………………………………………………(3)褶积滤波与快变滤波的比较…………………………(4)设计高通滤波因子……………………………………(5)频谱分析………………………………………………(6)分析补零对振幅谱的影响……………………………(7)线性褶积与循环褶积…………………………………(8)最小平方反滤波………………………………………(9)零相位转换……………………………………………(10)最小相位转换…………………………………………(11)静校正…………………………………………………二、附录…………………………………………………………………………(1)附录1:相关程序……………………………………(2)附录2:相关图件……………………………………【附录1:有关程序】1.褶积滤波CCCCCCCCCCCCCCCCC 褶积滤波CCCCCCCCCCCCCCCCCPROGRAM MAINDIMENSION X(100),H1(-50:50),H2(-50:50),Y_LOW(200),Y_BAND(200)PARAMETER (PI=3.141592654)CCCCCCCC H1是低通滤波因子,H2为带通滤波因子CCCCCCREAL X,H1,H2,Y_LOW,Y_BANDREAL dt,F,F1,F2INTEGER Idt=0.002F=70.0F1=10.0F2=80.0OPEN(1,FILE='INPUT1.DA T',FORM='FORMATTED',STATUS='UNKNOWN') READ(1,*)(X(I),I=1,100)CCCCCCCCCCCCCCCCCC低通滤波器CCCCCCCCCCCCCCCCC DO 10 I=-50,50IF (I.EQ.0)THENH1(I)=2*F*PI/PIELSEH1(I)=SIN(2*PI*F*I*dt)/(PI*I*dt)END IF10 CONTINUECCCCCCCCCCCCCCCC输出低通滤波因子CCCCCCCCCCCCCCCC OPEN(2,FILE='H1_LOW.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(2,*)(H1(I),I=-50,50)CLOSE(2)CALL CON(X,H1,Y_LOW,100,101,200)CCCCCCCCCCCCCCCC输出滤波后的数据CCCCCCCCCCCCCCCC OPEN(3,FILE='Y_LOW.DA T',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(3,*)(Y_LOW(I),I=51,150)CLOSE(3)CCCCCCCCCCCCCCCCCC带通滤波器CCCCCCCCCCCCCCCCCCCC DO 20 I=-50,50IF(I.EQ.0)THENH2(I)=140ELSEH2(I)=SIN(2*PI*F2*I*dt)/(PI*I*dt)-SIN(2*PI*F1*I*dt)/(PI*I*dt)END IF20 CONTINUECCCCCCCCCCCCCCC输出带通滤波因子CCCCCCCCCCCCCCCCC OPEN(4,FILE='H2_BAND.DAT',FORM='FORMA TTED',STATUS='UNKNOWN')WRITE(4,*)(H2(I),I=-50,50)CLOSE(4)CALL CON(X,H2,Y_BAND,100,101,200)CCCCCCCCCCCCCCCC输出滤波后的数据CCCCCCCCCCCCCCCCC OPEN(5,FILE='Y_BAND.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(5,*)(Y_BAND(I), I=51,150)CLOSE(5)ENDCCCCCCCCCCCCCCCCCCCCC褶积函数CCCCCCCCCCCCCCCCCCCC SUBROUTINE CON(A,B,C,I,J,K)DIMENSION A(I),B(J),C(K)DO 1 K1=1,K1 C(K1)=0.0DO 2 I1=1,IDO 2 I2=1,JII=I1+I2-12 C(II)=C(II)+A(I1)*B(I2)*0.002RETURNEND2.快变滤波CCCCCCCCCCCCCCC频率滤波CCCCCCCCCCCCCCCCCCCC PROGRAM MAINPARAMETER (PI=3.141592654)REAL H_LOW(1:200),H_BAND(1:200),Y_LOW(1:200),Y_BAND(1:200)REAL X(1:200)INTEGER I,NFFT,K,NPCOMPLEX C(1:200),TEMP(1:200)REAL DT,DF,F,F1,F2F=70.0F1=10.0F2=80.0DT=0.002OPEN(1,FILE='INPUT1.DA T',FORM='FORMATTED',STATUS='UNKNOWN') READ(1,*)(X(I), I=1,100)NP=100K=LOG(100.0)/LOG(2.0)IF(2**K.LT.100)THENK=K+1NFFT=2**KEND IFDF=1.0/(NFFT*DT)DO 10 I=101,128X(I)=0.010 CONTINUEDO 20 I=1,NFFT20 C(I)=CMPLX(X(I),0.0)CCCCCCCCCCC 向频率域转换CCCCCCCCCCCCCCCCCCALL FFT(NFFT,C,1.0)CCCCCCCCCCC 低通滤波因子的设计CCCCCCCCCCCDO 30 I=1,NFFT/2IF(I*DF.LE.F)THENH_LOW(I)=1.0ELSEH_LOW(I)=0.0END IF30 CONTINUECCCCCCCCC 使滤波器理想化(对称)CCCCCCCCCCDO 40 I=NFFT/2+1,NFFTF=I*DFH_LOW(I)=H_LOW(NFFT-I+1)40 CONTINUECCCCCCCCCCCCCCC 实现滤波CCCCCCCCCCCCCCCCCDO 50 I=1 , NFFT50 TEMP(I)=C(I)*H_LOW(I)CCCCCCCCCCCCCCC 向时间域变换CCCCCCCCCCCCCCALL FFT(NFFT,TEMP,-1.0)DO 60 I=1 , NFFT60 Y_LOW(I)=REAL(TEMP(I))OPEN(2,FILE='LOWPASS.DAT',FORM='FORMA TTED',STATUS='UNKNOWN') WRITE(2,*)(Y_LOW(I),I=1,NFFT)CLOSE(2)CCCCCCCCCCC 带通滤波因子的设计CCCCCCCCCCCDO 70 I=1,NFFT/2IF((I*DF.GE.F1).AND.(I*DF.LE.F2))THENH_BAND(I)=1.0ELSEH_BAND(I)=0.0END IF70 CONTINUECCCCCCCCC 使滤波器理想化(对称)CCCCCCCCCCDO 80 I=NFFT/2+1,NFFTF=I*DFH_LOW(I)=H_BAND(NFFT-I+1)80 CONTINUECCCCCCCCCCCCCCC 实现滤波CCCCCCCCCCCCCCCCCDO 90 I=1 , NFFT90 TEMP(I)=C(I)*H_BAND(I)CALL FFT(NFFT,TEMP,-1.0)DO 100 I=1 , NFFT100 Y_BAND(I)=REAL(TEMP(I))OPEN(3,FILE='BANDPASS.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(3,*)(Y_BAND(I),I=1,NFFT)CLOSE(3)CLOSE(1)ENDCCCCCCCCCCCCCCCCC子程序CCCCCCCCCCCCCCCCCCCCC LX 为输入数据的点数CCCCCCCCCCCCCCCCCCCCCC CX 为复型数组CCCCCCCCCCCCCCCCCCCCCCCCCCC SIGNI 为转换标志CCCCCCCCCCCCCCCCCCCCSUBROUTINE FFT(LX,CX,SIGNI)COMPLEX CX(LX),CARG,CEXP,CW,CTEMPJ=1SC=1.0/LXIF(SIGNI.EQ.1.0)SC=1.0SIG=-SIGNIDO 300 I=1,LXIF(I.GT.J)GO TO 100CTEMP=CX(J)*SCCX(J)=CX(I)*SCCX(I)=CTEMP100 M=LX/2200 IF(J.LE.M)GO TO 300J=J-MM=M/2IF(M.GE.1)GO TO 200300 J=J+ML=1400 ISTEP=2*LDO 500 M=1,LCARG=(0.0,1.0)*(3.14159265*SIG*(M-1))/LCW=CEXP(CARG)DO 500 I=M,LX,ISTEPCTEMP=CW*CX(I+L)CX(I+L)=CX(I)-CTEMP500 CX(I)=CX(I)+CTEMPL=ISTEPIF(L.LT.LX)GO TO 400RETURNEND3.褶积滤波与快变滤波的比较CCCCCCCCCCCCC 褶积滤波与递归滤波的比较CCCCCCCCCCCCCC CCCCCCCCCCCCCCCC 褶积滤波的设计CCCCCCCCCCCCCCCCCC PROGRAM MAINPARAMETER(DT=0.002)C H_NZ为非零相位滤波因子,H_Z为零相位滤波因子 CC Y_CNZ为非零相位滤波结果,Y_CZ为零相位滤波结果 CREAL Y_CNZ(1:100),Y_CZ(1:200)REAL H_Z(1:20),H_NZ(1:20)REAL X(1:50)INTEGER I,J,K,NREAL A(0:100),B(0:100)REAL Y_DNZ(1:100),Y_DZ(1:100)REAL X3(1:100),X4(1:100),X1(1:100),X2(1:100)REAL DFDATA H_NZ/1.0,5.254,11.6,13.7,8.47,0.775,-3.325,-2.764,-0.364,$ 1.099,0.97,0.15,-0.37,-0.344,-0.06,-0.126,0.122,0.025,-0.042,$ -0.043/OPEN(1,FILE='INPUT3.DAT',FORM='FORMATTED',STATUS='UNKNOWN') READ(1,*)(X(I),I=1,50)CLOSE(1)CALL CON(X,H_NZ,Y_CNZ,50,20,69)OPEN(2,FILE='Y_CNZ.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(2,*)(Y_CNZ(i),I=1,69)CLOSE(2)CALL AUTCOR(20,20,H_NZ,H_HZ)CALL con(X,H_CZ,Y_CZ,50,20,69)OPEN(3,FILE='Y_CZ.DAT',FORM='FORMATTED',STATUS='UNKNOWN') write(3,*)(Y_CZ(i),I=1,69)CLOSE(3)CLOSE(2)CCCCCCCCCCCCCCC 递归滤波的设计CCCCCCCCCCCCCCCC X 存放INPUT3里数据的数组 CC Y_DNZ 为非零相位递归滤波,Y_DZ 为零相位递归滤波CC X1,2,X,3,X4 为运算过程中的过度变量 CA(0)=1.0A(1)=4.0A(2)=6.0A(3)=4.0A(4)=1.0b(0)=0.0B(1)=-1.254B(2)=0.987B(3)=-0.341B(4)=0.0524CCCCCCCCCCCCCCC 对A 补零CCCCCCCCCCCCCCCCCC DO 40 i=5,4940 A(I)=0.0CCCCCCCCCCCCCCC 对B 补零CCCCCCCCCCCCCCCCCC DO 50 i=5,4950 B(I)=0.0CCCCCCC 从外部数据向X 导入数据CCCCCCCCCCCCOPEN(1,FILE='INPUT3.DA T',FORM='FORMATTED',STATUS='UNKNOWN') READ(1,*)(X(I),I=1,50)CCCCCCCCCCC 非零相位递归滤波的设计CCCCCCCCCDO 10 I=0,49X1(I)=0.0X2(I)=0.0DO 20 J=1,I20 X1(I)=X1(I)+A(J)*X(I-J)IF(I.EQ.0) THENX2(I)=0.0ELSEDO 30 K=1,I30 X2(i)=X2(i)+B(k)*Y_DNZ(I-K)END IFY_DNZ(I)=X1(I)-X2(I)10 CONTINUEOPEN(2,FILE='Y_DNZ.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(2,*)(Y_DNZ(I),I=1,49)CLOSE(2)CCCCCCCCCC 零相位递归滤波的设计CCCCCCCCCCCCDO 60 I=49,0,-1X3(I)=0.0X4(I)=0.0DO 70 J=0,49-I70 X3(I)=X3(I)+A(J)*Y_DNZ(I+J)IF(I.EQ.49) THENX4(I)=0.0ELSEDO 80 K=2,49-I80 X4(I)=X4(I)+B(K)*Y_DZ(I+K)END IFY_DZ(I)=X3(I)-X4(I)60 CONTINUEOPEN(3,FILE='Y_DZ.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(3,*)(Y_DZ(I),I=1,49)CLOSE(3)CLOSE(1)ENDCCCCCCCCCCCCCCCCCCC 褶积子程序CCCCCCCCCCCCCCCCCCC SUBROUTINE CON(A,B,C,I,J,K)DIMENSION A(I),B(J),C(K)DO 1 K1=1,K1 C(K1)=0.0DO 2 I1=1,IDO 2 I2=1,JII=I1+I2-12 C(II)=C(II)+A(I1)*B(I2)*0.004RETURNENDCCCCCCCCCCCCCCCCCC 自相关子程序CCCCCCCCCCCCCCCCCC SUBROUTINE AUTCOR(J,K,C,A)DIMENSION C(J),A(K)DO 7 N=1,KA(N)=0.0I=NDO 6 IN=I,JIL=IN-N+16 A(N)=A(N)+C(IN)*C(IL)7 CONTINUERETURNEND4.设计高通滤波因子CCCCCCCCCCC 高通滤波器的设计CCCCCCCCCCCPROGRAM MAINPARAMETER (N=101,DT=0.004,PI=3.141592654,F=30.0)REAL H(150),H2_R(128),H2_I(128),H_S(128)INTEGER K,NFFTCOMPLEX H2(128)OPEN(1,FILE='H1_HIGHPASS.DAT',FORM='FORMATTED',STATUS='UNKNOWN') OPEN(2,FILE='H2_HIGHPASS.DA T',FORM='FORMATTED',STATUS='UNKNOWN') K=LOG(101.0)/LOG(2.0)IF(2**K.LT.101)THENK=K+1ENDIFNFFT=2**KDO 10,I=-50,50IF(I.EQ.0)THENH(I+51)=1.0/DT-2*FELSEH(I+51)=-SIN(2*PI*30.0*I*DT)/(PI*I*DT)END IF10 CONTINUEDO 20,I=102,12820 H(I)=0.0DO 30,I=1,12830 H2(I)=CMPLX(H(I),0.0)CALL FFT(128,H2,1.0)DO 40,I=1,128H2_R(I)=REAL(H2(I))H2_I(I)=AIMAG(H2(I))H_S(I)=(H2_R(I)**2+H2_I(I)**2)40 CONTINUEWRITE(2,*)(H_S(I),I=1,128)WRITE(1,*)(H(I),I=1,128)CLOSE(1)CLOSE(2)ENDCCCCCCCCCCCCC FFT 子程序CCCCCCCCCCCCCC SUBROUTINE FFT(LX,CX,SIGNI)COMPLEX CX(LX),CARG,CEXP,CW,CTEMPJ=1SC=1.0/LXIF(SIGNI.EQ.1.0)SC=1.0SIG=-SIGNIDO 30 I=1,LXIF(I.GT.J)GO TO 10CTEMP=CX(J)*SCCX(J)=CX(I)*SCCX(I)=CTEMP10 M=LX/220 IF(J.LE.M)GO TO 30J=J-MM=M/2IF(M.GE.1)GO TO 2030 J=J+ML=140 ISTEP=2*LDO 50 M=1,LCARG=(0.0,1.0)*(3.14159265*SIG*(M-1))/LCW=CEXP(CARG)DO 50 I=M,LX,ISTEPCTEMP=CW*CX(I+L)CX(I+L)=CX(I)-CTEMP50 CX(I)=CX(I)+CTEMPL=ISTEPIF(L.LT.LX)GO TO 40RETURNEND5.频谱分析CCCCCCCCCCCCC 频谱分析CCCCCCCCCCCCCCPROGRAM MAINPARAMETER (PI=3.141592654,DT=0.004)REAL XSIN(200),X(200),WA VE(200)REAL X_SIN_R(200),X_SIN_I(200)REAL X_R(200),X_I(200)REAL X_WA VE_R(200),X_WA VE_I(200)REAL SINSPRT(200),XSPRT(200),WA VESPRT(200)REAL DFCOMPLEX XSIN_C(200),X_C(200),X_WA VE_C(200)CCCCCCCCCCCC 对SIN 的分析CCCCCCCCCCCCDO 100 I=1,128XSIN(I)=SIN(2*I*PI/64.0)100 CONTINUECCCCCCCCC 是数据转换成复数形式CCCCCCCCCCDO 200 I=1,128200 XSIN_C(I)=CMPLX(XSIN(I),0.0)CALL FFT(128,XSIN_C,1.0)DO 300 I=1,128300 X_SIN_R(I)=REAL(XSIN_C(I))DO 400 I=1,128400 X_SIN_I(I)=AIMAG(XSIN_C(I))OPEN(1,FILE='XSINSPRT.DAT',FORM='FORMATTED',STATUS='UNKNOWN') DO 1 I=1,1281 SINSPRT(I)=SQRT(X_SIN_R(I)**2+X_SIN_I(I)**2)WRITE(1,*)(SINSPRT(I), I=1,128)CLOSE(1)CCCCCCCCCCCCCC 对脉冲信号的分析CCCCCCCCCCCCCX(1)=1.0DO 800 I=2,128800 X(I)=0.0DO 900 I=1,128900 X_C(I)=CMPLX(X(I),0.0)CALL FFT(128,X_C,1.0)DO 1000 I=1,1281000 X_R(I)=REAL(X_C(I))DO 1100 I=1,1281100 X_I(I)=AIMAG(X_C(I))OPEN(5,FILE='XSPRT.DAT',FORM='FORMATTED',STATUS='UNKNOWN')DO 2 I=1,1282 XSPRT(I)=SQRT(X_R(I)**2+X_I(I)**2)WRITE(5,*)(XSPRT(I), I=1,128)CLOSE(5)CCCCCCCCCCCC 对地震波W A VE 的分析CCCCCCCCCCCOPEN(3,FILE='WA VE.DAT',FORM='FORMATTED',STATUS='UNKNOWN')READ(3,*)(WA VE(I), I=1,128)DO 500 I=1,128500 X_WA VE_C(I)=CMPLX(WA VE(I),0.0)CALL FFT(128,X_WA VE_C,1.0)DO 600 I=1,128600 X_WA VE_R(I)=REAL(X_WA VE_C(I))DO 700 I=1,128700 X_WA VE_I(I)=AIMAG(X_WA VE_C(I))OPEN(4,FILE='WA VESPRT.DAT',FORM='FORMATTED',STATUS='UNKNOWN') DO 3 I=1,1283 WA VESPRT(I)=SQRT(X_WA VE_R(I)**2+X_WA VE_I(I)**2)WRITE(4,*)(WA VESPRT(I), I=1,128)CLOSE(4)CLOSE(3)ENDCCCCCCCCCCCCCCC FFT 子程序CCCCCCCCCCCCCCCCCSUBROUTINE FFT(LX,CX,SIGNI)COMPLEX CX(LX),CARG,CEXP,CW,CTEMPJ=1SC=1.0/LXIF(SIGNI.EQ.1.0)SC=1.0SIG=-SIGNIDO 30 I=1,LXIF(I.GT.J)GO TO 10CTEMP=CX(J)*SCCX(J)=CX(I)*SCCX(I)=CTEMP10 M=LX/220 IF(J.LE.M)GO TO 30J=J-MM=M/2IF(M.GE.1)GO TO 2030 J=J+ML=140 ISTEP=2*LDO 50 M=1,LCARG=(0.0,1.0)*(3.14159265*SIG*(M-1))/LCW=CEXP(CARG)DO 50 I=M,LX,ISTEPCTEMP=CW*CX(I+L)CX(I+L)=CX(I)-CTEMP50 CX(I)=CX(I)+CTEMPL=ISTEPIF(L.LT.LX)GO TO 40RETURNEND6.分析补零对振幅谱的影响CCCCCCCCCCC 分析补零对振幅谱的影响CCCCCCCCCCCPROGRAM MAINCCCCCCCCCCC 不补零时的振幅普CCCCCCCCCCCCCCCCC CCCCCCCCCCC 对函数SIN 的分析CCCCCCCCCCCCCCCCPARAMETER (PI=3.1415)REAL XSIN(150),XWA VE(150)REAL XWA VE_R(150),XWA VE_I(150)REAL XSIN_Z(150),XWA VE_Z(150)REAL XSIN_R(150),XSIN_I(150)COMPLEX XSIN_60C(150),XWA VE_60C(150)COMPLEX XSIN_64C(150),XWA VE_64C(150)COMPLEX XSIN_128C(150),XWA VE_128C(150)REAL XSIN_60S(150),XWA VE_60ZS(150)REAL XSIN_64S(150),XWA VE_64ZS(150)REAL XSIN_128S(150),XWA VE_128ZS(150)OPEN(1,FILE='XSIN_60S.DA T',FORM='FORMATTED',STATUS='UNKNOWN') DO 1 I=1,601 XSIN(I)=SIN(2*PI*I/30.0)DO 11 I=1,6011 XSIN_60C(I)=CMPLX(XSIN(I),0.0)CALL DFT(60,XSIN_60C,1.0)DO 12 I=1,6012 XSIN_R(I)=REAL(XSIN_60C(I))DO 13 I=1,6013 XSIN_I(I)=AIMAG(XSIN_60C(I))DO 14 I=1,6014 XSIN_60S(I)=SQRT(XSIN_R(I)**2+XSIN_I(I)**2)WRITE(1,*)(XSIN_60S(I),I=1,60)CLOSE(1)CCCCCCCCCCCCC 对地震数据的分析CCCCCCCCCCCCCCOPEN(2,FILE='WA VE.DAT',FORM='FORMATTED',STATUS='UNKNOWN')READ(2,*)(XWA VE(I),I=1,60)CLOSE(2)DO 21 I=1,6021 XWA VE_60C(I)=CMPLX(XWA VE(I),0.0)CALL DFT(60,XWA VE_60C,1.0)DO 22 I=1,6022 XWA VE_R(I)=REAL(XWA VE_60C(I))DO 23 I=1,6023 XWA VE_I(I)=AIMAG(XWA VE_60C(I))DO 24 I=1,6024 XWA VE_60ZS(I)=SQRT(XWA VE_R(I)**2+XWA VE_I(I)**2)OPEN(3,FILE='XWA VE_60ZS.DA T',FORM='FORMATTED',STA TUS='UNKNOWN') WRITE(3,*)(XWA VE_60ZS(I),I=1,60)CLOSE(3)CCCCCCCCCCCCC 对补零数据的分析CCCCCCCCCCCCCCCC CCCCCCCCCCCC 对函数SIN 的分析CCCCCCCCCCCCCCCCOPEN(4,FILE='XSIN_64S.DA T',FORM='FORMATTED',STATUS='UNKNOWN')DO 31 I=61,6431 XSIN(I)=0.0DO 32 I=1,6432 XSIN_64C(I)=CMPLX(XSIN(I),0.0)CALL DFT(64,XSIN_64C,1.0)DO 33 I=1,6433 XSIN_R(I)=REAL(XSIN_64C(I))DO 34 I=1,6434 XSIN_I(I)=AIMAG(XSIN_64C(I))DO 35 I=1,6435 XSIN_64S(I)=SQRT(XSIN_R(I)**2+XSIN_I(I)**2)WRITE(4,*)(XSIN_64S(I),I=1,64)CLOSE(4)OPEN(5,FILE='XSIN_128S.DA T',FORM='FORMATTED',STATUS='UNKNOWN')DO 41 I=65,12841 XSIN(I)=0.0DO 42 I=1,12842 XSIN_128C(I)=CMPLX(XSIN(I),0.0)CALL DFT(128,XSIN_128C,1.0)DO 43 I=1,12843 XSIN_R(I)=REAL(XSIN_128C(I))DO 44 I=1,12844 XSIN_I(I)=AIMAG(XSIN_128C(I))DO 45 I=1,12845 XSIN_128S(I)=SQRT(XSIN_R(I)**2+XSIN_I(I)**2)WRITE(5,*)(XSIN_128S(I),I=1,128)CLOSE(5)CCCCCCCCCCCCC 对地震数据的分析CCCCCCCCCCCCCCOPEN(6,FILE='XWA VE_64ZS.DAT',FORM='FORMATTED',STATUS='UNKNOWN') DO 51 I=61,6451 XWA VE(I)=0.0DO 52 I=1,6452 XWA VE_64C(I)=CMPLX(XWA VE(I),0.0)CALL DFT(64,XWA VE_64C,1.0)DO 53 I=1,6453 XWA VE_R(I)=REAL(XWA VE_64C(I))DO 54 I=1,6454 XWA VE_I(I)=AIMAG(XWA VE_64C(I))DO 55 I=1,6455 XWA VE_64ZS(I)=SQRT(XWA VE_R(I)**2+XWA VE_I(I)**2)WRITE(6,*)(XWA VE_64ZS(I),I=1,64)CLOSE(6)OPEN(7,FILE='XWA VE_128ZS.DAT',FORM='FORMATTED',STATUS='UNKNOWN') DO 61 I=65,12861 XWA VE(I)=0.0DO 62 I=1,12862 XWA VE_128C(I)=CMPLX(XWA VE(I),0.0)CALL DFT(128,XWA VE_128C,1.0)DO 63 I=1,12863 XWA VE_R(I)=REAL(XWA VE_128C(I))DO 64 I=1,12864 XWA VE_I(I)=AIMAG(XWA VE_128C(I))DO 65 I=1,12865 XWA VE_128ZS(I)=SQRT(XWA VE_R(I)**2+XWA VE_I(I)**2)WRITE(7,*)(XWA VE_128ZS(I),I=1,128)CLOSE(7)ENDCCCCCCCCCCCCCCC DFT 子程序CCCCCCCCCCCCCCCCSUBROUTINE DFT(N,C,S)COMPLEX C(N),Y(512),WIF(S.EQ.1.0)Z=1.0IF(S.EQ.-1.0)Z=1.0/FLOAT(N)DO 20 I=1,NY(I)=(0.0,0.0)DO 20 J=1,NA=COS(2.0*3.14159265*(I-1)*(J-1)/FLOAT(N))B=SIN(2.0*3.14159265*(I-1)*(J-1)/FLOAT(N))*(-S)W=CMPLX(A,B)20 Y(I)=Y(I)+C(J)*WDO 30 I=1,N30 C(I)=Y(I)*ZRETURNEND7.线性褶积与循环褶积CCCCCCCCC 线性滤波与循环褶积比较CCCCCCCCCPROGRAM MAINCCCCCCCCCCCCC 线性滤波CCCCCCCCCCCCCCCCCCCCCCCCCCC H是低通滤波因CCCCCCCCCCCCPARAMETER (PI=3.141592654, DT=0.002,F=70.0)REAL X(100),X2(101),H(-50:50),Y_LINEAR(200),Y_CIRCLE(200)OPEN(1,FILE='INPUT1.DA T',FORM='FORMATTED',STATUS='UNKNOWN')READ(1,*)(X(I),I=1,100)CCCCCCCCCCCCCCC低通滤波器CCCCCCCCCCCCCDO 10 I=-50,50IF (I.EQ.0)THENH(I)=2*F*PI/PIELSEH(I)=SIN(2*PI*F*I*DT)/(PI*I*DT)END IF10 CONTINUECALL CON(X,H,Y_LINEAR,100,101,200)CCCCCCCCCCCC输出滤波后的数据CCCCCCCCCCCCCCCOPEN(2,FILE='Y_LINEAR.DA T',FORM='FORMATTED',STATUS='UNKNOWN')WRITE(2,*)(Y_LINEAR(I),I=1,200)CLOSE(2)CCCCCCCCCCCCC 圆周滤波的设计CCCCCCCCCCCCOPEN(3,FILE='Y_CIRCLE.DAT',FORM='FORMATTED',STATUS='UNKNOWN')DO 20 I=1,10020 X2(I)=X(I)X2(100)=0.0CALL CIRCON(X2,H,Y_CIRCLE,101)WRITE(3,*)(Y_CIRCLE(I),I=1,101)CLOSE(3)CCCCCCC 线性卷积输出点等于圆周卷积CCCCCCOPEN(4,FILE='Y_LINEARCUT.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(4,*)(Y_LINEAR(I),I=1,101)CLOSE(4)ENDCCCCCCCCCCCCCC 线性卷积子程序CCCCCCCCCCCCCCSUBROUTINE CON(A,B,C,I,J,K)DIMENSION A(I),B(J),C(K)DO 1 K1=1,K1 C(K1)=0.0DO 2 I1=1,IDO 2 I2=1,JII=I1+I2-12 C(II)=C(II)+A(I1)*B(I2)*0.004RETURNENDCCCCCCCCCCCCCCC 圆周卷积子程序CCCCCCCCCCCCCCSUBROUTINE CIRCON(X,H,Y,N)REAL X(N),H(N),Y(N)DO I=1,NY(I)=0.0ENDDODO I=1,NDO J=1,NIF(I-J.GT.0) Y(I)=Y(I)+X(J)*H(I-J)ENDDOENDDOEND8.最小平方反滤波CCCCCCCCCC 两种反射系数序列的对比CCCCCCCCCCPROGRAM MAINREAL B(12),R(200),X_CONV(211),RXX(211)REAL A(211),A_CONV(270)DATA B/17.5,12.5,7.0,0.0,-3.5,-7.0,-3.0,-1.0,0.0,1.4,3.5,2.0/OPEN(1,FILE='INPUT8.DAT',FORM='FORMATTED',STATUS='UNKNOWN') READ(1,*)(R(I),I=1,200)CCCCCCCCCCCCCC 求合成地震记录CCCCCCCCCCCCCCCALL CON(R,B,X_CONV,200,12,211)CCCCCCCCCCCC 求地震子波的自相关CCCCCCCCCCCCCALL AUTCOR(211,211,X_CONV,RXX)CCCCCCCCCCCCCCC 求反滤波因子CCCCCCCCCCCCCCCCALL PEO(211,RXX,A)OPEN(2,FILE='A.DAT',FORM='FORMA TTED',STATUS='UNKNOWN')WRITE(2,*)(A(I),I=1,60)CCCCCCC 通过反滤波因子求反射系数序列CCCCCCCCALL CON(A,X_CONV,A_CONV,60,211,270)OPEN(3,FILE='A_CONV.DA T',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(3,*)(A_CONV(I),I=1,270)CLOSE(3)CLOSE(2)CLOSE(1)ENDCCCCCCCCCCCCCCC 褶积子程序CCCCCCCCCCCCCCCC SUBROUTINE CON(A,B,C,I,J,K)DIMENSION A(I),B(J),C(K)DO 1 K1=1,K1 C(K1)=0.0DO 2 I1=1,IDO 2 I2=1,JII=I1+I2-12 C(II)=C(II)+A(I1)*B(I2)*0.004RETURNENDCCCCCCCCCCCCCCC 自相关子程序CCCCCCCCCCCCCCC SUBROUTINE AUTCOR(J,K,C,A)DIMENSION C(J),A(K)DO 7 N=1,KA(N)=0.0I=NDO 6 IN=I,JIL=IN-N+16 A(N)=A(N)+C(IN)*C(IL)7 CONTINUERETURNENDCCCCCCCCCCCCCC 求反滤波因子CCCCCCCCCCCCCCCC SUBROUTINE PEO(LR,R,A)C PEO IS THE AUXILIARY TOEPLITZ RECURSIONC IT GIVES THE PREDICTION-ERROR OPERA TOR A(I)DIMENSION R(LR),A(LR)V=R(1)A(1)=1.0IF(LR.EQ.1)RETURNDO 6 L=2,LRD=0.0L3=L-1DO 1 J=1,L3K=L-J+11 D=D+A(J)*R(K)C=D/VIF(L.EQ.2)GOTO 4L1=(L-2)/2L2=L1+1IF(L2.LT.2)GOTO 3DO 2 J=2,L2HOLD=A(J)K=L-J+1A(J)=A(J)-C*A(K)2 A(K)=A(K)-C*HOLDIF(2*L1.EQ.L-2)GOTO 43 LT3=L2+1A(LT3)=A(LT3)-C*A(LT3)4 A(L)=-C6 V=V-C*DRETURNEND9.零相位转换CCCCCCCCCCC 零相位的转换CCCCCCCCCCCCCPROGRAM MAINREAL B(32),B1(32),BC_S(32),B_CONV(32)REAL BC_R(32),BC_I(32)DATA B/0,1,3,5,7,9,10,8,6,4,2,0,-1,0,1,2,3,1.5,0,-1,0,2,1,0,0/COMPLEX B_C(32),BC_SZ(32)DO 10,I=1,32IF(I.GE.26)THENB_C(I)=(0.0,0.0)ELSEB_C(I)=CMPLX(B(I),0.0)END IF10 CONTINUECALL FFT(32,B_C,1.0)DO 20,I=1,32BC_R(I)=REAL(B_C(I))BC_I(I)=AIMAG(B_C(I))BC_S(I)=SQRT(BC_R(I)**2+BC_I(I)**2)20 BC_SZ(I)=CMPLX(BC_S(I),0.0)CALL FFT(32,BC_SZ,-1.0)DO 30,I=1,3230 B_CONV(I)=REAL(BC_SZ(I))OPEN (1,FILE='B_CONV.DA T',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(1,*)(B_CONV(I),I=1,32)CLOSE(1)ENDCCCCCCCCCCCCCC FFT子程序CCCCCCCCCCCCCCSUBROUTINE FFT(LX,CX,SIGNI)COMPLEX CX(LX),CARG,CEXP,CW,CTEMPJ=1SC=1.0/LXIF(SIGNI.EQ.1.0)SC=1.0SIG=-SIGNIDO 30 I=1,LXIF(I.GT.J)GO TO 10CTEMP=CX(J)*SCCX(J)=CX(I)*SCCX(I)=CTEMP10 M=LX/220 IF(J.LE.M)GO TO 30J=J-MM=M/2IF(M.GE.1)GO TO 2030 J=J+ML=140 ISTEP=2*LDO 50 M=1,LCARG=(0.0,1.0)*(3.14159265*SIG*(M-1))/LCW=CEXP(CARG)DO 50 I=M,LX,ISTEPCTEMP=CW*CX(I+L)CX(I+L)=CX(I)-CTEMP50 CX(I)=CX(I)+CTEMPL=ISTEPIF(L.LT.LX)GO TO 40RETURNEND10.最小相位转换CCCCCCCCCCCC 最小相位转换CCCCCCCCCCCCPROGRAM MAIMREAL B(25),B0(75)DATA B/0,1,2,3,1.5,0,-1,0,1,3,5,7,9,10,8,6,4,2,0,-1,0,2,3,2,0/REAL RBB(25),Y0(25),A0(25)REAL SUMX,C(49),G(49)OPEN(1,FILE='B0.DA T',FORM='FORMATTED',STA TUS='UNKNOWN') OPEN(2,FILE='B.DAT',FORM='FORMATTED',STATUS='UNKNOWN') WRITE(2,*)(B(I),I=1,25)CALL AUTCOR(25,25,B,RBB)CALL PEO(25,RBB,Y0)SUMX=0.0DO 10,I=1,25CALL CON(B,Y0,C,25,25,49)10 SUMX=SUMX+(C(I))**2B0(1)=1.0/SQRT(SUMX)20 A0(I)=B0(1)*Y0(I)CALL CON(B,A0,G,25,25,49)CALL COAUTCOR(25,49,73,B,G,B0)WRITE(1,*)(B0(I),I=1,73)CLOSE(2)CLOSE(1)ENDCCCCCCCCCCCC 求反滤波因子CCCCCCCCCCCC SUBROUTINE PEO(LR,R,A)C PEO IS THE AUXILIARY TOEPLITZ RECURSIONC IT GIVES THE PREDICTION-ERROR OPERA TOR A(I)DIMENSION R(LR),A(LR)V=R(1)A(1)=1.0IF(LR.EQ.1)RETURNDO 6 L=2,LRD=0.0L3=L-1DO 1 J=1,L3K=L-J+11 D=D+A(J)*R(K)C=D/VIF(L.EQ.2)GOTO 4L1=(L-2)/2L2=L1+1IF(L2.LT.2)GOTO 3DO 2 J=2,L2HOLD=A(J)K=L-J+1A(J)=A(J)-C*A(K)2 A(K)=A(K)-C*HOLDIF(2*L1.EQ.L-2)GOTO 43 LT3=L2+1A(LT3)=A(LT3)-C*A(LT3)4 A(L)=-C6 V=V-C*DRETURNENDCCCCCCCCCCCCCC 自相关子程序CCCCCCCCCCCCCCC SUBROUTINE AUTCOR(J,K,C,A)DIMENSION C(J),A(K)A(N)=0.0I=NDO 6 IN=I,JIL=IN-N+16 A(N)=A(N)+C(IN)*C(IL)7 CONTINUERETURNENDCCCCCCCCCCCCCC 互相关子程序CCCCCCCCCCCCCCCSUBROUTINE COAUTCOR(J,L,K,A,B,C)DIMENSION A(J),B(L),C(K)DO 7 N=1,KC(N)=0.0IF (J.LE.L+1-N) THENMIN=JELSEMIN=L+1-NENDIFDO 6 IA=1,MINIB=IA+N-16 C(N)=C(N)+A(IA)*B(IB)7 CONTINUERETURNENDCCCCCCCCCCCCCCC 卷积子程序CCCCCCCCCCCCCCCCSUBROUTINE CON(A,B,C,I,J,K)DIMENSION A(I),B(J),C(K)DO 1 K1=1,K1 C(K1)=0.0DO 2 I1=1,IDO 2 I2=1,JII=I1+I2-12 C(II)=C(II)+A(I1)*B(I2)*0.004RETURNEND11.静校正CCCCCCCCCCCCCC 静校正程序设计CCCCCCCCCCCCCCCPROGRAM MAININTEGER I,J,NREAL X(10,100),X_SAMPLE(100),X_CT(0:19),X_COR(-19:19),XDT(10),TH(100) REAL MAXOPEN(1,FILE='SEIS.DA T',FORM='FORMATTED',STATUS='UNKNOWN') OPEN(2,FILE='SEIS11.DA T',FORM='FORMATTED',STATUS='UNKNOWN') DO 100 I=1,10READ(1,*)(X(I,J),J=1,100)100 CONTINUEPRINT*,'PLEASE INPUT SAMPLE LINE NUMBER !'READ*,NDO 200 J=1,100X_SAMPLE(J)=X(N,J)200 CONTINUEDO 300 I=1,10DO 400 J=1,100TH(J)=X(I,J)400 CONTINUECALL COAUTCOR(100,100,20,TH,X_SAMPLE,X_CT)DO J=0,19X_COR(J)=X_CT(J)ENDDOCALL COAUTCOR(100,100,20,X_SAMPLE,TH,X_CT)DO J=0,19X_COR(-J)=X_CT(J)ENDDOMAX=X_COR(-19)DO J=-18,19IF(MAX.LT.X_COR(J))THENMAX=X_COR(J)XDT(I)=JENDIFENDDOIF(XDT(I).GT.0)THENDO J=100-XDT(I),1,-1X(I,J+XDT(I))=X(I,J)ENDDODO J=1,XDT(I)-1X(I,J)=0ENDDOELSEIF(XDT(I).LT.0)THENDO J=1,100+XDT(I)X(I,J)=X(I,J-XDT(I))ENDDODO J=101+XDT(I),100X(I,J)=0ENDDOENDIF300 CONTINUEWRITE(2,*)((X(I,J),J=1,100),I=1,10)CLOSE(2)CLOSE(1)ENDCCCCCCCCCCCCC 互相关子程序CCCCCCCCCCCCC SUBROUTINE COAUTCOR(J,L,K,A,B,C)DIMENSION A(J),B(L),C(K)DO 7 N=1,KC(N)=0.0IF (J.LE.L+1-N) THENMIN=JELSEMIN=L+1-NENDIFDO 6 IA=1,MINIB=IA+N-16 C(N)=C(N)+A(IA)*B(IB)7 CONTINUERETURNEND【附录2:有关图件】。

相关文档
最新文档