three_channel_model: A three-channel model of quadratic phase coupling

Description Usage Arguments Details Value Examples

View source: R/model.R

Description

Simulate observations by a three-channel model of quadratic phase coupling.

Usage

1
2
3
4
5
6
7
8
9
three_channel_model(
  f1,
  f2,
  f3,
  num_samples = 256,
  num_observations = 100,
  input_freq = c(1.2, 0.7, 0.8),
  noise_sd = 1
)

Arguments

f1

A function of period 2 * pi for the first channel.

f2

A function of period 2 * pi for the second channel.

f3

A function of period 2 * pi for the third channel.

num_samples

The number of sampling points in an observation.

num_observations

The number of observations.

input_freq

The scaling factor for the frequencies of input periodic functions. It can be a scalar or a vector of length three. If a scalar is given, the same frequency is used for all of inputs.

noise_sd

The standard deviation of a Gaussian noise perturbing samples. It can be a scalar or a vector of length three. If a scalar is given, the same value is used for all of noises. Giving 0 is possible and specifies no noise.

Details

Given three periodic functions, this function generate a list of three data frames in which each column represents a simulated observation at a channel. The phase is chosen at random from [0, 2 * pi] for each observation and each channel.

Value

A list of six data frames: i1, i2, i3, o1, o2, and o3. Each element has num_observations columns and num_samples rows. i1, i2, and i3 are observations of input signals; o1, o2, and o3 are of output.

Examples

1
2
3
4
5
6
7
sawtooth <- function(r) {
    x <- r/(2*pi)
    x - floor(x) - 0.5
}
data <- three_channel_model(cos, sin, sawtooth,
                            input_freq = c(0.2, 0.3, 0.4),
                            noise_sd = 0.9)

rhosa documentation built on Jan. 21, 2022, 5:07 p.m.