6 août 2019 · into two real-world applications of the FFT: solving partial differential equations and JPEG compression 2 Methods I began by studying the
Previous PDF | Next PDF |
[PDF] The Fast Fourier Transform and its Applications
6 août 2019 · into two real-world applications of the FFT: solving partial differential equations and JPEG compression 2 Methods I began by studying the
[PDF] Fourier Transform & Its Applications - UNEP
the proclamation Fourier Transform Its Applications (Electrical Electronic Engineering) a general approach for the theory, with real life results, applied to
[PDF] Applications of the Fourier Series
a form of a Discrete Fourier Transform [DFT]), are particularly useful for the 1: Fourier Series Examples from the FFT; you simply flip the real and imaginary
[PDF] A BRIEF STUDY ON FOURIER TRANSFORM AND ITS - IRJET
Fourier analysis has been used in digital image and processing of image and for analysis of a single image into a two-dimensional wave form, and more recently
[PDF] Fourier Transform - Stanford Engineering Everywhere
Methods based on the Fourier transform are used in virtually all areas of The case when all the coefficients are real is when the signal is real and even Here now is the life's work of several generations of mathematicians, all dead, all still
Fourier Theory - IEEE Xplore
29 oct 2018 · tic learning experiences involving real-world applications Notably, most modern and Fourier transforms; in principle, the pedagogical tool of
[PDF] Lecture 2: 2D Fourier transforms and applications
Fourier transforms and spatial frequencies in 2D • Definition and Applications to spatial filtering Example: action of filters on a real image f(x,y) F(u,v)
[PDF] Applications of Fourier transform Convolution
In real world applications, signal not only gets smeared out by response function, but also has noise on top of it Can be addressed using Wiener deconvolution (
pdf Lecture 20: Applications of Fourier transforms
Applications of Fourier Transforms November 17 2011 Notion of a filter LTI systems cannot create new frequencies can only scale magnitudes and shift phases of existing components Example: Low-Pass Filtering with an RC circuit R vi + ? C vo ? Calculate the frequency response of an RC circuit R vi + ? C vo ? 0 1 0 01 KVL: C: Solving:
Images
Abstract The Fourier Series the founding principle behind the eld of Fourier Analysis is an in nite expansion of a function in terms of sines and cosines In physics and engineering expanding functions in terms of sines and cosines is useful because it allows one to more easily manipulate functions that are for example discontinuous or
[PDF] fourier transform image matlab
[PDF] fourier transform of 1/r
[PDF] fourier transform of a constant function is
[PDF] fourier transform of cos wt is
[PDF] fourier transform of cosine squared
[PDF] fourier transform of exp(jwt)
[PDF] fourier transform of e^ t
[PDF] fourier transform of e^ at u(t) proof
[PDF] fourier transform of rectangular function
[PDF] fourier transform of rectangular pulse train
[PDF] fourier transform of sinc^3
[PDF] fourier transform of step function proof
[PDF] fourier transform of triangle
[PDF] fourier transform pdf for signals and systems
The Fast Fourier Transform and its Applications
Gillian Smith
August 2019
Contents
1 Introduction2
2 Methods2
3 Results2
4 Discussion/conclusion 3
5 Personal statement4
6 Summary4
7 Itinerary4
8 Acknowledgements4
Appendices5
A The Fourier transform and discrete Fourier transform 5 A.1 Dening the Fourier transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 A.2 Existence of the Fourier transform and inverse Fourier transform . . . . . . . . . . . . . . 5A.3 The discrete Fourier transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
B The Fast Fourier Transform 6
B.1 The FFT algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
B.2 FFT of real-valued vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
B.3 Multidimensional DFT and FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11C The Discrete Sine and Cosine Transforms 12
C.1 Computing the Discrete Sine Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 C.2 Computing the Discrete Cosine Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 C.3 Multidimensional DST and DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16D Applications16
D.1 Solving the heat equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
D.2 JPEG compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
11 Introduction
The Fast Fourier Transform (commonly abbreviated as FFT) is a fast algorithm for computing the discrete Fourier transform of a sequence. The purpose of this project is to investigate some of themathematics behind the FFT, as well as the closely related discrete sine and cosine transforms. I will
produce a small library of MATLAB code which implements the algorithms discussed, and I will also look
into two real-world applications of the FFT: solving partial dierential equations and JPEG compression.
2 Methods
I began by studying the Fourier transform and the discrete Fourier transform, by reading the textbook
[1], which has a chapter dedicated to the FFT and related concepts. From here I gained an understanding
of how the discrete Fourier transform is related to the continuous Fourier transform, as well as how the
FFT works.
The Fourier transform is an integral transform given by the formulaFff(t)g=^f(k) =Z
1 1 e2iktf(t)dt: It takes the functionf(t) as input and outputs the function^f(k). We usually think offas a function of timetand^fas a function of frequencyk. The Fourier transform has various properties which allow for simplication of ODEs and PDEs. For example, iff(n)denotes thenth derivative off, then Fff(n)(t)g(k) = (2ik)nFff(t)g(k) = (2ik)n^f(k) [2]. The discrete Fourier transform (DFT) of an array ofNcomplex numbersf0;f1;:::;fN1is another array ofNcomplex numbersF0;F1;:::;FN1, dened by F n=N1X j=0f je2inj=N: The DFT can provide an approximation to the continuous Fourier transform of a functionf. Suppose we takeNsamplesfj=f(tj), wheretj=jh,j= 0;1;:::;N1, wherehis the sampling interval. Then we can estimate that ^f(kn)hFnat the frequencieskn=nNh ,n=N2 ;N2 + 1;:::;N2 Taking inspiration from the algorithms at [4] and [5], I implemented the FFT in two slightly dierent ways using the programming language MATLAB. I then used a MATLAB script to compare the runtimes of both algorithms.Given an ODE
dydt=f(t;y) and an initial conditiony(t0) =y0, we can approximate the solutiony with Euler's method. Fix a step sizeh, then lettn=t0+hn, forn= 0;1;:::;N. Then perform the recurrence relationyn+1=yn+hf(tn;yn) forn= 0;1;:::;N, to obtain the approximationy(tn)yn.This is the simplest method for numerically solving initial value problems, but with a small enough step
size, it can be very accurate [6]. One nal technique, which is the central idea behind the compression of JPEG image les, is the discrete cosine transform. The DCT is similar to the DFT, but one main dierence is that it uses realnumbers only. The reason the DCT is well-suited to compression is because a signal can be reconstructed
with reasonable accuracy from just a few low-frequency components of its DCT.3 Results
If we consider the array offjs as a vector~f, and its DFT as a vector~F, then we can compute the DFT via a matrix-vector multiplication: ~F=W~f, where W=0 BBBBBBB@1 1 1 11
1w w2w3wN1
1w2w4w6w2(N1)
1w3w6w9w3(N1)
1wN1w2(N1)w3(N1)w(N1)21
CCCCCCCA:
2 Multiplying a vector by a matrix requiresO(N2) operations, which can be very slow for largeN. TheDanielson-Lanczos Lemma states that the DFT of
~fcan be rewritten in terms of two DFTs of length N=2. If we impose the restriction thatNis a power of 2, then this lemma can be applied recursivelyuntil we are left with theNtransforms of length 1, and the DFT of length 1 is just the identity function.
Calculating the DFT in this manner reduces the number of operations toO(Nlog2N), and is the mainidea behind the Fast Fourier Transform algorithm. The steps in the algorithm are discussed in detail in
appendix B. I also investigated an even faster algorithm for computing the DFT in the special case where all of thefjare real numbers. Making use of this, I have written a \fast sine transform" and \fast cosine transform" as explained in appendix C. Having now written my own FFT, I went on to explore how the FFT can be used to numerically solve the PDE known as the heat equation, @@t u(x;t) =2@2@x2u(x;t), given an initial conditionu(x;0) =f(x),
and periodic boundary conditions. Taking the Fourier transform of both sides of the equation with respect to the spatial variablexreduces the problem to a rst order ODE for each independent valueof the frequency variablek. Taking the Fourier transform of the initial conditionu(x;0) turns this into
an initial value problem, which is solvable via Euler's method. Figure 1 shows a surface plot of thenumerical solution in the case whereu(x;0) = sinx. More detail is given in appendix D.1.Figure 1: Solution to the heat equation forx2(0;2) andu(x;0) = sinx
Finally, I investigated another real-world application of the FFT. The JPEG image le format worksby removing some of the detail in an image which will be barely noticed by the human eye, allowing the
image to take up signicantly less space in memory. I studied the article [7] in order to nd out how this is done. The idea is to use the DCT and a process called quantization which disregards some of the higher frequency components, as shown in appendix D.2. I have written a MATLAB script which demonstrates the main steps in this process. The MATLAB code I created during the course of this project is available on GitHub:4 Discussion/conclusion
The most dicult part of this project was guring out how the FFT algorithms should be implemented,as well as the algorithms for the discrete sine and cosine transforms. I dealt with this by re-reading the
textbook [1] and trying each of the steps on a few small examples, or by guring it out for myself where
there was a lack of explanation in the book. I also spent a lot of time nding where I had made mistakes
in my code. I chose to program in MATLAB because I have used it many times before for university courseworkand for personal programming projects. It is also fairly user-friendly, so I did not have to worry too much
about the low-level aspects I might have had to consider if I had used another programming language. Additionally, MATLAB makes it relatively easy to produce gures and plots since it comes with various in-built functions for doing so.The biggest cultural impact of any of the topics covered in this project is that of the discrete cosine
transform and JPEG compression. The JPEG format is one of the most popular image le formats, 3due to its ability to store large photographs in great detail in a relatively small amount of memory.
Furthermore, a modied version of the discrete cosine transform is used for encoding MP3 audio les.Overall, the objectives of this project have been achieved. Given more time, I would have liked to try
solving another more complicated PDE using Fourier methods, or explore convolution, which is another useful application of the Fourier transform.5 Personal statement
This project has helped me to build on my existing programming skills and gain more experience with MATLAB. Writing this report has tested my skills in communicating mathematics. It was also usefulto gain some experience of what it is like to do research. Additionally, I have had the opportunity to
investigate an area of mathematics that I might not have studied in depth otherwise.6 Summary
In this project I aimed to understand and implement the Fast Fourier Transform, an algorithm whichhas many important applications. I also investigated some related algorithms, and how to use the Fast
Fourier Transform to solve the heat equation, a physics problem which describes the distribution of heat
in a material over time. Finally, I found out how JPEG les can compress detailed images so that they take up less space in computer memory.7 Itinerary
Approximately 5 weeks were spent on researching the topics covered and writing MATLAB code, andthe nal 1 week was spent writing the report, although part of the report was written during the research
phase. The nancial support was used for subsistence.8 Acknowledgements
I would like to thank my supervisor, Dr Ben Goddard, for his help and guidance throughout the project.
I would also like to thank the University of Edinburgh's College of Science and Engineering for awarding
me a College Vacation Scholarship. 4Appendices
A The Fourier transform and discrete Fourier transformA.1 Dening the Fourier transform
The Fourier transform of an integrable functionf:R!Cis an integral transform, dened asFff(t)g=^f(k) =Z
1 1 e2iktf(t)dt;(1) and the inverse Fourier transform (when it exists) is dened as F1f^f(k)g=f(t) =Z
1 1 e2ikt^f(k)dk:(2) One can think of the Fourier transform as changing a function of time into a function of frequency.In other words, iff(t) tells us the amplitude of a signal at timet, then^f(k) tells us \how much" of each
frequency is present in the signal. The functionsfand^fare known as a Fourier transform pair. It is worth mentioning that there are a few dierent ways to dene the Fourier transform. One possibility is to let 2k=!, so thatFff(t)g=R11ei!tf(t)dtandF1f^f(k)g=12R
11ei!t^f(k)dk.
Another option is to multiply both the Fourier transform and its inverse by1p2: thenFff(t)g=
1p2R 11ei!tf(t)dt, andF1f^f(k)g=1p2R
11ei!t^f(k)dk[2].
These various choices of denition are purely conventions and no particular denition is any more correct than the others, however most people have one that they prefer to use. The!convention iscommonly used in physics because it represents angular frequency. I will stick to denitions 1, 2 for the
rest of this report. A.2 Existence of the Fourier transform and inverse Fourier transformSince the Fourier transform is dened as an improper integral, it is only dened under certain conditions.
Iffis absolutely integrable, meaning thatR1
1jf(t)jdt <1, then it has a Fourier transform. This is
becausej^f(k)j=jR11e2iktf(t)dtj R1
1je2iktf(t)jdt=R1
1je2iktjjf(t)jdt=R1
1jf(t)jdt. So
iffis absolutely integrable, thenj^f(k)j<1for allk[2]. It is also possible (and useful) to dene Fourier transforms of sine and cosine functions, as well ascomplex exponentials, although the result is dened in terms of delta functions [3] [6, Chapter 6.5]. A
quotesdbs_dbs8.pdfusesText_14