  This paper develops a mathematical theory of super-resolution. Broadly
speaking, super-resolution is the problem of recovering the fine details of an
object---the high end of its spectrum---from coarse scale information
only---from samples at the low end of the spectrum. Suppose we have many point
sources at unknown locations in $[0,1]$ and with unknown complex-valued
amplitudes. We only observe Fourier samples of this object up until a frequency
cut-off $f_c$. We show that one can super-resolve these point sources with
infinite precision---i.e. recover the exact locations and amplitudes---by
solving a simple convex optimization problem, which can essentially be
reformulated as a semidefinite program. This holds provided that the distance
between sources is at least $2/f_c$. This result extends to higher dimensions
and other models. In one dimension for instance, it is possible to recover a
piecewise smooth function by resolving the discontinuity points with infinite
precision as well. We also show that the theory and methods are robust to
noise. In particular, in the discrete setting we develop some theoretical
results explaining how the accuracy of the super-resolved signal is expected to
degrade when both the noise level and the {\em super-resolution factor} vary.
