A method for receiving data over an optical communication path, the method comprising:
- calculating a first photon count of photons observed during a first time period when a first light source transmits at a first power level on a first wavelength over the optical communication path and a second light source does not transmit over the optical communication path;
- determining a first detection model from the first photon count, the first detection model producing an inference for whether a given photon count indicates that the first light source is activated at the first power level and the second light source is not activated;
- calculating a second photon count of photons observed during a second time period when the second light source transmits at a second power level on the first wavelength over the optical communication path and the first light source does not transmit over the optical communication path;
- determining a second detection model from the second photon count, the second detection model producing an inference for whether a given photon count indicates that the second light source is activated at a second power level and the first light source is not activated;
- calculating a third photon count of photons observed during a third time period when both the first light source transmits at the first power level and the second light source transmits at the second power level on the first wavelength over the optical communication path;
- determining a third detection model from the third photon count, the third detection model producing an inference for whether a given photon count indicates that both the first light source is activated at the first power level and the second light source is activated at a second power level;
- receiving a transmission over the optical communication path at the first wavelength during a fourth time period;
- determining a photon count of the transmission;
- determining a first inference that the transmission resulted from the first light source at the first power level using the first detection model, a second inference that the transmission resulted from the second light source at the second power level using the second detection model, and a third inference that the transmission resulted from the first and second light source together using the third detection model;
- and
- assigning bit values to, a first data stream corresponding to the first light source and a second data stream corresponding to the second light source, based upon the first, second, and third inferences, the first and second data streams stored in a memory of a computing device.