Python和JAX及MATLAB小波分析导图

🎯要点

  1. 离散小波变换和逆离散小波变换
  2. 时间序列谱分析
  3. 计算比例图和频谱图显示数据
  4. 莫莱小波时频数据表征
  5. 海表温度异常的区域平均值
  6. 捕捉市场波动时间频率关联信息
  7. 信号和图像分解压缩重建
  8. 降维
  9. 分析金融波动
  10. 连续小波卷积网络和离散小波信号分类
  11. 图像处理、提取地震图速度和衰减参数
  12. 高质量无噪音时频分析
    在这里插入图片描述

Python哈尔小波

在数学中,哈尔小波是一系列重新缩放的“方形”函数,它们共同构成小波族或基。小波分析类似于傅立叶分析,因为它允许用正交基来表示间隔内的目标函数。哈尔序列现在被认为是第一个已知的小波基,并被广泛用作教学示例。哈尔小波也是最简单的小波。哈尔小波的技术缺点是它不连续,因此不可微分。然而,这一特性对于分析具有突然转变的信号(离散信号)来说却是一个优势,例如监控机器中的工具故障。

哈尔小波的母小波函数 ψ ( t ) \psi(t) ψ(t)可以描述为
ψ ( t ) = { 1 0 ≤ t < 1 2 − 1 1 2 ≤ t < 1 0 否则  \psi(t)= \begin{cases}1 & 0 \leq t<\frac{1}{2} \\ -1 & \frac{1}{2} \leq t<1 \\ 0 & \text { 否则 }\end{cases} ψ(t)= 1100t<2121t<1 否则 

其尺度函数 φ ( t ) \varphi(t) φ(t)可描述为
φ ( t ) = { 1 0 ≤ t < 1 0 否则  \varphi(t)= \begin{cases}1 & 0 \leq t<1 \\ 0 & \text { 否则 }\end{cases} φ(t)={100t<1 否则 
与哈尔小波相关的 2×2 哈尔矩阵为
H 2 = [ 1 1 1 − 1 ] H_2=\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] H2=[1111]
使用离散小波变换,可以将任意长度的偶数序列 ( a 0 , a 1 , … , a 2 n , a 2 n + 1 ) \left(a_0, a_1, \ldots, a_{2 n}, a_{2 n+1}\right) (a0,a1,,a2n,a2n+1) 变换为二元序列 -向量 ( ( a 0 , a 1 ) , ( a 2 , a 3 ) , … , ( a 2 n , a 2 n + 1 ) ) \left(\left(a_0, a_1\right),\left(a_2, a_3\right), \ldots,\left(a_{2 n}, a_{2 n+1}\right)\right) ((a0,a1),(a2,a3),,(a2n,a2n+1))。如果将每个向量与矩阵 H 2 H_2 H2 右乘,则得到结果 ( ( s 0 , d 0 ) , … , ( s n , d n ) ) \left(\left(s_0, d_0\right), \ldots,\left(s_n, d_n\right)\right) ((s0,d0),,(sn,dn)) 为快速哈尔小波变换的阶段。通常,我们将序列 s s s d d d 分开,然后继续转换序列 s s s。序列 s s s 通常被称为平均值部分,而 d d d 被称为细节部分。

如果一个序列的长度是四的倍数,则可以构建 4 个元素的块,并使用 4×4 哈尔矩阵以类似的方式对其进行变换
H 4 = [ 1 1 1 1 1 1 − 1 − 1 1 − 1 0 0 0 0 1 − 1 ] H_4=\left[\begin{array}{cccc} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & -1 \end{array}\right] H4= 1110111011011101
它结合了快速哈尔小波变换的两个阶段。

一般来说,2N×2N 哈尔矩阵可以通过以下等式导出。
H 2 N = [ H N ⊗ [ 1 , 1 ] I N ⊗ [ 1 , − 1 ] ] H_{2 N}=\left[\begin{array}{c} H_N \otimes[1,1] \\ I_N \otimes[1,-1] \end{array}\right] H2N=[HN[1,1]IN[1,1]]
其中 I N = [ 1 0 … 0 0 1 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … 1 ] I_N=\left[\begin{array}{cccc}1 & 0 & \ldots & 0 \\ 0 & 1 & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & 1\end{array}\right] IN= 100010001 ⊗ \otimes 是克罗内克积。

Python示例

哈尔小波的特点是简单和二元阶跃函数。其结构有利于图像和信号处理、数值分析,甚至数据压缩领域。其主要优势在于能够提供有关特定函数或数据集的局部频率信息。我们将使用 TensorFlow演示一维离散哈尔小波变换。

pip install numpy
pip install tensorflow
def haar1d_layer(x):outputs = []len = x.shape[1]while len > 1:v_reshape = tf.reshape(x, [-1, len//2, 2])v_diff = v_reshape[:,:,1:2] - v_reshape[:,:,0:1]v_diff = tf.reshape(v_diff, [-1, len//2])outputs.append(v_diff)x = tf.reduce_mean(v_reshape, axis=2)len = len // 2outputs.append(x)return tf.concat(outputs, 1)def haar1d_inv_layer(x):idx = 1len = x.shape[1]while idx < len:v_avg = x[:, -idx:]v_avg = tf.reshape(v_avg, [-1, idx, 1])v_delta = x[:, (len - (idx << 1)):(len - idx)] / 2v_delta = tf.stack([-v_delta, v_delta], axis=2) v_out = v_avg + v_deltav_out = tf.reshape(v_out, [-1, idx*2])x = tf.concat([x[:, :-(idx << 1)], v_out], axis=1)idx = idx << 1return x

haar1d_layer() 函数对输入向量中的元素对进行迭代,计算每对元素的平均值和差异,并将它们写入 output_vectorhaar1d_inv_layer() 函数执行相反的操作,从 input_vector 中获取平均值和差异对,并计算原始值,然后将它们写入 output_vector。函数 stack() 用于将 TensorArray 转换为 Tensor。

使用上述函数

v = tf.Variable([[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
],dtype=tf.float32)x = layers.Input(shape=(v.shape[1],))
y = haar1d_layer(x)
encoder = Model(x, y)
encoded = encoder.predict(v)
print(encoded)y = haar1d_inv_layer(x)
decoder = Model(x, y)
decoded = decoder.predict(encoded)
print(decoded)

运行时,您将看到转换后的向量以及转换后向量的反转结果,该结果应与原始输入向量相同。

👉更新:亚图跨际

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

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

相关文章

Java面试自我介绍

持续更新中 模块序号目录链接前言介绍1前言地址2介绍地址基础知识3计算机网络地址4操作系统地址5Java基础地址6Java并发地址7Java虚拟机地址中间件8Mysql地址9Redis地址10Elasticsearch地址11RabbitMQ地址12RocketMQ地址框架13分布式系统地址14MyBatis地址15Dubbo地址16Spring地…

uniapp组件用法

一. 什么是组件,有什么好处? 在uni-app中&#xff0c;组件是构成应用的基本单位&#xff0c;它们是用来定义用户界面的一部分&#xff0c;并且通常包含了视图和逻辑。组件的设计使得开发者能够以声明式的方式构建应用界面&#xff0c;并且通过组件化的开发方式来提高代码的复…

预训练语言模型的前世今生 - 从Word Embedding到BERT

目录 一、预训练 1.1 图像领域的预训练1.2 预训练的思想二、语言模型 2.1 统计语言模型2.2 神经网络语言模型三、词向量 3.1 独热&#xff08;Onehot&#xff09;编码3.2 Word Embedding四、Word2Vec 模型五、自然语言处理的预训练模型六、RNN 和 LSTM 6.1 RNN6.2 RNN 的梯度消…

GAMES104:10+11游戏引擎中物理系统的基础理论算法和高级应用-学习笔记

文章目录 概览一&#xff0c;物理对象与形状1.1 对象 Actor1.2 对象形状Actor Shape 二&#xff0c;力与运动2.1 牛顿定律2.2 欧拉法2.2.1 显式欧拉法Explicit (Forward) Euler’s Method2.2.2 隐式欧拉法 Implicit (Backward) Euler’s Method2.2.3 半隐式欧拉法 Semi-implici…

C语言典型例题58

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.10 求100~200中的全部素数。 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.10 求100~200中的全部素数。#include <stdio.h> #include <math.h>int m…

大力出奇迹背景下的Scaling Law能否带领我们走向AGI

Scaling Law&#xff08;尺度定律&#xff09; 在人工智能领域&#xff0c;尤其是在大模型的发展中扮演着至关重要的角色。它描述了模型性能如何随着模型规模&#xff08;如参数数量&#xff09;、数据量和计算资源的增加而提升。这一定律对于理解大模型的能力扩展和优化训练策…

Spring框架;Spring中IOC简介及搭建;Spring中AOP简介;

一&#xff0c;Spring介绍 Spring 的全称&#xff1a; Spring Framework Spring是一个优秀的开源的轻量级的企业应用开发框架&#xff0c;是为了解决企业应用程序开发复杂性而创建的。它大大简化了java企业级开发的复杂性&#xff0c;提供了强大&#xff0c;稳定的功能&#xf…

asp.net core在win上的发布和部署

一、asp.net core两种发布方式 1、两个发布方式——【框架依赖发布】和【独立发布】 2、两种发布方式的差别 二、发布的详细过程 1、【生成】->【发布】 2、框架依赖发布 设置发布参数&#xff0c;然后进行发布 发布好的文件&#xff0c;把它们放到一个新的目录文件夹里 …

Yolov5 AI学习笔记

Yolov5 AI学习笔记 环境准备 需要Python的开发环境&#xff0c;安装Anaconda。 Anaconda的一些命令&#xff1a; # 创建虚拟环境 conda create -n yolo_cpu python3.9 # 查看虚拟环境 conda env list # 激活虚拟环境 conda activate <env_name>Yolov5上手 下载源码 …

六、Selenium操作指南(三)

文章目录 七、模拟鼠标操作&#xff08;一&#xff09;左键 click()&#xff08;二&#xff09;右键 context_click()&#xff08;三&#xff09;双击 double_click()&#xff08;四&#xff09;拖拽 drag_and_drop(source,target)&#xff08;五&#xff09;悬停 move_to_elem…

【动图效果概览】自动化建链后,Exata调用STK更新卫星位置

如下图所示&#xff0c;动画遵循 时间前进方向&#xff0c;划分截取为5段 &#xff08;因为每张照片限制大小5MB&#xff0c;不够应该够看清个大概意思了&#xff09;&#xff1a;

结构型设计模式-适配器(adapter)模式-python实现

设计模式汇总&#xff1a;查看 通俗示例 想象一下&#xff0c;你刚从国外带回一台最新的笔记本电脑&#xff0c;但是你发现它的电源插头是德标插头&#xff0c;而家里的电源插座是中式插座&#xff0c;这时怎么办呢&#xff1f;你需要一个电源适配器来将德标插头转换成中式插座…

读软件开发安全之道:概念、设计与实施15安全测试

1. 安全测试 1.1. 测试是开发可靠、安全代码中的关键一环 1.2. 测试安全漏洞的目的是主动检测 1.3. 模糊测试是一种强大的补充技术&#xff0c;可以帮助我们找到更深层次的问题 1.4. 针对当前漏洞创建的安全回归测试&#xff0c;目的是确保我们不会再犯相同的错误 1.5. 大…

省略号(一行多行)vue3

组件 <template><div ref"tooltipParentRef" class"moreTipText"><el-tooltip:placement"props.placement"effect"dark":enterable"true":show-after"200":offset"10":popper-class&qu…

【学习笔记】卫星通信NTN 3GPP标准化进展分析(三)- 3GPP Release17 内容

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xff…

秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie

文章目录 引言正文200-岛屿数量个人实现 994、腐烂的橘子个人实现参考实现 207、课程表个人实现参考实现 208、实现Trie前缀树个人实现参考实现 总结 引言 正文 200-岛屿数量 题目链接 个人实现 我靠&#xff0c;这道题居然是腾讯一面的类似题&#xff0c;那道题是计算最…

【TNT】Target-driveN Trajectory Prediction学习笔记

这里写自定义目录标题 前言(文章的核心思想)(1阶段)(2阶段)(3阶段)(网络框架)1. 场景上下文编码2. 目标预测3. 目标条件运动估计4. 轨迹评分与选择 (模型推理)(总结)(消融研究结论)(网络)(问题厘清) TNT Framework 前言 论文: https://arxiv.org/abs/2008.08294代码: https://…

机器学习(五) -- 监督学习(8) --神经网络1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;2&#xff09; --降维2 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被…

【个人笔记】Git

Tiltle: Github 使用 &#x1f4d6; 快速使用 音标&#xff1a;[ɡɪthʌb] 0 介绍 Github是一个面向开源与私有软件项目的 托管平台&#xff0c;Git源自其内部的版本库格式.2008年上线&#xff0c;18年被微软收购&#xff1b;有很多知名的开源项目&#xff1a;jQuery、pytho…

如何在 CentOS 6 上安装 Nagios

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 Status: 已弃用 本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器&#xff0c;我们强烈建议升级或迁移到受支持…