Discrete Time Signal Synthesizer
Generates multi-tone complex input signals x[n] = ∑ A_m exp(2πi f_m n / N) corrupted by white noise.
Implement the radix-2 decimation-in-time Cooley-Tukey Fast Fourier Transform, evaluate twiddle factor symmetries, construct the butterfly computational graph, and quantitatively verify the 5 N log₂ N floating-point operational scaling against naive O(N²) matrix multiplication. Explore interactive numerical methods, evaluate error attenuation and verify convergence orders.
Ready to execute N = 64.
Adjust N, then execute computation.
Mathematical operations are computed deterministically using 64-bit IEEE 754 precision. Residuals reflect ordinary least-squares regression across successive observations.
Radix-2 FFT requires transform lengths equal to exact powers of two; prime-length DFTs require Bluestein's algorithm or Rader's algorithm. The simulation evaluates the radix-2 Cooley-Tukey FFT across transform sizes N = 64 to 2048. Floating-point operation counts scale linearly with the normalized complexity coordinate N log₂(N)/1000, confirming the theoretical operational constant C = 5.000 with R² = 1.000000.
Generates multi-tone complex input signals x[n] = ∑ A_m exp(2πi f_m n / N) corrupted by white noise.
Reorders input samples into bit-reversed sequence to enable in-place butterfly computation without auxiliary arrays.
Precomputes complex roots of unity W_N^k = cos(2πk/N) - i sin(2πk/N) with 64-bit precision.
Executes the core 2-point butterfly computation: u = X[k], t = W · X[k+m], X[k] = u + t, X[k+m] = u - t.
Tracks the exact count of real floating-point additions and multiplications (5 N log₂ N FLOPs total).
Computes magnitude spectrum |X[k]|² and visualizes frequency peaks and spectral resolution.
Implement the radix-2 decimation-in-time Cooley-Tukey Fast Fourier Transform, evaluate twiddle factor symmetries, construct the butterfly computational graph, and quantitatively verify the 5 N log₂ N floating-point operational scaling against naive O(N²) matrix multiplication. Standardized input settings: 64, 128, 256, 512, 1024, 2048 points.
Set transform size N as a power of two (N ∈ {64, 128, 256, 512, 1024, 2048}) and synthesize test signal x[n].
Permute the complex input array in-place by swapping each element with its bit-reversed index mirror.
Execute stage loop s = 1 to log₂(N), doubling butterfly sub-transform length m = 2^s at each stage.
For each sub-transform, multiply lower branch by twiddle factor W_m^j and perform complex add/subtract.
Record total floating-point operations (each complex butterfly requires 1 complex multiply [6 FLOPs] and 2 complex adds [4 FLOPs], averaging 5 N log₂ N real operations).
Plot measured kFLOPs versus normalized coordinate (N log₂(N) / 1000) and perform linear regression to confirm C = 5.000.
Points are your recorded observations. The solid regression line validates Fast Fourier Transform (FFT) mathematical scaling.
| # | Transform Size (N = 2^p) (points) | Total Floating-Point Operations (kFLOPs) | Normalized Complexity Coordinate (N log₂(N) / 1000) | Measured Floating-Point Operations (kFLOPs) | Remove |
|---|
No readings yet. Execute a computation and record it.