Single Carrier NOMA (SC NOMA) - How many users can it support?
We saw how non-orthogonal multiple access (NOMA) can somehow magically break the capacity limitation faced by the other traditional orthogonal multiple access (OMA) schemes. OMA schemes like TDMA, FDMA, CDMA, OFDMA separates the users in time, frequency, code, subcarrier domains respectively. No two users are allowed to share the same resource simultaneously. If this condition is violated, interference would occur and both users would lose their data.
For a moment, let's consider an OFDMA network with 64 subcarriers. If we assign one orthogonal subcarrier per user, the maximum number of users we can simultaneously serve is 64. If the 65th user requests a connection, his call must be dropped or he must wait for one of the other users to finish transmitting. This is because we don't have any more orthogonal subcarrier to assign to the new user. This orthogonality bottleneck imposes a capacity limitation on the number of users who can simultaneously access the OMA network.
NOMA breaks this capacity bottleneck by allowing simultaneous transmission of multiple users in the same frequency carrier. Of course, interference would occur. But NOMA employs a technique called successive interference cancellation (SIC) to intelligently remove the interference.
Till now, we saw about two user NOMA and three user NOMA simulation. After reading those posts, some of our readers pointed out to me, the next important question that arises. How many users can I multiplex in the same carrier? Can I multiplex 100 users? Won't this make the receiver side processing complicated? These are interesting questions and we will seek to find their answers in this post.
SIC complexity at strong users
We know that, while performing superposition coding at the transmitter side, the users are ordered according to their channel conditions and the weakest user is allocated the most power. For example, if we have $K$ users, and if they are ordered such that, $|h_1|^2 \lt |h_2|^2 \lt ... \lt |h_K|^2$, then their corresponding power allocation coefficients will be ordered as $\alpha_1 \gt \alpha_2 \gt ... \alpha_K$.
While doing this power allocation, we should ensure that, $\alpha_1 \gt \alpha_2 + \alpha_3 + ... \alpha_K$ and $\alpha_2 \gt \alpha_3 + \alpha_4 + ... \alpha_K$, $\alpha_3 \gt \alpha_4 + ... \alpha_K$ and so on.
At the receiver side, the weakest user, i.e., $U_1$, will perform direct decoding. Since, $\alpha_1 \gt \alpha_2 + \alpha_3 + ... \alpha_K$, all other users' data are considered interference. So, $U_1$ does not have any complex processing involved. OK. Let's move on to $U_2$.
In the received signal of $U_2$, $U_1$'s data will be dominating because, $\alpha_1 \gt \alpha_2 + \alpha_3 + ... \alpha_K$. So, $U_2$ has to first perform SIC to estimate and remove $U_1$'s data. Once $U_1$'s data is removed, we will have, $\alpha_2 \gt \alpha_3 \gt \alpha_4 \gt ... \alpha_K$. So now, $U_2$'s data is dominating. Therefore, $U_2$ can perform direct decoding, by treating the data of users $U_2$, $U_3$, ... as interference.
In a similar fashion, $U_3$ must perform SIC to remove $U_1$ and $U_2$'s data before decoding its own signal. $U_4$ must remove $U_1$, $U_2$, and $U_3$'s data before decoding its own signal. Following the same train of thought, how much times should the strongest user ($U_K$) perform SIC before decoding his own data? $K-1$ times. He must remove every single users' data from his received signal. Only then $\alpha_K$ will be dominating.
Thus, if we multiplex 100 users in the same carrier, the 100th user must perform SIC 99 times before decoding his own data. This is not only computationally complex, but also consumes much time leading to processing delay.
As if this processing itself is not complicated enough, a new problem called SIC error propagation will also occur. For example, $U_5$ must perform SIC for $U_1$ , $U_2$, ... $U_4$'s data. If $U_1$'s data is decoded in error, then this will lead to a wrong signal being subtracted in the SIC process, which would lead to decoding of $U_2$'s data erroneously and this error propagates on and on to the decoding of $U_5$ own data.
But this is not the only problem with multiplexing large number of users in the same carrier.
The problem of Interference at weak users
Again, let's assume we have $K$ users, with $U_1$ as the weakest user and $U_K$ as the strongest user. $U_K$ already has the problem of complicated and time consuming signal processing requirement. Now, the problem with $U_1$ is this: $U_1$ does direct decoding treating all other users' data as interference. So, the achievable rate equation of $U_1$ will have $K-1$ interference terms. It will look like this:$$R_1 = log_2\left(1 + \dfrac{\alpha_1P|h_1|^2}{\left(\alpha_2 + \alpha_3 + ... \alpha_K\right)P|h_1|^2 + \sigma^2}\right)$$
In the same way, the achievable rate equation of $U_2$ will be: $$R_2 = log_2\left(1 + \dfrac{\alpha_2P|h_2|^2}{\left(\alpha_3 + \alpha_4 + ... \alpha_K\right)P|h_2|^2 + \sigma^2}\right)$$
We can already see the problem. The amount of interference faced by the users is higher when more users are multiplexed in the same carrier.
The problem of power allocation
When we had two users, we arbitrarily chose $\alpha_1$ to be some value, say 0.75, and $\alpha_2 = 0.25$. By doing this, we were able to easily satisfy the conditions $\alpha_1 \gt \alpha_2$ and $\alpha_1+\alpha_2=1$. When we had three users, in this post, we choose, $\alpha_1 = 0.85$, $\alpha_2=0.15$ and $\alpha_3=0.05$. Thus satisfying,
- $\alpha_1 \gt \alpha_2 \gt \alpha_3$
- $\alpha_1 \gt \alpha_2 + \alpha_3$
- $\alpha_2 \gt \alpha_3$ and
- $\alpha_1 + \alpha_2 + \alpha_3 = 1$ .
When we have $K$ users, we have even more conditions to satisfy.
- $\alpha_1 \gt \alpha_2 \gt \alpha_3 \gt ... \gt \alpha_K$
- $\alpha_1 \gt \alpha_2 + \alpha_3 + ... + \alpha_K$
- $\alpha_2 \gt \alpha_3 + \alpha_4 +... + \alpha_K$ ...
- $\alpha_{m} \gt \alpha_{m+1}+\alpha_{m+2}+...\alpha_{K}$ and
- $\alpha_1 + \alpha_2 + ... + \alpha_K = 1$
A power allocation method for multiple user single carrier NOMA
First, pick fraction less than 1. For example, $\dfrac{3}{4}$ or $\dfrac{2}{5}$ etc. Let's pick $\dfrac{3}{4}$. Start with the weakest user. For U1, set $\alpha_1=\dfrac{3}{4}$.
- If $K=2$, set $\alpha_2 = 1 - \alpha_1$. Otherwise, set $\alpha_2 = \dfrac{3}{4}(1 - \alpha_1)$.
- If $K = 3$, set $\alpha_3 = 1 -(\alpha_1+\alpha_2)$. Otherwise, set $\alpha_3 = \dfrac{3}{4}\left(1 - (\alpha_1+\alpha_2)\right)$.
- If $K = 4$, set $\alpha_4 = 1 -(\alpha_1+\alpha_2+\alpha_3)$. Otherwise, set $\alpha_4 = \dfrac{3}{4}\left(1 - (\alpha_1+\alpha_2+\alpha_4)\right)$.
- ...
- If $K = m$, set $\alpha_m = 1 -(\alpha_1+\alpha_2+...+\alpha_{m-1})$. Otherwise, set $\alpha_m = \dfrac{3}{4}\left(1 - (\alpha_1+\alpha_2+...\alpha_{m-1})\right)$.
Although this algorithm guarantees proper power allocation in terms of meeting the required conditions, we can immediately see a new problem arising: As more and more users are squeezed into the network, the strongest user will be allocated less and less power. This will lead to a decrease in his achievable data rate.
Now that we have seen some of the problems faced by what we call single carrier NOMA (or SC-NOMA), let's do a MATLAB simulation to see all these problems in effect. Let's plot the achievable sum rate of an SC-NOMA network by varying the number of multiplexed users. We will get a graph like this.
What can we infer from this graph?
- As the number of users of SC-NOMA is increased, the sum capacity of the network initially increases and then drops and saturates.
- This initial increase is due to the same reasons that NOMA offers better capacity than OMA. The interference levels are manageable and the strongest user, although he is allocated the least power, is given a respectable amount of power.
- We can observe a drop off point beyond which the capacity falls. This drop off point can be regarded as the maximum limit on the number of users who can be admitted into the network without any performance degradation.
- The drop off point moves towards the right as the transmit power is increased. That is, When 10dBm transmit power was used, the sum rate started to decrease beyond 4 users. But when 40dBm transmit power was used, the drop off point was beyond 10 users. This behavior is mainly due to the power allocation strategy that we adopted. The weakest user will be assigned the least fraction of power and a small fraction of 40 dBm is greater than a small fraction of 10 dBm.
- Thus, to accommodate more users without performance degradation, we must increase the transmit power.
Conclusion
From our simulation, we found that we cannot keep on increasing the number of users multiplexed in the same carrier. So, to answer our initial questions, multiplexing 100 users in the same carrier will pose more problems in terms of SIC computational complexity, delay, power allocation computation and reduction in achievable rate. The upper limit on the number of users is determined by the drop off point in our graph. If so, what can we do to accommodate all the 100 users in the same carrier? We can go for hybrid NOMA techniques which combine OMA and NOMA concepts together. We will see more about them in the future posts. Thank you.
Hi Joe, Can you post the code for the power comparison as well?. Thanks.
ReplyDeleteSure, will do that soon!
DeletePlease provide matlab code of users clustering with subcarrier allocation in NOMA.
ReplyDeleteSure, will make a post on that soon!
DeletePlease Joe provide any research paper reference of "A power allocation method for multiple user single carrier NOMA" that you have explained above.
ReplyDeleteAlso if possible for you please provide explaination with matlab code "A power allocation method for multiple users multiple carrier NOMA
Hi Umar, the power allocation strategy described in this post is a simple fixed allocation scheme which does not make use of CSI knowledge.
DeleteThere are dynamic power allocation schemes which would be even more superior. For example, arxiv.org/abs/1903.06822v4 is an excellent paper in this topic.
More posts on mulicarrier NOMA will be coming soon!
Thanks a lot. I will wait for your further posts.
DeleteHi Joe Please tell me how to use OPTI toolbox for 3D matrices inputs and outputs.
DeleteHi Umar, I am not familiar with the OPTI toolbox as I have not worked with it..
DeleteIts ok. Thanks
ReplyDeleteBut please tell me that for dynamic power allocation to users in a cluster, I want to use a weighting factor that should be multiplied with total cluster power because I want to have multi clusters and multi-carrier systems with many users.Also try to provide matlab code.
Sure, we will see that in a future post.
DeleteHi Joe, please consider making a post on MIMO NOMA in the future. A comparison with SDMA and NOMA would be great. Thanks
ReplyDeleteHi Sudip, thanks for your suggestion.
DeleteWe will see about MIMO NOMA, SDMA NOMA comparison in a future post
Hi Joe!.
ReplyDeleteCould you consider making a post on SCMA, PDMA, LDS-OFDM, LDS-CDMA as well? And a comparison of the different non-orthogonal multiple access techniques.
Hi, thanks for your suggestion.
DeleteWill make a post on that in the future.
Hi joe !
ReplyDeletehow we write powerspliting protocol in matlab and what is the generic formula of energy harvesting on relay
Hi Mubasher, to implement power-splitting protocol, we have to calculate the fraction of power that can be harvested from the received signal. While doing this, we also have to ensure that enough power is available for information decoding. A generic formula for the energy harvesting can be found in equation (7) of this paper: "The impact of power allocation on cooperative non-orthogonal multiple access with SWIPT", Z. Yang, Z. Ding, P. Fan and N. Al-Dhahir, IEEE transactions on wireless communications, vol.6, no.7, July 2017
DeleteHi Joe,Please provide matlab code for MC-NOMA
ReplyDeleteSure, will make a post on that soon!
DeleteHi,do you have code about adding imperfect channel state information into NOMA system ?
ReplyDeleteHi noir, we'll cover that in a future post
DeleteHi Joe,Please provide matlab code for imperfect CSI for CoMP-NOMA
ReplyDeleteHi noir, Thanks for the suggestion. Will make a post on this topic
DeleteHi Joe,
ReplyDeletePlease explain the user pairing problems and solutions in NOMA.
Thanks
Hi Computer Terms, thanks for the suggestion, We'll cover user pairing in a future post
DeleteThanks for the posts so far. I will appreciate if Hybrid Beamforming NOMA in Cluster for single and multicarrier are considered in the soonest future post.
ReplyDeleteThanks
Hi, Joe,
ReplyDeleteTHanks for ur generous sharing! i just have a little about the N parameter in the code
N = 10^3; %Number of channel realizations
does it means the amount of the subcarriers involved or any else ?
Thanks for sharing this information
ReplyDeletewireless solutions
Hi,
ReplyDeleteThanks for sharing and all the post are really informative.Could you please clarify on NOMA in multicarrier domain and in specific SCMA. can we use the same concept of power domain with code book defined?Please share any post or program relevant to that.Can you please say which is better as Code or power domain NOMA for future applications of 5G?Any inputs will be helpful IN understanding the concept of codebooks.
Hi Joe, Many thanks for this blog.....
ReplyDeletedo you work on python too?
I would like to use python for simulations.
Thanks for your help any.
can NOMA be applied once the users have equal power?
ReplyDeleteIn uplink NOMA, users can transmit with same power to the BS. But their distances must be different
Deletewhy do we need to satisfy α1>α2+α3 too?
ReplyDeleteHi
ReplyDeleteI have a doubt about use of N channel realization .
There is usages of mc as well as N iteration. doesn't it mc and N both just number of channel realization and one can just use of them for the simulation ?