地震勘探主要通过地表接收的地震波场来识别地下的地质结构和物性参数等,获取地震数据的质量直接决定着反演地下信息的精确度和准确性。地震数据的分辨率是评价地震数据品质的重要标准之一,高分辨率的地震数据包含丰富的地质信息,更有利于进行地震解释、储层预测和属性分析等。随着油气需求的持续增加和勘探程度的不断深入,薄互层油气藏、岩性油气藏和复杂隐蔽油气藏等逐渐成为地震勘探和开发的重点领域,常规处理的地震数据很难满足高精度的反演和解释等要求,宽频带地震数据采集还无法有效解决一些地震数据的高分辨率处理问题,例如,地层岩性方面的薄互层预测精度不足问题,碳酸盐岩方面的巨厚表层吸收衰减问题,非常规油气勘探方面的深层地震数据低分辨率问题等,因此需要对地震数据高分辨率处理技术进行持续的研究。实际地震数据在采集的过程中受到诸多非确定性因素的影响,例如复杂介质对震源子波的改造作用、不同时刻激发和接收条件的不可重复以及各种噪声干扰等,由于观测条件的有限性,实际地震数据尚无法用确定的时间(或空间)函数表示,在物理形态上表现为不确定的时变、空变和频变特征,尽管有时地震数据在局部表现出一些确定性的特征,但其本质上为非平稳的随机过程,可以定义为非平稳地震数据,由于其特有的局部近似确定性和全局随机性特征,很多常规的高分辨率处理方法也获得了一些效果,但面对持续复杂化的地震数据往往难以实现更广泛地应用。因此,开展针对非平稳地震数据特征的高分辨率处理技术系统研究具有重要的实际价值,其目的主要是合理恢复地震数据的低频和高频信息,有效拓宽有效地震信号的频谱带宽,提高地震数据的分辨率。通常,在地震勘探中将分辨率分为横向分辨率和纵向分辨率。横向分辨率也称为水平分辨率,是指在水平方向上分辨地质体大小、位置和边界的能力,如断层、尖灭点和岩性体等。纵向分辨率也称为垂向分辨率,是指在垂直方向上分辨地层厚度的能力。
鉴于此,主要可视化小波频率如何影响地震纵向分辨率,运行环境为MATLAB。
clear;
clc;
load('Sections.mat'); % This is an experimental Data contains RC matix.
load('Seis_maps.mat'); % Maps to plot
%% Wavelet prameters
Sampling_Interval= 1/1000; % Sampling Interval in Sec
NumberOfSamples= (10/Sampling_Interval)+1; % Must be enough to make sure the whole wavelet is plotted
% (must contains zeros at the sides)
NumberOfSamples= round(NumberOfSamples, 0);
t0= 0; % This determines where the peak/trough must appear. In our case
% we generate a zero-phase wavelet that shows its peak at 0.
%% Processing
% In this section we generate the wavelet with a certain frequency and
% convolve it with the RC matrix then we plot the results
for iter=1:0.2:120
Freqeuncy= iter;
% Generate Ricker wavelet with the above parameters
[Wavelet, t]= Edited_ricker(Freqeuncy, NumberOfSamples, Sampling_Interval, t0);
% delete the unnecessary 0 Values of the Wavelet and make sure it is still
% symmetric
for it=1:length(Wavelet) % start from 1 to end and determine where the non zero values starts
if Wavelet(it)~=0
Left= it-1; % the left coordinate of the wavelet contains one zero
Left= max(1, Left); % sometimes because we choose a small number of NumberOfSamples the wavelet
break; % is already cut and doesn't have zeros!
end
end
for ite=length(Wavelet):-1:1 % The same as the previous loop but here we determine the coordinate
if Wavelet(ite)~=0 % at which the zeros end.
Right= ite+1;
Right= min(Right, length(Wavelet));
break;
end
end
% Modify the Wavelet and Time rows
t= t(1, Left:Right); % Trim the Time row
Wavelet= Wavelet(1, Left:Right); % Trim the Wavelet row
% Convolove the Wavelet with the RC matrix
Res= conv2(Wavelet, 1, RC_Matrix_RHG);
% The convolved matrix is larger in size(Rows) than the RC matrix so we have
% to trim the values from the begining and ending of the Res matrix so
% they match each other.
S1= size(Res, 1); % Convoloved matrix size
S2= size(RC_Matrix_RHG, 1); % RC matrix size
dif= (S1 - S2)/2; % dif is the values we must delete from the begining and ending of RC
Res(1:dif, :)= []; % Delete dif from the begining of the matrix
Res(end:-1:(end-dif)+1, :)= []; % Delete from the end of the matrix
T= 1:size(Res,1);
if iter>1
cla(h1);
cla(h2);
cla(h3);
cla(h4);
cla(h5);
end
subplot(4, 8, [1 25]);plot(RC_Matrix_RHG(:, 1), T);
h1= gca;
h1.YDir= 'reverse';
title('RC series');
grid on;
subplot(4,8,[2 26]);plot(Wavelet, t);
h2= gca;
h2.YDir= 'reverse';
title({'Wavelet'; ['Frequency= ' num2str(round(Freqeuncy, 0)) ' Hz']}, 'Color', 'b');
grid on;
subplot(4,8,[3 27]);plot(Res(:,1), T);
h3= gca;
h3.YDir= 'reverse';
title({'1D Synthetic'});
grid on;
subplot(4,8,[4 16]);imagesc(RC_Matrix_RHG);
h4= gca;
title({'Subsurface geology'});
subplot(4,8,[20 32]);imagesc(Res);
hold on
plot([1:1:size(Res, 2)]+Res(:, 1:1:end), T, 'k');
h5= gca;
colormap(Red_blue_map);
title({'Synthetic Section'});
xlabel('Coded by Haydar Khayou - Damascus University', 'Color', 'b');
%完整代码:https://mbd.pub/o/bread/mbd-ZpWbkpdy
drawnow;
工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。