Signal package

Submodules

Gates module

class c3.signal.gates.Instruction(name: str = ' ', channels: list = [], t_start: numpy.float64 = 0.0, t_end: numpy.float64 = 0.0)[source]

Bases: object

Collection of components making up the control signal for a line.

Parameters
  • t_start (np.float64) – Start of the signal.

  • t_end (np.float64) – End of the signal.

  • channels (list) – List of channel names (strings)

comps

Nested dictionary with lines and components as keys

Type

dict

Example
comps = {
‘channel_1’{

‘envelope1’: envelope1, ‘envelope2’: envelope2, ‘carrier’: carrier }

}

add_component(comp: c3.c3objs.C3obj, chan: str) → None[source]

Add one component, e.g. an envelope, local oscillator, to a channel.

Parameters
  • comp (C3obj) – Component to be added.

  • chan (str) – Identifier for the target channel

asdict() → dict[source]
quick_setup(chan, qubit_freq, gate_time, v2hz=1, sideband=None) → None[source]

Initialize this instruction with a default envelope and carrier.

Pulse module

class c3.signal.pulse.Carrier(name: str, desc: str = ' ', comment: str = ' ', params: dict = {})[source]

Bases: c3.c3objs.C3obj

Represents the carrier of a pulse.

asdict() → dict[source]
write_config(filepath: str) → None[source]

Write dictionary to a HJSON file.

class c3.signal.pulse.Envelope(name: str, desc: str = ' ', comment: str = ' ', params: dict = {}, shape: function = None)[source]

Bases: c3.c3objs.C3obj

Represents the envelopes shaping a pulse.

Parameters

shape (function) – function evaluating the shape in time

asdict() → dict[source]
get_shape_values(ts, t_before=None)[source]

Return the value of the shape function at the specified times.

Parameters
  • ts (tf.Tensor) – Vector of time samples.

  • t_before (tf.float64) – Offset the beginning of the shape by this time.

write_config(filepath: str) → None[source]

Write dictionary to a HJSON file.

c3.signal.pulse.comp_reg_deco(func)[source]

Decorator for making registry of functions

Module contents