Sparse Fourier Transform (lecture 2) - EPFLtheory.epfl.ch/kapralov/sfft-minicourse15/lec2.pdfGiven x...

of 98 /98
Sparse Fourier Transform (lecture 2) Michael Kapralov 1 1 IBM Watson EPFL St. Petersburg CS Club November 2015 1 / 72

Embed Size (px)

Transcript of Sparse Fourier Transform (lecture 2) - EPFLtheory.epfl.ch/kapralov/sfft-minicourse15/lec2.pdfGiven x...

  • Sparse Fourier Transform(lecture 2)

    Michael Kapralov1

    1IBM Watson → EPFL

    St. Petersburg CS ClubNovember 2015

    1 / 72

  • Given x ∈Cn, compute the Discrete Fourier Transform of x :

    x̂f =1n

    ∑j∈[n]

    xjω−f ·j ,

    where ω= e2πi/n is the n-th root of unity.

    Goal: find the top k coefficients of x̂ approximately

    In last lecture:

    Ï 1-sparse noiseless case: two-point sampling

    Ï 1-sparse noisy case: O(logn loglogn) time and samples

    Ï reduction from k -sparse to 1-sparse case, via filtering

    2 / 72

  • Given x ∈Cn, compute the Discrete Fourier Transform of x :

    x̂f =1n

    ∑j∈[n]

    xjω−f ·j ,

    where ω= e2πi/n is the n-th root of unity.

    Goal: find the top k coefficients of x̂ approximately

    In last lecture:

    Ï 1-sparse noiseless case: two-point sampling

    Ï 1-sparse noisy case: O(logn loglogn) time and samples

    Ï reduction from k -sparse to 1-sparse case, via filtering

    2 / 72

  • Given x ∈Cn, compute the Discrete Fourier Transform of x :

    x̂f =1n

    ∑j∈[n]

    xjω−f ·j ,

    where ω= e2πi/n is the n-th root of unity.

    Goal: find the top k coefficients of x̂ approximately

    In last lecture:

    Ï 1-sparse noiseless case: two-point sampling

    Ï 1-sparse noisy case: O(logn loglogn) time and samples

    Ï reduction from k -sparse to 1-sparse case, via filtering

    2 / 72

  • Given x ∈Cn, compute the Discrete Fourier Transform of x :

    x̂f =1n

    ∑j∈[n]

    xjω−f ·j ,

    where ω= e2πi/n is the n-th root of unity.

    Goal: find the top k coefficients of x̂ approximately

    In last lecture:

    Ï 1-sparse noiseless case: two-point sampling

    Ï 1-sparse noisy case: O(logn loglogn) time and samples

    Ï reduction from k -sparse to 1-sparse case, via filtering

    2 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.001

    -0.0005

    0

    0.0005

    0.001

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    3 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.001

    -0.0005

    0

    0.0005

    0.001

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    4 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.001

    -0.0005

    0

    0.0005

    0.001

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    4 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    5 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • Partition frequency domain into B ≈ k buckets

    -0.0008

    -0.0006

    -0.0004

    -0.0002

    0

    0.0002

    0.0004

    0.0006

    0.0008

    -1000 -500 0 500 1000

    time

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    For each j = 0, . . . ,B−1 let

    ûjf ={

    x̂f , if f ∈ j-th bucket0 o.w.

    Restricted to a bucket, signal is likely approximately 1-sparse!

    6 / 72

  • We want time domain access to u0: for any a= 0, . . . ,n−1,compute

    u0a =∑

    − n2B ≤f≤ n2Bx̂f ·ωf ·a.

    Let

    Ĝf ={

    1, if f ∈ [− n2B : n2B ]0 o.w.

    Thenu0a = (x̂·+a ∗ Ĝ)(0)

    For any j = 0, . . . ,B−1

    uja = (x̂·+a ∗ Ĝ)(j ·nB)

    7 / 72

  • We want time domain access to u0: for any a= 0, . . . ,n−1,compute

    u0a =∑

    − n2B ≤f≤ n2Bx̂f ·ωf ·a.

    Let

    Ĝf ={

    1, if f ∈ [− n2B : n2B ]0 o.w.

    Thenu0a = (x̂·+a ∗ Ĝ)(0)

    For any j = 0, . . . ,B−1

    uja = (x̂·+a ∗ Ĝ)(j ·nB)

    7 / 72

  • Reducing k -sparse recovery to 1-sparse recovery

    For any j = 0, . . . ,B−1

    uja = (x̂·+a ∗ Ĝ)(j ·nB)

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−2.5

    −2

    −1.5

    −1

    −0.5

    0

    0.5

    1

    1.5

    2

    2.5

    time

    magnitu

    de

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    frequency

    magnitu

    de

    8 / 72

  • Reducing k -sparse recovery to 1-sparse recovery

    For any j = 0, . . . ,B−1

    uja = (x̂·+a ∗ Ĝ)(j ·nB)

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−2.5

    −2

    −1.5

    −1

    −0.5

    0

    0.5

    1

    1.5

    2

    2.5

    time

    magnitu

    de

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    frequency

    magnitu

    de

    9 / 72

  • Reducing k -sparse recovery to 1-sparse recovery

    For any j = 0, . . . ,B−1

    uja = (x̂·+a ∗ Ĝ)(j ·nB)

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−2.5

    −2

    −1.5

    −1

    −0.5

    0

    0.5

    1

    1.5

    2

    2.5

    time

    magnitu

    de

    −1000 −800 −600 −400 −200 0 200 400 600 800 1000−0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    frequency

    magnitu

    de

    10 / 72

  • Need to evaluate(x̂·+a ∗ Ĝ)

    (j · n

    B

    )for j = 0, . . . ,B−1.

    We have access to x , not x̂ ...

    By the convolution identity

    x̂·+a ∗ Ĝ = á(x·+a ·G)Suffices to compute

    àx·+a ·Gj · nB , j = 0, . . . ,B−1

    11 / 72

  • Need to evaluate(x̂·+a ∗ Ĝ)

    (j · n

    B

    )for j = 0, . . . ,B−1.

    We have access to x , not x̂ ...

    By the convolution identity

    x̂·+a ∗ Ĝ = á(x·+a ·G)

    Suffices to compute

    àx·+a ·Gj · nB , j = 0, . . . ,B−1

    11 / 72

  • Need to evaluate(x̂·+a ∗ Ĝ)

    (j · n

    B

    )for j = 0, . . . ,B−1.

    We have access to x , not x̂ ...

    By the convolution identity

    x̂·+a ∗ Ĝ = á(x·+a ·G)Suffices to compute

    àx·+a ·Gj · nB , j = 0, . . . ,B−1

    11 / 72

  • Suffices to compute

    àx·+a ·Gj · nB , j = 0, . . . ,B−1

    Sample complexity? Runtime?

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Computing x ·G takes Ω(N) time and samples!

    11 / 72

  • Suffices to compute

    x ·Gj · nB , j = 0, . . . ,B−1

    Sample complexity? Runtime?

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Computing x ·G takes Ω(N) time and samples!

    11 / 72

  • Suffices to compute

    x ·Gj · nB , j = 0, . . . ,B−1Sample complexity? Runtime?

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Computing x ·G takes Ω(N) time and samples!

    11 / 72

  • Suffices to compute

    x ·Gj · nB , j = 0, . . . ,B−1Sample complexity? Runtime?

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Computing x ·G takes Ω(N) time and samples!

    11 / 72

  • To sample all signals uj , j = 0, . . . ,B−1 in time domain, it sufficesto compute x ·Gj · nB , j = 0, . . . ,B−1

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Computing x ·G takes supp(G) samples.

    Design G with supp(G)≈ k that approximates rectangular filter?

    11 / 72

  • In this lecture:

    Ï permuting frequencies

    Ï filter construction

    12 / 72

  • 1. Pseudorandom spectrum permutations

    2. Filter construction

    13 / 72

  • 1. Pseudorandom spectrum permutations

    2. Filter construction

    14 / 72

  • Pseudorandom spectrum permutationsPermutation in time domain plus phase shift =⇒ permutation infrequency domain

    ClaimLet σ,b ∈ [n], σ invertible modulo n. Let yj = xσjω−jb. Then

    ŷf = x̂σ−1(f+b).

    (proof on next slide; a close relative of time shift theorem)

    Pseudorandom permutation:

    Ï select b uniformly at random from [n]

    Ï select σ uniformly at random from {1,3,5, . . . ,n−1}(invertible numbers modulo n)

    15 / 72

  • Pseudorandom spectrum permutationsPermutation in time domain plus phase shift =⇒ permutation infrequency domain

    ClaimLet σ,b ∈ [n], σ invertible modulo n. Let yj = xσjω−jb. Then

    ŷf = x̂σ−1(f+b).

    (proof on next slide; a close relative of time shift theorem)

    Pseudorandom permutation:

    Ï select b uniformly at random from [n]

    Ï select σ uniformly at random from {1,3,5, . . . ,n−1}(invertible numbers modulo n)

    15 / 72

  • Pseudorandom spectrum permutationsPermutation in time domain plus phase shift =⇒ permutation infrequency domain

    ClaimLet σ,b ∈ [n], σ invertible modulo n. Let yj = xσjω−jb. Then

    ŷf = x̂σ−1(f+b).

    (proof on next slide; a close relative of time shift theorem)

    Pseudorandom permutation:

    Ï select b uniformly at random from [n]

    Ï select σ uniformly at random from {1,3,5, . . . ,n−1}(invertible numbers modulo n)

    15 / 72

  • Pseudorandom spectrum permutationsClaimLet yj = xσjω−jb. Then ŷf = x̂σ−1(f+b).Proof.

    ŷf =1n

    ∑j∈[n]

    yjω−f ·j

    = 1n

    ∑j∈[n]

    xσjω−(f+b)·j

    = 1n

    ∑i∈[n]

    xiω−(f+b)·σ−1i (change of variables i =σj)

    = 1n

    ∑i∈[n]

    xiω−σ−1(f+b)·i

    = x̂σ−1(f+b)

    16 / 72

  • -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Design G with supp(G)≈ k that approximates rectangular filter?

    Our filter Ĝ will approximate the boxcar. Bound collisionprobability now.

    16 / 72

  • Partition frequency domain into buckets, permute spectrum

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    Frequency i collides with frequency j only if |σi −σj | ≤ nB .

    17 / 72

  • Partition frequency domain into buckets, permute spectrum

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    Frequency i collides with frequency j only if |σi −σj | ≤ nB .

    18 / 72

  • Partition frequency domain into buckets, permute spectrum

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    Frequency i collides with frequency j only if |σi −σj | ≤ nB .

    19 / 72

  • Partition frequency domain into buckets, permute spectrum

    -0.5

    0

    0.5

    1

    -1000 -500 0 500 1000

    frequency

    collision

    Frequency i collides with frequency j only if |σi −σj | ≤ nB .

    20 / 72

  • Collision probabilityLemmaLet σ be a uniformly random odd number in 1,2, . . . ,n. Then forany i , j ∈ [n], i 6= j one has

    Prσ[|σ · i −σj | ≤ n

    B

    ]=O(1/B)

    Proof.Let ∆ := i − j = d2s for some odd d .The orbit of σ ·∆ is 2s ·d ′ for all odd d ′.

    [ ]σi − nB σi σi + nB

    There are O( n

    B2s)

    values of d ′ that make σ ·∆ fall into [− nB , nB ],out of n/2s+1.

    21 / 72

  • Collision probabilityLemmaLet σ be a uniformly random odd number in 1,2, . . . ,n. Then forany i , j ∈ [n], i 6= j one has

    Prσ[|σ · i −σj | ≤ n

    B

    ]=O(1/B)

    Proof.Let ∆ := i − j = d2s for some odd d .The orbit of σ ·∆ is 2s ·d ′ for all odd d ′.

    [ ]σi − nB σi σi + nB

    There are O( n

    B2s)

    values of d ′ that make σ ·∆ fall into [− nB , nB ],out of n/2s+1.

    21 / 72

  • Collision probabilityLemmaLet σ be a uniformly random odd number in 1,2, . . . ,n. Then forany i , j ∈ [n], i 6= j one has

    Prσ[|σ · i −σj | ≤ n

    B

    ]=O(1/B)

    Proof.Let ∆ := i − j = d2s for some odd d .The orbit of σ ·∆ is 2s ·d ′ for all odd d ′.

    [ ]σi − nB σi σi + nB

    There are O( n

    B2s)

    values of d ′ that make σ ·∆ fall into [− nB , nB ],out of n/2s+1.

    21 / 72

  • Collision probabilityLemmaLet σ be a uniformly random odd number in 1,2, . . . ,n. Then forany i , j ∈ [n], i 6= j one has

    Prσ[|σ · i −σj | ≤ n

    B

    ]=O(1/B)

    Proof.Let ∆ := i − j = d2s for some odd d .The orbit of σ ·∆ is 2s ·d ′ for all odd d ′.

    [ ]σi − nB σi σi + nB

    There are O( n

    B2s)

    values of d ′ that make σ ·∆ fall into [− nB , nB ],out of n/2s+1.

    21 / 72

  • Collision probabilityLemmaLet σ be a uniformly random odd number in 1,2, . . . ,n. Then forany i , j ∈ [n], i 6= j one has

    Prσ[|σ · i −σj | ≤ n

    B

    ]=O(1/B)

    Proof.Let ∆ := i − j = d2s for some odd d .The orbit of σ ·∆ is 2s ·d ′ for all odd d ′.

    [ ]σi − nB σi σi + nB

    There are O( n

    B2s)

    values of d ′ that make σ ·∆ fall into [− nB , nB ],out of n/2s+1.

    21 / 72

  • 1. Pseudorandom spectrum permutations

    2. Filter construction

    22 / 72

  • Rectangular buckets Ĝ have full support in time domain...

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    time

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    frequency

    Approximate rectangular filter with a filter G with small support?

    Need supp(G)≈ k , so perhaps turn the filter around?

    23 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    Have supp(G)=B ≈ k , but buckets leak

    24 / 72

  • =⇒

    In what follows: reduce leakage at the expense of increasingsupp(G)

    25 / 72

  • Window functionsDefinitionA symmetric filter G is a (B,δ)-standard window function if

    1. Ĝ0 = 12. Ĝf ≥ 03. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    26 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Start with the sinc function:

    Ĝf :=sin(π(B+1)f/n)(B+1) ·πf/n

    For all |f | > n2B we have

    |Ĝf | ≤1

    (B+1)πf/n ≤1π/2

    ≤ 2/π≤ 0.9

    27 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Start with the sinc function:

    Ĝf :=sin(π(B+1)f/n)(B+1) ·πf/n

    For all |f | > n2B we have

    |Ĝf | ≤1

    (B+1)πf/n ≤1π/2

    ≤ 2/π≤ 0.927 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Consider powers of the sinc function:

    Ĝrf :=(sin(π(B+1)f/n)(B+1) ·πf/n

    )rFor all |f | > n2B we have

    |Ĝf |r ≤ (0.9)r28 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Consider powers of the sinc function:

    Ĝrf :=(sin(π(B+1)f/n)(B+1) ·πf/n

    )rFor all |f | > n2B we have

    |Ĝf |r ≤ (0.9)r29 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Consider powers of the sinc function: ĜrfFor all |f | > n2B we have

    |Ĝf |r ≤ (0.9)r

    So setting r =O(log(1/δ)) is sufficient!

    30 / 72

  • Window functions

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    Consider powers of the sinc function: ĜrfFor all |f | > n2B we have

    |Ĝf |r ≤ (0.9)r

    So setting r =O(log(1/δ)) is sufficient!31 / 72

  • Window functionsDefinitionA symmetric filter G is a (B,δ)-standard window function if

    1. Ĝ0 = 12. Ĝf ≥ 03. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    32 / 72

  • Window functionsDefinitionA symmetric filter G is a (B,δ)-standard window function if

    1. Ĝ0 = 12. Ĝf ≥ 03. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    How large is supp(G)⊆ [−T ,T ]? 33 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?

    By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], so

    supp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    33 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], so

    supp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    32 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], so

    supp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], sosupp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], sosupp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], sosupp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], sosupp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], sosupp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]

    31 / 72

  • Let

    Gj :={

    1/(B+1) if j ∈ [−B/2,B/2]0 o.w.

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    -1000 -500 0 500 1000

    time

    Let Ĝr := (Ĝ0)r . How large is the support of Gr ?By the convolution identity Gr =G0 ∗G0 ∗ . . .∗G0

    Support of G0 is in [−B/2,B/2], so

    supp(G∗ . . .∗G)⊆ [−r ·B/2,r ·B/2]31 / 72

  • Flat window functionDefinitionA symmetric filter G is a (B,δ,γ)-flat window function if

    1. Ĝj ≥ 1−δ for all j ∈[−(1−γ) n2B ,(1−γ) n2B ]

    2. Ĝj ∈ [0,1] for all j3. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    32 / 72

  • Flat window functionDefinitionA symmetric filter G is a (B,δ,γ)-flat window function if

    1. Ĝj ≥ 1−δ for all j ∈[−(1−γ) n2B ,(1−γ) n2B ]

    2. Ĝj ∈ [0,1] for all j3. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    33 / 72

  • Flat window functionDefinitionA symmetric filter G is a (B,δ,γ)-flat window function if

    1. Ĝj ≥ 1−δ for all j ∈[−(1−γ) n2B ,(1−γ) n2B ]

    2. Ĝj ∈ [0,1] for all j3. |Ĝf | ≤ δ for f 6∈

    [− n2B , n2B ]

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    0.99 fraction of bucket

    34 / 72

  • Flat window function – construction

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    Let H be a (2B/γ,δ/n)-standard window function. Note that

    |Ĥf | ≤ δ/nfor all f outside of [

    −γ n4B

    ,γn

    4B

    ].

    35 / 72

  • Flat window function – construction

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    1−γ/2 fraction of bucket

    Let H be a (2B/γ,δ/n)-standard window function. Note that

    |Ĥf | ≤ δ/nfor all f outside of [

    −γ n4B

    ,γn

    4B

    ].

    36 / 72

  • Flat window function – construction

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    Let H be a (2B/γ,δ/n)-standard window function. Note that

    |Ĥf | ≤ δ/nfor all f outside of [

    −γ n4B

    ,γn

    4B

    ].

    37 / 72

  • Flat window function – construction

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    Let H be a (2B/γ,δ/n)-standard window function. Note that

    |Ĥf | ≤ δ/nfor all f outside of [

    −γ n4B

    ,γn

    4B

    ].

    38 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    39 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    39 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    39 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    39 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    40 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    40 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • Flat window function – constructionTo construct Ĝ:

    1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], whereU = (1−γ/2) n

    2B2. normalize so that Ĝ0 = 1±δ

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    41 / 72

  • To construct Ĝ:1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], where

    U = (1−γ/2) n2B

    2. normalize so that Ĝ0 = 1±δ

    Formally:

    Ĝf :=1Z

    (Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U

    )where Z is a normalization factor.

    Upon inspection, Z =∑f∈[n] Ĥf works.

    42 / 72

  • To construct Ĝ:1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], where

    U = (1−γ/2) n2B

    2. normalize so that Ĝ0 = 1±δ

    Formally:

    Ĝf :=1Z

    (Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U

    )where Z is a normalization factor.

    Upon inspection, Z =∑f∈[n] Ĥf works.

    42 / 72

  • To construct Ĝ:1. sum up shifts Ĥ ·−∆ over all ∆ ∈ [−U ,U], where

    U = (1−γ/2) n2B

    2. normalize so that Ĝ0 = 1±δ

    Formally:

    Ĝf :=1Z

    (Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U

    )where Z is a normalization factor.

    Upon inspection, Z =∑f∈[n] Ĥf works.

    43 / 72

  • Formally:

    Ĝf :=1Z

    (Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U

    )where Z is a normalization factor.

    Upon inspection, Z =∑f∈[n] Ĥf works.(Flat region) For any f ∈ [−(1−γ) n2B ,(1−γ) n2B ] (flat region) onehas

    Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U ≥∑

    f∈[−γ n4B ,γ n4B ]Ĥf

    ≥Z − tail of Ĥ≥Z − (δ/n)n ≥Z −δ

    44 / 72

  • Formally:

    Ĝf :=1Z

    (Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U

    )where Z is a normalization factor.

    Upon inspection, Z =∑f∈[n] Ĥf works.Indeed, for any f 6∈ [− n2B , n2B ] (zero region) one has

    Ĥ f−U + Ĥ f+1−U + . . .+ Ĥ f+U ≤∑

    f>γ n4BĤf

    ≤ tail of Ĥ ≤ (δ/n)n ≤ δ

    45 / 72

  • Flat window function

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    How large is support of Ĝ := 1Z(Ĥ ·−U + . . .+ Ĥ ·+U

    )?

    By time shift theorem for every q ∈ [n]

    Gq :=Hq · 1ZU∑

    j=−Uωqj

    Support of G a subset of support of H!

    46 / 72

  • Flat window function

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    How large is support of Ĝ := 1Z(Ĥ ·−U + . . .+ Ĥ ·+U

    )?

    By time shift theorem for every q ∈ [n]

    Gq :=Hq · 1ZU∑

    j=−Uωqj

    Support of G a subset of support of H!

    46 / 72

  • Flat window function

    − n2B 0 n2B

    ideal bucket

    leakage to other buckets

    bounded by δ¿ 1

    1−γ fraction of bucket

    How large is support of Ĝ := 1Z(Ĥ ·−U + . . .+ Ĥ ·+U

    )?

    By time shift theorem for every q ∈ [n]

    Gq :=Hq · 1ZU∑

    j=−Uωqj

    Support of G a subset of support of H!46 / 72

  • Flat window functions – construction

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    *

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    =

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    -1000 -500 0 500 1000

    frequency

    47 / 72