Fourier Transform on R^n
Activate this skill when the user is defining, computing, or reasoning about the Fourier transform on R^n: picking a normalization, transforming Gaussians, derivatives, dilations or tempered distributions, or invoking Plancherel, inversion and the decay-smoothness duality inside a proof or a PDE argument. Triggers on "Fourier transform," "harmonic analysis," "Schwartz space," "Plancherel," "convolution theorem," "tempered distribution," "Riemann-Lebesgue," "2π convention," "Fourier inversion," "Hausdorff-Young." Covers the three standard conventions with a translation table, a library of worked transforms, and the sanity checks that catch a wrong constant before it propagates.
You are an analyst who works across classical Fourier analysis, singular integrals and applied signal processing, and who has taught the graduate harmonic analysis sequence for years. You have watched more proofs die from a misplaced 2π than from any genuine error, and you have debugged enough FFT code to know that the convention question is not pedantry: it decides whether Plancherel carries a constant, whether the Gaussian is a fixed point, and whether your derivative rule carries an i or a 2πi.
## Key Points
- Fix the convention before writing a single formula, and write it at the top of the page. Every constant below depends on it.
- The transform is a change of basis to the joint eigenfunctions of translation. Convolution, derivative and dilation rules all follow from how those operators commute with translation.
- Decay of f̂ measures smoothness of f, and vice versa. This is the most used heuristic in the subject; make it quantitative before relying on it.
- Work on Schwartz functions first and extend by density or duality. Almost every identity is a two-line computation on S(R^n) plus a limiting argument.
- Check every computed transform three ways: the value at ξ = 0 (the integral of f), the scaling behavior, and Plancherel.
- The Fourier transform is a continuous bijection S → S with continuous inverse. In a unitary convention F²f(x) = f(−x) and F⁴ = I.
- Riemann–Lebesgue: for f ∈ L¹, f̂ is continuous, bounded by ‖f‖₁, and tends to zero at infinity. It need not be in L¹, and the decay can be arbitrarily slow.
- Inversion: if f, f̂ ∈ L¹ then f equals the inverse transform of f̂ almost everywhere (everywhere if f is continuous). The proof inserts e^{-ε|ξ|²}, uses Fubini, and lets ε → 0.
- If ∂^α f ∈ L¹ for all |α| ≤ k, then |f̂(ξ)| ≤ C (1 + |ξ|)^{-k}. (Integrate by parts k times.)
- If (1 + |x|)^k f ∈ L¹, then f̂ ∈ C^k with bounded derivatives. (Differentiate under the integral.)
- f ∈ H^s(R^n) ⟺ (1 + |ξ|²)^{s/2} f̂ ∈ L². This is the definition for non-integer s and agrees with the derivative definition for integer s.
- Exponential decay |f(x)| ≤ C e^{-a|x|} makes f̂ analytic in the strip |Im ξ| < a/(2π); Gaussian decay makes f̂ entire.skilldb get harmonic-analysis-skills/fourier-transform-on-rnFull skill: 155 linesFourier Transform on R^n
You are an analyst who works across classical Fourier analysis, singular integrals and applied signal processing, and who has taught the graduate harmonic analysis sequence for years. You have watched more proofs die from a misplaced 2π than from any genuine error, and you have debugged enough FFT code to know that the convention question is not pedantry: it decides whether Plancherel carries a constant, whether the Gaussian is a fixed point, and whether your derivative rule carries an i or a 2πi.
Core Principles
- Fix the convention before writing a single formula, and write it at the top of the page. Every constant below depends on it.
- The transform is a change of basis to the joint eigenfunctions of translation. Convolution, derivative and dilation rules all follow from how those operators commute with translation.
- Decay of f̂ measures smoothness of f, and vice versa. This is the most used heuristic in the subject; make it quantitative before relying on it.
- Work on Schwartz functions first and extend by density or duality. Almost every identity is a two-line computation on S(R^n) plus a limiting argument.
- Check every computed transform three ways: the value at ξ = 0 (the integral of f), the scaling behavior, and Plancherel.
The Three Conventions
Let x·ξ denote the Euclidean inner product.
| A: PDE / probability | B: ordinary frequency (Stein–Weiss) | C: unitary angular | |
|---|---|---|---|
| Forward | f̂(ξ) = ∫ f(x) e^{-i x·ξ} dx | f̂(ξ) = ∫ f(x) e^{-2πi x·ξ} dx | f̂(ξ) = (2π)^{-n/2} ∫ f(x) e^{-i x·ξ} dx |
| Inverse | f(x) = (2π)^{-n} ∫ f̂(ξ) e^{i x·ξ} dξ | f(x) = ∫ f̂(ξ) e^{2πi x·ξ} dξ | f(x) = (2π)^{-n/2} ∫ f̂(ξ) e^{i x·ξ} dξ |
| Plancherel | ‖f̂‖₂² = (2π)^n ‖f‖₂² | ‖f̂‖₂ = ‖f‖₂ | ‖f̂‖₂ = ‖f‖₂ |
| Convolution | (f∗g)^ = f̂ ĝ | (f∗g)^ = f̂ ĝ | (f∗g)^ = (2π)^{n/2} f̂ ĝ |
| Product | (fg)^ = (2π)^{-n} f̂∗ĝ | (fg)^ = f̂∗ĝ | (fg)^ = (2π)^{-n/2} f̂∗ĝ |
| Derivative | (∂_j f)^ = i ξ_j f̂ | (∂_j f)^ = 2πi ξ_j f̂ | (∂_j f)^ = i ξ_j f̂ |
| Multiplication by x_j | (x_j f)^ = i ∂_j f̂ | (x_j f)^ = (i/2π) ∂_j f̂ | (x_j f)^ = i ∂_j f̂ |
| Laplacian | (Δf)^ = −|ξ|² f̂ | (Δf)^ = −4π²|ξ|² f̂ | (Δf)^ = −|ξ|² f̂ |
| Gaussian fixed point | none | e^{-π|x|²} | e^{-|x|²/2} |
| Transform of 1 | (2π)^n δ | δ | (2π)^{n/2} δ |
Translation between them: f̂_B(ξ) = f̂_A(2πξ) and f̂_C = (2π)^{-n/2} f̂_A. Software: numpy.fft and scipy.fft implement the discrete analogue of B (exponent −2πi jk/N, no factor on the forward transform, 1/N on the inverse, norm="ortho" for the unitary version); SymPy's fourier_transform uses B; Mathematica's default FourierTransform is unitary with a positive exponent in the forward direction, so check FourierParameters before comparing output.
Convention B is used below unless a formula is marked (A).
Schwartz Space and the Basic Theorems
S(R^n) is the space of smooth f with sup_x |x^α ∂^β f(x)| < ∞ for all multi-indices α, β. The facts you use constantly:
- The Fourier transform is a continuous bijection S → S with continuous inverse. In a unitary convention F²f(x) = f(−x) and F⁴ = I.
- Riemann–Lebesgue: for f ∈ L¹, f̂ is continuous, bounded by ‖f‖₁, and tends to zero at infinity. It need not be in L¹, and the decay can be arbitrarily slow.
- Inversion: if f, f̂ ∈ L¹ then f equals the inverse transform of f̂ almost everywhere (everywhere if f is continuous). The proof inserts e^{-ε|ξ|²}, uses Fubini, and lets ε → 0.
- Plancherel: F extends from L¹ ∩ L² to a unitary operator on L² (an isometry up to the convention's constant). For general f ∈ L², f̂ is the L² limit of transforms of truncations, not a pointwise integral.
- Hausdorff–Young: for 1 ≤ p ≤ 2 and p' = p/(p−1), ‖f̂‖_{p'} ≤ ‖f‖_p, with sharp constant (p^{1/p}/p'^{1/p'})^{n/2} attained by Gaussians (Babenko, Beckner). For p > 2 the transform of an L^p function is only a distribution.
- Tempered distributions: for T ∈ S', define ⟨T̂, φ⟩ = ⟨T, φ̂⟩. Every identity valid on S transfers to S' by this definition. Polynomially bounded functions, finite measures and every L^p function belong to S'.
Structural Rules
| Operation on f | Effect on f̂ |
|---|---|
| Translation f(x − a) | e^{-2πi a·ξ} f̂(ξ) |
| Modulation e^{2πi b·x} f(x) | f̂(ξ − b) |
| Dilation f(λx), λ > 0 | λ^{-n} f̂(ξ/λ) |
| L²-normalized dilation λ^{n/2} f(λx) | λ^{-n/2} f̂(ξ/λ) (unitary) |
| Linear change f(Ax), A invertible | |det A|^{-1} f̂(A^{-T} ξ) |
| Rotation f(Rx) | f̂(Rξ): radial functions have radial transforms |
| Conjugation | conj(f̂(−ξ)); f real ⟺ f̂(−ξ) = conj f̂(ξ) |
| Real even / real odd f | f̂ real even / purely imaginary odd |
The dilation rule is the uncertainty principle in embryo: squeezing f by λ spreads f̂ by λ. It also forces every homogeneous distribution of degree −a to transform into one of degree a − n.
For radial f(x) = f₀(|x|) the transform is a Hankel transform: f̂(ξ) = 2π |ξ|^{1−n/2} ∫₀^∞ f₀(r) J_{n/2−1}(2π r|ξ|) r^{n/2} dr.
Decay and Smoothness
- If ∂^α f ∈ L¹ for all |α| ≤ k, then |f̂(ξ)| ≤ C (1 + |ξ|)^{-k}. (Integrate by parts k times.)
- If (1 + |x|)^k f ∈ L¹, then f̂ ∈ C^k with bounded derivatives. (Differentiate under the integral.)
- f ∈ H^s(R^n) ⟺ (1 + |ξ|²)^{s/2} f̂ ∈ L². This is the definition for non-integer s and agrees with the derivative definition for integer s.
- Paley–Wiener: f ∈ L² has f̂ supported in the ball of radius R if and only if f extends to an entire function on C^n with |f(z)| ≤ C e^{2πR|Im z|} and L² restrictions to real slices. Compact support on one side forces analyticity on the other, so no nonzero function is compactly supported on both.
- Exponential decay |f(x)| ≤ C e^{-a|x|} makes f̂ analytic in the strip |Im ξ| < a/(2π); Gaussian decay makes f̂ entire.
- Bounded variation in one dimension gives |f̂(ξ)| ≤ V(f)/(2π|ξ|); a jump caps the decay at exactly 1/|ξ|.
The pointwise heuristic "f̂ = O(|ξ|^{-k}) so f has about k − n derivatives" is right in spirit, but the exact bookkeeping is L² (Sobolev) or Besov, not pointwise. The Littlewood–Paley file has the sharp version.
Library of Transforms (n = 1 unless marked)
| f(x) | f̂(ξ) |
|---|---|
| e^{-π a x²}, a > 0 (R^n: e^{-πa|x|²}) | a^{-1/2} e^{-π ξ²/a} (R^n: a^{-n/2} e^{-π|ξ|²/a}) |
| e^{-a|x|}, a > 0 | 2a/(a² + 4π²ξ²) |
| 1_{[−1/2, 1/2]} | sinc(ξ) = sin(πξ)/(πξ) |
| 1_{[−a, a]} | sin(2πaξ)/(πξ) |
| (1 − |x|)₊ | sinc²(ξ) |
| 1/(1 + x²) | π e^{-2π|ξ|} |
| sech(πx) | sech(πξ) |
| p.v. 1/x | −iπ sgn(ξ) |
| |x|^{-a}, 0 < a < n (R^n) | π^{a − n/2} Γ((n−a)/2)/Γ(a/2) · |ξ|^{a−n} |
| 1_{B(0,1)} (R^n) | |ξ|^{-n/2} J_{n/2}(2π|ξ|), decaying like |ξ|^{-(n+1)/2} |
| δ_a | e^{-2πi aξ} |
| e^{2πi bx} | δ_b |
| Σ_k δ_k (Dirac comb) | Σ_k δ_k (Poisson summation) |
Two identities in convention A that appear in every PDE course: e^{-t|ξ|²} is the transform of the heat kernel (4πt)^{-n/2} e^{-|x|²/(4t)}, and e^{-t|ξ|} is the transform of the Poisson kernel Γ((n+1)/2) π^{-(n+1)/2} t/(t² + |x|²)^{(n+1)/2}. In n = 3 and convention B, the Newtonian potential 1/(4π|x|) has transform 1/(4π²|ξ|²), exactly the symbol of (−Δ)^{-1}.
Procedure: Computing a Transform Without Error
- Write the convention and the dimension. If you inherit a formula from a book, identify its convention from its Gaussian or its Plancherel statement.
- Reduce by symmetry: translate to center the function, factor a product of one-dimensional functions, or recognize a radial function.
- Pick a route: direct integration (contour or completing the square), the derivative and multiplication rules to turn an ODE for f into an ODE for f̂, or a known transform plus structural rules.
- Check ξ = 0: f̂(0) must equal ∫ f. For e^{-πax²} that is a^{-1/2}. If it fails, the constant is wrong.
- Check homogeneity: if f(λx) is a multiple of f, the exponents of the claimed f̂ must satisfy the dilation rule.
- Check Plancherel on one function you can integrate on both sides (the Gaussian or the box).
- If the target is a distribution, verify against a test function, not pointwise. p.v. 1/x, |x|^{-a} with a near n, and derivatives of δ are the usual traps.
Worked Examples
Gaussian by ODE. f(x) = e^{-πx²} satisfies f' + 2πx f = 0. Transforming with (f')^ = 2πiξ f̂ and (xf)^ = (i/2π) f̂' gives 2πiξ f̂ + i f̂' = 0, i.e. f̂' = −2πξ f̂, so f̂(ξ) = f̂(0) e^{-πξ²} = e^{-πξ²} because ∫ e^{-πx²} dx = 1. Dilation then produces the whole a-family and the product structure gives R^n.
Solving (I − Δ)u = g on R^n. Transform: (1 + 4π²|ξ|²) û = ĝ, so u = G₂ ∗ g with Ĝ₂ = (1 + 4π²|ξ|²)^{-1}, the Bessel potential. Ĝ₂ is integrable only when n = 1, so G₂ is bounded only in one dimension (there it equals e^{-|x|}/2). In general G₂ is positive with ∫ G₂ = 1, behaves like |x|^{2−n} at the origin for n ≥ 3 (log(1/|x|) for n = 2), and decays exponentially. Young's inequality gives ‖u‖_p ≤ ‖g‖_p for every p.
Heat equation. u_t = Δu, u(0) = f. In convention A, û(t, ξ) = e^{-t|ξ|²} f̂(ξ), so u(t) = K_t ∗ f with K_t(x) = (4πt)^{-n/2} e^{-|x|²/4t}. The ξ = 0 check: K̂_t(0) = 1 = ∫ K_t, so mass is conserved. The dilation check: K_t(x) = t^{-n/2} K₁(x/√t) matches e^{-t|ξ|²} = e^{-|√t ξ|²}.
Numerical verification with the FFT.
import numpy as np
N, L = 4096, 40.0
x = np.linspace(-L/2, L/2, N, endpoint=False); dx = x[1] - x[0]
f = np.exp(-np.pi * x**2)
xi = np.fft.fftshift(np.fft.fftfreq(N, d=dx)) # ordinary frequency: convention B
F = np.fft.fftshift(np.fft.fft(np.fft.ifftshift(f))) * dx # Riemann sum of the integral
print(np.max(np.abs(F.real - np.exp(-np.pi * xi**2)))) # ~1e-15
ifftshift puts x = 0 at index 0 so the FFT's phase reference matches the continuous origin; the factor dx turns the sum into an integral; fftfreq returns cycles per unit length. Dropping any one of the three yields a result off by a phase ramp, a constant, or a factor of 2π.
Checklist
- Convention stated; the Gaussian and Plancherel written down as a test pair.
- f̂(0) = ∫ f verified.
- Sign and constant in the derivative rule match the convention.
- Distributional transforms verified against a test function.
- Dilation exponent matches the degree of homogeneity.
- Radial input produced radial output.
- For L² functions defined by limits, no pointwise integral was claimed where none converges.
- FFT comparison: origin shifted, grid step multiplied in, frequency grid from
fftfreq.
Common Mistakes
- Mixing convention A's heat symbol e^{-t|ξ|²} with convention B's derivative rule, producing a diffusion constant off by 4π².
- Concluding f̂ ∈ L¹ from f ∈ L¹ (false for the box function) and then "applying inversion".
- Writing ∫ f̂(ξ) e^{2πixξ} dξ for an L² function as if the integral converged absolutely.
- Treating (fg)^ = f̂∗ĝ as convention-free; in A it carries (2π)^{-n}.
- Forgetting that the transform of real data is Hermitian, then "discovering" a nonzero imaginary part at ξ = 0 (it is a phase-reference error from an unshifted origin).
- Using the pointwise decay heuristic to conclude differentiability; only the L² and Besov versions are theorems.
- Assuming |x|^{-a} transforms to a function when a ≥ n; the formula degenerates and the object is a genuine distribution needing regularization.
Limits
This file covers the Euclidean transform on R^n. Fourier series on the torus, transforms on other groups, spherical harmonics and windowed time-frequency transforms each have their own file. The transform alone gives the L² theory; for L^p mapping properties of multipliers and singular integrals use the Calderón–Zygmund and Littlewood–Paley files.
Install this skill directly: skilldb add harmonic-analysis-skills
Related Skills
Harmonic Analysis on Groups
Activate this skill when the user is doing Fourier analysis on a group other than R^n: characters and the dual of a locally compact abelian group, Haar measure, the DFT on Z/nZ, Fourier series on the torus, Walsh-Hadamard analysis on the hypercube, Peter-Weyl for compact groups, representation-theoretic Fourier transforms on finite nonabelian groups, or Poisson summation and its consequences. Triggers on "harmonic analysis," "Pontryagin duality," "locally compact abelian group," "Haar measure," "characters," "Peter-Weyl," "representation theory," "Poisson summation," "theta function," "Walsh-Hadamard," "Fourier transform on finite groups," "random walk on a group." Covers the abstract framework, a normalization table for the classical groups, a procedure for setting up the transform on a new group, the finite nonabelian transform with the Diaconis random-walk application, and the DFT and FFT as representation theory.
Littlewood-Paley Theory and Function Spaces
Activate this skill when the user needs to decompose a function into dyadic frequency pieces, bound a Fourier multiplier on L^p, define or compare Sobolev, Besov and Triebel-Lizorkin spaces, apply Bernstein inequalities, or estimate products and nonlinear terms with paraproducts in a PDE argument. Triggers on "Littlewood-Paley," "dyadic decomposition," "square function," "Besov space," "Triebel-Lizorkin," "Sobolev embedding," "Bernstein inequality," "paraproduct," "Fourier multiplier," "harmonic analysis," "fractional Leibniz," "commutator estimate." Covers the construction of the decomposition, the square function theorem, frequency-localized and heat-flow definitions of the classical spaces, Bony's paraproduct calculus, and step-by-step procedures for proving a multiplier bound and estimating a nonlinear term.
Singular Integrals and Calderón-Zygmund Theory
Activate this skill when the user is working with the Hilbert or Riesz transforms, proving or applying L^p bounds for an operator with a singular kernel, running a Calderón-Zygmund decomposition, using the Hardy-Littlewood maximal function, or asking why elliptic regularity holds in L^p but fails at p = 1 and p = ∞. Triggers on "singular integral," "Calderón-Zygmund," "Hilbert transform," "Riesz transform," "maximal function," "weak type (1,1)," "Muckenhoupt weights," "A_p weights," "harmonic analysis," "elliptic regularity," "Mikhlin multiplier," "BMO." Covers the kernel conditions, the decomposition and the weak (1,1) proof, interpolation to L^p, the multiplier theorem, the endpoint spaces H^1 and BMO, the weighted theory in outline, and the PDE consequences.
Applied Spectral Estimation
Activate this skill when the user is estimating a power spectrum from sampled data and needs to choose between the periodogram, Welch averaging and multitaper methods, pick a window, understand leakage and the resolution-variance trade-off, detect sinusoidal lines against noise, or interpret a plotted spectrum without fooling themselves. Triggers on "power spectral density," "periodogram," "Welch method," "multitaper," "spectral leakage," "window function," "PSD," "spectrum estimation," "line detection," "scipy.signal.welch," "harmonic analysis." Covers the statistics of each estimator, a window table, scaling and units, confidence intervals, line tests, working numpy and scipy recipes, and an honest reading of the result.
Spherical Harmonics
Activate this skill when the user is expanding a function on the sphere, solving Laplace's equation in spherical coordinates, using the addition theorem or Funk-Hecke formula, choosing normalizations and phase conventions, or computing spherical harmonic transforms for geodesy, graphics lighting or cosmology. Triggers on "spherical harmonics," "Legendre polynomials," "associated Legendre," "addition theorem," "Funk-Hecke," "angular power spectrum," "Laplace equation on the sphere," "multipole expansion," "harmonic analysis," "HEALPix." Covers the degree-ℓ spaces and their dimensions, the separation of variables, the zonal-kernel calculus, expansion and quadrature on the sphere, application conventions in three fields, and the numerics that keep high degrees stable.
Uncertainty Principles and Sampling
Activate this skill when the user is reasoning about how concentrated a function and its Fourier transform can simultaneously be, reconstructing a band-limited signal from samples, diagnosing aliasing, choosing a sampling rate or a window for time-frequency analysis, or citing Heisenberg, Hardy, Donoho-Stark, Shannon-Nyquist or Paley-Wiener correctly. Triggers on "uncertainty principle," "Heisenberg," "band-limited," "Nyquist," "Shannon sampling," "aliasing," "sinc interpolation," "Paley-Wiener," "STFT," "Gabor," "spectrogram," "time-frequency," "harmonic analysis." Covers the classical, entropic and discrete uncertainty principles with exact constants, the sampling theorem and its failure modes, nonuniform and Slepian-type results, a procedure for diagnosing aliasing in recorded data, and the windowed-transform picture with its resolution trade-off.