The automatic recognition of the modulation format of a detected signal, the intermediate step between signal detection and demodulation, is a major task of an intelligent receiver, with various civilian and military applications. Obviously, with no knowledge of the transmitted data and many unknown parameters at the receiver, such as the signal power, carrier frequency and phase offsets, timing information, etc., blind identification of the modulation is a difficult task. This becomes even more challenging in real-world scenarios with multipath fading, frequency-selective and time-varying channels. In this paper we provide a comprehensive survey of different modulation recognition techniques, in a systematic way. A unified notation is used to bring in together, under the same umbrella, the vast amount of results and classifiers, developed for different modulations. The two general classes of automatic modulation identification algorithms are discussed in detail, which rely on the likelihood function and features of the received signal, respectively. The contributions of numerous articles are summarized in compact forms. This helps the reader to see the main characteristics of each technique. However, in many cases, the reported results in the literature have been obtained under different conditions. So, we have also simulated some major techniques under the same conditions, which allows a fair comparison among different methodologies. Furthermore, new problems that have appeared as a result of emerging wireless technologies are outlined. At the end, open problems and possible directions for future research are briefly discussed.