Figure 2.1 An example flat window function for n = 256. This is the sum of 31 adjacent (1/22, 10−8, 133) Dolph-Chebyshev window functions, giving a (0.11, 0.06, 2 × 10−9, 133) flat window function (although our proof only guarantees a tolerance δ = 29 × 10−8, the actual tolerance is better). The top row shows G and
Proof Let f = (∊ − ∊′)/2, and let F be an
so by the shift theorem, in the time domain
Since
2.2.2 Permutation of Spectra
Following Gilbert et al. [2005a], we can permute the Fourier spectrum as follows by permuting the time domain:
Definition 2.3 Suppose σ−1 exists mod n. We define the permutation Pσ, a, b by
We also define πσ, b(i) = σ(i − b) mod n.
Claim 2.3
Proof
Lemma 2.1 If j ≠ 0, n is a power of two, and σ is a uniformly random odd number in [n], then Pr[σj ∊ [−C, C]] ≤ 4C/n.
Proof If j = m2l for some odd m, then the distribution of σj as σ varies is uniform over m′2l for all odd m′. There are thus 2 · round(C/2l+1) < 4C/2l+1 possible values in [−C, C] out of n/2l+1 such elements in the orbit, for a chance of at most 4C/n. ■
Note that for simplicity we will only analyze our algorithm when n is a power of two. For general n, the analog of Lemma 2.1 would lose an n/φ(n) = O(log log n) factor, where φ is Euler’s totient function. This will correspondingly increase the running time of the algorithm on general n.
Claim 2.3 allows us to change the set of coefficients binned to a bucket by changing the permutation; Lemma 2.1 bounds the probability of non-zero coefficients falling into the same bucket.
2.2.3 Subsampled FFT
Suppose we have a vector x ∈ ℂn and a parameter B dividing n, and would like to compute ŷi = x̂i(n/B) for i ∈ [B].
Claim 2.4 ŷ is the B-dimensional Fourier transform of
Proof
2.2.4 2D Aliasing Filter
The aliasing filter presented in Section 1.1.2. The filter generalizes to two dimensions as follows:
Given a 2D matrix
Then, compute the 2D DFT ŷ of y. Observe that ŷ is a folded version of x̂:
3
Simple and Practical Algorithm
3.1 Introduction
In this chapter, we propose a new sublinear Sparse Fourier Transform algorithm over the complex field. The key feature of this algorithm is its simplicity: the algorithm has a simple structure, which leads to efficient runtime with low big-Oh constant. This was the first algorithm to outperform FFT in practice for a practical range of sparsity as we will show later in Chapter 6.
3.1.1 Results
We present an algorithm which has the runtime of
where n is the size of the signal and k is the number of non-zero frequency coefficients. Thus, the algorithm is faster than FFT for k up to O(n/log n). In contrast, earlier algorithms required asymptotically smaller bounds on k. This asymptotic improvement is also reflected in empirical runtimes. For example, we show in Chapter 6 that for n = 222, this algorithm outperforms FFT for k up to about 2,200, which is an order of magnitude higher than what was achieved