# Hybrid Precoding Design for Wireless Fading Channels
## 1 Introduction  
One of the most important features aimed at by next-generation wireless communication systems is the ability to enable high-speed data transmission with very low latency. The most straightforward and easiest way to increase data transmission rates is to expand the frequency bandwidth used for data transmission. However, until the fourth generation of mobile communication systems, frequencies below 3 GHz were used for mobile communication. Globally, most frequencies below 3 GHz are already allocated for other types of communications, making it almost impossible to use additional bandwidth for next-generation wireless communications. Therefore, starting with fifth-generation mobile communication, techniques using frequency bands near 6 GHz or millimeter-wave (mmWave) frequency bands above 24 GHz have been proposed [1; 2]. However, as the frequency of the transmitted signal increases, there is the disadvantage of limited usability, as the transmission range of the radio waves becomes shorter, making it suitable only for cases where the distance between the transmitter and receiver is short. Among methods to increase data transmission rates without increasing bandwidth, a representative method is to apply multiple-input, multiple-output (MIMO) technology using multiple antennas at the transmitter and receiver. If the transmitting end and the receiving end have multiple antennas, the data transmission speed can be increased by transmitting multiple data streams simultaneously with the same frequency resources using single-user MIMO (SU-MIMO) technology. Meanwhile, even when the receiving end has only one receiving antenna, the data transmission rate of the entire system can be increased by simultaneously transmitting data to multiple users using the same frequency through multi-user MIMO (MU-MIMO) technology [3; 4; 5]. In MU-MIMO transmission cases, however, inter-user interference may occur between multiple user signals simultaneously transmitted using the same frequency, and if such interference is not properly removed, the probability of correct symbol detection at the receiving end may severely decrease, and overall communication performance may deteriorate. If the receiving end has multiple antennas, inter-user interference can be reduced to some extent by using well-known multi-user detection techniques [6; 7], but if the receiving end has only one receiving antenna, it is impossible to reduce interference at the receiving end. Therefore, in this case, signal processing must be performed at the transmitting end to prevent inter-user interference from occurring, and the most common method among these technologies is to apply precoding to the transmitter [8]. Precoding technologies can be divided into linear precoding and non-linear precoding. Among linear precoding techniques, the most representative methods are zero-forcing (ZF) precoding and minimum mean-squared error (MMSE) precoding techniques [9; 10; 11]. ZF precoding technology uses only channel state information and completely eliminates interference signals between users but has the disadvantage of increasing background noise. On the other hand, MMSE precoding technology is a technology that utilizes both channel state information and the statistical characteristics of noise and shows better performance than ZF precoding techniques by appropriately reducing inter-user interference and background noise. Since these linear precoding techniques only use channel state information regardless of the current value of each user's information data, the precoding matrix only needs to be obtained once during the time when the channel state information does not change. Therefore, the longer the coherence time of the channel, the less computational complexity required to obtain the precoding matrix. Meanwhile, among non-linear precoding techniques, the most frequently mentioned techniques include dirty paper coding (DPC), vector perturbation precoding, and symbol-level precoding (SLP) [12; 13; 14; 15].