Skip to content

Circulant Matrices

A circulant matrix is built from a single vector by cyclically shifting it. Each row is the previous row moved one step to the right, wrapping around at the end. This rigid structure has a remarkable consequence: every circulant of a given size is diagonalized by the same fixed set of eigenvectors, the columns of the Fourier matrix. Once that basis is known, multiplying by a circulant, inverting it, or reading off its eigenvalues all reduce to the discrete Fourier transform.

The simplest nonzero circulant is the cyclic shift P\Pv, whose first column is (0,1,0,,0)T(0,1,0,\dots,0)^{\rm T}:

P=(0001100001000010),P(x0,x1,,xn1)T=(xn1,x0,,xn2)T.\Pv = \begin{pmatrix} 0 & 0 & \cdots & 0 & 1 \\ 1 & 0 & \cdots & 0 & 0 \\ 0 & 1 & \cdots & 0 & 0 \\ \vdots & & \ddots & & \vdots \\ 0 & 0 & \cdots & 1 & 0 \end{pmatrix}, \qquad \Pv\,(x_0, x_1, \dots, x_{n-1})^{\rm T} = (x_{n-1}, x_0, \dots, x_{n-2})^{\rm T}.

It is a permutation matrix, hence orthogonal, and it cycles with period nn: Pn=I\Pv^n = \Iv. Every circulant is a polynomial in P\Pv,

C  =  c0I+c1P+c2P2++cn1Pn1  =  pc(P),\Cv \;=\; c_0\Iv + c_1\Pv + c_2\Pv^2 + \cdots + c_{n-1}\Pv^{\,n-1} \;=\; p_{\cv}(\Pv),

because Pj\Pv^{\,j} is exactly the matrix with a single shifted diagonal of ones at offset jj. This is the structural fact that drives everything: all circulants are polynomials in one matrix, so they all share the eigenvectors of that matrix and commute with each other.

Eigenvectors of the shift: the Fourier modes

Section titled “Eigenvectors of the shift: the Fourier modes”

Since Pn=I\Pv^n = \Iv, every eigenvalue λ\lambda of P\Pv satisfies λn=1\lambda^n = 1: the eigenvalues are the nn-th roots of unity 1,w,w2,,wn11, w, w^2, \dots, w^{\,n-1}, where

w=e2πi/n.w = e^{2\pi i / n}.

The eigenvector for wkw^k is the geometric vector of its powers. Write fk=(1,wk,w2k,,w(n1)k)T\fv_k = (1,\, w^k,\, w^{2k}, \dots, w^{(n-1)k})^{\rm T}. Then shifting its entries multiplies the whole vector by wkw^k:

Pfk=wkfk,k=0,1,,n1.\Pv\,\fv_k = w^k \fv_k, \qquad k = 0, 1, \dots, n-1.

These nn eigenvectors are the Fourier modes: discrete complex exponentials of increasing frequency. They are orthogonal, and collecting them as columns gives the Fourier matrix.

The product Fx\Fv\xv is the discrete Fourier transform of x\xv, and 1nFy\tfrac1n\Fv^{*}\yv is the inverse transform. Orthogonality of the columns is a one-line geometric sum: for jkj \ne k,

fjfk=m=0n1wm(kj)=wn(kj)1wkj1=0,\fv_j^{*}\fv_k = \sum_{m=0}^{n-1} w^{m(k-j)} = \frac{w^{n(k-j)} - 1}{w^{\,k-j} - 1} = 0,

since wn(kj)=1w^{n(k-j)} = 1 while the denominator is nonzero; for j=kj = k every term is 11 and the sum is nn.

Diagonalization and the eigenvalue formula

Section titled “Diagonalization and the eigenvalue formula”

Because every circulant is the polynomial C=pc(P)\Cv = p_{\cv}(\Pv) and Pfk=wkfk\Pv\fv_k = w^k\fv_k, the same Fourier modes diagonalize C\Cv, with eigenvalue pc(wk)p_{\cv}(w^k).

This is a complete spectral picture obtained with no eigenvalue computation: the eigenvectors are universal and known in advance, and the eigenvalues are a single DFT of the first column. Several facts drop out immediately.

  • The eigenvalues are Fc\Fv\cv. A circulant is invertible exactly when no entry of Fc\Fv\cv vanishes, and C1\Cv^{-1} is again circulant with eigenvalues 1/λk1/\lambda_k.
  • Circulants commute. Any two circulants of the same size share the eigenvector matrix F\Fv, so CD=DC\Cv\Dv = \Dv\Cv, and their product is circulant with eigenvalues λk(C)λk(D)\lambda_k(\Cv)\,\lambda_k(\Dv). This is the convolution rule of the next page.
  • Symmetric circulants. C\Cv is symmetric when cm=cnmc_m = c_{n-m}; then the eigenvalues are real and the modes can be taken as the real cosine/sine vectors.

Edit the first column c\cv below. The matrix is rebuilt by cyclic shifts, and the bars show its eigenvalues λk=(Fc)k\lambda_k = (\Fv\cv)_k in magnitude and phase. The eigenvectors never move: they are always the Fourier modes. Only the eigenvalues respond to c\cv, and they are exactly its discrete Fourier transform.

first column c =
0.500.25000000.250.250.500.250000000.250.500.250000000.250.500.250000000.250.500.250000000.250.500.250000000.250.500.250.25000000.250.50
circulant C (each column shifts c)
01234567frequency k
eigenvalue magnitudes |λₖ| = |(Fc)ₖ|
The eigenvectors are always the fixed Fourier modes; only the eigenvalues change, and they are the discrete Fourier transform of the first column, λₖ = Σₘ cₘ e^(2πi mk/8). A flat spectrum means C is close to a multiple of the shift; a single tall bar means C is close to a pure frequency.

A circulant is therefore the cleanest example of a matrix that is best understood in another basis. In the standard basis it is a dense pattern of shifts; in the Fourier basis it is a diagonal matrix whose entries are read directly from the transform of one column.