可视化小波频率如何影响地震纵向分辨率(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等。

相关推荐
geovindu11 分钟前
python: generator model using mysql9.0 or postgreSQL 17.0
开发语言·python·mysql·postgresql
cainiaomyf13 分钟前
【论文阅读】Learning to Learn Task-Adaptive Hyperparameters for Few-Shot Learning
论文阅读·人工智能·深度学习·机器学习·计算机视觉
oscar99919 分钟前
Java 语言的起源发展与基本概念(JDK,JRE,JVM)
java·开发语言·jvm
Niuguangshuo21 分钟前
PyTorch 模型转换为 ONNX 格式
人工智能·pytorch·python·oxnn
Pandaconda27 分钟前
【新人系列】Python 入门(十四):文件操作
开发语言·笔记·后端·python·面试·操作系统·测试
go_bai27 分钟前
动态内存管理的知识点笔记总结
c语言·开发语言·笔记·c#·学习方法
zaim128 分钟前
计算机的错误计算(一百六十八)
java·c++·python·matlab·rust·c#·大数
Reeeeeeeeeee-29 分钟前
[MRCTF2020]Transform
c语言·开发语言·汇编·c++·算法
秋落风声1 小时前
【二维动态规划:交错字符串】
算法·leetcode·动态规划
Koishi_TvT1 小时前
蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)
c++·学习·算法·蓝桥杯·深度优先·动态规划·c