做瞬变电磁的人,十有八九都会被同一个问题卡住:仪器里出来的信号明明是随时间衰减的曲线,为什么资料处理时要反复说频率域、频谱、频带?等到自己尝试把一条时间域衰减曲线做傅立叶变换时,又常被参数选择、数据窗截断、频谱尾部上翘这些问题搞得一头雾水。这篇文章就是围绕“瞬变电磁中的傅立叶变换”这个核心,从时间域到频率域的转换逻辑、数学基础、实操流程、常见坑点一路展开。
我尽量说人话。瞬变电磁不是只有时域一种看法,傅立叶变换也不是数学课本里那种只能应付考试的工具。它能把一条时间域衰减曲线拆成一堆不同频率的正弦波叠加,让你从另一个维度看同一个地下响应。写这篇文章的目标读者,是刚开始接触瞬变电磁数据处理的学生、现场物探工程师,以及所有想搞明白时域信号和频域信号到底怎么互相转换的人。你不需要完整学过信号与系统,只要懂得最基本的微积分和指数衰减概念,就能跟上。
1. 瞬变电磁和傅立叶变换,为什么非要凑到一块
1.1 瞬变电磁法到底在测什么
瞬变电磁法,英文缩写TEM,是往地下发送一次场,然后观测二次场衰减的一种电磁勘探方法。现场操作通常是:发射回线通一个恒定电流,把这个电流突然关断,关断瞬间地下导电介质里会感应出涡流,涡流随时间衰减,并在地表产生可测量的二次磁场。我们要记录的就是这个二次场随时间变化的曲线,所以从数据形态上看,它天然就是一条时间域衰减曲线。
这条衰减曲线的形态和地下介质的导电性的关系非常直接:高阻区衰减快,低阻区衰减慢。因此时域里看曲线,早期数据反映浅部,晚期数据反映深部,这就是时域解释的基本逻辑。实际野外里,我们拿到的是电流关断后若干个时间门上的电压值,这些电压值串起来,就是一条完整的时间域衰减信号。
跑过野外的人都知道,TEM数据最大的优点是效率高、穿透能力不错,对低阻体敏感。但问题在于,仪器记录的电压值本身是个混合体,地下不同深度、不同电性体产生的响应叠在一起,测线跨过不同地质体时,曲线形态会很复杂。如果只盯着时域衰减曲线,早期响应会把晚期信号压在底下,很难直观判断到底有几个异常体、异常体的电阻率大致是多少。所以有一个效果特别好的思路:把时间域信号变到频率域,通过频谱特征把不同频段的信息拆开来看。
1.2 时间域与频率域:同一个信号的两副面孔
同一个物理过程,可以有两套描述方式。时间域描述的是“某个时刻信号值是多少”,频率域描述的是“某个频率的信号分量有多强”。二者之间的关系,就是傅立叶变换。打个比方:一段音乐在时域里是声波振幅随时间的变化,在频域里是各个音符的频率和响度。你听到的是时域,谱子记录的是频域,但二者说的是同一首曲子。
放在瞬变电磁这里,时间域衰减曲线和频率域响应曲线完全是同一组数据的两种投影。时域早期对应高频,时域晚期对应低频。因为地下介质的感应涡流,在早期集中在浅部、尺度小,所以感应信号中高频成分占主导;晚期涡流扩散到深部、尺度大,低频成分占主导。理解这层对应关系,后面所有参数选择都顺了。
一直有人问:时域解释已经很成熟了,为什么还要费劲做傅立叶变换?我觉得原因有三。第一,频率域视角能把浅部高频信息和深部低频信息分开,解释时不至于混在一起。第二,很多反演算法和电阻率换算公式在频域里表达更简单。第三,从质量评价角度,频谱能帮你判断数据里是不是掺了固定频率的电磁干扰。所以,傅立叶变换不是炫技,是数据解读的必备工具。
2. 傅立叶变换基础:从波动到频谱
2.1 连续傅立叶变换和它的物理含义
严格来写,一个连续时间信号 f(t) 的正变换定义为:
F(ω) = ∫ f(t) e^(-iωt) dt
反变换为:
f(t) = (1/2π) ∫ F(ω) e^(iωt) dω
看起来复杂,思路其实很朴素:把一段任意信号,拆成无数个不同频率、不同幅度、不同相位的正弦波。F(ω) 的模就是该频率成分的强度,辐角就是相位。把 F(ω) 按频率从低到高画出来,就是频谱。
对于瞬变电磁信号,它通常符合指数衰减规律,也就是形如 e^(-t/τ) 的形式。指数衰减信号的傅立叶变换结果会是一条平滑的、随频率增高而幅度降低的曲线,幅度在低频处高、高频处低。这正好解释了为什么TEM信号的频谱集中在低频段。地下电阻率越低、时间常数 τ 越大,信号衰减越慢,频谱就越往低频集中。
如果你记不住公式也没关系,记住三个特征:第一,时间域和频率域是一一对应的,知道一个就能推出另一个;第二,时间域衰减得越慢,频率域越集中在低频;第三,指数衰减对应洛伦兹型频谱,没有周期性震荡。这三句话在理解TEM频谱时基本够用。
2.2 离散化和FFT:让变换真正能算出来
野外仪器记录的数据必然是离散的采样序列,不是连续的数学函数。所以实际做傅立叶变换,我们用的是离散傅立叶变换(DFT)。公式变成:
F[k] = Σ f[n] e^(-i2πkn/N)
其中 N 是采样点个数,f[n] 是第 n 个采样值,F[k] 是第 k 个频率分量。直接按这个公式算,计算量是 N 的平方,普通几条测线的数据量都撑不住。所以工程上几乎不用DFT,而是用快速傅立叶变换FFT。FFT不是另一种变换,只是DFT的一种高效算法,它利用旋转因子的对称性和周期性,把计算量从 O(N²) 降到 O(N log N)。
这意味着,数据长度是2的整数次幂时,FFT计算效率最高。实际处理中,我经常会把原始数据做补零或者截断,让采样点数变成1024、2048这类值,目的就是让FFT跑得更快。当然补零不会增加真实信息,只是增加了频域插值的密度。
2.3 采样率和频率分辨率的取舍
这里有一个非常关键的工程问题:采样率决定最高可分析频率,采样时长决定频率分辨率。采样定理告诉我们,要分析的最高频率不能超过采样率的一半,这个一半就叫奈奎斯特频率。如果信号里有超过奈奎斯特频率的成分,它会折叠到低频段,产生假频,处理出来完全没法看。
举例说明。仪器采样率是 1 MHz,奈奎斯特频率就是 500 kHz,理论上可以分析 0 到 500 kHz 的频谱。但TEM的有效信号往往集中在几十到几百千赫兹以下,高频段基本是噪声。如果采样率太低,可能把浅部高频响应丢掉,频谱看着会异常平缓。
反过来说,频率分辨率等于采样时长分之一。你想分辨 1 kHz 和 2 kHz 这两个紧挨着的频率,需要的总记录时长至少是 1 ms。所以早期窗和晚期窗不能放在同一个FFT里处理,要么分段、要么加窗,否则频率分辨率会顾此失彼。这算是新人在处理时最容易忽略的一点。
3. 从时间域到频率域的完整流程
3.1 时域信号预处理
拿到一条原始时域衰减曲线,别急着做FFT。先做三步:去直流、去趋势、剔除坏道。TEM信号叠加了环境背景场,曲线经常会有一个非零的基线偏移。基线偏移如果不消除,FFT结果在零频附近会有一个巨大的直流分量,把所有有效频段都被压得看不见。
去直流最简单的办法,是取关断前一段时间窗内的信号平均值,当成直流偏移,从整条曲线上减去。这个操作在时域里看似不起眼,但对频域结果影响极大。实测里,基线只差几个微伏,做完FFT之后的低频段就能差出一个数量级。
去趋势是处理晚期漂移。TEM晚期信号非常弱,常常会被仪器温漂、电极极化等因素拉出一条缓慢变化的长周期趋势。这种趋势在频域里表现为极低频噪声,如果不除掉,频谱会出现一个很假的低频频峰。我习惯用多项式拟合一段晚期数据,把趋势项抠掉,再对整条数据做FFT。
坏道处理也不能省。所谓坏道,就是某个时间门上的数据明显偏离相邻时间门,可能是地电极接触不好、闪电干扰或者仪器工频过载造成的。坏道在时域里只是一个点,但傅立叶变换是全局积分,一个坏点会污染整个频段,在频谱上表现为类似于“振铃”的高频起伏。所以做FFT之前,一定要逐道检查数据质量。
3.2 做FFT时要关注的参数窗口
参数窗口是FFT最容易出问题的环节。瞬变电磁信号跨度特别大,早期几百微秒、晚期可以到几十毫秒甚至上百毫秒。直接整条做FFT,时间窗太长,频率分辨率虽然够了,但早期细节被晚期大能量掩盖;时间窗太短,频率分辨率不足,不能区分紧密相邻的频谱特征。
我常用的办法是分段FFT。把时间轴分成几个对数间隔的窗口,比如 0-10μs、10-100μs、100μs-1ms、1ms-10ms,分别做FFT,再拼接成一张宽频段频谱图。这种处理方式的好处是,每一段的采样率和时间长度都适配自身的频段需求,不会因为信号动态范围过大导致频谱失真。
加窗函数也是避不开的操作。直接截断一段数据,等于在时域乘了一个矩形窗,矩形窗的频谱在频域会拖出旁瓣,造成频谱泄漏。选择汉宁窗或者布莱克曼窗,可以显著压低旁瓣,代价是主瓣变宽一点点。对于需要精细分辨频率的情况,我通常用汉宁窗;对于只需要看频谱大致形态的情况,用矩形窗也能接受。但无论选哪种窗,一定要把窗函数类型、窗口长度写进处理流程记录里,不然下个月回来看数据,完全不知道你是谁。
FFT点数选择上,我会先把处理后的数据段补零到最近的2次幂,例如4096点或8192点。补零能把频谱画得更平滑,但不会增加频率分辨率,这个需要自己心里有数。有人以为补零越多越精细,其实那两个靠得很近的频率分量照样分不开。
3.3 反变换与滤波:别让变换变成花架子
做完FFT得到频谱,有人喜欢在频域里直接滤波,再反变换回时间域。这个思路没问题,比如你想滤掉某个固定频率的工业干扰,在频域里把对应频点置零,再做逆FFT,往往比时域陷波器更干净。但是要注意,直接在频域把一段系数强行改掉,相当于给频谱乘了一个矩形滤波器,时域会产生振铃效应,也就是Gibbs现象。
所以如果要做频域滤波,我会用过渡带较宽的窗口函数去乘频谱,而不是硬生生拦一刀。好在TEM处理里,最常见的是分析频谱形态、做频域电阻率换算,并不需要频繁地把滤波后的数据反变换回时间域。你要是犯懒,直接拿未滤波的频谱去换算,效果会差不少,尤其是低频段,基线偏移会直接污染结果。
4. 瞬变电磁频域解释与参数提取
4.1 频谱形态和地电响应
把时间域衰减曲线变成频谱之后,怎么读?先看整体形态。地下介质均匀时,TEM频谱是一条随频率增高而单调衰减的曲线,没有明显峰值。当地下存在低阻层时,频谱会出现某种程度的“变缓”,因为低阻层让涡流衰减变慢,对应低频成分增强。当地下存在高阻层时,高频成分相对更突出,曲线相对陡一些。
所以频谱形态其实就是在描述地下电阻率的纵向变化。高频段反映浅部导电性,低频段反映深部导电性。这种“频率-深度”关系在解释时特别好用。我经常把同一测点的不同频段幅度做成伪断面图,看高频段和低频段的横向差异,能直接圈定低阻异常体的延展范围。
读频谱时还要注意,不要把坐标轴画成线性等间隔的。TEM频谱跨度有好几百年千赫兹,用线性坐标会把低频细节压扁。我习惯双对数坐标,幅度轴用 dB,频率轴用对数刻度,这样高低频段都能看清。一幅漂亮的双对数频谱图,信息量至少是线性图的十倍。
4.2 等效电阻率、趋肤深度等实用换算
频域里最常用的两个量,一个是等效电阻率,一个是趋肤深度。趋肤深度的公式是:
δ ≈ 503 * sqrt(ρ / f)
单位是米,其中 ρ 是电阻率,单位欧姆米,f 是频率,单位赫兹。这个公式描述的是电磁波在导体中衰减到 1/e 的深度。在TEM频率域解释里,可以反过来用:知道某个频率对应的响应对应哪个深度,就大致知道该深度的电阻率。
等效电阻率的计算思路,是把某一频率下的实测响应幅度,代入均匀半空间模型的解析表达式,反解出电阻率。操作上很简单:选一个频率,取该频率下的频谱幅度,代入公式,解一个一元方程就能得到等效电阻率。这个参数不像反演结果那么精细,但胜在快速稳定,适合现场快速评价。
用这个公式你能做一件事:把频谱上每个频率点换算成趋肤深度和等效电阻率,画一条“电阻率-深度”曲线。虽然它只是半定量的等效参数,但用来对比不同测点的变化趋势非常直观。实际项目里,我都是先用等效电阻率快速筛一遍,锁定异常测点,再上精细反演,能把计算成本省下一大半。
4.3 时间窗和频率窗的对应关系
时间窗和频率窗的对应关系,是瞬变电磁频域解释里最容易被忽视,也最实用的一点。理论上时域和频域是严格等价的,但实际处理中,由于采样和加窗的不完美,时域某个时间窗里的信号,并不完全是频域某个频段的信息。它们之间有一个模糊的对应关系。
近似的对应规律是:时间越早,对应频率越高;时间越晚,对应频率越低。早期窗(例如0-10μs)大致对应几十到几百千赫兹的高频段;晚期窗(例如10ms以上)大致对应几十到几百赫兹的低频段。当你做频域电阻率深度换算时,一定要知道当前频谱段对应的是哪个时间窗,否则深层信息被当成浅层解释,整个结果就乱了。
我通常在报告里附一张“时间窗-频率窗对照表”,把每个时间窗口的中心时间、采样点数、FFT频率范围、对应趋肤深度范围都列清楚。既有说服力,还能让后续接手的人不用从头摸索一遍。
5. 实际操作中的常见问题与排查技巧
5.1 频谱尾部翘起来,是算法还是噪声
处理瞬变电磁频谱时,我踩过最多的坑就是频谱尾部(高频段)不仅不衰减,反而往上翘。出现这种情况,第一反应不要怀疑物理模型,先查数据处理流程。高频段翘起的常见原因有三个:一是没有去直流,直流偏移在FFT后引入 sinc 函数的旁瓣,尾部会抬高;二是数据里有窄脉冲噪声,脉冲信号的高频含量非常丰富,会把高频段整体抬高;三是加窗窗型不合适,矩形窗旁瓣泄漏严重。
排查方法也不复杂:先把基线偏移仔细剔除,然后对数据做一次中值滤波剔除孤立尖峰,再重新做FFT。如果尾部恢复正常,说明问题出在数据预处理上。如果怎么处理尾部都翘,再考虑是不是关断效应造成的,那道坎会在下面专门说。
5.2 关断时间和转换点失真
关断时间问题很坑人。发射电流并非瞬间归零,而是有一个有限的下降时间,比如几微秒到几十微秒。关断期间,地下已经在产生感应涡流,但我们记录的起点和理想阶跃关断并不一致。这个关断过程在时域上相当于给理想激励加了一个斜坡,反映在频域里,就是高频段被明显压低或形态畸变。
实际处理时,我一般会做关断校正,把实际电流波形测量出来,在频域里用电流波形的傅立叶变换去除,得到阶跃响应的频谱。如果不做这一步,越浅部的频段越不可信。时域里同样有对应关系,人们常说的“早延时”数据点不能用,根源之一就在这里。
对于只做时域衰减曲线解释的人,关断误差会被“晚延时”掩盖住,问题不大。但只要做了傅立叶变换,关断效应就无处可藏。所以,凡是准备做频域解释的测线,发射电流波形一定要同时记录,这是硬性要求。
5.3 工业噪声与工频干扰的分辨处理
野外TEM数据里几乎都会混入工频干扰(频率为50Hz及其整数倍)。如果频谱图在50Hz、100Hz、150Hz等位置出现尖锐的窄峰,基本可以肯定是工频干扰。处理办法很多:可以在时域做陷波器,把50Hz及其谐波滤掉;也可以在做FFT后直接把这些频点的幅度压低。
我的经验是,别一上来就做陷波。先观察干扰频点是否和有效频谱分离。因为TEM有效频谱是平滑变化,而工频干扰是尖峰,二者在频域里能明显分开。这时候用频域谱修正是最安全的,几乎不损失有效信息。反过来,如果时域直接陷波,很容易把有效信号也削掉一点,晚期弱信号尤其明显。
另外还有一个容易被当成异常的干扰源,那就是频率在几十千赫兹以上的工业无线电广播信号。它们会在高频段叠加出一排窄峰,形态像纸梳。处理这种干扰,同样适合做频域尖峰剔除,不建议动时域数据。
6. 一些经验和后续扩展
6.1 在工程实践中的一些体会
做傅立叶变换处理瞬变电磁数据,我的真实体会是:真正决定成败的不是算法本身,而是你如何理解时域和频域的对应关系,以及如何处理预处理细节。FFT人人都能跑,但能把傅立叶变换用对的人,往往是从时间窗-频率窗对照、基线校正、关断校正这些不起眼的环节里练出来的。
还有一点要提醒:不要在频谱图上硬找“峰值”。很多新手看到频谱有一个峰,就急着解释成某个异常体,结果发现那个峰只是加窗后的旁瓣或者工频干扰。瞬变电磁频谱正常形态是平滑衰减的,出现任何尖锐峰都要先怀疑数据质量,而不是地质体。
我自己的处理习惯是:每到一个测区,先抽几条典型测点数据做全流程测试,把时间窗分段、FFT点数、窗函数类型这些参数固定下来,再批量处理整条测线。这样做的好处是异常点很容易暴露,因为正常测点的频谱形态高度相似,只有异常体或者数据缺陷会造成明显差异。用这种“横向对比法”检查数据质量,比我以前逐条看曲线高效多了。
6.2 还可以尝试的方向
傅立叶变换在瞬变电磁中的应用,不仅是时域转换频域这一条路。后续还可以尝试小波变换,它对非平稳信号更加友好,可以在时域和频域同时保持较高的分辨率。TEM信号本身是非平稳的,早期高频持续时间短、晚期低频持续时间长,小波变换能更好地展现这种时变特征。
也可以把频谱结果和反演结合,比如做频域视电阻率成像,或者用多频点数据做联合反演。这类方法在复杂地电条件下的分辨能力,往往比单纯时域反演更稳。对于研究型项目,甚至可以尝试用机器学习方式,把频谱形态和地电模型参数做映射。不过这些方向都需要先打好傅立叶变换这个底子,否则后面全是无源之水。
最后再分享一个小技巧:当你的时域数据时间跨度特别大,又想快速看频谱全貌时,可以先用对数采样间距把时间段分成若干窗口,分别做FFT,再把各窗口频谱画在同一张双对数图上。各窗口之间如果频谱接不上,有断层或突跳,多半是某一段数据质量有问题,检查起来非常直观。这个办法我用了很多年,每次都能在五分钟内定位到问题数据。