MATLAB环境下使用训练好的卷积神经网络进行大地电磁数据噪声抑制

news2024/10/3 2:22:50

大地电磁MT是一种比较成熟的地球物理勘探方法,通过计算地面测量的正交电场分量和磁场分量的扰动值研究地下介质的电性结构。MT在油气和工程勘探领域得到了广泛应用。但是由于该方法以天然电磁场为场源,存在地面信号弱和源激发随机的缺点,极易受到各类噪声的影响,致使后续反演结果中存在不确定性。因此,在MT方法的发展过程中,消除噪声一直是地球物理勘探研究的重点。

学者们提出了许多消除MT噪声的数据处理方法,主要包括频域方法、时-频域方法及时间序列编辑方法。频域处理方法最典型的代表是最小二乘法、鲁棒估计方法和远参考方法。利用最小二乘法进行去噪的过程中会产生“飞点”,导致估计值偏离真值。鲁棒估计方法要求大部分数据是可靠的,当输入数据包含较高水平的噪声时,鲁棒估计反而会加重噪声的影响。对于远参考去噪方法,远参考点的处理效果取决于参考点与本地信号及噪声的相关性,在实际应用中,在信号相关的情况下,很难选择一个合适位置设置参考点以保证测点与噪声源之间的距离足够远。时—频域处理方法的典型代表是小波变换和HHT变换。小波变换方法需进行母小波的选取,而对于噪声成分复杂、信号频谱丰富的实测MT数据,去噪小波变换中关于母小波的选取规则尚未有明确的结论。基于HHT变换的去噪方法的缺点是会在窗口的两端引入误差。对于时间序列编辑方法,认为在时域进行信噪分离是去除强人文噪声最直接、有效的手段。到目前为止,数学形态学、S变换、同步时间序列依赖、信号子空间增强、压缩感知重构等信号处理方法已经应用于MT数据的噪声压制,但这些方法都以一定的先验信息为前提,限制了方法的实际应用。

伴随着人工智能中深度学习算法的快速发展,深度学习算法对数据的学习能力逐渐提高,在智能控制、模式识别领域得到广泛应用,这也为大地电磁数据噪声抑制提供了新的机遇。为了更加智能化、低成本的对大地电磁数据噪声抑制, 越来越多的科学研究人员尝试将深度学习方法应用于大地电磁数据去噪中。

本例在MATLAB R2021B环境下使用训练好的卷积神经网络CNN进行大地电磁数据噪声抑制,部分代码如下:

clear
fd=200;%"fd" is the length of the data segment.
load('net_CNN.mat');%"net_CNN" is the CNN model obtained by training, where the network layer and parameters can be found.
load('CleanEX.mat');%"CleanEX" is the original clean data of Qinghai measured site QH401504.
load('QH_noise_data.mat');%"QH_noise_data" is the data after adding noise to the Qinghai measured site QH401504.
%% Note: The number of network layers and parameters can be obtained from the network model(net_CNN) provided, but there may be a little deviation in the actual processing of the model obtained by each training.
%% The following is CNN's procedure for processing noisy data
MT=QH_noise_data;Dnoise=[];
for i = 1:length(MT)
    if mod(i,fd)==0
        a = MT(i-fd+1:i);
        In=reshape(a,fd,1);
        In=reshape(In,[fd,1,1,1]);
        out=predict(net_CNN,In);
        DEX=reshape(out,fd,1);
        Dnoise=[Dnoise,a-DEX'];
    end
end
Dnoise_CNN=Dnoise;
%% The following is WT's procedure for processing noisy data,  WT(Wavelet threshold method)
Dnoise_WT=fun_WT(MT);
%% Noise contour 
A=CleanEX;
B=MT;
C=Dnoise_WT;
D=Dnoise_CNN;
Original_noise_contour=B-A;
WT_noise_contour=B-C;
CNN_noise_contour=B-D;

%%
figure(1)
subplot 411,plot(A,'k'),legend('Original clean data'),axis([0 length(B) min(B)/4 max(B)/4])
subplot 412,plot(B,'b'),legend('Noise data'),axis([0 length(B) min(B) max(B)])
subplot 413,plot(C,'r'),legend('Denoise data by WT'),axis([0 length(B) min(B)/4 max(B)/4])
subplot 414,plot(D,'g'),legend('Denoise data by CNN'),axis([0 length(B) min(B)/4 max(B)/4])

figure(2)
subplot 311,plot(Original_noise_contour,'k'),legend('Original noise contour'),axis([0 5000 -8000 8000])
subplot 312,plot(WT_noise_contour,'b'),legend('Noise contour by WT'),axis([0 5000 -8000 8000])
subplot 313,plot(CNN_noise_contour,'r'),legend('Noise contour by CNN'),axis([0 5000 -8000 8000])

结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1412687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Doris 与 Clickhouse 对比(一)

1. 常用引擎 ☕️ Doris 表数据模型 duplicate key 🎬 场景:适用于数据无需提前聚合的分析业务。 ⚠️ 注意点:只指定排序列,相同的行并不会合并。 unique key 🎬 场景:适用于有更新需求的业务。 ⚠…

Dlearning

Deep Learning Basic 神经网络: #mermaid-svg-rR22a8Udy5SxGOoP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rR22a8Udy5SxGOoP .error-icon{fill:#552222;}#mermaid-svg-rR22a8Udy5SxGOoP .error-t…

JPDA框架和JDWP协议

前言 在逆向开发中,一般都需要对目标App进行代码注入。主流的代码注入工具是Frida,这个工具能稳定高效实现java代码hook和native代码hook,不过缺点是需要使用Root设备,而且用js开发,入门门槛较高。最近发现一种非Root环境下对Debug App进行代码注入的方案,原理是利用Jav…

使用js判断list中是否含有某个字符串,存在则删除,

显示上图中使用了两种方式, 左边的是filter将不等于userCode的元素筛选出来组成一个新的list, userCodeList.filter(item> item!userCode);但是上面这个方法在IE浏览器中不支持, 所以改成了右边的方法,使用splice…

【代码随想录-数组】有序数组的平方

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

MAIA ACTIVE×实在RPA丨低成本、高效率管理达人推广计划,业务提效超6倍

MAIA ACTIVE(以下简称“MAIA”)是一个专为亚洲女性设计的运动服品牌,于2016年成立于上海。作为女装细分市场的头部企业,MAIA凭借与抖音、小红书等平台达人合作,迅速积累了知名度,并长期保持品牌曝光度和销售…

STM32标准库——(4)OLED显示屏

1.STM32调试方式 串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上Keil调试模式:借助Keil软件的调试模式&…

假期刷题打卡--Day15

1、MT1152韩信又生气了 韩信点兵(大于10人),三个三个一排少1个人,五个五个一排又少1个人,七个七个一排还少1个人。韩信生气了,从别的队伍里调来一个人!这样不管是三个一排五个一排还是七个一排都完美了。问原本最少应该有多少人。…

STM32标准库——(3)GPIO输入

1.按键简介 按键:常见的输入设备,按下导通,松手断开 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动 1.1 硬件电路图 上面两个是外加上拉电阻(常用…

一款颜值与实力并存的翻页时钟(免费)

FliTik是一款颜值与实力并存的翻页时钟,安卓端是完全免费的,无任何广告,极简风 ,软件默认是12小时制,可以在设置中启用24小时制,并且还支持设置显示秒钟、日期、文案,滴答声和语音报时。 支持横…

[C++开发 02_1/5_ 程序的内存模型(84)]

知识点1:内存分区模型 1.1 程序运行前 命名技巧:c--const(初始化之后不能被修改) g--global(全局的) l -- local(局部的) 代码区和全局区都只是在程序运行前的区域。 在程序运行之后才会有栈…

mysql高可用设计,主库挂了怎么办

实际上高可用就是系统能提供的一种无故障服务能力,就是避免宕机出现不能服务的场景。 首先来说对于无状态服务的高可用设计是比较简单的,发现有不能用的就直接停了换别的服务器就行,比如Nginx。这里说一下无状态服务就是不需要记录你的状态、…

玩转WEB接口之一 【HTTP调试测试神器 httpbin使用】

文章目录 一、项目、作者何许人也二、观摩庐山真面目三、怎么玩四、后端怎么调用1. RestTemplate测试代码2. 运行结果 一、项目、作者何许人也 httpbin是大神kennethreitz为搭建测试用的http服务而写的项目,httpbin 这个服务应用能测试HTTP请求及响应的各种信息&am…

什么是框架 确定伦敦金的框架为何重要?

在伦敦金投资中,我们要进行分析或者交易,都要将伦敦金走势置于一个框架内。什么才是框架呢?笔者认为,在当前伦敦金走势的上方和下方画出支撑阻力位,这就是框架。但我们要注意框架得能够立得起来,那才算是好…

Python之线程与进程相关介绍

Python 线程与进程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 使用 threading 模块 …

TCP 状态转换

上图中还没有进行握手的时候状态是关闭的。 三次握手状态的改变: 客户端发起握手。 调用 connect() 函数时状态转化为:SYN_SENT。调用 listen() 函数时状态转换为:LISTEN。ESTABLISHED是被连接的状态。 四次挥手状态的改变: …

实战EDA电子设计自动化经典入门模型VHDL代码编写(含代码解释)上篇--状态机,逻辑设计:Y=AB+C

前言 电子设计自动化(EDA): 定义:EDA是用于设计和开发复杂的电子系统(如集成电路)和印刷电路板的软件工具集合。这些工具通常用于设计电路、进行仿真测试、分析电路行为以及协助制造过程。应用:…

013:获取K线图,增加周期可选

改进《001:如何获取A股个股的前复权K线数据》,增加周期可选。 代码: import tkinter as tk from tkinter import messagebox from tkcalendar import Calendar import pandas as pd import requests from urllib.parse import urlencodedef gen_secid(…

软件设计师——软件工程(五)

📑前言 本文主要是【软件工程】——软件设计师——软件工程的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

颠覆式创新:LAXCUS分布式操作系统7.0

在这轮AI浪潮中,英伟达已经获得了硬件算力入口,Laxcus要获取软件算力入口。 有几位网友想了解我们正在研发的Laxcus分布式操作系统7.0的情况。应他们要求,今天就说说Laxcus 7.0版本。Laxcus 7.0是一个全新的操作系统,具有很多独特…