基于MATLAB的F-K变换地震数据二维视速度滤波系统
项目介绍
本项目是一个用于地震资料处理的专业化工具,核心目标是实现地震数据在频率-波数(F-K)域的特征提取与滤波。通过将时间-空间域(t-x域)的地震记录转换到频率-波数域(f-k域),系统能够识别并分离具有不同偏离斜率(视速度)的地震波。该系统特别适用于压制低速面波、线性相干噪声,并增强反射波信号,是提高地震剖面信噪比的关键预处理环节。
功能特性
- 合成地震道集模拟:能够模拟生成包含双曲反射波(有效信号)、线性分布的低速面波(相干噪声)以及随机高斯白噪声的地震数据。
- 边界效应抑制:通过对原始数据施加二维余弦窗函数(Windowing),有效降低傅里叶变换过程中产生的频谱泄露和边界人工效应。
- 高分辨率谱分析:采用补零技术(Zero-padding)结合快速二维傅里叶变换(FFT2),生成精细的F-K能量分布谱。
- 视速度扇形滤波:在F-K域内根据视速度公式(v = f/k)构建扇形滤波器掩膜,精准剔除特定速度范围内的噪声。
- 滤波器平滑处理:引入高斯低通滤波器对掩膜进行平滑,以减轻逆变换后可能出现的吉布斯(Gibbs)震荡现象。
- 自动化评估与可视化:系统自动计算滤波前后的信噪比(SNR)增益,并提供包含原始剖面、振幅谱、滤波器设计、处理结果、剔除噪声及单道波形对比在内的全方位可视化分析。
实现逻辑与算法细节
#### 1. 地震信号合成
系统首先构建一个二维矩阵,通过雷克子波(Ricker Wavelet)模拟波形。
- 有效反射波:利用双向走时公式模拟地下反射界面,其在t-x域呈现双曲线特征。
- 相干噪声:模拟具有较低恒定视速度的线性波(如面波),其在t-x域呈直线特征。
- 随机噪声:添加特定强度的随机高斯噪声以模拟真实环境干扰。
#### 2. 二维F-K变换
- 预处理:对t轴和x轴分别计算余弦窗口并相乘,抑制两端截断造成的伪影。
- 变换与移频:使用计算效率最高的2的幂次作为FFT长度,通过
fft2 进行变换,并使用 fftshift 将低频/低波数中心点移至频谱图像正中央。
#### 3. 视速度滤波器设计
- 坐标转换:将频率(f)和波数(k)映射到对应坐标轴。
- 掩膜逻辑:在频率-波数坐标网格中,计算每个采样点的视速度
v = abs(f/k)。根据设定的阈值(如 $1500 m/s$),将视速度低于阈值的区域赋值为0(剔除区域),高于阈值的区域赋值为1(保留区域)。 - 平滑算子:使用
fspecial 生成高斯模板,并应用 imfilter 算子对掩膜矩阵进行卷积,使滤波边缘平滑过渡。
#### 4. 逆变换与能量补偿
- 复合滤波:将F-K谱与掩膜按点相乘,得到滤波后的复数谱。
- 重构还原:经
ifftshift 和 real(ifft2) 还原回时空域,随后根据补零前的原始尺寸进行截断。 - 能量归一化:通过计算滤波前后数据的最大振幅比例,对处理后的记录进行能量补偿,确保地震信号的波幅特征与原始记录保持一致。
关键过程说明
- F-K 域映射关系:在F-K谱图中,具有相同视速度的震相表现为一条穿过原点、斜率为视速度的射线。低速干扰(如面波)分布在靠近波数轴的区域,而高速有效波分布在靠近频率轴的区域。利用此物理特性,可以通过定义扇形角来精准划分信号与噪声。
- 性能保障:代码中使用了
nextpow2 优化FFT计算速度,并考虑了分母为零的异常处理(1e-10 偏移量)。 - 评价指标:通过残差法评估信噪比改善增益,量化滤波效果。
系统要求
- 操作系统:Windows, Linux 或 macOS。
- 环境支持:MATLAB R2016b 及以上版本。
- 核心工具箱:需要安装 Image Processing Toolbox(用于掩膜平滑处理的
imfilter 和 fspecial 函数)。
使用方法
- 启动MATLAB,将程序脚本所在的文件夹设为当前工作路径。
- 直接运行主函数。
- 系统将自动生成合成地震数据并执行预处理、正变换、滤波设计、逆变换及能量归一化全过程。
- 程序运行结束后,将自动弹出六个子图的综合分析界面,并在命令行窗口输出视速度阈值和信噪比改善评分。
- 用户可以根据实际需求修改脚本中
v_cut_min 的数值,以调整滤波器的截断范围。