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

大地电磁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])

结果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(27)Linux信号的产生核心转储---初步认识信号

一、信号入门 1. 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时, 你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知&#xff0…

Apollo Cyber RT:引领实时操作系统在自动驾驶领域的创新

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

uniapp状态管理Vuex介绍及vuex核心概念

状态管理Vuex Vuex 是什么&#xff1f; Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 uni-app 内置了 Vuex 什么是“状态管理模式”&#xff1f; <!…

x-cmd pkg | haxor-news - Hacker News CLI

目录 简介首次用户功能特点进一步探索 简介 haxor-news 是一个用于在终端上查看 Hacker News 的内容。它可以让你在命令行查看/过滤 Hacker News 的帖子、评论、用户信息等&#xff0c;如过去 60 分钟内发布的最新评论。 Hacker News 是一家由 Paul Graham 创建的关于计算机黑…

【研0日记】24.01.26

回家倒计时5天 今天怎么说呢&#xff0c;确实是差不多写完了&#xff0c;虽说可以继续写&#xff0c;但是再写就超12页了&#xff0c;要额外收钱&#xff0c;而且我还要删掉一点 好贵啊&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 今天还照老师…

基于固件库的RT-THREAD移植

为什么要使用操作系统 当我们进入嵌入式这个领域的时候&#xff0c; 往往首先接触的都是单片机编程&#xff0c; 单片机编程又首选 51 单片机来入门。 这里面说的单片机编程通常都是指裸机编程&#xff0c;即不加入任何 RTOS&#xff08;Real Time Operation System 实时操作系…

C++ 重点内容:友元

目录 友元函数&#xff1a; 友元成员函数&#xff1a; 友元类&#xff1a; 友元是否有悖于OOP? 总结&#xff1a; 类因为具有封装和信息隐藏的特性&#xff08;类外函数无法访问类的私有、保护成员&#xff09;&#xff0c;C提出友元解决特定的编程需要&#xff1b;友元分…

计算机网络的体系结构的各层在整个过程中起到什么作用?

ps&#xff1a;本文章的图片内容来源都是来自于湖科大教书匠的视频&#xff0c;声明&#xff1a;仅供自己复习&#xff0c;里面加上了自己的理解 这里附上视频链接地址&#xff1a;1.6 计算机网络体系结构&#xff08;4&#xff09;—专用术语_哔哩哔哩_bilibili 目录 &#x…

day3C++

设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespace std;clas…

阿里云幻兽帕鲁服务器创建和配置教程

如何自建幻兽帕鲁服务器&#xff1f;基于阿里云服务器搭建幻兽帕鲁palworld服务器教程来了&#xff0c;一看就懂系列。本文是利用OOS中幻兽帕鲁扩展程序来一键部署幻兽帕鲁服务器&#xff0c;阿里云百科aliyunbaike.com分享官方基于阿里云服务器快速创建幻兽帕鲁服务器教程&…

静态独享长效IP的优点有哪些?静态独享长效IP有哪些应用场景?

随着互联网的不断发展&#xff0c;IP地址作为网络通信中的重要标识&#xff0c;其重要性日益凸显。静态独享长效IP作为一种特殊的IP地址类型&#xff0c;具有许多优点&#xff0c;适用于多种应用场景。本文将详细介绍静态独享长效IP的优点以及适用场景。 一、静态独享长效IP的优…

Unity之动画和角色控制

目录 &#x1f4d5; 一、动画 1.创建最简单的动画 2.动画控制器 &#x1f4d5;二、把动画和角色控制相结合 &#x1f4d5;三、实现实例 3.1 鼠标控制角色视角旋转 3.2 拖尾效果 &#x1f4d5;四、混合动画 最近学到动画了&#xff0c;顺便把之前创建的地形&#xff0…

数据库练习

练习题目 创建职工表以及职工工资表 职工表字段&#xff1a;工号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄 工资表字段&#xff1a;编号自增&#xff0c;职工工号&#xff0c;基础工资10000 通过触发器实现&#xff1a; 对职工进行添加时&#xff1a; 工资表中也要体现…

Vue2学习之第六、七章——vue-router与ElementUI组件库

路由 理解&#xff1a; 一个路由&#xff08;route&#xff09;就是一组映射关系&#xff08;key - value&#xff09;&#xff0c;多个路由需要路由器&#xff08;router&#xff09;进行管理。前端路由&#xff1a;key是路径&#xff0c;value是组件。 1.基本使用 安装vue-…

水滴邮件营销:让企业营销更简单、更高效

企业在利用邮件开发客户、推广产品的时候&#xff0c;最终目的是想产生转化&#xff0c;获得收益。邮件营销有他得天独厚的优势&#xff0c;它为买卖双方提供了一个交流平台&#xff0c;并且只要收件人同意&#xff0c;企业就可以长期对其进行个性化营销。这为企业积累长期忠实…

vue实现在线Excel表格功能

目录 1.安装x-data-spreadsheet xlsx 2.引入 3.使用 1.安装x-data-spreadsheet xlsx npm i x-data-spreadsheet xlsx2.引入 import zhCN from "x-data-spreadsheet/src/locale/zh-cn"; import Spreadsheet from "x-data-spreadsheet"; import * as X…

CSS之webkit内核中的属性text-stroke

让我为大家介绍一下text-stroke 大家是否想过要弄一个描边过的文字&#xff0c;接下来&#xff0c;text-stroke就可以为你解决 text-stroke是一个复合属性&#xff0c;里面有两个参数&#xff1a;描边的尺寸 描边的颜色 <!DOCTYPE html> <html lang"en">…

【PCL】(六)点云矩阵变换

【PCL】&#xff08;六&#xff09;点云矩阵变换 以下代码实现使用Eigen库定义的4x4矩阵对从PCD或PLY文件加载的点云进行旋转和平移变换&#xff0c;并显示原始和变换后的点云。 matrix_transform.cpp&#xff1a; #include <iostream> #include <pcl/io/pcd_io.h&…

Java 字符串 05 练习-遍历字符串和统计字符个数

代码&#xff1a; import java.util.Scanner; public class practice{public static void main(String[] args) {//键盘录入一个字符串&#xff0c;并进行遍历&#xff1b;Scanner input new Scanner(System.in);System.out.println("输入一个字符串&#xff1a;")…

springboot347基于web的铁路订票管理系统

获取源码——》公主号&#xff1a;计算机专业毕设大全