Recently, there has been a growing interest in visible light communications (VLC) in some indoor application scenarios, video/audio transmission for in-home applications, secure network access, or sensor networking [1–8]. Furthermore, wireless optical communications present certain advantages over radiofrequency (RF) transmission that make them suitable in certain specific scenarios. Optical systems do not interfere with RF systems, thus avoiding electromagnetic compatibility restrictions. Moreover, there are no current legal restrictions involving bandwidth allocation and, since radiation is confined by walls, they produce intrinsically cellular networks, which are more secure against deliberate attempts to gain unauthorized access than those relying on radio systems. In this sense, the characterization of indoor VLC channels, their time dispersion, and wavelength response is essential to studying and analyzing the limits in terms of the design and performance offered by such links.

Simulating an indoor VLC channel can significantly benefit the design of high performance systems, but requires computationally efficient algorithms and models that accurately fit the characteristics of the channel elements. In order to evaluate the impulse response for indoor VLC channels, two simulation algorithms can be adapted: the Barry and the López–Hernández algorithms. While the Barry algorithm is deterministic and based on an iterative method [9], the López–Hernández algorithm (called the Monte Carlo ray-tracing algorithm) is based on ray-tracing techniques and Monte Carlo method [10], which exhibits a lower computational cost than the Barry algorithm, especially when a high temporal resolution, complex geometries, and a large number of reflections are considered. For this reason, in this article a tool for simulating the impulse response of indoor VLC channels using 3D computer-aided design (CAD) models is presented. The simulation tool is based on the Monte Carlo ray-tracing algorithm [10–12], and allows us to study the VLC signal propagation inside any simulation environment or 3D scene, regardless of its geometric shape, size (area), number of obstacles, etc. The tool features two fully differentiated parts. The first is charged with defining the 3D scene or the simulation environment, which the user can describe by means of any CAD software that is capable of generating or storing the scene in 3DS format. The geometry of the setting where the communications are being established, along with the different material types, emitters, and receivers that comprise the link or links involved in the simulation is specified in the 3D scene. The second element consists of implementing the propagation model. This refers to the mathematical models that characterize the effect of each of the elements present in the simulation environment (reflecting surfaces, emitters, and receivers), and to the simulation algorithm that, aided by these models, allows the channel response to be computed. The part of the tool that implements the propagation model and into which the 3D scene is input is programmed in C++. In addition, so as to improve the computational efficiency of the simulation tool, two optimizations are proposed. The first one consists of dividing the simulation environment into sub-cubes of equal size, so that when a ray is traced in these sub-regions, only those object faces or surfaces that are in the ray propagation path need to be considered. This first optimization allows us to reduce the execution time by approximately 50% compared to not dividing the 3D scene into sub-regions. The second one consists of parallelizing the simulation algorithm. For each wavelength, the parallelization method proposed involves the equal and static distribution of the rays for computation by different processors, i.e., following a uniform distribution. This optimization results in a calculation speed-up that is essentially proportional to the number of processors used, i.e., when 2, 4, 8, and 16 processors are used, the computational speed-up increased by 2, 4, 8, and 16 times, respectively, with respect to using a single processor.

This article is organized as follows. In Section 2, the signal propagation model in an indoor VLC channel is defined; i.e., the Monte Carlo ray-tracing algorithm and mathematical models used to characterize the elements of the visible light link are described. Section 3 describes the main features of the simulation tool and its computational complexity, which is compared with an alternate algorithm. The results are discussed in Section 4. Thus, several simulation results are reported to show the potential of the simulation tool and the effects on the computational speed-up due to both optimizations. Finally, Section 5 outlines the conclusions of this article.