Documentation

LeanAPAP.Prereqs.FourierTransform.Discrete

Discrete Fourier transform #

This file defines the discrete Fourier transform and shows the Parseval-Plancherel identity and Fourier inversion formula for it.

noncomputable def dft {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
AddChar α

The discrete Fourier transform.

Equations
Instances For
    theorem dft_apply {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    dft f ψ = RCLike.wInner 1 (⇑ψ) f
    @[simp]
    theorem dft_zero {α : Type u_1} [AddCommGroup α] [Fintype α] :
    dft 0 = 0
    @[simp]
    theorem dft_add {α : Type u_1} [AddCommGroup α] [Fintype α] (f g : α) :
    dft (f + g) = dft f + dft g
    @[simp]
    theorem dft_neg {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    dft (-f) = -dft f
    @[simp]
    theorem dft_sub {α : Type u_1} [AddCommGroup α] [Fintype α] (f g : α) :
    dft (f - g) = dft f - dft g
    @[simp]
    theorem dft_const {α : Type u_1} [AddCommGroup α] [Fintype α] {ψ : AddChar α } (a : ) ( : ψ 0) :
    dft (Function.const α a) ψ = 0
    @[simp]
    theorem dft_smul {α : Type u_1} [AddCommGroup α] [Fintype α] {𝕝 : Type u_3} [CommSemiring 𝕝] [StarRing 𝕝] [Algebra 𝕝 ] [StarModule 𝕝 ] [IsScalarTower 𝕝 ] (c : 𝕝) (f : α) :
    dft (c f) = c dft f
    @[simp]
    theorem wInner_cWeight_dft {α : Type u_1} [AddCommGroup α] [Fintype α] (f g : α) :

    Parseval-Plancherel identity for the discrete Fourier transform.

    @[simp]
    theorem cL2Norm_dft {α : Type u_1} [AddCommGroup α] [Fintype α] [MeasurableSpace α] [DiscreteMeasurableSpace α] (f : α) :

    Parseval-Plancherel identity for the discrete Fourier transform.

    theorem dft_inversion {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (a : α) :
    (Finset.univ.expect fun (ψ : AddChar α ) => dft f ψ * ψ a) = f a

    Fourier inversion for the discrete Fourier transform.

    theorem dft_inversion' {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    (Finset.univ.expect fun (ψ : AddChar α ) => dft f ψ ψ) = f

    Fourier inversion for the discrete Fourier transform.

    theorem dft_dft_doubleDualEmb {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (a : α) :
    theorem dft_dft {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    theorem dft_inv {α : Type u_1} [AddCommGroup α] [Fintype α] {f : α} (ψ : AddChar α ) (hf : IsSelfAdjoint f) :
    dft f ψ⁻¹ = (starRingEnd ) (dft f ψ)
    @[simp]
    theorem dft_conj {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    dft ((starRingEnd (α)) f) ψ = (starRingEnd ) (dft f ψ⁻¹)
    theorem dft_conjneg_apply {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    dft (conjneg f) ψ = (starRingEnd ) (dft f ψ)
    @[simp]
    theorem dft_conjneg {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    dft (conjneg f) = (starRingEnd (AddChar α )) (dft f)
    theorem dft_comp_neg_apply {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    dft (fun (x : α) => f (-x)) ψ = dft f (-ψ)
    @[simp]
    theorem dft_balance {α : Type u_1} [AddCommGroup α] [Fintype α] {ψ : AddChar α } (f : α) ( : ψ 0) :
    dft (Fintype.balance f) ψ = dft f ψ
    @[simp]
    theorem dft_trivChar {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] :
    @[simp]
    theorem dft_one {α : Type u_1} [AddCommGroup α] [Fintype α] :
    @[simp]
    theorem dft_indicate_zero {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (A : Finset α) :
    dft (𝟭 A) 0 = A.card
    theorem dft_conv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f g : α) (ψ : AddChar α ) :
    dft (f g) ψ = dft f ψ * dft g ψ
    theorem dft_dconv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f g : α) (ψ : AddChar α ) :
    dft (f g) ψ = dft f ψ * (starRingEnd ) (dft g ψ)
    @[simp]
    theorem dft_conv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f g : α) :
    dft (f g) = dft f * dft g
    @[simp]
    theorem dft_dconv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f g : α) :
    dft (f g) = dft f * (starRingEnd (AddChar α )) (dft g)
    @[simp]
    theorem dft_iterConv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (n : ) :
    dft (f ∗^ n) = dft f ^ n
    @[simp]
    theorem dft_iterConv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (n : ) (ψ : AddChar α ) :
    dft (f ∗^ n) ψ = dft f ψ ^ n