Trace:

fft

This shows you the differences between two versions of the page.

Both sides previous revision Previous revision Next revision | Previous revision | ||

fft [Sun Jun 27 14:48:46 2010] Gray |
fft [Thu Jan 14 17:14:11 2021] (current) Alexander |
||
---|---|---|---|

Line 1: | Line 1: | ||

- | ====== Fast Fourier Transform (FFT) (Pro edition only) ====== | + | ====== Fast Fourier Transform (FFT) ====== |

Open Table or Figure or Plot with initial data and use '' | Open Table or Figure or Plot with initial data and use '' | ||

Fast Fourier transform algorithm computes discrete Fourier transform exactly and is used to considerably speed up the calculations.\\ Note that FFT is not an approximate method of calculation. | Fast Fourier transform algorithm computes discrete Fourier transform exactly and is used to considerably speed up the calculations.\\ Note that FFT is not an approximate method of calculation. | ||

- | MagicPlot uses the algorithm of FFT that does not necessarily require the number of points //N// to be an integer power of 2, though in such case evaluation time of the FFT algorithm is much less. MagicPlot uses [[http://www.netlib.org/|jfftpack]] library (a Java version of fftpack). | + | {{:fft.png?nolink|}} |

- | | {{:fft1.png|FFT of table columns dialog}} | {{:fft2.png|FFT of curves dialog}} | | + | ===== Parameters ===== |

+ | | ||

+ | ^ Sampling Interval | Sampling interval of original data Δ//t// is used to compute the data in resulting sampling column. MagicPlot calculates sampling interval as a difference between second and first values in ''| | ||

+ | ^ Real, \\ Imaginary of data. \\ If your data is purely real, select ''< | ||

+ | ^ Forward / \\ Inverse | ||

+ | ^ 1/N in forward transform table). If your original data is real, you may want to additionally multiply the result by 2 to get the true amplitudes of real signal. Also referred as ''| | ||

+ | ^ Center zero frequency . | | ||

+ | | ||

+ | ===== Algorithm ===== | ||

+ | | ||

+ | MagicPlot uses the algorithm of FFT that does not necessarily require the number of points //N// to be an integer power of 2, though in such a case evaluation is faster. MagicPlot uses [[http://|jfftpack]] library (a Java version of fftpack). | ||

- | ===== Formulas ===== | ||

==== Discrete Fourier Transform Formulas ==== | ==== Discrete Fourier Transform Formulas ==== | ||

- | MagicPlot uses 'as follows from the table below. ((Most scientific applications uses the same sign conventions. But note, that the sign of exponential phase factor in Numerical Receipts in C, 2nd edition, p. 503 is the opposite)) | + | By default MagicPlot uses ': forward transform is computed using factor ''. Most scientific applications use factor ''. But note that the sign of exponential phase factor in Numerical Receipts in C, 2nd edition, p. 503 and in MATLAB package in forward transform is '' |

- | ^ Normalize Forward \\ Transform | + | ^ Factor −1 (Default) |

- | ^ Unchecked 1/N sum{k=1}{N}{C_k e^{2 pi i k n {/} N}}</ | + | ^ 1/N in forward \\ transform |

- | ^ Checked 1/N sum{k=1}{N}{c_k e^{−2 pi i k n {/} N}}</ | + | ^ Checked \\ (Default) 1/N sum{k=1}{N}{c_k e^{−2 pi i k n {/} N}}</ |

- | Here // | + | ^ Unchecked 1/N sum{k=1}{N}{C_k e^{2 pi i k n {/} N}}</ |

- | The only difference is in the sign of exponential phase factor and 1///N// multiplier. | + | \\ |

- | Note: If you expect to get the original data when doing a inverse FFT of forward FFT set the ''Normalize Forward Transform'' and ''check boxes identically for forward and inverse transforms. | + | ^ Factor +1 (Scientific) |

+ | ^ 1/N in forward \\ transform | ||

+ | ^ Checked \\ (Default) | ||

+ | ^ Unchecked | ||

+ | | ||

+ | | ||

+ | Here // | ||

+ | | ||

+ | Note: if you expect to get the original data when doing an inverse FFT of forward FFT, set the ''1/N in Forward Transform'', ''and ''for forward and inverse transforms. | ||

==== Amplitude and Phase Columns Formulas ==== | ==== Amplitude and Phase Columns Formulas ==== | ||

- | <m>Amplitude_n = sqrt{{Re_n}^2 + {Im_n}^2},Phase_n = atan2(Im_n, | + | <m>A_n = sqrt{{Re_n}^2 + {Im_n}^2},phi_n = atan2(Im_n, |

- | Because of using [[wp> | + | Because of using ''[[wp>'' function the phase is unwrapped and is in range (//. The result of ''. |

==== Sampling Column Formulas ==== | ==== Sampling Column Formulas ==== | ||

- | ^ Center Zero \\ Frequency | + | Sampling column contains frequency samples if forward transform is performed and time samples in case of inverse transform. |

- | ^ Unchecked | + | ^ Center zero \\ frequency |

- | ^ Checked | + | ^ Unchecked |

- | Here Δ//t// is given sampling interval of initial data. | + | ^ Checked |

+ | Here Δ//t// is given sampling interval of initial data (time for FFT and frequency for IFFT), //n// = 1...//N//. | ||

==== Missing Values in the Original Data ==== | ==== Missing Values in the Original Data ==== | ||

- | Fourier transform implies that the original samples are uniformly distributed in time (for forward transform) of frequency (for inverse transform). | + | Fourier transform implies that the original samples are uniformly distributed in time (for forward transform) or frequency (for inverse transform). |

* Missing values in the middle or in beginning of original data columns are treated as zeros, the result of Fourier transform may be incorrect. | * Missing values in the middle or in beginning of original data columns are treated as zeros, the result of Fourier transform may be incorrect. | ||

Line 39: | Line 57: | ||

* Missing values in the end of the column are ignored. | * Missing values in the end of the column are ignored. | ||

- | ===== Parameters ===== | + | ===== See Also ===== |

- | ^ Sampling Interval | Sampling interval of original data Δ//t// is used to compute the data in resulting sampling column. If '' | + | * [[processing]] |

- | ^ Real, \\ Imaginary | + | |

- | ^ Forward / \\ Inverse | + | |

- | ^ Normalize forward transform | + | |

- | ^ Center zero frequency | + |

fft.1277635726.txt.gz · Last modified: Sun Nov 8 12:20:32 2015 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International