The Ultimate Guide to Choosing WordPress Pros and Cons
Expert Systems FFT Research Projects
1. EXPERT SYSTEMS AND SOLUTIONS
Email: expertsyssol@gmail.com
expertsyssol@yahoo.com
Cell: 9952749533
www.researchprojects.info
PAIYANOOR, OMR, CHENNAI
Call For Research Projects Final
year students of B.E in EEE, ECE,
EI, M.E (Power Systems), M.E
(Applied Electronics), M.E (Power
Electronics)
Ph.D Electrical and Electronics.
Students can assemble their hardware in our
Research labs. Experts will be guiding the
projects.
4. Purpose
Analyze the frequencies contained in a
sampled signal
Used in:
Digital Signal Processing
Optics
Oceanography
Acoustics
Physics
Number Theory
5. Fourier Transform
Named after Jean Baptiste Joseph Fourier
an integral transform that re-expresses a
function in terms of sinusoidal basis functions
transforms linear differential equations with
constant coefficients into ordinary algebraic
ones
turns the complicated convolution operation
into simple multiplication
6. Continuous Fourier Transform
decomposes a function into a continuous
spectrum of the frequencies that comprise that
function
Function:
Inverse:
7. Discrete Fourier Transform
Also called Finite Fourier Transform
The n complex numbers x0, ..., xn-1 (ie. xi=xreal + i*ximag)
are transformed into the n complex numbers f0, ..., fn-1
according to the formula:
Inverse (IDFT)
9. Fast Fourier Transform (FFT)
An efficient algorithm to compute the DFT and its
inverse
Divide and conquer algorithm
Reduces time from O(n2) to O(n log n)
Seismic Data contains hundreds of thousands of
samples and would take months to evaluate the DFT
Cooley-Tukey is most popular implementation
Developed in 1965
Re-invented work done by Carl F. Gauss in 1805
10. FFT Definitions
sinusoid
the curve of y=sin x
radix
the size of an FFT decomposition.
twiddle factors
the coefficients used to combine results from a previous
stage to form inputs to the next stage.
“in place” FFT
an FFT that is calculated entirely inside its original sample
memory.
12. FFT Implementation
Radix-2
N, the sample size, must be a power of 2
Mixed-radix
Can use different powers at different stages
Ex. 1000 = 2*2*2*5*5*5 (six stages) or
1000 = 10 * 10 * 10 (three stages)
13. FFT Implementation (cont.)
1. Pad input sequence, of N samples, with ZERO's until the
number of samples is the nearest power of two.
e.g. 500 samples are padded to 512 (2^9)
2. Bit reverse the input sequence.
e.g. 3 = 011 goes to 110 = 6
3. Compute (N / 2) two sample DFT's from the shuffled inputs.
4. Compute (N / 4) four sample DFT's from the two sample
DFT's.
5. Compute (N / 2) eight sample DFT's from the four sample
DFT's.
...
6. Combine back into one N-sample DFT
14. Fast Fourier Transform in the West
(FFTW)
Developed at MIT
Free collection of fast C routines for
computing the DFT in 1 or more dimensions
Includes complex, real, symmetric, and
parallel transforms
MPI parallel transforms are only available in
v. 2.1.5
15. FFTW cont.
Serial/Parallel, Share/Distributed Memory
Faster than most “non-free” implementations
Portable, automatically adapt to machine
16. Two Phases of FFTW
Hardware dependent algorithm
Planner
‘Learn’ the fast way on your machine
Produce a data structure --‘plan’
Reusable
Executor
Compute the transform
Apply to all FFTw operation modes
1D/nD, complex/real, serial/parallel
17. MPI FFTW Routines
fftwnd_mpi_plan fftwnd_create_plan(mpi_comm comm,
int rank, const *int n, fftw_direction dir, int flags);
void fftwnd_mpi_local_size(fftwnd_mpi_plan p,
int *local_first, int *local_first_start,
int *local_second_after_transpose,
int *local_second_start_after_transpose,
int *total_local_size);
local_data = (fftw_complex*) malloc(sizeof(fftw_complex)
* total_local_size);
work = (fftw_complex*) malloc(sizeof(fftw_complex)
* total_local_size);
void fftwnd_mpi(fftwnd_mpi_plan p, int n_fields,
fftw_complex *local_data, fftw_complex *work,
fftw_mpi_output_order output_order);
void fftw_mpi_destroy_plan(fftwnd_mpi_plan p
18. Examples
View C source code
fftw_mpi.c
fftw_mpi_test.c
To compile:
cc -o ffmpi fftw_mpi_test.c –lmpi -lfftw_mpi -lfftw –lm
Matlab Example
convolution is a mathematical operator which takes two functions f and g and produces a third function that in a sense represents the amount of overlap between f and a reversed and translated version of g . ie polynomial multiplication and multiplying large numbers
a linear transformation (also called linear operator or linear map ) is a function between two vector spaces that respects the arithmetical operations addition and scalar multiplication defined on vector spaces, or, in other words, it "preserves linear combinations f(x+y) = f(x) + f(y) and f(ax) = a*f(x)
The idea behind the FFT is the divide and conquer approach, to break up the original N point sample into two (N / 2) sequences. This is because a series of smaller problems is easier to solve than one large one. The DFT requires (N-1)2 complex multiplications and N(N-1) complex additions as opposed to the FFT's approach of breaking it down into a series of 2 point samples which only require 1 multiplication and 2 additions and the recombination of the points which is minimal.