连续小波变换

1 连续小波变换

连续小波变换(CWT)用于分解小波信号。小波是时间上小的高度局部的振荡。傅里叶变换将信号分解无限长的正弦和余弦,从而丢失了所有时间位置信息,而CWT 的基本功能是时间局部化父小波的缩放和移位版本。CWT 用于构建信号的时频表示,以提供非常好的时间和频率定位

CWT 是绘制非平稳信号变化特性的绝佳工具。CWT 也是确定信号在全局意义上是否平稳的理想工具。当信号被认为是非平稳信号时,CWT 可用于识别数据流的平稳部分。

CWT定义如下:

CWT 是数据序列的卷积,具有父小波的缩放和平移版本,即 Ψ 函数。这种卷积可以直接实现,如第一个方程,也可以通过第二个方程中基于FFT的快速卷积来实现。

注意,CWT 是一个连续函数,但离散数据序列 x 及其离散傅里叶变换除外。在这些方程中,* 表示复共轭,N 是数据序列的长度,s 是小波标度,δt 是采样间隔,n 是局部时间指数,ω 是角频率。每个方程都包含归一化,因此小波函数在每个尺度上都包含单位能量。

在 CWT 中,对于使用的每个尺度值,将计算缩放小波与数据流的连续段之间的相关性。CWT 光谱可以使用任何所需密度的线性或对数尺度。如果需要,可以为较窄的频率范围生成高分辨率频谱。卷积在每个尺度上最多可以进行 N 次,如果使用 FFT,则必须每 N 次进行一次。CWT 由所用每个刻度的 N 个频谱值组成,每个频谱值都需要一个逆 FFT。因此,CWT 的计算负载和内存要求相当高。CWT 中这种高冗余度的优点是具有精确的时频频谱。

2 基本小波函数(主小波)

与始终使用复指数基函数(正弦和余弦)的傅里叶分解不同,小波分解使用时间局域振荡函数作为分析小波或父小波。父小波是时间和频率上的连续函数,用作源函数,从中构造缩放和平移的基函数。父小波可以是复数或实数,它通常包括一个可调参数,用于控制局部振荡的特性。小波分析比傅里叶分析更复杂,因为它必须指定从中构造基本函数的父小波。

1 Morlet小波

最常用的 CWT 小波是 Morlet小波,这是一种复高斯窗口正弦波,在时域和频域中定义如下:

在这些方程中,η 是无量纲时间参数,m 是波数,H 是 Heaviside 函数。

在下面的时间图中,显示了可调参数 m(波数)为 6 的 Morlet 小波的实部和复部:

可调参数为 20 的 Morlet 小波在时域中具有非常不同的表示:

Morlet 小波的振荡次数近似于波数的数量。

2 Paul小波

Paul小波:

Paul小波的减小速度更快(如阶乘函数的平方根)。Paul 小波的可调参数是一个可以在 4 到 40 之间变化的阶数。在 4 阶时,小波中只存在一个振荡:

即使在最大持续量级 40 时,Paul 小波在其最小波数下也表现出与 Morlet 小波大致相同的振荡:

Paul小波比 Morlet 提供了更好的时间定位,因为它在时域中衰减得更快。然而,与 Morlet 不同的是,它的傅里叶表示不是一个对称的峰值,而是一个在高频方向上向右移动的峰值。它大致遵循伽马峰形状,并且随着阶数的增加而变得不那么不对称。即使在保罗的最高阶 40 时,其频域的峰值也明显存在巨大的向右不平衡。因此,保罗小波提供了较低的频率分辨率。

3 高斯导数小波

定义如下:

高斯导数小波是通过在频域中添加 Heaviside 函数产生的。该小波随着伽马函数的平方根而减小。它的时间位置介于 Morlet和Paul小波之间。GaussDeriv小波的可调参数是导数阶数,可以在 2 到 80 之间变化。最低导数 2 被称为 Marr小波或墨西哥帽。小波中只包含一个振荡:

GaussDeriv小波的最大支持可调参数为 80,其振荡次数与波数为 12 的 Morlet 小波大致相同:

4 频域表示

母小波(Morlet 波数 6、Paul 阶数 40 和高斯导数阶数 20)频域中的变换如下:

当三个主小波中的每一个的可调参数设置为产生大约六次振荡时,高斯导数小波在频域中产生最紧凑的频谱信息。Paul小波产生最不紧凑的小波。

Morlet小波的傅里叶变换在频域中产生对称峰值。GaussDeriv小波的频域表示正是伽马峰的一种形式。

5 时间分辨率与频率分辨率

三个小波基被紧密支撑,这意味着振荡通过快速衰减在时间上有效地定位。对于小波中给定数量的振荡,Paul小波在时域中的定位效率最高。Morlet小波的效率略低,而GaussDeriv小波是三者中效率最低的。然而,在比较频率分辨率时,GaussDeriv小波是最好的,而Paul小波是最差的。Morlet小波的质量介于两者之间。

尽管对于小波中给定数量的振荡,Morlet小波不像GaussDeriv那样紧凑,但它能够产生更多数量的振荡。因此,通过使用Morlet小波可以实现更高的频率分辨率

这可以用图表来最好地说明。以下小波分析使用噪声数据集,其中单个正弦振荡发生在 0.50.6 拍之间:

小波峰值已被放大,以说明时频分辨率之间的这种权衡。所有图形都使用相同的时频刻度。前三张图是波数为 62050 的 Morlet:

以下三个是 Paul小波,顺序为 41640

最后三个是 22080 阶的高斯导数小波:

一般来说,除非需要最佳的时间定位,否则Morlet小波可能就足够了,因为它在时间和频率上都提供了非常好的分辨率。

它的频率分辨率是可观的,即使是最低的波数。Paul小波的最佳频率分辨率(40阶)接近Morlet的频率分辨率,其最低波数为6。还可以在 Paul的每个示例中看到频率偏度。如果需要最佳的时间定位,Paul小波是一个不错的选择。

GaussDeriv小波在其最佳频率分辨率(80阶)下接近Morlet,波数为12。与Paul小波相比,Gauss-Deriv小波的高阶基本上是对称的,并且它们可以超过具有较低波数的Morlet小波的频率分辨率。

3 多分辨率分析

对于短时傅里叶变换,固定宽度的段大小控制时频分辨率的权衡。这导致了独特的时间分辨率和单一频率分辨率,而不管再现的频率如何。另一方面,小波分析是一种多分辨率方法时频分辨率不是恒定的,而是随频率变化的。多分辨率分析是针对高频分量在信号中短时间存在且低频分量更持久等常见情况而设计的。

寿命短的高频分量需要很强的时间定位。为了实现这一点,高频分量的频率分辨率会降低。另一方面,长寿命的低频分量可以容忍较低的时间分辨率,但需要高效的频率分辨率。低频分量通常决定了信号的大部分特性,如果频率分辨率尽可能细,这些特性将得到更好的量化。

多分辨率分析避免了确定最佳段宽的难题。时间段的宽度会随着频率而自动变化。明显的缺点是信号可能包含短期低频分量或长期高频分量。对于此类信号,短时傅里叶变换可能是比小波分析更好的选择。此外,频率分辨率的这种变化使得无法直接从小波频谱中读取频谱功率或振幅。这是另一种情况,其中短时傅里叶变换的单分辨率分析可能更可取。

以下数据集由1%白噪声中等功率的连续正弦曲线组成。在 0.010.04 之间,存在频率为 250 Hz 的正弦波。对于时间 0.060.09,存在频率为 500 Hz 的正弦曲线,对于时间 0.110.14,频率为 1000 Hz 的正弦曲线包含信号,对于时间 0.160.19,存在频率为 2000Hz 的正弦曲线。

在下面的CWT谱图中,波数为 12 的 Morlet小波用于生成CWT谱图:

多分辨率分析是显而易见的。250Hz 频率分量在频率上非常精确,但在时间上非常模糊。相反,2000Hz 的频率分量在时间上定义得很好,但在频率上却相当模糊

将CWT频谱与优化的STFT进行比较。STFT的独特分辨率很容易看到:

4 零填充和影响锥

CWT频谱的计算方法是:

  • 首先,从数据序列中获取离散傅里叶变换。
  • 接着,对于频谱中的每个尺度(指定频率),解析计算子小波的频率响应
  • 然后,乘以数据的频率变换,使乘积反转。

傅里叶变换假定周期性数据。为了使FFT的快速卷积不受数据和响应函数(子小波)的非周期性引起的包络效应,需要一个零填充,其长度等于子小波频率响应中非零元素长度的一半。

此长度因刻度(频率)而异。添加等于两倍于数据大小的零填充可确保频谱中不可能产生包络效应。通常,可以执行下一个 2 的次方的零填充,并实现可忽略不计的包装效果以及最快的 FFT 性能。

当零填充就足够时,包裹效应被消除,但出现了另一个问题。如果填充为零,则可能会在数据流的末尾引入不连续性。此外,随着卷积中零点的引入,频谱边缘附近的功率会降低。这个副作用区域被称为影响锥(COI)

5 正交小波和DWT

大多数小波分析使用一对滤波器来连续隔离信号的低通和高通分量。这称为离散小波变换(DWT)。DWT小波不是时间的连续函数,它们的变换也不是频率的连续函数。相反,它们是时域中的滤波系数集,通常产生一个正交基,大大简化了滤波和重建数据。

DWT 是非冗余的。每个尺度上的小波功率模块数是未重叠小波宽度的函数。在典型的 DWT 中,频率间隔为 2 的单位幂,并且随着这些固定频率的增加,块的数量将随着时间的推移增加 2 的单位幂。尽管DWT速度很快,并且其信号的时频表示只需要适度的内存,但对于时频频谱分析来说并不实用。

来源:weisang

原文:https://www.weisang.com/fr/dokumentation/timefreqspectrumalgorithmscwt_fr/
翻译:我不爱机器学习

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

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

相关文章

LeetCode225. 用队列实现栈(C++)

LeetCode225. 用队列实现栈 题目链接代码 题目链接 https://leetcode.cn/problems/implement-stack-using-queues/description/ 代码 class MyStack { public:queue<int> q1;queue<int> q2;MyStack() {}void push(int x) {q1.push(x);}int pop() {int size q1…

45、WEB攻防——通用漏洞PHP反序列化POP链构造魔术方法原生类

文章目录 序列化&#xff1a;将java、php等代码中的对象转化为数组或字符串等格式。代表函数serialize()&#xff0c;将一个对象转换成一个字符&#xff1b;反序列化&#xff1a;将数组或字符串等格式还成对象。代表函数unserialize()&#xff0c;将字符串还原成一个对象。 P…

配置前端项目到 github-pages

Quickstart for GitHub Pages - GitHub Docs

MySQL:合并查询语句

1、查询表的数据 t_book表数据 SELECT * FROM db_book.t_book; t_booktype表数据 SELECT * FROM db_book.t_booktype; 提醒&#xff1a; 下面的查询操作的数据来自上图查询表的数据 2. 使用 UNION 查询结果合并&#xff0c;会去掉重复的数据 使用UNION关键字是&#xff0c;数…

刷题日记 | 字符串扩容和增强型for循环

for(char c:s)遍历字符串 增强型for循环 C for(char c:s)遍历字符串 增强型for循环_c for (char c : s)-CSDN博客 字符串使用前要进行扩容 reserve函数 【CString类成员函数辨析】resize(),size(),capacity(),reserve()函数的解析与对比_c reserve函数-CSDN博客 a.size() 用来…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …

论文笔记:基于互信息估计和最大化的深度表示学习

整理了ICLR2019 LEARNING DEEP REPRESENTATIONS BY MUTUAL INFORMATION ESTIMATION AND MAXIMIZATION&#xff09;论文的阅读笔记 背景模型 论文地址&#xff1a;DIM code&#xff1a;代码地址 背景 发现有用的表示是深度学习的一个核心目标&#xff0c;由于之前的工作已经可以…

苍穹外卖知识点总结(一)

简介 技术选型 展示项目中使用到的技术框架和中间件。 用户层&#xff1a;node.js Vue.js ElementUI 微信小程序 apache echarts 网关层&#xff1a;nginx 应用层&#xff1a;Spring Boot Spring MVC Spring Task httpclie…

USACO 2024 Feb Bronze铜组题解

闲话:今天是4年一度的奇观——2月29日!(地球人都知道) 所以为了纪念这个特殊的日子&#xff0c;我决定倒着讲。这是什么奇怪的规矩&#xff1f;(雾 Maximizing Productivity: 二分即可。 #include <bits/stdc.h> using namespace std; const int maxn200005; int c[ma…

LTE 网络与互联网的连接

LTE 网络与互联网的连接 当用户设备 UE&#xff08;如手机&#xff09;开机后&#xff0c;就登记到 LTE 网络&#xff0c;以便使用网络资源传送 IP 数据业务。 LTE 网络内的数据路径由两大部分组成&#xff1a; -空口无线链路&#xff08;UE→eNB&#xff09;。 -核心网中的隧…

模糊PID控制算法实战讲解-案例温度控制(附C语言实现)

可结合之前的文章一起理解&#xff1a; 控制算法-PID算法总结-从公式原理到参数整定解析&#xff08;附C源码&#xff09;_pid自整定算法-CSDN博客 模糊控制算法实战讲解-案例温度控制&#xff08;附C语言实现&#xff09;-CSDN博客 目录 一、模糊PID控制的原理 1.1 模糊化…

java009 - Java调试debugger

1、debugger概述 程序的调试工具&#xff0c;用于查看追踪程序的执行流程&#xff0c;也可以调试程序。 2、debugger调试流程 2.1 如何加断点 2.2 如何运行加了断点的程序 在代码区域右键---->debugger执行 2.3 看哪里 看console窗口 2.4 点哪里 点step into(F7)这个箭…