## 1 Introduction
Whereas there is a majority of works that uses on-off keying (OOK) modulations due to their simplicity, in [18] a better performance in visible light communications was obtained by using binary phase shift keying (BPSK) modulation. In the case of a simultaneous transmission, in addition to the modulation used, it is crucial to encode the signals emitted by the beacons so that the receiver is able to identify and separate them. In particular, in [19] it was shown that loosely synchronous (LS) codes have a better behavior against pseudo-random (PR) sequences, such as Kasami codes [20], in a system like the one proposed in this work. The use of coding techniques is associated with an increase in the computational load of the receiving system due to the algorithms involved in the calculation of the correlation functions. In addition, the receiver system should be fast enough to acquire those signals and process them, as well as light, compact, of low consumption, and easy to transport. Therefore, it is interesting the use of solutions based on ARM or STM32 architectures, compared to specific architectures designed with field-programmable gate arrays (FPGAs) devices, since, although the last ones are ideal for massive and parallel data processing, they usually present a higher power consumption. This work is focused on the implementation issues and the experimental validation of an infrared positioning system based on a set of four transmitting LEDs, acting as beacons at known positions, and on a unique QADA sensor, acting as the receiver to be positioned. Regarding previous works,this system has been intended for long-distance measurements (more than 3 m) and includes an ad hoc synchronization module that allows the receiver module to acquire only when new data are available, thus facilitating real-time operation. The system is based on the reception and further processing of the different encoded signals, emitted simultaneously by the aforementioned beacons. The receiver's processing stage separates and processes the received signal to obtain the correlation peaks of the received signal with each one of the codes used. From these peaks, it estimates the angle of incidence of each one of the transmissions on the surface of the QADA by means of non-linear least squares (NLS) and Gauss-Newton minimization techniques. After obtaining these incidence points, firstly, the rotation of the receiver in the Z axis is obtained by means of trigonometric equations and, finally, the position of the receiver is obtained using an least squares estimator (LSE) and some geometrical considerations [20; 21]. These previous references already developed the positioning algorithm with the geometrical constraints considered hereinafter, so no further analysis will be done here. A real prototype has been assembled to satisfactorily validate the proposal in an experimental setup, where the distance between the plane of the transmitters in the ceiling and the receiver on the floor is 3.4 m (height of the room). The rest of the document is organized as follows: Section 2 provides a description of the proposed system (transmitting beacons, receiver module and synchronization system); Section 3 shows the results obtained in some selected points of the coverage area; and, finally, conclusions are discussed in Section 4.