Skip to contents

Computes the pseudo-mode splitting index of each pair of adjacent modes.

Usage

measurePMSI(modes, denominator)

Arguments

modes

Finite numeric matrix, samples by modes, with at least one column. Attributes other than dim do not reach the outputs.

denominator

"homogeneous", the sum of the squared norms of the pair, or "regularized", which adds the \(10^{-8}\) of the UPEMD definition, an absolute scale absent from the homogeneous form. No default; emd 0.8.1 has only the regularized form.

Details

For each pair of adjacent columns, $$\mathrm{PMSI}(c_i, c_{i+1}) = \max\left\{\frac{\langle c_i, c_{i+1} \rangle}{\|c_i\|_2^2 + \|c_{i+1}\|_2^2}, 0\right\},$$ with \(10^{-8}\) added to the denominator under "regularized".

Value

Numeric vector with one value per pair of adjacent modes, of length one less than the number of columns.

Conditions

A pair of adjacent modes with zero energy under "homogeneous" stops the function with an error of class xemdZeroEnergy.

Examples

Time <- seq_len(1000) / 1000
Tones <- cbind(cos(2 * pi * 2 * Time), 0.25 * cos(2 * pi * 24 * Time),
               0.0625 * cos(2 * pi * 288 * Time))
Mixed <- cbind(rowSums(Tones), Tones)
measurePMSI(Mixed, denominator = "homogeneous")
#> [1] 0.4839319 0.0000000 0.0000000
measurePMSI(Mixed, denominator = "regularized")
#> [1] 0.4839319 0.0000000 0.0000000