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

Tutorial on Sparse Fourier Transforms - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tutorial on Sparse Fourier Transforms - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

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 - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

Eric Price Tutorial on Sparse Fourier Transforms 27 / 27

Page 164: Tutorial on Sparse Fourier Transforms - MIT CSAIL · The Fourier Transform Conversion between time and frequency domains Time Domain Frequency Domain Fourier Transform Displacement

Eric Price Tutorial on Sparse Fourier Transforms 27 / 27