/images/avatar.png
点击    切换语言~

Quantum state tomography - a beginner's guide

Quantum State Tomography Quantum state tomography is the process of deducing the [quantum state] based on the [results of measurements on a quantum state ensemble]. Its formulation is straightforward, as follows: Given a series of measurement operators ${\Pi_1, \ldots, \Pi_n}$ and their corresponding measurement probabilities $p_k = \operatorname{Tr}[\rho \Pi_k]$, find the quantum state $\rho$. In other words, in these $n$ equations $p_k = \operatorname{Tr}[\rho \Pi_k]$, given $p_k$ and $\Pi_k$, find $\rho$.

Understanding differentials in four levels

One Differential is an Infinitesimal? Physicists like to think of differentials as very small quantities, which is convenient for calculations but gives a feeling of lack of rigor. In fact, it is indeed lacking rigor, and the second mathematical crisis arose from this. Rigor and clarity are always complementary. Treating differentials as infinitesimal satisfies intuition but cannot withstand rational scrutiny. Two Differential as Linear Function I like to think of differentials as a machine, for example,

Probing the spectral purity with unheralded g2 measurements in HBT experiment

In the previous section, we discussed the principle of measuring the quantum second-order correlation function with a non-photon-number-resolving single-photon detector in the HBT experiment. https://zhuanlan.zhihu.com/p/679453473 In this section, let’s see what the quantum second-order correlation function is used for. In addition to the common uses such as distinguishing between super-Poissonian statistics/Poissonian statistics/sub-Poissonian statistics and distinguishing between photon bunching/anti-bunching, the HBT experiment can also be used to measure the spectral purity of multimode squeezed states.

Probing g2 with non-photon-number-resolving detectors

HBT Experiment Those who have conducted quantum optics experiments must be familiar with the Hanbury Brown and Twiss (HBT) experiment, which can be used to measure the second-order correlation function g2. In this experiment, a beam of light is split into two using a 50:50 beamsplitter, and then each beam is detected separately by two detectors. The correlation of the intensities on both sides is measured as a function of delay, as shown in the figure below:

POVM: a brief introduction

Projection Measurement Traditionally, a measurement, in the sense of Von Neumann, is a series of projection operators. By performing spectral decomposition on the self-adjoint operator corresponding to the observable, denoted as $ O = \sum_i \lambda_i |\varphi_i\rangle\langle\varphi_i| $, we obtain these projection operators $ |\varphi_i\rangle\langle\varphi_i| $. This part is well-known to students who have studied elementary quantum mechanics. Besides the Von Neumann measurement, there is a more general type of measurement called Generalized Measurements or Positive Operator Valued Measures (POVMs).

Wave Function of Photons

The wave function of a photon in the spacetime representation is: $\Psi(\mathbf{r},t)=\langle \mathbf{r},t|\psi\rangle=\langle 0 |E^{+}(\mathbf{r},t)|\psi\rangle$ Where $\begin{aligned} |\mathbf{r},t\rangle = E^{-}(\mathbf{r},t) |0\rangle = \sum_{\mathbf{k},\lambda} \sqrt{\frac{\hbar \omega}{2 \epsilon_0 V}} e^{\mathrm{i}(\mathbf{k}\cdot \mathbf{r}-\omega_{\mathbf{k}} t)} a^\dag_{\mathbf{k},\lambda} |0\rangle \end{aligned}$. Intuitively, this is to let the field operator $E^{-}(\mathbf{r},t)$ create a state $|\mathbf{r},t\rangle$ at the spacetime point $(\mathbf{r},t)$, and then calculate the overlap between this state and $|\psi\rangle$. When we talk about the spacetime modes of photons, such as Gaussian pulses, hyperbolic secant pulses, etc.

Baker-Campbell-Hausdorff Formula

Chinese version here Baker-Campbell-Hausdorff Formula can be used to compute operator evolution in the Heisenberg picture: $e^X Y e^{-X}=Y+[X,Y]+\frac{1}{2!}[X,[X,Y]]+\frac{1}{3!}[X,[X,[X,Y]]]+\cdots$ This formula is actually just a younger sibling of the BCH formula. Because the evolution rule of operators in the Heisenberg picture is $A\rightarrow UAU^{\dag}$, where $U$ is a unitary evolution operator. If $U$ is generated by $H$, then it becomes $A\rightarrow e^{\frac{t}{i\hbar}H}Ae^{-\frac{t}{i\hbar}H}$. Example 1: Phase Shifter The Hamiltonian is $H=\varphi n$, and the annihilation operator $a$ evolves as: $\begin{aligned} e^{-i\varphi n} a e^{i\varphi n}&= a + i\varphi [n, a] - \frac{\varphi}{2!

Some fun side-projects

Projects Date Remark An FM Radio Receiver based on PYNQ-Z2 and RTL-SDR Jun 2023 Jupyter Notebook App rather than web app WIFI Weather Clock Jan 2023 Haven’t learned LvGL yet … The GUI is rather simple Light Cube Jan 2023 Ordered the BOM and soldered them together, but the firmware is not mine … Conway’s Game of Life Dec 2022 Touch screen used~

HW & SW Design of the AXI Quad SPI IP Core

1 Basics SPI has three-wire mode and four-wire mode. The three-wire mode consists of three wires - SS (Slave Select), SCK (SPI Clock), and MOSI (Master-In-Slave-Out). The four wire mode has an extra line called MISO (Master-In-Slave-Out). Signals Full Name SS Slave Select SCK SPI Clock MOSI Master-Out-Slave-In MISO Master-In-Slave-Out SPI clock has four modes: CPOL=0/1 and CPHA=0/1. CPOL stands for clock polarity – clock low or high when in idle.

Polling Jupyter Widget UI Events in Runtime

Let’s look at a code snippet in the Jupyter Notebook: 1 2 3 4 5 6 7 8 9 10 import time import ipywidgets as widgets from IPython.display import display slider = widgets.IntSlider() display(slider) while True: print(slider.value) time.sleep(1) IntSlider is an interactive Jupyter Notebook widget. When the user interacts with the slider, the slider value should change. However, if you run the above codes, you will find that the printed value of the slider won’t change at all – it will be stuck at its initial value.

Python coroutines and asyncio

Recently, I have been using Python coroutines/asynchronous programming in a project. Now, I will summarize my experience. Import 1 import asyncio If asyncio is to be used in an IPython environment, we have to add two more lines: 1 2 3 import nest_asyncio nest_asyncio.apply() import asyncio Coroutines Coroutines are the core of asynchronous programming in Python. To define a coroutine, you need to use async def. 1 2 3 async def main(): # do something print("Hello world!

Access the Internet from evaluation boards via PC

Windows Set a network adapter that can access the internet in the Control Panel and share it with Ethernet. The IP address of Ethernet will change to 192.168.137.1 (this is the default behavior in Windows). Then, set the gateway as 192.168.137.1 in the terminal of the development board: sudo route add default gw 192.168.137.1 Set the IP address as 192.168.137.x, where x is any value except 1 and 255 (gateway address and broadcast address):

Increasing the swapfile for Linux

Xilinx’s toolchain consumes soooo much memory! Sometimes it causes the system to freeze… After all, my laptop only has 8GB of RAM. So there’s no other choice but to add virtual memories. After increase the swapfile, the system performance has improved a lot: 1 2 3 4 sudo swapoff /swapfile sudo dd if=/dev/zero of=/swapfile bs=1M count=16384 sudo mkswap /swapfile sudo swapon /swapfile

Partitioning and Formatting SD Cards with Linux

To partition and format an SD card in Linux, follow these steps: First, connect the SD card to your PC. Then, use the fdisk command in the bash command line to partition the SD card. Finally, use the mkfs command to create a file system (format) on the SD card. The main commands are as follows: First, use sudo fdisk -l to confirm which device in /dev corresponds to the SD card.

Mounting the EFI partition in Windows OS

To mount the EFI partitions, run the following commands in PowerShell: 1 2 3 4 5 6 diskpart list disk # make sure which is the disk that contains the EFI partition. usually 0 select disk 0 list partition # make sure which is the EFI partition. normally 0 select disk 0 assign letter=z Then we will mount the EFI partition as drive Z. This operation may be useful when using a dual-boot system with Windows and Ubuntu: Sometimes, after removing the Ubuntu system, only the Windows system remains, but the GRUB interface still appears every time the computer boots.

Curl in high dimension

1 Differential Forms Before introducing the concept of curl, we need to first introduce differential forms and the exterior derivative. An n-form can be defined as an alternating multilinear mapping $\omega:(T_p^*M)^n\rightarrow \mathbb{R}$. It maps multiple vectors to a real number. Additionally, it satisfies the alternating property, meaning that exchanging two input vectors results in an output multiplied by a negative sign. Therefore, an n-form can be explicitly defined as follows:

What on earth are the pseudovectors?

1 Introduction In physics textbooks, we often come across the terms “pseudo-vector” and “pseudo-scalar.” In fact, on a 3-dimensional manifold, a “pseudo-vector” is the exterior product of two tangent vectors, denoted as $v\in T_pM\wedge T_pM=\bigwedge^2(T_pM)$, while a “pseudo-scalar” is the exterior product of three tangent vectors, denoted as $s\in T_pM\wedge T_pM\wedge T_pM=\bigwedge^3(T_pM)$. When equipped with an inner product (or non-degenerate bilinear form), there exists a Hodge duality between $\bigwedge^2(T_pM)$ and $\bigwedge^1(T_pM)$, which leads us to mistakenly consider the pseudo-vector as a vector.

Blog Migration

I recently discovered this fantastic tool for creating personal websites - Hugo. Feels really cool and user-friendly! Plan to gradually migrate my blogs from Zhihu to here in the future.