# Adaptive Clustering of Users in Power Domain NOMA
## 2 Downlink NOMA Fundamentals  
The main idea of NOMA is to transmit to a number of users greater than the number of orthogonal resources of time, frequency or code resources available in the system. Two approaches for implementing NOMA can be found in the literature: NOMA in the power domain and NOMA in the code domain. In this work, we only consider NOMA in the power domain. From this point forward, any mention of a NOMA system pertains to NOMA in the power domain unless expressly stated otherwise.  
NOMA explores the differences in channel gains between users for the multiplexing signals in the power domain. This technique seeks to at least double the number of devices connected simultaneously and achieve superior user and system performance gains [29] compared to conventional multiple access techniques. Based on information theory, it is known that non-orthogonal multiplexing using superposition coding at the transmitter and SIC at the receiver outperforms traditional orthogonal multiplexing and is also ideal for reaching the capacity region of downlink transmission channels [30].  
In the downlink scenario discussed in this work, the transmitter generates different signals for different users so that they are superimposed on each other after the encoding and modulation steps. By sharing time, frequency and code resources among users, it is necessary to use multi-user detection (MUD) algorithms, such as SIC, to detect the different signals at the receiver [2].  
To better understand how a NOMA system works, let us build a NOMA downlink scenario formed by a base station (BS) with a single antenna and \(M\) users with a single antenna each as illustrated in Figure 1.  
The BS transmits the signal \(x\) simultaneously to different users. This signal is formed by the superposition of the signals \(x_{i}\) intended for each user, weighted by a power normalization coefficient \(p_{i}\), respectively, associated with the \(i\)-th user, according to:  
\[x=\sum_{i=1}^{M}\sqrt{p_{i}}x_{i}, \tag{1}\]  
where \(\sum\limits_{i=1}^{M}p_{i}=P\) with \(P\) as the total power of the transmitter. The following rule must be expected to define a power coefficient for a user: users with a weak channel coefficient must receive more power than those with a strong channel coefficient.  
Therefore, the signal received by the \(i\)-th user can be defined by:  
\[y_{i}=h_{i}x+n_{i},\;i=1,\,2,\;\ldots,\;M, \tag{2}\]  
where \(h_{i}\) denotes the channel gain between the BS and the \(i\)-th user, and \(n_{i}\) represents the additive white Gaussian noise (AWGN).  
After receiving \(y_{i}\), the receiver uses the SIC to perform multi-user detection. The algorithm follows a detection order that is determined by the power coefficients assigned to each user, which is determined by the gain of the normalized channels of their respective devices (\(|h_{1}|^{2}/N_{1}>|h_{2}|^{2}/N_{2}>\cdots>|h_{M}|^{2}/N_{M}\)), i.e., from the user with the weakest (high attenuation) to the strongest channel gain (low attenuation). It is important to emphasize that the user who receives the highest power can detect its signal and treat the other signals as noise. However, the other users will perform SIC until they can decode their respective signals.  
Thus, it is assumed that any user can detect their information without significant interference caused by signals from other users. Users with better channel conditions require less power but can correctly detect their data with high probability. Therefore, assuming perfectly error-free decoding of the interfering signals, the achievable rate for the \(i\)-th user (\(i=1,\,2,\,\ldots,\,M\)) can be written as [2]:  
\[R_{i}=wB\log\biggl{(}1+\frac{p_{i}|h_{i}|^{2}}{wN_{i}B+(\sum_{j=1}^{M-1}p_{j} )|h_{i}|^{2}}\biggr{)},\;i=1,2,\ldots,M, \tag{3}\]  
where \(B\) is the bandwidth of each channel in Hertz, \(w\) is the number of available resource blocks, and \(N_{i}\) is the power spectral density of the noise.