A unitary matrix is the complex version of a rotation. It turns a vector without stretching or shrinking it, so it keeps every length and every angle. That is why it appears wherever a signal must be transformed without losing energy, as in the DFT, in the SVD of a MIMO channel and in quantum gates. I'll start with the list of properties, then check them on real numbers. After that we'll prove the two most important ones and look at where the matrix is used.
- What properties does a unitary matrix have ?
- What does a unitary matrix look like with numbers ?
- Why does a unitary matrix keep length and angle ?
- Where do unitary matrices appear in engineering ?
What properties does a unitary matrix have ?
A list of properties is easy to read and hard to remember. Most items on the list below follow from the first one, U*U = I, so that is the line to keep in mind. The later sections show why the others follow from it.
Unitary Matrix is a special kind of complex square matrix which has following properties. (U in the following description represents a unitary matrix)
- U*U = UU* = I (U* is the conjugate transpose of the matrix U)
- |det(U)| = 1 (It means that this matrix does not have scaling properties, but it can have rotating property)
- Eigenspaces of U are orthogonal
- U is diagonalizable
- U* is unitary
- U is invertible and the inverse of U is U*
- The columns of U forms an orthnomal basis
- The rows of U forms an orthnomal basis
- The eigenvalues of U lies on the unit circle and the eigenvectors for different eigenvalues are orthogonal to each other
Figure 1 shows the row and column rules for a 3 x 3 unitary matrix. Each shape stands for one entry. The horizontal lines mark the rows, and the vertical lines mark the columns.

Figure 1. Rows and columns of a unitary matrix. Every row and every column has norm 1, and any two different rows or columns are orthogonal.
Each row has norm 1 : the sum of |uij|2 along any row is 1. The labels on the right side of the picture say this for the three rows.The rows are orthogonal : the curved arrows on the right pair row 1 with row 2, row 2 with row 3 and row 1 with row 3. For complex entries, orthogonal means that the sum of uik times the conjugate of ujk is 0.The same rules hold for the columns : the labels under the matrix repeat the norm and orthogonality rules for the three columns.Both rules come from one equation : the entry in row i and column j of U*U is the inner product of column i and column j. U*U = I says that this inner product is 1 when i = j and 0 otherwise. UU* = I says the same thing for the rows.
A real matrix with these properties is called an orthogonal matrix. For a real matrix the conjugate changes nothing, so U* is just the transpose UT. Many books write the conjugate transpose as UH. It is the same matrix as U* on this page.
What does a unitary matrix look like with numbers ?
Let's make the properties concrete. A 2 x 2 example is small enough to check by hand, and it shows the complex conjugate at work. We'll also look at a real rotation, which is the simplest unitary matrix of all.
Take U = (1/√2) [[1, 1], [j, -j]], where each inner bracket is one row. The first column is (1/√2)[1, j]T and the second column is (1/√2)[1, -j]T. Each column has norm 1, because (|1|2 + |j|2)/2 = 1. Their inner product uses the conjugate of the first column: (1 x 1 + (-j) x (-j))/2 = (1 - 1)/2 = 0. So the two columns are orthogonal, and U*U = I.
Now check the other items on the list. The determinant is (1/2)(1 x (-j) - 1 x j) = -j, so |det(U)| = 1. The two eigenvalues are ej15 deg and e-j105 deg. Both have magnitude 1, and their product is e-j90 deg = -j, which is the determinant again. The two eigenvectors are orthogonal, as the list says.
A real example is the 2 x 2 rotation R(θ) = [[cos θ, -sin θ], [sin θ, cos θ]]. Its determinant is cos2θ + sin2θ = 1. For θ = 30 deg its eigenvalues are cos 30 deg +/- j sin 30 deg = 0.866 +/- j0.5. They are e+/-j30 deg, so the eigenvalues carry the rotation angle.
The conjugate matters for complex entries : without it, the two columns of U would give (1 + j x (-j))/2 = 1, not 0. So a complex matrix must be tested with the conjugate transpose, never with the plain transpose.|det(U)| = 1 does not mean det(U) = 1 : here det(U) = -j. The determinant of a unitary matrix can be any point on the unit circle.Eigenvalues are pure phases : a unitary matrix only rotates the phase of each eigenvector. It never changes the length of an eigenvector.Check the result in code : in Matlab, U'*U gives the identity, because the apostrophe is the conjugate transpose. In numpy, use U.conj().T @ U.
Why does a unitary matrix keep length and angle ?
The list says that U does not scale anything. That claim follows from U*U = I in one line, and the same line proves the facts about the eigenvalues and the determinant. So it is worth going through the proof once.
Start with the length of Ux. The squared length of a complex vector is ||x||2 = x*x. So ||Ux||2 = (Ux)*(Ux) = x*U*Ux. Because U*U = I, this is x*x = ||x||2. The same steps show that the inner product of Ux and Uy equals the inner product of x and y. So the angle between two vectors does not change either. For the example above, x = [3, 4j]T has length 5, and Ux = [2.121 + j2.828, 2.828 + j2.121]T also has length 5.
The eigenvalues follow from the length rule. If Ux = λx with x not zero, then ||Ux|| = |λ| ||x||. The length rule says ||Ux|| = ||x||, so |λ| = 1. The determinant follows from the product rule for determinants. The determinant of U* is the conjugate of det(U), so 1 = det(U*U) = |det(U)|2, and |det(U)| = 1.
Energy is preserved : ||Ux||2 = ||x||2 for every x. In signal terms, a unitary transform keeps the total power of the signal.Inner products are preserved : so orthogonal inputs stay orthogonal after the transform.The inverse needs no matrix inversion : U-1 = U*, so undoing the transform only needs a conjugate transpose.Noise keeps its statistics : white noise with equal power in every direction still has equal power in every direction after a unitary transform.
Where do unitary matrices appear in engineering ?
A unitary matrix is the right tool when a signal must change its basis without losing energy. Many operations in communication and signal processing need exactly that. Here are the places where you will meet one most often.
The first is the DFT. The N-point DFT matrix has entries e-j2πkn/N. It becomes unitary when it is scaled by 1/√N. For N = 4 its rows are [1, 1, 1, 1], [1, -j, -1, j], [1, -1, 1, -1] and [1, j, -1, -j], each divided by 2. So the normalized IFFT and FFT in an OFDM modem move a symbol between the time domain and the frequency domain with the same energy.
The second is matrix decomposition. The SVD writes any matrix as UΣV*, with U and V unitary. For a MIMO channel H, V is a transmit precoder and U* is a receive combiner, and the channel between them becomes the diagonal Σ. The QR decomposition uses a unitary Q in the same way. A third example is the Hadamard matrix (1/√2)[[1, 1], [1, -1]], which is also the Hadamard gate of quantum computing.
Normalization makes the DFT unitary : without the 1/√N factor, the DFT matrix F satisfies F*F = N x I, so it scales the energy by N.A unitary precoder does not change the transmit power : the total power is the same before and after the precoder.det can be -1 even for a real unitary matrix : the Hadamard matrix above has determinant -1 and eigenvalues 1 and -1. It is a reflection rather than a rotation.