Generator

class gpype.backend.sources.generator.Generator(sampling_rate=None, channel_count=None, frame_size=None, signal_frequency=None, signal_shape=None, signal_amplitude=0.0, noise_amplitude=0.0, **kwargs)[source]

Bases: FixedRateSource

Signal generator source for creating synthetic test signals.

Generates configurable test signals with optional noise for testing pipelines. Supports multiple waveforms (sine, rectangular, pulse) with multi-channel output.

Parameters:
  • sampling_rate (float)

  • channel_count (int)

  • frame_size (int)

  • signal_frequency (float)

  • signal_shape (str)

  • signal_amplitude (float)

  • noise_amplitude (float)

SHAPE_SINUSOID = 'sine'
SHAPE_RECTANGULAR = 'rect'
SHAPE_PULSE = 'pulse'
DEFAULT_SAMPLING_RATE = 250.0
DEFAULT_CHANNEL_COUNT = 8
DEFAULT_SIGNAL_FREQUENCY = 10.0
DEFAULT_SIGNAL_SHAPE = 'sine'
DEFAULT_SIGNAL_AMPLITUDE = 0.0
DEFAULT_NOISE_AMPLITUDE = 0.0
class Configuration(sampling_rate, **kwargs)[source]

Bases: Configuration

Configuration class for Generator signal parameters.

Parameters:

sampling_rate (float)

class Keys[source]

Bases: Keys

Configuration key constants for the Generator.

SIGNAL_FREQUENCY = 'signal_frequency'
SIGNAL_SHAPE = 'signal_shape'
SIGNAL_AMPLITUDE = 'signal_amplitude'
NOISE_AMPLITUDE = 'noise_amplitude'
__init__(sampling_rate=None, channel_count=None, frame_size=None, signal_frequency=None, signal_shape=None, signal_amplitude=0.0, noise_amplitude=0.0, **kwargs)[source]

Initialize signal generator.

Parameters:
  • sampling_rate (float) – Sampling frequency in Hz.

  • channel_count (int) – Number of output channels. All get same signals.

  • frame_size (int) – Samples per output frame.

  • signal_frequency (float) – Signal frequency in Hz. Defaults to 10.0.

  • signal_shape (str) – Waveform shape (sine, rect, pulse). Defaults to sine.

  • signal_amplitude (float) – Peak amplitude of signal component.

  • noise_amplitude (float) – Standard deviation of Gaussian noise.

  • **kwargs – Additional parameters for FixedRateSource.

Raises:

ValueError – If signal_frequency or noise_amplitude is negative, or signal_shape is unsupported.

step(data)[source]

Generate one frame of synthetic signal data.

Creates a frame containing the configured waveform plus optional noise. Maintains phase continuity across frames through time tracking.

Parameters:

data (dict[str, ndarray]) – Input data dictionary (unused for signal generation).

Return type:

dict[str, ndarray]

Returns:

Output data dictionary with generated signal frame of shape (frame_size, channel_count), or None if not a decimation step.