The Fourier transform and it’s closely related cousin the discrete time Fourier transform (computed by the FFT) is a powerful mathematical concept. It breaks an input signal down into it’s frequency components. The best example is lifted from Wikipedia. The Fourier transform is used in almost every type of analysis. I’ve seen the discrete Fourier Transform used to detect vehicles smuggling contraband across borders and to seperate harmonic overtones from a cello. It can transform convolution into a simple (and fast!) multiplication and multiply incredibly long polynomials. These might seem pointless, but they’re useful with any “nice” system and complicated stability problems, respectively. The Fourier transform is perhaps the most useful abstract athematical concept.

We can see that it’s very abstract and mathematical just by looking at it’s definition:

$$F(f_x) = \mathbb{F}\left[{f(x)}\right] = \int f(x) \exp\left[ -j \cdot 2\pi \cdot f_x \cdot x \right] dx$$

The Fourier transform is so useful, the discrete version is implemented in probably every programming language through fft and there are even dedicated chips to perform this efficiently. The last thing we would expect is for this abstract and mathematical concept to be implemented by physical devices.

We could easily have some integrated chip call fft, but that’s not interesting. If a physical device that has some completely unrelated purpose but can still perform an Fourier transform without human intervention (read: programming), that’d be interesting. For example, an optical lens is shaped solely to produce an image, not to take a Fourier transform… but that’s exactly what it does. Let me repeat: a lens can take an exact spatial Fourier transform. This does have some limitations1, mainly that it only works under coherent light. A coherent light source is simply defined a source that’s not random. Natural light is random as there are many different wavelengths coming in at random times. Laser light is very coherent – there’s a very precise wavelength and every individual ray is in phase2.

Goodman, the textbook that almost every Fourier optics course uses, says3 that the field for a lens of focal length $f$ is

$$U_f(u,v) = \frac { A \exp\left[ j \frac{k}{2f} (1 - \frac{d}{f}) (u^2 + v^2) \right] } { j \lambda f} \cdot \int \int U_o(x,y) \exp\left[ -j \frac{2\pi}{\lambda f} (xu + yv) \right] dxdy$$

When $d=f$, that’s exactly the definition of a Fourier transform. Meaning we can expect $U_f(u,v) \propto \mathbb{F}\left[{U_i(x,y)}\right]\big|_{f_x = u/\lambda f}$. Minus some physical scaling, that’s an exact Fourier transform.

You may know that a purely real values input to a Fourier transform gives a complex output. We have no way of detecting this complexity or phase. Instead, our eyes (and cameras/etc) detect intensity or the magnitude of $U_f(x,y)$. That is, they detect $I_f(x,y) = \left|U_f(x,y)\right| ^2$. This function is purely real, although there’s some fancy ways4 to detect phase as well.

No matter how elegant this math was, I wanted to see it in the real world and compare the computer FFT with the lens Fourier transform. The setup for this experiment was rather involved, and I would like to give a resounding thanks to Mint Kunkel. Without his help, I never could have gotten an image, much less a decent one.

I was taking an image of a grid, illuminated by a infinite5 plane wave generated by a laser. The computer generated image and discrete Fourier Transform are shown below. We can’t expect the lens Fourier transform to look exactly like this. The first issue that jumps to mind is discrete vs continuous time, but that should hopefully play a small role. The equipment required to get this image is highly specialized and costs more than I want to know. But even more significantly, the tuning of this equipment is critical and almost impossible to get right. Plus, there’s detail like grid spacing/size/etc missing, the reason the two images aren’t almost exactly identical.

Regardless, the Fourier transform by lens shows remarkable similarity to the Fourier transform done on the computer. This is a real world example of how a lens, a simple object used for photography performs perhaps the most powerful concept in signal processing. This alone is cool, but it shows itself elsewhere. The transfer function is just the pupil function or $H\left(f_x, f_y\right) = P(cx,cy)$ ($c$ is a constant, only works under coherent light, but has similar effect in incoherent light). If you want to resolve a higher frequency (aka more detail), you need your pupil function to extend further. Animals have different shaped pupils or different pupil functions for their eye. A cat has a very vertical pupil, a zebra’s pupil is horizontal and an eagle’s pupil is round6. There are different evolutionary reasons why an animal needs to see more detail in the vertical or horizontal directions (ie, jumping vs hunting) and this shows itself with their pupils. Animals see more detail in the horizontal or vertical directions if that’s what they care about!

1. Another limitation: the lens can only accept frequencies as large as $r/\lambda f$, meaning the input signal must be band-limited.

2. For a detailed explanation of why the laser spots are speckled and random, see my previous blog post

3. The derivation culminates on page 105. This assumes the paraxial approximation is valid.

4. Horner, J. L., & Gianino, P. D. (1984). Phase-only matched filtering. Applied optics, 23(6), 812-816.

5. Three centimeters is about infinity according to Mint.

6. Images are taken from Google Images. If you are the owner of one of these images and would like it removed, let me know and I’ll remove it.