each iteration estimates the largest Fourier coeffic ient
(the one least impacted by leakage) and subtracts its
contribution to the time signal. The iterative update of
the time signal causes a large increase in runtime. The
algorithms in [GGI
+
02, Man92] perform t hi s update by
going through O(k) iterations each of which updates
at least O(k) time samples, resulting in an O(k
2
) term
in the runtime. The algorithm [GMS05], introd u ce d
a ”bulk sampling” algorithm that amortizes t hi s pro-
cess but it requires solving instances of a non-uniform
Fourier transform, which is expen s ive in practice.
Interpolation-based algorithms are less common
and limited to the design in [Iwe10a]. This approach
uses a leakage-free filter, G, to avoid the need for itera-
tion. Specifically, the algorithm in [Iwe 10a] uses for G a
filter in which G
i
= 1 iff i mod n/p = 0 and G
i
= 0 oth-
erwise. The Fourier transform of this filter is a “spike
train” with period p. This filter does not leak: it is equal
to 1 on 1/p fraction of coordinates and is zero elsewhere.
Unfortunately, however, such a filter requires that p di-
vides n; moreover, the algorithm needs several different
values of p. Since in general one cannot assume that n
is divisible by all numb er s p, the algorithm treats the
signal as a continuous function and interpolates it at
the required points. Interpolation introduces additional
complexity and increas es the exponents in the runtime.
Our appr oach. The key feature of our algorithm
is the use of a different type of filter. In the simplest
case, we use a filter obtained by convolving a Gaussian
function with a box-car function. A more efficient filter
can be obtained by replacing the Gaussian function
with a Dolph-Chebyshev function. (See Fig. 1 f or an
illustration.)
Because of this new filter, our algorithm does not
need to either iterate or interpolate. Specifically, the
frequency response of our filter
ˆ
G is nearly flat i ns id e
the pass region and has an exponential tail outside
it. This means that leakage from frequencies in other
buckets is negligible, and hence, our algorithm need
not iterate. Also, filtering can be performed using the
existing input samples x
i
, and hence our algorithm need
not interpolate the signal at new points. Avoiding both
iteration and interpolation is the key feature that makes
our algorithm efficient.
Further, once a large coefficient is isolated in a
bucket, one needs to identify its frequency. In contrast
to p ast work which typically uses binary search for this
task, we adopt an idea from [PS10] and tailor it to
our problem. Specifically, we simply select the set of
“large” bins which are likely to contain large coefficients,
and directly estimate all frequencies in those bins. To
balance the cost of the bin selection and estimation
steps, we make the numbe r of bins s omewhat larger than
the typical value of O(k). Specifically, we use B ≈
√
nk,
which leads t o the stated runtime.
6
2 Notation
Transform-Related Notations. For an input
signal x ∈ C
n
, its Fourier spectrum is denoted by ˆx.
We will use x ∗ y to denote the convolution of x and y,
and x·y to denote the coordinate-wise product of x and
y. Recall that
d
x · y = ˆx ∗ ˆy. We define ω = e
2π i/ n
to be
a primitive nth root of u n ity (h er e i =
√
−1, but in the
rest of the paper, i is an index).
Indices-Related Notations. All operations on
indices in this paper are taken modu lo n. Therefore
we might r efe r to an n-dimensional vector as having
coordinates {0, 1, . . . , n − 1} or {0, 1, . . . , n/2, − n/2 +
1, . . . , −1}. interchangeably. Finally, [s] refers to the set
of indices {0, . . . , s − 1}, whereas supp(x) refers to th e
support of vector x, i.e., the set of non-zero coordinates.
In this paper we assume that n is an integer power
of 2.
3 Basics
(a) Window Functions. In digital signal pro-
cessing [OSB99] one defines window functions in the
followin g manner:
Definition 3.1. We define a (ǫ, δ, w) standard win-
dow function to be a symmetric vector F ∈ R
n
with
supp(F ) ⊆ [−w/2, w/2] such that
ˆ
F
0
= 1,
ˆ
F
i
> 0 for all
i ∈ [−ǫn, ǫn], and |
ˆ
F
i
| < δ for all i /∈ [−ǫn, ǫn].
Claim 3.2. For any ǫ and δ, there exists an
(ǫ, δ, O(
1
ǫ
log(1/δ))) standard window function.
Proof. This is a well known fact [Smi11]. For ex-
ample, for any ǫ and δ, one can obtain a stan-
dard window by taking a Gaussian with standard de-
viation Θ(
p
log(1/δ)/ǫ) and truncating it at w =
O(
1
ǫ
log(1/δ))). The Dolph-Chebyshev window function
also has the claimed property but with minimal big-O h
constant [Smi11] (in partic ul ar, half the constant of the
truncated Gaussian).
The above definition shows that a standard window
function acts like a filter, allowing us to focus on a subset
of the Fourier coefficients. Ideally, however, we would
like the pass region of our filter to be as flat as possible.
6
Although it is plausible that one could combine our filters
with the binary search technique of [GMS05] and achieve an
algorithm with a O(k log
c
n) runtime, our preliminary analysis
indicates that the resulting algorithm would be slower. Intuitively,
observe that for n = 2
22
and k = 2
11
, the values of
√
nk = 2
16.5
≈
92681 and k log
2
n = 45056 are quite close to each other.