qiskit-documentation/docs/api/qiskit/0.25/qiskit.pulse.channels.mdx

716 lines
22 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: channels
description: API reference for qiskit.pulse.channels
in_page_toc_min_heading_level: 2
python_api_type: module
python_api_name: qiskit.pulse.channels
---
<span id="qiskit-pulse-channels" />
# qiskit.pulse.channels
This module defines Pulse Channels. Channels include:
> * transmit channels, which should subclass `PulseChannel`
> * receive channels, such as `AcquireChannel`
> * non-signal “channels” such as `SnapshotChannel`, `MemorySlot` and `RegisterChannel`.
Novel channel types can often utilize the `ControlChannel`, but if this is not sufficient, new channel types can be created. Then, they must be supported in the PulseQobj schema and the assembler.
**Classes**
| | |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [`AcquireChannel`](#qiskit.pulse.channels.AcquireChannel "qiskit.pulse.channels.AcquireChannel")(index) | Acquire channels are used to collect data. |
| [`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")(index) | Base class of channels. |
| [`ControlChannel`](#qiskit.pulse.channels.ControlChannel "qiskit.pulse.channels.ControlChannel")(index) | Control channels provide supplementary control over the qubit to the drive channel. |
| [`DriveChannel`](#qiskit.pulse.channels.DriveChannel "qiskit.pulse.channels.DriveChannel")(index) | Drive channels transmit signals to qubits which enact gate operations. |
| [`MeasureChannel`](#qiskit.pulse.channels.MeasureChannel "qiskit.pulse.channels.MeasureChannel")(index) | Measure channels transmit measurement stimulus pulses for readout. |
| [`MemorySlot`](#qiskit.pulse.channels.MemorySlot "qiskit.pulse.channels.MemorySlot")(index) | Memory slot channels represent classical memory storage. |
| [`PulseChannel`](#qiskit.pulse.channels.PulseChannel "qiskit.pulse.channels.PulseChannel")(index) | Base class of transmit Channels. |
| [`RegisterSlot`](#qiskit.pulse.channels.RegisterSlot "qiskit.pulse.channels.RegisterSlot")(index) | Classical resister slot channels represent classical registers (low-latency classical memory). |
| [`SnapshotChannel`](#qiskit.pulse.channels.SnapshotChannel "qiskit.pulse.channels.SnapshotChannel")(\*args, \*\*kwargs) | Snapshot channels are used to specify instructions for simulators. |
### AcquireChannel
<Class id="qiskit.pulse.channels.AcquireChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="AcquireChannel(index)" modifiers="class">
Acquire channels are used to collect data.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.AcquireChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.AcquireChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.AcquireChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.AcquireChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.AcquireChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### Channel
<Class id="qiskit.pulse.channels.Channel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="Channel(index)" modifiers="class">
Base class of channels. Channels provide a Qiskit-side label for typical quantum control hardware signal channels. The final label -> physical channel mapping is the responsibility of the hardware backend. For instance, `DriveChannel(0)` holds instructions which the backend should map to the signal line driving gate operations on the qubit labeled (indexed) 0.
When serialized channels are identified by their serialized name `<prefix><index>`. The type of the channel is interpreted from the prefix, and the index often (but not always) maps to the qubit index. All concrete channel classes must have a `prefix` class attribute (and instances of that class have an index attribute). Base classes which have `prefix` set to `None` are prevented from being instantiated.
To implement a new channel inherit from [`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel") and provide a unique string identifier for the `prefix` class attribute.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.Channel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.Channel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.Channel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.Channel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.Channel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
#### prefix
<Attribute id="qiskit.pulse.channels.Channel.prefix" attributeValue="None">
A shorthand string prefix for characterizing the channel type.
</Attribute>
</Class>
### ControlChannel
<Class id="qiskit.pulse.channels.ControlChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="ControlChannel(index)" modifiers="class">
Control channels provide supplementary control over the qubit to the drive channel. These are often associated with multi-qubit gate operations. They may not map trivially to a particular qubit index.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.ControlChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.ControlChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.ControlChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.ControlChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.ControlChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### DriveChannel
<Class id="qiskit.pulse.channels.DriveChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="DriveChannel(index)" modifiers="class">
Drive channels transmit signals to qubits which enact gate operations.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.DriveChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.DriveChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.DriveChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.DriveChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.DriveChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### MeasureChannel
<Class id="qiskit.pulse.channels.MeasureChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="MeasureChannel(index)" modifiers="class">
Measure channels transmit measurement stimulus pulses for readout.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.MeasureChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.MeasureChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.MeasureChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.MeasureChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.MeasureChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### MemorySlot
<Class id="qiskit.pulse.channels.MemorySlot" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="MemorySlot(index)" modifiers="class">
Memory slot channels represent classical memory storage.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.MemorySlot.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.MemorySlot.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.MemorySlot.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.MemorySlot.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.MemorySlot.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### PulseChannel
<Class id="qiskit.pulse.channels.PulseChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="PulseChannel(index)" modifiers="class">
Base class of transmit Channels. Pulses can be played on these channels.
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.PulseChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.PulseChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.PulseChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.PulseChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.PulseChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### RegisterSlot
<Class id="qiskit.pulse.channels.RegisterSlot" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="RegisterSlot(index)" modifiers="class">
Classical resister slot channels represent classical registers (low-latency classical memory).
Channel class.
**Parameters**
**index** (`int`) Index of channel.
#### assign
<Function id="qiskit.pulse.channels.RegisterSlot.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.RegisterSlot.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.RegisterSlot.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.RegisterSlot.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.RegisterSlot.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>
### SnapshotChannel
<Class id="qiskit.pulse.channels.SnapshotChannel" github="https://github.com/qiskit/qiskit/tree/stable/0.17/qiskit/pulse/channels.py" signature="SnapshotChannel(*args, **kwargs)" modifiers="class">
Snapshot channels are used to specify instructions for simulators.
Create new snapshot channel.
#### assign
<Function id="qiskit.pulse.channels.SnapshotChannel.assign" signature="assign(parameter, value)">
Return a new channel with the input Parameter assigned to value.
**Parameters**
* **parameter** (`Parameter`) A parameter in this expression whose value will be updated.
* **value** (`Union`\[`ParameterExpression`, `float`, `int`]) The new value to bind to.
**Return type**
[`Channel`](#qiskit.pulse.channels.Channel "qiskit.pulse.channels.Channel")
**Returns**
A new channel with updated parameters.
**Raises**
[**PulseError**](qiskit.pulse.PulseError "qiskit.pulse.PulseError") If the parameter is not present in the channel.
</Function>
#### index
<Attribute id="qiskit.pulse.channels.SnapshotChannel.index">
Return the index of this channel. The index is a label for a control signal line typically mapped trivially to a qubit index. For instance, `DriveChannel(0)` labels the signal line driving the qubit labeled with index 0.
**Return type**
`Union`\[`int`, `ParameterExpression`]
</Attribute>
#### is\_parameterized
<Function id="qiskit.pulse.channels.SnapshotChannel.is_parameterized" signature="is_parameterized()">
Return True iff the channel is parameterized.
**Return type**
`bool`
</Function>
#### name
<Attribute id="qiskit.pulse.channels.SnapshotChannel.name">
Return the shorthand alias for this channel, which is based on its type and index.
**Return type**
`str`
</Attribute>
#### parameters
<Attribute id="qiskit.pulse.channels.SnapshotChannel.parameters">
Parameters which determine the channel index.
**Return type**
`Set`
</Attribute>
</Class>