地震资料处理实习报告
地震实习报告

地震实习报告一、引言地震是地球表面上常见的自然灾害之一,对人类社会造成了严重的财产损失和人员伤亡。
为了更好地了解地震的产生原因、预测方法和应对措施,我参加了地震实习活动。
二、实习目的地震实习的目的是通过实地考察和学习,深入了解地震的基本知识和防灾减灾措施,提高灾害意识和应急能力。
三、实习地点本次实习活动地点为某地震研究所位于山区的实验基地,该地区近年来频繁发生地震,拥有丰富的地震数据和实验设备。
四、实习过程我在实习活动中深入学习了地震的基本知识,包括地震的定义、地震波传播规律、地震烈度和震源机制等。
同时,我还参观了地震仪器的运作原理和数据分析方法。
在实习的过程中,我通过与研究人员的交流和观察,了解了地震预测的基本方法和技术手段。
他们使用地震仪器和遥感技术对地震活动进行监测和分析,从而提前预警可能发生的地震灾害。
五、实习成果通过实习活动,我深入了解了地震活动的规律和防灾减灾的重要性。
我学会了如何使用地震仪器和分析地震数据,掌握了一些地震预测的基本方法。
六、实习心得地震实习是我大学期间一次非常有收获的实践活动。
通过亲身参与实地实习,我深刻感受到了地震的威力和对人类社会的巨大影响。
在今后的学习和工作中,我将继续努力学习地震预测和防灾减灾技术,为保护人民的生命财产安全作出贡献。
七、总结通过地震实习活动,我收获了丰富的地震知识和实践经验。
我深入了解了地震的产生原因、预测方法和防灾减灾措施,提高了自己的灾害意识和应急能力。
地震实习活动为我未来的学习和工作奠定了坚实的基础,我将继续不断学习和探索地震科学领域,为地震预测和防灾减灾工作做出自己的贡献。
八、参考资料1. XX地震研究所.2. XX地震预测与防灾减灾手册.。
地震认识实习报告

地震认识实习报告一、前言地震作为自然界中最为严重的自然灾害之一,对人类社会造成了巨大的损失。
为了更好地了解地震现象,提高防灾减灾能力,我参加了地震认识实习活动。
在这次实习中,我参观了地震台站,了解了地震监测预警、地震台站的工作原理以及地震应急处理等方面的知识。
通过实习,我对地震有了更为全面的认识,对地震预警和应急处理有了更为深入的了解。
二、实习内容1. 地震台站参观在实习过程中,我们参观了郫县地震台。
郫县地震台是四川省地震局的一个专业台站,位于成都市郫县新胜镇的走石山,是国家级综合台站。
该台现有测震、重力、地磁、地电阻率等观测手段。
通过参观,我了解了地震台站的工作环境和设备,对地震监测有了直观的认识。
2. 地震监测预警在地震台站,我们学习了地震监测预警的方法。
地震监测主要是通过地震仪来实现的。
地震仪可以记录地震波的运动学特征和动力学特征,从而判断地震的基本参数。
地震预警则是在地震发生后,迅速判断地震的大小、震中位置,并向公众发布预警信息,以便采取应急措施。
3. 地震台站工作原理在实习过程中,我们还学习了地震台站的工作原理。
地震台站的主要任务是监测地震活动,收集地震资料,提供地震研究的基础数据。
地震台站通过各种观测手段,如测震、重力、地磁、地电阻率等,实时监测地球内部的动态变化。
此外,地震台站还会对地震数据进行处理和分析,为地震预警和地震研究提供数据支持。
4. 地震应急处理在地震发生后,迅速采取应急处理措施是减轻地震灾害的关键。
实习过程中,我们学习了地震应急处理的基本流程,包括地震速报、灾情收集、灾情评估、救援队伍调度、物资供应等。
此外,我们还了解了地震应急预案的制定和演练的重要性。
三、实习感悟通过地震认识实习,我对地震有了更为全面的认识。
地震不仅是自然界的现象,更是对人类社会的一种挑战。
在地震面前,人类并非无能为力。
通过地震台站的监测预警和应急处理,我们可以减轻地震灾害,保护人民的生命财产安全。
地震实习报告

地震实习报告尊敬的指导老师:我在您的指导下,进行了一次地震实习,感受到了这个领域的严谨、复杂和有趣。
现在,我就来写一份地震实习报告,总结我的学习和成果。
一、实习背景和目的本次实习是由学院组织的,旨在让我们了解地震的基本概念、监测方法和数据处理技术,培养我们的观察能力、表达能力和团队协作精神。
本次实习的具体目的包括:1. 熟悉地震的起因和失稳过程,掌握地震的测量方法和分析过程。
2. 掌握一些基本的地震学术语和专业工具,能够正确使用地震数据和软件。
3. 培养实习团队的合作意识和解决问题的能力,加强团队凝聚力和交流能力。
二、实习内容和方法本次实习涵盖了地震的基本理论、监测方法、数据分析和应用。
具体内容如下:1. 理论学习:我们通过听讲和自学的方式,了解了地震的基本概念、地震波和波形分析、地震烈度和震源机制等知识,掌握了一些地震学术语和术语。
2. 设备操作:我们参观了地震站,了解了地震监测设备的安装和使用,学习了地震仪、加速度计、GPS等设备的操作方法。
3. 数据处理:我们对地震数据进行了采集、下载和处理,使用MATLAB等软件对地震波形进行了分析和模拟。
4. 应用与讨论:我们讨论了地震在地质勘探、资源调查和灾害预防等方面的应用,深入探讨了地震监测和预警的问题,开展了小组合作运作。
通过以上步骤,我们对地震的基本知识、监测方法和数据处理技术有了深入的了解和实践。
三、实习成果和收获本次实习,我们取得了一定的成果和收获,主要包括:1. 知识方面:我们加强了对地震的理解,掌握了一些专业术语和工具,对地质与地球科学有了更广阔的了解。
2. 技能方面:我们学会了操作地震设备,掌握了处理地震数据的方法,提高了运用MATLAB和其他软件的能力。
3. 团队合作方面:在小组中,我们互相支持和协助,完成了一些数据处理任务和专业讲演,加强了团队凝聚力和友情。
4. 成果方面:我完成了一份简单的地震模拟报告,分析了地震波形的特征和震源机制,提交给指导老师,并得到了肯定和建议。
地震实习报告

地震实习报告引言:本次地震实习是为了深入了解地震现象及其对人类社会的影响而进行的。
实习期间,我参观了地震研究所,观测了地震数据,并与专业人员进行了交流。
通过这次实习,我对地震有了更全面的认识,也了解到了地震预防和减灾的重要性。
实习目的:本次实习的主要目的是加深对地震现象的认识,了解地震的发生机理以及地震预测和监测技术。
同时,也探讨地震对人类社会的影响,以及应对地震风险的措施。
实习过程:1. 参观地震研究所在实习的第一天,我参观了当地的地震研究所。
研究所的科研人员向我们介绍了他们的研究方向和实验设备。
通过参观,我了解到了地震研究的重要性以及研究人员的工作内容。
2. 地震数据观测在实习期间,我有幸观测了地震数据的收集和处理过程。
通过地震仪的安装和调试,我亲身体验到了地震观测的复杂性和技术要求。
同时,我还学习了如何根据地震数据确定地震的震级和震源位置。
3. 地震预测与预警在与地震专家的交流中,我了解到地震预测和预警对于减少地震灾害的重要性。
地震预测通过研究地震发生的规律和趋势,预测地震的可能发生时间和地点。
而地震预警则是在地震发生后,通过快速传递地震信息,使受灾区域的人民有足够的时间进行疏散和避险。
实习收获:通过这次地震实习,我不仅加深了对地震的认识,还了解到了地震预测和防灾减灾的重要性。
我还意识到地震对于人类社会的影响是广泛而深远的,因此应对地震风险采取相应的措施是十分必要的。
结论:本次地震实习使我对地震有了更全面的了解,也为我未来从事相关研究或工作打下了坚实的基础。
通过观测地震数据,我深入了解了地震的发生机理和预测技术,同时也了解到地震预警对于减少灾害的重要性。
希望我将来能够为地震预防和减灾事业做出自己的贡献。
(字数:552)。
地震实习报告

地震实习报告摘要:本篇报告旨在总结和评估我所参与的地震实习经历。
通过参与实地考察、数据分析和地震预警等实习项目,我深入了解了地震的发生机制、影响及应对措施。
本次实习不仅增长了我的专业知识,也增强了我对于地震灾害的认知和应对能力。
一、引言在地球的演化过程中,地震作为自然界的表征之一,一直是我们关注的热点问题。
在为期两个月的地震实习中,我了解到了地震的性质、地震灾害的潜在影响以及如何应对地震发生。
二、背景地震实习的主要目的是通过实际参与和观察地震现场,掌握地震灾害的基本知识和应对策略。
实习期间,我参观了多个地震灾区,并与地震专家进行了深入交流,旨在加深对地震现象的理解。
三、实习内容1. 实地考察:我参观了包括xxxx在内的多个地震灾区,亲眼目睹了地震对人们生活和环境的破坏力。
通过观察灾区现场,我深刻认识到地震防灾工作的重要性。
2. 数据分析:在地震预警中心,我学习了如何分析地震数据以及如何准确预测和警示地震。
通过实践操作,我熟悉了地震监测设备的使用步骤,并学会了解读数据结果。
3. 地震预警:在地震预警中心的实习过程中,我了解到警报发布的流程和环节。
通过参与模拟地震演练和实际警报发布,我体验了地震预警工作的紧迫和责任。
四、实习成果通过地震实习,我对地震灾害有了更深入的认识,并获得了以下成果:1. 提高了地震知识水平:通过与地震专家的交流和实地考察,我掌握了地震的基本原理、预测方法和防灾措施等知识。
2. 增强了数据分析能力:通过参与地震数据分析,我学会了运用科学方法和工具,准确分析地震数据结果。
3. 锻炼了应急反应能力:通过实践参与地震预警工作,我提高了应急反应和处理突发事件的能力。
五、总结与展望通过这次地震实习,我深刻认识到地震的威胁和对社会经济的影响。
未来,我将继续学习和关注地震相关领域的研究,为国家地震防灾事业贡献自己的一份力量。
致谢在此,我要向给予我指导和帮助的地震专家们表达诚挚的感谢。
没有他们的支持和指导,我无法顺利完成这次地震实习。
地震资料处理上机实习报告

地震资料处理上机实习报告一、实习目的与任务本次地震资料处理上机实习的主要目的是让我们了解和掌握地震资料处理的基本原理和方法,提高我们处理地震数据的能力。
实习任务是根据给定的地震数据,进行地震资料的预处理、地震相位变换、地震切片、地震属性提取等操作,最终生成可用于地震解释和分析的成果。
二、实习环境和工具本次实习在地震资料处理实验室进行,使用的是商用地震资料处理软件Paraview。
Paraview是一款功能强大的地震资料处理和可视化软件,可以进行地震数据的读取、显示、处理和分析等操作。
三、实习过程1. 地震资料预处理首先,我们需要对给定的地震数据进行预处理,包括去噪、滤波、地震数据截取等操作。
预处理的目的是提高地震数据的信噪比,为后续的地震资料处理和分析打下基础。
2. 地震相位变换地震相位变换是将地震数据从振幅变换为相位,从而更好地反映地层的岩性和构造特征。
本次实习中,我们使用了相位变换算法对地震数据进行了处理,并生成了相应的相位变换地震数据。
3. 地震切片地震切片是通过沿某一方向(如时间、深度或横波方向)对地震数据进行切面处理,以观察地层结构和断层分布。
我们选取了感兴趣的时间段和切片方向,生成了地震切片,并通过Paraview软件进行了显示和分析。
4. 地震属性提取地震属性提取是从地震数据中提取反映地层岩性、物性、构造特征等方面的信息。
本次实习中,我们提取了地震数据的振幅、频率、相位等属性,并结合地震切片进行了分析。
5. 成果生成与解释最后,我们将处理后的地震数据和分析结果整理成报告,并对地震资料进行了解释和分析。
通过本次实习,我们深入了解了地震资料处理的基本原理和方法,提高了处理和分析地震数据的能力。
四、实习收获通过本次地震资料处理上机实习,我们不仅掌握了地震资料处理的基本原理和方法,还学会了使用商用地震资料处理软件Paraview进行地震数据的处理和分析。
此外,我们还了解了地震数据处理在油气勘探、地震预测等方面的应用,为今后的学习和研究工作打下了基础。
地震解释实习报告

一、实习背景随着我国经济的快速发展,地震灾害对人民群众生命财产安全造成的损失日益严重。
为了提高地震预测预报能力,减少地震灾害损失,我国积极开展地震解释工作。
本人有幸参加了一次地震解释实习,现将实习情况总结如下。
二、实习目的1. 了解地震解释的基本原理和方法;2. 掌握地震解释的软件操作;3. 提高地震解释在实际生产中的应用能力;4. 深入了解地震预测预报工作的重要性。
三、实习内容1. 地震解释基本原理地震解释是通过对地震资料的收集、整理、分析,揭示地下结构特征和地震活动规律的过程。
实习期间,我们学习了地震波传播、地震波类型、地震波速度、地震震源机制等基本原理。
2. 地震解释软件操作在实习过程中,我们学习了如何使用地震解释软件,如Petrel、GeoFrame等。
通过实际操作,掌握了地震数据预处理、地震层位解释、地震构造解释、地震属性分析等基本技能。
3. 实际生产中的应用在实习过程中,我们参与了实际生产项目,对地震数据进行了解释。
通过分析地震资料,确定了地下结构特征、地震活动规律,为地震预测预报提供了依据。
四、实习收获1. 理论与实践相结合:通过实习,将地震解释理论知识与实际生产相结合,提高了自己的实际操作能力。
2. 培养团队协作精神:在实习过程中,与团队成员共同完成任务,培养了良好的团队协作精神。
3. 深入了解地震预测预报工作:通过实习,对地震预测预报工作有了更深入的了解,认识到地震预测预报工作的重要性。
五、实习总结通过本次地震解释实习,我收获颇丰。
在今后的学习和工作中,我将继续努力,不断提高自己的专业素养,为我国地震预测预报事业贡献自己的力量。
一、实习背景随着我国经济的快速发展,地震灾害对人民群众生命财产安全造成的损失日益严重。
为了提高地震预测预报能力,减少地震灾害损失,我国积极开展地震解释工作。
本人有幸参加了一次地震解释实习,现将实习情况总结如下。
二、实习目的1. 了解地震解释的基本原理和方法;2. 掌握地震解释的软件操作;3. 提高地震解释在实际生产中的应用能力;4. 深入了解地震预测预报工作的重要性。
地震实习报告

地震实习报告一、实习目的地震是一种极具破坏力的自然灾害,给人类的生命和财产安全带来了巨大的威胁。
通过这次地震实习,我希望能够更深入地了解地震的成因、机制和预测方法,提高自己在地震学方面的理论知识和实践能力,为今后从事相关工作或研究打下坚实的基础。
二、实习单位及岗位介绍我实习的单位是_____地震局。
这是一个专门负责监测和研究本地区地震活动的机构,拥有先进的监测设备和专业的技术人员。
在实习期间,我主要在地震监测部门工作,参与了地震数据的收集、分析和处理等工作。
同时,还跟随工作人员进行了一些实地考察和调研,了解了地震监测台站的运行情况和周边的地质环境。
三、实习内容1、地震监测技术学习实习初期,我学习了各种地震监测技术和设备的使用方法,包括地震仪、强震仪、GPS 测量仪等。
了解了这些设备的工作原理、数据采集和处理流程,以及如何对监测数据进行质量控制和误差分析。
2、数据分析与处理在掌握了监测技术后,我开始参与实际的数据分析工作。
每天需要对收集到的大量地震数据进行筛选、整理和分析,提取有用的信息,如地震的发生时间、地点、震级、震源深度等。
通过对这些数据的分析,我们可以了解本地区地震活动的规律和趋势,为地震预测提供依据。
3、地震台站考察为了更直观地了解地震监测工作,我跟随工作人员对一些地震台站进行了实地考察。
在台站,我们检查了设备的运行情况,对出现故障的设备进行维修和更换。
同时,还对台站周边的地质环境进行了调查,了解地质构造对地震活动的影响。
4、地震科普宣传除了专业的监测和研究工作,我还参与了地震局组织的地震科普宣传活动。
通过制作宣传海报、发放宣传资料、举办科普讲座等方式,向公众普及地震的基本知识、应急避险方法和自救互救技能,提高公众的地震防范意识和应对能力。
四、实习收获与体会1、专业知识的提升通过这次实习,我对地震学的理论知识有了更深入的理解。
以前在课堂上学到的知识大多是抽象的概念,而在实习中,我能够将这些理论知识与实际的监测数据和现象相结合,更加直观地感受地震的奥秘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《地震资料数据处理》课程设计总结报告专业班级:地球物理学1302班姓名:学号:成绩:2016年12月31日目录一、设计内容………………………………………………………………(1)褶积滤波……………………………………………………………(2)快变滤波……………………………………………………………(3)褶积滤波与快变滤波的比较………………………………………(4)设计高通滤波因子…………………………………………………(5)频谱分析……………………………………………………………(6)分析补零对振幅谱的影响…………………………………………(7)线性褶积与循环褶积………………………………………………(8)最小平方反滤波……………………………………………………(9)零相位转换…………………………………………………………(11)静校正………………………………………………………………二、程序…………………………………………………………………………一、设计内容1、褶积滤波理想低通滤波因子理想带通滤波因子原始信号低通滤波结果带通滤波结果2、快变滤波原始数据快变低通滤波结果快变带通滤波结果3.褶积滤波与递归滤波的比较原始数据零相位褶积滤波结果非零相位褶积滤波结果零相位递归滤波非零相位递归滤波4.设计高通滤波因子原始数据高通滤波因子频率域高通滤波因子5.频谱分析正弦函数频谱尖脉冲频谱地震波频谱6.分析补零对振幅谱的影响正弦函数n=60正弦函数n=128\非周期波形n=60 非周期波形n=64非周期波形n=128 7.线性褶积与圆周褶积线性褶积模型圆周褶积结果长度与圆周褶积相等的线性褶积8.最小平方反滤波原始反射系数序列求出的反射系数序列9.零相位转换非零相位子波零相位子波11、地震记录原始数据选择第一道为参考到静校正结果二、程序1. 褶积滤波# include "stdio.h"# include "math.h"# include "conv.c"# define pi 3.1415926# define N 100# define dt 0.002main(){float x[100], h[101], h1[101], y_low[200], y_band[200];float df;int i,m=100,n=101,l=m+n-1;float f=70.0;float f1=10.0;float f2=80.0;FILE *fp1,*fp2,*fp3,*fp4,*fp5;fp1=fopen("INPUT1.DAT","r");for(i=0;i<=N;i++){fscanf(fp1,"%f",&x[i]);}fp4=fopen("h_low.dat","w");//低通滤波设计for(i=-50;i<=50;i++){if(i==0)h[i+50]=2*pi*f/pi;elseh[i+50]=sin(2*pi*f*i*dt)/(pi*i*dt);fprintf(fp4,"%f ",h[i+50]); //output lowpass filter }fp2=fopen("synthesisdata_lowpass.DAT","w");conv(x,m,h,n,y_low,l);for(i=50;i<l-50;i++){fprintf(fp2,"%f\n",y_low[i]); }//带通滤波器fp5=fopen("h_band.dat","w");for(i=-50;i<=50;i++){if(i==0)h1[i+50]=140;elseh1[i+50]=sin(2*pi*f2*i*dt)/(pi*i*dt)-sin(2*pi*f1*i*dt)/(pi*i*dt);fprintf(fp5,"%f\n",h1[i+50]); // output bandpass filter}fclose(fp5);conv(x,m,h1,n,y_band,l);fp3=fopen("synthesisdata_bandpass.DAT","w");for(i=50;i<l-50;i++){fprintf(fp3,"%f\n",y_band[i]);}fclose(fp1);fclose(fp2);fclose(fp3);}2. 快变滤波# include "stdio.h"# include "math.h"# include "stdlib.h"# include "fft.c"# define pi 3.1415926main(){double *xr,*xi;float *H;int i,np,nfft,k;float t,dt,df,f,z,fc1,fc2;FILE *fpar,*fp1,*fp2,*fp3;//从参数文件中获得截至频率fpar=fopen("lowpassfilter.par","r");fscanf(fpar,"%f%f",&fc1,&fc2);np=100;k=log(np)/log(2);if(np>pow(2,k))k=k+1;nfft=pow(2,k);dt=0.002;df=1.0/(nfft*dt);xr=(double*)calloc(nfft,sizeof(double));xi=(double*)calloc(nfft,sizeof(double));H=(float*)calloc(nfft,sizeof(float));// read x(n)fp1=fopen("INPUT1.DAT","r");for(i=0;i<100;i++){fscanf(fp1,"%f",&z);xr[i]=z;}fclose(fp1);//补零至128 位for(i=100;i<nfft;i++){xr[i]=0.0;}for(i=0;i<nfft;i++){xi[i]=0.0;}//transfer to frequency doaminfft(xr,xi,k,1);//generate lowpass filter(zero-phase) for(i=0;i<nfft/2;i++){f=i*df;if(f<=fc2 && f>=fc1)H[i]=1.0;else H[i]=0.0;}//滤波器对称for(i=nfft/2;i<nfft;i++){f=i*df;H[i]=H[nfft-i];}//filtering in frequency domainfor(i=0;i<nfft;i++){xr[i]=xr[i]*H[i];xi[i]=xi[i]*H[i];}fft(xr,xi,k,-1);fp2=fopen("lowpass2.dat","w");for(i=0;i<nfft;i++){fprintf(fp2,"%f\n",xr[i]);}fclose(fp2);//获取高通截至频率fpar=fopen("bandpass.par","r"); fscanf(fpar,"%f%f",&fc1,&fc2);fp1=fopen("INPUT1.DAT","r"); for(i=0;i<100;i++){fscanf(fp1,"%f",&z);xr[i]=z;}for(i=100;i<nfft;i++){xr[i]=0.0;}for(i=0;i<nfft;i++){xi[i]=0.0;}//transfer to frequency doaminfft(xr,xi,k,1);//generate lowpass filter(zero-phase) for(i=0;i<=nfft/2;i++){f=i*df;if(f<=fc2 && f>=fc1)H[i]=1.0;elseH[i]=0.0;}for(i=nfft/2+1;i<nfft;i++){f=i*df;H[i]=H[nfft-i];}//filtering in frequency domainfor(i=0;i<nfft;i++){xr[i]=xr[i]*H[i];xi[i]=xi[i]*H[i];}fft(xr,xi,k,-1);fp3=fopen("bandpass2.dat","w"); for(i=0;i<nfft;i++){fprintf(fp3,"%f\n",xr[i]);}}3. 褶积滤波与递归滤波褶积滤波# include "stdio.h"# include "math.h"# include "stdlib.h"# include "conv.c"# include "fft.c"# define PI 3.1415926main(){void conv();float x[50],h[20],y[69],hreverse[20],hzero[39],yreverse[69];float dt=0.002;int i,m,n,l,p,q;FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6;m=50;n=20;l=m+n-1;//read x(n)fp1=fopen("INPUT3.DAT","r");for(i=0;i<50;i++){fscanf(fp1,"%f",&x[i]);}fclose(fp1);//read filterfactor h(n)fp2=fopen("hn.dat","r");fp5=fopen("h_reverse.dat","w");for(i=0;i<20;i++){fscanf(fp2,"%f",&h[i]);hreverse[i]=h[19-i];fprintf(fp5,"%f\n",hreverse[i]);}fclose(fp2);fclose(fp5);conv(x,m,h,n,y,l);//非零相位褶积滤波fp3=fopen("con_filter.dat","w");for(i=0;i<l;i++){fprintf(fp3,"%f\n",y[i]);}fclose(fp3);p=n+n-1;q=m+p-1;//构造零相位滤波因子conv(h,n,hreverse,n,hzero,p);fp6=fopen("zerophasefilterfactor.dat","w");for(i=0;i<p;i++){fprintf(fp6,"%f\n",hzero[i]);}fclose(fp6);//零相位滤波conv(x,m,hzero,p,yreverse,q);fp4=fopen("convfilterreverse.dat","w");for(i=0;i<q;i++){fprintf(fp4,"%f\n",yreverse[i]);}fclose(fp4);}递归滤波#include<stdio.h>#include<math.h>#include<stdlib.h>#define np 50void main(){float *x,*a,*b,*fil1,*fil2;int i;void recur1();void recur2();FILE *fp1,*fp2,*fp3,*fp4,*fp5;x=(float*)malloc(np*sizeof(float));a=(float*)malloc(np*sizeof(float));b=(float*)malloc(np*sizeof(float));fil1=(float*)malloc(np*sizeof(float));fil2=(float*)malloc(np*sizeof(float));//输入地震数据fp1=fopen("INPUT3.DAT","r");for(i=0;i<np;i++)fscanf(fp1,"%f",x+i);fclose(fp1);//输入a 数组值fp2=fopen("a(n).txt","r");for(i=0;i<5;i++)fscanf(fp2,"%f",a+i);fclose(fp2);for(i=5;i<np;i++)a[i]=0.0;//输入b 数组值fp3=fopen("b(n).txt","r");for(i=0;i<5;i++)fscanf(fp3,"%f",b+i);fclose(fp3);for(i=5;i<np;i++)b[i]=0.0;//正向递归滤波recur1(x,a,b,fil1); fp4=fopen("正向递归结果.DAT","wb"); for(i=0;i<np;i++){fprintf(fp4,"%12.4f\n",fil1[i]);}fclose(fp4);for(i=0;i<np;i++){printf("%12.4f\n",fil1[i]);}printf("\n");//反向递归滤波recur2(fil1,a,b,fil2); fp5=fopen("反向递归结果.DAT","wb"); for(i=0;i<np;i++){fprintf(fp5,"%12.4f\n",fil2[i]);}fclose(fp5);for(i=0;i<np;i++){printf("%12.4f\n",fil2[i]);}}void recur1(float x[],float a[],float b[],float fil1[]) {int i,j,k;float y1[np],y2[np];for(i=0;i<np;i++){ y1[i]=0.0;y2[i]=0.0;for(j=0;j<=i;j++)y1[i]=y1[i]+a[j]*x[i-j];if(i==0)y2[i]=0.0;else{ for(k=1;k<=i;k++)y2[i]=y2[i]+b[k]*fil1[i-k];}fil1[i]=y1[i]-y2[i];}}void recur2(float fil1[],float a[],float b[],float fil2[]) {int i,j,k;float y3[np],y4[np];for(i=np-1;i>=0;i--){else{} y3[i]=0.0;y4[i]=0.0;for(j=0;j<=np-1-i;j++)y3[i]=y3[i]+a[j]*fil1[i+j];if(i==np-1)y4[i]=0.0;for(k=1;k<=np-1-i;k++)y4[i]=y4[i]+b[k]*fil2[i+k]; }fil2[i]=y3[i]-y4[i];}4. 设计高通滤波因子# include "stdio.h"# include "math.h"# include "stdlib.h"# include "fft.c"# define N 101# define dt 0.004# define PI 3.1415926main(){double *h,*hi;int i,k,nfft;FILE *fp1,*fp2;k=log(N)/log(2);if(N>pow(2,k))k=k+1;nfft=pow(2,k);h=(double*)malloc(nfft*sizeof(double));hi=(double*)malloc(nfft*sizeof(double));for(i=-50;i<=50;i++){if(i==0)h[i+50]=1.0/dt-60;elseh[i+50]=-sin(2*PI*30.0*i*dt)/(PI*i*dt);}for(i=100;i<128;i++){h[i]=0.0;}for(i=0;i<128;i++){hi[i]=0.0;}fp1=fopen("timedomain.dat","w");for(i=0;i<128;i++){fprintf(fp1,"%f\n",h[i]);}fclose(fp1);fft(h,hi,k,1);fp2=fopen("frequencydoamin.dat","w");for(i=0;i<128;i++){fprintf(fp2,"%f\n",sqrt(h[i]*h[i]+hi[i]*hi[i]));}fclose(fp2);printf("it is ok!\n");}5. 分析补零对振幅谱的影响1、不补零# include "stdio.h"# include "math.h"# include "dft.c"# define N 60# define PI 3.1415926# define dt 0.004main(){float x[N],xr[N],xi[N],w[N],wr[N],wi[N],z;int i,k;FILE *fp,*fp1,*fp2,*fp3;fp3=fopen("sin.dat","w");for(i=0;i<N;i++){x[i]=sin(2.0*PI*(i+1)/30);fprintf(fp3,"%f\n",x[i]);}fclose(fp3);fp=fopen("WAVE.DAT","r");for(i=0;i<N;i++){fscanf(fp,"%f",&z);w[i]=z;}fclose(fp);printf("it is ok !\n");dft(x,xr,xi,N);dft(w,wr,wi,N);fp1=fopen("frequencydomain1_60.dat","w");fp2=fopen("frequencydomain2_60.dat","w");for(i=0;i<N;i++){fprintf(fp1,"%f\n",xr[i]);fprintf(fp2,"%f\n",wr[i]);}fclose(fp1);fclose(fp2);}2、补到64 位# include "stdio.h"# include "math.h"# include "stdlib.h"# include "fft.c"# define N 60# define PI 3.1415926# define dt 0.004main(){void fft();double *x1,*xi1,*x2,*xi2;float z;int i,k,nfft;FILE *fp,*fp1,*fp2,*fp3,*fp4;k=log(N)/log(2);if(N>pow(2,k))k=k+1;nfft=pow(2,k);x1=(double*)malloc(nfft*sizeof(double));xi1=(double*)malloc(nfft*sizeof(double));x2=(double*)malloc(nfft*sizeof(double))xi2=(double*)malloc(nfft*sizeof(double));for(i=0;i<N;i++){x1[i]=sin(2*PI*(i+1)/30);}fp=fopen("WAVE.DAT","r");for(i=0;i<N;i++){fscanf(fp,"%f",&z);x2[i]=z;}for(i=0;i<N;i++){xi1[i]=0.0;xi2[i]=0.0;}//补到64 位for(i=N;i<64;i++){x1[i]=0.0;x2[i]=0.0;xi1[i]=0.0;xi2[i]=0.0;}fft(x1,xi1,6,1);fft(x2,xi2,6,1);fp1=fopen("frequencydomain1_64.dat","w");fp2=fopen("frequencydomain2_64.dat","w");for(i=0;i<nfft;i++){fprintf(fp1,"%f\n",sqrt(x1[i]*x1[i]+xi1[i]*xi1[i])*dt);fprintf(fp2,"%f\n",sqrt(x2[i]*x2[i]+xi2[i]*xi2[i])*dt);}}3、补到128 位# include "stdio.h"# include "math.h"# include "stdlib.h"# include "fft.c"# define N 60# define PI 3.1415926# define dt 0.004main(){void fft();double *x1,*xi1,*x2,*xi2;float z;int i,nfft;FILE *fp,*fp1,*fp2;nfft=128;x1=(double*)malloc(nfft*sizeof(double));xi1=(double*)malloc(nfft*sizeof(double));x2=(double*)malloc(nfft*sizeof(double));xi2=(double*)malloc(nfft*sizeof(double));for(i=0;i<N;i++){x1[i]=sin(2*PI*(i+1)/30);}fp=fopen("WAVE.DAT","r");for(i=0;i<N;i++){fscanf(fp,"%f",&z);x2[i]=z;}for(i=0;i<N;i++){xi1[i]=0.0;xi2[i]=0.0;}//补到128 位for(i=N;i<128;i++){x1[i]=0.0;x2[i]=0.0;xi1[i]=0.0;xi2[i]=0.0;}fft(x1,xi1,7,1);fft(x2,xi2,7,1);fp1=fopen("frequencydomain1_128.dat","w");fp2=fopen("frequencydomain2_128.dat","w");for(i=0;i<nfft;i++){fprintf(fp1,"%f\n",sqrt(x1[i]*x1[i]+xi1[i]*xi1[i])*dt);fprintf(fp2,"%f\n",sqrt(x2[i]*x2[i]+xi2[i]*xi2[i])*dt);}}6. 线性褶积与循环褶积# include "stdio.h"# include "math.h"# include "fft.c"# define dt 0.002# define PI 3.1415926# define L 101main(){ void conv();void cir_conv();float x[100],h[101],x1[L],h1[L],y[200],y1[100],df;int i,m,n,l,kc;FILE *fp,*fp1,*fp2;m=100;n=101;l=m+n-1;fp=fopen("INPUT1.DAT","r");for(i=0;i<100;i++){fscanf(fp,"%f",&x[i]);}fclose(fp);for(i=-50;i<=50;i++){if(i==0)h[i+50]=140.0;elseh[i+50]=sin(2*PI*70*i*dt)/(PI*i*dt);}//linear convolutionconv(x,m,h,n,y,l);fp1=fopen("linearconv.dat","w");for(i=0;i<l;i++){fprintf(fp1,"%f\n",y[i]);}//circus convolutionfp=fopen("INPUT1.DAT","r");for(i=0;i<100;i++){fscanf(fp,"%f",&x1[i]);}fclose(fp);df=1.0/(dt*100);kc=70.0/df;for(i=0;i<=50;i++){if(i>=0 && i<=kc)h1[i]=1.0;elseh1[i]=0.0;}for(i=50;i<=100;i++){h1[i]=h1[100-i];}if(L>=100){for(i=100;i<L;i++){x1[i]=0.0;h1[i]=0.0;}}cir_conv(x1,h1,y1,L);fp2=fopen("circusconv.dat","w");for(i=0;i<L;i++){fprintf(fp2,"%f\n",y1[i]);printf("%f\n",y1[i]);}fclose(fp2);}//线性褶积子程序void conv(float x[],int m,float h[],int n,float y[],int l) {int k,i;for(k=0;k<l;k++){y[k]=0.0;for(i=0;i<m;i++)if(k-i>=0&&k-i<=n-1)y[k]=y[k]+x[i]*h[k-i]*dt;}}//圆周褶积子程序void cir_conv(float x[],float h[],float y[],int n){int k,j;int temp;for(k=0;k<n/2;k++){temp=h[k];h[k]=h[n-k-1];h[n-k-1]=temp;}for(k=0;k<n;k++){temp=h[n-1];for(j=n-2;j>=0;j--)h[j+1]=h[j];h[0]=temp;y[k]=0.0;for(j=0;j<n;j++)y[k]=x[j]*h[j]*dt+y[k];}return;}7. 最小平方反滤波# include "stdio.h"# include "math.h"# include "tlvs.c"# define N 200//bn 是地震子波序列a 是反射系数系列main(){void conv();void autocorr();float bn[60],a[200],x[211],rxx[211],a_cal[270]; double t[60],b[60],d[60];int i,m,n,l;FILE *fp,*fp1,*fp2,*fp11,*fp12,*fp13;n=12;m=N;l=m+n-1;fp=fopen("INPUT8.DAT","r");for(i=0;i<200;i++){fscanf(fp,"%f",&a[i]);}fclose(fp);fp1=fopen("bn.dat","r");for(i=0;i<12;i++){fscanf(fp1,"%f",&bn[i]);}fclose(fp1);//synthetize seismic recordsconv(bn,n,a,m,x,l);fp11=fopen("synthseismicdata.dat","w");for(i=0;i<211;i++){fprintf(fp11,"%f\n",x[i]);}autocorr(x,rxx,l);fp12=fopen("autocorrdata.dat","w");for(i=0;i<l;i++){fprintf(fp12,"%f\n",rxx[i]);}for(i=0;i<60;i++){if(i==0)d[i]=1.0;elsed[i]=0.0;t[i]=rxx[i];}tlvs(t,60,d,b);//输出反子波fp13=fopen("waveletreverse.dat","w");for(i=0;i<60;i++){fprintf(fp13,"%f\n",b[i]);}conv(x,l,b,60,a_cal,l+60-1);fp2=fopen("sigma.dat","w");for(i=0;i<270;i++){fprintf(fp2,"%f\n",a_cal[i]);}}//褶积子程序void conv(float x[],int m,float h[],int n,float y[],int l) {int k,i;for(k=0;k<l;k++){y[k]=0.0;for(i=0;i<m;i++)if(k-i>=0&&k-i<=n-1)y[k]=y[k]+x[i]*h[k-i]*0.004;}}//自相关子程序void autocorr(float x[],float y[],int n){int i,j;for(i=0;i<n;i++){y[i]=0.0;for(j=i;j<n;j++)y[i]=x[j]*x[j-i]+y[i];}return;}8. 零相位转换# include "stdio.h"# include "math.h"# include "stdlib.h"# include "fft.c"# define PI 3.1415926main(){void fft();double *xr,*xi;float z,w[25];int i,nfft=32;FILE *fp,*fp1,*fp2;xr=(double*)malloc(nfft*sizeof(double));xi=(double*)malloc(nfft*sizeof(double));fp=fopen("wavelet.dat","r");for(i=0;i<25;i++){fscanf(fp,"%f",&z);xr[i]=z;}for(i=25;i<32;i++){xr[i]=0.0;}for(i=0;i<32;i++){xi[i]=0.0;}fft(xr,xi,5,1);fp1=fopen("amplitude.dat","w");for(i=0;i<32;i++){fprintf(fp1,"%f\n",sqrt(xr[i]*xr[i]+xi[i]*xi[i]));}for(i=0;i<32;i++){ xr[i]=sqrt(xr[i]*xr[i]+xi[i]*xi[i]); xi[i]=0.0;}fft(xr,xi,5,-1);fp2=fopen("changedwavelet.dat","w");for(i=0;i<32;i++){fprintf(fp2,"%f\n",xr[i]);}}10. 最小相位转换//最小相位转换# include "stdio.h"# include "math.h"# include "tlvs.c"main(){void conv();void autocorr();double temp,bo[73],ao[25],g[49],gr[49];float z;double b[25],rbb[25],d[25],y[25],c[49];int i;FILE *fp,*fp1,*fp2;fp=fopen("wavelet.dat","r");for(i=0;i<25;i++){fscanf(fp,"%f",&z);b[i]=z;//printf("%f\n",b[i]);}autocorr(b,25,b,25,rbb);for(i=0;i<25;i++){if(i==0)d[i]=1.0;elsed[i]=0.0;}//求y(t)tlvs(rbb,25,d,y);//printf("it is ok !\n");fp1=fopen("yt.dat","w");for(i=0;i<25;i++){fprintf(fp1,"%f\n",y[i]);}//求bo(0)conv(b,25,y,25,c,49);//c(t)=b(t)*g(t)temp=0.0;for(i=0;i<49;i++){temp=temp+c[i]*c[i];printf("%f\n",c[i]);}bo[0]=1.0/sqrt(temp);printf("bo(0)=%f\n",bo[0]);//求ao(t)for(i=0;i<25;i++){ao[i]=bo[0]*y[i];}conv(b,25,ao,25,g,49);//g(t)=b(t)*ao(t)//求g(-t)for(i=0;i<49;i++){gr[i]=g[48-i];}//求b o(t)=b(t)*g(-t)conv(b,25,gr,49,bo,73);fp2=fopen("minphasew.dat","w");for(i=0;i<73;i++){fprintf(fp2,"%f\n",bo[i]);}}//褶积子程序void conv(double x[],int m,double h[],int n,double y[],int l) {int k,i;for(k=0;k<l;k++){y[k]=0.0;for(i=0;i<m;i++)if(k-i>=0&&k-i<=n-1)y[k]=y[k]+x[i]*h[k-i]*0.004;}}//自相关子程序void autocorr(double x[],int m,double h[],int n,double y[] ) {int i,j;for(i=0;i<m;i++){y[i]=0.0;for(j=1;j<n;j++)if(i+j<m)y[i]=x[j]*h[j+i]+y[i];}return;}11. 静校正处理# include "stdio.h"# include "math.h"main(){void ccor();float x[10][100],y[100],rxy[10][199];float z,max;int i,j,k,tao[10];FILE *fp,*fp1,*fp2;//从文件中读取地震数据fp=fopen("seis.dat","r");for(i=0;i<10;i++){for(j=0;j<100;j++){fscanf(fp,"%f",&z);x[i][j]=z;}}fclose(fp);//求参考道for(j=0;j<100;j++){y[j]=0.0;for(i=0;i<10;i++){y[j]=y[j]+x[i][j];}y[j]=0.1*y[j];//printf("%f\n",y[j]);}//互相关求取静校正量值for(i=0;i<10;i++){ccor(x[i],100,y,100,rxy[i]);}fp1=fopen("rxy.dat","w");for(i=0;i<10;i++){for(j=0;j<199;j++){ fprintf(fp1,"%f\n",rxy[i][j]);}}fclose(fp1);//求取tao 值for(i=0;i<10;i++){max=rxy[i][0];tao[i]=0;for(j=0;j<199;j++){if(rxy[i][j]>max){max=rxy[i][j];tao[i]=j;}}tao[i]=tao[i]-99;printf("%d\n",tao[i]);}//静校正处理for(i=0;i<10;i++){if(tao[i]>=0){ for(j=0;j<100;j++){k=j+tao[i];if(k<100)x[i][j]=x[i][k];}}if(tao[i]<0){for(j=99;j>=0;j--){k=j+tao[i];if(k>=0)x[i][j]=x[i][k];}}}fp2=fopen("processeddata.DAt","w");for(i=0;i<10;i++){for(j=0;j<100;j++){ fprintf(fp2,"%f\n",x[i][j]);}}fclose(fp2);}//自相关程序void ccor(float x[],int m,float h[],int n,float y[]) {int i,j;for(i=-n+1;i<=m-1;i++){y[i+n-1]=0.0;for(j=0;j<=m-1;j++)if(j-i>=0&&j-i<=n-1)y[i+n-1]=y[i+n-1]+x[j]*h[j-i];}}部分子程序://程序名:fft.c#include "stdio.h"#include "math.h"#include "stdlib.h"#define PI 3.1415926/* sr,sx:双精度型一维数组,输入(输出)信号的实部和虚部*/ /* m0: 2 的次方数, 2**m0=nfft *//* inv=1 forward transform; inv=-1 inverse transform */void fft(double sr[],double sx[],int m0,int inv){int i,j,lm,li,k,lmx,np,lix,mm2;double t1,t2,c,s,cv,st,ct;if(m0<0)return;lmx=1;for(i=1;i<=m0;++i)lmx+=lmx; //form 2**m0cv=2.0*PI/(double)lmx;ct=cos(cv); st=-inv*sin(cv);np=lmx;mm2=m0-2;/* fft butterfly numeration */for(i=1;i<=mm2;++i){lix=lmx;lmx/=2;c=ct;s=st;for(li=0;li<np;li+=lix){j=li;k=j+lmx;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=t1;sx[k]=t2;++j;++k;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=c*t1-s*t2;sx[k]=s*t1+c*t2;}for(lm=2;lm<lmx;++lm){cv=c;c=ct*c-st*s;s=st*cv+ct*s;for(li=0;li<np;li+=lix){j=li+lm;k=lmx+j;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=c*t1-s*t2;sx[k]=s*t1+c*t2;}}cv=ct;ct=2.0*ct*ct-1.0;st=2.0*st*cv;}/* 4 points DFT */if(m0>=2)for(li=0;li<np;li+=4){j=li;k=j+2;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=t1;sx[k]=t2;++j;++k;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=inv*t2;sx[k]=-inv*t1;}/* 2 points DFT */for(li=0;li<np;li+=2){j=li;k=j+1;t1=sr[j]-sr[k];t2=sx[j]-sx[k];sr[j]+=sr[k];sx[j]+=sx[k];sr[k]=t1;sx[k]=t2;}/* sort according to bit reversal */lmx=np/2;j=0;for(i=1;i<np-1;++i){k=lmx;while(k<=j){j-=k;k/=2;}j+=k;if(i<j){t1=sr[j];sr[j]=sr[i];sr[i]=t1;t1=sx[j];sx[j]=sx[i];sx[i]=t1;}}/* if Inverse FFT, multiply 1.0/np */if(inv!=-1)return;t1=1.0/np;for(i=0;i<np;++i){sr[i]*=t1;sx[i]*=t1;}}求解tolpriz 方程//函数名:tlvs.c# include "stdio.h"# include "math.h"# include "stdlib.h"int tlvs(double t[],int n,double b[],double x[]) {int i,j,k;double a,beta,q,c,h,*y,*s;s=malloc(n*sizeof(double));y=malloc(n*sizeof(double));a=t[0];if (fabs(a)+1.0==1.0){free(s);free(y);printf("fail\n");return(-1);}y[0]=1.0;x[0]=b[0]/a;for (k=1; k<=n-1; k++){beta=0.0; q=0.0;for (j=0; j<=k-1; j++){beta=beta+y[j]*t[j+1];q=q+x[j]*t[k-j];}if (fabs(a)+1.0==1.0){free(s);free(y);printf("fail\n");return(-1);}c=-beta/a; s[0]=c*y[k-1]; y[k]=y[k-1];if (k!=1)for (i=1; i<=k-1; i++)s[i]=y[i-1]+c*y[k-i-1];a=a+c*beta;if (fabs(a)+1.0==1.0){free(s);free(y);printf("fail\n");return(-1);}h=(b[k]-q)/a;for (i=0; i<=k-1; i++){x[i]=x[i]+h*s[i];y[i]=s[i];}x[k]=h*y[k];}free(s); free(y);return(1)}。