Skip to main content
. 2023 Jun 27;23(13):5963. doi: 10.3390/s23135963
Algorithm 1 Bi-ALS-KronF Receiver for Estimating the Symbol Matrices S(l) and the Channels H(SR) and H(RD).
Input: tensors X(SR), X(RD), G(S), G(R)
Output: Estimated symbol matrices and channels
First hop: source–relay
- Step 1: Bi-ALS algorithm
it=0
(1) Initialization of S(l)[0] with symbols randomly drawn from the alphabet and s11(l)=1, for l[1,L].
(2) Update the estimates of HFMS×MR(SR) and S using Equations (30) and (31) or (32) and (33).
(3) Calculate the error (34) and |err[it1]err[it]|.
- if |err[it1]err[it]|ϵ or it= maximum number of iterations
- stop
- else itit+1;
(4) Eliminate the scaling ambiguities using Equation (35).
- Step 2: KronF algorithm
(5) Build the rank-one tensor: S^^=reshape(S^^,[R1N1,...,RLNL]).
(6) Estimate each vector s^(l) by means of the KronF algorithm recalled in Appendix A, and unvectorize it using Equation (37).
(7) Eliminate the scaling ambiguities using Equation (38).
(8) Project the estimated symbols onto the symbol alphabet.
Second hop: relay–destination
- Step 1: Bi-ALS algorithm
- Apply the stages (1) to (4) of the first hop, using the correspondences (23) and (24).
- Step 2: KronF algorithm
- Apply the stages (5) to (8) of the first hop, using the correspondences (23) and (24).