Discrete Fourier transform #
This file defines the discrete Fourier transform and shows the Parseval-Plancherel identity and Fourier inversion formula for it.
theorem
Complex.le_of_eq_sum_of_eq_sum_norm
{ι : Type u_1}
{a : ℝ}
{b : ℝ}
(f : ι → ℂ)
(s : Finset ι)
(ha₀ : 0 ≤ a)
(ha : ↑a = Finset.sum s fun (i : ι) => f i)
(hb : ↑b = Finset.sum s fun (i : ι) => ↑‖f i‖)
:
a ≤ b
@[simp]
theorem
dft_smul
{α : Type u_1}
{γ : Type u_2}
[AddCommGroup α]
[Fintype α]
[DistribSMul γ ℂ]
[Star γ]
[StarModule γ ℂ]
[SMulCommClass γ ℂ ℂ]
(c : γ)
(f : α → ℂ)
:
Fourier inversion for the discrete Fourier transform.
theorem
dft_inversion'
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
(f : α → ℂ)
(a : α)
:
(Finset.sum Finset.univ fun (ψ : AddChar α ℂ) => dft f ψ * ψ a) = ↑(Fintype.card α) * f a
Fourier inversion for the discrete Fourier transform.
theorem
dft_dft
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
(f : α → ℂ)
:
dft (dft f) = ↑(Fintype.card α) * f ∘ ⇑(AddEquiv.symm AddChar.doubleDualEquiv) ∘ Neg.neg
theorem
dft_inv
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
{f : α → ℂ}
(ψ : AddChar α ℂ)
(hf : IsSelfAdjoint f)
:
theorem
dft_conjneg_apply
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
(f : α → ℂ)
(ψ : AddChar α ℂ)
:
@[simp]
@[simp]
theorem
dft_balance
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
{ψ : AddChar α ℂ}
(f : α → ℂ)
(hψ : ψ ≠ 0)
:
dft (Finset.balance f) ψ = dft f ψ
theorem
dft_dilate
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
{n : ℕ}
(f : α → ℂ)
(ψ : AddChar α ℂ)
(hn : Nat.Coprime (Fintype.card α) n)
:
@[simp]
@[simp]
@[simp]
theorem
dft_indicate_zero
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
[DecidableEq α]
(A : Finset α)
:
theorem
dft_dconv_apply
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
[DecidableEq α]
(f : α → ℂ)
(g : α → ℂ)
(ψ : AddChar α ℂ)
:
@[simp]
theorem
dft_iterConv
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
[DecidableEq α]
(f : α → ℂ)
(n : ℕ)
:
@[simp]
theorem
dft_iterConv_apply
{α : Type u_1}
[AddCommGroup α]
[Fintype α]
[DecidableEq α]
(f : α → ℂ)
(n : ℕ)
(ψ : AddChar α ℂ)
: