transfer

概要

反卷积以去除仪器响应,如果需要,还可以卷积其他仪器响应

语法

TRANSfer [FROM type [options]] [TO type [options]] [FREQlimits f1 f2 f3 f4]
    [PREWHitening ON|OFF|n]

输入

FROM type

要去除的仪器响应类型

TO type

要加入的仪器响应类型

FREQLIMITS f1 f2 f3 f4

压制大于 f4 以及低于 f1的频段

PREWHITENING ON|OFF|n

预白化处理

缺省值

trans from none to none

说明

FROM and TO

transfer 命令的作用是将波形数据从一种仪器响应转换成另一种仪器响应。FROM type 指定要从波形数据中去除的仪器响应,TO type 指定了要加入到波形数据中的仪器响应。去仪器响应即反卷积,加仪器响应即卷积,二者分别通过谱域的除法和乘法完成。

type 为仪器类型,可以是 SAC 预定义的标准仪器类型(见附录中表 SAC 内置仪器类型列表),还可以是如下几种特殊的“仪器类型”:

  • none: 表示“位移”

  • vel: 表示“速度”

  • acc: 表示“加速度”

  • evalresp: 表示使用 RESP 仪器响应文件

  • polezero: 表示使用 SAC PZ 仪器响应文件

  • fap: 表示使用 fap 仪器响应文件

tranfser 命令的默认值是“transfer from none to none”,即默认的输入和输出“仪器类型”都是位移。因而当不指定 FROM typeTO type 时,SAC 会假定仪器类型为 NONE

  • 若输出的仪器类型为 NONE,即表示从波形中去除仪器响应得到位移,此时 SAC 头段中的 IDEP 设置为 IDISP,单位为 nm, 若输出类型为 VELACC,同理;

  • 若输出的仪器类型不是 NONEVELACC,则内存中的波形会卷积上 TO type 所指定的仪器响应;

  • 若不指定 FROM 选项,则假定原始波形数据是位移,且不会去除仪器响应;通常用于给理论地震图添加仪器响应;

freqlimits

freqlimits 用于在去除仪器响应时对波形的低频和高频部分进行压制。当 TO typeNONEVELACC时,必须使用该选项,且必须认真选择合适的参数。

所有地震仪在零频率处都具有零响应,在只进行反卷积时,需要在频率域做谱的除法,此时可能会除以一个很小的值进而导致低频处有很大的谱振幅;在高频处,信噪比通常很低,因而有必要对其响应进行压制。

freqlimits 会在去仪器响应时对频谱做低通和高通尖灭,以实现对高频和低频的压制。四个频率参数应满足 f1<f2<f3<f4,即尖灭函数在零到 f1 之间为0,f1f2 之间从0渐渐变成1,在 f2f3 之间保持为1,在 f3f4 之间从1渐渐变成0,大于 f4 的频段值为0。过渡带内分别为余弦波的四分之一周期。如下图所示:

Freqlimits 尖灭函数

图 26 Freqlimits 尖灭函数

四个频率参数除了要满足 f1<f2<f3<f4 外,还应注意如下几条原则:

  • f4 应小于 Nyquist 采样率。比如若数据的采样周期为 0.01 s,则 Nyquist 采样率为 50 Hz,因而 f4 应小于 50 Hz

  • f3 不能与 f4 太接近

  • f2f3 之间应尽可能宽,然后再根据具体需求进行滤波

  • f1f2 不能太接近;

  • f1 的选取由具体需求决定,可以尝试不同的值并查看去仪器响应之后的效果来决定

若想要一个低通滤波器但在低频处不滤波,可以设置 f1=-2f2=-1; 若想要一个高通滤波器但在高频处不滤波,可以设置 f3 等于Nyquist频率, f4 为 Nyquist 频率的两倍。

需要注意,该滤波器是零相位、非因果滤波器,因而,若数据点数不为2的指数幂次,会导致在频段 (f1,f4) 之外振幅不完全为0。若想要数据点数为2的幂次方,可以参考 SAC 中的 cut 命令。

prewhitening

prewhitening 用于控制数据的预白化。预白化可以将输入时间序列在变换到频率域之前,进行谱的平化。这会减小谱值的动态范围,并提高数据在高频的计算精度。参见 whiten 命令。打开预白化选项,会在谱操作之前在频率域进行谱白化,并在谱操作后在时间域做谱白化的补偿,也可以设置预白化选项的阶数。默认情况下,预白化选项是关闭的,阶数为 n=6

示例

内置仪器类型

SAC中内置了一堆预定义的仪器类型,可以在命令中直接使用。

从数据中去除 LLL 宽频带仪器响应。并卷积上 SRO 仪器响应,且对频带做尖灭及预白化:

SAC> read abc.z
SAC> rmean; rtr; taper
SAC> trans from lll to sro freq .02 .05 1. 2. prew 2

当前的仪器类型为 RSTN 的子类型 nykm.z,为了去除该仪器响应并卷积上 DSS 仪器响应:

SAC> read nykm.z
SAC> rmean; rtr; taper
SAC> trans from rstn subtype nykm.z to dss prew off

将电磁仪器响应转换成位移:

SAC> r XYZ.Z
SAC> trans from elmag freep 15. mag 750. to none

从波形中去除 WWSP 的仪器响应,得到位移波形:

SAC> read xyz.z
SAC> rmean; rtr; taper
SAC> trans from WWSP to none freq 0.05 0.01 5 10
                # 也可使用 to vel 或 to acc 得到速度或加速度

向合成的位移地震图中加入 WWSP 仪器响应:

SAC> r syn.z
SAC> trans from none to WWSP    # 简写为 trans to WWSP

evalresp 类型

evalresp 类型并不代表真正意义上的仪器类型,而是表示从 RESP 仪器响应文件中读取仪器响应信息。在使用 evalresp 选项时, transfer 依次从当前内存中的 SAC 波形数据中提取出各自的头段信息,包括:kstnmkcmpnmkzdatekztimeknetwklocid,然后会在当前目录下寻找文件名为“RESP.<NET>.<STA>.<LOCID>.<CHN>”的RESP文件(比如“RESP.IU.COLA..BHZ”),并检测 RESP 文件中给出的台站信息是否与数据中的台站信息匹配1

SAC> r 2006.253.14.30.24.0000.TA.N11A..LHZ.Q.SAC
SAC> rtr; rtr; taper
SAC> trans from evalresp to none freq 0.004 0.007 0.2 0.4

该命令会首先从头段中提取台站信息,然后自动在当前目录下寻找文件 RESP.TA.N11A..LHZ,一旦文件中的台站信息与数据中的台站信息匹配,则使用该响应函数。

SAC 数据中的头段信息可以用一些选项来覆盖:

STATION, CHANNEL, NETWORK, DATE, TIME, LOCID, FNAME

每个选项都必须有一个合适的值。若 DATE 在 SAC 头段中未设定且在选项中未指定,则使用当前系统日期,TIME 同理;若 NETWORK未指定,则默认使用任意台网名;若 LOCIDKHOLE 未指定,则默认使用任意 LOCID。

假设台网 IU 的所有台站都具有完全相同的仪器响应函数,而此时你只有 COLA 台站的 RESP文件 RESP.IU.COLA..BHZ。为了给所有台站去除仪器响应,一种办法是对 IU 台网的每一个台站复制一份 RESP.IU.COLA..BHZ,重命名,并修改 RESP 文件中的台站信息。显然,这样很麻烦,利用上面的选项可以大大简化这一过程:

SAC> r *.IU.*.BHZ
SAC> rmean; rtr; taper
SAC> trans from evalresp STATION COLA to none freq 0.01 0.02 5 10

使用 STATION 选项覆盖了波形数据中的台站名,此时,对每一个波形数据, transfer 命令都会去使用 RESP.IU.COLA..BHZ2

下面的命令会将三分量数据去仪器响应,并卷积上 BHZ 分量的仪器响应:

SAC> r *.IU.COLA.00.BH?
SAC> rmean; rtr; taper
SAC> trans from evalresp to evalresp CHANNEL BHZ

操作完成后,BHZ 分量相当于没有进行操作,BH1 和 BH2 则去除了原本的仪器响应并卷积上 BHZ 的仪器响应。

为了显示 IU 台网 COL 台站 BHZ通道,1992年01月02日16:42:05的仪器响应:

SAC> fg impulse npts 16384 delta .05 begin 0.
SAC> trans to evalresp sta COL cha BHZ net IU \
                    date 1992/2 time 16:42:05
SAC> fft
SAC> psp am

如果你的 RESP 文件名与 SAC 的标准格式不同,可以使用 FNAME 选项强制指定要使用的 RESP 文件:

SAC> r 2006.253.14.30.24.0000.TA.N11A..LHZ.Q.SAC
SAC> rmean; rtr; taper
SAC> trans from evalresp fname /tmp/Resp/RESP.TA.N11A..LHZ to none \
                        freq 0.004 0.007 0.2 0.4

transfer 命令默认会使用 RESP.TA.N11A..LHZ 作为响应文件,此处使用 FNAME 选项强制指定使用 /tmp/RESP/RESP.TA.N11A..LHZ。需要注意的是,即便是使用 FNAME 强制指定了 RESP 文件,该命令还是会检测台站信息是否匹配。

由于一个 RESP 文件中可以包含多个响应函数,因而可以将所有仪器响应文件合并到一个总的 RESP 文件中:

SAC> r *.SAC
SAC> rmean; rtr; taper
SAC> transfer from evalresp fname RESP.ALL to none freq 0.1 0.2 5 10

这个例子中,RESP.ALL 包含了所有数据的响应函数,transfer 命令会读取 RESP.ALL 文件的内容,对于每一个波形数据,会从波形数据中提取出台站信息,并与 RESP.ALL 中的众多响应函数进行匹配,若匹配成功,则使用该响应函数。

polezero 类型

polezero 类型并不代表真正意义上的仪器类型,而是表示从 SAC 零极点文件中读取仪器响应函数。

如果使用 polezero 类型,用户可以使用 subtype 来指定要使用的 PZ 文件。若 PZ 文件有注释行,则注释行中的台站信息必须与波形中的台站信息匹配,才能正确执行;若 PZ 文件中无注释行,则不进行台站信息匹配的检测,直接执行。

SAC> r *IU.COLA.BHZ
SAC> rmean; rtr; taper
SAC> trans from polezero subtype SAC_PZs.IU.COLA.BHZ to WWSP

从 102 版开始,用户可以不使用 subtype 来指定要使用的 PZ 文件,而使用新增的搜索功能。在没有指定 subtype 的时候,SAC 会依据 SAC 文件中的 networkstationchannellocid 四个头段变量,按照文件名“SAC_PZs_network_station_channel_locid_*”,在当前路径下寻找 PZ 文件。如果 SAC 文件的头段变量不包含这些信息,也可以通过命令来指定:

SAC> trans from polezero network BK station CMB to NONE

如果用户想要在当前路径以外的地方寻找 PZ 文件,可以用 DIR 选项指定搜索路径:

SAC> trans from polezero dir resp to NONE  # 在 resp 目录下搜索 PZ 文件

无论使用 subtype 来指定 PZ 文件,还是凭借 SAC 自己进行搜索,SAC 都要求 PZ 文件和 SAC 文件(或通过命令输入)的台站信息相符。如果有台站信息缺失,则按照是符合的进行处理。会使用按照要求找到的第一个文件,如果 PZ 文件中不包含相关的头段信息,SAC 会默认这些信息是符合要求的。一个 PZ 文件中可以包含多台站、多通道、多时间段的响应函数。可以将所有数据的 PZ 文件合并得到总的PZ文件。下面的例子中读入全部波形数据,并利用总 PZ 文件进行去仪器响应:

SAC> r *.SAC          # 读入全部数据
SAC> rmean; rtr; taper
SAC> trans from polezero s event.pz to none freq 0.05 0.1 10.0 15.0
SAC> mul 1.0e9        # 需要乘以1.0e9 !!!
SAC> w over

需要格外注意,在用 PZ 文件去仪器响应得到位移物理量时,得到的数据的单位是 m,而 SAC 中默认的单位是 nm,因而需要将数据乘以 1.0e9 将数据的单位转换成 nm。对于转换得到速度或加速度,同理。

fap 选项

fap 选项表明使用 FAP 文件作为响应函数。

假设有 fapfile 文件 fap.n11a.lhz_0.006-0.2,其名字表示频率段为 0.006 Hz 到 0.2 Hz,要从波形 2006.253.14.30.24.0000.TA.N11A..LHZ.Q.SAC 中移除该仪器响应:

SAC> r 2006.253.14.30.24.0000.TA.N11A..LHZ.Q.SAC
SAC> rtr
SAC> taper
SAC> trans from fap s fap.n11a.lhz_0.006-0.2 to none freq 0.004 0.006 0.1 0.2
SAC> mul 1.0e9
1

即,要求 RESP 文件名以及 RESP 文件中的台站信息都与数据头段中的台站信息匹配

2

这里假定所有台站的 LOCID 都是未定义的