地震记录数值模拟的褶积模型法Word版
地震第3章 反褶积

(3-1)
e(t ) 为地层脉冲响应,为震源是单位脉冲 (t ) 时零炮检距自
激自收的地震记录。
(3一1)式可视为一个滤波过程,如图3-1所示。
图3-1 褶积滤波过程 这个滤波过程的输入为地震子波。w(t ) 滤波器的滤波因子为地层 脉冲响应 e(t ) ,输出为地震道记录 x(t ) 。 或者输入为地层脉冲响应 e(t ) ,滤波器滤波因子为子波 w(t ) , 输出为地震道记录城 x(t ) 。
w
x(t )
w( )r (t )
0
(3-4)
实际的地震记录城 x(t ) 除了(3一4)式所表示的一系列反射波 S (t ) 而外, 还存在着干扰波 ,因此,地震记录双 的一般模型可以写为 x(t ) n(t )
x(t ) S (t ) n(t ) w( )r (t ) n(t )
式中。
—震源脉冲值,为一常数; r (t ) —反射界面的反射系数。 但是,由于地层介质具有滤波作用,这种大地的滤波作用相当 于一个滤波器。因此,由震源发出的尖脉冲经过大地滤波器的滤波 作用后,变成一个具有一定时间延续的波形 w(t ) ,通常叫作地震 子波(图3一6)。这时,地震记录是许多反射波叠加的结果,即地震 记录 x(t ) 是地震子波 w(t ) 与反射系数 r (t ) 的褶积
1.直接观测法 这种方法是用专门布置在震源附近的检波器直接记录地震子波 w(t ), 此方法只适用于海上地震勘探。 在某些地区的海上地震勘探中,在地震记录上海底反射波到达之前曾 记录到一个地震波。经过分析知道这是由于海水含盐量有分层性所形成的。 由于海水的含盐量有分层性使海水明显地分成上下两层。下层的含盐量较 上层含盐量高,形成了一个较为清楚的界面。由震源出发的地震波到达这 个界面引起反射返回到海面下的检波器,被记录下来。由于这个波没有与 其他波干涉,所以可以作为地震子波 。使用这样求取的地震子波进 w(t ) 行反褶积,得到了良好的效果。
基于褶积模型的动校正及其实现方法

1 引言
自从 Buchholtz 首次揭示常规 NMO 校正的拉伸 效应 以及 Dunkin 等对其进行研究[ 2 ] 以来 ,致力于 消除拉伸效应的研究一直十分活跃 。Rupert 等提出 了称作 BMS ( block2move2sum 分块移动合并) 的校正 方法[ 3 ] ,该方法根据同相轴的分布交错划分一系列数 据块 ,对不同的块实行静态平移 ,然后对平移后的块 再进行合并 ; 近年来 Brouwer 还对 BMS 法做了进一 步的研究 ,使其有了新的发展[ 4 ] 。Bazelaire 提出了双 曲线平移 ( shifted hyperbolae) 法[ 5 ] , 即使用双曲线的 焦点时间 tp 和替代速度 vnmo 。特别值得关注的是 Perroud 等提出无拉伸动校正 ( Nonstretch NMO) 方 法[ 6 ] ,即从调整速度参数入手 ,实现接近传统动校正 方式的无拉伸动校正处理。 以上研究都是基于传统的地震记录动校正理 论 ,针对其中所固有的动校拉伸效应采取各种相应 辅助手段将其消除 。为了消除实际的和理论上固有 的动校拉伸畸变效应 , 本文从重新审视动校正的物 理意义开始 ,从数学上给出基于褶积模型的真动校 正概念 ,提出采用空间 — 时间 ( 滤波 ) 叠加法实现向 真动校正叠加的趋近 。
为空间 — 时间叠加道 , 其计算方法为空间 — 时间叠 加法 。定义
N d ( t) = f (t ∑∑∑
x i j ≠i
ti ) ×
×s ( t - t j ) R x ( t j + ( m x ( t i ) - t i ) ) 为本算法的衍生噪声 。式中 f ( t) 为子波系数 , 是人 为给定的 。我们把 S x ( t + ( m x ( t i ) - t i ) ) 称为空间 — 时间叠加道的 x , t i 分量 , 而当 t i 一定时的所有 x , t i 分量称为 t i 分量集 。 当 f ( t) ≡ 1 时 ,
地震记录

地震子波:
震源产生的信号传播一段时间后,波形
趋于稳定,我们称这时的地震波为地震子波。 爆炸时产生的尖脉冲,在爆炸点附近的 介质中以冲击波的形式传播,当传播到一的 距离后,波形逐渐稳定,我们称这时的地震 波为地震子波。
地震波在传播过程中,其振幅会因各 种原因而衰减,但波形的变化是很小的, 在一定的条件下,可以看成不变。 地震子波在向下传播的过程中,遇到 波阻抗界面会发生反射和透射,最后,地
地震记录的褶积模型
这就是地震记录面貌形成的过程。
同时也说明了,地震记录上的波组与地下岩层
之间既有联系又有差别的关系。 上述地震记录面貌形成的物理过程可概括成如 下数学公式: X(t)=s(t)*R(t) 褶积运算 X(t)为人工合成地震记录;
S(t)为地震子波;
R(t)是各个地层界面的反射系数随界面双程反射时
间t的变化。由声波测井资料获得
右图为野外地 震记录和合成 地震记录的比 较。由此可见, 地震记录的褶 积模型理论是 基S点接收到的来自R1,R2,R3界面的地震子波,相互 迭加的结果,①+②+③的复波。
它已分不出哪是R1上的波形,哪是R2上的波 形,哪是R3上的波形。
这说明: 地震记录上看到的一个反射波组,并
不是简单的等于一个反射波,即:并不是来自一个
界面上的反射波,而是来自一组靠得很近的界面的
震子波从地下各个反射面反射回来。
这些反射回来的子波在波形上,严格讲是有 差别的,近似地可以认为一样,并且这些反射子 波在振幅上有大有小(主要决定于反射界面的反
射系数),极性有正有负(决定于子波反射系数
的正负),到达时间有先有后(决定于界面的深
度和波速)。
反射系数:
i1 i1 i Z i1 Z i Ki i1 i1 i i Z i1 Z i
地震资料综合解释资料

名词解释:1.褶积模型:地震记录的褶积模型是当今地震勘探中三大环节的主要理论基础之一,其应用十分广泛,主要表现在三大方面:正演、反演和子波处理。
层状介质的一次反射波通常用线性褶积模型表示 ,即:式中:w(t)为系统子波;r(t)为反射系数函数,符号“*”表示褶积运算。
2.分辨率:分辨能力是指区分两个靠近物体的能力。
度量分辨能力强弱的两种表示:一是距离表示,分辨的垂向距离或横向范围越小,则分辨能力越强;二是时间表示,在地震时间剖面上,相邻地层时间间隔 dt 越小,则分辨能力越强。
时间间隔 dt 的倒数为分辨率。
垂向分辨率是指沿地层垂直方向所能分辨的最薄地层厚度。
横向分辨率是指横向上所能分辨的最小地质体宽度。
3.薄层解释原理:Dt<T/4 或 Dh 在 l/8 与 l/4 之间,合成波形的振幅与 Dt 近似成正比,可用合成波形的振幅信息来估算薄层厚度,这一工作称之为薄层解释原理。
4.时间振幅解释图版:我们把层间旅行时差Δ t 与实际地层的时间厚度Δ T 的关系曲线以及薄层顶底反射的合成波形的相对振幅Δ A 与实际地层的时间厚度Δ T 的关系曲线统称为时间-振幅解释图版。
5.协调厚度:在相对振幅ΔA 与实际地层时间厚度ΔT 的关系曲线上,ΔA 最大值所对应的地层厚度称为调谐厚度。
协调脉冲。
6.波长延拓:用数学的方法把波场从一个高度换算到另一个高度,习惯上称之为波场延拓。
7.同相轴:各接收点属于同一相位振动的连线。
8.波的对比:根据反射波的一些特征来识别和追踪同一反射界面反射波的工作,方法:相位对比、波组或波系对比、沿测网的闭合圈对比、研究异常波、剖面间的对比。
9.剖面闭合:相交测线的交点处同一反射波的 t0 时间应相等,是检验波的对比追踪是否正确的重要方法。
10.广义标定:是指利用测井、钻井资料所揭示的地质含义 (岩性、层厚、含流体性质等) 和地震属性参数(如振幅、波形、频谱、速度等)之间的对比关系,判别或预测远离或缺少井控制区域内地震反射信息 (如同相轴、地震相、各种属性参数等)的地质含义。
地震资料处理中串联组合反褶积方法及效果分析

地震资料处理中串联组合反褶积方法及效果分析作者:王博睿张雪纯来源:《中国科技纵横》2018年第19期摘要:地震资料处理过程中,反褶积是一种常用的提高地震资料分辨率的处理方法。
但由于提高分辨率处理是一个多次试验和逐步提高的过程,因此经常采用串联组合反褶积的处理方式。
由于各种反褶积都有一定的假设前提和各自的适用范围,所以必须根据数据的特点和不同反褶积的使用前提,经过详细而充分的试验以便选取最合理的参数,才能最终得到较好的处理效果。
采用哪种反褶积,怎样组合,才能达到搭配合理、纵向分辨率高的处理结果,常常需要通过细致的多种组合试验来确定。
本文叙述了实际资料处理中的反褶积串联组合的基本流程和实际资料的处理效果,并对一些反褶积方法组合方式及参数选择应注意的问题进行了探讨。
关键词:反褶积;分辨率;信噪比中图分类号:P631.4 文献标识码:A 文章编号:1671-2064(2018)19-0185-031 引言反褶积是通过压缩地震子波来提高地震记录纵向分辨率的主要方法,是处理流程中不可或缺的一部分。
反褶积前应对数据做好野外静校正、折射波静校正、尽可能地压制各种干扰、做好振幅补偿。
比较常用的反褶积方法有预测反褶积、俞氏子波反褶积、两步法统计子波反褶积、地表一致性反褶积、逐点反褶积等。
选用地表一致性反褶积、预测反褶积和统计子波反褶积作为此次组合试验的三种反褶积方法,试验了各种反褶积方法的参数选择以及它们不同串联组合方式下的效果,对结果进行频谱分析与自相关分析并结合剖面上的对比,最后选出频带宽、纵向分辨率高等综合效果好的串联组合方式,并在中国东部某地的实际资料处理中得到了比较好的效果,从而证明了本次处理采用的串联组合反褶积方法的正确性和实用性。
2 反褶积的原理2.1 地表一致性反褶积地表一致性反褶积主要用于消除由于激发、接收等因素引起的地震记录间子波的差异,采用自回归谱分析方法,以对数方式计算每个输入道的对数功率谱[1]:(1)自回归过程的功率谱为:(2)其中:(3)以地表一致性方式分解对数功率谱成为震源、检波点、炮检距中点和偏移距分量。
地震资料数字处理-3

rdx 的前 N 项;X(N)为 T(N)为托布里兹矩阵元素,即 rxx 的前 N 项;B(N)为方程右端项,即
所求的解,即滤波因子 h(t); 对于自相关和互相关函数可以用以下的子程序来计算 SUBROUTINE COR(X,M,H,N,Y) REAL X(M),H(N),Y(M) X(M)和 H(N)为输入,Y(M)为它们的相关值。若 H(N)=X(M) ,得到的 Y(M)是自相 关。相关的计算公式如下:
图3-2 反射系数与地震记录剖面的比较 上为 反射系数剖面,下为 地震剖面
§ 3.1 反褶积的概念
2, 实际模型 实际地震记录 x(t)由有效波 s(t)和干扰波 n(t)组成。
x(t ) s(t ) n(t )
a,地震子波 b(t)
……………...
(3-1-2)
b ( t ) o( t ) * g ( t ) * ( t ) * d ( t ) * i ( t ) o( t ) * f g ( t ) * f d ( t )
t
由此得出
h( ) x(t ) x(t s ) d (t ) x(t s )
t t
( s 0,1, m)
…..
(3-2-2)
令
rxx ( s) x(t ) x(t s)
t
rxx 就是 x(t)的自相关…….
(3-2-3) (3-2-4)
y (t ) a (t ) * b(t ) a ( )b(t ) ( y (0), y (1),......, y ( M )) ,
M mn
d (t ) (d (0), d (1),......, d ( M ))
e(t ) d (t ) y(t )
地震模型Word版

地震预测模型摘要地震预报是当代自然科学领域里一个直接关系到人民生命安全和社会经济的发展,是科学难度很大的前沿课题。
近几十年来,人民的努力虽然取得了丰硕的成果,预报的实践有些有限的成功。
在地震发生前有很多前兆性指标,如磁场强度、氡值、电压、雨量、水温等,这些指标都从不同的侧面反映了地震活动的各项特征。
在正常情况下,也常常有些指标有明显的异常,而令一些指标并不出现异常。
这些都给实际的前兆指标数据特征分析以及地震预报工作带来了困难。
本文针对地震影响因素多,数据多,联系弱的特点,分别建立了针对各个任务的数学模型,首先,处理初始数据时选取日平均变化来消除一天中数据的随机因素的影响,然后更具这些数据建立了地震发生前后各个指标的不同程度度量模型解决了地震对指标的敏感度的度量问题,进而找出了EW,气氡,水位,电压,雨量这些衡量地震的主要因素,并分析出了这些指标的重要程度,在解决找统计量时,利用上次任务所得的主要因素的组合来衡量一次地震的地震前兆指标数量特征,并得出了电压达到26.8754,气氡达到17.685左右时就有地震发生的可能性,考虑全面周到,效果较好,在模型改进中所提出的判别分析法,科学有效,对数据利用率较高。
而除此之外的其他几个指标与震级有关,这样就这些指标的分析在任务三中分别建立了地磁前兆异常的动态从属函数模型以及非线性综合模型,进而找出了地震级数与这些因素之间的非线性关系,对于上述数学方法在地震预测预报中的应用没有达到预期效果,须进一步研究改进。
综合这些工作,我们应用易语言编写了分析地震数据的平台,通过分析地震数据生成了报告。
一、问题重述地震是地壳快速释放能量过程中造成的振动。
虽然预测地震是世界性难题,但迄今科学界普遍认为,有可能反映地震前兆特征的指标可能不少于10个。
已经有专业仪器在多个定点实时按秒记录这些指标的数据,期望通过对记录数据的分析研究找到地震的前兆特征。
现已采集到某地2005年1月1日至2010年6月30日按小时观测的10多个指标的数据,和该地区该时期内已发生地震的时刻、经纬度、震级及震源深度的数据。
地震记录的褶积模型

地震记录的褶积模型我不是啥研究地震的大专家,但这地震记录的褶积模型啊,我还真琢磨过一阵儿。
褶积这东西,就像是把好多乱麻拧巴到一块儿。
我就想象那地震波啊,像一群调皮捣蛋的小鬼,到处乱窜。
我有个朋友,是搞这个相关研究的。
有一回我去找他,他那屋子里啊,全是些图纸和仪器。
他就指着那些弯弯曲曲像蛇一样的线条给我讲这褶积模型。
他眼睛瞪得老大,像铜铃似的,特别认真,“你看啊,这每一个起伏,就像是地震波和地下那些个啥结构相互作用的结果。
”他说这话的时候,手还在空中比划着,就好像他能抓住那些地震波似的。
我看着那些复杂的图,就觉得头疼。
我说:“你这图,看着比我老家那盘根错节的老树根还复杂呢。
”他就笑了,露出一口大白牙,说:“你不懂,这可有意思了。
你就想啊,这地震波像水一样,碰到不同的东西就会有不同的反应,这褶积模型就是把这些反应都给记录下来的一种方式。
”我听他这么一说,好像有点明白了。
我就想啊,这地下的世界得多神秘啊。
那些地层就像一个个不同性格的人,有的软得像棉花糖,有的硬得像石头块。
地震波这个小调皮鬼跑过去的时候,就像在跟这些地层玩游戏。
软的地层呢,可能就让地震波变得温柔一点,那记录出来的褶积模型的线条可能就比较平缓;硬的地层就不一样了,会把地震波撞得晕头转向,那褶积模型的线条就会像突然被扯了一下的麻绳,一下子就变得陡峭起来。
我就跟我朋友说:“你这研究就像在给地震波和地层的游戏做裁判呢,把它们的一举一动都记录得清清楚楚。
”我朋友听了直点头,又开始滔滔不绝地跟我讲起那些我听不太懂的专业术语。
不过我也不觉得烦,就觉得他在做一件特别了不起的事儿。
这地震记录的褶积模型啊,就像是一把神秘的钥匙,能打开地下世界那扇神秘的大门呢。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生实验报告实验课程数值模型模拟学院名称地球物理学院专业名称勘测技术与工程学生姓名学生学号指导教师熊高君实验地点5417实验成绩2015年5月成都理工大学《地震数值模拟》实验报告实验报告一、实验题目:地震记录数值模拟的褶积模型法二、实验目的:掌握褶积模型基本理论、实现方法与程序编制,由褶积模型初步分析地震信号的分辨率问题。
三、原理公式1、褶积原理地震勘探的震源往往是带宽很宽的脉冲,在地下传播、反射、绕射到测线,传播经过中高频衰减,能量被吸收。
吸收过程可以看成滤波的过程,滤波可以用褶积完成。
在滤波中,反射系数与震源强弱关联,吸收作用与子波关联。
最简单的地震记录数值模拟,可以看成反射系数与子波的褶积。
通常,反射系数是脉冲,子波取雷克子波。
(1)雷克子波:wave(t)=cos(2ft)*(2)反射系数:(3)褶积公式:数值模拟地震记录trace(t): trace(t) =rflct(t)*wave(t);反射系数的参数由 z 变成了 t,怎么实现?在简单水平层介质,分垂直和非垂直入射两种实现,分别如图 1 和图 2 所示。
图1 图21)垂直入射:t=2h/v;2)非垂直入射:t=2、褶积方法(1)离散化(数值化)计算机数值模拟要求首先必须针对连续信号离散化处理。
反射系数在空间模型中存在,不同深度反射系数不同,是深度的函数。
子波是在时间记录上一延续定时间的信号,是时间的概念。
在离散化时,通过深度采样完成反射系数的离散化,通过时间采样完成子波的离散化。
如果记录是 Trace(t),则记录是时间的函数,以时间采样离散化。
时间采样间距以Δt 表示,深度采样间距以Δz 表示。
在做多道的数值模拟时,还有横向Δx 的概念,横向采样间隔以Δx 表示。
离散化的实现:t=It×Δt;x=Ix×Δx;z=Iz×Δz;或:It=t/Δt; Ix=x/Δx; Iz=z/Δz(2)离散序列的褶积trace(It)=四、实验内容1、垂直入射地震记录数值模拟的褶积模型;2、非垂直入射地震记录数值模拟的褶积模型。
五、方法路线1、根据垂直入射褶积模型理论算法,填充程序(附后)的下划线部分,使程序完整,调试程序,算出结果,用“Fimage”显示软件显示褶积结果;2、根据非零偏移距算法,编制非零偏移距褶积模型程序,算出结果,用“Fimage”显示软件显示褶积结果。
(参考垂直入射褶积模型理论算法和程序,子波与反射层不变);3、变换子波的主频:fm(10hz到300hz范围),重复1和2;4、变换子波的长度:Nw(80ms到160ms范围),重复1和2;5、改变反射层深度:h(800m到1600m范围),重复1和2;6、改变介质速度:v(2000m/s到7000m/s 范围),重复1和2。
六、实验结果1、结果显示1)垂直入射图3—1 Nw=32,h=1000,v=3000,fm=100地震记录数值模拟的褶积模型(左)和子波(右)图3—2 Nw=32,h=1000,v=3000,fm=200地震记录数值模拟的褶积模型(左)和子波(右)图3—3 Nw=32,h=1000,v=3000,fm=300地震记录数值模拟的褶积模型(左)和子波(右)图3—4 h=1000,v=3000,fm=25,Nw=20地震记录数值模拟的褶积模型(左)和子波(右)图3—5 h=1000,v=3000,fm=25,Nw=30地震记录数值模拟的褶积模型(左)和子波(右)图3—6 h=1000,v=3000,fm=25,Nw=40地震记录数值模拟的褶积模型(左)和子波(右)图3—7 Nw=32,v=3000,fm=25,h=1000地震记录数值模拟的褶积模型图3—8 Nw=32,v=3000,fm=25,h=1200地震记录数值模拟的褶积模型图3—9 Nw=32,v=3000,fm=25,h=1400地震记录数值模拟的褶积模型图3—10 Nw=32, h=1000,fm=25,v=2000地震记录数值模拟的褶积模型图3—11 Nw=32, h=1000,fm=25,v=4000地震记录数值模拟的褶积模型图3—12 Nw=32, h=1000,fm=25,v=6000地震记录数值模拟的褶积模型2)非垂直入射图4—1 Nw=32,h=1000,v=3000,fm=100地震记录数值模拟的褶积模型(左)和子波(右)图4—2 Nw=32,h=1000,v=3000,fm=200地震记录数值模拟的褶积模型(左)和子波(右)图4—3 Nw=32,h=1000,v=3000,fm=300地震记录数值模拟的褶积模型(左)和子波(右)图4—4 h=1000,v=3000,fm=25,Nw=20地震记录数值模拟的褶积模型(左)和子波(右)图4—5 h=1000,v=3000,fm=25,Nw=30地震记录数值模拟的褶积模型(左)和子波(右)图4—6 h=1000,v=3000,fm=25,Nw=40地震记录数值模拟的褶积模型(左)和子波(右)图4—7 Nw=32,v=3000,fm=25,h=1000地震记录数值模拟的褶积模型图4—8 Nw=32,v=3000,fm=25,h=1200地震记录数值模拟的褶积模型图4—9 Nw=32,v=3000,fm=25,h=1400地震记录数值模拟的褶积模型图4—10 Nw=32, h=1000,fm=25,v=2000地震记录数值模拟的褶积模型图4—11 Nw=32, h=1000,fm=25,v=4000地震记录数值模拟的褶积模型图4—12 Nw=32, h=1000,fm=25,v=6000地震记录数值模拟的褶积模型子波振幅谱:图5—1 fm=100的子波振幅谱图5—2 fm=100的子波振幅谱2、对比分析a)由图3—1、图3—2、图3—3(或图4—1、图4—2、图4—3)可知,当子波长度(Nw=32)、深度(h=1000)、速度(v=3000)不变,子波频率变化时,褶积模型不变,且均在0.5到1s之间;由图3—4、图3—5、图3—6可知,当深度(h=1000)、速度(v=3000)、子波频率(fm=25)不变, 子波长度变化,且垂直入射时,褶积模型为直线模型,是因为垂直入射时,时间与深度为线性关系;b)由图4—4、图4—5、图4—6可知,当深度(h=1000)、速度(v=3000)、子波频率(fm=25)不变, 子波长度变化,且非垂直入射时,褶积模型前半部分为双曲线模型,后半部分为直线模型,是由于计算的褶积结果的实际长度小于所取的长度,计算机赋的随机数所致,所以,非垂直入射时的褶积模型只有图件上显示的前半部分的双曲线,是由于非垂直入射时,时间与深度为双曲线关系;c)由图3—7、图3—8、图3—9,当子波长度(Nw=32)、速度(v=3000)、子波频率(fm=25)不变,深度变大时,垂直入射时,图件上显示的褶积模型的位置逐渐向下移,即地震波的旅行路程变大,旅行时变长;d)由图4—7、图4—8、图4—9可知,当子波长度(Nw=32)、速度(v=3000)、子波频率(fm=25)不变,深度变大时,非垂直入射时,图件上显示的褶积模型的位置不变,这是由于非垂直入射时,相当于地下有一半圆形界面,在圆心处自激自收;e)由图3—10、图3—11、图3—12(或图4—10、图4—11、图4—12)可知,当子波长度(Nw=32)、深度(h=1000)、子波频率(fm=25)不变,速度变大时,图件上显示的褶积模型的位置逐渐向上移,这是由于随着速度变大,地震波的旅行时变小;f)由图5—1与图5—2可知,当子波频率变化时,其振幅谱不变。
七、讨论建议1、实验收获通过此次试验,初步掌握了褶积模型基本理论、实现方法与程序编制,由褶积模型初步分析地震信号的分辨率问题,掌握了褶积模型与子波主频、子波长度、界面深度、介质中地震波速度的关系。
2、存在问题对褶积模型的理论实现过程不是十分清楚,对结果的物理含义理解不够深入。
3、其他问题由于不同的计算机,计算精度不一样,计算得到的数据结果可能会有部分差异,但总体趋势不变。
4、心得体会在此次试验中,应特别注意褶积模型的理论实现过程的理解,以及程序调试时,要特别仔细地去检查每一个错误,每修改一处错误,就重新运行一次程序。
附程序代码://=================1. 预处理部分==============//#include<math.h>#include<stdio.h>#include<string.h>float Cnltn(float,float);float Rflct(float,float,float);float Wave(float,float);#define Nx 128#define Nt 256#define Nw 32#define PI 3.1415926//==================2. 主程序波分==============//void main(){float dt=0.004,dx=20,fm=25,h=1000,v=3000;int iflag_Co,iflag_Re,iflag_Wv;if(iflag_Wv=Wave(fm,dt)!=1)printf("Wave is error");if(iflag_Re=Rflct(dt,h,v)!=1)printf("Reflection is error");if(iflag_Co=Cnltn(dt,dx)!=1)printf("Convosion is error");}// =================3.函数实现部分===============//// ==============3.1 Wave Formaing function=============// float Wave(float fm,float dt){FILE *fpw;int It;float Wa[Nw],t;if((fpw=fopen("wave.dat","wb"))==NULL)printf("Connot open file ""wave""");for(It=0;It<Nw;It++){t=It*dt;Wa[It]=cos(2*PI*fm*t)*exp(-2*PI*PI*fm*fm*t);//形成子波fwrite(&Wa[It],sizeof(Wa[It]),1,fpw);}fclose(fpw);return(1);}// ============3.2 Reflect Formaing function==============// float Rflct(float dt,float h,float v){FILE *fpr;int It,Ix,J,Ltdpth;float t,dx=20,x;float Re[Nt];printf("请输入J:\n");scanf("%d",&J);if((fpr=fopen("Reflect.dat","wb"))==NULL)printf("Connot open file ""Reflect""");for(Ix=0;Ix<Nx;Ix++){for(It=0;It<Nt;It++){Re[It]=0.;}if(J==1)t=2*h/v;//垂直入射反射界面由深度转换为自激自收时间if(J==2){x=Ix*dx;t=2*sqrt(h*h+x*x)/v;//非垂直入射反射界面由深度转换为自激自收时间}if((J!=1)&&(J!=2))printf("输入错误\n");Ltdpth=(int)(t/dt);Re[Ltdpth]=1;for(It=0;It<Nt;It++){fwrite(&Re[It],sizeof(Re[It]),1,fpr);}}fclose(fpr);return(1);}// =============3.3 Convolution function=============//float Cnltn(float dt,float dx){FILE *fpc,*fpw,*fpr;int It,Ix,Itao;float Wa1[Nw],Wa[Nw],Re[Nt+Nw+Nw],Re1[Nt],t; float Con[Nt+Nw];if((fpc=fopen("Convosion.dat","wb"))==NULL) printf("Connot open file ""Convosion"""); if((fpw =fopen("wave.dat","rb"))==NULL)printf("Connot open file ""wave""");if((fpr =fopen("Reflect.dat","rb"))==NULL) printf("Connot open file ""Reflect""");for(Ix=1;Ix<2;Ix++){for(It=0;It<Nw;It++){fread(&Wa1[It],sizeof(Wa1[It]),1,fpw);}for(It=0;It<Nw;It++)Wa[It]=Wa1[Nw-It-1];//褶积前子波准备}fclose(fpw);for(Ix=0;Ix<Nx;Ix++){for(It=0;It<Nt;It++){fread(&Re1[It],sizeof(&Re1[It]),1,fpr);}for(It=0;It<Nt+2*Nw;It++){Re[It]=0;}for(It=0;It<Nt;It++){Re[It+Nw]=Re1[It];//反射系数准备}for(It=0;It<Nt+Nw;It++){Con[It]=0;t=0;for(Itao=0;Itao<Nw;Itao++){t+=Re[It+Itao]*Wa[Itao];//褶积运算}Con[It]=t;}for(It=Nw/2;It<Nt+Nw/2;It++){fwrite(&Con[It],sizeof(Con[It]),1,fpc);}}fclose(fpw);fclose(fpr);fclose(fpc);return(1);}友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览!。