MIMO - NOMA

NOMA is a versatile technology because it can be combined with lots of other techniques like cooperative communication, SWIPT, MIMO etc. We already discussed the intersection of NOMA with cooperative and SWIPT networks. In this post, let's see how NOMA works in a simple MIMO network

System model

Consider a 2 x 1 downlink MIMO system as shown in Fig. 1. Let $d_1$ and $d_2$ denote the distances of U1 and U2 respectively from the MIMO transmitter. Here, we assume $d_1 \gt d_2$. That is, U1 is the weak user and U2 is the strong user. 

We know that MIMO can be used for either spatial multiplexing (increase achievable rate) or diversity gain (decrease BER). Here, we are using MIMO for achieving diversity gain. Hence, both the transmit antennas 1 and 2 transmit the same information. 

Let $x_1$ and $x_2$ denote the information intended for U1 and U2. Following the notation conventions of MIMO, let $h_{rt}$ denote the Rayleigh fading channel between the $t^{th}$ transmit antenna and $r^{th}$ receiver.



Fig. 1: MIMO-NOMA system model

Signal model

Transmit signal

Signal transmitted by both the transmit antennas are given by, $$x = \sqrt{P}\left(\sqrt{\alpha_1}x_1+\sqrt{\alpha_2}x_2 \right)$$ 
(1)
where $\alpha_1$ and $\alpha_2$ are the NOMA power allocation coefficients. Since U1 is the weak user, we have $\alpha_1 \gt \alpha_2$.

Received signals

$x$ is transmitted simultaneously by both the transmit antennas. Therefore, the received signal at U1 is,
$$y_1 = xh_{11}+xh_{12}+n_1=x\left(h_{11}+h_{12}\right)+n_1$$
(2)
Similarly, the signal received by U2 is given by,
$$y_2=xh_{21}+xh_{22}+n_2=x\left(h_{21}+h_{22}\right)+n_2$$
(3)
Here, $n_1$ and $n_2$ are AWGN noise samples with mean zero and variance $\sigma^2$

Decoding at user 1

Now, U1 has to decode $x_1$ from $y_1$. Since U1 is the weak user, his signal, $x_1$ is allocated more power. That is, $\alpha_1 \gt \alpha_2$. Therefore, he can directly decode $x_1$ from $y_1$, treating the $x_2$ term as interference.

Substituting for $x$ in (2), we get, $$y_1 = \sqrt{P}\left(\sqrt{\alpha_1}x_1+\sqrt{\alpha_2}x_2\right)\left(h_{11}+h_{12}\right)+n_1$$
(4)
Expanding, $$y_1 = \underbrace{\sqrt{P}\sqrt{\alpha_1}x_1\left(h_{11}+h_{12}\right)}_\textrm{desired}+\underbrace{\sqrt{P}\sqrt{\alpha_2}x_2\left(h_{11}+h_{12}\right)}_\textrm{interference}+n_1$$
(5)
Now, we can write the SINR equation for U1 in decoding $x_1$ as follows,
$$\gamma_1 = \dfrac{P\alpha_1|h_{11}+h_{12}|^2}{P\alpha_2|h_{11}+h_{12}|^2+\sigma^2}$$
(6)
Therefore, the achievable rate at U1 is given by,
$$R_1 = log_2\left(1+\gamma_1 \right)$$
(7)

Decoding at user 2

U2 must decode $x_2$ from $y_2$. Since U2 is the strong user, his signal, $x_2$ is allocated less power. Therefore, in $y_2$, the power of the $x_1$ term will be dominating. So, U2 will first perform direct decoding on $y_2$ to obtain $x_1$. Then successive interference cancellation (SIC) is carried out to remove $x_1$. Then, $x_2$ is decoded.

Substituting for $x$ in (3) and expanding, we get,
$$y_2 = \underbrace{\sqrt{P}\sqrt{\alpha_1}x_1\left(h_{21}+h_{22}\right)}_\textrm{undesired & dominating}+\underbrace{\sqrt{P}\sqrt{\alpha_2}x_2\left(h_{21}+h_{22}\right)}_\textrm{desired}+n_2$$
(8)
The SINR at U1 for direct decoding of $x_1$ is,
$$\gamma_{12} = \dfrac{P\alpha_1|h_{21}+h_{22}|^2}{P\alpha_2|h_{21}+h_{22}|^2+\sigma^2}$$
(9)
After SIC, the first term of (8) will be removed and the remaining signal will be,
$$y'_2 = \underbrace{\sqrt{P}\sqrt{\alpha_2}x_2\left(h_{21}+h_{22}\right)}_\textrm{desired}+n_2$$
(10)
Now, the SNR for U2 to decode its own signal is given by,
$$\gamma_2 = \dfrac{P\alpha_2|h_{21}+h_{22}|^2}{\sigma^2}$$
(11)
Finally, the achievable rates at U2 for decoding $x_1$ and $x_2$ are given by,
$$R_{12} = log_2\left(1+\gamma_{12} \right)$$
(12)
$$R_2 = log_2\left(1+\gamma_2 \right)$$
(13)

MIMO-OMA for comparison

To see how well our MIMO-NOMA network performs, we are going to use a MIMO-OMA network as our baseline. In MIMO-OMA, let's divide our transmission into two equal time slots. In the first time slot, both the antennas transmit to U1 and in the second time slot, both the antennas transmit to U2.

Signal transmitted by both antennas in time slot 1 to U1 is $Px_1$. Signal received at U1 is, $$y_{1,oma} = \sqrt{P}x_1\left(h_{11}+h_{12}\right)+n_1$$

Similarly, signal transmitted by both the antennas in time slot 2 to U2 is $Px_2$ and the received signal at U2 is, $$y_{2,oma} = \sqrt{P}x_2\left(h_{21}+h_{22}\right)+n_1$$

The SNRs at U1 and U2 are, $\gamma_{1,oma} = \dfrac{P|h_{11}+h_{12}|^2}{\sigma^2}$ and $\gamma_{2,oma} = \dfrac{P|h_{21}+h_{22}|^2}{\sigma^2}$. 

Therefore, the achievable rates of MIMO-OMA for U1 and U2 are,
$$R_{1,oma} = \dfrac{1}{2}log_2\left(1+\gamma_{1,oma}\right)$$
(14)
$$R_{2,oma} = \dfrac{1}{2}log_2\left(1+\gamma_{2,oma}\right)$$
(15)
The factor $\dfrac{1}{2}$ in (14) and (15) is due to the fact that only half of the time slot is used for communicating to each user. (whereas in MIMO-NOMA, the entire time slot is used for simultaneous transmission to both users).

MATLAB simulation

In this section, let's study the sum rate and outage performance of our MIMO-NOMA network. The following simulation parameters were used: $d_1 = 500m$, $d_2 = 200m$. Path loss exponent, $\eta = 4$. $\alpha_1 = 0.75$, $\alpha_2 = 0.25$. Bandwidth = 1 MHz.

Sum rates

The achievable sum rate of MIMO-NOMA is, $R_1 + R_2$, while that of MIMO-OMA is, $R_{1,oma}+R_{2,oma}$.



It is very clear that MIMO-NOMA provides greater sum rate than MIMO-OMA, due to the fact that both users are served simultaneously with the same frequency resource. 

If we plot the individual achievable rates, we get the following interesting graph:

We can notice that the weak user suffers from a saturation in its achievable rate after a transmit power of 10 dBm. This is a characteristic theme that we observe in all NOMA networks. The interference experienced by weak user translates to a saturation in its achievable rate. This saturation of achievable rate won't be a problem if the required data rate of the weak user is less than the saturation limit. This problem is not present in OMA because, the weak user does not suffer from interference due to simultaneous transmissions. 

Outage probabilities

Next, let's plot the outage graphs of the users for both MIMO-NOMA and MIMO-OMA schemes. Since we are using fixed power allocation, it is very important to choose the target rates and power allocation coefficients properly. Let's choose the target rate for the weak user (U1) to be $R^*_1$=1 bps/Hz and that of the strong user (U2) to be $R^*_2$=3 bps/Hz. 

MIMO-NOMA

The weak user (U1) is in outage if his achievable rate, $R_1$ is less than his target rate, $R^*_1$. Mathematically, we can denote this as, $$P^1_{noma}=Pr\left(R_1 \lt R^*_1 \right)$$

The strong user must decode both U1's message and his own message correctly. That is, the target rates of both U1 and U2 must be met by the strong user. If the target rate of U1 is not met OR if the target rate of U1 is met but that of U2 is not met, then U2 will be in outage. Mathematically,

$$P^2_{noma} = Pr\left(R_{12}<R^*_1 \right)+Pr\left(R_{12}>R^*_1, R_2 \lt  R^*_2 \right)$$

MIMO-OMA

Outage equations for MIMO-OMA are straightforward.
$$P^1_{oma}=Pr\left(R_{1,oma} \lt R^*_1 \right)$$
$$P^2_{oma}=Pr\left(R_{2,oma} \lt R^*_2 \right)$$
The outage graph looks like this:



It is clear that MIMO-NOMA achieves less outage than MIMO-OMA for both the users, as expected. 

In the following posts, we will see more about MIMO-NOMA, such as, how beam forming can be used to further enhance the performance. Thank you, See you soon! 


Reference:

This excellent tutorial on transmit diversity by Dr. Raviraj Adve: [available online] https://www.comm.utoronto.ca/~rsadve/Notes/DiversityTransmit.pdf

For further reading about MIMO NOMA:

"The application of MIMO to non-orthogonal multiple access," Z. Ding et al., IEEE transactions on wireless communications, vol. 15, no. 1, 2016

"On the ergodic capacity of MIMO NOMA systems," Q. Sun et al.,IEEE wireless communication letters, vol. 4, no. 4, 2015

Bonus Code

What happens when we apply our fair power allocation technique to MIMO-NOMA? Download MIMO NOMA with Fair Power allocation here

Comments

  1. Hello Joe. I`m a fan of your work. I would like to know, if it is possible I "idealize" a scenario where I can apply massive MIMO mc-cooperative-NOMA, i.e, a scenario where we work, for instance, with M antennas at BS and K users, where 2 users are allocated per sub-band (total bandwidth is B, then, the subband is B/K) and adopting conventional precoding beyond the constraints to swipt (PS protocol).

    Basically, I want to know if it is possible to upgrade this paper "Decoupling or Learning: Joint Power Splitting and Allocation in MC-NOMA With SWIPT" in a MIMO scenario (without any physical limitation)?

    I appreciate your answer.

    ReplyDelete
    Replies
    1. Hi Wilson, Thank you!
      You can incorporate massive MIMO in such a network. In fact, with massive MIMO, you can support more than 2 users per subcarrier via beamforming. That would lead to enormous improvement in throughput

      Delete
    2. addition of beamforming for doing with massive MIMO

      Delete
  2. Thank you for this topic. Is it possible to include this code you wrote in your previous topics? Like dynamic power allocation ? And would we get the same result if we do it?

    ReplyDelete
    Replies
    1. Hi Amit, that's an interesting question. I will check this out and respond my observations to this thread

      Delete
    2. Hi Amit, depending on our application, we can use different power allocation strategies. In this network, I observed that if the difference between the channel gains of the two users is large enough, the fair PA gives better performance than fixed PA.

      Delete
    3. That's interesting. Could you share the code of fair PA using the MIMO?

      Delete
    4. hi Joe,
      Could you also share the code of fair PA using the MIMO?

      thanks

      Delete
    5. Hi, the code of fair PA MIMO is available for download at the end in this post.

      Delete
  3. Hi Joe. Thank you for this work. I need helps if you can ! if you have a PEP code then I need help with that!.

    ReplyDelete
    Replies
    1. Hi, you are welcome! I don't have code for PEP right now. Will let you know if I work on that

      Delete
  4. Hi Joe, Thank you for your clear explanation ,Could you share the code of Fair PA MIMO-NOMA.
    sreenu.sunkaraboina@gmail.com
    Thanks in advance

    ReplyDelete
  5. hi joe, thank's for your clear explain, could you share the code of BER MIMO - NOMA
    and what is the difference in your code when we use mu-mimo at reciever ?

    ReplyDelete
    Replies
    1. Hi, sure, we will see about BER of MIMO-NOMA as well as receiver side MIMO in future post

      Delete
    2. Hi joe ^^
      I'm interested in BER of MIMO-NOMA too, did you posted about it ?
      by the way I really appreciate your work ^^

      Delete
    3. Dear Joe, have you posted coding on BER of MIMO-NOMA? If not, please will you post/send to me? Thanks in advance.

      Delete
    4. Dear Joe, have you posted coding on BER of MIMO-NOMA? If not, please will you post/send to me? Thanks in advance.

      Delete
  6. Hi, Joe, thanks for you post first.
    I’m curious about how you determine the value of distance in the simulation.
    Currently, I’m working on user pairing scheme for NOMA in URLLC scenario, but what is the correct value of distance in the simulation I need to set really bother me.
    Very appreciate if you could give any hints about it, and thanks for your reply.

    ReplyDelete
    Replies
    1. Hi WJ,
      Let's say you have 1MHz Bandwidth => -114 dBm of noise power. Now, if your transmit power is very high (let's say 0 to 40 dBm or SNR is >100 dB), the distance can be as large as 1 or 2 km. If the transmit power is low (like in the range -94 to -100 dBm, SNR ~20 dB), now the distance will be a few meters.
      Of course, these values are not exact. But you can experiment around these range of values to find the right distance that gives good performance.
      In short, greater the transmit power, greater will be the coverage area.
      Hope this helps.

      Delete
    2. Hi, Joe, It really helps!
      Originally, I thought there are a set of value for distance which people will follow that when they work on this kind of research, but this seems to be fully configurable by myself.
      Anyway, really appreciate that.

      Delete
  7. dear dr joe,
    can you please add the reference used here MIMO-NOMA or give me good references if you can.
    big thanks
    best regards

    ReplyDelete
  8. Greetings Dr. joe

    Can you upload anything about "code domain NOMA", such as SCMA, PDMA, ...etc.
    thanks alot

    ReplyDelete
    Replies
    1. Hi Test, thanks for the suggestion. Will make a post about this soon!

      Delete
  9. Dear Dr. Joe,
    Please provide simulation code for Rician and Nakagami fading channels instead of Rayleigh fading, as it would help a lot of new learners.
    Thanks

    ReplyDelete
    Replies
    1. Hello, Thanks for the suggestion. Will make a post on rician and nakagami channels soon

      Delete
  10. Hi Joe, Thank you for your clear explanation
    Could you provide simulation code for fair resource allocation optimization in multi carrier NOMA system in Rayleigh fading channels ?
    or Could you share the code of Fair resource allocation optimization in multi carrier NOMA system with me in :
    haj.ho.kiani@gmail.com
    Suggested article: Energy-Efficient Resource Allocation in Multicarrier
    NOMA Systems with Fairness-2019-IEEE transaction
    Thanks.

    ReplyDelete
    Replies
    1. Hi Kian,
      Thanks for the suggestion. We'll cover this article in a future post

      Delete
  11. 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
  12. Hi,
    First of all thank you for very informative blog. All the blogs and issues from day1 are constructive and availability MATLAB code is ultimate support.
    Here I have a doubt while the super positioned message signal, Power should be under square root. While calculating SNR it was considered. Please correct if my understanding was wrong.
    thank you.

    ReplyDelete
    Replies
    1. Hi Ravishankar, thanks for pointing that out! Fixed it

      Delete
  13. please... i want matlab code for ( MIMO - NOMA system model ) by using power allocation technique.
    ....................................... thank you ....................................................

    ReplyDelete
  14. Hi everyone,
    I am currently working on a project "Performance analysis of Mimo-Noma ,Noma and Oma for Outage Probablitiy Parameter".Please help me .Share matlab codes or material etc .

    ReplyDelete
    Replies
    1. I'am working on this too now, could you please help me with MATLAB codes if you finished your project?
      Thank you in advance..

      Delete
    2. Hey, can you share your code, please?

      Delete
  15. Warm greeting Joe
    what about using multiuser MIMO instead of using MISO for the post

    ReplyDelete
    Replies
    1. Hi Ahmed, thanks for the suggestion.
      We'll cover multiuser MIMO in a future post

      Delete
  16. Hi everyone,
    Can anyone please share the Matlab Code of Outage Probablity for MIMO-NOMA??

    ReplyDelete
    Replies
    1. Hey, have you got the code? I need it if you have that.

      Delete
    2. Have you recieved the code, if so please share.

      Delete
    3. This comment has been removed by the author.

      Delete
  17. Hi joe,
    Great fan of your work...pls make posts on MU- MIMO-NOMA using beamforming and user pairing techniques...

    ReplyDelete
    Replies
    1. Hi sadhana, thanks for the suggestion. We'll see about MU-MIMO-NOMA in future posts

      Delete
  18. please make a posts on MIMO NOMA in multi user case with precoding and detection techniques..

    ReplyDelete
  19. Hi sir ,please make tutorial on user pairing/grouping in downlink NOMA .

    ReplyDelete
  20. Hey, Joe.
    How can you say that this MIMO search has no more than one user antenna in the receiver
    We can say that this MISO and MIMO
    Please explain
    And thanks.

    ReplyDelete
  21. Dear Joe,
    I have one very important query regarding your post. Please comment on this. In you above simulated results, in Matlab coding you have generated g1 and g2 as channel gains associated with each user. These gains are of dimensions [N*1]. Please clarify how is this justifying? Because channel gains are always constant values. In this scenario as there are two transmit and one receive antenna on each user, so g1 and g2 should be of dimensions[1*1].
    Waiting for your response.
    Thanks

    ReplyDelete
    Replies
    1. Hi, gf is a single value with dimension [1*1]. 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, (each with dimension [1*1]) all drawn from the same distribution, calculate the capacity for each of the 10^7 values of gf and then take the average. (Monte carlo simulation)
      This is equivalent to generating a [10^7 * 1] vector of values for gf and proceeding. Hope this helps

      Delete
    2. I agree but this justification satisfy the SISO scenario but in MISO as the model mentioned in this post we have two transmit antennas and one receiving antenna so the dimensions of channel paths i.e h should be [1*2] i mean the channel should be generated like this:
      h=sqrt(d1^-eta)*(randn(1,2) + 1i*randn(1,2))/sqrt(2)
      Similarly the corresponding gains. I am confused about how you generated channel paths and gains of MISO system. Please if you can clarify.
      Thanks

      Delete
    3. Hi, we can generate the channel coefficients for both antennas in one variable as as h=sqrt(d1^-eta)*(randn(1,2) + 1i*randn(1,2))/sqrt(2) like you said.
      Here, I generated h as two separate parts:
      h11 = sqrt(d1^-eta)*(randn(1,1) + 1i*randn(1,1))/sqrt(2)
      h12 = sqrt(d1^-eta)*(randn(1,1) + 1i*randn(1,1))/sqrt(2)
      one for each antenna. Both give the same results

      Delete
  22. Hello, Mr Joe, really appreciate your contributions so far. Pls
    Can you show how we can implement Fair power allocation for four users
    Thanks

    ReplyDelete
  23. Mr. Joe, thank you so much for your contributions. i need the power allocation for imperfect CSI NOMA system. do you have the code if so sent to reena.flyways@gmail.com

    ReplyDelete
  24. hi Joe, how the ber performance is calculated in the MIMO-NOMA scenario. can you share some insights on this topic. Thanks in advance. I am using ML detector for optimal detection and following the same SIC procedure, but graphs which i am getting are not waterfall curves. if required, i will share the code, will you please look into it?

    ReplyDelete
    Replies
    1. Dear Joe, please will you post upon BER of MIMO-NOMA?

      Delete
  25. Hi
    the rate calculation here e.g. R1=log2(1+Îŗ1)
    here Îŗ1 is function of |h11+h12|2
    will it be safe to interpret that |h11+h12|2 is equivalent to eigen value of H matrix ??
    if not then how can we compare the rate formula with equation - 𝑐=∑log⁡[𝑰+((𝜆𝑖*𝜆𝑖∗𝑃𝑖))/𝑛*𝑛] ?

    ReplyDelete
  26. Hi Joe,
    I am getting confuse with path gain term and eigen value.
    kindly, help me out here.
    usually rate of wireless communication have the form : log2(1+SNR)
    where SNR in case of MIMO can be defined with corresponding antenna transmission power and eigen value (Îģi) .
    here in your work you used channel path gain : g1 = h11+h12 and other gain term in similar fashion.
    is there are any similarity between gi and Îģi ??

    ReplyDelete
  27. Hello Joe, I am huge fan of your work, in the end of this blog you have mentioned that you will use beamforming with NOMA, can you provide any data or code related to that it will be very helpful

    ReplyDelete

  28. Hi, thank you for the great explanation!
    Can you pls, clarify if there is more than two signals, the case of massive MIMO and its code.??

    ReplyDelete

  29. Hey, thank you for the great explanation!
    Can you please, explain if there is more than one signal, the case of massive MIMO < and its code,
    I am interested in Massive MIMO

    ReplyDelete
  30. how can i plot the BER for this code?

    ReplyDelete
  31. Hello, From the bonus code I can see, it only gives results for near user in terms of outage probability and spectral efficiency. I want to plot the same for the far user too. Can you please guide me how to do so?

    ReplyDelete
  32. Dear Dr. Joe,
    Great fan of your work

    Can you please explain why you don’t divide the transmit power with number of antenna?
    The received signal for the U1 and U2 it shouldn't be like this:

    Y_(1,oma)=√(P/2 ) x_1 (h_(1,1 )+h_1,2 )+n1
    Y_(2,oma)=√(P/2 ) x_1 (h_(2,1 )+h_2,2 )+n2

    Thank you very much
    in advance

    ReplyDelete
  33. Dear Dr. Joe,
    Great fan of your work
    Can you please explain why you don’t divide the transmit power with number of antenna?
    The received signal for the U1 and U2 it shouldn't be like this:
    Y_(1,oma)=√(P/2 ) x_1 (h_(1,1 )+h_1,2 )+n1
    Y_(2,oma)=√(P/2 ) x_1 (h_(2,1 )+h_2,2 )+n2
    Thank you very much
    in advance

    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)