Till now, we were dealing with downlink NOMA (where the base station (BS) transmits NOMA signal to the end users). In this post, let's see how to perform NOMA in the uplink. Uplink communication is when the users transmit to the BS.
Network model
Let's consider the following network consisting of two users, who want to transmit their data to the BS.
Fig. 1: Uplink NOMA network model
In this example, we are taking $U_f$ as the far user and $U_n$ as the near user. Let $d_f$ and $d_n$ denote their distances from the BS. $h_f$ and $h_n$ represent their corresponding Rayleigh fading coefficients. ($d_f \gt d_n$ and $|h_f|^2 \lt |h_n|^2$)
How to do power domain multiplexing in uplink NOMA?
The power domain multiplexing part is done in a slightly different way for uplink NOMA. As we know, in downlink NOMA, the BS used superposition coding to perform power domain multiplexing. But in uplink, the transmit power of the users is limited only by their battery capacity. That is, both users can transmit with their maximum possible power. The differentiation in power domain is brought about at the receiver side (BS) as a result of the differences in the channel gains of the users. Let's dig in to see how this works.
Signal model
Let $x_f$ and $x_n$ denote the messages to be transmitted by $U_f$ and $U_n$ respectively. Let's assume that both the users transmit their signals with the same power. The signal transmitted by $U_f$ is, $\sqrt{P}x_f$. Similarly, the signal transmitted by $U_n$ is $\sqrt{P}x_n$.
By now, the following two questions will rise in our mind.
If both users transmit with the same power, then how can the BS differentiate their signals in the power domain?
How SIC is done in uplink NOMA?
To answer these questions, let's write the equation for the received signal at the BS. $$y = \underbrace{\sqrt{P}x_fh_f}_\textrm{far user term} + \underbrace{\sqrt{P}x_nh_n}_\textrm{near user term} + w$$
As per our initial assumptions, $U_n$ is closer to the BS, which means that he has a strong channel gain compared to $U_f$. i.e., $|h_n|^2 \gt |h_f|^2$. So, in the received signal, the power of the $U_n$'s term will be dominating. $$y = \sqrt{P}x_fh_f + \underbrace{\sqrt{P}x_nh_n}_\textrm{dominating} + w$$
This means, the BS can treat the $U_f$'s term as interference and directly decode the $x_n$ term. Next, successive interference cancellation can be done to retrieve the $x_f$.
Now we see the power domain differentiation coming into play. This is where uplink NOMA differs from its downlink counterpart. If the users are sufficiently far apart from each other, they would have distinct channel gains. As a result, the BS can successfully differentiate their signals, (even without power control a.k.a superposition coding). In other words, the power control is brought about by the inherent differences in the channel gains and not by intentional superposition coding as in downlink NOMA.
It is important to note that, for uplink NOMA to be successful, the channel gains of the users must be distinct enough. If both the users have similar channel gains, then there is no way for the BS to distinguish their signals in the power domain. In that case, power control must be done. That is, the users must transmit with different powers.
Another important observation from the above discussion is that, the SIC order is reversed in uplink NOMA. The near user's signal is decoded first. Whereas in downlink NOMA, the far user's signal is decoded first.
Achievable Rates of uplink NOMA
The near user's signal is decoded first, by treating the far user's signal as interference. Therefore, the achievable rate at the BS to decode the near user data is, $$R_n = log_2\left(1 + \dfrac{P|h_n|^2}{P|h_f|^2+\sigma^2}\right)$$
After successive interference cancellation (SIC), the far user's achievable rate is given by, $$R_f = log_2\left(1 + \dfrac{P|h_f|^2}{\sigma^2}\right)$$
MATLAB Simulation
Next, let's simulate our uplink NOMA network in MATLAB and study its outage performance. In this simulation, no power control is implemented. The inherent differences in the channel gains are exploited to aid the power domain multiplexing. The simulation is done for two different near user - far user distance pairs (800, 500)m and (800, 200)m. When we plot the outage, we get the following graph.
Fig. 2: Outage of uplink NOMA
Before inferring the graph, we can make the following observation: the channel gains of the users are more distinct for the (800,200)m pair than for the (800,500)m pair.
We can see from the above graph that, both the users experience lesser outage for the distance pair (800,200)m. For the (800,500)m pair, the outage probability is high for both the users. This confirms the reasoning that we made before. That is, NOMA gives superior performance when the channel conditions between the users become more and more distinct.
Further improvement in performance can be achieved by power control, which we will see in the next post. Thank you!
References
Y. Liu, M. Derakhshani and S. Lambotharan, "Outage analysis and power allocation in uplink non-orthogonal multiple access systems," IEEE Communication Letters, vol. 22, no. 2, pp. 336-339, 2018.
H. Tabassum, M. S. Ali, E. Hossain, M. J. Hossain and D. I. Kim, "Uplink Vs. Downlink NOMA in Cellular Networks: Challenges and Research Directions," 2017 IEEE 85th Vehicular Technology Conference (VTC Spring), 2017, pp. 1-7, doi: 10.1109/VTCSpring.2017.8108691.
Thank you very much
ReplyDeletethanks for the best information...please try to make posts on MIMO-NOMA
ReplyDeleteExtraordinary work thank you very much.
ReplyDeleteplease... i want matlab code of this project (( Performance Enhancement of Non-Orthogonal Multiple Access (NOMA) based on MIMO System )) with proposed newer better performance by using suitable algorithm.
ReplyDelete..................thank you...............
Thankyou very much for your work. It helps a lot. But please clear me If I am wrong. Since the 2 probabilities are dependent so should we not be multiplying them instead of adding them?
ReplyDelete$P_f = Pr\left(R_n \lt R_n^*\right)+Pr\left(R_n \gt R_n^*,R_f \lt R_f^*\right)$
Hi, yes we should be multiplying them... As explained in the reference paper.
DeleteThanks for pointing that out
Thankyou and keep up the good work. I am a fan and follower
DeleteSorry for the late reply. Thankyou for the explanation. I am not sure about this. I will get my head around the concept. Thankyou again. Very good work.
DeleteYou have done a great job for many people. Unlike Machine Learning stuff, research in wireless communication does not get much attention and therefore it is shroud behind weird terminology without any insight.
ReplyDeleteThat's so true! And thanks :)
DeleteIs it possible to simulate with BW = unity and unity noise power ? And should I do it in my research paper ?
ReplyDeleteHi Minh, if BW = unity, then the thermal noise power would be -174 dBm. You can either assume BW or noise power, not both because BW and noise power are related as
DeleteNo = kTB. (k = bolzmann constant, T = temperature, B = bandwidth)
I have a question, why are we taking the magnitude g of N = 10^5 number of channel coefficients?
ReplyDelete%Rayleigh fading coefficients
hf = sqrt(df^-eta)*(randn(N,1)+1i*randn(N,1))/sqrt(2);
%Channel gains
gf = (abs(hf)).^2;
What does N depict here? Because if I take a single instance N=1 and take magnitude g for N=1, the value is very very small. Why do we need N=10^7 coeffcients combined magnitude to find out capacity, why not just N=1?
Since hf is a random variable, we want to find the average capacity. We cannot conclude the value of capacity from one value of hf because hf keeps changing randomly. So, we generate 10^7 independent samples of hf, find the capacity for each sample, and then take the average capacity value. This is also called monte carlo simulation. hope this helps
DeleteSo this gf here should be a constant single value but its a vector. Why? please clarify this point.
Deletegf is a single value. But it is a random number. So the capacity calculated by a single realization of gf will also be random. If we want to calculate the average capacity, we can generate 10^7 values for gf, all drawn from the same distribution, calculate the capacity for each of the 10^7 values of gf and then take the average. This is called Monte Carlo simulation. Hope this helps
DeleteThank You for the explanation. Please share a general equation for achievable rate of Uplink NOMA and OMA.
ReplyDeleteHello Everyone
ReplyDeleteCan anyone please send information on OUTAGE PROBABLITY in Rayleigh Fading channel???...like Equations etc....please
Please upload code for BER calculation for Uplink NOMA because I am confused on equalization part as independent channels are involved in uplink case in comparison to single channel in downlink case.
ReplyDeleteIs there any one had the matlab code for BER of Cooperative NOMA?
ReplyDeleteCan you do a tutorial at the bit level of abstraction for rate splitting ? This scheme generalized NOMA :D
ReplyDeleteHEY NICE WORK just want to know you haven't consider power allocation in this?
ReplyDeleteYou mentionned that (( the SIC order is reversed in uplink NOMA. The near user's signal is decoded first. Whereas in downlink NOMA, the far user's signal is decoded first.))Could you please , give us a reference about this , Thank's a lot
ReplyDeleteHi Radio-Frequence, here is a reference:
DeleteH. Tabassum, M. S. Ali, E. Hossain, M. J. Hossain and D. I. Kim, "Uplink Vs. Downlink NOMA in Cellular Networks: Challenges and Research Directions," 2017 IEEE 85th Vehicular Technology Conference (VTC Spring), 2017, pp. 1-7, doi: 10.1109/VTCSpring.2017.8108691.
In Uplink, Near user is first decode, then in that case for imperfect SIC, far user experience error propagation. Can you elaborate this with equation?
DeleteIn Uplink, Near user is decoded first. In case of Imperfect SIC, far user will experience error propagation. Can you explain this with equations?
Deleteif (Cf(k) < rf) || (Cn(k) < rn) %Outage condition for far user
ReplyDeletepf(u) = pf(u) + 1;
end
if Cn(k) < rn %Outage condition for near user
pn(u) = pn(u)+1;
end
Could you please explain me the outage condition why < for Pf.
Hi Joe,
ReplyDeleteCould you help me out why you have use < for both condition while finding outage?
if (Cf(k) < rf) || (Cn(k) < rn) %Outage condition for far user
pf(u) = pf(u) + 1;
end
if Cn(k) < rn %Outage condition for near user
pn(u) = pn(u)+1;
end
Hi,
ReplyDeleteWhat will be the affect of imperfect SIC in uplink NOMA transmission?
In uplink tx, BS first decode the near user treating other users as interference or noise. Then it decode the far user.
So I can assume that, imperfect SIC has no impact in uplink transmission as long as BS can distinguish users( i.e. channel gain is distinct)
When I am running given matlab code, it is giving this error
ReplyDeleteUndefined function or method 'db2pow' for input arguments of type 'double'.
Error in ==> uplinkNOMA1 at 19
pt = (10^-3)*db2pow(Pt); %in watts
Kindly, discuss about it
Please, can you explain this? In the beginning, you knew the ( Pt = -60 : 5 : 60 ) ; in dBm, but when drawing, you called it the " Transmit SNR (dB) ". What is the explanation for that? Thank you very much for this wonderful work.
ReplyDeleteThis blog post provides valuable insights into uplink NOMA capacity outage in MATLAB, highlighting the complexities of wireless communication systems. In Bedford, businesses rely on robust IT infrastructure to support their operations, making reliable IT support essential. Total Group offers comprehensive IT support services in Bedford, ensuring businesses have the technical expertise they need to navigate challenges effectively. With their tailored solutions and proactive approach, Total Group helps businesses optimize their IT systems for maximum efficiency and reliability. Learn more about Total Group's IT support services in Bedford https://totalgroup.co.uk/it-support-bedford/.
ReplyDelete