关于SU(SeismicUnix)的使用——数字信号处理部分

一、绘制频谱曲线

  1. 首先我们需要一个数据,我们构造出一个模拟单炮数据data.su
  2. 用suwind将数据变成单道数据,这里我从单炮数据中抽取关键字tracl=60的数据 : suwindsingleline.su
    关于SU(SeismicUnix)的使用——数字信号处理部分_第1张图片
  3. 对singleline.su作傅里叶变换(sufft),将振幅谱显示出来即可。命令行代码如下:
sufft

关于SU(SeismicUnix)的使用——数字信号处理部分_第2张图片

注意:
  1. 仅仅使用sufft和suamp,而没有输出或显示是不可以的!会报错:’output can’t be tty‘,需要用suxgraph进行显示或者进行输出,就不会报错了!
  2. 通常将sufft与suamp组合起来使用,那么就可以将快速傅里叶变化后的结果中的mode=振幅(amp)、相位(phase)、实部和虚部(real/imag)显示或者输出。

二、使用sufilter进行滤波

*注:*在/su/src/demos/Filtering 中可以看到su自带的演示例子,但是由于demos里面需要OZ Yilmaz.H 和 .F 文件,但是在CWP的网页中无法打开对应链接进而下载数据。所以这可能就需要自己用su去构造一个模拟数据,然后分析demos里面的shell,对shell做一些修改并再应用了。

  1. 首先,我们sufilter的功能介绍,在命令行输入 sudoc sufilter, 我们可以看到sufilter是应用零相位的滤波器,应用时必须在道头中有参数dt! 可选择的参数有 f 和 amps ,而且f和amps的参数是对应的,也就是说每一个频率对应一个滤波器的振幅值。
  2. f和amps各有两个参数时,例如:在命令行输入:
sufilter< single.su f=30,40 amps=1,0 > tmp.su
//这行代码是说对 single.su 进行‘低通’滤波处理,
//滤波器的参数为小于30Hz的为幅值为1,大于40HZ的部分幅值为零,30-40Hz之间的频率即为滤波器的过渡带。
  1. f 和amps各有四个参数时,就可随意构成带通,带阻,低通和高通的滤波器,例如一个30-40Hz的带通滤波器:
sufilter< single.su f=20, 30,40, 50 amps=0,1,1,0 > tmp.su

由此可见,sufilter的f=f1,f2,f3,…和amps=a1,a2参数表示的是:在频谱曲线上各个对应点(f1,a1), (f2,a2), (f3,a3), … 这些点的连线构成的滤波器,在这些点之外的曲线与第一个点和最后一个点的幅值相同。
关于SU(SeismicUnix)的使用——数字信号处理部分_第3张图片

最后注意:
  1. sufilter 的f与amps 只是用一对参数是不允许的
  2. 对tmp.su可以使用上面一绘制频谱曲线的方法进行绘制频谱曲线,来查看效果
  3. 参数verbose待补充!参数verbose待补充!

三、绘制fk谱

OZ. Yilmaz 在他的书《Seismic data analysis》的二维傅里叶变换中说:
multichannel processing operation can be loosely defined as those that must operate on several data traces, simultaneously.

  1. 我们就用su/src/demos 中的例子来说明fk谱的问题,首先用suplane 构造一个地震剖面名字为suplane.su,如下图(左)所示,而右图即为fk域振幅谱。
    suspecfk,这样就得到了右图
    关于SU(SeismicUnix)的使用——数字信号处理部分_第4张图片
注意:
  1. fk谱图中的斜率就表示视速度,当倾角越大时,视速度越小,对应的斜率也越小,这一点表现在上图(右)中就是:图中有四条短折线,但是对应三个斜率(其中最外侧两条线的斜率相同)。中间一根竖线斜率无穷大,对应的是左图中水平的同向轴(同向轴倾角为零);中间那条同向轴斜率中等,我们将在下面将它去除;而倾角最大的同向轴,对应了fk图中最外侧的两个斜率相同的小折线,它产生两条斜率相同的折线,是因为产生了空间假频(spatial aliasing)
  2. 对于fk频谱图(右图),要翻转过来看,因为在图中y轴是向下为正的!所以左下角的一小段折线就表示了斜率最大处的空间假频。

四、进行fk滤波

4.1用sudipfilt进行倾角滤波

  1. 在上面的suplane.su的基础上,我们用sudipfilt进行倾角滤波,我们滤掉中间的那个同向轴。代码如下
slopes=-1.0,-0.5,0.5,1.0
amps=1,0,0,1
bias=0.0
sudipfilt=suplane.su dt=1 dx=1 slopes=$slopes amps=$amps bias=$bias >test.su
#注意slopes必须和amps对应,即这里个参数的个数必须相同,而且slopes必须单调递增
#对于sudipfilt,dt和dx的参数在道头中必须有!

关于SU(SeismicUnix)的使用——数字信号处理部分_第5张图片
上面的图可以看出,我们利用sudipfilt将中间的那一个地震道去除,而从fk谱图上面看,波数k为正的部分的中间的一个倾斜直线消失。

你可能感兴趣的:(SeismicUnix)