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

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

相关推荐
尤利乌斯.X4 小时前
在Java中调用MATLAB函数的完整流程:从打包-jar-到服务器部署
java·服务器·python·matlab·ci/cd·jar·个人开发
slandarer6 小时前
MATLAB | 如何使用MATLAB一键生成拼豆图纸
matlab·拼豆
机器学习之心7 小时前
MATLAB基于PSO-GA的铁路工程施工进度计划多目标优化研究
matlab·多目标优化
kaikaile19958 小时前
34节点配电网牛顿-拉夫逊潮流计算 + 分布式电源(DG)多场景分析的 MATLAB
开发语言·分布式·matlab
gihigo199814 小时前
MATLAB数值分析方程求解方法详解
算法·机器学习·matlab
轻微的风格艾丝凡15 小时前
Simulink 在汽车工业中的深度应用与技术实践
matlab·汽车·simulink
ghie909019 小时前
MATLAB/Simulink水箱水位控制系统实现
开发语言·算法·matlab
hoiii18720 小时前
基于交替方向乘子法(ADMM)的RPCA MATLAB实现
人工智能·算法·matlab
fengfuyao98521 小时前
MATLAB的加权K-means(Warp-KMeans)聚类算法
算法·matlab·kmeans
fie88891 天前
基于循环谱分析的盲源分离信号处理MATLAB
开发语言·matlab·信号处理