Impact of Liquid Crystal Based Interference Mitigation and Precoding on the Multiuser Performance of VLC Massive MIMO Arrays

In visible light communication systems, the ability to suppress interference caused by other light sources is a major benefit towards performance improvements. Especially for large transmitter arrays or even multi-cell arrangements, the interference problem needs to be handled. In previous work, we have presented a liquid crystal display (LCD) used as an adaptive interference-suppression filter mounted in front of each photodetector. The display elements are switched on and off in such a way that light emitted by unwanted light sources ideally is blocked, but light emitted by desired light sources reaches the detector. The pattern generated by the LC display has strong impact on the system performance. In this paper, we propose combined precoding in conjunction with LCD-based interference suppression in order to increase the signal-to-interference-plus-noise ratio and to ensure user fairness in massive MIMO scenarios. The suggested precoding strategy uses a new heuristic optimization approach based on the Santa Claus problem on unrelated machines known from computer sciences, and employs only binary entries in the weighting matrix. Corresponding results are compared with a genetic evolutionary optimization strategy and with conventional zero-forcing precoding. Regarding performance evaluation, we perform numerical ray-tracing simulations and present a room-scale VLC testbed for experimental verification.

commercial and public installations -regardless of indoor or outdoor settings. Another benefit is their dual-use property, which encourages the deployment of LEDs even more, and where systems with the purpose of illumination and simultaneous communication can be realized by the same hardware. LEDs are semiconductors, which can be switched on and off with high frequency without losing lamp lifetime. Accordingly, this method of driving an LED is the most common one to realize a dimming effect or to modulate the light with data. But the requirements for illumination and communication are very different: illumination demands a consistent level of light with the same light color, where in communication applications this is not wanted as it causes interference [1], [2]. Due to the fact that a single LED itself is relatively small and limited in power, many of them are grouped together in order to form LED arrays. These arrays are used in single lamps or are distributed evenly over the area to ensure a uniform, high-quality illumination. The latter case results in a spatial arrangement which consists of many equal LED elements. From the communication-technology point of view, we can interpret this arrangement as a transmitter array in a multiple user environment, so in total as a multiuser multiple-input multiple-output (MU-MIMO) system. When the amount of transmitter LEDs is much higher than the number of receivers, we can talk about a massive MIMO system. In this paper, we assume that one receiver corresponds to one user. In order to realize the full potential of such a communication system, it is crucial to handle the interference, which the different light sources are causing to each other, without reducing the illumination or data link quality. A massive MIMO communication system can unlock its full capacity when all user data channels are simultaneously separated in parallel single-input singleoutput channels with no crosstalk between them. State-of-the art solutions use algorithmic separation of data streams like zeroforcing (ZF) precoding [3], [4], [5], [6], successive interference cancellation, optical code-division multiple access [1], spatial modulation [7], spatial multiplexing [8] or variants of optical orthogonal frequency division [9], [10], [11]. These schemes have in common that they suffer in terms of a reduced performance as they cannot reduce the crosstalk physically between light sources. The available resources are only used in a shared manner -either in time domain, frequency domain or spatial domain. Conventional water filling known from radio frequency This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ applications is not applicable in intensity-modulated/directdetected communication systems such as VLC [12], [13]. When there are also multiple VLC cells next to each other, the complexity grows again, when the interference caused by neighboring cells should also be cancelled by a cooperating-cells' scheme [14]. However, a possible solution to this drawback of purely algorithmic solutions is that the physical channel itself has to be manipulated in such a way that the crosstalk is directly eliminated. The most convenient way is to do this directly at the receiver, the interferers by other cells do not need to be bothered. Suitable methods for doing so is e.g. to equip the users with imaging receivers. A common approach to realize an imaging receiver is to use lenses or mirrors to image the transmitter array on the receptor plane, e.g. a camera-based receptor or multiple photodetectors [15], [16]. Also non-imaging mirror variants are possible [17]. Followed by software processing, the light sources can be selected and evaluated by each user individually. While a CMOS sensor might be suitable to separate all the transmitter elements due to its array-like structure of single receive elements (e.g. pixels in a camera module), they have a poor sampling rate compared to regular photodetectors. To overcome this specific drawback while keeping the benefit of the array structure, we have suggested to use a liquid crystal (LC) matrix from an LC display (LCD) in front of a single photodetector [18], [19]. LC filters have been used at the transmitter side, which is not compatible with dual-use lighting applications [20], or to steer the light in display applications [21]. Also in the form of so-called re-configurable intelligent surface LC device, they can provide some amplification gain for improving the performance in VLC systems [22], [23], [24], [25]. By using the LC filter at the receiver side, unwanted light can be suppressed individually while desired light can pass to the photodetector without altering the room illumination or the need to influence other interfering light sources. The pixel pattern displayed by the LCD determines which lines-of-sight (LOS) are selected for the specific user and which ones should be blocked -similar to the principle of precoder weights generated by a ZF precoder. The optimization task is to find a suitable pixel pattern here. To do so, we have proposed to use a genetic algorithm combined with convex optimized precoding at the transmitter side in order to maximize the sum-rate over all users for a 4 × 2 MIMO system [26].
In contrast to this, we analyze in this paper the impact of an increased amount of transmitter LEDs in an extended channel model together with different optimization approaches. Also we use now 'hard' binary precoding instead of 'soft' floating-point weighted ZF precoding for lowering the computational complexity. This 'hard' precoding is optimized by the previously mentioned genetic evolution and a novel heuristic algorithm with user fairness treatment in order to show the effectiveness of the LC filter even in these massive MIMO environments. Therefore the allocation problem is modelled as the so-called Santa Claus problem on unrelated parallel machines, which is well known in the field of computer science. Here, it is mostly used to analyze the distribution of different tasks to parallel, unrelated machines as the name suggest. We suggest a novel heuristic optimization algorithm for solving this kind of Santa Claus problem and use a numerical ray-tracing simulation for calculating the resulting light intensities in the different scenarios when we apply our optimization strategies.
In summary, in the context of liquid crystal based interference mitigation and precoding, our novel contributions are as follows: r in contrast to current studies that employ only small LED arrays, spatially distributed massive MIMO LED arrays for multiuser access are considered, r LED and user allocation is modeled as Santa Claus problem on unrelated machines, r a novel heuristic precoding algorithm with binary weights and combined LC filter usage is presented, r experimental verification of our VLC model is conducted.
In the next section, we outline the evaluated scenario as well as the principle of LC-based interference suppression. Afterwards, a detailed look at the derived channel model is given. Further on, our optimization strategies for performance improvements are introduced and numerical results are discussed. Then, we present our testbed together with an experimental verification of the numerical results. Finally, conclusions are drawn.

A. Physical Setup
A VLC indoor transmission system with N transmitter LEDs and K independent receivers with a single photodetector each is assumed as depicted in Fig. 1(a). Further it is assumed that the ground area of the room is rectangular with an edge length of x = y = 5 m and a room height of z = 3 m. The transmitters are arranged in a rectangular array shape at the ceiling of the room with an array edge length of (N − 1) · (x/N ) with √ N LEDs and equally distributed spacing between them. The receivers, however, can be located at various positions but with a fixed height of 0.85 m above floor level. At a certain distance h, an LC filter is placed over the photodetector of each receiver, where the transmission factor of the filter can be controlled in terms of an individual pixel pattern. These pixels can be switched between either transparent or opaque.
In addition, also neighboring LED arrays are assumed in a multi-cell-like scenario. Then there are no reflections by the walls but interference by the other cells' LEDs, where we take only the adjacent LEDs into account. We model these neighbors as independent LED arrays/cells, so precoding and weighting schemes have no control over these LEDs.

B. Channel Model for Indoor Scenario
The input data vector is denoted by d = [d 0 , . . . , d K−1 ] T and the output receive signal vector by y. The k-th entry is the corresponding output value for receiver k. Noise is given by z = [z 0 , . . . , z K−1 ] with zero-mean and a variance of σ 2 k = 2e 0 R λ,k P r,k B + 4k B T BR −1 f for the specific receiver k in the electrical domain. The first noise term is shot noise caused by the impact of photons on the photodetector, so dependent on the total receive power P r,k , and the second term is thermal noise caused by the amplifier in the receiver. The responsivity of the PD is assumed as R λ k = 0.4 AW −1 for each receiver k. The bandwidth is normalized to 1 Hz and the feedback resistor is assumed as  The channel coefficients itself are composed of the line-of-sight and the reflections at the wall as depicted in Fig. 1(b). Both are calculated by applying the generalized Lambertian cosine law: h k,n = h k,LOS,n · g LC,px,k (θ in,k ) The K × N channel matrix is given by defines the transmission factors between receiver k and all transmitters. A precoding scheme can be realized by the weighting matrix: The impact of the newly introduced LC filter is modelled by the angle-dependent and pixel-dependent LC filter gain factors g LC,px,k . The overall impact of all LC filters on the channel is modelled by the matrix The channel without LC filter, respectively all filter gains set to 1 is H 0 and operator • denotes the element-wise Hadamard multiplication of these two matrices, which results in the optimized channel matrix H. The relationship between g LC,px,k and G is dependent on the geometries of the current scenario, so it needs to be determined individually. For the specific gain between transmitter n and receiver k, the LOS is given by h k,LOS,n . In this scenario, we assume further that there is only a single reflection at the walls for the indoor scenario and they can be calculated in a similar way to the LOS. The reflection at wall element i between transmitter n and receiver k is consequently called h k,i,n . The transmitter light sources have a individual transmit power P n = 1 N W for normalization and Lambertian mode m. The sensitive area of the photodetector is A PD,k with a concentrator gain of g PD,k . So y k corresponds to a photocurrent proportional to the optical receive power P r,k for receivers k with additional noise.

C. Extension for Multi-Cell Interference
For considering the multi-cell, we extend the indoor scenario by adding the channel components of the interferers received by the receiver k analog to the channel components of the desired Fig. 2. Principle of LC filter: The available transmitter light sources are assigned to either photodetector A or B. Then the LC filter of each is configured in such a way that only the LOS paths of the assigned light sources can reach the detector by switching the pixels to clear or opaque without letting unassigned LOS paths reaching it -even when this means that also desired light must be reduced. For receiver B and the LOS of the rightmost transmitter, the parallel projection onto the LC plane along the LOS path is indicated.
array. These are given for all K users by the matrix where M is the number of interfering light sources of other cells, here in our case M = 4 + 4 √ N . The sum of all interfering components for receiver k then is given by and the receive vector is extended to where W I and d I are the precoding matrix and data vector of the interferers, which are both unknown.

D. Principle of LC Interference Suppression
The basic idea of the LC interference suppression is the classification of all light sources into desired light sources and undesired light sources. This could be an artificial designed separation, like in the multi-cell scenario, or a (natural) environment with given interfering light sources. In either case, the usable signal inherits from the desired light sources and all other light sources are treated as interference. So the pixel pattern should be set in such a way that only the desired light is able to reach the photodetector as depicted in Fig. 2. The easiest way is to switch a pixel area of the size of the photodetector to clear mode for each LOS path. So the active area of the photodetector is projected onto the LC layer along the path vector. Because of the distance between PD and LC is small compared to the distance to the LS, a parallel projection can be assumed in good approximation. For the case that the projected areas of a selected LS and an interference LS overlap, the overlap area should be set to opaque again. By doing so, the signal strength gets also lowered but the impact of interference blocking weights more because the blocking ability of an LC filter is much higher than the loss in pass mode as shown in our paper in [19].
This model assumes that all LS are point sources and that the LOS of the selected LS is the strongest path compared to the reflections. So by setting the pixels to transparent, which are required for allowing the desired light to pass, the LOS interference by other LS is removed with an ideal LC filter. As this assumption is only valid for the LOS, the reflections cannot be eliminated completely. The light scattered at walls and objects is a Lambertian reflection and creates a continuous, multi-path ambient light which has no specific origin any more [27]. But its impact is also lowered by the LC filter by narrowing the effective FOV, so the PD receives less reflected light -consequently, the impulse response of the room is lowered in amplitude.
For a rotated or tilted receiver this principle is still valid as the orientation of the LC filter with respect to the PD is not changed. The required active pixel area can be derived in the same way as only the perceived position of the light source has changed. But this is only true for light sources which can be modeled as point sources. Light sources with a certain emitting area needs to handled differently. Depending on their shape, the active pixel area changes and needs to be determined individually. An approximated solution would be to model the light source as spatially distributed point sources, which are handled separately by the pattern generator at the receiver.
1) Field of View of the Receiver: The distance between the LCD and the PD is in the same region, hence the total FOV must be determined in a more detailed view. The PD cannot be assumed as point receiver any more -so its dimensions must be considered. The assumption of parallel projection is still valid as all dimensions inside of the receiver can be considered small compared to the distance to the LS.
The arrangement of LCD and PD is depicted in Fig. 3 with the desired FOV θ FOV . Given the pixel edge length a px , the PD edge length a PD = √ A PD and the distance h, the necessary number of pixels n px along one axis can be calculated by 2) Separating Power of the Receiver: To describe the separating capabilities of an LCD filter, the rectangular room shown Fig. 4. Side view of the receiver unit. To separate the two light sources LS 1 and LS 2 , one of the transparent areas can be switched to opaque. In the optimal case, the minimum distance required equals d px .
in Fig. 1 is revisited. For conciseness, the scenario is reduced to two light sources LS 1 and LS 2 and one receiver unit. The setup is illustrated in Fig. 4 in side view. The receiver unit consists of a PD and an LCD which is placed at the distance h above the detector on a light impermeable aperture. LS 1 and LS 2 are located within the FOV of the system at the angles φ 1 and φ 2 , respectively. Δφ is their angular difference. r 1 and r 2 denote the vectors which describe the LOS paths between the PD and the light sources. Thus, the distance is given as r 1 2 and r 2 2 . Initially, both LOS paths are obstructed by opaque pixels. To provide a LOS connection to one LED while blocking the second path, the LCD can generate a transparent area with its center either at d 1 or d 2 . That way, the center of the area is intersected by r 1 or r 2 , as shown in Fig. 4.
The optimal condition for source separation with an LCD filter is given, if a far-field scenario, i.e. h r 1 2 is assumed. That way, light from the LS arrives as a planar wavefront at the LCD. This has two implications. The first relates to the minimum angular difference Δφ min between LS 1 and LS 2 and thus the minimum distance between the two transparent areas d 1,2,min at which the two light sources can be separated without any interference. For a far-field scenario, d 1,2,min > 0 is sufficient. Concerning the LCD, the smallest realizable distance is given by the size of one pixel, i.e. d 1,2,min = a px . The second implication refers to the size of the transparent area A tran . In [28] it was shown that under the far-field assumption the optimal size of the transparent area is equal to A PD .
To derive a relationship for the minimum angular difference Δφ min , the far-field scenario, d 1,2 = a px and a tran = a PD are assumed. Then, Δφ min can be expressed as To obtain an expression that is angle dependent, tan(φ 1 ) = d 1 h can be inserted into (11): Finally, the minimum angular difference can be described as a function of the center angle χ, with At this point it should be mentioned that the calculated minimum angular difference must be considered as a lower bound.
There are several reasons. First, the far-field scenario is only an assumption. Second, while the aperture is indeed light impermeable, it still can reflect some undesired, interfering light onto the PD. Therefore, it should be coated with a low-reflective material in a practical implementation. Finally, as the LCD consists of an integer number of pixels, a tran = a PD is difficult to achieve. In most cases, the number of pixels required to form the transparent area has to be rounded to the nearest integer.

E. User Allocation
When dealing with a massive MIMO system, an efficient way to allocate the transmitters to the user is a key requirement in order to suppress interference. Commonly ZF precoding or QR decomposition [3], [4], [5], [6] (or variants of both of them) are used to distribute the user data to the transmitter LEDs. As this problem is a non-convex one in the VLC domain, fast and easyto-use solutions are rare. One could use a convex approximation like in [5], [29] -which we will use as reference scheme in this paper as we have done previously -or other different schemes as suggested in [12], but these solutions are mostly constrained and only partly-suited for large or very large arrays. Another possible approach is interference removal done at the receiver side like successive interference cancellation, but it is also not practically feasible for the evaluated scenario. For doing so, this principle requires the received data of all other users -meaning cooperating receivers, which is not necessarily the case in a multiuser environment. Hence, we suggest a 'hard' allocation at the transmitter side, where each LS is assigned to a specific user and transmits only the data symbols for this user instead of a 'soft' precoding scheme like zero-forcing precoding with floating-point weights for w n,k . An additional benefit of this hard allocation is the reduced complexity of the transmitter hardware: Together with an e.g. binary modulation scheme like on-off keying, analogue-style amplitudes are prevented. But the more sparsely populated the channel matrix is, the more challenging is the allocation maintaining a certain level of user fairness. Compared to soft-allocation schemes, this is a downside limit of hard allocation. E.g. in an extreme case where multiple users share only a common single non-zero path, no transmitters are left for the remaining users, when the only possible transmitter is already assigned to another user beforehand. In this case, different schemes like time sharing etc. should be used. So hard allocation is more suited for large transmission systems with many different paths to choose from, i.e. N K. Regarding the overall optimization procedure visualized in Fig. 5, the optimizer is working on the matrix G to find the best allocation solution for the non-weighted channel H 0 . Then the found allocation matrix G opt is taken and the allocation is transferred into an LC pattern for each receiver with respect to the LOS of the chosen LEDs. At the transmitter side the precoding matrix is set to W = G T opt . Afterwards, the channel H = H 0 • G is evaluated, where the LC filter impact G is modeled now by the previously set pixel gain factors g LC,px,k (θ in,k ). Ideally, the difference between G opt and G should be zero, but it depends on the accuracy of the LC pattern translation and the LC characteristics. Regarding user mobility, the channel matrix needs to be updated as well as the pixel patterns whenever the user positions change. For doing so, a fast tracking and localization algorithm is needed, which also motivates a fast allocation process as proposed. In our model, all positions as well as the incident angles of the light rays are assumed to be known. In a real-world application, the location of the light sources needs to be known at the receiver side in order to set the pixels. For this purpose, we have suggested an LC-based angle-of-arrival estimator in [28], which could be combined with this VLC setup.
Because the allocation matrix G opt is generated at a central system controller, we assume a given uplink.
Because of the non-cooperation nature of this multiuser scenario, we treat the interference as noise term. Hence, we define the linear signal-to-interference-plus-noise ratio SINR k for receiver k as follows: On the main diagonal of HW the usable signal power is given and on the side elements the remaining interference. For the multi-cell SINR, the multi-cell interference term (8) is added:

III. SINR OPTIMIZATION
The goal of the optimization process is to maximize the minimum SINR = min{SINR 0 , . . . , SINR k , . . . , SINR K−1 }, so we treat this as lower bound. For the sake of simplicity, we define the following constraints: r Each transmitter can be assigned only to a single receiver. r Each transmitter must be assigned to a receiver. r The assignment factor g k,n between LED n and receiver k can only be '1' or '0'.
r Each user has only one receiver with one PD. Therefore, we can express all assignment factors g opt,k,n as allocation matrix G opt : where -given the constraints -in each column is only one '1' allowed. This allocation is then translated into the corresponding pixel pattern for each receiver. As described above, at first the clear areas for the allocated light sources are set, then -optionally -the areas for all other light sources are set to opaque again. This results in a pixel-accurate pattern, where all LOS of non-allocated LS are blocked. The allocation problem can be interpreted as a combinatorial problem: There are K N possible transmitterreceiver combinations -so for large arrays, a brute-force approach is not feasible. To find a suitable solution, we will utilize two different approaches: i) a genetic evolutionary optimization, and ii) a heuristic algorithm, which is a deterministic approach.
For a better classification of the presented algorithms, we compare them with classical ZF precoding as we have done before. Here, the channel model is modified in such a way that the precoding matrix W is the inverted channel with additional power weights γ = [γ 0 , . . . , γ K−1 ] for the K sub-channels: Because of the non-convex nature of this ZF precoding problem, we use the already mentioned constrained convex approximation from [5], [29] to find suitable values for γ and solve this with the Python library 'CVXPY' [30], [31]. The constraints are a fixed target bit error rate, which we set to 10 −3 and maximum allowed transmit power, which is given by our power normalization.

A. Genetic Optimization
We have already used a genetic optimization for increasing throughput in a VLC scenario in [26], but compared to that, we do now target the allocation matrix G instead of the direct pixel-per-pixel configuration. This offers the advantage that the channel matrix H 0 has to be measured only once instead of in each iteration step as before. So the initialization starts with a set (the population) of randomly initialized allocation matrices (the individuals) G opt and selects the ones, which deliver the highest minimum SINR (fitness evaluation). In an evolutionary process, the fittest individuals are mutated and combined to derive a new population until the maximum number of generations is reached.
Concerning this matter, another methodical difference to our previous work is that we use an adaptive number of generations. We have shown that for small VLC scenarios only a few generations are needed, but when the number of light sources is increased this may be satisfying any more. So we set the number of generations to n gen = N · K to get sufficient iterations. For calculating the evolution, the Python library 'deap' is used [32].

B. Santa Claus Problem Modelling
The Santa Claus problem on unrelated parallel machines (SC-UPM) is a scheduling problem known in the field of computer science [33], [34]. The main purpose is to distribute different tasks to different machines in such a way that the workload of the machine with the least workload is maximized. The machines are not related to each other and every task can take a different load on each machine. The name of the problem derives from the analogy to Santa Claus giving presents to children: Each present has different happiness values to the children and the goal of Santa Claus is to distribute the presents in such a way that the happiness of the least happiest child is maximized. So this problem inherently aims at an equally distributed happiness value for all children.
In our case, the K receivers are the children, the N light sources are the presents and the channel gain h k,n is the value of present n for child k. As the Santa Claus problem is NP-hard, an optimal solution cannot be calculated in reasonable time. In [34], [35], the authors present exact or approximate algorithms, however, they take long processing times even in small instances, so they are not suited for our application. Therefore, we suggest to use a heuristic algorithm, which computes a solution quickly but does not claim to find an optimal solution. Because as far as we know there are no heuristics for the Santa Claus problem on unrelated parallel machines in the literature yet, we modified the well-known Longest Processing Time (LPT) algorithm [36], [37], [38]. The LPT algorithm in its original design minimizes the longest processing time of all machines, where the running time of all tasks is equal on all machines. It is easy to understand, implement and adaptable to different scenarios. We call our modified algorithm then LPT-SC-UPM (compare Algorithm 1).
The basic idea of the heuristic is to iterate over all N light sources and in each iteration we select the receiver with the current least sum of allocated signal power. Then we allocate the light source with the highest channel gain to that receiver, which is not already taken. As in the beginning all receivers have an assigned sum signal power of zero, a prioritization is calculated beforehand. Based on the channel matrix H 0 , all receivers with zero-entries are collected and the receiver with the most zeros is handled first in the start round and its priority is then reduced by one. In the next round the receiver with the updated maximum priority is selected and processed. This is repeated until all priorities are set to zero and the regular Santa Claus allocation begins. This ensures an increased user fairness as it may happen in some scenarios that a receiver has only a single LOS by a single light source available which could get allocated to a different receiver in a previous step.
The notation in Algorithm 1 is as follows: zeros(·) creates a vector or matrix out of zeros given the dimensions in the argument, H 0 [k][n] addresses the element in the k-th row and n-th column in H 0 -the same applies to G[k][n] and equally to H opt and H tmp . The function sum(·) returns the sum of all elements of the given vector, while argmin(·) gives the index of the smallest element of the given vector and argmax(·) the index of the maximum element. The i-th element (at index i) of a vector x is addressed by It should be noted that Algorithm 1 can be implemented in an even more efficient but less intuitive way, where the complexity can be reduced to O (KN log(N )). Deriving a complexity expression for a genetic evolutionary optimization can be quite challenging. A useful overview over this topic may be [39]. So for a comparison of the algorithms, the averaged runtimes for our implementations are given in Fig. 6. The plotted runtimes contain only the allocation process and SINR calculation given a channel matrix H 0 and not the raytracing simulation duration itself. It can be seen that the LPT-SC-UPM algorithm can solve the allocation problem with very little runtime, starting with 0.0008 s for the 2 × 2 array to 0.0813 s for the 15 × 15 array. Genetic evolution runtime increases with the array size and ZF precoding has an approximately constant runtime.

IV. NUMERICAL SIMULATION
For testing the effectiveness of the allocation algorithms we have performed a numerical ray-tracing simulation with parameters given in Table 1. Compared to most other analyses, we do not assume the photodetector as single point sink but as spatially extended sink. For a better optical path approximation, we divide the detector area into an array of small pixel-sized sub-detectors, which are placed at the exact physical location as illustrated in Fig. 7. Then each is simulated, and their total receive power is summed up.
The minimum SINR is calculated as described in Chapter III and additionally the optical receive power is also used as performance indicator. At first, we analyze only the lines-of-sight in the single-cell scenario -basically a free-space evaluation -when increasing the number of LED transmitters N and afterwards we also check the influence of the wall reflections on the LC filter performance. To lower the impact of fixed user positions, the K = 4 users are placed randomly in the room and then the minimum SINR and receive power is averaged over 3000 different positions for LOS and 300 positions for the reflections because of increased simulation complexity. Non-valid scenarios with sparsely populated channel matrices where multiple receivers share a common single path only as described in Chapter II-E are neglected. For the LC model, an ideal behavior is assumed at first, meaning 100% transmission in clear mode and 0% in blocking mode. Also a realistic LC model based on an actual measured characterization, which we have presented in [18], [19], is used. To better understand the impact of the LC filter itself, we also calculate a perfect interference suppression as reference for the algorithms, where we assume that all interferers Algorithm 1: LPT-SC-UPM Allocation Algorithm.
Step 1: Prioritization of receivers with zero-gain paths Step 2: Allocation of light sources to receivers while sum(led_taken) < N do   8. Ideal LC filter model with single-cell scenario: The distance between PD and LC filter is varied between 5 mm and 20 mm. 'SC' stands for Santa Claus modelling and optimization performed by our LPT-SC-UPM algorithm, 'Gen' indicates that genetic evolution was used. Interference-free shows the performance when the interference is set to zero after the allocation optimization. 'Refl.' indicates that the wall reflections are considered.
are cancelled out completely. The SINR then transforms into the signal-to-noise ratio (SNR) for each user. After that, we introduce the multi-cell interference, where we assume that the neighboring LEDs have the same characteristics as the former ones.

IV. Discussion
Compared to ZF precoding, the ideal LC filter shows a gain from 22 dB to 49 dB as can be seen in Fig. 8, comparable to the case of no interference which it can hold up to its geometric limit. When the distance of the light sources is getting too small, a separation cannot be performed any more as explained in Chapter II-D2, even when the active area size is reduced. When the distance between PD and LC filter is increased, the separation ability remains longer while adding LEDs, as h = 20 mm still works even for a 15 × 15 array. Regarding the impact of the wall reflections, they decrease the SINR before reaching the geometric limit. Another visible effect are the zig-zag paths of the SINR curves. The reason for this phenomenon lies in the ratio of transmitters and receivers. In our case, we assumed K = 4 receivers, and because we are looking at the minimum SINR for each scenario, the array sizes which are not a multiple of K, result in a lower minimum SINR than the ones who do. Hence, no equal distribution (in average) of transmitters is possible, so the receiver with minimum SINR has one transmitter less assigned than the other receivers.
In the multi-cell scenario, ZF precoding fails completely, where the LC filter shows reasonable performance in Fig. 9, even with the more realistic LC model based on our characterization in [18], [19]. For the single-cell scenario with the real LC model, the performance is similar to ZF precoding: At smaller array sizes, the LC performance is lower but constant, where ZF precoding performance is constantly falling, so there is a crossing point, where the real LC filter provides higher, steady gain. A receiver equipped with the LC filter also perceives much more signal power compared to ZF precoding as shown in Fig. 10, where the power gain factors γ in (19) have to be lowered in order to prevent interference. So using the LC filter can make the signal processing easier at the hardware side. This motivates to use an LC or comparable filter with the highest contrast ratio and transmission factor possible, as the attenuation in clear mode is a key factor when it comes to the overall performance improvement. Regarding the effectiveness of our LPT-SC-UPM algorithm, we can see that it performs similar to the genetic optimization in easy scenarios, but when channel conditions get tough, it outperforms it quite fast. So the genetic evolution would need even more iterations to find a good solution.

V. EXPERIMENTAL VERIFICATION
We performed an experimental validation of our numerical simulation with a room-sized testbed. In one of our lab rooms, we installed a VLC transmitter array at the ceiling consisting of 40 LEDs in a 4 × 10 interleaving grid. The arrangement follows the pattern of the suspended ceiling panels (62.5 cm × 62.5 cm), where the LEDs are placed on every second panel as indicated in Fig. 11. One transmitter consists of a single red/green/blue/amber four-color LED with a maximum electrical power of 10 W per color of type LZC-03MA07 manufactured by LED Engin and each one can be controlled individually. For realizing different amplitude levels, we have extended our discrete-level modulator presented in [40] to multiple colors.
The receiver is based on a Raspberry Pi computer with an attached color LCD shield (Waveshare 3.5 in RPI LCD (A)) with removed backlight and we used an ADC shield (Waveshare RB-Wav-08) for sampling the photodiode (Osram SFH 206 K) via a transimpedance amplifier (TIA). The photodiode is located 10 mm below the LCD and features an active area of A PD = 2.65 mm × 2.65 mm ≈ 7.02 mm 2 . The pixel edge length of the LCD is a px ≈ 0.154 mm. Compared to an ideal LC filter, which is modeled as two-dimensional plane, the LCD has a thickness of approximately 1.3 mm and is made of a glass composite. Hence, a refraction of the light rays occurs due to the refractive index of the LCD. However, the overall incident angle of the light rays will not change but its position will slightly change when we assume that the LCD behaves similar to a planeparallel glass pane. A second effect which occurs at a real LCD is the diffraction phenomenon. Here, incident light is partially diffracted into a rainbow-like spectrum in reflection as well as in transmission, due to the internal LCD structure. The pixel transistor size and the address lanes for the individual pixels are in the micrometer range, so they are interfering with visible light and causing diffraction. In Fig. 11(d) this effect is visible for the reflection of one of the LEDs mounted above the receiver. The room has the dimensions [5.86 m, 7.10 m, 3.02 m] and contains various equipment and furniture, representing a realistic indoor environment. We placed our receiver at two different nearby positions in the room at [2.27 m, 3.57 m, 0.77 m] and [2.65 m, 2.57 m, 0.77 m] as indicated in Fig. 11(b) and measured the channel gain for each LED individually. Afterwards we used the 'bar' algorithm from our recent localization paper [28] to separate all LEDs for each position and to measure the influence of the other LEDs when one LED is selected. By doing so, we are able to calculate an approximate signal-to-interference ratio (SIR) for each receiver position k after allocation by the LPT-SC-UPM algorithm: where L is the number of allocated LEDs, h bar,l the value for the l-th LED when selected with the 'bar' algorithm and h all,l the influence of all other unallocated LEDs when the l-th LED is selected. We achieved an even SIR distribution with values of 18.04 dB for position 1, 18.44 dB for position 2, 18.12 dB for position 3 and 18.09 dB for position 4. Because only offthe-shelf components were used, this type of receiver can be integrated into products with reasonable effort. By using e.g. special high-contrast black-and-white display types, we assume that the SIR could be increased further. In Fig. 12, an example of two neighboring LEDs is shown for one axis of the LCD. A bar of pixels in pass mode is moved along the axis and the resulting light intensity for each bar position is plotted then. As described in [28], the bar algorithm can be modeled as convolution process, hence resulting in a triangle shape. A local maximum corresponds to an alignment of a light source, bar position and PD along the LOS path. It can be seen that the two light sources can be easily and clearly separated. The non-ideal slope at the beginning and ending is caused by the before mentioned diffraction and scattering of stray light inside in the receiver case.

VI. CONCLUSION
In this paper, we have evaluated the impact of large LED transmitter arrays in VLC multiuser single/multi-cell scenarios and the ability of channel separation with an LC filter at the receiver side. Special attention was paid to the user fairness and hard allocation from transmitters to the receivers. This allocation problem was modelled as Santa Claus problem on unrelated parallel machines, and we presented an sub-optimal heuristic approach for solving this problem. Our algorithm reaches a similar system performance as a genetic evolutionary optimization while being less complex in terms of computations. In future work, more sophisticated heuristics may be able to deliver an even better result. We were able to show that the LC filter principle is capable of separating the individual channels much better compared to ZF precoding and maintains a higher receive power, especially in LOS-dominant settings. It inherently suppresses also interference from other sources, which are not part of the target communication system and so out of reach for the system controller. In a room-sized VLC testbed, the LC filter could separate users in a practical realization using our heuristic allocation algorithm.