signal_source

photonforge.abstract.signal_source(*, frequency=10e9, amplitude=1, offset=0, start=None, stop=None, skew=0.5, width=0.5, rise=0, fall=0, order=1, noise=, jitter=0, seed=None, waveform="sine", prbs=0, bit_sequence="")[source]

Abstract electrical signal generator.

Based on photonforge.WaveformTimeStepper.

Parameters:
  • frequency (Annotated[float, minimum=0, units='Hz']) – Source frequency. The carrier frequency, if any, is not taken into account. The generated signals are always real. This is equivalent to the bit rate for PRBS signals.

  • amplitude (Annotated[float, units='√W']) – Source amplitude. Sine and triangle waves range from offset - amplitude to offset + amplitude. Other waveforms range from offset to offset + amplitude.

  • offset (Annotated[float, units='√W']) – Constant source offset.

  • start (Annotated[float, units='s'] | None) – Start time of the source.

  • stop (Annotated[float, units='s'] | None) – Stop time of the source. The effective stop time is after the current pulse finishes, so it can be after stop.

  • skew (Annotated[float, maximum=1, minimum=0]) – Triangle wave asymmetry parameter. A value of 1 produces a sawtooth wave, whereas a value of 0, a reversed sawtooth.

  • width (Annotated[float, minimum=0]) – Full-width at half-maximum for trapezoid, raised-cosine, and Gaussian pulses, as a fraction of the source period.

  • rise (Annotated[float, minimum=0]) – Trapezoidal and raised-cosine pulses rise time, as a fraction of the source period.

  • fall (Annotated[float, minimum=0]) – Trapezoidal and raised-cosine pulses fall time, as a fraction of the source period.

  • order (Annotated[float, minimum=1]) – Order of the super-Gaussian pulse.

  • noise (Annotated[float, minimum=0, units='√(W/Hz)']) – One-sided, amplitude spectral density (ASD) of noise.

  • jitter (Annotated[float, minimum=0, units='s']) – RMS clock jitter.

  • seed (Annotated[int, minimum=0] | None) – Random number generator seed to ensure reproducibility.

  • waveform (Literal['sine', 'triangle', 'trapezoid', 'raised-cosine', 'gaussian']) – Source waveform.

  • prbs (Literal[0, 7, 15, 31]) – PRBS polynomial degree. Value 0 disables PRBS.

  • bit_sequence (str | Sequence[int]) – User-provided output bit sequence. PRBS must be set to 0 for this sequence to be used.

Return type:

Component