Multi-user MIMO (MU-MIMO) is a set of multiple-input and multiple-output (MIMO) technologies for wireless communication, in which a set of users or wireless terminals, each with one or more antennas, communicate with each other. In contrast, single-user MIMO considers a single multi-antenna transmitter communicating with a single multi-antenna receiver. In a similar way that OFDMA adds multiple access (multi-user) capabilities to OFDM, MU-MIMO adds multiple access (multi-user) capabilities to MIMO. MU-MIMO has been investigated since the beginning of research into multi-antenna communication, including work by Telatar on the capacity of the MU-MIMO uplink. Multi-user MIMO (MU-MIMO) is a set of multiple-input and multiple-output (MIMO) technologies for wireless communication, in which a set of users or wireless terminals, each with one or more antennas, communicate with each other. In contrast, single-user MIMO considers a single multi-antenna transmitter communicating with a single multi-antenna receiver. In a similar way that OFDMA adds multiple access (multi-user) capabilities to OFDM, MU-MIMO adds multiple access (multi-user) capabilities to MIMO. MU-MIMO has been investigated since the beginning of research into multi-antenna communication, including work by Telatar on the capacity of the MU-MIMO uplink. SDMA, massive MIMO, coordinated multipoint (CoMP), and ad hoc MIMO are all related to MU-MIMO; each of those technologies often leverage spatial degrees of freedom to separate users. Multi-user MIMO (MU-MIMO) can leverage multiple users as spatially distributed transmission resources, at the cost of somewhat more expensive signal processing. In comparison, conventional, or single-user MIMO considers only local device multiple antenna dimensions. Multi-user MIMO algorithms are developed to enhance MIMO systems when the number of users or connections is greater than one. Multi-user MIMO can be generalized into two categories: MIMO broadcast channels (MIMO BC) and MIMO multiple access channels (MIMO MAC) for downlink and uplink situations, respectively. Single-user MIMO can be represented as point-to-point, pairwise MIMO. To remove ambiguity of the words receiver and transmitter, we can adopt the terms access point (AP; or, base station), and user. An AP is the transmitter and a user is the receiver for downlink environments, whereas an AP is the receiver and a user is the transmitter for uplink environments. Homogeneous networks are somewhat freed from this distinction. MIMO broadcast represents a MIMO downlink case in a single sender to multiple receiver wireless network. Examples of advanced transmit processing for MIMO BC are interference aware precoding and SDMA-based downlink user scheduling. For advanced transmit processing, the channel state information has to be known at the transmitter (CSIT). That is, knowledge of CSIT allows throughput improvement, and methods to obtain CSIT become of significant importance. MIMO BC systems have an outstanding advantage over point-to-point MIMO systems, especially when the number of transmit antennas at the transmitter, or AP, is larger than the number of receiver antennas at each receiver (user). Two categories of coding techniques for the MIMO BC include those using dirty paper coding (DPC) and linear techniques. Moreover, hybrid (analog and digital) methods should also be noted. Conversely, the MIMO multiple-access-channel or MIMO MAC represents a MIMO uplink case in the multiple sender to single receiver wireless network. Examples of advanced receive processing for MIMO MAC are joint interference cancellation and SDMA-based uplink user scheduling. For advanced receive processing, the receiver has to know the channel state information at the receiver (CSIR). Knowing CSIR is generally easier than knowing CSIT. However, knowing CSIR costs a lot of uplink resources to transmit dedicated pilots from each user to the AP. MIMO MAC systems outperforms point-to-point MIMO systems especially when the number of receiver antennas at an AP is larger than the number of transmit antennas at each user. Cross-layer MIMO enhances the performance of MIMO links by solving certain cross-layer problems that may occur when MIMO configurations are employed in a system. Cross-layer techniques can be used to enhance the performance of SISO links as well. Examples of cross-layer techniques are Joint Source-Channel Coding, Adaptive Modulation and Coding (AMC, or 'Link Adaptation'), Hybrid ARQ (HARQ), and user scheduling. The highly interconnected wireless ad hoc network increases the flexibility of wireless networking at the cost of increased multi-user interference. To improve the interference immunity, PHY/MAC-layer protocols have evolved from competition based to cooperative based transmission and reception. Cooperative wireless communications can actually exploit interference, which includes self-interference and other user interference. In cooperative wireless communications, each node might use self-interference and other user interference to improve the performance of data encoding and decoding, whereas conventional nodes are generally directed to avoid the interference. For example, once strong interference is decodable, a node decodes and cancels the strong interference before decoding the self-signal. The mitigation of low Carrier over Interference (CoI) ratios can be implemented across PHY/MAC/Application network layers in cooperative systems. CO-MIMO, also known as network MIMO (net-MIMO), or ad hoc MIMO, uses distributed antennas which belong to other users, while conventional MIMO, i.e., single-user MIMO, only employs antennas belonging to the local terminal. CO-MIMO improves the performance of a wireless network by introducing multiple antenna advantages, such as diversity, multiplexing and beamforming. If the main interest hinges on the diversity gain, it is known as cooperative diversity. It can be described as a form of macro-diversity, used for example in soft handover. Cooperative MIMO corresponds to transmitter macro-diversity or simulcasting. A simple form that does not require any advanced signal processing is single frequency networks (SFN), used especially in wireless broadcasting. SFNs combined with channel adaptive or traffic adaptive scheduling is called dynamic single frequency networks (DSFN).