Documentation

Mathlib.Analysis.Fourier.FourierTransform

The Fourier transform #

We set up the Fourier transform for complex-valued functions on finite-dimensional spaces.

Design choices #

In namespace VectorFourier, we define the Fourier integral in the following context:

With these definitions, we define fourierIntegral to be the map from functions V → E to functions W → E that sends f to

fun w ↦ ∫ v in V, e [-L v w] • f v ∂μ,

where e [x] is notational sugar for (e (Multiplicative.ofAdd x) : ℂ) (available in locale fourier_transform). This includes the cases W is the dual of V and L is the canonical pairing, or W = V and L is a bilinear form (e.g. an inner product).

In namespace Fourier, we consider the more familiar special case when V = W = 𝕜 and L is the multiplication map (but still allowing 𝕜 to be an arbitrary ring equipped with a measure).

The most familiar case of all is when V = W = 𝕜 = ℝ, L is multiplication, μ is volume, and e is Real.fourierChar, i.e. the character fun x ↦ exp ((2 * π * x) * I) (for which we introduce the notation 𝐞 in the locale FourierTransform).

Another familiar case (which generalizes the previous one) is when V = W is an inner product space over and L is the scalar product. We introduce two notations 𝓕 for the Fourier transform in this case and 𝓕⁻ f (v) = 𝓕 f (-v) for the inverse Fourier transform. These notations make in particular sense for V = W = ℝ.

Main results #

At present the only nontrivial lemma we prove is fourierIntegral_continuous, stating that the Fourier transform of an integrable function is continuous (under mild assumptions).

Notation for multiplicative character applied in an additive setting.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Fourier theory for functions on general vector spaces #

    def VectorFourier.fourierIntegral {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure V) (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : VE) (w : W) :
    E

    The Fourier transform integral for f : V → E, with respect to a bilinear form L : V × W → 𝕜 and an additive character e.

    Equations
    Instances For
      theorem VectorFourier.fourierIntegral_smul_const {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure V) (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : VE) (r : ) :
      theorem VectorFourier.norm_fourierIntegral_le_integral_norm {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure V) (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : VE) (w : W) :
      VectorFourier.fourierIntegral e μ L f w ∫ (v : V), f vμ

      The uniform norm of the Fourier integral of f is bounded by the norm of f.

      theorem VectorFourier.fourierIntegral_comp_add_right {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] [MeasurableAdd V] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure V) [MeasureTheory.Measure.IsAddRightInvariant μ] (L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜) (f : VE) (v₀ : V) :
      VectorFourier.fourierIntegral e μ L (f fun (v : V) => v + v₀) = fun (w : W) => (e (Multiplicative.ofAdd ((L v₀) w))) VectorFourier.fourierIntegral e μ L f w

      The Fourier integral converts right-translation into scalar multiplication by a phase factor.

      theorem VectorFourier.fourier_integral_convergent_iff {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] [TopologicalSpace 𝕜] [TopologicalRing 𝕜] [TopologicalSpace V] [BorelSpace V] [TopologicalSpace W] {e : Multiplicative 𝕜 →* circle} {μ : MeasureTheory.Measure V} {L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜} (he : Continuous e) (hL : Continuous fun (p : V × W) => (L p.1) p.2) {f : VE} (w : W) :
      MeasureTheory.Integrable f μ MeasureTheory.Integrable (fun (v : V) => (e (Multiplicative.ofAdd (-(L v) w))) f v) μ

      For any w, the Fourier integral is convergent iff f is integrable.

      theorem VectorFourier.fourierIntegral_add {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] [TopologicalSpace 𝕜] [TopologicalRing 𝕜] [TopologicalSpace V] [BorelSpace V] [TopologicalSpace W] {e : Multiplicative 𝕜 →* circle} {μ : MeasureTheory.Measure V} {L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜} (he : Continuous e) (hL : Continuous fun (p : V × W) => (L p.1) p.2) {f : VE} {g : VE} (hf : MeasureTheory.Integrable f μ) (hg : MeasureTheory.Integrable g μ) :
      theorem VectorFourier.fourierIntegral_continuous {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} [NormedAddCommGroup E] [NormedSpace E] [TopologicalSpace 𝕜] [TopologicalRing 𝕜] [TopologicalSpace V] [BorelSpace V] [TopologicalSpace W] {e : Multiplicative 𝕜 →* circle} {μ : MeasureTheory.Measure V} {L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜} [FirstCountableTopology W] (he : Continuous e) (hL : Continuous fun (p : V × W) => (L p.1) p.2) {f : VE} (hf : MeasureTheory.Integrable f μ) :

      The Fourier integral of an L^1 function is a continuous function.

      theorem VectorFourier.integral_bilin_fourierIntegral_eq_flip {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {E : Type u_4} {F : Type u_5} {G : Type u_6} [NormedAddCommGroup E] [NormedSpace E] [NormedAddCommGroup F] [NormedSpace F] [NormedAddCommGroup G] [NormedSpace G] [TopologicalSpace 𝕜] [TopologicalRing 𝕜] [TopologicalSpace V] [BorelSpace V] [TopologicalSpace W] [MeasurableSpace W] [BorelSpace W] {e : Multiplicative 𝕜 →* circle} {μ : MeasureTheory.Measure V} {L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜} {ν : MeasureTheory.Measure W} [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] [SecondCountableTopology V] [CompleteSpace E] [CompleteSpace F] {f : VE} {g : WF} (M : E →L[] F →L[] G) (he : Continuous e) (hL : Continuous fun (p : V × W) => (L p.1) p.2) (hf : MeasureTheory.Integrable f μ) (hg : MeasureTheory.Integrable g ν) :
      ∫ (ξ : W), (M (VectorFourier.fourierIntegral e μ L f ξ)) (g ξ)ν = ∫ (x : V), (M (f x)) (VectorFourier.fourierIntegral e ν (LinearMap.flip L) g x)μ

      The Fourier transform satisfies ∫ 𝓕 f * g = ∫ f * 𝓕 g, i.e., it is self-adjoint. Version where the multiplication is replaced by a general bilinear form M.

      theorem VectorFourier.integral_fourierIntegral_smul_eq_flip {𝕜 : Type u_1} [CommRing 𝕜] {V : Type u_2} [AddCommGroup V] [Module 𝕜 V] [MeasurableSpace V] {W : Type u_3} [AddCommGroup W] [Module 𝕜 W] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace F] [TopologicalSpace 𝕜] [TopologicalRing 𝕜] [TopologicalSpace V] [BorelSpace V] [TopologicalSpace W] [MeasurableSpace W] [BorelSpace W] {e : Multiplicative 𝕜 →* circle} {μ : MeasureTheory.Measure V} {L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜} {ν : MeasureTheory.Measure W} [MeasureTheory.SigmaFinite μ] [MeasureTheory.SigmaFinite ν] [SecondCountableTopology V] [CompleteSpace F] {f : V} {g : WF} (he : Continuous e) (hL : Continuous fun (p : V × W) => (L p.1) p.2) (hf : MeasureTheory.Integrable f μ) (hg : MeasureTheory.Integrable g ν) :
      ∫ (ξ : W), VectorFourier.fourierIntegral e μ L f ξ g ξν = ∫ (x : V), f x VectorFourier.fourierIntegral e ν (LinearMap.flip L) g xμ

      The Fourier transform satisfies ∫ 𝓕 f * g = ∫ f * 𝓕 g, i.e., it is self-adjoint.

      Fourier theory for functions on 𝕜 #

      def Fourier.fourierIntegral {𝕜 : Type u_1} [CommRing 𝕜] [MeasurableSpace 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure 𝕜) (f : 𝕜E) (w : 𝕜) :
      E

      The Fourier transform integral for f : 𝕜 → E, with respect to the measure μ and additive character e.

      Equations
      Instances For
        theorem Fourier.fourierIntegral_def {𝕜 : Type u_1} [CommRing 𝕜] [MeasurableSpace 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure 𝕜) (f : 𝕜E) (w : 𝕜) :
        Fourier.fourierIntegral e μ f w = ∫ (v : 𝕜), (e (Multiplicative.ofAdd (-(v * w)))) f vμ
        theorem Fourier.fourierIntegral_smul_const {𝕜 : Type u_1} [CommRing 𝕜] [MeasurableSpace 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure 𝕜) (f : 𝕜E) (r : ) :
        theorem Fourier.norm_fourierIntegral_le_integral_norm {𝕜 : Type u_1} [CommRing 𝕜] [MeasurableSpace 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure 𝕜) (f : 𝕜E) (w : 𝕜) :
        Fourier.fourierIntegral e μ f w ∫ (x : 𝕜), f xμ

        The uniform norm of the Fourier transform of f is bounded by the norm of f.

        theorem Fourier.fourierIntegral_comp_add_right {𝕜 : Type u_1} [CommRing 𝕜] [MeasurableSpace 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] [MeasurableAdd 𝕜] (e : Multiplicative 𝕜 →* circle) (μ : MeasureTheory.Measure 𝕜) [MeasureTheory.Measure.IsAddRightInvariant μ] (f : 𝕜E) (v₀ : 𝕜) :
        Fourier.fourierIntegral e μ (f fun (v : 𝕜) => v + v₀) = fun (w : 𝕜) => (e (Multiplicative.ofAdd (v₀ * w))) Fourier.fourierIntegral e μ f w

        The Fourier transform converts right-translation into scalar multiplication by a phase factor.

        The standard additive character of , given by fun x ↦ exp (2 * π * x * I).

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The standard additive character of , given by fun x ↦ exp (2 * π * x * I).

          Equations
          Instances For
            theorem Real.fourierChar_apply (x : ) :
            (Real.fourierChar (Multiplicative.ofAdd x)) = Complex.exp ((2 * Real.pi * x) * Complex.I)

            The Fourier transform of a function on an inner product space, with respect to the standard additive character ω ↦ exp (2 i π ω).

            Equations
            Instances For

              The inverse Fourier transform of a function on an inner product space, defined as the Fourier transform but with opposite sign in the exponential.

              Equations
              Instances For

                The Fourier transform of a function on an inner product space, with respect to the standard additive character ω ↦ exp (2 i π ω).

                Equations
                Instances For

                  The inverse Fourier transform of a function on an inner product space, defined as the Fourier transform but with opposite sign in the exponential.

                  Equations
                  Instances For
                    theorem Real.fourierIntegral_eq {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_3} [NormedAddCommGroup V] [InnerProductSpace V] [MeasurableSpace V] [BorelSpace V] [FiniteDimensional V] (f : VE) (w : V) :
                    Real.fourierIntegral f w = ∫ (v : V), (Real.fourierChar (Multiplicative.ofAdd (-v, w⟫_))) f v
                    theorem Real.fourierIntegral_eq' {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_3} [NormedAddCommGroup V] [InnerProductSpace V] [MeasurableSpace V] [BorelSpace V] [FiniteDimensional V] (f : VE) (w : V) :
                    Real.fourierIntegral f w = ∫ (v : V), Complex.exp ((-2 * Real.pi * v, w⟫_) * Complex.I) f v
                    theorem Real.fourierIntegralInv_eq {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] {V : Type u_3} [NormedAddCommGroup V] [InnerProductSpace V] [MeasurableSpace V] [BorelSpace V] [FiniteDimensional V] (f : VE) (w : V) :
                    Real.fourierIntegralInv f w = ∫ (v : V), (Real.fourierChar (Multiplicative.ofAdd v, w⟫_)) f v
                    theorem Real.fourierIntegral_real_eq {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (f : E) (w : ) :
                    Real.fourierIntegral f w = ∫ (v : ), (Real.fourierChar (Multiplicative.ofAdd (-(v * w)))) f v
                    @[deprecated Real.fourierIntegral_real_eq]
                    theorem Real.fourierIntegral_def {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (f : E) (w : ) :
                    Real.fourierIntegral f w = ∫ (v : ), (Real.fourierChar (Multiplicative.ofAdd (-(v * w)))) f v

                    Alias of Real.fourierIntegral_real_eq.

                    @[deprecated Real.fourierIntegral_real_eq_integral_exp_smul]
                    theorem Real.fourierIntegral_eq_integral_exp_smul {E : Type u_2} [NormedAddCommGroup E] [NormedSpace E] (f : E) (w : ) :
                    Real.fourierIntegral f w = ∫ (v : ), Complex.exp ((-2 * Real.pi * v * w) * Complex.I) f v

                    Alias of Real.fourierIntegral_real_eq_integral_exp_smul.