Wireless communications has been a topic of study since the 1960's. Two fundamental aspects of wireless communications make it challenging and interesting. First of all, the time-varying nature of the underlying channel due to small-scale and large-scale fading is one of the most significant problems in designing wireless communication systems. Secondly, unlike wired communications in which each transmitter-receiver pair is isolated and can be thought of as a point-to-point link, wireless communication users suffer from interference made by all other active users sharing the same transmission medium. A lot of effort has been done to improve the performance of wireless communication systems in the presence of fading and interference and this field is still attracting many researchers.