Skip to content

travisformayor/FFTp5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FFT Implementation Documentation

Current Implementation Status

Completed Components

  1. Basic FFT class structure
  2. Data point generation from function strings (Step 1)
  3. Twiddle factor (W) computation for roots of unity (Step 2a)
  4. Bit reversal lookup table (Step 2b)
  5. Butterfly computation implementation (Step 3)
  6. Coefficient Extraction (Step 4)
  7. Fourier Series Construction (Step 5)
  8. Visualizations
  9. Function and N-point interactive UI options
  10. Unit tests of all math process steps

Project Structure

  • index.html: P5.js setup and configuration
  • Complex.js: Complex number operations
  • FFT.js: Main FFT class implementation
  • sketch.js: Testing and visualization framework

Technical Specifications

Implementation Details

  • Input size (N) must be a power of 2
  • Complex numbers represented as {re, im} objects
  • Twiddle factors (W) computed with looping optimization
  • Supports arbitrary function input via string parsing
  • Interactive visualization with real-time updates

Testing Strategy

Test Coverage

  1. Power of 2 input validation
  2. Point generation and spacing verification
  3. Bit reversal algorithm
  4. Butterfly pair generation for all stages
  5. Twiddle factor computation accuracy

Next Steps

  • Precompute twiddle factors for performance
  • Add unit tests for complex number operations
  • Add unit tests for function string parsing and evaluation

About

Implementation of a Fast Fourier Transform algorithm from scratch in p5.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published