A key application of the quantum Fourier transform (see this post) is the Quantum Phase Estimation algorithm. This algorithm allows one to estimate the phase (or eigenvalue) of a unitary operator and serves as a central component of many quantum algorithms, including Shor’s factoring algorithm and quantum simulation.
Consider a unitary matrix . Since
, all eigenvalues of
have the form
with
. Expressing
in binary gives
where each . The task is to estimate
to
binary digits of precision.
More precisely, the quantum phase estimation algorithm aims to determine the phase in the eigenvalue equation
,
where is the given unitary operator,
is an eigenstate of
that can be prepared as an input state, and
is the phase to be determined. We further assume that controlled-
operations can be implemented for arbitrary non-negative integer
. The goal is to estimate
to the desired number of digits with high probability.
Now suppose that we express in
binary digits,
.
Then, we have
where the integer part of can be omitted, as it contributes only a trivial phase factor of
.
For the controlled unitary , its action on
(with
the control qubit) is:
It is convenient to view this control qubit as representing the $(l+1)$-th digit of a binary number .
With this notation, the above expression can be rewritten as
This expression for the first qubit is familiar from our earlier discussion of the quantum Fourier transform, and it naturally suggests that the quantum Fourier transform should be applied here. The eigenstate therefore remains unchanged and can be reused in subsequent steps.

Fig 1: quantum circuit for quantum phase estimation algorithm.
The quantum phase estimation algorithm uses two quantum registers as shown in Figure 1:
- First register (phase record): Contains
qubits, which will store the estimated phase.
- Second register (eigenstate): Contains the eigenstate
, which is an eigenstate of the unitary operator
.
The quantum phase estimation algorithm consists of the following steps:
- Prepare Initial State
The system starts with two registers:
- The first register is initialized in the state
.
- The second register is initialized in the eigenstate
of
.
The initial state is: .
- Apply Hadamard Gates
Apply Hadamard gates to each qubit in the first register, thereby creating a uniform superposition over all possible computational basis states:
Here, denotes the binary representation of the integer
, with the bits encoded from the bottom to the top qubit in the first register.
- Apply Controlled-
Operations
For each qubit in the first register, apply the controlled-
operation.
This step entangles the first and second registers, yielding the state:
Since , this becomes:
At this stage, the second register is no longer needed, as all phase information is now encoded in the first register.
- Apply the Inverse Quantum Fourier Transform
Apply the inverse quantum Fourier transform () on the first register to extract the phase information:
- Measure the First Register
Finally, measure the qubits in the first register. The measurement will yield the binary representation of the phase with an
-bit approximation.
The output will be an -bit approximation of the phase
, such that:
where are the binary digits of
.

