# wtmm
小波变换模极大值
函数库: TyWavelet
# 语法
hexp, = wtmm(x)
hexp, tauq = wtmm(x)
___ = wtmm(x, MinRegressionScale = scale)
hexp, tauq, structfunc = wtmm(___)
localhexp, wt, wavscales = wtmm(x, ScalingExponent = "local")
wtmm(___, ScalingExponent = "local", plotfig = true)
___ = wtmm(___; Name = Value)
# 说明
hexp, = wtmm(x) 返回实值一维输入信号 x 的全局 Holder 指数 hexp 的估计值。全局和局部 Holder 指数是为结构函数的线性间隔矩估计的,从 -2 到 +2,增量为 0.1。示例
hexp, tauq = wtmm(x) 还会返回分区函数缩放指数 tauq 的估计值。示例
___ = wtmm(x, MinRegressionScale = scale) 仅使用大于或等于 scale 的 scale 来估计全局 Holder 指数。此语法可以包括以前语法中使用的任何输出参数。
hexp, tauq, structfunc = wtmm(___) 还返回全局 Holder 指数估计的多分辨率结构函数 structfunc 。此语法可以包括以前语法中使用的任何输入参数。示例
localhexp, wt, wavscales = wtmm(x, ScalingExponent = "local") 返回局部 Holder 指数估计值、连续小波变换 wt 以及用于计算 wtmm 算法中使用的 CWT 的尺度、波形尺度。CW T中使用的小波是高斯的二阶导数。
wtmm(___, ScalingExponent = "local", plotfig = true) 在没有输出自变量的情况下,绘制当前图中的小波最大值线。示例
___ = wtmm(___; Name = Value) 返回 Holder 指数和其他指定输出,以及由一个或多个 Name = Value 对参数指定的其他选项。
# 示例
布朗运动的全局 Holder 指数
估计布朗运动的全局 Holder 指数。该单折线信号的 Holder 指数约为 0.5。
using TyWavelet
using TyMath
rng = MT19937ar(100)
x = cumsum(randn(rng, 2^15))
hexp, = wtmm(x)
hexp = 0.5009782119111473
单分形信号缩放指数的线性度
确认对于单分形信号,缩放指数是矩的线性函数。对于多重分形信号,指数是矩的非线性函数。
加载包含两个时间序列的信号,每个时间序列包含 8000 个样本。Ts1 是多重分形信号,Ts2 是单分形分数布朗信号。使用 wtmm 获得指数。
using TyWavelet
using TyPlot
using TyBase
dir = pkgdir(TyWavelet) * "/examples/Resources/RWdata.mat"
load(dir)
hexp1, tauq1 = wtmm(Ts1)
hexp2, tauq2 = wtmm(Ts2)
绘制缩放指数。
expplot = plot(-2:0.1:2, tauq2, "b-o", -2:0.1:2, tauq1, "r-^")
grid("on")
expplot[1].set_markerfacecolor("b")
expplot[2].set_markerfacecolor("r")
legend(["Ts2-Monofractal", "Ts1-Multifractal"]; loc="lower right")
title("Monofractal vs. Multifractal Scaling Exponents")
xlabel("Qth Moment")
ylabel("Scaling Exponents")
作为单分形信号的 Ts2 是线性函数。Ts1,即多重分形信号,不是线性的。
小波变换模极大值的结构函数
使用 wtmm 的结构函数输出来分析布朗运动信号。
创建 Holder 指数为 0.6 的分数布朗运动。
using TyWavelet
using TyMath
using TyPlot
Brn = wfbm(0.6, 2^15)
hexp, tauq, structfunc = wtmm(Brn)
将计算出的 Holder 指数与理论值 0.6 进行比较。
hexp
hexp = 0.6072086758237019
使用 structfunc 输出中的数据和 lscov 函数对数据执行回归。
x = ones(length(structfunc.logscales), 2)
x[:, 2] = structfunc.logscales
betahat, = lscov(x, structfunc.Tq, structfunc.weights)
betahat = @view betahat[2, :]
绘制并比较 tauq 输出和回归结构函数输出的比例指数。
subplot(1, 2, 1)
plot(-2:0.1:2, tauq)
grid("on")
title("From tauq Output")
xlabel("Qth Moment")
ylabel("Scaling Exponents")
subplot(1, 2, 2)
plot(-2:0.1:2, betahat[1:41])
grid("on")
title("From structfunc Output")
xlabel("Qth Moment")
这些图是相同的,显示了矩和指数之间的线性关系。因此,信号是单分形的。以 hexp 返回的 Holder 指数是这条线的斜率。
Cusp 信号和 Delta 函数的局部 Holder 指数
使用 Cusp 信号和包含 delta 函数的信号,生成它们的局部 Holder 指数。
Cusp 信号
加载并绘制 Cusp 信号。注意两个尖端之间的差异。
using TyWavelet
using TyPlot
using TyBase
dir = pkgdir(TyWavelet) * "/examples/Resources/cusp.mat"
load(dir)
plot(cusp)
grid("on")
xlabel("Sample")
ylabel("Amplitude")
该 Cusp 信号的方程规定样本 241 处的 Holder 指数为 0.5,样本 803 处的 Holder 指数为 0.3。
-0.2 * abs(x-241)^0.5 - 0.5 * abs (x-803)^ 0.3 + 0.00346 * x + 1.34
获取局部 Holder 指数并绘制模量最大值。
wtmm(cusp; ScalingExponent="local", plotfig=true)
样本 241 和 803 处的 Holder 指数非常接近 cusp 信号方程中指定的值。采样点 241 的 Holder 值较高,表明该点的信号比采样点 803 的信号更接近可微分,后者的 Holder 值较小。
Delta 函数
创建并绘制两个 delta 函数。
x = zeros(Int, 1000)
x[[200, 500]] .= 1
plot(x)
grid("on")
xlabel("Sample")
ylabel("Amplitude")
使用默认的倍频数(本例中为 7)获取本地 Holder 指数。 绘制模量最大值。Delta 函数的 Holder 指数为 -1。
wtmm(x; ScalingExponent="local", plotfig=true)
使用 5 个倍频程获取本地 Holder 指数,并将模量最大值图与使用默认倍频程数的图进行比较。
wtmm(x; ScalingExponent="local", NumOctaves=5, plotfig=true)
减少刻度的数量可以使频率更加分离,减少 Delta 函数最大模量线之间的重叠。
# 输入参数
x - 输入信号实值向量
输入信号,指定为具有最小 128 个样本的实值向量。小波变换模极大值技术最适用于 8000 个或更多样本的数据。
# Name-Value 参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选的参数对,其中 Name 是参数名,Value 是相应的值。名称-值参数必须出现在其他参数之后,但参数对的顺序并不重要。
示例: VoicesPerOctave = 18 使用每倍频程 18 个声音来估计全局 Holder 估计。
MinRegressionScale - 最小回归比例4(默认) | 大于或等于 4 的标量
用于回归的最小尺度,由 "MinRegressionScale" 和一个大于等于 4 的标量组成。 该尺度是回归使用的最小尺度。必须至少有两个尺度的 CWT 最大值超过 6。MinRegressionScale" 仅适用于全局 Holder 指数。
VoicesPerOctave - 每个倍频程的声部数10(默认) | 8 至 32 之间的偶数整数
倍频程的数量,以 NumOctaves 和整数的形式指定。倍频程数和每个倍频程的声部数决定了 CWT 中使用的音阶数。最大倍频程数小于或等于 floor(log2(numel(x)/(3*sqrt(1.1666))))))。sqrt(1.1666) 因子是高斯小波二阶导数的标准偏差。如果指定的倍频数大于最大倍频数,wtmm 将使用支持的最大倍频数。
NumOctaves-倍频程数最小为 7,floor(log2(numel(x)/(3*sqrt(1.1666)))) (默认值) |大于等于 4 的整数)
要提取的最高能量时间频率脊的数量,以逗号分隔,由 "NumRidges "和一个正整数组成。如果该整数大于 1,wsstridge 会通过移除先前计算的脊和每个脊仓两侧的默认或指定 "NumFrequencyBins",迭代确定最大能量时间频率脊。
ScalingExponent - 缩放指数类型"global"(默认) | "local"
缩放指数的类型,指定为由 ScalingExponent 和 "global" 或 "local" 组成的逗号分隔对。全局 Holder 指数用于单分形信号,如白噪声,这些信号在任何地方都是奇异的。全局 holder 指数给出了这些奇异性在整个信号上的程度的单个估计。局部 Holder 指数对于具有 Cusp 奇点的信号是有用的。。
# 输出参数
hexp - 全局 Holder 指数实标量
全局 Holder 指数,以实数标量形式返回。Holder 指数可用于识别奇异点,即信号不可微的位置。全局 Holder 指数使用单一值来估计信号所有奇异点的可微分程度。具有全局 Holder 指数的信号是单分形信号。
tauq - 尺度指数列向量
缩放指数,以列向量形式返回。指数是根据结构函数的线性间隔矩估算的,从-2 到 +2,增量为 0.1。
structfunc - 多分辨率结构函数TyWavelet.__Internal__.ContinuousWaveletTransforms.structFunc
全局 Holder 指数估计的多分辨率结构函数。数据 x 的结构函数定义为
其中,
Tq - 不同尺度下输入 x 的测量值。Tq 是一个多分辨率量矩阵,共同取决于时间和尺度。x 的缩放现象意味着 Tq 的矩与尺度之间存在幂律关系。Tq 是一个 Ns × 44 的矩阵,其中 Ns 是尺度数。Tq 的前 41 列包含按尺度划分的-2:0.1:2 的 qth 的缩放指数估计值。最后三列按尺度分别对应一阶、二阶和三阶累积量。对于单分形信号,大于第一个累积量的累积量为零。
weights - 回归估算中使用的权重。权重是一个 Ns × 1 的向量。
logscales - 在回归中用作预测因子的尺度。
localhexp - 本地 Holder 指数估计值实数值数组
本地 Holder 指数估计值,以 M×2 的实数数组形式返回,其中 M 是最大值的个数。如果没有最大值线收敛到小波变换的最小尺度,则 localhexp 为空数组。小波变换模极大值法(WTMM)可识别信号中的尖峰类奇异点。要分析多分形信号,可使用 dwtleader。
wt - 连续小波变换矩阵
连续小波变换,作为实数矩阵返回。wt 是一个 numel(wavscales) × N 矩阵,其中 N 是输入信号 x 的长度。
wavscales - 小波尺度列向量
小波尺度,以实值列向量的形式返回。wavscales 是用于计算 CWT 的尺度。
# 参考文献
[1] Mallat, S., and W. L. Hwang. “Singularity Detection and Processing with Wavelets.” IEEE Transactions on Information Theory. Vol. 38, No. 2, March 1992, pp. 617–643.
[2] Wendt, H. and P. Abry. “Multifractality Tests Using Bootstrapped Wavelet Leaders.” IEEE Transactions on. Signal Processing. Vol. 55, No. 10, 2007, pp. 4811–4820.
[3] Arneodo, A., B. Audit, N. Decoster, J.-F. Muzy, and C. Vaillant. “Wavelet-Based Multifractal Formalism: Application to DNA Sequences, Satellite Images of the Cloud Structure and Stock Market Data.” The Science of Disasters: Climate Disruptions, Heart Attacks, and Market Crashes. Bunde, A., J. Kropp, and H. J. Schellnhuber, Eds. 2002, pp. 26–102.