  Timing and carrier synchronization is a fundamental requirement for any
wireless communication system to work properly. Timing synchronization is the
process by which a receiver node determines the correct instants of time at
which to sample the incoming signal. Carrier synchronization is the process by
which a receiver adapts the frequency and phase of its local carrier oscillator
with those of the received signal. In this paper, we survey the literature over
the last five years (2010-2014) and present a comprehensive literature review
and classification of the recent research progress in achieving timing and
carrier synchronization in single-input-single-output (SISO),
multiple-input-multiple-output (MIMO), cooperative relaying, and
multiuser/multicell interference networks. Considering both single-carrier and
multi-carrier communication systems, we survey and categorise the timing and
carrier synchronization techniques proposed for the different communication
systems focusing on the system model assumptions for synchronization, the
synchronization challenges, and the state-of-the-art synchronization solutions
and their limitations. Finally, we envision some future research directions.
