Skip to content

Complex vectors and the Fourier matrix

Measure complex vectors with the conjugate, meet Hermitian and unitary matrices, and see why the Fourier matrix’s columns are perpendicular and diagonalise every circulant.

Helps to know first
This topic

First, the picture

Can eight turning arrows be perpendicular to eight others? Watch their products chain tip to tail and close up.

Perpendicular waves

Two columns of the 8 × 8 Fourier matrix, and the chain of their products.

Columns 1 and 3 of the 8 × 8 Fourier matrix: two rings of eight unit arrows.

sum of the products
–
turn per product
90°
3
0.00 / 13.40 s
Describe this picture

Two rings of eight unit arrows, the columns 1 and 3 of the 8×88\times8 Fourier matrix: in column kk, arrow nn points at the angle of e−j2πkn/8e^{-j2\pi kn/8}, for n=0n=0 to 7. Beside them, a plane of complex numbers. After a short rest, over about 5 s the eight products of matching arrows, the first conjugated, are laid tip to tail, the pair in use lit in both rings. Each product turns a quarter turn further clockwise than the last, so the chain runs round a square twice and closes at its start: the sum is 0. Then column 1 is compared with itself. All eight products are 1, and the chain is a straight line of length 8. Readouts give the sum and the turn per product. One control: a slider for the second column’s index, from 0 to 7, which shows that column’s whole chain. The chain closes for every index except 1, where it is straight.

Length needs a conjugate

A complex vector has complex numbers as its entries, such as z=(1, j)\mathbf{z}=(1,\,j). Try its length the old way, as z⋅z=∑zq2\mathbf{z}\cdot\mathbf{z}=\sum z_q^2:

12+j2=1−1=0.1^2+j^2=1-1=0.

A vector that is not 0\mathbf{0} would have length 0. Something is wrong. The fix is the size of a complex number, from Complex numbers for signals: ∣z∣2=z∗z\lvert z\rvert^2=z^*z, where z∗z^* is the conjugate, the same number with the sign of its imaginary part flipped. So the squared length of a complex vector is

∥z∥2=∑qzq∗ zq=∑q∣zq∣2.\lVert\mathbf{z}\rVert^2=\sum_q z_q^*\,z_q=\sum_q\lvert z_q\rvert^2.

For (1,j)(1,j) that is 1+1=21+1=2. For z=(1+j,  2−j)\mathbf{z}=(1+j,\;2-j) it is (1+1)+(4+1)=7(1+1)+(4+1)=7.

The conjugate transpose

Flip a matrix across its diagonal and conjugate every entry: that is the conjugate transpose, written AH\mathbf{A}^{\mathsf H}. For a column vector, zH\mathbf{z}^{\mathsf H} is the row of conjugated entries, so

∥z∥2=zHz,\lVert\mathbf{z}\rVert^2=\mathbf{z}^{\mathsf H}\mathbf{z},

and the dot product of two complex vectors v\mathbf{v} and w\mathbf{w} is vHw\mathbf{v}^{\mathsf H}\mathbf{w}.

Two complex vectors are perpendicular when vHw=0\mathbf{v}^{\mathsf H}\mathbf{w}=0. Like the transpose of Transposes and permutations, it reverses a product: (AB)H=BHAH(\mathbf{A}\mathbf{B})^{\mathsf H}=\mathbf{B}^{\mathsf H}\mathbf{A}^{\mathsf H}. For real vectors and matrices nothing is conjugated, and everything here reduces to what you already know.

Hermitian and unitary matrices

Two kinds of real matrix have complex versions.

A Hermitian matrix equals its conjugate transpose, AH=A\mathbf{A}^{\mathsf H}=\mathbf{A}: the complex version of symmetric. The argument of Symmetric matrices, with H\mathsf H in place of the transpose, shows that its eigenvalues are real and its eigenvectors perpendicular. Take

A=[21−j1+j3].\mathbf{A}=\begin{bmatrix}2&1-j\\1+j&3\end{bmatrix}.

Its trace is 5 and its determinant 6−(1−j)(1+j)=6−2=46-(1-j)(1+j)=6-2=4, so its eigenvalues are 1 and 4: real, although the matrix is complex. The eigenvectors are v1=(−1+j,  1)\mathbf{v}_1=(-1+j,\;1) and v2=(1,  1+j)\mathbf{v}_2=(1,\;1+j), and they are perpendicular in the complex sense:

v1Hv2=(−1−j)⋅1+1⋅(1+j)=0.\begin{aligned} \mathbf{v}_1^{\mathsf H}\mathbf{v}_2&=(-1-j)\cdot1+1\cdot(1+j)\\ &=0. \end{aligned}

Without the conjugate the test fails: (−1+j)+(1+j)=2j(-1+j)+(1+j)=2j.

A unitary matrix U\mathbf{U} has UHU=I\mathbf{U}^{\mathsf H}\mathbf{U}=\mathbf{I}: the complex version of a matrix with orthonormal columns. It keeps every length, ∥Uz∥=∥z∥\lVert\mathbf{U}\mathbf{z}\rVert=\lVert\mathbf{z}\rVert, so its eigenvalues all have size 1.

The Fourier matrix

The Fourier matrix F\mathbf{F} of size NN has the entry e−j2πkn/Ne^{-j2\pi kn/N} in row kk and column nn. On this page its rows and columns count from 0, as in signal processing, while other matrices count from 1. For N=4N=4:

F=[11111−j−1j1−11−11j−1−j].\mathbf{F}=\begin{bmatrix}1&1&1&1\\1&-j&-1&j\\1&-1&1&-1\\1&j&-1&-j\end{bmatrix}.

Its columns are perpendicular. Take column kk and column ll. Conjugate the first and multiply entry by entry: entry nn gives e+j2πkn/N e−j2πln/N=e−j2π(l−k)n/Ne^{+j2\pi kn/N}\,e^{-j2\pi ln/N}=e^{-j2\pi(l-k)n/N}. These are unit arrows that turn by (l−k)/N(l-k)/N of a turn from one to the next. Laid tip to tail, they go round a whole number of times and close, so the sum is 0, unless l=kl=k, when every arrow is 1 and the sum is NN. That is the picture at the top of the page. In one line:

FHF=N I.\mathbf{F}^{\mathsf H}\mathbf{F}=N\,\mathbf{I}.

So U=F/N\mathbf{U}=\mathbf{F}/\sqrt N is unitary, and F−1=FH/N\mathbf{F}^{-1}=\mathbf{F}^{\mathsf H}/N. For N=4N=4, columns 1 and 2: 1⋅1+j⋅(−1)+(−1)⋅1+(−j)⋅(−1)=1−j−1+j=01\cdot1+j\cdot(-1)+(-1)\cdot1+(-j)\cdot(-1)=1-j-1+j=0.

Multiplying by F\mathbf{F} is the DFT. For x=(1,2,3,4)\mathbf{x}=(1,2,3,4), Fx=(10,  −2+2j,  −2,  −2−2j)\mathbf{F}\mathbf{x}=(10,\;-2+2j,\;-2,\;-2-2j). Lengths change only by the fixed factor N\sqrt N: ∥Fx∥2=100+8+4+8=120\lVert\mathbf{F}\mathbf{x}\rVert^2=100+8+4+8=120, which is 4×304\times30, and ∥x∥2=30\lVert\mathbf{x}\rVert^2=30.

Circulant matrices

A circulant matrix C\mathbf{C} is built from one column c\mathbf{c}: each column is the one before it, rotated down by one place, with the last entry coming round to the top. Multiplying by C\mathbf{C} is circular convolution with c\mathbf{c}. A circular smoother with c=(0.5, 0.25, 0, 0.25)\mathbf{c}=(0.5,\,0.25,\,0,\,0.25) gives

C=[0.50.2500.250.250.50.25000.250.50.250.2500.250.5],\mathbf{C}=\begin{bmatrix}0.5&0.25&0&0.25\\0.25&0.5&0.25&0\\0&0.25&0.5&0.25\\0.25&0&0.25&0.5\end{bmatrix},

which averages each sample with half weight and its two neighbours with a quarter each, wrapping round at the ends.

Here is the key fact. Every column of F−1\mathbf{F}^{-1}, a pure wave e+j2πkn/Ne^{+j2\pi kn/N}, is an eigenvector of every circulant matrix. Rotating a pure wave only multiplies it by a number, so a circulant, which is a sum of rotations, does too. The eigenvalues are the entries of Fc\mathbf{F}\mathbf{c}, and

C=F−1 diag(Fc) F.\mathbf{C}=\mathbf{F}^{-1}\,\mathrm{diag}(\mathbf{F}\mathbf{c})\,\mathbf{F}.

Read it right to left: take the DFT, multiply each frequency by its eigenvalue, and transform back. For the smoother, Fc=(1, 0.5, 0, 0.5)\mathbf{F}\mathbf{c}=(1,\,0.5,\,0,\,0.5): it keeps the constant, halves the next frequencies, and erases the fastest one, the wave (1,−1,1,−1)(1,-1,1,-1).

Circular smoothing

The same smoothing two ways: a circulant matrix, or through the Fourier matrix.

The samples x = (1, 2, 3, 4).

smoothed
–
0.00 / 11.80 s
Describe this picture

Rows of cells, each shaded by the size of its number. At the top, the samples x=(1,2,3,4)\mathbf{x}=(1,2,3,4); the circulant smoother C\mathbf{C} acts directly, and the row Cx=(2,2,3,3)\mathbf{C}\mathbf{x}=(2,2,3,3) fills in at the top right. Below, the other way: the Fourier matrix takes x\mathbf{x} to Fx=(10, −2+2j, −2, −2−2j)\mathbf{F}\mathbf{x}=(10,\,-2+2j,\,-2,\,-2-2j); the eigenvalues Fc=(1, 0.5, 0, 0.5)\mathbf{F}\mathbf{c}=(1,\,0.5,\,0,\,0.5) appear beside it, and their product, entry by entry, (10, −1+j, 0, −1−j)(10,\,-1+j,\,0,\,-1-j); last, the inverse transform fills a row that reads (2,2,3,3)(2,2,3,3) again. On a phone the six rows are stacked. A readout gives the smoothed samples. There is no control.

Watch the two routes meet. The long way round, through the frequencies, gives exactly what the matrix does in one step.

In signal processing · circulants and the DFT

The DFT as a matrix, in the signal processing course, builds the same matrix from the signal side and shows that circulants share its waves as eigenvectors. Fast convolution uses C=F−1diag(Fc) F\mathbf{C}=\mathbf{F}^{-1}\mathrm{diag}(\mathbf{F}\mathbf{c})\,\mathbf{F} to filter long signals with the FFT. Signal processing writes WNknW_N^{kn} for the entry e−j2πkn/Ne^{-j2\pi kn/N}.

Worked example

1. Lengths. ∥(1+j,  2−j)∥2=2+5=7\lVert(1+j,\;2-j)\rVert^2=2+5=7. For (1,j)(1,j), z⊤z=0\mathbf{z}^\top\mathbf{z}=0 but zHz=2\mathbf{z}^{\mathsf H}\mathbf{z}=2. And ∥(3, 4j)∥=9+16=5\lVert(3,\,4j)\rVert=\sqrt{9+16}=5.

2. A Hermitian matrix. [21−j1+j3]\begin{bmatrix}2&1-j\\1+j&3\end{bmatrix}: trace 5, determinant 4, eigenvalues 1 and 4, eigenvectors (−1+j, 1)(-1+j,\,1) and (1, 1+j)(1,\,1+j), perpendicular with the conjugate.

3. The Fourier matrix. For N=4N=4, FHF=4I\mathbf{F}^{\mathsf H}\mathbf{F}=4\mathbf{I}, and F(1,2,3,4)=(10, −2+2j, −2, −2−2j)\mathbf{F}(1,2,3,4)=(10,\,-2+2j,\,-2,\,-2-2j) with ∥Fx∥2=120=4×30\lVert\mathbf{F}\mathbf{x}\rVert^2=120=4\times30.

4. A circulant. The smoother c=(0.5,0.25,0,0.25)\mathbf{c}=(0.5,0.25,0,0.25) has eigenvalues 0.5+0.5cos⁡(πk/2)0.5+0.5\cos(\pi k/2) for k=0k=0 to 3, which are (1,0.5,0,0.5)(1,0.5,0,0.5), and sends (1,2,3,4)(1,2,3,4) to (2,2,3,3)(2,2,3,3). Its eigenvalue 0 belongs to (1,−1,1,−1)(1,-1,1,-1), which it erases.

Try these before you read the answers.

  • What is ∥(3, 4j)∥\lVert(3,\,4j)\rVert? 5.
  • Is [0j−j0]\begin{bmatrix}0&j\\-j&0\end{bmatrix} Hermitian? Yes: transposing gives [0−jj0]\begin{bmatrix}0&-j\\j&0\end{bmatrix}, and conjugating gives the matrix back. Its eigenvalues are ±1\pm1.
  • What is FHF\mathbf{F}^{\mathsf H}\mathbf{F} for N=4N=4? 4I4\mathbf{I}.
  • What does a circulant matrix do to a column of F−1\mathbf{F}^{-1}? It multiplies it by a number, its eigenvalue.

Where you’ll meet this

OFDM. Wi-Fi and 4G and 5G mobile radio send data on many frequencies at once. Each block starts with a copy of its own end, the cyclic prefix, so the radio channel acts on the block as a circulant matrix. One FFT then turns the channel into one number per frequency, which the receiver divides out. Digital modulation and OFDM builds this.

Fast filtering. Filtering a signal directly costs one product per sample for every filter tap. Through the FFT, a circulant becomes a diagonal matrix, and for long filters the cost per sample grows only slowly with the filter’s length.

Images and scans. Image filters and the reconstruction of MRI scans use the two-dimensional Fourier matrix the same way.

Reference card

QuantityFormulaNotes
Length∥z∥2=zHz=∑q∣zq∣2\lVert\mathbf{z}\rVert^2=\mathbf{z}^{\mathsf H}\mathbf{z}=\sum_q\lvert z_q\rvert^2never z⊤z\mathbf{z}^\top\mathbf{z}
Conjugate transposeAH\mathbf{A}^{\mathsf H}transpose, then conjugate each entry
Dot productvHw\mathbf{v}^{\mathsf H}\mathbf{w}0 means perpendicular
HermitianAH=A\mathbf{A}^{\mathsf H}=\mathbf{A}real eigenvalues, perpendicular eigenvectors
UnitaryUHU=I\mathbf{U}^{\mathsf H}\mathbf{U}=\mathbf{I}keeps lengths; eigenvalues of size 1
Fourier matrixFkn=e−j2πkn/NF_{kn}=e^{-j2\pi kn/N}, k,n=0,…,N−1k,n=0,\dots,N-1FHF=NI\mathbf{F}^{\mathsf H}\mathbf{F}=N\mathbf{I}, F−1=FH/N\mathbf{F}^{-1}=\mathbf{F}^{\mathsf H}/N
CirculantC=F−1diag(Fc) F\mathbf{C}=\mathbf{F}^{-1}\mathrm{diag}(\mathbf{F}\mathbf{c})\,\mathbf{F}eigenvalues are the DFT of its first column

Keep reading with a free account.

By creating an account you accept the terms of use.

Sign in

Already have an account? Use the service you signed up with.

Or keep reading: get new lessons by email

Are you 13 or over?

Accounts and email updates are for people aged 13 or over. We keep only your answer, never your date of birth.

End of the lesson

Where to go next.

Phasorium

Account

Sign inKeep your place on any device

Subjects

Site

Look