没有合适的资源?快使用搜索试试~ 我知道了~
油气勘探方法程序设计课程设计(论文)-最小平方反滤波.docx
0 下载量 120 浏览量
2023-07-09
07:58:52
上传
评论
收藏 843KB DOCX 举报
温馨提示
试读
23页
油气勘探方法程序设计课程设计(论文)-最小平方反滤波.docx
资源推荐
资源详情
资源评论
油气勘探方法程序设计课程设计(论文)
设 计 ( 论 文 ) 题 目 最 小 平 方 反 滤 波
学 院 名 称 地 球 物 理 学 院
专 业 名 称 勘 查 技 术 与 工 程 ( 石 油 物 探 )
学 生 姓 名
学 生 学 号
任 课 教 师 田 仁 飞
设 计 ( 论 文 ) 成 绩
教务处 制
2015 年 7 月 1 日
1
最 小 平 方 反 滤 波
一、方法原理
由地震波的传播理论可知,在粘弹性介质中地震波是以地震子波的形式在地下传
播,地面接收到的反射波地震记录是地层反射系数与地震子波的褶积,因此,地层相
当于一个滤波器,是反射系数序列变成了由子波组成的地震记录,降低了地震勘探的
纵向分辨率。反滤波的目的就是要设计一个反滤波器,来对地震记录滤波,消除地层
滤波的作用,提高地震记录的纵向分辨率。
最小平方反滤波的基本思想在于设计一个滤波算子,用它把已知的输入信号转换
为与给定的期望输出信号在最小平方误差的意义下是最佳输出。
1)用最小平方法求反滤波因子
对输入子波 b(t)反滤波后的期望输出为 d(t),实际输出为 y(t),按最小平方原理,使
二者的误差平方和 Q 为最小时求得的反滤波因子称为最小平方反滤波因子,用它对地
震记录 x(t)进行的反滤波为最小平方反滤波。
设 输 入 离 散 信 号 为 地 震 子 波 b(n)={b(1),b(2),
…
,b(m)}, 待 求 的 反 滤 波 因 子
a(n)={a(0),a(1),a(2), …,a(m)}, a(t)的起始时间为 0,
(
m+1
)
为 a(t)的延续长度,b(n)与 a(n)
的褶积为实际输出 y(n),即
𝑦
(
𝑛
)
=
𝑎
(
𝑛
)
∗
𝑏
(
𝑛
)
=
∑
𝑚
𝜏
=
0
𝑎
(
𝜏
)
𝑏
(
𝑛
―
𝜏
)
(
1
)
实际输出与期望输出的误差平方和为
𝑄
=
𝑚
𝑛
=
0
[𝑦
(
𝑛
)
―
𝑑(𝑛)]
2
=
∑
𝑚
𝑛
=
0
[
∑
𝑚
τ
=
0
𝑎
(
τ
)
𝑏
(
𝑛
―
τ
)
―
𝑑(𝑛)]
2
(
2
)
2
要使 Q 为最小,数学上就是求 Q 的极值问题,即求满足
∂𝑄
∂𝑎(𝑙)
=
0
(
𝑙
=
0,1,
…
,𝑚
)
(
3
)
的滤波因子 a(t)。
即满足方程
∑
𝑚
τ
=
0
𝑎
(
τ
)
𝑟
𝑏𝑏
(
𝑙
―
τ
)
=
𝑟
𝑏𝑑
(
𝑙
)
(
𝑙
=
0,1,
…
,𝑚
)
(
4
)
其 中
𝑟
𝑏𝑏
(
𝑙
―
τ
)
=
∑
𝑚
𝑛
=
0
𝑏
(
𝑛
―
τ
)
𝑏(𝑛
―
𝑙)
为 地 震 子 波 的 自 相 关 函 数 ,
𝑟
𝑏𝑑
(
𝑙
)
=
∑
𝑚
𝑛
=
0
𝑑(𝑛)𝑏(𝑛
―
𝑙)
,写成矩阵形式
𝑟
𝑏𝑏
(0)
𝑟
𝑏𝑏
(1)
⋮
𝑟
𝑏𝑏
(𝑚)
𝑟
𝑏𝑏
(1)
…
𝑟
𝑏𝑏
(𝑚)
𝑟
𝑏𝑏
(0)
…
𝑟
𝑏𝑏
(𝑚
―
1)
⋮
…
⋮
𝑟
𝑏𝑏
(𝑚
―
1)
…
𝑟
𝑏𝑏
(0)
𝑎
0
𝑎
1
⋮
𝑎
𝑚
=
𝑎
𝑑𝑏
(
0
)
𝑎
𝑑𝑏
(
1
)
⋮
𝑎
𝑑𝑏
(
𝑚
)
(
5
)
上式系数矩阵称为托布利兹方程。
当期望输出是单位脉冲
δ
𝑡
时,即
𝑑
𝑡
=
δ
𝑡
=
1,𝑡
=
0
0,𝑡
≠
0
(
6
)
则
𝑟
𝑏𝑑
(
𝑙
)
=
𝑏
―
𝑙
(
7
)
由于
b(t)
是地震子波,
b(t)=0
,当
t<0
时,上述矩阵可写成:
𝑟
𝑏𝑏
(0)
𝑟
𝑏𝑏
(1)
⋮
𝑟
𝑏𝑏
(𝑚)
𝑟
𝑏𝑏
(1)
…
𝑟
𝑏𝑏
(𝑚)
𝑟
𝑏𝑏
(0)
…
𝑟
𝑏𝑏
(𝑚
―
1)
⋮
…
⋮
𝑟
𝑏𝑏
(𝑚
―
1)
…
𝑟
𝑏𝑏
(0)
𝑎
0
𝑎
1
⋮
𝑎
𝑚
=
𝑏
0
0
⋮
0
=
1
0
⋮
0
(
8
)
用地震记录自相关系数
𝑟
𝑥𝑥
(
𝜏
)
代替
𝑦
𝑏𝑏
(
𝜏
)
2)已知地震记录
x
(
t
)
x(t)=b(t)* ζ(t)
(9)
3
其中
x(t)
为地震记录,
ζ(t)
是反射系数。根据自相关函数的性质,可证明:地震记
录自相关
𝑟
𝑥𝑥
(𝑛)
是地震子波自相关
𝑟
𝑏𝑏
(𝑛)
和反射系数自相关
𝑟
𝜁𝜁
(𝑛)
的褶积,即:
𝑟
𝑥𝑥
(
𝑛
)
=
𝑟
𝑏𝑏
(
𝑛
)
∗
𝑟
𝜁𝜁
(
𝑛
)
(
10
)
假定反射系数是随机白噪音,则
𝑟
𝜁𝜁
(
𝑛
)
=
𝑁
0
,𝑛
=
0
0,𝑛
≠
0
(
11
)
故可得:
𝑟
𝑥𝑥
(
𝑛
)
=
∑
+
∞
𝑡
=
0
𝑟
𝑏𝑏
(
𝑡
)
𝑟
𝜁𝜁
(𝑛
―
𝑡)
=
𝑁
0
𝑟
𝑏𝑏
(
𝑛
)
(
12
)
故得到
𝑟
𝑥𝑥
(1)
…
𝑟
𝑥𝑥
(𝑚)
𝑟
𝑥𝑥
(0)
…
𝑟
𝑥𝑥
(𝑚
―
1)
⋮
…
⋮
𝑟
𝑥𝑥
(𝑚
―
1)
…
𝑟
𝑥𝑥
(0)
𝑎
0
𝑎
1
⋮
𝑎
𝑚
=
1
0
⋮
0
(
13
)
其中
𝑎
𝑖
=
1
𝑁
0
𝑏
0
𝑎
𝑖
(
14
)
解出方程,即可求得反滤波因子
a(t)
。
二、方法步骤
在地震记录上选取自相关段,要选择在波形单一,能量强的地方。自相关段的长
度应大于或等于子波的长度;
求选取段的自相关函数:
𝑟
𝑥𝑥
(
𝑛
)
=
∑
𝑚
―
𝑛
𝑡
=
1
𝑥
𝑡
×
𝑥
𝑡
+
𝑛
,
𝑛
=
0,1,2,
⋯,
𝑀
―
1
(
15
)
其中
M
为自相关长度;
4
把
𝑟
𝑥𝑥
(
𝑛
)
代入式中求解
a
t
,并由式得反滤波因子
a(t)
,式中,通常取
N
0
=1
;
将地震记录
x(t)
与反滤波因子
a(t)
褶积,完成反滤波;
𝑦
(
𝑡
)
=
∑
𝑚
―
1
𝜏
=
0
𝑎
𝜏
×
𝑥
𝑡
―
𝜏
, 𝑡
=
𝑚,𝑚
+
1,
…
,𝐿
(
16
)
其中
m
为反滤波因子长度,
L
为地震记录长度。
三、源程序
1)雷克子波模型源程序
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "malloc.h"
#include "string.h"
#define PI 3.1415926
#define fm 25 //主频
#define dt 0.001 //采样间隔
#define dz 10 //深度采样间隔
#define N 100 //反射系数序列长度
#define Nw 100 //子波长度
#define P 199 //合成地震记录长度
//=========建立速度模型===========//
void velocity(float v[],int n)
{
int i,z;
float h=1000;
for(i=0;i<n;i++)
{
z=i*dz;
剩余22页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 340
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功