Documentation

LeanAPAP.Prereqs.Discrete.DFT.Compact

Discrete Fourier transform in the compact normalisation #

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

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

The discrete Fourier transform.

Equations
Instances For
    theorem cft_apply {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    cft f ψ = nl2Inner (ψ) f
    @[simp]
    theorem cft_zero {α : Type u_1} [AddCommGroup α] [Fintype α] :
    cft 0 = 0
    @[simp]
    theorem cft_add {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (g : α) :
    cft (f + g) = cft f + cft g
    @[simp]
    theorem cft_neg {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    cft (-f) = -cft f
    @[simp]
    theorem cft_sub {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (g : α) :
    cft (f - g) = cft f - cft g
    @[simp]
    theorem cft_const {α : Type u_1} [AddCommGroup α] [Fintype α] {ψ : AddChar α } (a : ) (hψ : ψ 0) :
    cft (Function.const α a) ψ = 0
    @[simp]
    theorem cft_smul {α : Type u_1} {γ : Type u_2} [AddCommGroup α] [Fintype α] [DistribSMul γ ] [Star γ] [StarModule γ ] [IsScalarTower γ ] [SMulCommClass γ ] (c : γ) (f : α) :
    cft (c f) = c cft f
    @[simp]
    theorem l2Inner_cft {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (g : α) :
    l2Inner (cft f) (cft g) = nl2Inner f g

    Parseval-Plancherel identity for the discrete Fourier transform.

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

    Parseval-Plancherel identity for the discrete Fourier transform.

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

    Fourier inversion for the discrete Fourier transform.

    theorem dft_cft_doubleDualEmb {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (a : α) :
    dft (cft f) (AddChar.doubleDualEmb a) = f (-a)
    theorem cft_dft_doubleDualEmb {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (a : α) :
    cft (dft f) (AddChar.doubleDualEmb a) = f (-a)
    theorem dft_cft {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    dft (cft f) = f (AddEquiv.symm AddChar.doubleDualEquiv) Neg.neg
    theorem cft_dft {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    cft (dft f) = f (AddEquiv.symm AddChar.doubleDualEquiv) Neg.neg
    theorem cft_inv {α : Type u_1} [AddCommGroup α] [Fintype α] {f : α} (ψ : AddChar α ) (hf : IsSelfAdjoint f) :
    cft f ψ⁻¹ = (starRingEnd ) (cft f ψ)
    @[simp]
    theorem cft_conj {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    cft ((starRingEnd (α)) f) ψ = (starRingEnd ) (cft f ψ⁻¹)
    theorem cft_conjneg_apply {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) (ψ : AddChar α ) :
    cft (conjneg f) ψ = (starRingEnd ) (cft f ψ)
    @[simp]
    theorem cft_conjneg {α : Type u_1} [AddCommGroup α] [Fintype α] (f : α) :
    cft (conjneg f) = (starRingEnd (AddChar α )) (cft f)
    @[simp]
    theorem cft_balance {α : Type u_1} [AddCommGroup α] [Fintype α] {ψ : AddChar α } (f : α) (hψ : ψ 0) :
    cft (Finset.balance f) ψ = cft f ψ
    theorem cft_dilate {α : Type u_1} [AddCommGroup α] [Fintype α] {n : } (f : α) (ψ : AddChar α ) (hn : Nat.Coprime (Fintype.card α) n) :
    cft (dilate f n) ψ = cft f (ψ ^ n)
    @[simp]
    theorem cft_trivNChar {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] :
    cft trivNChar = 1
    @[simp]
    theorem cft_one {α : Type u_1} [AddCommGroup α] [Fintype α] :
    cft 1 = trivChar
    @[simp]
    theorem cft_indicate_zero {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (s : Finset α) :
    cft (𝟭 s) 0 = s.dens
    theorem cft_nconv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (g : α) (ψ : AddChar α ) :
    cft (f ∗ₙ g) ψ = cft f ψ * cft g ψ
    theorem cft_ndconv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (g : α) (ψ : AddChar α ) :
    cft (f ○ₙ g) ψ = cft f ψ * (starRingEnd ) (cft g ψ)
    @[simp]
    theorem cft_nconv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (g : α) :
    cft (f ∗ₙ g) = cft f * cft g
    @[simp]
    theorem cft_ndconv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (g : α) :
    cft (f ○ₙ g) = cft f * (starRingEnd (AddChar α )) (cft g)
    @[simp]
    theorem cft_iterNConv {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (n : ) :
    cft (f ∗^ₙ n) = cft f ^ n
    @[simp]
    theorem cft_iterNConv_apply {α : Type u_1} [AddCommGroup α] [Fintype α] [DecidableEq α] (f : α) (n : ) (ψ : AddChar α ) :
    cft (f ∗^ₙ n) ψ = cft f ψ ^ n
    theorem nlpNorm_nconv_le_nlpNorm_ndconv {α : Type u_1} [AddCommGroup α] [Fintype α] {n : } [DecidableEq α] (hn₀ : n 0) (hn : Even n) (f : α) :
    theorem nlpNorm_nconv_le_nlpNorm_ndconv' {α : Type u_1} [AddCommGroup α] [Fintype α] {n : } [DecidableEq α] (hn₀ : n 0) (hn : Even n) (f : α) :