# Effective Receiver Design for MIMO Visible Light Communication with Quadrichromatic LEDs
## 3 Proposed Receiver Design
### Proposed Solution
A favorable error performance in the simulations can be achieved with a wise choice of initial solution. Therefore, a number of different initial solutions is necessary. To obtain different initial solutions of \(\mathbf{U}=\left[\mathbf{u}_{1}^{T},\mathbf{u}_{2}^{T},...,\mathbf{u}_{N_{r}} ^{T}\right]^{T}\), a method is required to generate a number of initial vectors \(\mathbf{u}_{i}\) for the \(i\)-th receiver. Since, with each receiver, the set of all normal vectors constructs a sphere with the center the location of the receiver and the radius being equal to one. Therefore, for each multi-color receiver, we divide the unit sphere to \(2N\) points with \(N\) being the number of initial solution corresponding to the number of initial vector \(\mathbf{u}_{i}\) for each receiver. For \(1\leqslant t\leqslant N\), the normal vectors can be calculated using \(\alpha_{t}\) and \(\beta_{t}\), defined as [10]  
\[\alpha_{t}=\arccos\left(v_{t}\right), \tag{18}\]  
and  
\[\beta_{t}\approx \begin{cases}0,&t=1,\\ \left(\beta_{t-1}+\frac{2.5456}{\sqrt{N\left(1-v_{t}^{2}\right)}}\right) \bmod 2\pi,&2\leqslant t\leqslant N,\end{cases}  \tag{19}\]  
where \(v_{t}=1-\frac{2(t-1)}{2N-1}\) and the \"mod \(2\pi\)\" notation is to ensure that \(\beta_{t}\in[0,2\pi]\). Finally, the \(t\)-th initial vector for each receiver can be computed by  
\[\mathbf{u}_{i}(t)=\left[ \begin{array}{c}x_{i}(t)\\ y_{i}(t)\\ z_{i}(t)\end{array} \right]=\left[ \begin{array}{c}\sin\alpha_{t}\cos\beta_{t }\\ \sin\alpha_{t}\sin\beta_{t}\\ \cos\alpha_{t}\end{array} \right]. \tag{20}\]  
The design procedure of the proposed technique is summarized in Algorithm 1. Through each iteration, the algorithm exploits the convex problem with the aid of the Taylor approximation method. Moreover, to reduce the computational complexity, two stages are defined. In the first stage, the algorithm solves the optimization problem (P3) with different initial solutions \(\mathbf{U}^{(0)}\) but through a small number of iterations. Through our simulation, three iterations are generally enough for discovering a coarse solution for each initial \(\mathbf{U}^{(0)}\). Then, in the second stage, the best coarse solution can be refined until it satisfies the convergence condition \(\varsigma\). ```
0: Set of \(N_{\text{initial}}\) initial vectors \(\left\{\mathbf{U}_{1},\mathbf{U}_{2}...,\mathbf{U}_{N_{\text{initial}}}\right\}\) that each of \(\mathbf{U}=\left[\mathbf{u}_{1}^{T},\mathbf{u}_{2}^{T},...,\mathbf{u}_{N_{ \text{r}}}^{T}\right]^{T}\) satisfies \(0<\theta_{ij}\leqslant\theta_{\text{fov}},\forall i,j\). 0: Optimal \(\mathbf{U}_{\text{opt}}\) First, stage: Coarse solution finding. 1:for\(ite=1\):\(N_{\text{initial}}\)do
2: set \(\mathbf{U}^{(0)}=\mathbf{U}_{ite};\alpha_{\max}=0\)
3:for\(l=0:2\)do
4: normalize \(\mathbf{U}^{(l)}\) by setting \(\mathbf{u}_{i}^{(l)}=\frac{\mathbf{u}_{i}^{(l)}}{\|\mathbf{u}_{i}^{(l)}\|}\)
5: solve (P3) with input \(\mathbf{U}^{(l)}\) to get \(\mathbf{U}_{\text{sol}}\) and \(\alpha^{(l)}\)
6: set \(\mathbf{U}^{(l+1)}=\mathbf{U}_{\text{sol}}\)
7:endfor
8:if\(\alpha^{(l)}>\alpha_{\max}\)then
9:\(\mathbf{U}_{\text{opt}}=\mathbf{U}_{\text{sol}};\alpha_{\max}=\alpha^{(l)}\)
10:endif
11:endfor
12:Second stage: Refine the optimal solution. 13: set \(l=1\); \(\mathbf{U}^{(0)}=\mathbf{U}_{\text{opt}};\alpha^{(0)}=\alpha_{\max}\)
14:while\(\|\alpha^{(l)}-\alpha^{(l-1)}\|\geqslant\varsigma\)do
15: normalize \(\mathbf{U}^{(l)}\) by setting \(\mathbf{u}_{i}^{(l)}=\frac{\mathbf{u}_{i}^{(l)}}{\|\mathbf{u}_{i}^{(l)}\|}\)
16: solve (P3) with input \(\mathbf{U}^{(l)}\) to get \(\mathbf{U}_{\text{opt}}\) and \(\alpha^{(l)}\)
17: set \(\mathbf{U}^{(l+1)}=\mathbf{U}_{\text{opt}}\)
18: set \(l=l+1\)
19:endwhile
```  
**Algorithm 1** Proposed algorithm.