可视化小波频率如何影响地震纵向分辨率(MATLAB R2018A)

地震勘探主要通过地表接收的地震波场来识别地下的地质结构和物性参数等,获取地震数据的质量直接决定着反演地下信息的精确度和准确性。地震数据的分辨率是评价地震数据品质的重要标准之一,高分辨率的地震数据包含丰富的地质信息,更有利于进行地震解释、储层预测和属性分析等。随着油气需求的持续增加和勘探程度的不断深入,薄互层油气藏、岩性油气藏和复杂隐蔽油气藏等逐渐成为地震勘探和开发的重点领域,常规处理的地震数据很难满足高精度的反演和解释等要求,宽频带地震数据采集还无法有效解决一些地震数据的高分辨率处理问题,例如,地层岩性方面的薄互层预测精度不足问题,碳酸盐岩方面的巨厚表层吸收衰减问题,非常规油气勘探方面的深层地震数据低分辨率问题等,因此需要对地震数据高分辨率处理技术进行持续的研究。实际地震数据在采集的过程中受到诸多非确定性因素的影响,例如复杂介质对震源子波的改造作用、不同时刻激发和接收条件的不可重复以及各种噪声干扰等,由于观测条件的有限性,实际地震数据尚无法用确定的时间(或空间)函数表示,在物理形态上表现为不确定的时变、空变和频变特征,尽管有时地震数据在局部表现出一些确定性的特征,但其本质上为非平稳的随机过程,可以定义为非平稳地震数据,由于其特有的局部近似确定性和全局随机性特征,很多常规的高分辨率处理方法也获得了一些效果,但面对持续复杂化的地震数据往往难以实现更广泛地应用。因此,开展针对非平稳地震数据特征的高分辨率处理技术系统研究具有重要的实际价值,其目的主要是合理恢复地震数据的低频和高频信息,有效拓宽有效地震信号的频谱带宽,提高地震数据的分辨率。通常,在地震勘探中将分辨率分为横向分辨率和纵向分辨率。横向分辨率也称为水平分辨率,是指在水平方向上分辨地质体大小、位置和边界的能力,如断层、尖灭点和岩性体等。 纵向分辨率也称为垂向分辨率,是指在垂直方向上分辨地层厚度的能力。

鉴于此,主要可视化小波频率如何影响地震纵向分辨率,运行环境为MATLAB。

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等。

相关推荐
不决问春风5 分钟前
102.二叉树的层序遍历——二叉树专题复习
java·算法·leetcode
哎呦没6 分钟前
MOJO编程语言的编译与执行:深入编译器与解释器的工作原理
java·开发语言·mojo
chem41117 分钟前
C语言4 运算符
c语言·开发语言
酷酷学!!!12 分钟前
C++第一弹 -- C++基础语法上(命名空间 输入输出 缺省参数 函数重载 引用)
开发语言·c++·学习方法·visual studio
夏洛特疯猫12 分钟前
python+tkinter编写一个桌面天气小工具
开发语言·python
郝YH是人间理想13 分钟前
《算法笔记》总结No.3——排序
c语言·数据结构·c++·算法·排序算法·csp
a_golden_fish13 分钟前
【做一道算一道】滑动窗口最大值
数据结构·算法
凢曐18 分钟前
水仙花数算法
算法
creative_mind25 分钟前
优选算法之技巧(一):双指针一:移位0与复写0
数据结构·算法·优选算法
深圳信迈科技DSP+ARM+FPGA30 分钟前
基于全国产复旦微JFM7K325T+ARM人工智能数据处理平台
人工智能·复旦微jfm7k325t