Skip to content

abstract.signal_source

signal_source(
*,
frequency: Annotated[float, minimum=0, units='Hz'] = 10000000000.0,
amplitude: Annotated[float, units='√W'] = 1,
offset: Annotated[float, units='√W'] = 0,
start: Annotated[float, units='s'] | None = None,
stop: Annotated[float, units='s'] | None = None,
skew: Annotated[float, maximum=1, minimum=0] = 0.5,
width: Annotated[float, minimum=0] = 0.5,
rise: Annotated[float, minimum=0] = 0,
fall: Annotated[float, minimum=0] = 0,
order: Annotated[float, minimum=1] = 1,
noise: Annotated[float, minimum=0, units='√(W/Hz)'] = 0,
jitter: Annotated[float, minimum=0, units='s'] = 0,
seed: Annotated[int, minimum=0] | None = None,
waveform: Literal[
'sine', 'triangle', 'trapezoid', 'raised-cosine', 'gaussian'
] = 'sine',
prbs: Literal[0, 7, 15, 31] = 0,
bit_sequence: str | Sequence[int] = '',
) -> photonforge.Component

Abstract electrical signal generator.

Based on WaveformTimeStepper.

Args

  • frequency: 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: Source amplitude. Sine and triangle waves range from offset - amplitude to offset + amplitude. Other waveforms range from offset to offset + amplitude.
  • offset: Constant source offset.
  • start: Start time of the source.
  • stop: Stop time of the source. The effective stop time is after the current pulse finishes, so it can be after stop.
  • skew: Triangle wave asymmetry parameter. A value of 1 produces a sawtooth wave, whereas a value of 0, a reversed sawtooth.
  • width: Full-width at half-maximum for trapezoid, raised-cosine, and Gaussian pulses, as a fraction of the source period.
  • rise: Trapezoidal and raised-cosine pulses rise time, as a fraction of the source period.
  • fall: Trapezoidal and raised-cosine pulses fall time, as a fraction of the source period.
  • order: Order of the super-Gaussian pulse.
  • noise: One-sided, amplitude spectral density (ASD) of noise.
  • jitter: RMS clock jitter.
  • seed: Random number generator seed to ensure reproducibility.
  • waveform: Source waveform.
  • prbs: PRBS polynomial degree. Value 0 disables PRBS.
  • bit_sequence: User-provided output bit sequence. PRBS must be set to 0 for this sequence to be used.