Matlab | 基于二次谱提取地震数据的地震子波

本文通过地震数据二次谱求取地震子波谱,具体方法如下:

MATLAB代码实现如下:

matlab 复制代码
function w = SndSpecExtWavelet(x, M)
% 功能:基于二次谱提取输入地震数据data的地震子波wavelet
%      Extracting Wavelet from Input Seismic Data Based on Second Spectrum
% 输入:
%       x     -  地震信号,Nt×Nz
%       M     -  提取地震子波的长度
% 输出:
%       w     -  提取的地震子波,1×M
% 时间:2023/10/14


[Nt,Nz] = size(x);
FxTwo = zeros(Nt,Nz);
% 多道平均法
for k = 1:Nz
    Fx = abs(fft(x(:,k)));
    FxTwo(:,k) = (fft(Fx));
end
FxTwoAvg = sum(FxTwo,2)/Nz;

cLow = zeros(Nt, 1); %低通滤波器
for i = 1:Nt
    cLow(i) = 0.5*(1+cos(2*pi*(i-1)/Nt));
end
FxTwoLow = FxTwoAvg .* cLow;
FxLow = (ifft(FxTwoLow));
we = real(ifft(FxLow));
wm = zeros(1,M);
wm(ceil(M/2):M) = we(1:ceil(M/2));
wm(1:ceil(M/2)) = we(Nt-floor(M/2):Nt);
p = max(abs(wm));
w = wm./p; % 归一化

end

自己写的代码,如有错误还请联系。创作不易,记得点赞支持哦,谢谢!

相关推荐
柠檬071111 小时前
MATLAB相机标定入门:Camera Calibration工具包详解
开发语言·数码相机·matlab
成长痕迹11 小时前
【MATLAB 数据分析学习指南】
matlab·信息可视化·数据分析
t1987512811 小时前
基于MATLAB的车辆二自由度悬架鲁棒控制
matlab
机器学习之心11 小时前
MATLAB基于自适应动态特征加权的K-means算法
算法·matlab·kmeans
软件算法开发11 小时前
Matlab混合编程技术学习教程——目录
matlab·混合编程·混合编程技术
leo__5201 天前
基于MATLAB的图像处理程序
图像处理·计算机视觉·matlab
机器学习之心1 天前
MATLAB基于小波云模型时间序列预测,以年径流预测为例
matlab·小波云模型
沐欣工作室_lvyiyi2 天前
基于Matlab的简易振动信号分析系统(论文+仿真)
开发语言·matlab·毕业设计·振动信号分析
Evand J2 天前
【自适应粒子滤波MATLAB例程】Sage Husa自适应粒子滤波,用于克服初始Q和R不准确的问题,一维非线性滤波。附下载链接
开发语言·matlab·卡尔曼滤波·自适应滤波·非线性
qq_401700412 天前
matlab学习
学习·算法·matlab