HomeCalculatorsMathTransformsFFT Calculator
Math calculator

FFT Calculator

Compute radix-2 FFT for real or complex sequences with power-of-two lengths up to 64. Inspect all frequency bins, share inputs and export complete results.

Instant result
Result
—

Enter values to calculate.

Inputs—
Mode—
Formula—
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes
Input interpretation
Enter values to calculate.
Result
—
Verified scope
all published modes
Assurance
Core
Declared partition coverage
PASS · 7/7 declared partitions (scaled-components, numerical-range, dft, idft, fft, ifft, invalid-domain) · Matrix
Known limitations
  • Core CVP does not include live graph, viewport, or pointer interaction.
Model
Radix-2 Cooley–Tukey FFT of a length-N sequence, N=2^k ≤64, with an engine-linked stem figure of |X[k]|.
Scope
Mode locked to fft
Verification
Engine tested · Source checked · v1.2.3 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes· View Manifest · CVP overview · Specification
Versions
Calculation 1.2.3 · CVP protocol 1.0.0-proposed · Evidence 2026-10-28.metric-scope-v3
Verification revision
2026-10-28.metric-scope-v3 · 1/1 property · digest 260dbe79dcfc
Legacy regression
17/17 tests · Production surface contract 6/6
Trust layers
Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
Reference
O1 model · O2 expected_values · O2 expected_values · O2 numerical_behavior
Interfaces
PASS · UI (SSR) / REST / MCP — ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 2/2 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
Supplemental domain review
Not performed
Named expert review
Not performed
CVP suite
145/145 golden · 3/3 CVP boundary · 14/14 invalid · 1/1 property · 2/2 metamorphic · 7/7 cross-interface · 6/6 CVP contract · Manifest
Evidence
6 legacy golden · 3 legacy boundary · legacy regression suite · 145/145 oracle-backed golden · 14/14 invalid · Artifact integrity PASS
This calculator CURRENT · Public schema 1.2.3 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓
Semantic contract
PASS
Full verification

Manifest identity, reference classes, interfaces, suite, and production records.

Formulas

Core equations used by this calculator.

Unnormalized DFT (same values)X[k] = Σ_n x[n] e^{−2πi kn/N}
Impulsex = [1, 0, …, 0] → X = [1, 1, …, 1]
iSame engine as /discrete-fourier-transform. Numpy backward puts the 1/N scale on the inverse, not here. N must be a power of 2. Not a second engine. Inverse FFT is on /ifft.

How to use

1

Enter samples

Real list, optional im of the same length. N must be 2^k and 1–64. Default 1,0,0,0.

2

Read X[k]

The impulse has FFT all ones. DC 1,1,1,1 has X[0]=4. Values match direct DFT for the same N. The stem figure shows |X[k]| with the marker at bin 0.

Example calculations

Common configurations with formula and result.

ϟ

Impulse

samples = 1,0,0,0

X = [1, 1, 1, 1]
1
ϟ

DC

samples = 1,1,1,1

X = [4, 0, 0, 0]
4

FFT calculator specification

Version 1.2.3 · Engine tested

Calculation status

Review policy · Evidence

Definition
The radix-2 FFT is the Cooley–Tukey factorization of the unnormalized DFT X[k]=Σ_n x[n] e^{−2πi kn/N} when N=2^k. This page is mode=fft on math.transform.dft. N≤64. Direct DFT lives on /dft. Inverse FFT lives on /ifft. Not Laplace. Not CAS.
What it calculates
Radix-2 Cooley–Tukey FFT of a length-N sequence, N=2^k ≤64, with an engine-linked stem figure of |X[k]|.
Inputs
  • samples
  • im?
Outputs
  • n
  • re
  • im
  • mag
Formula
X[k] = Σ_n x[n] e^{−2πi kn/N} (radix-2)
Assumptions
  • Mode locked to fft
  • Radix-2 Cooley–Tukey, N=2^k ≤64, Numpy backward
  • The Result Card includes an engine-linked stem figure of |X[k]| (marker is bin 0 / published X[0]). Same mag as REST/MCP.
  • Not a second DFT engine
  • Not Laplace, not CAS
Units
  • dimensionless
Boundary conditions
  • empty samples → INVALID_INPUT
  • N not a power of 2 → INVALID_INPUT
  • N > 64 → INVALID_INPUT
  • unknown mode → INVALID_MODE
Example
samples=1,0,0,0 → X=[1,1,1,1]
Validation cases

2 published on this page · 17/17 tests · Production surface contract 6/6 · View evidence

  • samples=1,0,0,0 → re=[1,1,1,1]
  • samples=1,0,0 → INVALID_INPUT
Sources
Calculation version
1.2.3

Background

Interpretation and common distinctions.

What does this fft calculator compute?

The radix-2 FFT is the Cooley–Tukey factorization of the unnormalized DFT X[k]=Σ_n x[n] e^{−2πi kn/N} when N=2^k.

The published formula or method is X[k] = Σ_n x[n] e^{−2πi kn/N} (radix-2). The following references support the stated mathematics or method:

Which inputs and limits should you check?

Retain the full complex sequence and distinguish the unnormalized forward transform from the 1/N inverse normalization. FFT presets also impose the stated sequence-length restrictions.

The worked example uses samples = 1,0,0,0 with X = [1, 1, 1, 1]. Compare it with the Example calculations and the complete result for the same inputs.

How can you verify and cite this result?

CalculatorX is responsible for this page. The mathematical references above explain the model; implementation checks and their scope are documented separately in the math.transform.dft v1.2.3 Evidence and capability contract. Read the displayed verification and production state together with the specification's numerical limits.

Use the clean calculator URL to cite the tool. A shared input link identifies a particular calculation. Content updates, numerical verification, and domain reviews have separate dates and scopes.

Numerical precision and input policy

Use 1–64 finite binary64 samples; FFT/IFFT require a power-of-two length. Decimal scalar, CSV/JSON sequence, real array, [re, im] pairs, and objects with re/im are supported. Optional im must have the same length. Supplied samples/x/re, mode/method, and embedded/separate imaginary components must agree; malformed lists, empty required values and unknown fields are rejected. Locked entry presets choose their displayed mode.

Forward transforms are unnormalized; inverse transforms divide by N. Exact dyadic sums and products of binary64 samples and binary64 twiddle approximations avoid intermediate overflow and preserve cancellation in these operations. Cardinal roots of unity are exact. Other trigonometric factors remain approximate: this is a floating-point transform, not an exact symbolic transform. Input echoes preserve binary64 precision; output components and magnitudes publish 12 significant digits.

The independent listed-fixture comparison uses component relative 1e-8 plus spectrum-peak absolute 1e-12, allowing four smallest subnormal ulps. This is a verification budget, not a per-input error bound. Relative accuracy can weaken near zero bins or cancellation, even though the transform has good normwise conditioning. Nonzero decimal input that converts to zero returns NUMERIC_UNDERFLOW. A nonzero evaluated output component that rounds to zero, or a nonfinite output/magnitude, returns NUMERICAL_RANGE_ERROR; roundoff near a mathematical zero can also trigger this refusal at extreme scales.

The stem plot shows magnitudes by discrete bin/sample index, with index 0 highlighted. It is not a physical-frequency spectrum or phase plot. Bins too small relative to the peak can be visually indistinguishable from zero; the complete numeric sequence and exports retain their published values.

Ordinary calculations run locally. A shared URL sends inputs to the server and may appear in server logs; browser history may store results on this device. REST/MCP requests send inputs to the service. No zero-log, retention-period or processing-region guarantee is implied. Shared version labels identify the requested calculation; they do not provide an archived browser engine.

Frequently asked questions

Key distinctions behind the calculation.

Is this a second DFT engine?

No. It is mode=fft on math.transform.dft, the same engine as /calc/math/discrete-fourier-transform.

Is this the direct DFT?

No. Direct O(N²) DFT is on /dft. This seed is radix-2 Cooley–Tukey. For power-of-2 N the values match. Not CAS.

Where does this run?

Locally in the browser by default. REST and MCP call the same discrete-fourier-transform engine.