tutorial on sparse fourier transforms -

164
Tutorial on Sparse Fourier Transforms Eric Price UT Austin Eric Price Tutorial on Sparse Fourier Transforms 1 / 27

Upload: others

Post on 11-Sep-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial on Sparse Fourier Transforms -

Tutorial on Sparse Fourier Transforms

Eric Price

UT Austin

Eric Price Tutorial on Sparse Fourier Transforms 1 / 27

Page 2: Tutorial on Sparse Fourier Transforms -

The Fourier TransformConversion between time and frequency domains

Time Domain Frequency Domain

Fourier Transform

Displacement of Air Concert A

Eric Price Tutorial on Sparse Fourier Transforms 2 / 27

Page 3: Tutorial on Sparse Fourier Transforms -

The Fourier Transform is Ubiquitous

Audio Video Medical Imaging

Radar GPS Oil Exploration

Eric Price Tutorial on Sparse Fourier Transforms 3 / 27

Page 4: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?

Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 5: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).

Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 6: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 7: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 8: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]

Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 9: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 10: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do much better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 11: Tutorial on Sparse Fourier Transforms -

Computing the Discrete Fourier Transform

How to compute x = Fx?Naive multiplication: O(n2).Fast Fourier Transform: O(n log n) time. [Cooley-Tukey, 1965]

[T]he method greatly reduces the tediousness of mechanicalcalculations.

– Carl Friedrich Gauss, 1805

By hand: 22n log n seconds. [Danielson-Lanczos, 1942]Can we do much better?

When can we compute the FourierTransform in sublinear time?

Eric Price Tutorial on Sparse Fourier Transforms 4 / 27

Page 12: Tutorial on Sparse Fourier Transforms -

Idea: Leverage SparsityOften the Fourier transform is dominated by a small number of peaks:

Time Signal Frequency(Exactly sparse)

Frequency(Approximately sparse)

Sparsity is common:

Audio Video MedicalImaging

Radar GPS Oil Exploration

Goal of this workshop: sparse Fourier transformsFaster Fourier Transform on sparse data.

Eric Price Tutorial on Sparse Fourier Transforms 5 / 27

Page 13: Tutorial on Sparse Fourier Transforms -

Idea: Leverage SparsityOften the Fourier transform is dominated by a small number of peaks:

Time Signal Frequency(Exactly sparse)

Frequency(Approximately sparse)

Sparsity is common:

Audio Video MedicalImaging

Radar GPS Oil Exploration

Goal of this workshop: sparse Fourier transformsFaster Fourier Transform on sparse data.

Eric Price Tutorial on Sparse Fourier Transforms 5 / 27

Page 14: Tutorial on Sparse Fourier Transforms -

Idea: Leverage SparsityOften the Fourier transform is dominated by a small number of peaks:

Time Signal Frequency(Exactly sparse)

Frequency(Approximately sparse)

Sparsity is common:

Audio Video MedicalImaging

Radar GPS Oil Exploration

Goal of this workshop: sparse Fourier transformsFaster Fourier Transform on sparse data.

Eric Price Tutorial on Sparse Fourier Transforms 5 / 27

Page 15: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithm

I Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probability

I Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 16: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficient

I Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probability

I Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 17: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon coding

I Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probability

I Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 18: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probability

I Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 19: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probability

I Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 20: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probabilityI Compressed sensing, using Restricted Isometry Property

I O(k log4 n) samples, O(n logc n) time.Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 21: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probabilityI Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 22: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probabilityI Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.

I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 23: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probabilityI Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.I Using hashing

I O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 24: Tutorial on Sparse Fourier Transforms -

Classes of sparse Fourier transform algorithmsFor recovering a k -sparse signal in n dimensions.

Exact sparsity, deterministic algorithmI Vandermonde matrix: 2k samples sufficientI Syndrome decoding for Reed-Solomon codingI Berlekamp-Massey: O(k2 + k(log log n)c) time.

Approximate sparsity, 2−k failure probabilityI Compressed sensing, using Restricted Isometry PropertyI O(k log4 n) samples, O(n logc n) time.

Today: Approximate sparsity, 1/4 or 1/nc probability.I Using hashingI O(k logc n) samples, O(k logc n) time.

Eric Price Tutorial on Sparse Fourier Transforms 6 / 27

Page 25: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 26: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 27: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 28: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 29: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 30: Tutorial on Sparse Fourier Transforms -

Kinds of Fourier transform

1d Fourier transform: x ∈ Cn, ω = e2πi/n, want

xi =

n∑j=1

ωijxj

2d Fourier Transform: x ∈ Cn1×n2 , ωi = e2πi/ni , want

xi1,i2 =

n1∑j1=1

n2∑j2=1

ωi1j11 ω

i2j22 xj1,j2

I If n1,n2 are relatively prime, equivalent to 1d transform of Cn1n2

Hadamard transform: x ∈ C2×2×···×2:

xi =

n∑j

(−1)〈i,j〉xj

Eric Price Tutorial on Sparse Fourier Transforms 7 / 27

Page 31: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)

I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 32: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 33: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 34: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)

2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 35: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 36: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 37: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 38: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” parts

I Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 39: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 40: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 41: Tutorial on Sparse Fourier Transforms -

Generic Algorithm Outline

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Goal: given access to x , compute x ≈ xI Exact case: x is k -sparse, x = x (maybe to log n bits of precision)I Approximate case:

‖x − x‖2 6 (1 + ε) mink -sparse xk

‖x − xk‖2

I With “good” probability.

1 Algorithm for k = 1 (exact or approximate)2 Method to reduce to k = 1 case

I Split x into O(k) “random” partsI Can sample time domain of the parts.

F O(k log k) time to get one sample from each of the k parts.

3 Finds “most” of signal; repeat on residual

Eric Price Tutorial on Sparse Fourier Transforms 8 / 27

Page 42: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 9 / 27

Page 43: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 9 / 27

Page 44: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 9 / 27

Page 45: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 10 / 27

Page 46: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t . �

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 47: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t .

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 48: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a

x1 = aωt

x1/x0 = ωt =⇒ t .

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 49: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t .

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 50: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t .

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 51: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t . �

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 52: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, exact case

x :

t

aLemmaWe can compute a 1-sparse x in O(1) time.

xi =

{a if i = t0 otherwise

Then x = (a,aωt ,aω2t ,aω3t , . . . ,aω(n−1)t).

x0 = a x1 = aωt

x1/x0 = ωt =⇒ t . �

(Related to OFDM, Prony’s method, matrix pencil.)

Eric Price Tutorial on Sparse Fourier Transforms 11 / 27

Page 53: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 54: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

x1/x0 = ωt

With exact sparsity: log n bits in a single measurement.

With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 55: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

x1/x0 = ωt + noise

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.

Choose Θ(log n) time shifts c to recover i .Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 56: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

x1/x0 = ωt + noise

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .

Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 57: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

xc2/x0 = ωc2t + noise

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .

Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 58: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

xc3/x0 = ωc3t + noise

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .

Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 59: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: one dimension, approximate caseLemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

xc3/x0 = ωc3t + noise

With exact sparsity: log n bits in a single measurement.With noise: only constant number of useful bits.Choose Θ(log n) time shifts c to recover i .Error correcting code with efficient recovery =⇒ lemma. �

Eric Price Tutorial on Sparse Fourier Transforms 12 / 27

Page 60: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: Hadamard settingLevin ’93, improving upon Goldreich-Levin ’89

xi =∑

j

(−1)〈i,j〉xj

LemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

We have sign(xr ) = sign((−1)〈r ,t〉xt) with 9/10 probability over r .Therefore for any i , with 8/10 probability over r ,

sign(xi+r

xr) = sign((−1)〈i,t〉)

Choose i to be the O(log n) rows of generator matrix for constantrate and distance binary code.

Eric Price Tutorial on Sparse Fourier Transforms 13 / 27

Page 61: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: Hadamard settingLevin ’93, improving upon Goldreich-Levin ’89

xi =∑

j

(−1)〈i,j〉xj

LemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

We have sign(xr ) = sign((−1)〈r ,t〉xt) with 9/10 probability over r .Therefore for any i , with 8/10 probability over r ,

sign(xi+r

xr) = sign((−1)〈i,t〉)

Choose i to be the O(log n) rows of generator matrix for constantrate and distance binary code.

Eric Price Tutorial on Sparse Fourier Transforms 13 / 27

Page 62: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: Hadamard settingLevin ’93, improving upon Goldreich-Levin ’89

xi =∑

j

(−1)〈i,j〉xj

LemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

We have sign(xr ) = sign((−1)〈r ,t〉xt) with 9/10 probability over r .

Therefore for any i , with 8/10 probability over r ,

sign(xi+r

xr) = sign((−1)〈i,t〉)

Choose i to be the O(log n) rows of generator matrix for constantrate and distance binary code.

Eric Price Tutorial on Sparse Fourier Transforms 13 / 27

Page 63: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: Hadamard settingLevin ’93, improving upon Goldreich-Levin ’89

xi =∑

j

(−1)〈i,j〉xj

LemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

We have sign(xr ) = sign((−1)〈r ,t〉xt) with 9/10 probability over r .Therefore for any i , with 8/10 probability over r ,

sign(xi+r

xr) = sign((−1)〈i,t〉)

Choose i to be the O(log n) rows of generator matrix for constantrate and distance binary code.

Eric Price Tutorial on Sparse Fourier Transforms 13 / 27

Page 64: Tutorial on Sparse Fourier Transforms -

Algorithm for k = 1: Hadamard settingLevin ’93, improving upon Goldreich-Levin ’89

xi =∑

j

(−1)〈i,j〉xj

LemmaSuppose x is approximately 1-sparse:

|xt |/‖x‖2 > 90%.

Then we can recover it with O(log n) samples and O(log2 n) time.

We have sign(xr ) = sign((−1)〈r ,t〉xt) with 9/10 probability over r .Therefore for any i , with 8/10 probability over r ,

sign(xi+r

xr) = sign((−1)〈i,t〉)

Choose i to be the O(log n) rows of generator matrix for constantrate and distance binary code.

Eric Price Tutorial on Sparse Fourier Transforms 13 / 27

Page 65: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 14 / 27

Page 66: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.

“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 67: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 68: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 69: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 70: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 71: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 72: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.

Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 73: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.

Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 74: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.

Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 75: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.

Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 76: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 77: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 78: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 79: Tutorial on Sparse Fourier Transforms -

Algorithm for general k

Reduce general k to k = 1.“Filters”: partition frequencies intoO(k) buckets.

I Sample from time domain of eachbucket with O(log n) overhead.

I Recovered by k = 1 algorithm

Most frequencies alone in bucket.Random permutation

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Recovers most of x :

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Eric Price Tutorial on Sparse Fourier Transforms 15 / 27

Page 80: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 81: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 82: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 83: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 84: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 85: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 86: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 87: Tutorial on Sparse Fourier Transforms -

Going from finding most coordinates to finding allx − x ′

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

Partial k -sparse recovery

x x ′

Lemma (Partial sparse recovery)In O(k log n) expected time, we can compute an estimate x ′ such thatx − x ′ is k/2-sparse.

Repeat, k → k/2→ k/4→ · · ·

TheoremWe can compute x in O(k log n) expected time.

Eric Price Tutorial on Sparse Fourier Transforms 16 / 27

Page 88: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.

Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 89: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.

What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 90: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.

What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 91: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?

For any column z = x∗,c ∈ C√

n we have in the corresponding timedomain

zr = y rc

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 92: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 93: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.

If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 94: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 95: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 96: Tutorial on Sparse Fourier Transforms -

How do filters work?x

Consider the√

n ×√

n 2d setting.Get answer by FFT on rows, then FFT on resulting columns.What if I just take the FFT y r of a random row r?For any column z = x∗,c ∈ C

√n we have in the corresponding time

domainzr = y r

c

With O(√

n log n) time, get samples from time domains of all√

ncolumns.If column is 1-sparse, recover it with O(1) row FFTs

I For approximate sparsity, O(log n) row FFTs.

If k =√

n random nonzeros, expect to recover most of them.

Eric Price Tutorial on Sparse Fourier Transforms 17 / 27

Page 97: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparse

I F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 98: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparse

I F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 99: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparseI F is O(k)-sparse and F is (approximately) O(n/k) sparse.

I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 100: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparseI F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 101: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparseI F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 102: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparseI F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 103: Tutorial on Sparse Fourier Transforms -

Filters more generally

Fourier transform switches multiplication and convolution.

Choose a filter F so both F and F are sparseI F is O(k)-sparse and F is (approximately) O(n/k) sparse.I Last slide: F is row, F is column

For various r , compute k -dimensional Fourier transform ofyi = xi+r Fi .

Gives the r th time domain sample of x · shift(F ) for k shifts of F .

Eric Price Tutorial on Sparse Fourier Transforms 18 / 27

Page 104: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 105: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 106: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.

If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 107: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.

Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 108: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.

Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 109: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.

For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 110: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.

Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 111: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) time

Repeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 112: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 113: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same coset withprobability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 114: Tutorial on Sparse Fourier Transforms -

Hadamard setting: full algorithm

F = span(A) for any A ∈ Flog n×log B2

For any r ∈ span(A)⊥, compute Hadamard transform of

yi = xAi+r

Gives r th time domain sample of x restricted to all B cosets of A⊥.If A is chosen randomly, then any two i , j land in same cosetwith probability 1/B.Each coordinate is alone with probability 1 − k/B.Take log(n/k) different r to solve the 1-sparse problem on coset.For B = O(k), expect to recover “most” coordinates.Takes O(k log(n/k)) samples and O(k log(n/k) log k) timeRepeat with k → k/2→ k/4→ . . .

Gives O(k log(n/k)) total samples and O(k log(n/k) log k) time

Eric Price Tutorial on Sparse Fourier Transforms 19 / 27

Page 115: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)

Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 116: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 117: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rows

I Some inputs will cause collisions for any projection.Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 118: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 119: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 120: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedure

I Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 121: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 122: Tutorial on Sparse Fourier Transforms -

Difficulty in other settings

Not enough filters F that are “perfect” (F and F are indicators)Two dimensions:

I Can look at the columns or the rowsI Some inputs will cause collisions for any projection.

Works if you assume coordinates randomly distributed [GHIKPS,Pawar-Ramchandran]

I Peeling procedureI Still doesn’t work for 1 dimension, n = 2`.

For worst-case inputs, need other filters

Eric Price Tutorial on Sparse Fourier Transforms 20 / 27

Page 123: Tutorial on Sparse Fourier Transforms -

A different style of filterGMS05, HIKP12, IKP14, IK14

Filter (time): k uniformly spaced Filter (frequency): n/k uniformly spacedFilter (time): Gaussian · sinc Filter (frequency): Gaussian * rectangle

Previous slides used comb filter

Instead, make filter so F is large on an interval.We can permute the frequencies:

x ′i = xσi =⇒ xi = xσ−1i

This changes the coordinates in an interval (unlike in a comb).Allows us to convert worst case to random case.

Eric Price Tutorial on Sparse Fourier Transforms 21 / 27

Page 124: Tutorial on Sparse Fourier Transforms -

A different style of filterGMS05, HIKP12, IKP14, IK14

Filter (time): k uniformly spaced Filter (frequency): n/k uniformly spacedFilter (time): Gaussian · sinc Filter (frequency): Gaussian * rectangle

Previous slides used comb filterInstead, make filter so F is large on an interval.

We can permute the frequencies:

x ′i = xσi =⇒ xi = xσ−1i

This changes the coordinates in an interval (unlike in a comb).Allows us to convert worst case to random case.

Eric Price Tutorial on Sparse Fourier Transforms 21 / 27

Page 125: Tutorial on Sparse Fourier Transforms -

A different style of filterGMS05, HIKP12, IKP14, IK14

Filter (time): k uniformly spaced Filter (frequency): n/k uniformly spacedFilter (time): Gaussian · sinc Filter (frequency): Gaussian * rectangle

Previous slides used comb filterInstead, make filter so F is large on an interval.We can permute the frequencies:

x ′i = xσi =⇒ xi = xσ−1i

This changes the coordinates in an interval (unlike in a comb).Allows us to convert worst case to random case.

Eric Price Tutorial on Sparse Fourier Transforms 21 / 27

Page 126: Tutorial on Sparse Fourier Transforms -

A different style of filterGMS05, HIKP12, IKP14, IK14

Filter (time): k uniformly spaced Filter (frequency): n/k uniformly spacedFilter (time): Gaussian · sinc Filter (frequency): Gaussian * rectangle

Previous slides used comb filterInstead, make filter so F is large on an interval.We can permute the frequencies:

x ′i = xσi =⇒ xi = xσ−1i

This changes the coordinates in an interval (unlike in a comb).

Allows us to convert worst case to random case.

Eric Price Tutorial on Sparse Fourier Transforms 21 / 27

Page 127: Tutorial on Sparse Fourier Transforms -

A different style of filterGMS05, HIKP12, IKP14, IK14

Filter (time): k uniformly spaced Filter (frequency): n/k uniformly spacedFilter (time): Gaussian · sinc Filter (frequency): Gaussian * rectangle

Previous slides used comb filterInstead, make filter so F is large on an interval.We can permute the frequencies:

x ′i = xσi =⇒ xi = xσ−1i

This changes the coordinates in an interval (unlike in a comb).Allows us to convert worst case to random case.

Eric Price Tutorial on Sparse Fourier Transforms 21 / 27

Page 128: Tutorial on Sparse Fourier Transforms -

Talk Outline

1 Algorithm for k = 1

2 Reducing k to 1

3 Putting it together

Eric Price Tutorial on Sparse Fourier Transforms 22 / 27

Page 129: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 130: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 131: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 132: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 133: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 134: Tutorial on Sparse Fourier Transforms -

How can you hope for sublinear time?Time Frequency

×

=

=

Eric Price Tutorial on Sparse Fourier Transforms 23 / 27

n-dimensional DFT:O(n log n)x → x

n-dimensional DFT of firstk terms: O(n log n)x · rect→ x ∗ sinc.

k -dimensional DFT offirst k terms: O(B log B)alias(x · rect)→subsample(x ∗ sinc).

Page 135: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsOriginal signal x Goal x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 136: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsComputed F ·x Filtered signal F ∗x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 137: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Filtered signal F ∗x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 138: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Computed samples of F ∗x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 139: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Computed samples of F ∗x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 140: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Knowledge about x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 141: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Knowledge about x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 142: Tutorial on Sparse Fourier Transforms -

Algorithm for exactly sparse signalsF ·x aliased to k terms Knowledge about x

LemmaIf t is isolated in its bucket and in the “super-pass” region, the value bwe compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Eric Price Tutorial on Sparse Fourier Transforms 24 / 27

Page 143: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt

=⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 144: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt

=⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 145: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt =⇒ can compute t .

I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 146: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt =⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 147: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt =⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 148: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt =⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·

O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 149: Tutorial on Sparse Fourier Transforms -

AlgorithmLemmaFor most t, the value b we compute for its bucket satisfies

b = xt .

Computing the b for all O(k) buckets takes O(k log n) time.

Time-shift x by one and repeat: b ′ = xtωt .

Divide to get b ′/b = ωt =⇒ can compute t .I Just like our 1-sparse recovery algorithm, x1/x0 = ωt .

Gives partial sparse recovery: x ′ such that x − x ′ is k/2-sparse.

Permute Filters O(k)

1-sparse recovery

1-sparse recovery

1-sparse recovery

1-sparse recovery

x x ′

Repeat k → k/2→ k/4→ · · ·O(k log n) time sparse Fourier transform. �

Eric Price Tutorial on Sparse Fourier Transforms 25 / 27

Page 150: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works for

F Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works for

F Constant dimensional transform in the worst case, n has Θ(k)-sizedfactors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 151: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works for

F Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works for

F Constant dimensional transform in the worst case, n has Θ(k)-sizedfactors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 152: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst case

F > 1 dimensional transform, or n = (pq)`, in the average case.I Interval filter works for

F Constant dimensional transform in the worst case, n has Θ(k)-sizedfactors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 153: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works for

F Constant dimensional transform in the worst case, n has Θ(k)-sizedfactors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 154: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works for

F Constant dimensional transform in the worst case, n has Θ(k)-sizedfactors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 155: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.

Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 156: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 157: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it works

I Interval filter: O(k log n) samples and timeApproximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 158: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 159: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 160: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it works

I Interval filter: optimal samples OR optimal time ORlogc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 161: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank You

Eric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 162: Tutorial on Sparse Fourier Transforms -

State of the ArtAlgorithms based on two kinds of filters:

I Comb filter works forF Hadamard transform in the worst caseF > 1 dimensional transform, or n = (pq)`, in the average case.

I Interval filter works forF Constant dimensional transform in the worst case, n has Θ(k)-sized

factors.Exactly sparse: “optimal” is O(k) samples and O(k log k) time(and log(n/k) factor larger for Hadamard)

I Comb filter: optimal when it worksI Interval filter: O(k log n) samples and time

Approximately sparse: “optimal” is O(k log(n/k)) samples andO(k log(n/k) log n) time

I Comb filter: optimal when it worksI Interval filter: optimal samples OR optimal time OR

logc log n-competitive mixture.

Thank YouEric Price Tutorial on Sparse Fourier Transforms 26 / 27

Page 163: Tutorial on Sparse Fourier Transforms -

Eric Price Tutorial on Sparse Fourier Transforms 27 / 27

Page 164: Tutorial on Sparse Fourier Transforms -

Eric Price Tutorial on Sparse Fourier Transforms 27 / 27