3.4. Fourier Transform¶
The 1D Fourier transform is:
To show that it works:
If is time (unit ), then is angular frequency (unit ). One can express the Fourier transform in terms of ordinary frequency (unit ) by substituting :
Both transformations are equivalent and only differ in whether we express the transform in terms of or , the conversion being given by . Third frequently used convention that is however not equivalent to the above is:
The 3D Fourier transform is:
(3.4.1)¶
With obvious analogs for other conventions and dimensions.
The sign convention in the exponentials is arbitrary, one can as well flip the sign of the direct and inverse transforms. In particular, one often uses both sign conventions in the same equation. Consider a spacetime plane-wave . Then we obtain (using plus sign convention in the exponential for the direct transformation):
Finally, the equation depends on the metric signature, in this case . For a signature we would get .
Unlike the normalization convention, where one has to be very careful, the sign convention in Fourier transform is not a problem, one just has to remember to flip the sign for the inverse transform.
3.4.1. Shift Theorem¶
The Fourier transform of a shifted function, in 3D:
3.4.2. Scaling¶
For :
3.4.3. Derivative¶
The Fourier transform of a derivative, in 3D:
An alternative derivation is to start from:
and differentiate both sides:
from which:
3.4.4. Convolution¶
The convolution of two functions and is defined as:
The Fourier transform of a convolution is:
And for the inverse transform:
Fourier transform of a function multiplication is:
and for the inverse transform:
3.4.5. Radial Fourier Transform¶
As a special case when the function is spherically symmetric, we introduce spherical coordinates such that the -axis is along the vector and calculate (we use and ):
where we used:
So the transform is real and spherically symmetric, since the result only depends on .
Similarly, for the inverse transform:
3.4.6. Examples¶
Rectangular Function¶
The rectangular function is defined as:
The Fourier transform is:
Dirichlet Kernel¶
The Dirichlet kernel is a partial sum of complex exponentials:
From the definition, it is a periodic function with period .
Integral of it is equal to one:
also
The Dirichlet kernel converges towards a train of delta functions (called Dirac comb, see the equation (3.4.6.2) in the next section):
(3.4.6.1)¶
Let us do the crucial step in more details using distributions:
Where we used the fact that
Dirac Comb (Shah) Function¶
The Dirac comb function, also called the Shah function, is defined as:
It has the following scaling property:
and for with :
From which a train of delta functions distance apart is expressed using a Dirac comb as:
Using the identity (3.4.6.1), the infinite sum of complex exponentials is also equal to a Dirac comb:
(3.4.6.2)¶
Using (3.4.6.2) we can now calculate the Fourier transform:
For the inverse Fourier transform we get (using the previous result):
The following Fourier transform is also useful:
Periodic Summation¶
The convolution of a Dirac comb and an arbitrary function is called a periodic summation:
because the result is a periodic function with period 1:
Poisson Summation Formula¶
The Poisson summation formula:
(3.4.6.3)¶
can be derived using a Dirac comb:
An alternative derivation using Fourier series (see next sections):
And setting we get the Poisson summation formula (3.4.6.3).
The last derivation can actually also be done using a Dirac comb function as follows:
Fourier Series¶
Consider a periodic function with a period and let us calculate the Fourier transform of it. We define a new function in the interval and zero otherwise. Then:
Apply Fourier transform:
(3.4.6.4)¶
where are called Fourier coefficients:
We can see that the Fourier transform is zero for . For it is equal to a delta function times a multiple of a Fourier series coefficient. The delta functions structure is given by the period of the function . All the information that is stored in the answer is inside the coefficients, so those are the only ones that we need to calculate and store.
The function is calculated from the coefficients by applying the inverse Fourier transform to the final result of (3.4.6.4) as follows:
(3.4.6.5)¶
The expansion (3.4.6.5) is called a Fourier series. It is given by the Fourier coefficients . The equation (3.4.6.4) provides the relation between a Fourier transform and a Fourier series.
For example for , the only nonzero Fourier coefficients for are and . The Fourier transform then is:
For the only nonzero Fourier coefficient is , the Fourier transform then is:
For the only nonzero Fourier coefficient for is , the Fourier transform then is:
For the Fourier coefficients for are all equal to and the Fourier transform is:
Note: if we start from (3.4.6.5), for simplicity on an interval :
(3.4.6.6)¶
To calculate the Fourier coefficients , we can just multiply both sides of (3.4.6.6) by and integrate:
so
(3.4.6.7)¶
Convergence of Fourier Series¶
To see what conditions the function must satisfy in order for the Fourier series to converge towards it, we can do the following analysis. Substituting (3.4.6.7) into (3.4.6.6) yields:
We can now calculate the difference between the Fourier series and the function value:
where is finite and well behaved at the origin :
The integral is zero because the more and more oscillating function cancels the contributions of positive and negative parts of the integrand. This can be proven explicitly as follows using the fact that , and is bounded as :
The conditions that we used are that the function can be integrated, which is satisfied if e.g. has derivatives. These conditions can be loosened in various ways.
3.5. Fourier Transform of a Periodic Function (e.g. in a Crystal)¶
The Fourier transform in (3.4.1) requires the function to be decaying fast enough in order to converge. In an infinite crystal, on the other hand, the function is typically periodic (and thus not decaying):
where are the crystal translation vectors. As such, the Fourier transform in (3.4.1) is infinite, but it can be made finite by the following definition:
(3.5.1)¶
This assumes that the wave vector is equal to the reciprocal space vectors , defined by
(3.5.2)¶
because then .
For , the expression vanishes, because the sum is bounded, and so dividing by the (infinite) crystal volume makes the expression vanish, and so . In other words, the only non-zero Fourier components of any periodic function are those with . Equivalently said, if the Fourier components of a given function are non-zero for some , then the function is not periodic.
Summary: the only difference between the crystal Fourier transform (3.5.1) and the usual Fourier transform (3.4.1) is the factor. The Fourier transform (3.5.1) of a periodic function is nonzero only for and is equal to:
(3.5.3)¶
Note: the fact that the sum is bounded follows from:
Because . So for (i.e. the denominator is non-zero), the sum is bounded (to be precise, the infinite sum does not converge, because it oscillates, but the point is that the partial sum is always bounded). For , the sum is infinite, because .
Since we divided the direct Fourier transform in (3.4.1) by to obtain (3.5.1), we need to multiply the inverse transform in (3.4.1) by :
(3.5.4)¶
where we used the fact that:
Alternatively, if one is only interested to show that the inverse transformation works, one can directly substitute the direct formula (3.5.3) into (3.5.4) as follows:
where we used the fact that:
Thus we have shown that .
3.5.1. One Dimension (Fourier Series)¶
In one dimension with a periodic function , the volume of a unit cell is and the reciprocal space vectors are defined using from which . The equation (3.5.3) then becomes:
(3.5.1.1)¶
This is exactly the definition of a Fourier series ( are the Fourier coefficients). The inverse transform follows from (3.5.4):
(3.5.1.2)¶
3.6. Discrete Fourier Transform¶
In the discrete case, we only have a finite number of reciprocal points:
E.g. for:
The real space function is sampled at points for and the equation (3.5.1.1) becomes:
The equation (3.5.1.2) becomes:
Using the fact
we can express the periodicity as . The sums can then be rearranged:
and if we drop the limit and consider a finite only:
Summary, the direct transform:
(3.6.1)¶
and inverse transform:
(3.6.2)¶
with . In the limit , the equation (3.6.1) becomes (3.5.1.1) and equation (3.6.2) becomes (3.5.1.2) and as we increase , the discrete Fourier transform numerically converges towards the Fourier series results.
The factor is sometimes moved from the direct to the inverse transform, but then the correspondence with Fourier series is broken (one has to divide and multiply by appropriately to recover it).
3.7. Fast Fourier Transform (FFT)¶
We write the discrete Fourier transform (3.6.1) using a notation more commonly used for FFTs:
where:
Similarly, the inverse discrete Fourier transform (3.6.2) becomes:
3.7.1. Decimation In Frequency (DIF)¶
We start with radix-4:
Now we subdivide the sequence into 4 subsequences:
Similarly:
This has a form of a DFT of length :
where
This coefficient matrix for various radix-n schemes can be generated by:
>>> from sympy import exp, I, pi, pprint, Matrix
>>> n = 2
>>> Matrix(n, n, lambda i, j: exp(-2*pi*I*i*j/n))
[1 1]
[1 -1]
>>> n = 3
>>> Matrix(n, n, lambda i, j: exp(-2*pi*I*(i*j % n)/n))
[1, 1, 1]
[1, exp(-2*I*pi/3), exp(-4*I*pi/3)]
[1, exp(-4*I*pi/3), exp(-2*I*pi/3)]
>>> n = 4
>>> Matrix(n, n, lambda i, j: exp(-2*pi*I*i*j/n))
[1 1 1 1]
[1 -I -1 I]
[1 -1 1 -1]
[1 I -1 -I]
>>> n = 5
>>> Matrix(n, n, lambda i, j: exp(-2*pi*I*(i*j % n)/n))
[1, 1, 1, 1, 1]
[1, exp(-2*I*pi/5), exp(-4*I*pi/5), exp(-6*I*pi/5), exp(-8*I*pi/5)]
[1, exp(-4*I*pi/5), exp(-8*I*pi/5), exp(-2*I*pi/5), exp(-6*I*pi/5)]
[1, exp(-6*I*pi/5), exp(-2*I*pi/5), exp(-8*I*pi/5), exp(-4*I*pi/5)]
[1, exp(-8*I*pi/5), exp(-6*I*pi/5), exp(-4*I*pi/5), exp(-2*I*pi/5)]
>>> n = 8
>>> Matrix(n, n, lambda i, j: exp(-2*pi*I*(i*j % n)/n))
[1, 1, 1, 1, 1, 1, 1, 1]
[1, exp(-I*pi/4), -I, exp(-3*I*pi/4), -1, exp(-5*I*pi/4), I, exp(-7*I*pi/4)]
[1, -I, -1, I, 1, -I, -1, I]
[1, exp(-3*I*pi/4), I, exp(-I*pi/4), -1, exp(-7*I*pi/4), -I, exp(-5*I*pi/4)]
[1, -1, 1, -1, 1, -1, 1, -1]
[1, exp(-5*I*pi/4), -I, exp(-7*I*pi/4), -1, exp(-I*pi/4), I, exp(-3*I*pi/4)]
[1, I, -1, -I, 1, I, -1, -I]
[1, exp(-7*I*pi/4), I, exp(-5*I*pi/4), -1, exp(-3*I*pi/4), -I, exp(-I*pi/4)]
One then recursively solves the smaller problems. This approach is used for example in FFTPACK. There are also other approaches how to decompose the DFT, used in various other libraries.
3.8. Laplace Transform¶
Laplace transform of is:
The contour integration is over the vertical line and is chosen large enough so that all residues are to the left of the line (that’s because the Laplace transform is only defined for larger than the residues, so we have to integrate in this range as well). It can be shown that the integral over the left semicircle goes to zero:
so the complex integral is equal to the sum of all residues of in the complex plane.
To show that it works:
where we used:
and it can be derived from the Fourier transform by transforming a function :
and making a substitution :
Where the bar () means the Laplace transform and tilde () means the Fourier transform.
3.9. Hilbert Transform¶
The Hilbert transform is:
By applying the Fourier transform to both sides of the equation, we get:
So the Hilbert transform can be calculated using a Fourier transform as:
The inverse Hilbert transform can then be calculated by inverting:
so we get:
From this it also follows:
or
In other words, by applying the Hilbert transform twice, the result is the negative of a function.