Generator

class gpype.backend.sources.generator.Generator[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.

SHAPE_SINUSOID = 'sine'

Sinusoidal waveform signal shape

SHAPE_RECTANGULAR = 'rect'

Square wave signal shape

SHAPE_PULSE = 'pulse'

Brief pulses signal shape

DEFAULT_SAMPLING_RATE = 250.0

Default sampling rate in Hz

DEFAULT_CHANNEL_COUNT = 8

Default number of channels

DEFAULT_SIGNAL_FREQUENCY = 10.0

Default signal frequency in Hz

DEFAULT_SIGNAL_SHAPE = 'sine'

Default signal shape

DEFAULT_SIGNAL_AMPLITUDE = 0.0

Default signal amplitude

DEFAULT_NOISE_AMPLITUDE = 0.0

Default noise amplitude

class Configuration[source]

Bases: Configuration

Configuration class for Generator signal parameters.

class Keys[source]

Bases: Keys

Configuration key constants for the Generator.

SIGNAL_FREQUENCY = 'signal_frequency'

Signal frequency configuration key

SIGNAL_SHAPE = 'signal_shape'

Signal shape configuration key

SIGNAL_AMPLITUDE = 'signal_amplitude'

Signal amplitude configuration key

NOISE_AMPLITUDE = 'noise_amplitude'

Noise amplitude configuration key

__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.