fft

概要

对数据做快速离散傅立叶变换

语法

FFT [WOmean|Wmean] [Rlim|Amph]

输入

WOMEAN

变换前先去除均值

WMEAN

变换前不去除均值

RLIM

输出为实部-虚部格式

AMPH

输出为振幅-相位格式

缺省值

fft wmean amph

说明

该命令对数据进行离散傅立叶变换。为了使用快速傅立叶变换算法,在进行变换之前,需要对数据文件进行补零以保证数据点数为2的整数次幂,比如1000个点的时间序列文件会被补零至1024个点,且头段变量 npts 也会被相应修改。

进行离散傅立叶变换之后,头段变量 b 为谱文件的起始频率,其值为0; delta 为谱文件的采样频率,取值为 1/(delta*npts)e 为谱文件的结束频率。benptsdelta 的原值被保存到 sbsensnptssdelta,这些值在做反傅立叶变换时会用到。

傅里叶变换得到的谱数据可以是振幅-相位格式或实部-虚部格式。头段变量 iftype 会告诉你谱文件是哪种格式。

由于实序列的离散傅立叶变换的结果具有“共轭对称性”,因而在使用 plotsp 绘制谱文件时只显示一半的数据点数。

示例

SAC> fg seis
SAC> lh b e delta npts iftype

          b = 9.459999e+00
          e = 1.945000e+01
      delta = 1.000000e-02
       npts = 1000
     iftype = TIME SERIES FILE
SAC> fft
 DC level after DFT is -0.98547
SAC> lh b e delta npts iftype

          b = 0.000000e+00              # b值为0
          e = 5.000000e+01
      delta = 9.765625e-02              # delta=1/(1024*0.01)
       npts = 1024                      # 1000 -> 1024
     iftype = SPECTRAL FILE-AMPL/PHASE
SAC> lh sb sdelta nsnpts                # 保留原值

         sb = 9.459999e+00
     sdelta = 1.000000e-02
     nsnpts = 1000

头段变量

b、e、delta、npts、sb、se、nsnpts、sdelta

限制

离散傅立叶变换所允许的最大数据点数为 \(2^{24}=16777216\) 个。