Skip to content
This repository was archived by the owner on Aug 21, 2023. It is now read-only.

Commit 561373f

Browse files
committed
Fix typos in advanced/ignis tutorials
1 parent 2841b3e commit 561373f

12 files changed

Lines changed: 129 additions & 128 deletions

qiskit/advanced/ignis/1_calibrating_a_qubit.ipynb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
},
4444
"source": [
4545
"### Loading pulse backend\n",
46-
"To run OpenPulse experiment, at first we need to load a backend object of your quantum computing system with `open_pulse = True` in the configuration. `PulseChannelSpec` class creates a system configuration from backend. You can extract all information from the instanse to create pulse schedule object.\n",
46+
"To run an OpenPulse experiment, at first we need to load a backend object of your quantum computing system with `open_pulse = True` in the configuration. The `PulseChannelSpec` class creates a system configuration from backend. You can extract all information from the instance to create pulse schedule objects.\n",
4747
"\n",
4848
"- `system.drives` : Returns a list of drive channels.\n",
4949
"- `system.controls` : Returns a list of control channels.\n",
@@ -52,7 +52,7 @@
5252
"- `system.registers` : Returns a list of registers.\n",
5353
"- `system.memoryslots` : Returns a list of memory slots.\n",
5454
"\n",
55-
"Mapping between these channels and qubits is automatically created in the `PulseChannelSpec` instanse.\n",
55+
"Mapping between these channels and qubits is automatically created in the `PulseChannelSpec` instance.\n",
5656
"\n",
5757
"- `system.qubits` : Returns a list of qubit object.\n",
5858
"\n",
@@ -113,7 +113,7 @@
113113
}
114114
},
115115
"source": [
116-
"User defined pulse can be created by using `pulse.function` decorator. A python function which returns an `array_like` object can be used to create user defined pulses. The first argument of the function should be `duration` specifing number of data points. You are also able to get standard pulse templates from `pulse_lib`, and able to find calibrated pulses provided by backend via `CmdDef`. In this notebook, we use a Gaussian pulse template from `pulse_lib.gaussian` and default measurement pulses from `CmdDef`."
116+
"User defined pulses can be created by using the `pulse.function` decorator. A python function which returns an `array_like` object can be used to create user defined pulses. The first argument of the function should be `duration` specifying the number of data points. You are also able to get standard with pulse templates from `pulse_lib`, and able to find calibrated pulses provided by backend via `CmdDef`. In this notebook, we use a Gaussian pulse template from `pulse_lib.gaussian` and default measurement pulses from `CmdDef`."
117117
]
118118
},
119119
{
@@ -172,7 +172,7 @@
172172
}
173173
},
174174
"source": [
175-
"In this experiment, we apply Rabi drive pulse to qubit0 and measure a signal from the qubit by changing the amplitude of the pulse (`drive_amps`) from 0 to 0.05. Returned signal is integrated and averaged over 512 shot. A `boxcar` kernel is used to process measurement data (**note**: currently the hardware overrides this specification, to be implemented in future versions). The result is stored in `memory_slot[0]`."
175+
"In this experiment, we apply a Rabi drive pulse to qubit0 and measure a signal from the qubit by changing the amplitude of the pulse (`drive_amps`) from 0 to 0.05. The returned signal is integrated and averaged over 512 shot. A `boxcar` kernel is used to process measurement data (**note**: currently the hardware overrides this specification, to be implemented in future versions). The result is stored in `memory_slot[0]`."
176176
]
177177
},
178178
{
@@ -209,13 +209,13 @@
209209
}
210210
},
211211
"source": [
212-
"Pulses commands are registered to `Schedule`s with information of `channel` and `start_time`. The chanel information is provided by `PulseChannelSpec`. You can create your `Schedule` by using syntax sugers: \n",
212+
"Pulse commands are registered to `Schedule`s with information of `channel` and `start_time`. The channel information is provided by `PulseChannelSpec`. You can create your `Schedule` by using syntax sugar: \n",
213213
"\n",
214214
"- `|` (`union`): combine two `Schedule`s in parallel.\n",
215215
"- `+` (`append`): add a `Schedule` right after a `Schedule` to be appended.\n",
216216
"- `<<` (`shift`): shift `start_time` of `Schedule`.\n",
217217
"\n",
218-
"All details are available in [Pulse Schedules](https://github.com/Qiskit/qiskit-tutorials/blob/master/qiskit/advanced/terra/pulse_schedules.ipynb).\n",
218+
"All details are available in [Pulse Schedules](../terra/5_pulse_schedules.ipynb).\n",
219219
"Created `Schedule`s can be combined into a single job."
220220
]
221221
},
@@ -248,7 +248,7 @@
248248
"cell_type": "markdown",
249249
"metadata": {},
250250
"source": [
251-
"We may plot any of the experiment schedules with"
251+
"We may plot any of the experiment schedules with:"
252252
]
253253
},
254254
{
@@ -299,7 +299,7 @@
299299
"cell_type": "markdown",
300300
"metadata": {},
301301
"source": [
302-
"After building our rabi experiment QObj we now submit it to the backend to be run."
302+
"After building our rabi experiment Qobj we now submit it to the backend to be run."
303303
]
304304
},
305305
{
@@ -317,7 +317,7 @@
317317
"cell_type": "markdown",
318318
"metadata": {},
319319
"source": [
320-
"We receive a job object for our experiment which we may use to monitor and get the results of the experiment."
320+
"We receive a job object for our experiment which we may be used to monitor and get the results of the experiment."
321321
]
322322
},
323323
{
@@ -364,7 +364,7 @@
364364
"cell_type": "markdown",
365365
"metadata": {},
366366
"source": [
367-
"We now ask for the result from the quantum computing system, which will block until completition (or timeout)."
367+
"We now ask for the result from the quantum computing system, which will block until completion (or timeout)."
368368
]
369369
},
370370
{
@@ -400,7 +400,7 @@
400400
}
401401
},
402402
"source": [
403-
"The result for our experiment is stored in `memory_slot[qubit]`. The returned data are the integreted values of the received and mixed down stimulus signal applied to the measured resonator averaged over all shots. Looking at the signal amplitude, we will observe an ocillation of the signal as a function of the drive amplitude. This is known as a Rabi oscillation and correspond to the qubit being peridiocally driven to its excited state. This is how we control our qubits."
403+
"The result for our experiment is stored in `memory_slot[qubit]`. The returned data are the integrated values of the received and mixed down stimulus signal applied to the measured resonator averaged over all shots. Looking at the signal amplitude, we will observe an oscillation of the signal as a function of the drive amplitude. This is known as a Rabi oscillation and correspond to the qubit being periodically driven to its excited state. This is how we control our qubits."
404404
]
405405
},
406406
{
@@ -489,7 +489,7 @@
489489
"cell_type": "markdown",
490490
"metadata": {},
491491
"source": [
492-
"From the fit we obtain the Rabi oscillation frequency. We may use this to extract the amplitude of a π pulse. This is the required amplitude to drive the qubit from the ground state ($|0>$) to the excited state ($|1>$)."
492+
"From the fit we obtain the Rabi oscillation frequency. We may use this to extract the amplitude of a $\\pi$ pulse. This is the required amplitude to drive the qubit from the ground state ($|0\\rangle$) to the excited state ($|1\\rangle$)."
493493
]
494494
},
495495
{
@@ -503,7 +503,7 @@
503503
"cell_type": "markdown",
504504
"metadata": {},
505505
"source": [
506-
"In this experiment, we observe a change of measured signals depending on a quantum state of qubit0. By setting `drive_amp` to `pi_amp` we previously obtained, we can apply $\\pi$-pulse to the qubit0. To observe a distribution on the IQ plane, we set `meas_return` to `single` ."
506+
"In this experiment, we observe a change of measured signals depending on a quantum state of qubit0. By setting `drive_amp` to `pi_amp` we previously obtained, we can apply a $\\pi$-pulse to the qubit0. To observe a distribution on the IQ plane, we set `meas_return` to `single` ."
507507
]
508508
},
509509
{
@@ -680,7 +680,7 @@
680680
"cell_type": "markdown",
681681
"metadata": {},
682682
"source": [
683-
"Previous experiment is performed without specifying drive frequencies of qubit0. In this case, default drive frequencies from the backend configuration are automatically assigned. These values are calibrated to correspond with the qubit resonanse frequencies. In this experiment, we also change a drive frequencie of qubit0 and see what happens."
683+
"Previous experiment is performed without specifying drive frequencies of qubit0. In this case, default drive frequencies from the backend configuration are automatically assigned. These values are calibrated to correspond with the qubit resonance frequencies. In this experiment, we also change a drive frequency of qubit0 and see what happens."
684684
]
685685
},
686686
{
@@ -790,7 +790,7 @@
790790
"cell_type": "markdown",
791791
"metadata": {},
792792
"source": [
793-
"As in the same manner as the previous experiment, we calculate signal amplitude for each experiment. The result provides a 2 dimensional array of signal amplitude with respect to drive amplitude and frequency. This is called qubit chevron pattern and we can see the change of Rabi rate that comes with the detuning of drive frequency.\n",
793+
"In the same manner as the previous experiment, we calculate the signal amplitude for each experiment. The result provides a 2 dimensional array of signal amplitudes with respect to drive amplitude and frequency. This is called qubit chevron pattern and we can see the change of Rabi rate that comes with the detuning of drive frequency.\n",
794794
"\n",
795795
"## Warning: this sends a lot of jobs"
796796
]

qiskit/advanced/ignis/2_hamiltonian_and_gate_characterization.ipynb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"cell_type": "markdown",
2222
"metadata": {},
2323
"source": [
24-
"This notebook gives examples to demonstrate how to user the ``characterization.hamiltonian`` and ``characterization.gates`` modules in ``qiskit-ignis``. For a theory background see the [Ignis Community Notebooks]( https://github.com/Qiskit/qiskit-tutorials/tree/master/community/ignis)."
24+
"This notebook gives examples to demonstrate how to use the ``characterization.hamiltonian`` and ``characterization.gates`` modules in Qiskit Ignis. For a theory background see the [Ignis Community Notebooks]( https://github.com/Qiskit/qiskit-community-tutorials/tree/master/ignis)."
2525
]
2626
},
2727
{
@@ -51,11 +51,11 @@
5151
"source": [
5252
"# Measuring ZZ\n",
5353
"\n",
54-
"The ``characterization.hamiltonian.zz_circuits`` module builds the circuits to perform an experiment to measure ZZ between a pair of qubits. ZZ here is defined as the energy shift on the $|11\\rangle$ state,\n",
54+
"The ``characterization.hamiltonian.zz_circuits`` module builds the circuits to perform an experiment to measure ZZ between a pair of qubits. Here, ZZ is defined as the energy shift on the $|11\\rangle$ state:\n",
5555
"\n",
5656
"$$H=\\omega_0 (1-\\sigma_{Z,0})/2 +\\omega_1 (1-\\sigma_{Z,1})/2 + \\xi |11\\rangle\\langle 11|$$\n",
5757
"\n",
58-
"The experiment to measure $\\xi$ is to perform a Ramsey experiment on Q0 (H-t-H) and repeat the Ramsey with Q1 in the excited state. The difference in frequency between these experiments is the rate $\\xi$"
58+
"The experiment to measure $\\xi$ is to perform a Ramsey experiment on Q0 (H-t-H) and repeat the Ramsey experiment with Q1 in the excited state. The difference in frequency between these experiments is the rate $\\xi$."
5959
]
6060
},
6161
{
@@ -87,7 +87,7 @@
8787
"cell_type": "markdown",
8888
"metadata": {},
8989
"source": [
90-
"One of the features of the fitters are that we can split the circuits into multiple jobs and then give the results to the fitter as a list. Demonstrated below."
90+
"One of the features of the fitters is that we can split the circuits into multiple jobs and then give the results to the fitter as a list. This is demonstrated below."
9191
]
9292
},
9393
{
@@ -200,7 +200,7 @@
200200
"cell_type": "markdown",
201201
"metadata": {},
202202
"source": [
203-
"This shows the sequence of the calibration, which is repeated application of Y90 (U2[0,0]). Note that the measurements are mapped to a minimal number of classical registers in order of the qubit list."
203+
"This shows the sequence of the calibration, which is a repeated application of Y90 (U2[0,0]). Note that the measurements are mapped to a minimal number of classical registers in order of the qubit list."
204204
]
205205
},
206206
{
@@ -334,7 +334,7 @@
334334
"cell_type": "markdown",
335335
"metadata": {},
336336
"source": [
337-
"Measure the angle between the X and Y gates"
337+
"Measure the angle between the X and Y gates:"
338338
]
339339
},
340340
{
@@ -351,7 +351,7 @@
351351
"cell_type": "markdown",
352352
"metadata": {},
353353
"source": [
354-
"Gate sequence for measureing the angle error"
354+
"The gate sequence for measuring the angle error:"
355355
]
356356
},
357357
{
@@ -478,7 +478,7 @@
478478
"cell_type": "markdown",
479479
"metadata": {},
480480
"source": [
481-
"This looks for a rotation error in the CX gate, ie., if the gate is actually $CR_x(\\pi/2+\\delta)$ measure $\\delta$. This is very similar to the single qubit amplitude error calibration except we need to specify a control qubit (which is set to be in state $|1\\rangle$) and the rotation is a $\\pi$."
481+
"This looks for a rotation error in the CX gate, i.e. if the gate is actually $CR_x(\\pi/2+\\delta)$ measure $\\delta$. This is very similar to the single qubit amplitude error calibration except we need to specify a control qubit (which is set to be in state $|1\\rangle$) and the rotation is $\\pi$."
482482
]
483483
},
484484
{
@@ -499,7 +499,7 @@
499499
"cell_type": "markdown",
500500
"metadata": {},
501501
"source": [
502-
"Gate sequence to calibrate the amplitude of the CX gate on Q0-Q1 and Q2-Q3 in parallel"
502+
"The gate sequence to calibrate the amplitude of the CX gate on Q0-Q1 and Q2-Q3 in parallel:"
503503
]
504504
},
505505
{
@@ -614,7 +614,7 @@
614614
"cell_type": "markdown",
615615
"metadata": {},
616616
"source": [
617-
"Measure the angle error $\\theta$ in the CX gate, i.e., $CR_{\\cos(\\theta)X+\\sin(\\theta)Y}(\\pi/2)$ with respect to the angle of the single qubit gates."
617+
"Measure the angle error $\\theta$ in the CX gate, i.e. $CR_{\\cos(\\theta)X+\\sin(\\theta)Y}(\\pi/2)$ with respect to the angle of the single qubit gates."
618618
]
619619
},
620620
{
@@ -632,7 +632,7 @@
632632
"cell_type": "markdown",
633633
"metadata": {},
634634
"source": [
635-
"Gate sequence to calibrate the CX angle for Q0-Q1 and Q3-Q4 in parallel"
635+
"The gate sequence to calibrate the CX angle for Q0-Q1 and Q3-Q4 in parallel:"
636636
]
637637
},
638638
{

qiskit/advanced/ignis/3_relaxation_and_decoherence.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"* **Last Updated:** Feb 25, 2019\n",
1717
"* **Requires:** qiskit-terra 0.8, qiskit-ignis 0.1.1, qiskit-aer 0.2\n",
1818
"\n",
19-
"This notebook gives examples for how to use the ``ignis.characterization.coherence`` module for measuring $T_1$ and $T_2$"
19+
"This notebook gives examples for how to use the ``ignis.characterization.coherence`` module for measuring $T_1$ and $T_2$."
2020
]
2121
},
2222
{

qiskit/advanced/ignis/4_measurement_error_mitigation.ipynb

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"cell_type": "markdown",
8181
"metadata": {},
8282
"source": [
83-
"The following function **complete_meas_cal** returns a list **meas_calibs** of QuantumCircuit objects containing the calibration circuits, \n",
83+
"The following function **complete_meas_cal** returns a list **meas_calibs** of `QuantumCircuit` objects containing the calibration circuits, \n",
8484
"and a list **state_labels** of the calibration state labels.\n",
8585
"\n",
8686
"The input to this function can be given in one of the following three forms:\n",
@@ -91,7 +91,7 @@
9191
"\n",
9292
"In addition, one can provide a string **circlabel**, which is added at the beginning of the circuit names for unique identification.\n",
9393
"\n",
94-
"For example, in our case, the input is a 5-qubit QuantumRegister containing the qubits Q2,Q3,Q4:"
94+
"For example, in our case, the input is a 5-qubit `QuantumRegister` containing the qubits Q2,Q3,Q4:"
9595
]
9696
},
9797
{
@@ -187,7 +187,7 @@
187187
"Assume that we apply some noise model from Qiskit Aer to the 5 qubits, \n",
188188
"then the calibration matrix will have most of its mass on the main diagonal, with some additional 'noise'.\n",
189189
"\n",
190-
"Alternatively, we can execute the calibration circuits using IBMQ provider."
190+
"Alternatively, we can execute the calibration circuits using an IBMQ provider."
191191
]
192192
},
193193
{
@@ -348,7 +348,7 @@
348348
"cell_type": "markdown",
349349
"metadata": {},
350350
"source": [
351-
"We now execute the calibration circuits (with the noise model above)"
351+
"We now execute the calibration circuits (with the noise model above):"
352352
]
353353
},
354354
{
@@ -367,9 +367,9 @@
367367
"source": [
368368
"We now compute the results without any error mitigation and with the mitigation, namely after applying the calibration matrix to the results.\n",
369369
"\n",
370-
"There are two fitting methods for applying thr calibration (if none method is defined, then 'least_squares' is used). \n",
370+
"There are two fitting methods for applying the calibration (if no method is defined, then 'least_squares' is used). \n",
371371
"- **'pseudo_inverse'**, which is a direct inversion of the calibration matrix, \n",
372-
"- **'least_squares'**, which constrained to have physical probabilities.\n",
372+
"- **'least_squares'**, which constrains to have physical probabilities.\n",
373373
"\n",
374374
"The raw data to be corrected can be given in a number of forms:\n",
375375
"\n",
@@ -436,7 +436,7 @@
436436
"cell_type": "markdown",
437437
"metadata": {},
438438
"source": [
439-
"Consider now that we want to correct a 2Q Bell state, but we have the 3Q calibration matrix. We can reduce the matrix and build a new mitigation object"
439+
"Consider now that we want to correct a 2Q Bell state, but we have the 3Q calibration matrix. We can reduce the matrix and build a new mitigation object."
440440
]
441441
},
442442
{
@@ -595,11 +595,11 @@
595595
"cell_type": "markdown",
596596
"metadata": {},
597597
"source": [
598-
"Let us elaborate on the circuit names. We see that there are only four circuits, instead of eight. The total number of required circuits is $2^m$ where m is the number of qubits in the larget subset (here m=2).\n",
598+
"Let us elaborate on the circuit names. We see that there are only four circuits, instead of eight. The total number of required circuits is $2^m$ where $m$ is the number of qubits in the larget subset (here $m=2$).\n",
599599
"\n",
600600
"Each basis state of qubits 3 and 4 appears exactly once. Only two basis states are required for qubit 2, so these are split equally across the four experiments. For example, state '0' of qubit 2 appears in state labels '000' and '010'.\n",
601601
"\n",
602-
"We now execute the calibration circuits on Aer simulator, using the same noise model as before. This noise is in fact local to qubits 3 and 4 separately, but assume that we don't know it, and that we only know that it is local for qubit 2."
602+
"We now execute the calibration circuits on an Aer simulator, using the same noise model as before. This noise is in fact local to qubits 3 and 4 separately, but assume that we don't know it, and that we only know that it is local for qubit 2."
603603
]
604604
},
605605
{
@@ -668,7 +668,7 @@
668668
"cell_type": "markdown",
669669
"metadata": {},
670670
"source": [
671-
"We can look at the readout fidelities of the individual tensored components or qubits within a set"
671+
"We can look at the readout fidelities of the individual tensored components or qubits within a set:"
672672
]
673673
},
674674
{
@@ -703,7 +703,7 @@
703703
"cell_type": "markdown",
704704
"metadata": {},
705705
"source": [
706-
"Plot the individual calibration matrices"
706+
"Plot the individual calibration matrices:"
707707
]
708708
},
709709
{
@@ -790,7 +790,7 @@
790790
"cell_type": "markdown",
791791
"metadata": {},
792792
"source": [
793-
"We now execute the calibration circuits (with the noise model above)"
793+
"We now execute the calibration circuits (with the noise model above):"
794794
]
795795
},
796796
{
@@ -824,7 +824,7 @@
824824
"cell_type": "markdown",
825825
"metadata": {},
826826
"source": [
827-
"Plot the raw vs corrected state"
827+
"Plot the raw vs corrected state:"
828828
]
829829
},
830830
{
@@ -855,7 +855,7 @@
855855
"cell_type": "markdown",
856856
"metadata": {},
857857
"source": [
858-
"As a check we should get the same answer if we build the full correction matrix from a tensor product of the subspace calibration matrices"
858+
"As a check we should get the same answer if we build the full correction matrix from a tensor product of the subspace calibration matrices:"
859859
]
860860
},
861861
{

0 commit comments

Comments
 (0)