pySimBlocks.blocks.sources.chirp

class pySimBlocks.blocks.sources.chirp.Chirp(name: str, amplitude: ArrayLike, f0: ArrayLike, f1: ArrayLike, duration: ArrayLike, start_time: ArrayLike = 0.0, offset: ArrayLike = 0.0, phase: ArrayLike = 0.0, mode: str = 'linear', sample_time: float | None = None)[source]

Bases: BlockSource

Multi-dimensional chirp signal source (linear or logarithmic).

Generates a sinusoidal signal whose frequency sweeps from f0 to f1 over a given duration, then continues at f1. The sweep can be linear or logarithmic (exponential).

amplitude

Amplitude of the chirp signal, as a 2D array.

f0

Starting frequency in Hz, as a 2D array.

f1

Ending frequency in Hz, as a 2D array.

duration

Sweep duration in seconds, as a 2D array.

start_time

Time at which the chirp starts, as a 2D array.

offset

DC offset added to the output, as a 2D array.

phase

Initial phase in radians, as a 2D array.

mode

Frequency sweep mode, either "linear" or "log".

VALID_MODES = {'linear', 'log'}
initialize(t0: float) None[source]

Compute and set the output at the initial time t0.

Parameters:

t0 – Initial simulation time in seconds.

output_update(t: float, dt: float) None[source]

Compute and write the chirp value to the output port.

Parameters:
  • t – Current simulation time in seconds.

  • dt – Current time step in seconds.