Skip to contents

Compares the energy of each intrinsic mode function, from the second on, with the threshold that fractional Gaussian noise of a tabulated Hurst exponent gives at a tabulated level, with the first function as the noise scale.

Usage

assessFractionalNoise(modes, hurst, probability)

Arguments

modes

Finite numeric matrix of 2048 samples by at least two intrinsic mode functions, in their order of extraction and without the residue.

hurst

Hurst exponent \(H\): 0.2, 0.5 or 0.8. No default.

probability

Level \(p\) of the threshold: 0.95 or 0.99. No default.

Details

The energy of function \(k\) is \(W[k] = \sum_n c_k[n]^2\). From \(k = 2\) on, the reference energy is $$W_H[k] = \frac{W[1]}{\beta_H} \rho_H^{-2(1-H)k}, \quad \rho_H = 2.01 + 0.2 (H - 0.5) + 0.12 (H - 0.5)^2,$$ and the threshold is \(T_{H,p}[k] = W_H[k] \, 2^{2^{a_{H,p} k + b_{H,p}}}\), with \(\beta_H\), \(a_{H,p}\) and \(b_{H,p}\) of table 3.1 of Flandrin et al. (2005). A function lies outside when \(W[k] > T_{H,p}[k]\). The coefficients come from simulations of 10000 realizations of 2048 samples and are not interpolated to other exponents nor recalibrated for other lengths. The first function is taken to carry mainly noise; the function does not verify it.

The result is conditional on that noise model and calibration. Exceeding the threshold does not prove that a component is free of noise or identify its physical source.

Value

A list of vectors with one element per function:

energy

The energies \(W[k]\).

reference

The reference energies \(W_H[k]\), NA for the first function.

upper

The thresholds \(T_{H,p}[k]\), NA for the first function.

outside

Logical, energy > upper, NA for the first function.

Conditions

A first function of zero energy stops the function with an error of class xemdZeroEnergy.

References

Flandrin, P., Gonçalvès, P. and Rilling, G. (2004). Detrending and denoising with empirical mode decompositions. EUSIPCO 2004, 1581–1584.

Flandrin, P., Gonçalvès, P. and Rilling, G. (2005). EMD equivalent filter banks, from interpretation to applications. In N. E. Huang and S. S. P. Shen (eds.), Hilbert-Huang Transform and Its Applications, World Scientific, 57–74.

Examples

Time <- seq_len(2048) / 1000
Tones <- cbind(cos(2 * pi * 2 * Time), 0.25 * cos(2 * pi * 24 * Time),
               0.0625 * cos(2 * pi * 288 * Time))
assessFractionalNoise(Tones, hurst = 0.5, probability = 0.95)
#> $energy
#> [1] 1042.42601   64.07614    3.99863
#> 
#> $reference
#> [1]       NA 358.8593 178.5370
#> 
#> $upper
#> [1]       NA 458.4381 250.8722
#> 
#> $outside
#> [1]    NA FALSE FALSE
#> 
# The third tone as the noise scale.
assessFractionalNoise(Tones[, c(3, 1, 2)], hurst = 0.5,
                      probability = 0.95)$outside
#> [1]   NA TRUE TRUE