The design of high-precision sensing devises becomes ever more difficult and
expensive. At the same time, the need for precise calibration of these devices (ranging
from tiny sensors to space telescopes) manifests itself as a major roadblock in many
scientific and technological endeavors. To achieve optimal performance of advanced
high-performance sensors one must carefully calibrate them, which is often difficult or
even impossible to do in practice. In this work we bring together three seemingly unrelated
concepts, namely Self-Calibration, Compressive Sensing, and Biconvex Optimization. The idea
behind self-calibration is to equip a hardware device with a smart algorithm that can
compensate automatically for the lack of calibration. We show how several self-calibration
problems can be treated efficiently within the framework of biconvex compressive sensing
via a new method called SparseLift. More specifically, we consider a linear system of
equations y = DAx, where both x and the diagonal matrix D (which models the calibration
error) are unknown. By "lifting" this biconvex inverse problem we arrive at a convex
optimization problem. By exploiting sparsity in the signal model, we derive explicit
theoretical guarantees under which both x and D can be recovered exactly, robustly, and
numerically efficiently via linear programming. Applications in array calibration and
wireless communications are discussed and numerical simulations are presented, confirming
and complementing our theoretical analysis.