Python和JAX及MATLAB小波分析导图

2024-09-01 11:36

本文主要是介绍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)

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

👉更新:亚图跨际

这篇关于Python和JAX及MATLAB小波分析导图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126822

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud