基于高分辨率时频分析的单通道地震数据自动噪声衰减方法(Matlab代码实现)

简介: 基于高分辨率时频分析的单通道地震数据自动噪声衰减方法(Matlab代码实现)

💥1 概述

记录的地震信号常常被噪声破坏。本文使用了一种基于高分辨率时频分析的单通道地震数据自动噪声衰减方法。同步压缩是一种时频重新分配方法,旨在锐化时频图像。噪声可以从信号中区分出来,并且在这个重新分配的域中更容易衰减。使用一般交叉验证方法来估计阈值水平,该方法不依赖关于噪声水平的任何先验知识。通过增加基于峰度测量的预处理步骤和基于自适应硬阈值的后处理步骤,提高了阈值处理的效率。所提出的算法可以衰减噪声(白色或彩色)并保持信号,或者去除信号并保持噪声。因此,它既可以用于正常的去噪应用,也可以用于环境噪声研究中的预处理。在合成、微震和地震记录上测试了所提出方法的性能。


这是GCV方法的一种反向算法,可以去除信号并保持背景噪声。


📚2 运行结果

 

🎉3 参考文献

[1]王姣,李振春,王德营.基于CEEMD的地震数据小波阈值去噪方法研究[J].石油物探,2014,53(02):164-172.

👨‍💻4 Matlab代码

主函数部分代码:

clear all
close all
% Parameters for Calculate the wavelet transform -
opt.type = 'morlet';         % Type od the mother wavelet used for CWT calculation: 'morlet' 'shannon' 'mhat' 'hhat'
opt.padtype = 'symmetric';   % padded via symmetrization
opt.rpadded = 1;
opt.nv = 16;                 % Number of voices. You can sellect 8,16,32,64.
% Guassian correction factor. This corrects the uncertainties for the 
% estimation of the guassianity and amplifies the pre-processing effects.
% It should be selected highh enough to remove the strong noises outside
% of the signal's frequency band but not too high to remove signal's energy. 
% value of 1.0 means no correction. 
opt.gc=3;
%load('syntNoisy3_z.mat');
% data.noisy = syntNoisy3_z;
% data.t = linspace(0,(100),length(data.noisy));
% data.dt = 0.01;
% Read the noisy data 
[data.t,data.noisy,data.hdr] = read_sac('XD.A01..BHZ.064.SAC');
data.dt = data.hdr.times.delta        % delta
d1 = data.noisy;
% Since thecurrent version of the code can not handel overlapping winows we
% implement the algorithm by repeating the process using two windows of
% different sizes (one larger than the largest event in the waveform and one
% smaller window which its lenght is not a multiplication of the larger window size)
% however this makes the code slower but so far this is the easiest
% soloution
% processing long duration data is done in moving window fasion
opt.wsiz = 500; % wondow size (sec), needs to be longer than the length of typical events that you have in your data
tic
dn =gcvThreshR(data,opt);
toc
data.noisy = dn.xgcv;
opt.wsiz = 55; % wondow size (sec), needs to be longer than the length of typical events that you have in your data
tic
dn =gcvThreshR(data,opt);
toc
figure, 
subplot(2,1,1),
plot(d1, 'b');
grid on
title('Noisy Record ','Rotation',0,'FontSize',14);
xlabel({'Sample'},'FontSize',12); 
ylabel('Amplitude (count)','FontSize',12)
相关文章
|
6月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
307 3
|
6月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
220 6
|
5月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
189 0
|
6月前
|
运维 算法
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
183 0
|
6月前
|
机器学习/深度学习 边缘计算 运维
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
【电能质量扰动】基于ML和DWT的电能质量扰动分类方法研究(Matlab实现)
190 10
|
6月前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
234 2
|
6月前
|
传感器 资源调度 算法
【数据融合】【状态估计】基于KF、UKF、EKF、PF、FKF、DKF卡尔曼滤波KF、无迹卡尔曼滤波UKF、拓展卡尔曼滤波数据融合研究(Matlab代码实现)
【数据融合】【状态估计】基于KF、UKF、EKF、PF、FKF、DKF卡尔曼滤波KF、无迹卡尔曼滤波UKF、拓展卡尔曼滤波数据融合研究(Matlab代码实现)
621 0
|
5月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
266 0
|
5月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
236 0
|
5月前
|
存储 监控 并行计算
目标跟踪中常用点迹航迹数据关联算法的MATLAB实现
通过计算测量点与预测点之间的欧氏距离,选择最近邻点进行关联,适用于单目标跟踪场景。

热门文章

最新文章