Cooperative communications is a new paradigm in the wireless communications area that allows geographically distributed nodes, terminals or sensors in a wireless network to share resources or to cooperate by means of distributed processing. The main goal of cooperative communications is to attain space diversity for suppressing the effects of small or large scale fading channels. In this book, we consider the design of distributed coding schemes and protocols for wireless relay networks in which users cooperate to send their data to the destination, which results in increasing the system reliability via achieving the cooperative diversity.