set.seed(42)
n <- 600
t <- seq_len(n)
p1 <- 30
p2 <- 240
xy <- (1 + 0.6 * sin(t*2*pi/p2)) * sin(t*2*pi/p1) + 2 * sin(t*2*pi/p2) +
rnorm(n, sd = 0.5) + t * 0.01
inter_dt <- round(runif(length(xy), min = 0.5, max = 1.5),1)
dt <- cumsum(inter_dt)
dec <- extricate(xy, dt, nimf = 7, repl = 1, comb = 50,
factor_noise = 10, sifting = 10, speak = TRUE)
if (FALSE) {
plot_emd(dec, dir = tempdir())}
integrity(xy, dec)
parsimony(dec)
res <- gzc(dec)
numb <- 4
opar <- par('mfrow')
par(mfrow = c(1,2))
plot(dec$m[,numb], dec$dt, type = "l",
main = paste("Mode", numb, " + Amplitude"),
xlab = "xy", ylab = "dt", ylim = c(0, 600))
lines(res$a[,numb], res$dt[,numb], col = "red", lwd = 2)
plot(1/res$f[,numb], res$dt[,numb], ylim = c(0,600),
xlab = "Period", ylab = "dt", log = "x",
type = "l", col = "red", lwd = 2, main = "Period")
par(mfrow = opar)
Run the code above in your browser using DataLab