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

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

相关推荐
guygg8817 分钟前
极化码(Polar Codes)的MATLAB实现
开发语言·数据结构·matlab
机器学习之心1 小时前
电池SOH估计和RUL预测,基于BiLSTM神经网络的锂电池健康状态估计和剩余寿命预测,MATLAB代码
人工智能·神经网络·matlab·电池soh估计·rul预测·bilstm神经网络
ghie90902 小时前
MATLAB 解线性方程组的迭代法
开发语言·算法·matlab
简简单单做算法19 小时前
基于Qlearning强化学习的免授权频谱下NR-U与WiFi共存资源最优分配策略matlab仿真
matlab·wifi·qlearning·免授权频谱·nr-u·资源最优分配
wearegogog12321 小时前
光伏发电系统最大功率跟踪(MPPT)算法 Matlab 实现指南
开发语言·算法·matlab
slandarer1 天前
MATLAB | R2026a 更新了哪些有趣的新东西?
开发语言·数据库·matlab
gihigo19981 天前
MATLAB地震面波数值模拟方案
开发语言·matlab
可编程芯片开发1 天前
基于Voronoi自适应分区的Qlearning强化学习粒子群算法的海上风电场电气系统拓扑优化matlab仿真
matlab·voronoi·qlearning·拓扑优化·自适应分区·海上风电场
关岭风尘1 天前
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(九) - BLDC电机滑行状态低占空比启动波形分析
matlab·电机控制·bldc仿真·电机续流·滑行启动
Not Dr.Wang4221 天前
基于matlab的控制系统奈氏图及其稳定性分析
数据结构·算法·matlab