本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Braket 上的脉冲控制
脉冲是控制量子计算机中量子比特的模拟信号。使用 Amazon Braket 上的某些设备,您可以访问脉冲控制功能,使用脉冲提交电路。你可以通过 Braket SDK、OpenQasm 3.0 或直接通过 Braket 访问脉冲控制。 APIs首先,让我们介绍一下 Braket 中脉冲控制的一些关键概念。
帧
帧是一种软件抽象,既充当量子程序中的时钟,又充当相位。每次使用时钟时间都会递增,并且有状态的载波信号由频率定义。向量子比特传输信号时,帧决定量子比特的载波频率、相位偏移以及波形包络的发射时间。在 Braket Pulse 中,构造帧取决于器件、频率和相位。根据设备的不同,您可以选择预定义的帧,也可以通过提供端口来实例化新帧。
from braket.aws import AwsDevice from braket.pulse import Frame, Port # predefined frame from a device device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3") drive_frame = device.frames["Transmon_5_charge_tx"] # create a custom frame readout_frame = Frame(frame_id="r0_measure", port=Port("channel_0", dt=1e-9), frequency=5e9, phase=0)
端口
端口是一种软件抽象,代表控制量子比特的任何输入/输出硬件组件。它可以帮助硬件供应商提供一个接口,用户可以通过该界面进行交互以操作和观察量子比特。端口的特征是代表连接器名称的单个字符串。该字符串还显示了最小时间增量,该增量指定了我们可以定义波形的精细程度。
from braket.pulse import Port Port0 = Port("channel_0", dt=1e-9)
波形
波形是一种随时间变化的包络,我们可以用它在输出端口上发射信号或通过输入端口捕获信号。您可以通过复数列表直接指定波形,也可以使用波形模板从硬件提供商生成列表来指定波形。
from braket.pulse import ArbitraryWaveform, ConstantWaveform cst_wfm = ConstantWaveform(length=1e-7, iq=0.1) arb_wf = ArbitraryWaveform(amplitudes=np.linspace(0, 100))
Braket Pulse 提供了一个标准的波形库,包括恒定波形、高斯波形和绝热门导数去除 (DRAG) 波形。您可以通过sample
函数检索波形数据以绘制波形的形状,如以下示例所示。
gaussian_waveform = GaussianWaveform(1e-7, 25e-9, 0.1) x = np.arange(0, gaussian_waveform.length, drive_frame.port.dt) plt.plot(x, gaussian_waveform.sample(drive_frame.port.dt))

上图描绘了从中创建的高斯波形。GaussianWaveform
我们选择的脉冲长度为 100 ns,宽度为 25 ns,振幅为 0.1(任意单位)。波形在脉冲窗口中居中。 GaussianWaveform
接受布尔参数zero_at_edges
(图例中的 zaE)。设置为时True
,此参数会偏移高斯波形,使 t=0 和 t= length
处的点为零,并重新缩放其振幅,使最大值与参数相对应。amplitude
现在我们已经介绍了脉冲级访问的基本概念,接下来我们将看到如何使用门和脉冲来构造电路。