Time Varying Sinusoid
timecave.data_generation.time_series_functions.frequency_varying_sinusoid_ts(number_samples, max_interval_size, frequency, amplitude=1, phase=0)
Generate a time series of a sinusoidal signal with varying frequency.
This function generates a time series of a sinusoidal signal where the frequency varies over time.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
number_samples |
int
|
The number of samples in the time series. |
required |
max_interval_size |
float
|
The maximum time interval size for the time series. |
required |
frequency |
BaseFrequency
|
An object representing the base frequency of the sinusoid, which may vary over time. |
required |
amplitude |
float
|
The amplitude of the sinusoidal signal. |
1
|
phase |
float
|
The initial phase of the sinusoidal signal in radians. |
1
|
Returns:
| Type | Description |
|---|---|
ndarray
|
An array representing the generated time series of the sinusoidal signal with varying frequency. |
See also
sinusoid_ts: Generate a simple sinusoid.
Examples:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from timecave.data_generation.frequency_modulation import FrequencyModulationWithStep, FrequencyModulationLinear
>>> from timecave.data_generation.time_series_functions import frequency_varying_sinusoid_ts
Generate a sinusoid whose frequency varies abruptly:
>>> mod = FrequencyModulationWithStep(20, 5);
>>> ts = frequency_varying_sinusoid_ts(100, 10, frequency=mod);
>>> _ = plt.plot(np.arange(0, ts.shape[0]), ts);
>>> plt.show();

Time series with linearly varying frequencies can be generated as well:
>>> mod_lin = FrequencyModulationLinear(1, 0.2);
>>> ts2 = frequency_varying_sinusoid_ts(1000, 10, frequency=mod_lin, amplitude=5);
>>> _ = plt.plot(np.arange(0, ts2.shape[0]), ts2);
>>> plt.show();
