From: User grouping and resource allocation in multiuser MIMO systems under SWIPT
 | Beginning of a superframe: |
1: | Run user supergrouping algorithm in Table 3: obtain sets \(\mathcal {U}^{S}_{I}\) and \(\mathcal {U}^{S}_{E}\) |
 | Beginning of each frame (two options): |
 | Option 1: |
2a: | Run information user grouping algorithm in Table 4: obtain set \(\mathcal {U}_{I}\) |
2b: | Run harvesting user grouping algorithms in Table 5: obtain set \(\mathcal {U}_{E}\) |
2c: | Run resource allocation algorithm in Table 2 |
 | Option 2: |
3a: | Run joint information and harvesting grouping algorithm in Table 6: |
 | Obtain sets \(\mathcal {U}_{I}\) and \(\mathcal {U}_{E}\) |
3b: | Run resource allocation algorithm in Table 2 |
 | End of each frame: |
4: | Update batteries: |
 | \(C_{i}(t) = \left (C_{i}(t-1) - T_{f} P_{\text {tot},i}^{r_{x}}(R^{\star }_{i}(t-1))\right)_{0}^{C_{\max }^{i}}, \quad \forall i \in \mathcal {U}_{I}\) |
 | \(C_{j}(t) = \left (C_{j}(t-1) + T_{f}\bar {Q}_{j}(t-1) - T_{f} P_{c}^{r_{x}}\right)_{0}^{C_{\max }^{j}}, \quad \forall j \in \mathcal {U}_{E}\) |
5: | Update weights (e.g., using a PF approach): |
 | \(w_{i}(t) = \frac {1}{T_{i}(t)}\), \(T_{i}(t) = \left (1-\frac {1}{T_{c}}\right)T_{i}(t-2) + \frac {1}{T_{c}} R^{\star }_{i}(t-1)\) |