当前位置: 首页 > news >正文

基于字典学习的地震数据降噪(MATLAB R2021B)

稀疏表示基于研究者们提出了许多变换基函数的方法逐渐成型,比如小波域,曲波域,dreamlet 域等,其原理是利用地震信号在变换域内的稀疏性和可分离性以去除噪声。继 Donoho发表非线性去噪方法-小波阈值萎缩方法,在后续的研究中,该方法因其具备的低熵性、多尺度性、多分辨率、去相关性、选基灵活性而有更好的局部表示特征能力,并且还具有计算量小,容易实现的特点,在去噪领域中得到了广泛应用。

第一代的曲波变换具备多尺度,多方向特性,是非自适应的,但是因为其寻找实现比较复杂的限制,二代曲波变换被提出。二代和一代构造思想不同,与脊波的理论与实现过程也不同。由于曲波是由各向异性的曲线基元构成,因而在对地震波前特征表示方面较之小波和脊波具备更好的稀疏性。

后续由于字典学习的发展,研究者发现曲波变换作为字典精度很高,不需要学习就能取得很好的效果,解决了地震大数据的冗余性问题,并且方法更简单,运算更快,基于此后来的应用者们发展了一系列的插值,去噪,分离,重构方法。曲波变换中的阈值确定方法也从固定阈值到软阈值,到软硬阈值折中等灵活性选取阈值提高精度,应用的前景十分广阔。

而在近十年来的地震数据处理领域,伴随着人工智能的浪潮,人工智能加专业的交叉发展逐渐风靡,在石油勘探领域亦引用了许多方法。机器学习、模式识别、数据挖掘等专业的交叉应用,互相渗透,后续发展出诸如深度学习、人工神经网络、字典学习、K-最近邻等方法。在物探中也引入了许多方法,来进行地震数据的资料的处理和解释。其中无监督学习基于数据的稀疏性表达,因其自适应性和计算速度快等优势被广泛应用。

数据驱动的字典学习通常用两种方法寻找字典:一种是用干净数据训练字典,但是实际上很难找到干净数据,所以通常可以使用模型来进行预训练;而另一种是用实际数据或者含噪数据来训练字典,该方法学习得到的字典会有更强的适用性和鲁棒性,以及更好的表示效果。鉴于此,采用字典学习对地震数据进行降噪,运行环境为MATLAB R2021B。

function [x, cost] = BPD(y, A, AH, lambda, mu, Nit)% x = BPD(y, A, AH, lambda, mu, Nit)
%
% BASIS PURSUIT DENOISING
% minimize 0.5 * ||y - A x||_2^2 + lambda * || x ||_1
% where
% A * AH = I
%
% INPUT
%   A, AH - function handles
%   mu - Augmented Lagrangian parameter
%   Nit - Number of iterations
%
% OUTPUT
%   x : minimizing vector
%
% Use [x, cost] = BPD(...) to obtain cost function per iterationif nargout > 1ComputeCost = true;cost = zeros(1, Nit);
elseComputeCost = false;
end    x = AH(y);
d = zeros(size(x));for i = 1:Nitu = soft(x + d, lambda/mu) - d;d = 1/(mu + 1) * AH(y - A(u));x = d + u;if ComputeCostresidual = y - A(x);cost(i) = 0.5 * sum(abs(residual(:)).^2) + sum(abs(lambda * x(:))); end
end

图片

图片

图片

图片

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。
完整数据和代码通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1

http://www.lryc.cn/news/394479.html

相关文章:

  • 【Web】
  • kafka-3
  • MySQL性能优化 二、表结构设计优化
  • 用HttpURLConnection复现http响应码405
  • 2-27 基于matlab的一种混凝土骨料三维随机投放模型
  • ISA95-Part4-业务流程的解析与设计思路
  • 【Spring Cloud】一个例程快速了解网关Gateway的使用
  • 仿哔哩哔哩视频app小程序模板源码
  • 数据库存储引擎
  • 【单片机毕业设计选题24049】-基于STM32单片机的智能手表设计
  • 利用面向AWS的Thales Sovereign解决方案保护AI之旅
  • 学习笔记——交通安全分析13
  • PHP-实例-文件上传
  • LeetCode刷题之HOT100之完全平方数
  • 【SpringCloud应用框架】Nacos集群架构说明
  • JS进阶-作用域
  • stm32 使用GPIO模拟串口发送
  • 数据的统计探针:SKlearn中的统计分析方法
  • 实例演示Kafka-Stream消息流式处理流程及原理
  • 【博士每天一篇文献-综述】Threats, Attacks, and Defenses in Machine Unlearning A Survey
  • Python数据分析实战,运输车辆驾驶行为分析,案例教程编程实例课程详解
  • 网络安全法对等级保护中的权利和义务有何规范?
  • 苹果清理软件:让你的设备焕然一新
  • vue前端通过sessionStorage缓存字典
  • React Redux使用@reduxjs/toolkit的hooks
  • Rejetto HFS 服务器存在严重漏洞受到攻击
  • Electron开发 - 如何在主进程Main中让node-fetch使用系统代理
  • vue2 webpack使用optimization.splitChunks分包,实现按需引入,进行首屏加载优化
  • 深入理解 Docker 容器技术
  • redis并发、穿透、雪崩