oscillate {DecomposeR}R Documentation

Modify a signal using a Van der Pol oscillator

Description

Modify a signal using a Van der Pol oscillator

Usage

oscillate(
  xy,
  dt,
  period,
  delta = 0.05,
  damp = 5e-05,
  f.noise = 5,
  f.signal = 0.95,
  dx = function(x, y, beta, damp) beta * y - x * (x^2 + y^2 - 1) * damp,
  dy = function(x, y, beta, damp) -beta * x - y * (x^2 + y^2 - 1) * damp,
  xi = if (length(xy) != 0) xy[1] else 0.5,
  yi = if (length(xy) != 0) xy[1] else 0.5,
  normalise = TRUE,
  limit = TRUE
)

Arguments

xy

initial signal (vector or matrix)

dt

depth/time (same length than length/rows of xy)

period

the period of the oscillator (length 1 or n)

delta

the sampling interval for iteration (length 1 or n)

damp

damping parameter

f.noise

a factor of the amount of noise (length 1 or n)

f.signal

a factor of the amount of signal (length 1 or n)

dx, dy

the differentials used in the oscillator. They should be provided as functions needing x, y, beta (2*pi/period) and damp (damping) parameters

xi

the initial x value

yi

the initial y value

normalise

whether to recenter the output signal on the initial signal

limit

whether to warn when parameters are irrealistic (subjective)

Examples

set.seed(42)

n <- 800

dt <- seq(0,n, 1)

p1 <- 100
p2 <- 40

xy <- (1 + 0.6 * sin(dt*2*pi/p1)) * sin(dt*2*pi/p2)  + 2 * sin(dt*2*pi/p1) + 1

xyout <- oscillate(xy, dt, period = 30)

opar <- par("mfrow")

par(mfrow = c(1,1))

plot(xy, dt, type = "l",
     main = "Initial signal (bold) & oscillated signal (dashed)",
     lwd = 2, xlim = c(-4, 6))
lines(xyout, dt, type = "l", col = "grey50", lwd = 2, lty = 5)

par(mfrow = opar)


[Package DecomposeR version 1.0.6 Index]