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

文件格式以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.hqwc.cn/news/21726.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Zookeeper】

目录 一、Zookeeper 概述1、Zookeeper 定义2、Zookeeper 工作机制3、Zookeeper 特点4、Zookeeper 数据结构5、Zookeeper 应用场景6、Zookeeper 选举机制 二、部署 Zookeeper 集群1.安装前准备1、关闭防火墙2、安装 JDK3、下载安装包 2.安装 Zookeeper1、修改配置文件2、拷贝配置…

前端(六)——TypeScript在前端中的重要性与应用

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;TypeScript在前端中的重要性与应用 文章目录 什么是TypeScript&#xff1f;TypeScript与JavaScript的关系如何使用TypeScriptTypeScript在前端开发中的应用场景提升开发效率减少错误和调试时间优化…

“百模大战”愈演愈烈,AI大模型的现状与发展

最近&#xff0c;随着 OpenAI 发布的以用户为中心的聊天机器人 ChatGPT 的发布&#xff0c;大型语言模型 (LLM) 引起了人们的关注。大模型的好坏与否&#xff0c;主要涉及三个方面&#xff1a;算法、算力和数据。算法决定了其本身的学习能力&#xff0c;算力则影响着算法的学习…

基于微信小程序的英语单词记忆系统的设计与实现(论文+源码)_kaic

摘 要 当前时期&#xff0c;国内的经济获得了非常快速的发展&#xff0c;互联网技术在持续的创新和完善&#xff0c;教育教学方面也在不断的进步&#xff0c;教育全面深化改革在发展&#xff0c;并且移动互联网技术在教育领域获得了大量的实践以及应用。语言的全球化慢慢的变…

golang macaron静态资源访问配置

1、本地文件目录如下&#xff1a; 2、macaron配置 package mainimport ("log""net/http""gopkg.in/macaron.v1" )func myHandler(ctx *macaron.Context) string {return "the request path is: " ctx.Req.RequestURI }func main() …

数据库约束与表的关系(数据库系列4)

目录 前言&#xff1a; 1.数据库的约束 1.1约束类型 1.1.1 not null 1.1.2 unique 唯一约束 1.1.3 default 默认值约束 1.1.4 primary key 主键约束 1.1.5 foreign key 外键约束 2.表的关系 2.1 一对一 2.2 一对多 2.3 多对一 3.新增 4.聚合查询 4.1聚合函数 4.…

Android屏幕适配方案

方案一&#xff1a; 安卓app禁止跟随系统字体大小&#xff0c;显示大小而改变。 1、定义工具类 public final class DisplayUtil {/*** 禁用7.0&#xff08;23&#xff09;以上显示大小改变和文字大小*/public static Resources disabledDisplayDpiChange(Resources res) {C…

MySQL在Centos 7环境安装

说明&#xff1a; 1.安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;一旦安装&#xff0c;普通用户都能使用。 2.初期练习&#xff0c;mysql不进行用户管理&#xff0c;全部使用root进行&#xff0c;尽快适应mysql语句&#xff0c;后面学了用户管理&#xff0c;在考…

面试题更新之-hook中setState原理

文章目录 hook是什么&#xff1f;hook中setState原理 hook是什么&#xff1f; 在React中&#xff0c;Hook是一种用于在函数组件中添加状态和其他React特性的函数。它们被引入到React 16.8版本中&#xff0c;旨在解决使用类组件编写复杂逻辑时出现的一些问题。 使用Hook&#…

内 网 优 化

拓扑 需求 1&#xff09;所有部门中都使用了网关冗余技术&#xff0c;为了增强网关稳定性和冗余性 -配置VRRP -SW5是VLAN10和VLAN20的Master ,是VLAN30的Backup -SW6是VLAN10和VLAN20的Backup,是VLAN30的Master 2&#xff09;交换机之间存在很多冗余链路&#xff0c;必须防止环…

浅谈炼钢厂能源计量管理系统的设计与应用

安科瑞 华楠 摘要: 从能源计量和管理的角度&#xff0c;论述了炼钢厂的能源计量管理系统的基本组成及功能。该系统的建立&#xff0c;将使炼钢厂能源介质的计量管理工作实现自动采集、瞬时监测、故障报警、能流监视&#xff1b;完成报表统计、离线输入、成本分析、预测参考等功…

flutter开发实战-实现webview与Javascript通信JSBridge

flutter开发实战-实现webview与H5中Javascript通信JSBridge 在开发中&#xff0c;使用到webview&#xff0c;flutter实现webview是使用原生的插件实现&#xff0c;常用的有webview_flutter与flutter_inappwebview 这里使用的是webview_flutter&#xff0c;在iOS上&#xff0c;…