Qt对地震数据(文件格式*.Segd)实现将时域数据转频域数据

news2024/9/23 3:17:39

文件格式以segd为例,其他地震文件格式同理。

时域数据

时域数据通俗点讲就是我在某个时间段记录的一个值,然后经过一段时间后,产生的一组数据就是时域数据。

频域数据

频域数据是指信号在频率域上的表示,即信号的频率特性。频域分析是将时域信号转换为频域信号的过程,通过分析信号在不同频率上的成分和振幅来理解信号的频谱特性

时域转频域

时域转频域需要使用FFT(快速傅里叶运算)进行转化

segd文件格式就不再介绍,无非就是文件头,道头,数据位,读出原始数据,然后进行操作即可。

前期工作

Qt安装FFT可以参考这篇文章链接

Qt对Segd数据时域转频域

QVector<double> EP_Work::calculateSpectrum(const QVector<double> data)
{
    QVector<double> spectrum(data.size()/2);
    fftw_complex *in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * data.size());
    fftw_complex *out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * data.size());
    fftw_plan plan = fftw_plan_dft_1d(data.size(), in, out, FFTW_FORWARD, FFTW_ESTIMATE);

    for (int i = 0; i < data.size(); i++) {
        in[i][0] = data[i];
        in[i][1] = 0;
    }

    fftw_execute(plan);

    for (int i = 0; i < data.size()/2; i++) {       
        double re = out[i][0];
        double im = out[i][1];

        //double p=(re * re + im * im) / N;
        double p=sqrt(re * re + im * im);
        spectrum[i] =10 * log10(p) ;  //进行指数运算,缩小最大值与最小值范围
        //spectrum[i] = sqrt(pow(out[i][0], 2) + pow(out[i][1], 2));
        //spectrum[i] = p;
    }
    fftw_destroy_plan(plan);
    fftw_free(in);
    fftw_free(out);

    return spectrum;
}

Segd波形
在这里插入图片描述

进行fft运算后的幅度谱
在这里插入图片描述
这个小工具还可进行查看功率谱,相干性,以及相位谱等。
下载地址
感谢支持,有什么不对的地方欢迎指出问题

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

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

相关文章

PowerShell快速ssh

文件 ~/.ssh/config 内容 Host masterHostName 192.168.10.154User root访问 $ ssh master 效果 进阶 配置秘钥 待续。。。

Transform、GameObject、Rigidbody

文章目录 零、初衷和溯源一、Transform类二、GameObject类三、Rigidbody类 零、初衷和溯源 这三个类的API官方文档&#xff0c;有些杂乱——本可以把它们分门别类的整理好&#xff0c;结果却是凌乱的堆在一起&#xff0c;令人恼火。   之所以把它仨放一起总结&#xff0c;是因…

【数据挖掘】时间序列教程【十】

5.4 通用卡尔曼滤波 上一节中描述的状态空间模型作为观测方程的更一般的公式 和状态方程 这里是一个p1 向量

simulink stateFlow流程图

基础 修改分支优先级 使用matlab workspace变量 例题 输出数组输入数组的平方 for循环 使用脚本的数值 实现数组索引

2021 RoboCom 世界机器人开发者大赛-本科组(初赛)

编程题得分&#xff1a;100 总分&#xff1a;100 7-1 懂的都懂 (20分) 众所周知&#xff0c;在互联网上有很多话是不好直接说出来的&#xff0c;不过一些模糊的图片仍然能让网友看懂你在说什么。然而对这种言论依然一定要出重拳&#xff0c;所以请你实现一个简单的匹配算法。 …

图像分类论文阅读

该论文通过结合VGG-19和VIT模型,实现乳腺超声图像的分类Breast Ultrasound Images Dataset | Kaggle PyTorch VGG19复现代码 # VGG19.py import torch import torch.nn as nnclass Conv(nn.Module):def __init__(self, in_channels, out_channels, kernel_size=1, stride=1,…

面向 “大模型” 的未来服务架构设计

文章目录 大模型热潮大模型落地服务设计 or 重构未来的服务架构微服务化分层化 大模型应用架构架构设计图架构 Demo 实现 小结附录 大模型热潮 今年的互联网赛道中 “顶流” 非大模型莫属。 科技部新一代人工智能发展研究中心 5 月底发布的《中国人工智能大模型地图研究报告》显…

极米H6 4K光学变焦版 打造全新4K观影体验

随着时代的发展&#xff0c;拥有家用智能投影的家庭也越来越多了。当下许多家用投影仪都搭载了智能系统&#xff0c;内含大量片源。另外&#xff0c;投影仪还可以通过不同接口接入不同的设备&#xff0c;如游戏机、电脑、U盘等。只需要一台投影便可以实现在线追剧、听歌、游戏、…

ZER-10-EP-L350C-224叠加式比例溢流阀放大器

ZER-06-EP-L105C-224、ZER-06-EP-L210C-224、ZER-06-EP-L350C-224、ZER-10-EP-L105C-224、ZER-10-EP-L210C-224、ZER-10-EP-L350C-224叠加式比例溢流阀由主阀体和溢流阀、阀插件、佰业比例放大器组成&#xff0c;标准叠加安装接口&#xff0c;与换向阀等配合使用&#xff0c;便…

【ELK企业级日志分析系统】安装与部署ELK详解

ELK 企业级日志分析系统 1.ELK概述1.1 ELK简介1.2 可以添加的其它组件1.3 filebeat结合logstash带来好处1.4 为什么要使用ELK?1.5 完整日志系统基本特征 2.ELK的工作原理3.部署ELK集群3.1 安装Elasticsearch3.2 安装Elasticsearch-head插件3.3 安装ELK Logstash3.4 安装ELK Ki…

HO49-二叉树的最近公共祖先

leetcode原题链接&#xff1a;二叉树的最近公共祖先 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的…

Linux中的GO更新与冲突

发行版&#xff1a;CentOS GO更新 在使用go get安装某模块时&#xff0c;报错&#xff1a; ../../pkg/mod/golang.org/x/sysv0.5.0/unix/syscall.go:83:16: undefined: unsafe.Slice ../../pkg/mod/golang.org/x/sysv0.5.0/unix/syscall_linux.go:2271:9: undefined: unsafe.…

Verilog学习笔记5:简单的加法器

代码&#xff1a; //加法器 timescale 1ns/10ps module add( a, b, y ); input a; input b; output[1:0] y;assign yab;endmodule //testbench module add_tb; reg a; reg b; wire[1:0] y;add add(.a(a),.b(b),.y(y));initial begina<0;b<0;#10 a<1;b<0;#10 a&l…

SpringMVC 中的视图如何渲染模型数据

SpringMVC 中的视图如何渲染模型数据 SpringMVC 是一个基于 Spring 框架的 Web 框架&#xff0c;它提供了一种方便的方式来处理 HTTP 请求和响应。在 SpringMVC 中&#xff0c;视图是用来渲染模型数据的组件&#xff0c;它们负责将模型数据转换为 HTML、JSON、XML 等格式的响应…

风沙文字粒子制作

目录 一、导入素材 二、合成介绍 三、文字合成新建和制作 四、文字动画合成新建和制作 五、风沙文字消失合成的新建和制作 六、风沙文字消失合成制作完成 七、制作风沙文字出现合成 风沙文字粒子效果如下&#xff1a; AE模板风沙文字粒子宣传片片头片尾 一、导入素材 打…

Windows server 2012服务器远程桌面登录时出现错误提示:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断

简单粗暴&#xff1a; Windows server 2012服务器远程桌面登录时出现错误提示&#xff1a;“由于没有远程桌面授权服务器可以提供许可证&#xff0c;远程会话被中断。请跟服务器管理员联系 使用 mstsc /admin /v:目标ip 来强制登录服务器&#xff0c;但只能是管理员身份…

最简单的大屏可视化解决方案---autofit.js

在工作开发当中&#xff0c;我们避免不了要去做大屏。那么做大屏其实最难的点和最核心的问题就是适配&#xff0c; 下面为大家介绍最好用的大屏解决方案——autofit.js。 “一行代码搞定&#xff0c;开袋即食&#xff01;&#xff01;&#xff01;” 效果图展示&#xff0c;…

第4章-面向对象编程(上)

1. 面向过程与面向对象 面向过程 面向对象 2. 面向对象的思想概述 类(Class)和对象(Object)是面向对象的核心概念 类是对一类事物的描述&#xff0c;是抽象的、概念上的定义对象是实际存在的该类事物的每个个体&#xff0c;因而也称为实例(instance)属性&#xff1a;对应类…

Microsoft Remote Desktop for mac安装教程

适用于Mac的Microsoft远程桌面测试版&#xff01;Microsoft Remote Desktop Beta for Mac是一种远程工具&#xff0c;允许用户从Mac远程访问基于Windows的计算机。使用此工具&#xff0c;用户可以随时随地使用Mac连接到远程桌面、应用程序和资源。 Microsoft Remote Desktop B…

分享一下快速搭建IntelliJ IDEA开发环境的完整教程

目录 第一步&#xff1a;安装jdk&#xff0c;推荐安装jdk1.8 第二步&#xff1a;安装Maven 第三步&#xff1a;配置环境变量 1、jdk环境变量配置 2、maven环境变量配置 第四步&#xff1a;修改Maven仓库的地址 第五步&#xff1a;修改idea设置 IntelliJ IDEA是我们Java程…