Uplink NOMA - Outage Probability in MATLAB

 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.

Comments

  1. thanks for the best information...please try to make posts on MIMO-NOMA

    ReplyDelete
  2. Extraordinary work thank you very much.

    ReplyDelete
  3. please... 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.
    ..................thank you...............

    ReplyDelete
  4. 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?
    $P_f = Pr\left(R_n \lt R_n^*\right)+Pr\left(R_n \gt R_n^*,R_f \lt R_f^*\right)$

    ReplyDelete
    Replies
    1. Hi, yes we should be multiplying them... As explained in the reference paper.
      Thanks for pointing that out

      Delete
    2. Thankyou and keep up the good work. I am a fan and follower

      Delete
    3. Sorry 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.

      Delete
  5. You 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.

    ReplyDelete
  6. Is it possible to simulate with BW = unity and unity noise power ? And should I do it in my research paper ?

    ReplyDelete
    Replies
    1. Hi 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
      No = kTB. (k = bolzmann constant, T = temperature, B = bandwidth)

      Delete
  7. I have a question, why are we taking the magnitude g of N = 10^5 number of channel coefficients?

    %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?

    ReplyDelete
    Replies
    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

      Delete
    2. So this gf here should be a constant single value but its a vector. Why? please clarify this point.

      Delete
    3. gf 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

      Delete
  8. Thank You for the explanation. Please share a general equation for achievable rate of Uplink NOMA and OMA.

    ReplyDelete
  9. Hello Everyone
    Can anyone please send information on OUTAGE PROBABLITY in Rayleigh Fading channel???...like Equations etc....please

    ReplyDelete
  10. 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.

    ReplyDelete
  11. Is there any one had the matlab code for BER of Cooperative NOMA?

    ReplyDelete
  12. Can you do a tutorial at the bit level of abstraction for rate splitting ? This scheme generalized NOMA :D

    ReplyDelete
  13. HEY NICE WORK just want to know you haven't consider power allocation in this?

    ReplyDelete
  14. You 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

    ReplyDelete
    Replies
    1. Hi Radio-Frequence, here is a reference:
      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.

      Delete
    2. 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?

      Delete
    3. In Uplink, Near user is decoded first. In case of Imperfect SIC, far user will experience error propagation. Can you explain this with equations?

      Delete
  15. 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
    Could you please explain me the outage condition why < for Pf.

    ReplyDelete
  16. Hi Joe,
    Could 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

    ReplyDelete
  17. Hi,
    What 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)

    ReplyDelete
  18. When I am running given matlab code, it is giving this error

    Undefined 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

    ReplyDelete
  19. 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.

    ReplyDelete
  20. This 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

Post a Comment

Popular posts from this blog

How to simulate BER, capacity and outage probability of NOMA (Rayleigh fading) using MATLAB?

How to simulate a simple NOMA system (AWGN) using MATLAB?

How to do power allocation in NOMA? (with fairness to far/weak user)