Skip to content

Commit

Permalink
Include phase drift correctin in the EOM tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
HGSilveri committed Aug 24, 2023
1 parent 057ae14 commit 3c6e802
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions tutorials/advanced_features/Output Modulation and EOM Mode.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,11 @@
"source": [
"The modulation bandwidth of a channel can impose significant limitations on how a pulse sequence is programmed. Perhaps most importantly, it can force the user to program longer pulses than would otherwise be required, resulting in longer sequences and consequently noisier results.\n",
"\n",
"To overcome these limitations, a channel can be equipped with an EOM that allows the execution of pulses with a higher modulation bandwidth. For now, EOM mode operation is reserved for `Rydberg` channels and works under very specific conditions:\n",
"To overcome these limitations, a channel can be equipped with an EOM that allows the execution of square pulses with a higher modulation bandwidth. For now, EOM mode operation is reserved for `Rydberg` channels and works under very specific conditions:\n",
"\n",
" 1. EOM mode must be explicitly enabled (`Sequence.enable_eom_mode()`) and disabled (`Sequence.disable_eom_mode()`).\n",
" 2. A buffering time is automatically added before the EOM mode is enabled and after it is disabled, as it needs to be isolated from regular channel operation. During the starting buffer, the detuning goes to the value it will assume between EOM pulses (_i.e._ during delays).\n",
" 3. When enabling the EOM mode, one must choose the amplitude and detuning value that all square pulses will have. These values will also determine a set of options for the detuning during delays, out of which one chosen.\n",
" 3. When enabling the EOM mode, one must choose the amplitude and detuning value that all square pulses will have. These values will also determine a set of options for the detuning during delays, out of which the best one is chosen. When this detuning value is not zero, the phase of each qubit's state will drift during delays. If desired, this phase drift can be corrected through the `correct_phase_drift` option, which will adjust the phase of subsequent pulses accordingly. \n",
" 4. While in EOM mode, one can only add delays or pulses of variable duration (through `Sequence.add_eom_pulse()`) – changing the phase between pulses is also allowed, but the necessary buffer time for a phase jump will still be enforced."
]
},
Expand All @@ -280,12 +280,12 @@
"seq.add(Pulse.ConstantPulse(100, 1, 0, 0), \"rydberg\")\n",
"seq.enable_eom_mode(\"rydberg\", amp_on=1.0, detuning_on=0.0)\n",
"seq.add_eom_pulse(\"rydberg\", duration=100, phase=0.0)\n",
"seq.delay(200, \"rydberg\")\n",
"seq.add_eom_pulse(\"rydberg\", duration=60, phase=0.0)\n",
"seq.delay(300, \"rydberg\")\n",
"seq.add_eom_pulse(\"rydberg\", duration=60, phase=0.0, correct_phase_drift=True)\n",
"seq.disable_eom_mode(\"rydberg\")\n",
"seq.add(Pulse.ConstantPulse(100, 1, 0, 0), \"rydberg\")\n",
"\n",
"seq.draw()"
"seq.draw(draw_phase_curve=True)"
]
},
{
Expand All @@ -302,7 +302,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, inside the isolated EOM mode block in the middle we see that the pulses are much sharper, but we can only do square pulses with a fixed amplitude and there is some non-zero detuning in between them."
"As expected, inside the isolated EOM mode block in the middle we see that the pulses are much sharper, but we can only do square pulses with a fixed amplitude and there is some non-zero detuning in between them. \n",
"\n",
"We also observe how the phase of the second EOM pulse changes to correct for the phase drift during the detuned delay (because we set `correct_phase_drift=True`)."
]
}
],
Expand Down

0 comments on commit 3c6e802

Please sign in to comment.