What is Fft: Definition and 179 Discussions

A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). Fourier analysis converts a signal from its original domain (often time or space) to a representation in the frequency domain and vice versa. The DFT is obtained by decomposing a sequence of values into components of different frequencies. This operation is useful in many fields, but computing it directly from the definition is often too slow to be practical. An FFT rapidly computes such transformations by factorizing the DFT matrix into a product of sparse (mostly zero) factors. As a result, it manages to reduce the complexity of computing the DFT from



O

(

N

2


)



{\displaystyle O\left(N^{2}\right)}
, which arises if one simply applies the definition of DFT, to



O
(
N
log

N
)


{\displaystyle O(N\log N)}
, where



N


{\displaystyle N}
is the data size. The difference in speed can be enormous, especially for long data sets where N may be in the thousands or millions. In the presence of round-off error, many FFT algorithms are much more accurate than evaluating the DFT definition directly or indirectly. There are many different FFT algorithms based on a wide range of published theories, from simple complex-number arithmetic to group theory and number theory.
Fast Fourier transforms are widely used for applications in engineering, music, science, and mathematics. The basic ideas were popularized in 1965, but some algorithms had been derived as early as 1805. In 1994, Gilbert Strang described the FFT as "the most important numerical algorithm of our lifetime", and it was included in Top 10 Algorithms of 20th Century by the IEEE magazine Computing in Science & Engineering.The best-known FFT algorithms depend upon the factorization of N, but there are FFTs with O(N log N) complexity for all N, even for prime N. Many FFT algorithms depend only on the fact that




e


2
π
i

/

N




{\displaystyle e^{-2\pi i/N}}
is an N-th primitive root of unity, and thus can be applied to analogous transforms over any finite field, such as number-theoretic transforms. Since the inverse DFT is the same as the DFT, but with the opposite sign in the exponent and a 1/N factor, any FFT algorithm can easily be adapted for it.

View More On Wikipedia.org
  1. E

    Interpretation of FFT time frequency analysis diagram

    Hi, I was told that in order to analyze cycles, wave patterns etc in empirical data, the time frequency analysis using the discrete Fourier transform (or the fast Fourier transform) are most appropriate (instead of say the autocorrelation spectrum). Using the Python scipy.fftpack as...
  2. H

    Obtaining Phase and Amplitude from FFT

    Is it possible to calculate the phase and signal amplitude from data gained from FFT? For instance, if I have a samples from a signal B+A*cos(ψ), is it possible to obtain A and ψ? Extra challenge: is it possible to do so without division? (I am looking to put this on a DSP and division is...
  3. W

    MATLAB Calculate amplitude, phase and energy spectrum using FFT in MATLAB

    Hello all, I have a vector, let's say A, which has measured values of the Earth's magnetic field (and if it is relevant, two vectors X and Y with the coordinates of the point each value was measured). I need to calculate the amplitude, phase and energy spectrum using FFT in MATLAB X...
  4. G

    C# Missing samples recovery with FFT in C#

    Hey all! I have to ask for help. I’m in too deep and can’t find my way out. Does anyone know where to find a simple code for missing samples recovery? All I can find are math equations that I can’t interpret. I’m not into signal processing here, I’m using FFT for numeric data only, so I’m...
  5. T

    Magnetic Field measurements: Weird FFT signals I cannot explain.

    Hi all! First off: I don't know which forum to post this. I'm no grad student or PHD so academic forum seemed wrong, and it's not really just math, since it was the result of a measurment and the signals can come from environment, etc. Ok. I measured the magnetic field using a sensor...
  6. H

    Identifying the harmonics on FFT

    How do you accurately identify the fundamental harmonic if you get a peak of similar amplitudes at frequencies that are really close to each other. And furthermore, once you identify the fundamental harmonic, are the second, third fourth harmonics just multiples of the fundamental frequency...
  7. E

    Newbie Struggling with FFT Phase - Eva's Story

    Hey all, I'm new here. Currently I'm struggling with the phase of FFT. I read that the phase of FFT is relative to the start of the time domian signal. In my measurement I recorded a signal which is a sinus sweeping from 100hz to 3000hz. after FFT i obtained a phase spectrum within the...
  8. P

    MATLAB FFT Zero Padding Issue - Matlab Code Help

    Hello, I have a simple cosine f = 50Hz. When I generate Matlab code to produce 1/2 second of this signal and take the FFT, the response correctly shows a spike at 50 Hz. However, when I bracket the signal with 1/2 seconds of zeros on either side, the frequency response is showing a spike at...
  9. P

    Finding and using the Point Spread Function via FFT in Labview

    Hello! My partners and I are building an NSOM microscope and it is mostly finished. Now we need to find the Point Spread Function. My questions is how do I find the PSF in labview and how do I use it to deblur in labview? What follows is some background on what I have attempted so far...
  10. xaratustra

    Fortran Best Fortran Library for FFT - FFTPACK Example

    I am new to Fortran. Is there an ultimate best library for FFT for Fortran (95)? I found this one FFTPACK. I am not sure if this is the best one. Is there anywhere a simple example how to use it? I have huge time files (260 MB each) that I like to read in Fortran and perform FFT and...
  11. S

    Solving FFT Signal Processing Problem for Complex Time Signal

    Hi, I have a complex time signal x(t)=X1*exp(i*∅)+X2*exp(i*2*∅). On converting to frequency domain, i expect frequency components at ω and twice of ω (when ∅=ω*t). FFT gives the desired frequencies, but the amplitudes don't correspond to X1 and X2. I understand that this is due to the phase...
  12. T

    FFT of velocity-auto-correlation to get DOS

    I'm trying to find out how to "properly" fourier-transform a velocity-auto-correlation function (VAC), for calculation of phonon density of states (DOS), from molecular dynamics simulation. The problem I'm running into is that my calculated DOS: a) doesn't fall of to zero as the frequency...
  13. F

    MATLAB FFT of a square pulse in MATLAB problem

    I am trying to compute the Fourier transform of a square pulse with MATLAB's FFT. Code: Fs=1000; %Sampling rate (Hz) T=1/Fs; %Sampling time interval P=10; %Period of pulse t=0:1/Fs:P/2; %Time axis N=length(t); x=rectpuls(t,P); %Pulse amplitude n=pow2(nextpow2(N)); %Number of frequency...
  14. E

    Spatial Frequency Transform by doing FFT twice ?

    Spatial Frequency Transform by doing FFT twice ?? This is for my own knowledge in relations to acoustics. I am trying to determine the location of sound using an array of sensors. Very similar to what they are doing in the webpage given. Im looking at the material at...
  15. S

    DFT Matlab - fft and ifft commands

    Homework Statement Hello people For a few days I'm having trouble with periodic boundary 1D poisson solver code on matlab. I'm trying to figure out discritized Fourier transform (fft), and ifft commands. To make things simpler I want to type a simple code. Aim on the code is integrating a...
  16. N

    MATLAB Matlab normalization using fft

    Hi, Let's say I have an input signal f(t,0)= \sum_n A_n cos(w_nt) And we know that f(t,x)= \sum_n A_n cos(k_nx-w_nt) and we also have the relationship between k and w. We can find the coefficients A_n by taking a Fourier Transform of the relationship for f(0,t). Here's my...
  17. N

    MATLAB Solving Sea Surface Height with FFT in MATLAB

    Hi, I have the following problem that I would like to solve by using the 'fft' function in matlab. Some background on the problem: The evolution of sea surface height is given, to first order, by \eta_o(x,t)=A\cos\left(kx-\omega t\right) From this, we see that there are three parameters...
  18. P

    MATLAB Getting Close with Matlab FFT for Fourier Transform Table Reconstruction

    I'm attempting to use Matlab fft functionality to reconstruct Fourier transform tables in my textbook (brigham), but to little success. Here is code to take the Fourier transform of cos(2*\pi*x*f_0), which should be \frac{\delta (f + f_0) + \delta (f - f_0)}{2} I can *almost* get it, but...
  19. Z

    What is the purpose/significance of doing a FFT on a signal?

    it seems like a pretty commonly used computational/mathematical method in analyzing experimental data, such as voltage signals
  20. N

    Matching orientations of 2-d arrays of values - using fft?

    Matching orientations of 2-d arrays of values -- using fft? I was discussing the following problem (a subproblem of a personal project I'm working on) with a professor: we're given two 2-d arrays of values. We know them to be identical, but they might not be oriented corrected -- i.e., 0 0...
  21. C

    I am using an FFT package (GFT) to analyze a signal from a pressure

    I am using an FFT package (GFT) to analyze a signal from a pressure sensor. I am unsure of the results I am getting, so I decided to try to verify the FFT package using a known input. I am using a signal generator to produce a sine wave of +/- 5V @ 5 and 100 Hz. When I run the FFT on the...
  22. B

    How to get information on low frequencies of a signal using FFT?

    Hello. I've made a lab experiment of interference and with a CCD camera photographed fringe pattern which one can understand as a periodic signal. My question is: When I apply an FFT to the image is there any limit to the amplitude information I may get from lower frequencies? I read in the...
  23. M

    Matlab FFT Units: Solving the Mystery

    I was browsing another topic, and I suddenly remembered that I've never quite figured out what units matlab's fft returns. I've used the fft before and found where I had signal noise by taking the power density of the Fourier coefficients, which is all I really wanted to use the fft for in the...
  24. R

    FFT for Sinusoidal Signal: 100 kHz, Peaks @ k=100, 412

    Suppose you have the FFT of a sinusoidal signal sampled at 100 kHz and it has energy peaks at k = 100 and k = 412. How many points is the FFT? What is the frequency of the signal?
  25. C

    Fourier Transform - Completely Flustered About Recursive FFT

    Fourier Transform -- Completely Flustered About Recursive FFT Hi all. I have been banging my head about this problem for the last week and a half-- Fourier Transform. Some background about me: I am a rising Junior at an accredited university majoring in Computer Engineering & Computer...
  26. N

    Understanding the Differences between 2D FFT and 2D DFT for Image Transforms

    Confusion with 2D DFT Hello everyone, I'm trying to figure out why the third transform in the picture I attach here is different to the other ones, why it's 'distorted'. I know that it's related with the fact that if you copy the image in a grid the resulting image has discontinuous lines...
  27. L

    Gain Across a Band on PNA: Is it an FFT?

    Does a PNA show FFT If I'm looking at gain across a band on a PNA could one say that I'm looking at an FFT or is that complete nonsense?
  28. S

    FFT coefficients and frequencies

    Homework Statement The following is the output of a 16 point computation of the discrete Fourier Transform for data taken at 10 kHz. Complete the table below by determining the frequencies associated with each of the FFT values. I attached an Excel workbook with the table. Homework...
  29. F

    Solve MATLAB FFT Help for Unity Rectangular Pulse

    Homework Statement Find the Fourier Transform of a unity amplitude rectangular pulse of width 2T, where T=[ims]. Use MATLAB to plot the magnitude response of this signal's FT. Homework Equations The Attempt at a Solution I got something that LOOKS right, but the first...
  30. D

    Understanding Frequency Smearing in FFT

    I understand that for the FFT the resolution or bin size is a function of the number of samples in your signal and that while padding the signal with zeros will make the graph look more precise it will not enable you to resolve between two frequencies if they are contained in the same bin. What...
  31. A

    Need help to solve FFT and IFFT by mathematica

    Homework Statement I want to solve FFT and IFFT in the same problem. My function is Exp[2*(1 + I*c)*T^2]. For FFT, I used the following code: ClearAll["Global'*"] c = 0; f[t_] = Exp[-(1 + I*c)*2*t^2]; sampleTime = .01; data1 = Table[f[t], {t, -5, 5, sampleTime}]; freq1 =...
  32. D

    FFT minimum sampling duration

    I am wondering what the minimum sampling duration must be in order to accurately resolve a 60Hz wave. I know the FFT works with periodic waves about the number N but I am not sure how this relates to say a sampling duration that is 1 half the sampling period of a 60 Hz wave. I'm worried that the...
  33. mcodesmart

    FFT of a signal (non constant time)

    I took the FFT of a signal that was taken at non constant time period (T), but at a sampling frequency(Fs) of 6.5 hz. Can I take the FFT of a signal with non constant T, and does it mean anything? Please see attachment. Ps. I used Matlabs, FFT command, which i think uses the Cooley–Tukey FFT...
  34. E

    Continuous Fourier Transform VS FFT

    I have about 40 tabs open on this right now and something important is slipping my grasp. I know this has been covered a million and a half times, but for some reason I cannot seem to find a straight answer (or more probably realize and understand it when I see it). When I take the Continuous...
  35. B

    Use of FFT to recover parameters of waves

    Hi, everyone: As I am sure will be clear from my post, I am not--nor have I ever been-- an EE :). (For the sake of giving some context to help taylor the answer, I am a mathematician-in-training. I only know the most basic ideas of signal-processing but I do know...
  36. R

    MATLAB Converting Data to Frequency Domain using MATLAB's Fast Fourier Transform (FFT)

    I have data in excel file and want to convert that to frequency domain. I wrote the following code but its giving me the wrong results. If my data is 2,2,2,5,5,6 Shouldn't Amplitude =2 and frequency =3 Amplitude =5 and frequency =2 Amplitude =6 and frequency =1 %Read in the...
  37. F

    2D FFT (Fast Fourier Transform librerie)

    Does anyone know a good free library to do Fourier Transforms (FFT or DFT). I know FFTW but I'm having some problems with it. I want an alternative that do FFT in two dimensions with complex numbers. The libraries I have found doesn't fulfill this requirements. Thank you
  38. O

    Understanding the FFT: Basic Question (MATLAB)

    Hello, I have a very basic FFT question. Correct me if I am wrong, but the FFT is a fast implementation of the DFT (which is essentially the same as Discrete Time Fourier series). The DFT is periodic in time and frequency. Thus if you input a time domain made of 4 times samples for example to...
  39. H

    Python FFT help, non linear scaling

    Im writing a program in python to simulate the propagation of a gaussian beam through a thick lens and to the focussing point using Fourier optics. Due to the strength of the focussing I need a lot of data points so that I have a decent resolution at the focus. To speed things up and to...
  40. G

    FFT Problem Solved by Mathematica | Exercise 2

    Hi, I have to solve a FFT problem by mathematica.I have attached my problem(exercise 2) here. I do not understand fft algorithm well.I also try to solve it by mathematica but mathematica can not solve this by forier transform directly.It will be great if anyone help me to solve this problem.
  41. A

    Why Are FFT Acceleration Peaks in My Data Abnormally High?

    I have collected time-domain acceleration signals from the test rig through an accelerometer. Voltage signals are scaled to acceleration signals based on voltage sensitivity of accelerometer. Please refer the link given at the last to get the link for PDF attachment to see the time domain...
  42. J

    FFT? Digital Filter? Problem Exactly Defined

    Hello, Please help me with the following problem. Given a measured signal which has to be smoothed. A lowpass filter has to be applied. The signal is available as measured data (a data file on the hard disk, numerical, not real-time) ( it has to be applied in C or C++). The filter...
  43. A

    MATLAB [Matlab] FFT Gaussian x-space -> p-space scalings.

    Hi There, Im having a little trouble with scalings required for a fft performed in Matlab. So here is the story: I construct a position space gaussian, plot this guy out to 6 stdDev. My frontfactor is such that my probability density is normalized. I know what the actual Fourier transform...
  44. W

    Calculating FFT from ADC Output - Hi All

    Hi All, Its my first post here. I want to know how the digital output which comes out of an ADC can be used to calculate FFT. Because FFT algorithms usually needs real and imaginary parts of a sampled signal? Thanks.
  45. N

    MATLAB Matlab: Reverse FFT - Naftali's Question

    Hi, I'm analyzing a laser diffraction experiment. Does Matlab has a reverse FFT function? Thank you Naftali
  46. E

    Can 2D FFT Convolution Be Performed Without Padding Images?

    I'm trying to do FFT convolution via the FFTW3 library for image processing purposes. Basically I have a kernel and I am convolving it with an image. A problem I encountered has to do with the dimensions of the image. When the width is not equal to the height, the pixel values I get, seem to...
  47. P

    How do I generate a diffraction pattern using FFT from a single slit?

    Hi, I am a bit confused regarding using FFT to calculate the 1D single slit diffraction pattern.. Let's take the simple setup shown here: http://electron9.phys.utk.edu/optics421/modules/m6/images/sslit.gif" If I wanted to do a quick calculation using Matlab, I would create a 1xN matrix...
  48. S

    Cleaning Up Signal Distortion Using FFT: Devising an Effective Method

    Homework Statement hello! i'm given a signal h(t) = v(t)*g(t) where g(t) is a distortion/noise that got added and has a very low frequency compared to v(t) i need to devise a method to clean up g(t) The Attempt at a Solution i'm thinking of to do the fft on the signal h(t)...
  49. S

    FFT Signal Processing to Clean Up Distortion/Noise

    hello! i'm given a signal h(t) = v(t)*g(t) where g(t) is a distortion/noise that got added and has a very low frequency compared to v(t) i need to devise a method to clean up g(t) i'm thinking of to do the fft on the signal h(t), and remove the lower frequencies and do the inverse...
  50. R

    MATLAB Solving Poisson Equation with FFT in MATLAB

    Hi, As part of my homework, I wrote a MatLab code to solve a Poisson equation Uxx +Uyy = F(x,y) with periodic boundary condition in the Y direction and Neumann boundary condition in the X direction. I used the finite difference method in the X direction and FFT in the Y direction to...
Back
Top