You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
/*
|
|
* ============================
|
|
* FFTW3 Transform Types (Summary)
|
|
* ============================
|
|
*
|
|
* 1. Complex-to-Complex (C2C)
|
|
* ---------------------------
|
|
* - Input: Complex[]
|
|
* - Output: Complex[]
|
|
* - Use: General-purpose FFT
|
|
* - API: fftwf_plan_dft_1d / 2d / 3d / many
|
|
*
|
|
* 2. Real-to-Complex (R2C)
|
|
* ------------------------
|
|
* - Input: Real[]
|
|
* - Output: Complex[] (half-spectrum)
|
|
* - Use: Signal processing, time series
|
|
* - API: fftwf_plan_dft_r2c_1d / 2d / 3d / many
|
|
*
|
|
* 3. Complex-to-Real (C2R)
|
|
* ------------------------
|
|
* - Input: Complex[] (half-spectrum)
|
|
* - Output: Real[]
|
|
* - Use: Inverse of R2C
|
|
* - API: fftwf_plan_dft_c2r_1d / 2d / 3d / many
|
|
*
|
|
* 4. Real-to-Real (R2R)
|
|
* ---------------------
|
|
* - Input: Real[]
|
|
* - Output: Real[]
|
|
* - Use: DCT/DST for PDEs, image compression
|
|
* - Types:
|
|
* FFTW_REDFT00 → DCT-I
|
|
* FFTW_REDFT01 → DCT-II (used in JPEG)
|
|
* FFTW_REDFT10 → DCT-III
|
|
* FFTW_REDFT11 → DCT-IV
|
|
* FFTW_RODFT00 → DST-I
|
|
* FFTW_RODFT01 → DST-II
|
|
* FFTW_RODFT10 → DST-III
|
|
* FFTW_RODFT11 → DST-IV
|
|
* FFTW_R2HC → Real-to-halfcomplex
|
|
* FFTW_HC2R → Halfcomplex-to-real
|
|
* FFTW_DHT → Hartley Transform
|
|
* - API: fftwf_plan_r2r_1d / 2d / 3d / guru / many
|
|
*
|
|
* 5. Split-Complex Transforms
|
|
* ---------------------------
|
|
* - Input/Output: Separate real and imaginary arrays
|
|
* - Use: Specialized memory layouts
|
|
* - API: fftwf_plan_guru_split_dft, split_r2c, split_c2r
|
|
*
|
|
* ============================
|
|
* FFTW is fast because:
|
|
* - Auto-tuned plan selection
|
|
* - SIMD and cache-aware
|
|
* - Wisdom reuse
|
|
* - Multithreading support
|
|
* - Custom codelets per architecture
|
|
* ============================
|
|
*/
|
|
|
|
|