Skip to main content
. 2022 Sep 10;22(18):6858. doi: 10.3390/s22186858
Algorithm 2: User preselection algorithm.
Step 1: Orthogonal user preselection algorithm among the different multicast groups.
Input: CSI.
1. Let Id1=Indexmaxhk,l,k,l, select the user with the largest channel gain, Id1 is the index of the user.
2. while lL,lId1
3.   For all users in the lth multicast group, calculate Zk,l=hk,lINj=Id1IdlhjHhjhj22 in turn.
4.  Idl=IndexmaxZk,l,kl, the user with index Idl is the preselected orthogonal user of the lth multicast group.
5. end
Output: Orthogonal users among the different multicast groups.
Step 2: User preselection algorithm in each multicast group.
Input: Orthogonal users among the different multicast groups, CSI.
1. For l=1:L
2.   For other users in the lth multicast group except the orthogonal user preselected in step 1, calculate the linear correlation value between each user and the preselected orthogonal user of the multicast group in turn, i.e., Ck,l=hk,lHhIdlhIdlHhIdlH22.
3.   Based on the Ck,l of users in each multicast group, select top Ul,p1 largest users, plus the orthogonal users in step 1 as the preselected users of each multicast group.
4. end
5. end
Output: Preselected users for each multicast group.