System for increasing throughput of optical communications

By using light sources of different power levels on the optical communication path to transmit multiple data streams and using detection models such as Poisson probability distribution to distinguish bitwise allocation, the shortcomings of existing optical communication technologies in high bandwidth utilization are solved, and the more Efficient bandwidth utilization and simplified decoding process.

CN113728566BActive Publication Date: 2025-02-11MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080029565.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-04-18
Filing Date
2020-03-24
Publication Date
2025-02-11
Estimated Expiration
2040-03-24

AI Technical Summary

Technical Problem

The existing optical communication technology has shortcomings in high bandwidth utilization, especially when multiple data streams are transmitted simultaneously, existing methods such as WDM, AM and DDPDM have problems such as device number limitation, complex decoding processes and high costs.

Method used

More efficient bandwidth utilization is achieved by using light sources of different power levels to transmit multiple data streams on the same optical communication path and using detection models such as Poisson probability distributions to distinguish the bit allocation of each stream.

Benefits of technology

This method allows multiple data streams to be sent on a single optical link, with significantly improved bandwidth utilization and implements a relatively simple hardware and software decoding process, reducing equipment cost and decoding time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113728566B_ABST
    Figure CN113728566B_ABST
Patent Text Reader

Abstract

In some examples, optical devices, systems, and machine-readable media are disclosed that use different light sources transmitting at different power levels to send and receive multiple data streams through the same optical communication path (e.g., the same optical fiber) having the same wavelength, thereby increasing the bandwidth of each optical communication path. Each light source corresponding to each stream transmits at the same frequency and using a different power level on the same optical communication path. A receiver distinguishes the data of each stream by applying one or more detection models to the photon counts observed at the receiver to determine the possible bit allocations for each stream.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Optical communication (e.g., fiber optic communication) utilizes a light source at one end that transmits one or more data streams by modulating the data streams into light signals. These light signals travel through a medium such as air or glass fibers (optical fibers) with internal reflective surfaces to a receiver that employs a photon detection module to detect the light signals. The detected light is then demodulated back into one or more data streams.

[0002] To efficiently utilize the available optical bandwidth, multiple different channels can be created by assigning a different wavelength of light to each channel. Different data streams can be placed on each channel and transmitted simultaneously over the same medium to the same receiver. This practice is often called wavelength division multiplexing (WDM). Some WDM systems allow up to 80 such channels per fiber, and the bandwidth per channel can be 40Gbit / sec to produce almost 3.1TB / sec of transmission on a single fiber (excluding losses due to overhead).

[0003] As a result of this large bandwidth, fiber optic systems are becoming increasingly popular with communications network providers, cloud service providers, and other entities that need to transmit large amounts of data very quickly. In addition to carrying large amounts of data, fiber optics offer other advantages, such as: less attenuation than cables - which provides the benefit of using less network infrastructure for longer distances of communications cables; no electromagnetic interference; and various other benefits. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] In the accompanying drawings, which are not necessarily drawn to scale, like numbers may describe similar components in different views. Like numbers with different letter suffixes may represent different instances of similar components. The accompanying drawings generally illustrate various embodiments discussed in this document by way of example and not limitation.

[0005] Figure 1 Components of a simplified optical communication system according to some examples of the present disclosure are illustrated.

[0006] Figure 2 Graphs of three Poisson probability distributions corresponding to three different power levels are shown, plotted with probability on the y-axis and photon counts on the x-axis, according to some examples of the present disclosure.

[0007] Figure 3 Methods performed by a receiver according to some examples of the present disclosure are illustrated.

[0008] Figure 4 A schematic diagram illustrating an example power level allocation scheme according to some examples of the present disclosure is shown.

[0009] Figure 5A flowchart of a method for a transmitter to implement a power level allocation scheme according to some examples of the present disclosure is illustrated.

[0010] Figure 6 A flow chart illustrating an example method of tracking phases according to a timing-based power level allocation scheme according to some examples of the present disclosure is illustrated.

[0011] Figure 7 An example method of tracking phases according to a bit count based power level allocation scheme according to some examples of the present disclosure is illustrated.

[0012] Figure 8 An example method of tracking phases according to a QoS-based power level allocation scheme according to some examples of the present disclosure is illustrated.

[0013] Fig. 9 A flowchart of a method for training a detection model according to some examples of the present disclosure is illustrated.

[0014] Fig.10 A flowchart of a method of performing training steps and determining a model according to some examples of the present disclosure is illustrated.

[0015] Fig.11 The diagram shows Fig.10 A more specific embodiment of the method is a flow chart of the method.

[0016] Fig.12 A schematic diagram of a system for increasing optical fiber bandwidth according to some examples of the present disclosure is illustrated.

[0017] Fig.13 A schematic diagram of a receiver according to some examples of the present disclosure is shown.

[0018] Fig.14 Example machine learning components according to some examples of the present disclosure are shown.

[0019] Fig.15 A flow chart of a method of optically receiving data according to some examples of the present disclosure is illustrated.

[0020] Fig.16 A flow chart of a method for receiving an optical signal at a receiver according to some examples of the present disclosure is illustrated.

[0021] Fig.17 A flow chart of a method for simultaneously transmitting multiple data streams through an optical communication path according to some examples of the present disclosure is illustrated.

[0022] Fig.18 is a block diagram illustrating an example of a machine upon which one or more embodiments may be implemented. DETAILED DESCRIPTION

[0023] Figure 1 Components of a simplified optical communication system in the form of an optical fiber system 100 according to some examples of the present disclosure are illustrated. A data stream 105 may include binary data generated by a higher network layer processed by a processing circuit 110. The processing circuit 110 may process the data of the data stream 105 in one or more ways to prepare it for transmission. Example processing operations performed by the processing circuit 110 include applying one or more error correction codes, compression algorithms, encryption algorithms, etc. The data transformed by the processing circuit 110 is then passed to the light source 115 as a control signal. The light source 115 modulates the data by selectively turning on and off the light source according to the input data according to a modulation scheme. For example, in a simple modulation scheme, each bit can be transmitted during a predetermined time period (e.g., a time slot). During a particular time slot, if the current bit from the input data is '1', the light source can be turned on during the time slot, and if the current bit from the input data is '0', the light source can be turned off during the time slot. Other more complex modulation schemes, such as amplitude, phase, or polarization modulation, may be used. In some examples, light can be modulated on a sine wave.

[0024] The light generated by the light source then travels through an optical communication path to the receiver. The optical communication path is the path taken by the light source from the transmitting light source to the receiving sensor. The path can be through one or more media, such as a single fiber optic fiber, air, etc. Figure 1 In the example of , the optical communication path travels through a single fiber optic cable 120. In the example of the medium being air, the optical communication path may be the alignment of a transmitting light source with a sensor at a receiver.

[0025] The receiver includes a photodetector 125 and a processing circuit 130. The photodetector 125 collects counts of the number of photons detected during a detection period, which corresponds to the amount of time a single bit of the data stream 105 is transmitted. Based on the photon counts, the photodetector produces a data stream, which is then input to the processing circuit 130, which applies operations that are the inverse of those applied by the processing circuit 110 to produce a data stream 135. The goal is to transmit the data stream 105 to the receiver as quickly as possible while making the data stream 135 match the data stream 105.

[0026] As previously described, when WDM is used, each communication path (e.g., each optical fiber) can support the simultaneous transmission of multiple optical streams when each transmission uses a different wavelength of light. Although the bandwidth of optical communications is already high, as data demands grow, more capacity is necessary. For example, the surge in higher quality video streaming; the proliferation of connected sensors and controllable devices (e.g., IoT devices); and a growing world population require increased bandwidth and connectivity. Once the bandwidth of optical fiber operating in a system using existing technologies (such as WDM) has been exceeded, increasing bandwidth requires installing additional optical fiber, which can be difficult and / or costly to install.

[0027] Although WDM increases the bandwidth of the medium, as will be clarified, it does not utilize the entire bandwidth available in the medium. Another solution to expand the bandwidth of the system can be to utilize multiple power levels to represent different bits in the form of amplitude modulation (AM). For example, '10' can be represented by modulating a sine wave with a first power level (first amplitude), and '01' can be represented by modulating a sine wave with a second power level (second amplitude), and '11' can be represented by modulating a sine wave with a third power level (third amplitude). Although it increases the number of bits that can be transmitted by a particular light source, AM has many disadvantages. First, AM does not allow two different transmitters with two different light sources to transmit at the same wavelength and through the same communication path (e.g., optical fiber) as the receiver at the same time. Therefore, this does not increase the number of devices that may occupy a particular communication path (e.g., optical fiber). Second, AM does not allow non-sinusoidal waveforms. Finally, with AM, the receiver must know the exact power level of each bit level in advance.

[0028] Other schemes similar to amplitude modulation include digital domain power division multiplexing (DDPDM) with successive interference cancellation. DDPDM linearly combines the baseband signals (with bit streams in each signal) after encoding and modulation to form a new signal, which is transmitted using a single light source. The receiver detects each stream by demodulating and decoding the baseband signals one by one in descending order of power level using a successive interference cancellation algorithm. This process estimates the channel response and demodulates the strongest signal while treating other signals as interference. The estimated strongest signal is remodulated and multiplied by the channel response, and the product is then subtracted from the received signal. This process is then repeated until all signals are decoded.

[0029] The DDPDM scheme has many disadvantages. First, like AM, the scheme does not increase the number of devices that can use the fiber medium simultaneously. That is, while the scheme increases the number of streams that can be carried over a communication link, the DDPDM scheme uses a single light source. The use of an additional light source is likely to produce destructive interference, thereby preventing the signal from being successfully demodulated at the receiver. Even if the problem of reducing destructive interference is solved, since the decision area (the photon counting area corresponding to the detected bit combination) in AM and DDPDM is equal for each bit combination, DDPDM and AM systems will encounter difficulties when the power levels of different transmitters are slightly different. Finally, the decoding, demodulation, and interference cancellation of DDPDM communications are very complex and require a lot of processing resources. For example, DDPDM demodulates and remodulates the same signal multiple times at the receiver. This increases equipment cost and / or decoding time.

[0030] In some examples, optical devices, systems, and machine-readable media are disclosed for sending and receiving multiple data streams at the wavelength of the system through the same optical communication path (e.g., the same optical fiber) using different light sources transmitting at different power levels, thereby increasing the bandwidth of each optical communication path. Each light source corresponding to each stream transmits at the same frequency and using different power levels on the same optical communication path. The receiver distinguishes the data of each stream by applying one or more detection models to the photon counts observed at the receiver to determine the possible bit allocations for each stream. An example detection model can be a Poisson distribution of the average number of photons received around a given bit allocation combination. As a result, multiple data streams can be sent on a single optical link, which may be two, three, four, or more times the bandwidth of a single channel on a single link.

[0031] The present disclosure solves the technical problem of efficient bandwidth utilization in optical communications without the disadvantages of the above-mentioned previous methods. For example, the present disclosure allows the use of a single light source to transmit multiple data streams or the use of multiple light sources to transmit multiple data streams. In the present disclosure, any interference from multiple light sources is accounted for by a detection model trained using any such interference. In addition, since the model can have unequal decision areas, the use of different light sources with different power levels does not cause problems like AM and DDPDM. In addition, these models may be adjusted over time to take into account aging transmitter circuits. In contrast to DDPDM, the present disclosure does not require the received signal to be remodulated by performing continuous interference cancellation. Instead, the present disclosure utilizes the average photon count of a specific bit combination. Since the disclosed detection model is a relatively simple probability distribution, the decoding and demultiplexing process of the data stream can use relatively simple, cheap and fast hardware and / or software to demultiplex the input without the need for more complex hardware, such as those required in the method using continuous interference cancellation.

[0032] Since optical power is a function of the number of photons and the wavelength, if the wavelength is held constant, the power is therefore dependent on the number of photons. Therefore, for a given wavelength, an increase in power is an increase in the number of photons transmitted through the optical fiber. For a given power level of the light source, the probability that a certain number of photons will strike the photodetector in the receiver during a certain time period (e.g., the time period in which a data bit is transmitted) is described by a Poisson probability distribution, where the median and range of this probability distribution are related to the power level of the light source. As described above, an increase in the power level increases the number of photons transmitted, thereby also increasing the probability that more photons will strike the receiver - resulting in a change in the Poisson probability distribution.

[0033] Figure 2 A graph 200 of three Poisson probability distributions corresponding to three different power levels is shown, with probability plotted on the y-axis and received photon counts on the x-axis, according to some examples of the present disclosure. Figure 2 A first probability distribution 220 of a light source activated at a first power, a second probability distribution 225 of a light source activated at a second power (the second power is greater than the first power), and a third probability distribution 230 of a light source activated at a third power (the third power is greater than the second power) for a given wavelength on the same optical communication path are shown. As described above, as the power level of the light source increases, the number of photons output by the light source increases. This increases the number of photons that can be expected to strike the receiver, which increases the probability distribution in Figure 2 The photon count is shifted to the right on the graph and flattens the curve (because more variation is expected as the photon count increases).

[0034] As described above, the present disclosure utilizes one or more detection models to determine the bit value of each bit in each stream transmitted through the same optical communication path (e.g., the same optical fiber) and the same wavelength but using different power levels. The detection model can be a Poisson probability distribution. For example, probability distributions 220, 225, and 230 can be used as detection models. The first probability distribution 220 can model the probability that a specific photon count observed at the receiver is caused by: the first light source corresponding to the first stream at the first power is turned on and the second light source corresponding to the second stream is turned off. In a simple modulation scheme (wherein the light source "turned on" is interpreted as '1' in the detection time period, and the light source "turned off" is interpreted as '0' in the detection time period), the first probability distribution 220 therefore models the probability that the corresponding bit value of the first stream is '1' and the corresponding bit value of the second stream is '0', which is represented as (1,0) in the figure.

[0035] The second probability distribution 225 models the probability that a particular photon count observed at the receiver is caused by the activated second light source corresponding to the second stream at the second power being turned on and the first light source corresponding to the first stream being turned off. Under the simple modulation scheme described above, the second probability distribution 225 thus models the probability that the corresponding bit value of the first stream is 0 and the corresponding bit value of the second stream is 1, represented in the figure as (0,1). The second power level is greater than the first power level.

[0036] The third probability distribution 230 models the probability that a particular photon count observed at the receiver is caused by both the first light source and the second light source being activated (and therefore more photons are expected to strike the receiver). Thus, the third probability distribution 230 models the probability that the corresponding bit value of the first stream is 1 and the corresponding bit value of the second stream is 1, represented in the figure as (1,1). Multiple light sources activated simultaneously will produce more photons than each individual light source - thus, the probability distribution is shifted further to the right. In addition, the range will also increase with increasing power - flattening the Poisson distribution because the additional photons also introduce more possibilities for variation.

[0037] Thus, the receiver can determine each bit of each bit stream using the observation that the photon count observed at the receiver follows a Poisson distribution based on the power level of the light source, even if two light sources are active at the same time. The receiver can observe the number of photons that strike the receiver and calculate the probability that the photon count is generated by the first light source alone using the first probability distribution 220, the probability that the photon count is generated by the second light source alone using the second probability distribution 225, and the probability that the photon count is generated by the combination of the first light source and the second light source using the third probability distribution 230. Based on these probability calculations, decision logic can be used to decide whether the bit of the first stream is '1' or '0' and whether the bit of the second stream is '0' or '1'. In one example, the decision logic can be to select the bit associated with the detection model corresponding to the highest probability of a given observed photon count. For example, if the highest probability is that the photon count is generated by the first light source alone, the first stream can be assigned a bit value of '1' and the second stream can be assigned a bit value of '0'. Alternatively, if the highest probability is that the photon count is generated by the second light source alone, the first stream can be assigned a bit value of 0 and the second stream can be assigned a bit value of 1. Finally, the photon count with the highest probability means that it is generated by two light sources, so both streams can be assigned 1. This scheme can be repeated until the transmitter has finished transmitting data.

[0038] As an example, the photon count 240 observed at the receiver may have a first probability 245 according to the first probability distribution 220, a second probability 250 according to the second probability model, and a third probability 255 of zero or near zero according to the third probability distribution 230. Because the first probability 245 is greater than both the second probability 250 and the third probability 255, the probability distribution 220 may be selected - thus the observed photon count is most likely caused by the first light source being activated at the first power level and the second light source being turned off. Since '1' is represented by turning the light source on and zero is represented by turning the light source off in this example, the most likely bit assignment for the first stream is 1, while for the second stream, the most likely bit assignment is 0.

[0039] As used herein, the detection region of a detection model is the range over which a signal or observed values ​​of a signal (e.g., photon counts) have a non-negligible probability of being assigned to a particular bit value. Figure 2 In the example of , the detection region may be the region under distributions 220, 225, and 230. A detection region may be a region where the probability of assigning a particular bit or bit combination to one or more bit streams is above a predetermined threshold (e.g., a non-negligible value). It will be appreciated that the size of the detection region for bit allocation 10 is different from the size of the detection region for bit allocation 01, and also different from bit allocation 11. The different sizes reflect the reality that different light sources operating at different power levels may produce different photon counting signatures.

[0040] Figure 3 A method 300 performed by a receiver according to some examples of the present disclosure is illustrated. At operation 310, the receiver may determine a photon count of photons observed during a predetermined time period. The predetermined time period may be a period of time (e.g., a time slot) whereby the transmitter and the receiver are synchronized to transmit one or more bits of a bit stream (e.g., packetized bits). At operation 315, the receiver determines a first probability that a first light source corresponding to a first data stream is turned on at a first power level and a second light source corresponding to a second data stream is turned off using the photon counts and a first detection model. At operation 320, the receiver determines a second probability that a first light source corresponding to the first data stream is turned off and a second light source corresponding to the second data stream is turned on at a second power level using the photon counts and a second detection model. At operation 325, the receiver determines a third probability that the first light source is turned on at the first power level and the second light source is turned on at the second power level using the photon counts and a third detection model.

[0041] In operation 330, the system may determine the bit values ​​of the first data stream and the second data stream based on the first probability, the second probability, and the third probability. For example, the model that produces the highest probability value may be selected and the bit value corresponding to the model may be assigned to the bit stream. As described above, the detection model may correspond to the bit values ​​of various data streams. For example, turning on the light source during a predetermined time period (e.g., a time slot) may indicate a '1' of the bit stream and turning off the light source indicates a '0'. In these examples, the first detection model may indicate the probability that the bit of the first stream is '1' and the bit of the second stream is '0' for a given photon count. In some examples, the value of '0' for the two bit streams may be determined by comparing the photon count to a predetermined minimum threshold (e.g., before operations 315, 320, and 325 or during operation 330). In other examples, separate models may be used for the '0' values ​​of the two bit streams.

[0042] The present disclosure therefore improves the functionality of a data transmission system by providing an improved transmission scheme that provides increased utilization of existing physical resources. By distinguishing multiple streams based on a detection model such as a photon counting probability model, each channel can carry multiple data streams, which significantly increases the overall system bandwidth. This bandwidth increase can allow additional users via additional devices on the same optical fiber, or additional streams per user (e.g., increasing the connection bandwidth of a particular user). The disclosed technology therefore solves the technical problem of bandwidth shortage by using a detection model such as a photon counting probability model to more efficiently utilize the currently available bandwidth rather than adding new bandwidth by adding additional optical fibers.

[0043] Power level allocation

[0044] As described above, each light source that sends data over the optical communication path is activated at a different power level. In some examples, the power level of each light source can be fixed - that is, one or more emitting light sources can be fixed to always be activated at a specific power level that is different from other light sources in the system. The system can be simple and can be suitable for certain situations, such as situations where one light source is much more powerful than another light source. In these examples, no coordination or power level adjustment may be required because each light source is naturally activated at a different power than the other light sources.

[0045] In other examples where the light sources have similar output powers and / or can have adjustable power outputs, the power level of each light source can be set by assigning a power level to each light source via a power level allocation scheme. A power level allocation scheme is any formula or plan for coordinating different power levels across two or more transmitters. A power level allocation scheme can be divided into one or more stages. A stage specifies a unit of a power level allocation scheme, wherein each transmitter served by the scheme is assigned a power level for a defined duration or until a defined event occurs. The duration can be time-based, data-length-based (e.g., a defined number of time slots), etc. In some examples, the detection model used by the receiver can be specific to the current stage of the power level allocation scheme. The power level allocation scheme can be described by one or more data structures. For example, a formula, table, chart, or other indicator.

[0046] In some examples, the receiver may assign a power level allocation scheme. In other examples, the transmitters may mutually agree on a power level allocation scheme. In examples where the transmitters mutually agree on a power level allocation scheme, an agreement protocol such as a majority voting algorithm may be utilized, where the power level allocation scheme is selected as the scheme for which the transmitter has the highest number of votes. Determination of the power level allocation scheme may include selecting a power level allocation scheme from a determined list of power level allocation schemes and may include customization of the selected power level allocation scheme.

[0047] When using a majority voting algorithm, each transmitter can vote for the power level allocation scheme that best matches the transmitter policy. The transmitter policy can vote for the power level allocation scheme that comes closest to meeting one or more policy goals (such as bandwidth, error rate, quality of service (QoS), power consumption, heat output, etc.). These policy goals can be represented by an indication of the desired number of stages in the policy in which the transmitter will transmit at high power. The number of high-power stages is an indication of the policy goals because high-power stages increase bandwidth, reduce error rates, and improve QoS, but also increase power consumption and heat output. Therefore, devices that prioritize low battery usage will expect fewer high-power stages. In contrast, devices that want high QoS and high performance will expect more high-power stages. The rating of each specific power level allocation scheme can be determined based on how many high-power stages are allocated to the transmitter for a specific power level allocation scheme compared to the expected number of high-power stages.

[0048] In examples where the receiver allocates a power level scheme or one of the transmitters makes a determination for the entire system, the determination (selection, creation and / or customization) of the power level allocation scheme can be made without knowing the capabilities of the transmitter. In other examples, the determination (selection and / or customization) of the power level allocation scheme can be based on the light source, the data stream and / or the device characteristics. These characteristics can be exchanged between the transmitter and the receiver. Example light source characteristics may include the achievable power level of the light source, the type of light source (e.g., light emitting diode (LED) or stimulated emission of radiation light amplification (LASER)), etc. Device characteristics may include heat budget, power budget, battery life, etc. Data stream characteristics may include expected QoS priority, expected bandwidth requirements for the stream, expected data rate, etc.

[0049] As an example, consider a simple power level allocation scheme where two data streams with two power levels are utilized, where a first phase may cause the first stream to transmit using a light source selectively activated at a high power level and the second stream to transmit using a light source selectively activated at a low power level, and a second phase may cause the first stream to transmit using a light source selectively activated at a low power level and the second stream to transmit using a light source selectively activated at a high power level. These phases may be repeated as long as data is being sent. Phases may last for a determined time, a determined number of bit transmissions (e.g., a determined number of time slots), or until a specific event occurs (or does not occur). Thus, the scheme may change the power level every x bits, every x time periods, when a determined event occurs, and so on, where x is a determined number of bits (where x may be 1).

[0050] The power level allocation scheme can be evenly distributed, because the power level is allocated so that each light source can have an equal or nearly equal (e.g., + / - 10%) time to be activated at each power level. In other examples, the power level allocation scheme can be asymmetrically distributed, so that one light source can be activated more frequently at a higher or lower power level. This can be the result of considerations related to the device characteristics of the light source, data stream, and / or transmitter. For example, some transmitters may have a heat and / or power budget that is used to control how much power they can use to provide to the light source. For example, if the light source is operated at a specific power, the battery of the transmitter may discharge too quickly. In addition, operating at a high power level may unacceptably increase the heat emitted by the device. If one of the light sources has a higher heat and / or power level, the light source can be allocated to activate a longer period of time at a higher power level to keep the two light sources within the power and / or heat budget. This can be achieved by adjusting the stage duration. If the transmitter provides information about the heat dissipation and power usage of the light source, the system can calculate the optimal power level allocation scheme to keep all light sources within their power level and / or heat dissipation budget. Expected QoS priorities and bandwidth requirements may also be considered. For example, a light source corresponding to a data stream that is low priority data or uses a lower bandwidth may be assigned to use a lower power level for a longer period of time than a light source having high priority or high bandwidth data to send.

[0051] For example, an asymmetric phase distribution of a power level allocation scheme can utilize an emitter power budget (e.g., which can be set by a user, administrator, manufacturer, etc.), which specifies a power limit on the total power consumed by a light source during a specific time period. In these examples, the system can determine how long each emitter can activate its light source at high power and low power to keep itself within its power budget, and use these calculations to set the duration of each phase. For example, by solving for x such that both of the following equations are true, and selecting the answer that is closest to equaling the power budget of each emitter without repeating:

[0052] Equation 1:

[0053] Equation 2: Where x is the proportion of the phase consumed at high power levels, Power L is the power required to activate the light source at a low power level. H is the power required to activate the light source at a high power level, Time Pis the total time spent in each phase of the power level allocation scheme. The above equations assume that the light source will transmit 100% of the time in a phase. Therefore, in some examples, the left side of each equation can be adjusted to take into account the expected duty cycle during that phase (assuming that on average the data is well distributed between '1' and '0', this duty cycle may be 50%). Z is the time frame over which the power budget is measured. Therefore, corresponds to the number of stages passed in the power budget.

[0054] In other examples, the power level allocation scheme may be determined in whole or in part according to the quality of service (QoS) of the data to be transmitted. A light source transmitting a data stream carrying higher priority data (determined by the QoS metadata of the stream) may be assigned a higher power level to increase. In some examples, the phase of the power level allocation scheme may be changed on a packet-by-packet basis as the various QoS of the data to be transmitted changes. In other examples, the power level allocation may change as a result of higher priority QoS data and then change back after a predetermined period of time. The QoS method may supplement or overlay other methods so that the power level allocation scheme may be modified to support QoS. For example, a power level alternating scheme may extend or reduce the time remaining in the current phase in order to transmit data with higher priority data at a higher power level. Therefore, the time range of each scheme may be initially set by considering the power budget as described above, but the timing of each phase may be modified based on the QoS data and the expected bandwidth required for the QoS data. In some examples, the QoS method may fully specify the power level of the stream-so that the stream with the highest priority data is selected to be transmitted at the highest power level. In other examples, the QoS of the data may be a factor in the selection and / or modification of the power level allocation scheme.

[0055] Other characteristics may be utilized to select or modify the power level allocation scheme. For example, a thermal budget may be utilized similarly to a power budget (because heat and power are related). For example, a thermal budget may be converted to a power budget and used as previously described. Similarly, battery life may be taken into account so that the proportion of time spent transmitting at a high power level may be reduced as the battery life of the device becomes shorter. For example, if the battery level reported by the transmitter is below a first threshold, the duration of the phase in which the transmitter activates the light source at a higher power level may be reduced (e.g., by a static predetermined amount, or by a predetermined amount based on the remaining battery life, or by some other calculation using the remaining battery life). In some examples, if the battery power of other participants is also low, blank periods may be inserted into the power level allocation scheme in which no transmitter transmits.

[0056] Other factors, such as expected bandwidth requirements and data rates, can be used similarly to QoS requirements in that they modify phase timing. For example, to achieve a specific data rate, the system can allocate additional time to the device at the highest power level to ensure that errors that may be caused by transmitting at a lower power rate do not reduce the data rate. A specific data rate for one device can be balanced with competing data rates of other devices. For example, if two transmitters both request the highest data rate, the system may not favor one device. On the other hand, if one transmitter requests a higher data rate than the other, the device requesting the higher data rate may receive additional time to transmit at the higher power level. In other examples, the system may dedicate a particular phase exclusively to a particular transmitter and instruct that transmitter to use amplitude modulation on that phase.

[0057] In some examples, an algorithm can use a combination of multiple described factors to select a power level allocation scheme from a set of power level allocation schemes. Example selection algorithms can include machine learning algorithms, multiple if-then-statements, decision trees, random forest algorithms, etc. The machine learning algorithm can be trained with feature data corresponding to the above factors and labeled (e.g., manually labeled) with appropriate power level allocation schemes. Fig.14 An example machine learning system is given in The power level distribution scheme may be configurable such that the duration of each phase may vary based on the factors described above.

[0058] In an example selection algorithm, each possible power level allocation scheme in a plurality of schemes may be scored based on how closely the power level allocation scheme matches the characteristics of the communication devices (e.g., transmitters and receivers). For example, for each characteristic used, a sub-score may be generated. The score may be calculated by one or more transmitters, by a receiver, etc.

[0059] The score for a particular power level allocation scheme may be a sum of sub-scores. For example, for a sub-score corresponding to a power budget, the system may determine how well a particular power level allocation scheme matches the power budget of the transmitter (with or without modifications as described above). As an example, the score may be based on the difference between the value calculated on the left side of Equations 1 and 2 and the power level budget on the right side of the equations. As the difference increases, the fit between the transmitting device and the power level allocation scheme is less ideal. In some examples, a predetermined number of points may be assigned to the sub-score and the difference between the left and right sides of both Equations 1 and 2 may be subtracted from that amount.

[0060] As another example, points can be allocated based on the expected QoS of the data to be transmitted and how a particular power level allocation scheme fits the QoS level of the two transmitters. These points can be determined by consulting a table that matches the power level allocation scheme with the point values ​​of various QoS levels. The point values ​​of the expected QoS level of each transmitter (determined by the table) can be added to produce a QoS sub-score. Similarly, the expected or desired data rate can be evaluated for potential power level allocation schemes-again using a table with point values ​​for each power level allocation scheme and each expected data rate. Similarly, the battery level of the device corresponding to one or more transmitters can be taken into account. The power level allocation scheme can be rated based on their power consumption (higher ratings for more power consumption). The transmitting device can be rated according to its remaining battery life (higher ratings indicate more remaining battery power). The sub-score of the battery level can be the power level allocation scheme power consumption rating minus the battery life rating of each transmitter. These sub-scores can be added to produce the final score of each power level allocation scheme.

[0061] A power level allocation scheme may then be selected based on these scores. For example, the power level allocation scheme with the highest score may be selected. In some examples, the various sub-scores may be weighted. The weights may be manually determined by a system administrator or may be learned using one or more machine learning algorithms, such as Figure 6 Detailed and discussed below.

[0062] The power level allocation scheme may be determined prior to data transmission and may be changed in response to the addition of new data streams (addition of light sources, or addition of streams to be transmitted with light sources), changes in one or more characteristics of streams and / or light sources, degradation of light sources over time, etc. For example, the scores of power level allocation schemes may be periodically calculated based on updated characteristic information. If a different power level allocation scheme scores more than a threshold score higher than the current power level allocation scheme, the power level allocation scheme may be changed. In some examples, the scheme may of course be changed periodically.

[0063] Figure 4 Schematic diagram 400 of an example power level allocation scheme according to some examples of the present disclosure is shown. A first transmitter 405 and a second transmitter 410 are shown, each transmitter including a light source. The first transmitter and the second transmitter can be on the same device (e.g., different streams on the same device) or on different devices. In some examples, transmitters 405 and 410 are Fig.12 1205 and 1250. A power level allocation scheme with power level allocation 420 for a first transmitter 405 and power level allocation 430 for a second transmitter 410 is shown. Figure 4 , the power level allocation scheme has two repeating phases. A first phase in which the first transmitter activates its light source using low power and the second transmitter activates its light source using high power. A second phase in which the first transmitter activates its light source using high power and the second transmitter activates its light source using low power. The first and second phases are then repeated for each bit in an alternating manner. Although two power levels are shown ('L' for low and 'H' for high), more than two power levels may be used in a given power level allocation scheme. Figure 4 In the power level allocation scheme, each transmitter is assigned an alternating power level. That is, when one transmitter is transmitting at a high level, another transmitter is transmitting at a low level. In addition, in Figure 4 In some examples, the power level changes with each bit - that is, the phase changes with each bit - but in other examples, the power level distribution scheme may change the power level (phase) after a number of bits, a defined time period, etc.

[0064] Example bit streams 415 and 425 are shown together with samples of a graph of the power level (y-axis) of each bit light source sent by each transmitter over time (x-axis). For example, the first transmitter sends the first bit with a value of '1' at a low power level. By turning off the light source, the second transmitter sends a '0'. This is detected by a receiver that knows the power level allocation scheme and the current stage of the power level allocation scheme. As shown, on the receiver side, at 440, the power level allocation scheme for each stage is represented by a tuple, the first item of the tuple is the power allocated to the first transmitter, and the second item of the tuple is the power level allocated to the second transmitter. Therefore, the first bit is (L, H), which indicates that the first transmitter will send '1' at a low power level, and the second transmitter will send '1' at a high power level.

[0065] The receiver counts the number of photons received during the time period when the first bit is transmitted (e.g., the first time slot). The graph shows the number of photons detected (y-axis) over time (x-axis) for each time slot. The receiver then selects a detection model set 450 or 455 based on the current phase. Figure 4In the example shown, each phase corresponds to a different time slot. Model sets 450 and 455 include multiple detection models. With respect to the first detection time period, since the phase is (L, H), detection model set 450 is selected as the model set corresponding to the (L, H) phase. Matching the detection model to the phase of the power level allocation scheme can improve detection accuracy because different emitters can have slightly different power levels. Therefore, the high power level of the first emitter 405 may be slightly different from the high power level of the second emitter 410 - even if the low power levels may be similar. In the example shown, according to the detection model, the probability that the photon count is '1' for the first stream and '0' for the second stream is the highest, and (1,0) is assigned, where '1' is for the first stream and '0' is for the second stream.

[0066] In the second bit, the power level assignment is reversed, however, neither transmitter is sending any bits, so the receiver determines by using the detection model set 455 that the bit assignment should be (0,0). In some examples, rather than using a specific detection model, if the photon count is below a determined threshold, the bit stream assignment can be set to (0,0). The power level assignment reverts to the first stage in the third bit. This time, both light sources are turned on and the receiver determines using the detection model 450 that the bit assignment should be (1,1). This continues until communication stops. The bit assignments for the streams are shown at 435, with stream 1 listed before stream 2.

[0067] Note that the first transmitter and the second transmitter may be time synchronized. This may be achieved through a variety of mechanisms, such as Network Time Protocol (NTP), Precision Time Protocol (PTP), reference broadcast time synchronization, etc. In some examples, the receiver may act as a time server.

[0068] Figure 5 A flow chart of a method 500 of a transmitter implementing a power level allocation scheme according to some examples of the present disclosure is illustrated. Figure 5 Prior to operation, the transmitter may identify or determine the current power level allocation scheme. At operation 510, the transmitter may receive data to be transmitted from a data stream. For example, a data stream from a higher layer in a network protocol stack. In some examples, in examples where the same device has multiple light sources, the transmitter may be in a device with a higher layer that splits a single data stream into multiple data streams for simultaneous transmission. At operation 512, the transmitter may determine the current stage of the power level allocation scheme. The process of determining the stage depends on the power level allocation scheme. For example, if the power level allocation scheme is based on a timer, for example, each stage lasts for a predetermined time period, the timer value may be used to determine the stage. In some examples, the timer value may be a multiple of the time slot length. Figure 6A flow chart of a method 600 of tracking phases according to a timing-based power level allocation scheme according to some examples of the present disclosure is illustrated (discussed in more detail below). If the power level allocation scheme is based on bit counts (e.g., each phase lasts a predetermined number of transmission bits), the phase can be determined based on the bit count that has passed since the last change. Figure 7 An example of tracking phases according to a bit number-based power level allocation scheme according to some examples of the present disclosure (discussed in more detail below) is illustrated.

[0069] In an example where the phase is based on QoS, the phase can be determined by the flow of data to be transmitted with the highest QoS value. For example, every predetermined time period, the transmitters can transmit their respective data QoS values ​​in their transmission queues to each other and to the receivers, which is performed through optical fiber or out-of-band through another communication mechanism. The transmitter with the highest QoS data activates its light source at the highest power level, and the power level allocation scheme is advanced to the phase corresponding to the transmitter transmitting at the highest power level. In other examples, the phase can be accelerated or changed based on QoS attributes, but otherwise determined by other described mechanisms (e.g., time or bit count).

[0070] Return to reference Figure 5 At operation 515, the transmitter may determine the power level based on the selected power level allocation scheme and the determined phase. At operation 520, the transmitter may transmit data as light pulses at the determined power level by turning the light source on or off. If on, the light source is turned on at the determined power level. In some examples, instead of turning the light source on or off, the transmitter may remove an obstacle that blocks the light generated by the light source from entering the optical fiber (or other medium) or otherwise direct the already activated light to the optical fiber (e.g., moving a mirror to direct the light).

[0071] Figure 6 An example method 600 for tracking phases according to a timing-based power level allocation scheme is shown in accordance with some examples of the present disclosure. At operation 610, the system determines an initial phase based on the power level allocation scheme. For example, a first transmitter may be assigned a particular power level in a first phase, while a second transmitter may be assigned a different power level in the first phase. In some examples, the transmitters may be assigned the first phase by a receiver or by an agreement between transmitters, but in other examples, a contention resolution method is used. For example, each transmitter may generate a random number, or have a random number programmed thereon. The transmitters may exchange random numbers, and the lowest (or highest, depending on the implementation) number utilizes a high power level for the first phase. An indicator may be set to indicate the power level and current phase in the transmitter's memory.

[0072] At operation 615, a timer may be set based on the phase timing specified in the power level allocation scheme. In some examples, each phase may be of the same duration, but in other examples, the duration of the two phases may be different. In other examples, the phases may have variable durations depending on one or more events, factors, or characteristics (e.g., of a device, a transmitter, a light source, a data stream, etc.). At operation 620, the timer expires. At operation 625, an indicator is set to the next phase and / or power level based on the power level allocation scheme. In a time-based power level allocation scheme, Figure 5 Operation 512 may include reading a phase indicator.

[0073] Figure 7 An example method 700 for tracking phases according to a bit count based power level allocation scheme according to some examples of the present disclosure is shown. At operation 710, the system determines an initial phase based on the power level allocation scheme and sets an indicator to indicate the initial phase. This can be done using a Figure 6 The method described in operation 610 of is completed. In operation 715, the bit counter may be set to zero to clear it. In operation 720, when a bit is transmitted ('1' or '0'), the bit counter is incremented. For example, when a predetermined time period (time slot) passes. In some examples, a bit is transmitted when the light source is turned on to send '1' or remains off to send '0'. In other examples, the bit counter may only count when the light source is turned on. When the transmitter wants to keep power usage below the power budget, the example of the bit counter counting only when the light source is turned on can be used. In operation 725, a comparison is made between the bit counter and the threshold. If the bit counter is greater than or equal to the threshold, then in operation 730, the stage is incremented, the indicator is updated, and the operation proceeds to operation 715 where the bit counter is reset. If in operation 725, the bit counter does not exceed or equal to the threshold, then in operation 720, as the bit is sent, the bit counter continues to increment. Figure 7 A bit counter is shown, but other data sizes may be used, such as bytes, kilobytes, megabytes, gigabytes, terabytes, etc.

[0074] Figure 8 An example method 800 of tracking phases according to a QoS-based power level allocation scheme according to some examples of the present disclosure is illustrated. At operation 810, the system determines a QoS indicator for data of a first stream assigned to a first transmitter. The data may be a packet, a portion of a packet, a plurality of packets, etc. For example, a communication application may be sending a communication data stream that may have an associated QoS level. The QoS level may be determined by messaging from a higher level of the network stack, an indicator in a packet (e.g., a packet header), etc.

[0075] At operation 815, the system determines a QoS for data of a second stream assigned to a second transmitter. The data may be a packet, a portion of a packet, a plurality of packets, etc. For example, a communication application may be sending a communication data stream that may have an associated QoS level. The QoS level may be determined by higher level messaging from a network stack, an indicator in a packet (e.g., a packet header), etc.

[0076] At operation 820, a phase may be set based on a comparison of the first QoS value and the second QoS value. For example, a phase may be selected in which the stream with the highest QoS may be assigned the highest power level. In other examples, where more than two streams are used and more than two QoS levels are determined, the highest power level may be assigned to the highest QoS, the second highest power level may be assigned to the second highest QoS, and so on. In the event of a tie between QoS levels, the system may have the transmitters alternately transmit at the high power level.

[0077] Although the above-mentioned example power level allocation scheme uses a single power level for each transmitter per stage, in other examples, multiple power levels can be grouped into multiple power level groups. For example, the highest power group of power levels, the medium power group whose power level is lower than the power level in the highest power group, and the low power group whose power level is lower than the power level in the medium power group. Each transmitter can be assigned to different power groups (e.g., based on QoS data) and can use any one of those power levels in the group to send. In some examples, these groups can be used to utilize amplitude modulation on the technology disclosed in the present invention. In other examples, within a power group, a power level allocation scheme can be defined, which specifies the power level of the transmitter at a specific timer and / or the bit count within the power level grouping.

[0078] Once the QoS level-based stages are set, the power level can be maintained indefinitely until the QoS of the data changes, until a predetermined time period has passed (at which point method 800 can be repeated), until a predetermined amount of data has been sent (at which point method 800 can be repeated), and so on.

[0079] Creating a detection model

[0080] Due to manufacturing variations and because practical conditions (e.g., distance between transmitter and receiver, fiber quality, bends in the fiber, etc.) may affect the number of photons that strike the receiver, the amount of photons emitted by each light source may be different. Therefore, the receiver can employ a training process to build a detection model customized to the system. The training process can include a series of one or more steps in which test data bits are sent at one or more power levels by one or more transmitters, either alone or in combination with each other. For example, for a dual transmitter system running a power level allocation scheme with two alternating power levels, the receiver can instruct each transmitter to activate their light source alone at each power level, and then activate their light sources together at the same frequency through the optical communication path at each power level. The photons received for each test can be counted and used to build a detection model, such as a Poisson distribution model. In other examples, other models (e.g., machine learning models) can be built using photon counts and labels corresponding to the light sources that produced the photon counts (and therefore the bit allocation). To coordinate the training, the transmitters can be synchronized—for example, by using in-band (over optical fiber) or out-of-band (over another network) communication.

[0081] As described above, the model training process can utilize the photon counts detected by the photon detector at the receiver to train the detection model to produce the probability of one or more specific bit combinations. For example, for each specific combination of power level and bit combination, the system can instruct the transmitters to activate their light sources individually or in combination (and in some cases, multiple times). Thus, for example, for a system with two transmitters and a simple power level allocation scheme that alternates each transmitter between two power levels, Table 1 gives the possible (bit, power level) combinations:

[0082] Stream 1 Stream 1 Power Stream 2 Stream 2 Power 0 high 0 Low 0 high 1 Low 1 high 0 Low 1 high 1 Low 0 Low 0 high 0 Low 1 high 1 Low 0 high 1 Low 1 high

[0083] Table 1

[0084] In Table 1, the first four rows correspond to the first stage of the power level allocation scheme, while the last four rows correspond to the second stage of the power level allocation scheme. The receiver can calculate a separate detection model for each possibility shown above. For example, if the detection model is a Poisson distribution, the system can instruct the transmitters to activate their light sources according to each combination (e.g., to produce the indicated bit according to the modulation scheme) and calculate the average number of photons for the bit and power level combination (e.g., each row of Table 1).

[0085] Thus, for example, the system can cause the light source for the first bit stream to send a '1' by activating its light source alone at high power. The photon counts observed at the receiver during this period can be used to calculate the detection model for the (1,0) bit combination for the first stage. The system can also instruct the light sources of the first bit stream and the second bit stream to send a '1' by activating their light sources together at their respective assigned power levels. The photon counts observed at the receiver during this period can be used to calculate the detection model for the (1,1) bit combination for the first stage. Next, the system can instruct the light source of the second bit stream to send a '1' by activating its light source at low power (without activating the light source of the first bit stream). The photon counts observed at the receiver during this period can be used to calculate the detection model for the (0,1) bit combination. This process is repeated for the second stage, in which the photon counts are observed for the bit combinations and power levels of rows 5-8 of Table 1.

[0086] In some examples, a single measurement of photon counts is made for each combination of emitter and power level, but in other examples, multiple measurements are made and an average is calculated. As mentioned above, one example detection model is the Poisson distribution. An example Poisson detection model is:

[0087]

[0088] where λ is the average number of photons calculated during the training process and t is the number of photons observed at the photon detector.

[0089] In other examples, other machine learning models can be utilized and calculated in place of the Poisson model. Fig.14 As explained above, in some examples, the training data—and the models created from that training data—can be specific to a particular power level scheme phase. In other examples, negative training data corresponding to power levels and / or bit combinations corresponding to out-of-phase allocations can be used to train a machine learning model of the characteristics of invalid photon counts. That is, the machine learning model can identify and correct for out-of-phase operation.

[0090] Fig. 9 A flow chart of a method 900 of training a detection model according to some examples of the present disclosure is illustrated. In some examples, the detection model may simply be the average number of observed photons, which may be used in a mathematical formula (which may or may not be considered part of the detection model), such as a Poisson distribution. In other examples, the detection model may be a more complex data structure, such as the neuron weights of a neural network, etc.

[0091] At operation 910, the receiver may determine a specific phase to train the power level allocation scheme. For example, in a power level allocation scheme having two phases, the first phase may be selected for training first, and then the second phase may be trained after the first phase. In an example where the power level is fixed, this step may not be performed.

[0092] At operation 915, instructions are transmitted to the receiver. The instructions may include what phase to use, what power level to activate the light source at (which may be conveyed by indicating the phase in the case where there is a power level allocation scheme), whether to activate the light source, how long to activate the light source, any specific bit sequence to use, etc. In some examples, the transmitter may be instructed to activate the light source multiple times within a predetermined time period to allow the receiver to take multiple measurements to produce an average photon count. The instructions sent by the receiver may instruct the receiver for each step - i.e., during a first time range, the first transmitter will activate its light source at a first power level, during a second time range, the second transmitter will activate its light source at a second power level, and during a third time range, both transmitters will activate their light sources at their respective assigned power levels.

[0093] At operation 917, a training step may be performed. At operation 917, the transmitter may be activated at one or more power levels or not activated at one or more power levels according to the instructions sent at operation 915. In some examples, each training step may be performed by instructions rather than sending the instructions once. At operation 917, the receiver may also determine the photon count for each bit combination in the determined phase. For example, a first photon count at a first time range corresponding to a first power level of the first transmitter (or an average photon count in the case of multiple measurements), a second photon count at a second time range corresponding to a second power level of the second transmitter (or an average photon count in the case of multiple measurements), and a third photon count at a third time range corresponding to a third power level generated by the first transmitter and the second transmitter activating their light sources at the respective first power levels and the second power levels (or an average photon count in the case of multiple measurements).

[0094] At operation 920, the receiver may determine a model for a particular phase based on the collected photon counts or average photon counts. Each model may correspond to a particular light source activated at a particular power level - and therefore may correspond to a particular bit allocation. At operation 925, it may be determined whether there are any other phases. If so, operations 910-920 are repeated for the other phases. If there are no other phases, the training phase may end at operation 930. Once the training phase ends, the transmitter may send data to the receiver. The end of the training phase may be signaled by the receiver using a message, etc., after a predetermined time has passed (e.g., as indicated by the instruction transmitted at operation 915).

[0095] Fig.10 A flow chart of a method 1000 for performing training steps and determining a model according to some examples of the present disclosure is illustrated. According to some examples, method 1000 may be an example of operations 917 and 920. At operation 1010, a first (transmitter, power level) combination is selected, for example, from a table such as Table 1. This corresponds to the bit allocation as described above. The set of (power level, transmitter) tuples may depend on the power level allocation scheme and the order in which they are trained may be given by instructions sent by the receiver, for example, at operation 915. Those instructions may also specify the time to turn on and off the light source and at what power to turn on and off the light source. In other examples, the tuple may be transmitted to the transmitter together with the instruction to activate the light source before the time period for activating the light source (e.g., between operations 1010 and 1020). At operation 1025, the photon count may be determined. In some examples, this may be an average photon count. The average is used to build a model (or may be a model or part of a model). At operation 1030, the receiver may determine whether there are any other combinations that need to be trained, and if so, repeat operations 1010-1030 for those combinations. If not, the method ends.

[0096] Fig.11 A flowchart of method 1100 is shown, which shows a more specific implementation of method 1000. Method 1100 may be from Fig. 9 The method 1100 is an implementation of operations 917 and 920 of FIG. 1100 is a single-stage training method that can be applied to a power management scheme where there are two transmitters with two power levels. Additional operations can be performed for more transmitters. Fig.11 The process may be repeated for additional stages. In addition, operations 1140-1152 illustrate subsequent use of the detection model trained according to some examples of the present disclosure.

[0097] At operation 1110, the receiver calculates a first photon count of photons observed during a first time period, wherein a first light source is activated at a first power level at a first wavelength through an optical fiber and a second light source is not activated. In some examples, the receiver or another device indicates that the first light source is activated before or at the beginning of the first time period. Similarly, the second light source may be indicated as not activated before or at the beginning of the first time period. In some examples, the photon count is an average photon count.

[0098] At operation 1115, the receiver determines a first detection model based on the first photon count, the first detection model generating an inference about whether a given photon count indicates that the first light source is activated at a first power level and the second light source is not activated. For example, the detection model can be a Poisson distribution, which can generate a probability that a particular photon count is generated by the first light source at a first power (where the second light source is not activated). In other examples, the detection model can be a machine learning model as described above. The output of the machine learning model can be a probability, a yes-no answer, a confidence value, etc.

[0099] At operation 1120, the receiver calculates a second photon count of photons observed during a second time period, wherein the second light source is activated (turned on) at a second power level at a first wavelength through the optical fiber and the first light source is inactive. As with the first time period, in some examples, the receiver or another device indicates that the second light source is activated before or at the beginning of the second time period. Similarly, the first emitter may be indicated to be inactive before or at the beginning of the second time period. In some examples, the photon count is an average photon count.

[0100] At operation 1125, the receiver determines a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at a second power level while the first light source is not activated. For example, the detection model can be a Poisson distribution, which can generate a probability that a particular photon count is generated by the second light source at a second power (where the first light source is not activated). In other examples, the detection model can be a machine learning model as described above. The output of the machine learning model can be a probability, a yes-no answer, a confidence value, etc. The model type used for the first detection model can be the same type of model used for the second detection model, or a different type of model.

[0101] At operation 1130, the receiver calculates a third photon count of photons observed during a third time period during which the first light source is activated at the first power level and the second light source is activated at the second power level. Both the first light source and the second light source are activated at the first wavelength through the optical fiber. As with the first time period and the second time period, in some examples, the receiver or another device indicates that the first light source and the second light source are activated before or at the beginning of the second time period. In some examples, the photon count is an average photon count.

[0102] At operation 1135, the receiver determines a third detection model based on the third photon count, and the third detection model generates an inference about whether a given photon count indicates that both the first light source and the second light source are activated at the first power level and the second power level, respectively. For example, the detection model can be a Poisson distribution, which can generate a probability that a particular photon count is generated by the first light source of the first power and the second light source of the second power. In other examples, the detection model can be a machine learning model as described above. The output of the machine learning model can be a probability, a yes-no answer, a confidence value, etc. The model types used for the first detection model, the second detection model, and the third detection model can be the same type of model or different types of models.

[0103] While operations 1110-1135 are described in conjunction with a simple modulation scheme, where a light source is activated during a time slot indicating a '1' and a light source is turned off during a time slot indicating a '0'. In other examples, the system can train models based on other types of modulation. For example, amplitude modulation can be used and the system can train those models as well. In these examples, "activation" of a light source means sending a value of '1' according to the selected modulation scheme, and turning the light source off means sending a value of '0' according to the selected modulation scheme. In some examples, amplitude modulation schemes can be combined with the currently disclosed schemes to allow multiple bits to be sent in each stream in each time slot using power level groups. In these examples, the system can learn models for all possible bit groupings.

[0104] Once the models are determined, they can be used to determine bit allocations for a bit stream transmitted by the transmitter. For example, at operation 1140, the receiver may receive a transmission during a fourth time period. The transmission may be received at a first wavelength via an optical communication path (e.g., via an optical fiber). At operation 1145, the receiver may determine a photon count of the transmission received at operation 1140. At operation 1150, the receiver may use a first detection model to determine a first probability that the transmission is caused by activating a first light source at a first power level, use a second detection model to determine a second probability that the transmission is caused by activating a second light source at a second power level, and use a third detection model to determine a third probability that the transmission is caused by activating the first light source and the second light source together. At operation 1152, the receiver may assign 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 on the first, second, and third probabilities, the first data stream and the second data stream being stored in a memory of the computing device. The data streams may be provided to a higher layer in the network stack (e.g., Fig.11 The method may be a physical layer) For example, the receiver may determine the highest probability value. The model that produces the highest probability value may have corresponding bit values ​​assigned to both the first stream and the second stream. The corresponding bit values ​​may be assigned to the first stream and the second stream.

[0105] Example Transmitter and Receiver

[0106] Now turn to Fig.12 , a schematic diagram of a system 1200 for increasing optical fiber bandwidth according to some examples of the present disclosure is shown. The first transmitter 1205 may include a processing circuit 1210 to convert a data stream to prepare it for transmission on an optical fiber. Example operations include error coding, encryption, modulation operations, etc. The converted bits are used as a signal to the controller 1220 to indicate that the light source 1215 is selectively turned on or off according to the modulation scheme to represent the converted bit stream. For example, the light source 1215 is turned on in response to a '1' in the bit stream and turned off in response to a '0' in the bit stream. The controller 1220 can set the power of the light source 1215 based on the power level indicated in the allocated power level allocation scheme and based on the current stage of the power level allocation scheme. In the case of a modulation scheme that changes power, the power level can be the average power level over a specific time slot. Indications of which power level allocation scheme is active and which stage is active can be stored in the power level allocation scheme storage 1265.

[0107] Light source 1215 sends light through an optical communication path, which can be through a medium such as an optical fiber to a receiver. Example light sources can include LED or LASER light sources. Controller 1220 and processing circuit 1210 can be general purpose processors or can be specially designed circuits configured to implement the techniques described herein. Power level allocation scheme storage 1265 can be flash memory, read-only memory (ROM) or other temporary or non-temporary storage.

[0108] Transmitters 1205 and 1250 may be transceivers, as they may have associated receivers, such as receivers 1225, 1258. The power level allocation scheme may be allocated by transceiver 1260 by agreement with the second transmitter 1250, etc. The allocated power level allocation scheme may be one of a library of predetermined allocation schemes stored in power level allocation scheme storage 1265. In some examples, the allocated power level allocation scheme may be based on a scheme in the library of allocation schemes, but modified for one or more specific transmitters and receivers involved in the communication session. In other examples, the allocated power level allocation scheme may be customized for a specific communication session. Power level allocation scheme storage 1265 may store a specific allocation scheme, a selection of a specific allocation scheme, any customization in use, a current phase, etc.

[0109] The receiver 1225 may be a fiber optic receiver, but may also be an out-of-band receiver such as a WiFi receiver, a Bluetooth receiver, an Ethernet receiver, etc. The receiver 1225 may receive instructions from the transceiver 1260 that are passed to the controller to turn the light source 1215 on or off during model training of the receiver.

[0110] The second transmitter 1250 may include similar components as the first transmitter 1205. For example, a controller 1254, a light source 1256, a processing circuit 1252, a receiver 1258, a power level allocation scheme storage 1270, etc. In some examples, if the first transmitter 1205 and the second transmitter 1250 are in the same device, one or more components may be shared between the first transmitter 1205 and the second transmitter 1250. In addition, the first transmitter 1205 and the second transmitter 1250 may send multiple data streams to the transceiver 1260 through the optical cable at multiple different wavelengths. Therefore, the first transmitter 1205 and the second transmitter 1250 can use the two techniques of the present invention to send multiple data streams simultaneously on the same optical fiber by changing the power level, and also send multiple data streams using different wavelengths.

[0111] Fig.13 A schematic diagram of a receiver 1300 according to some examples of the present disclosure is shown. For example, the receiver 1300 can be an example receiver as part of the transceiver 1260. The receiver 1300 can include a photodetector 1305 that detects and / or counts photons received through an optical communication path such as an optical fiber within a predetermined time period (e.g., a time slot). The photon counts are passed to a controller 1310. The controller 1310 can determine the individual bits in the bit stream using one or more detection models stored in a model storage 1335. For example, the model can include one or more Poisson distributions that can return the probability that the photon count corresponds to one or more specific bit combinations for each stream. The specific detection model to be used can be selected based on the current stage of the current power level allocation scheme. The current stage and / or the selected power level allocation scheme can be stored in the power level allocation scheme storage 1340.

[0112] For example, consider a simple power level allocation scheme where two light sources transmit simultaneously across the same communication path (e.g., optical fiber) at the same wavelength. The power level allocation scheme alternates which of the two light sources (corresponding to two different data streams) is activated at a high power level on a bit-by-bit basis. In the first bit, stream 1 is a high power light source and stream 2 is a low power light source. The photon counts received during the time period in which the first bit is transmitted are submitted to a first set of detection models, which includes models trained to detect the first light source activated at high power (the second light source is off), the second light source activated at low power (the first light source is off), and both activated at their respective specified powers. The detection model that returns the highest score (e.g., detection probability) is used to assign values ​​to the bit streams. For example, if the detection model trained to detect the first light source activated at high power (the second light source is off) returns the highest probability, then a '1' is assigned to the bit stream corresponding to the first light source, and a zero is assigned to the bit stream corresponding to the second light source (e.g., based on a modulation scheme where a '1' is indicated by the activation of a light source and a '0' is indicated by the light source being off).

[0113] In the second phase, stream 1 is a low power light source and stream 2 is a high power light source. The photon counts received during the time period in which the second bit is to be transmitted are submitted to a second set of detection models, which includes models trained to detect the first light source activated at low power (without activating the second light source), the second light source activated at high power (without activating the first light source), and both emitting '1' at their respective specified powers. The detection model that returns the highest score (e.g., detection probability) is used to assign values ​​to the bit streams. For example, if the detection model trained to detect the first light source activated at low power (without activating the second device) returns the highest probability, then '1' is assigned to the bit stream corresponding to the first light source, and zero is assigned to the bit stream corresponding to the second light source.

[0114] Each bitstream determined by the controller is then passed to processing circuits 1315 and 1320, respectively, which decode the bitstream and perform various operations (e.g., Fig.12 The processing circuit 1210 and 1252 of the transmitter in the embodiment of the present invention are reverse operations performed by the processing circuit 1210 and 1252 of the transmitter in the embodiment of the present invention) and output the bit stream to a higher level layer (such as a physical layer, a transport layer or other network layer).

[0115] The calibration component 1325 may include a model training component 1330 that may instruct the transmitter (via the transmitter 1350) to send various test data sequences. The model may be constructed using the photon counts observed by the photodetector 1305. In some examples, the controller 1310 may also select and control a power level allocation scheme. For example, a scheme may be selected and / or customized by communicating with the transmitter. This may occur periodically before and / or during a communication session with the transmitter. In other examples, in the event that the transmitters agree on a power level allocation scheme, the controller 1310 receives a message indicating which power level allocation scheme is active. The controller may determine the current stage by messaging to and / or from one or more transmitters (e.g., for QoS-based methods or modifications), based on an elapsed time from the last stage, and the like.

[0116] As described above, the controller 1310 determines the phase of the power level allocation scheme (which emitter's light source is at what power) and uses the phase to select the appropriate detection model. For example, referring back to Table 1 with a power level allocation scheme, where the first phase causes the first emitter to emit at a high power level, if the phase is 1, the model is trained using data from the photon counts of the training period, where activating the first emitter at high power and activating the second emitter at a low power level can be selected and used.

[0117] Fig.14 An example machine learning component 1400 is shown according to some examples of the present disclosure. The machine learning component 1400 can be implemented in whole or in part by the model training component 1330. The machine learning component 1400 can include a training component 1410 and a prediction component 1420. In some examples, the training component 1410 can be implemented by a different device than the prediction component 1420. In these examples, the model 1480 can be created on a first machine and then sent to a second machine.

[0118] The machine learning component 1400 utilizes the training component 1410 and the prediction component 1420. The training component 1410 inputs the feature data 1430 into the feature determination component 1450. The feature data 1430 can be photon counts, phases, etc. In some examples, the feature data can be explicitly labeled with the bit allocation for each stream, the light source currently emitting, the power level at which the light source currently emitting is emitting, etc.

[0119] The feature determination component 1450 determines one or more features of the feature vector 1460 from the feature data 1430. The features of the feature vector 1460 are a set of information inputs and are information determined to predict the bit allocation of each stream. The features selected to be included in the feature vector 1460 can be all feature data 1430, or in some examples, can be a subset of all feature data 1430. In examples where the features selected for the feature vector 1460 are a subset of the feature data 1430, a predetermined list of which feature data 1430 is included in the feature vector can be utilized. The machine learning algorithm 1470 can utilize the feature vector 1460 (along with any applicable labels) to generate one or more detection models 1480.

[0120] In the prediction component 1420, the current feature data 1490 (e.g., photon counts) can be input to the feature determination component 1495. The feature determination component 1495 can determine the same set of features or a different set of features as the feature determination component 1450. In some examples, the feature determination components 1450 and 1495 are the same component or different instances of the same component. The feature determination component 1495 generates a feature vector 1497, which is input into the model 1480 to determine the bit allocation, phase, power level allocation scheme, etc. 1499.

[0121] The training component 1410 can operate in an offline manner to train the model 1480. However, the prediction component 1420 can be designed to operate in an online manner. It should be noted that the model 1480 can be regularly updated through additional training and / or user feedback.

[0122] Machine learning algorithm 1470 can be selected from many different potential supervised or unsupervised machine learning algorithms. Examples of supervised learning algorithms include artificial neural networks, convolutional neural networks, Bayesian networks, instance-based learning, support vector machines, decision trees (e.g., iterative bisection 3, C4.5, classification and regression trees (CART), chi-square automatic interaction detector (CHAID), etc.), random forests, linear classifiers, quadratic classifiers, k-nearest neighbors, linear regression, logistic regression, support vector machines, perceptrons, and hidden Markov models. Examples of unsupervised learning algorithms include expectation maximization algorithms, vector quantization, and information bottleneck methods. Unsupervised models may not have training components 1410. In some examples, detection model 1480 may determine the bits of each stream based on detected photons. In other examples, detection model 1480 may generate scores or probabilities for each stream that sends a specific bit.

[0123] As described above, a machine learning model can be used to select a power level allocation scheme. In these examples, the feature data 1430, 1490 can be information that predicts an appropriate power level allocation scheme. The features discussed above can be used as the feature data 1430, 1490 - such as power budget, transmitter characteristics, receiver characteristics, etc. The result can be a ranking and / or selection 1499 of a power level allocation scheme.

[0124] The modulation scheme used here has been relatively simple (on or off to represent '1' or '0'). In other examples, different modulation schemes may be used. For example, if the light source and receiver are capable, WDM, phase shift modulation, amplitude modulation, and other advanced modulation forms may be utilized in addition to the techniques described herein. For example, multiple bit streams may be split into multiple wavelengths - each of which may have multiple data streams sent using the methods disclosed herein. Similarly, for power modulation, the power allocation scheme of the present invention may allocate multiple power levels to each transmitter - each of which is a specific bit combination. Thus, a first transmitter may be assigned power levels 1, 2, and 3 (to indicate '01', '10', and '11' bits, respectively), while a second transmitter may be assigned power levels 4, 5, and 6 (to indicate '01', '10', and '11' bits). In this example, the system may allocate power levels so that the average photon counts for each power level combination are different enough so that the probability distributions are far enough apart so that the error rate is low.

[0125] Fig.15 A flow chart of a method 1500 of optically receiving data according to some examples of the present disclosure is illustrated. At operation 1510, a controller or other processor of a receiver may determine a count of photons received through an optical communication channel. For example, the controller may be communicatively coupled to a photon sensor. The controller may poll or otherwise receive counts, etc. In some examples, the photons striking the sensor may be generated by the transmission of a first data stream at a first power level and a second data stream at a second power level. The first data stream may be transmitted by a first light source, and the second data stream may be transmitted by a second light source. The first and second light sources may be on the same device or on different devices. In some examples, the photon count may correspond to photons detected by a photon detector within a time slot used to transmit bit data.

[0126] At operation 1515, the receiver may demultiplex a first data stream and a second data stream from an optical communication channel by applying the photon count as an input to at least one detection model. An example detection model may be a probability distribution, such as a Poisson probability distribution. Demultiplexing may be accomplished without using continuous interference cancellation. In some examples, demultiplexing may be performed using multiple detection models by assigning a bit value corresponding to a detection model that returns the highest probability (given a given photon count) in a plurality of detection models. In some examples, the received photons may be detected as sine waves, square waves, and the like. In some examples, the photon count may be generated or affected by destructive interference and demultiplexing is not affected by it because the detection model is trained based on an average of photon counts that have already dealt with destructive interference. In some examples, the optical communication channel may be on (or partially on) a single fiber. In other examples, the optical communication channel may be in (or partially on) the air—for example, the transmitter may be pointed at the receiver.

[0127] Fig.16 A flow chart of a method 1600 for receiving an optical signal at a receiver according to some examples of the present disclosure is illustrated. At operation 1610, the receiver may determine a photon count that strikes a photon detector during a detection time period (e.g., a time slot) and for a particular optical frequency. For example, a controller at the receiver may be communicatively coupled to the photon detector. The photons may be generated by the transmission of a corresponding first bit stream and a second bit stream transmitted to the photon detector at the same frequency and across the same optical communication path during the detection time period. The corresponding first bit stream and the second bit stream may be transmitted by selectively energizing and de-energizing the first light source and the second light source at a first power level and a second power level. In some examples, selective energization and de-energization may conform to a specific modulation scheme, such as an amplitude modulation scheme.

[0128] In operation 1615, the receiver may determine a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream based on a plurality of photon counting decision regions based on photon counting. In some examples, each of the plurality of photon counting decision regions corresponds to a corresponding bit value assignment for the first bit stream and the second bit stream. In some examples, a first decision region in the plurality of photon counting decision regions has a different decision range from a second decision region in the plurality of photon counting decision regions. In some examples, the decision ranges of the plurality of photon counting decision regions may be defined by a photon count range of a decision region with a probability greater than a threshold (e.g., greater than a negligible threshold). In these examples, the decision ranges of the plurality of decision regions may overlap. In other examples, the decision ranges of the plurality of photon counting decision regions may be defined as the photon counts with the highest probability returned by the decision region. Therefore, the decision regions may not overlap. In some examples, the decision regions may be described by a Poisson distribution.

[0129] In some examples, determining a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream based on photon counts using a plurality of photon counting decision regions is performed by, for each determined probability (given a photon count) in a plurality of photon counting decision regions, selecting a photon counting decision region with a maximum probability (given a photon count), and assigning values ​​corresponding to the bit assignments corresponding to the selected photon counting decision region to the first bit stream and the second bit stream. In some examples, the decision regions may be readjusted. For example, the training procedure may be rerun after a predetermined period of time. This may be adjusted for changing light source transmission characteristics, changing medium characteristics, and the like.

[0130] Fig.17 A flow chart of a method 1700 for simultaneously transmitting multiple data streams through an optical communication path according to some examples of the present disclosure is illustrated. The method 1700 may be performed by a controller of a first light source. At operation 1710, the controller may coordinate with a controller or a receiver of a second light source to determine a first power level. For example, the controller may determine one or more power level allocation schemes, determine a current stage, etc. The power level allocation scheme may be allocated by a receiver, determined by mutual agreement between transmitters (and receivers in some examples), etc. The first power level may be determined by identifying the current stage. For example, based on bits transmitted in sequence.

[0131] At operation 1715, the controller may selectively activate the first light source at a first wavelength at a first power level according to a modulation scheme to transmit data of the first data stream to the receiver. During the same time slot, a second data stream may be transmitted across the optical communication path by a second light source selectively activated at a first wavelength and a second power level according to the modulation scheme. For example, the first light source may be activated "on" at a first power level to transmit a bit and deactivated to transmit a zero. In other examples, more complex modulation schemes may be used, such as amplitude modulation, in which a sinusoidal waveform is adjusted in amplitude.

[0132] In some examples, each data bit of the first stream can be transmitted in the same time slot as the corresponding data bit of the second data stream (e.g., the bit transmission is synchronized so that each light source transmits at the same time). For example, the first light source transmits the first bit of the first data stream during the first time slot when the second light source transmits the first bit of the second data stream. During the second time slot, the first light source can transmit the second bit of the first data stream and the second light source can transmit the second bit of the second data stream. In subsequent transmissions, based on the power level allocation scheme, the first light source can selectively transmit at the first power level according to the modulation scheme and the second light source can selectively transmit at the second power level.

[0133] Fig.18A block diagram of an example machine 1800 is shown, on which any one or more of the techniques (e.g., methods) discussed herein can be executed. In alternative embodiments, the machine 1800 can operate as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine 1800 can operate in a server-client network environment with the capabilities of a server machine, a client machine, or both. In one example, the machine 1800 can act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 1800 can be a personal computer (PC), a tablet computer, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smart phone, a web tool, a network router, a switch or a bridge, or any machine capable of executing instructions (sequential or other) specifying the actions to be taken by the machine. The machine 1800 can implement a transmitter and / or receiver disclosed herein. In addition, the machine 1800 can include a transmitter and / or receiver disclosed herein. The machine 1800 can implement any method disclosed herein. Further, while only one machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, Software as a Service (SaaS), and other computer cluster configurations.

[0134] As described herein, examples may include logic or multiple components, components or mechanisms, or may operate on them. A component is a tangible entity (e.g., hardware) that is capable of performing a specified operation and may be configured or arranged in a certain manner. In one example, a circuit may be arranged in a specified manner (e.g., internally or relative to an external entity such as other circuits) as a component. In one example, all or part of one or more computer systems (e.g., independent, client or server computer systems) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application parts or applications) as a component that performs a specified operation. In an example, the software may reside on a machine-readable medium. In one example, the software causes the hardware to perform a specified operation when executed by the underlying hardware of the component.

[0135] Thus, the term "component" is understood to encompass a tangible entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., temporarily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any of the operations described herein. Considering the example of temporarily configured components, it is not necessary to instantiate each component at any time. For example, where the components include a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as different components at different times. The software can configure the hardware processor accordingly, for example, to constitute a particular component at one instance in time and to constitute a different component at a different instance in time.

[0136] The machine (e.g., computer system) 1800 may include a hardware processor 1802 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 1804, and a static memory 1806, some or all of which may communicate with each other via an interconnect (e.g., a bus) 1808. The machine 1800 may also include a display unit 1810, an alphanumeric input device 1812 (e.g., a keyboard), and a user interface (UI) navigation device 1814 (e.g., a mouse). In an example, the display unit 1810, the input device 1812, and the UI navigation device 1814 may be a touch screen display. The machine 1800 may additionally include a storage device (e.g., a drive unit) 1816, a signal generating device 1818 (e.g., a speaker), a network interface device 1820, and one or more sensors 1821, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. The machine 1800 may include an output controller 1828, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0137] The storage device 1816 may include a machine-readable medium 1822 on which is stored one or more sets of data structures or instructions 1824 (e.g., software) that embody or are used by any one or more of the techniques or functionality described herein. The instructions 1824 may also reside, completely or at least partially, within the main memory 1804, within the static memory 1806, or within the hardware processor 1802 during execution by the machine 1800. In an example, one or any combination of the hardware processor 1802, the main memory 1804, the static memory 1806, or the storage device 1816 may constitute a machine-readable medium.

[0138] Although the machine-readable medium 1822 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 1824 .

[0139] The term "machine-readable medium" may include any medium capable of storing, encoding, or carrying instructions executed by the machine 1800 and causing the machine 1800 to perform any one or more of the techniques of the present disclosure or capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting examples of machine-readable media may include solid-state memory and optical and magnetic media. Specific examples of machine-readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; disks, such as built-in hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium may include non-temporary machine-readable media. In some examples, the machine-readable medium may include machine-readable media that is not a transient propagation signal.

[0140] The instructions 1824 may further be sent or received over a communication network 1826 via the network interface device 1820 using a transmission medium. The machine 1800 may communicate with one or more other machines using any of a variety of transmission protocols (e.g., frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile telephone network (e.g., a cellular network), a plain old telephone (POTS) network, and a wireless data network (e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards, known as The IEEE 802.16 family of standards, known as ), IEEE 802.15.4 family of standards, Long Term Evolution (LTE) family of standards, Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, etc. In one example, the network interface device 1820 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas to connect to the communication network 1826. In one example, the network interface device 1820 may include multiple antennas to use at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology for wireless communication. In some examples, the network interface device 1820 may use multi-user MIMO technology for wireless communication.

[0141] Additional Notes and Examples

[0142] Example 1 is a method for receiving data via an optical communication path, the method comprising: determining a count of photons detected on the optical communication path within a determined time range; based on the count and a first detection model, determining a first probability that a first light source corresponding to a first data stream is powered on at a first power level, the first power level being different from a second power level; based on the count and the second detection model, determining a second probability that a second light source corresponding to a second data stream is powered on at a second power level; based on the count and the second detection model, determining a third probability that the first and second light sources are simultaneously turned on at their respective first and second power levels; and determining first data for the first data stream and second data for the second data stream based on the first, second and third probabilities.

[0143] In Example 2, the subject matter of Example 1 includes, wherein determining the first data and the second data includes: in response to the first probability or the third probability being greater than a threshold probability, assigning a value of 1 to the first data; in response to the second probability or the third probability being greater than a threshold probability, assigning a value of 1 to the second data.

[0144] In Example 3, the subject matter of Examples 1-2 includes, wherein determining the first data and the second data includes: in response to the first probability or the third probability being a highest probability among the first, second, and third probabilities, assigning a value of 1 to the first data.

[0145] In Example 4, the subject matter of Examples 1-3 includes, wherein determining the first data and the second data includes: in response to the second probability or the third probability being higher than the first probability, assigning a value of 1 to the second data.

[0146] In Example 5, the subject matter of Examples 1-4 includes, wherein the first data stream and the second data stream are both transmitted by a same device.

[0147] In Example 6, the subject matter of Examples 1-5 includes, wherein the first data stream and the second data stream are transmitted by different devices.

[0148] In Example 7, the subject matter of Examples 1-6 includes, wherein the first data stream and the second data stream are transmitted on a same wavelength.

[0149] In Example 8, the subject matter of Examples 1-7 includes, wherein the first, second, and third detection models are Poisson distributions.

[0150] In Example 9, the subject matter of Examples 1-8 includes, wherein the optical communication path is an optical fiber.

[0151] Example 10 is a device for receiving data via an optical communication path, the device comprising: a hardware processor configured to perform operations including: determining a count of photons detected on the optical communication path within a determined time range; determining a first probability that a first light source corresponding to a first data stream is powered on at a first power level based on the count and a first detection model, the first power level being different from a second power level; determining a second probability that a second light source corresponding to a second data stream is powered on at a second power level based on the count and the second detection model; determining a third probability that the first and second light sources are simultaneously turned on at their respective first and second power levels based on the count and a third detection model; and determining first data for the first data stream and second data for the second data stream based on the first probability, the second probability, and the third probability.

[0152] In Example 11, the subject matter of Example 10 includes, wherein the operation of determining the first data and the second data includes: in response to the first probability or the third probability being greater than a threshold probability, assigning a value of 1 to the first data; in response to the second probability or the third probability being greater than a threshold probability, assigning a value of 1 to the second data.

[0153] In Example 12, the subject matter of Examples 10-11 includes, wherein the operation of determining the first data and the second data includes: in response to the first probability or the third probability being a highest probability among the first, second, and third probabilities, assigning a value of 1 to the first data.

[0154] In Example 13, the subject matter of Examples 10-12 includes, wherein the operation of determining the first data and the second data includes: in response to the second probability or the third probability being higher than the first probability, assigning a value of 1 to the second data.

[0155] In Example 14, the subject matter of Examples 10-13 includes, wherein the first data stream and the second data stream are both transmitted by a same device.

[0156] In Example 15, the subject matter of Examples 10-14 includes, wherein the first data stream and the second data stream are transmitted by different devices.

[0157] In Example 16, the subject matter of Examples 10-15 includes, wherein the first data stream and the second data stream are transmitted on a same wavelength.

[0158] In Example 17, the subject matter of Examples 10-16 includes, wherein the first, second, and third detection models are Poisson distributions.

[0159] In Example 18, the subject matter of Examples 10-17 includes, wherein the optical communication path is an optical fiber.

[0160] Example 19 is a machine-readable medium storing instructions that, when executed by a machine, cause the machine to perform operations including: determining a count of photons detected on an optical communication path within a determined time range; determining a first probability that a first light source corresponding to a first data stream is powered on at a first power level, which is different from a second power level, based on the count and a first detection model; determining a second probability that a second light source corresponding to a second data stream is powered on at a second power level, based on the count and the second detection model; determining a third probability that the first and second light sources are simultaneously turned on at their respective first and second power levels, based on the count and a third detection model; and determining first data for the first data stream and second data for the second data stream based on the first, second, and third probabilities.

[0161] In Example 20, the subject matter of Example 19 includes, wherein the operation of determining the first data and the second data includes: in response to the first probability or the third probability being greater than a threshold probability, assigning a value of 1 to the first data; in response to the second probability or the third probability being greater than a threshold probability, assigning a value of 1 to the second data.

[0162] In Example 21, the subject matter of Examples 19-20 includes, wherein the operation of determining the first data and the second data includes: in response to the first probability or the third probability being a highest probability among the first, second, and third probabilities, assigning a value of 1 to the first data.

[0163] In Example 22, the subject matter of Examples 19-21 includes, wherein the operation of determining the first data and the second data includes: in response to the second probability or the third probability being higher than the first probability, assigning a value of 1 to the second data.

[0164] In Example 23, the subject matter of Examples 19-22 includes, wherein the first data stream and the second data stream are both transmitted by a same device.

[0165] In Example 24, the subject matter of Examples 19-23 includes, wherein the first data stream and the second data stream are transmitted by different devices.

[0166] In Example 25, the subject matter of Examples 19-24 includes, wherein the first data stream and the second data stream are transmitted on a same wavelength.

[0167] In Example 26, the subject matter of Examples 19-25 includes, wherein the first, second, and third detection models are Poisson distributions.

[0168] In Example 27, the subject matter of Examples 19-26 includes, wherein the optical communication path is an optical fiber.

[0169] Example 28 is a device for receiving data via an optical communication path, the device comprising: a device for determining a photon count detected on the optical communication path within a determined time range; a device for determining a first probability that a first light source corresponding to a first data stream is powered on at a first power level based on the count and a first detection model, the first power level being different from a second power level; a device for determining a second probability that a second light source corresponding to a second data stream is powered on at a second power level based on the count and the second detection model; a device for determining a third probability that the first and second light sources are simultaneously turned on at their respective first and second power levels based on the count and a third detection model; and a device for determining first data for the first data stream and second data for the second data stream based on the first, second and third probabilities.

[0170] In Example 29, the subject matter of Example 28 includes, wherein the device for determining the first data and the second data includes: a device for assigning a value of 1 to the first data in response to the first probability or the third probability being greater than a threshold probability; and a device for assigning a value of 1 to the second data in response to the second probability or the third probability being greater than a threshold probability.

[0171] In Example 30, the subject matter of Examples 28-29 includes, wherein the means for determining the first data and the second data includes: means for assigning a value of 1 to the first data in response to the first probability or the third probability being a highest probability among the first, second, and third probabilities.

[0172] In Example 31, the subject matter of Examples 28-30 includes, wherein the means for determining the first data and the second data comprises: means for assigning a value of 1 to the second data in response to the second probability or the third probability being higher than the first probability.

[0173] In Example 32, the subject matter of Examples 28-31 includes, wherein the first data stream and the second data stream are both transmitted by a same device.

[0174] In Example 33, the subject matter of Examples 28-32 includes, wherein the first data stream and the second data stream are transmitted by different devices.

[0175] In Example 34, the subject matter of Examples 28-33 includes, wherein the first data stream and the second data stream are transmitted on a same wavelength.

[0176] In Example 35, the subject matter of Examples 28-34 includes, wherein the first, second, and third detection models are Poisson distributions.

[0177] In Example 36, the subject matter of Examples 28-35 includes, wherein the optical communication path is an optical fiber.

[0178] Example 37 is a method for simultaneously transmitting multiple data streams on an optical communication path, the method comprising: identifying a power level allocation scheme that allocates different power levels to first and second light sources; determining a current stage of the power level allocation scheme; determining a first power level of the first light source corresponding to a first data stream to be transmitted through the optical communication path based on the power level allocation scheme and the current stage; and transmitting data of the first data stream at a first frequency through the optical communication path using the first light source at a first power level, the data of the first data stream being transmitted at the same time and frequency as the data of the second data stream being transmitted through the same optical communication path, the second data stream being transmitted at a second power level.

[0179] In Example 38, the subject matter of Example 37 includes transmitting data of the second data stream at a second power level using a second light source.

[0180] In Example 39, the subject matter of Examples 37-38 includes, wherein the data of the second data stream is transmitted by a different device than the data of the first data stream.

[0181] In Example 40, the subject matter of Examples 37-39 includes determining a priority of a first data stream; communicating the priority to one of: a receiver of the first and second data streams or a transmitter of the second data stream; and wherein one of: identifying a power level allocation scheme or determining a current stage based at least in part on the priority of the first data stream and the priority of the second data stream.

[0182] In Example 41, the subject matter of Examples 37-40 includes, wherein the current stage is the first stage, and wherein the second stage of the power level allocation scheme allocates the first power level to the second light source and allocates the second power level to the first light source, and wherein the method further includes: determining that the current stage has transitioned to the second stage; and transmitting data of the first data stream using the second power level.

[0183] In Example 42, the subject matter of Examples 37-41 includes, wherein identifying the power level allocation scheme comprises receiving an identifier of the selected power level allocation scheme from the receiver.

[0184] In Example 43, the subject matter of Examples 37-42 includes, wherein determining the current phase includes determining whether a timer for a first phase has elapsed.

[0185] In Example 44, the subject matter of Examples 37-43 includes, wherein determining the current phase comprises determining whether a data counter of the first phase has exceeded a threshold count.

[0186] In Example 45, the subject matter of Examples 37-44 includes, wherein determining the first power level comprises resolving a power level distribution scheme for the first power level.

[0187] In Example 46, the subject matter of Examples 37-45 includes, wherein the optical communication path is an optical fiber.

[0188] Example 47 is a device for transmitting data through an optical communication path, the device comprising: a hardware processor configured to perform operations including: identifying a power level allocation scheme that allocates different power levels to first and second light sources; determining a current stage of the power level allocation scheme; based on the power level allocation scheme and the current stage, determining a first power level of the first light source corresponding to a first data stream to be transmitted through the optical communication path; and transmitting data of the first data stream through the optical communication path at a first frequency using the first light source at the first power level, the data of the first data stream being transmitted at the same time and frequency as the data of the second data stream being transmitted through the same optical communication path, the second data stream being transmitted at a second power level.

[0189] In Example 48, the subject matter of Example 47 includes, wherein the operations further comprise: transmitting data of the second data stream at a second power level using a second light source.

[0190] In Example 49, the subject matter of Examples 47-48 includes, wherein the data of the second data stream is transmitted by a different device than the data of the first data stream.

[0191] In Example 50, the subject matter of Examples 47-49 includes, wherein the operation further includes: determining a priority of the first data stream; transmitting the priority to one of: a receiver of the first and second data streams or a transmitter of the second data stream; and wherein one of: identifying a power level allocation scheme or determining a current stage based at least in part on the priority of the first data stream and the priority of the second data stream.

[0192] In Example 51, the subject matter of Examples 47-50 includes, wherein the current stage is the first stage, and wherein the second stage of the power level allocation scheme allocates the first power level to the second light source and allocates the second power level to the first light source, and wherein the operation further includes: determining that the current stage has transitioned to the second stage; and transmitting data of the first data stream using the second power level.

[0193] In Example 52, the subject matter of Examples 47-51 includes, wherein the operation of identifying the power level allocation scheme comprises receiving an identifier of the selected power level allocation scheme from the receiver.

[0194] In Example 53, the subject matter of Examples 47-52 includes, wherein the operation of determining the current phase includes determining whether a timer for the first phase has elapsed.

[0195] In Example 54, the subject matter of Examples 47-53 includes, wherein determining the operation of the current phase includes determining whether a data counter of the first phase has exceeded a threshold count.

[0196] In Example 55, the subject matter of Examples 47-54 includes, wherein the operation of determining the first power level includes parsing a power level distribution scheme for the first power level.

[0197] In Example 56, the subject matter of Examples 47-55 includes, wherein the optical communication path is an optical fiber.

[0198] Example 57 is a machine-readable medium storing instructions that, when executed by a machine, cause the machine to perform operations, the machine comprising: a hardware processor configured to perform operations, the operations comprising: identifying a power level allocation scheme that allocates different power levels to a first and a second light source; determining a current stage of the power level allocation scheme; based on the power level allocation scheme and the current stage, determining a first power level of the first light source corresponding to a first data stream to be transmitted through an optical communication path; transmitting data of the first data stream through the optical communication path at a first frequency using the first light source at the first power level, the data of the first data stream transmitted at the same time and frequency as the data of the second data stream being transmitted through the same optical communication path, and the second data stream being transmitted at a second power level.

[0199] In Example 58, the subject matter of Example 57 includes, wherein the operations further comprise: transmitting data of the second data stream at a second power level using a second light source.

[0200] In Example 59, the subject matter of Examples 57-58 includes, wherein the data of the second data stream is transmitted by a different device than the data of the first data stream.

[0201] In Example 60, the subject matter of Examples 57-59 includes, wherein the operation further includes: determining a priority of the first data stream; transmitting the priority to one of: a receiver of the first and second data streams or a transmitter of the second data stream; and wherein one of: identifying a power level allocation scheme or determining a current stage based at least in part on the priority of the first data stream and the priority of the second data stream.

[0202] In Example 61, the subject matter of Examples 57-60 includes, wherein the current stage is the first stage and wherein the second stage of the power level allocation scheme allocates the first power level to the second light source and allocates the second power level to the first light source, wherein the operation further includes: determining that the current stage has transitioned to the second stage; and transmitting data of the first data stream using the second power level.

[0203] In Example 62, the subject matter of Examples 57-61 includes, wherein the operation of identifying the power level allocation scheme comprises receiving an identifier of the selected power level allocation scheme from the receiver.

[0204] In Example 63, the subject matter of Examples 57-62 includes, wherein the operation of determining the current phase includes determining whether a timer for the first phase has elapsed.

[0205] In Example 64, the subject matter of Examples 57-63 includes, wherein determining the operation of the current phase includes determining whether a data counter of the first phase has exceeded a threshold count.

[0206] In Example 65, the subject matter of Examples 57-64 includes, wherein the operation of determining the first power level includes parsing a power level distribution scheme for the first power level.

[0207] In Example 66, the subject matter of Examples 57-65 includes, wherein the optical communication path is an optical fiber.

[0208] Example 67 is a device for transmitting data through an optical communication path, the device comprising: a device for identifying a power level allocation scheme that allocates different power levels to first and second light sources; a device for determining a current stage of the power level allocation scheme; a device for determining a first power level of a first light source corresponding to a first data stream to be transmitted through the optical communication path based on the power level allocation scheme and the current stage; and a device for transmitting data of the first data stream at a first frequency through the optical communication path using the first light source at a first power level, the data of the first data stream being transmitted at the same time and frequency as the data of the second data stream being transmitted through the same optical communication path, and the second data stream being transmitted at a second power level.

[0209] In Example 68, the subject matter of Example 67 includes means for transmitting data of a second data stream at a second power level using a second light source.

[0210] In Example 69, the subject matter of Examples 67-68 includes, wherein the data of the second data stream is transmitted by a different device than the data of the first data stream.

[0211] In Example 70, the subject matter of Examples 67-69 includes a device for determining a priority of a first data stream; a device for transmitting the priority to one of: a receiver of the first and second data streams or a transmitter of the second data stream; and a device for one of: identifying a power level allocation scheme or determining a current stage based at least in part on the priority of the first data stream and the priority of the second data stream.

[0212] In Example 71, the subject matter of Examples 67-70 includes, wherein the current stage is the first stage, and wherein the second stage of the power level allocation scheme allocates the first power level to the second light source and allocates the second power level to the first light source, and wherein the device further includes: a device for determining that the current stage has transitioned to the second stage; and a device for transmitting data of the first data stream using the second power level.

[0213] In Example 72, the subject matter of Examples 67-71 includes, wherein the means for identifying the power level allocation scheme comprises means for receiving an identifier of the selected power level allocation scheme from the receiver.

[0214] In Example 73, the subject matter of Examples 67-72 includes, wherein the means for determining the current phase includes means for determining whether a timer for a first phase has elapsed.

[0215] In Example 74, the subject matter of Examples 67-73 includes, wherein the means for determining the current phase includes means for determining whether a data counter of a first phase has exceeded a threshold count.

[0216] In Example 75, the subject matter of Examples 67-74 includes, wherein the means for determining the first power level comprises means for resolving a power level distribution scheme for the first power level.

[0217] In Example 76, the subject matter of Examples 67-75 includes, wherein the optical communication path is an optical fiber.

[0218] Example 77 is a method for receiving data through 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 through the optical communication path at a first wavelength at a first power level and a second light source does not transmit through the optical fiber; determining a first detection model based on the first photon count, the first detection model generating an inference as to 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 through the optical fiber at a first wavelength at a second power level and the first light source does not transmit through the optical fiber; determining a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; when the first light source transmits through the optical fiber at a first wavelength at a first power level and the second light source does not transmit through the optical fiber When the two light sources transmit through the optical fiber at the first wavelength at the second power level, calculate a third photon count of photons observed during a third time period; determine a third detection model based on the third photon count, the third detection model generating an inference as to whether a given photon count indicates that the first light source is activated at the first power level and the second light source is activated at the second power level; receive the transmission through the optical fiber at the first wavelength during a fourth time period; determine the photon count of the transmission; use the first detection model to determine a first inference that the transmission is caused by the first light source at the first power level, use the second detection model to determine a second inference that the transmission is caused by the second light source at the second power level, and use the third detection model to determine a third inference that the transmission is caused by the first and second light sources together; based on the first, second and third inferences, assign bit values ​​to a first data stream corresponding to the first light source and a second data stream corresponding to the second light source, and the first and second data streams are stored in a memory of the computing device.

[0219] In Example 78, the subject matter of Example 77 includes, wherein the first detection model is a Poisson distribution.

[0220] In Example 79, the subject matter of Example 78 includes, wherein the training first photon count is an average number of photons observed during the first time period.

[0221] In Example 80, the subject matter of Examples 77-79 includes, wherein determining the first detection model includes training a supervised learning machine learning model using the first photon counts.

[0222] In Example 81, the subject matter of Examples 77-80 includes, wherein the method further includes: sending a first instruction to a controller of a first light source before a first time period; sending a second instruction to a controller of a second light source before a second time period; and sending a third instruction to the controller of the first light source and the controller of the second light source before a third time period.

[0223] In Example 82, the subject matter of Examples 77-81 includes, wherein the first and second light sources are in a same device.

[0224] In Example 83, the subject matter of Examples 77-82 includes, wherein the first and second light sources are in different devices.

[0225] In Example 84, the subject matter of Examples 77-83 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first inference, the second inference, and the third inference includes: determining that the first or third inference indicates a maximum probability, and in response, assigning a value of 1 to the first stream.

[0226] In Example 85, the subject matter of Examples 77-84 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first, second, and third inferences includes: determining that the second or third inference indicates a maximum probability, and in response, assigning a value of 1 to the second stream.

[0227] In Example 86, the subject matter of Examples 77-85 includes, wherein the first, second, and third detection models are specific to a first phase of the power level allocation scheme, and wherein the method further comprises: determining a first inference, a second inference, and a third inference in response to a determination that the first phase of the power level allocation scheme is active; receiving a next transmission at the first wavelength through the optical fiber during a fifth time period; determining a photon count for the next transmission; determining that the second phase of the power level allocation scheme is active; and in response to determining that the second phase of the power level allocation scheme is active, determining a next bit allocation for the first data stream and the second data stream based on the photon count for the next transmission and fourth, fifth, and sixth detection models, the fourth, fifth, and sixth detection models being calculated based on the second phase of the power level allocation scheme.

[0228] In Example 87, the subject matter of Examples 77-86 includes, wherein the optical communication path is an optical fiber.

[0229] Example 88 is a device for receiving data through an optical communication path, the device comprising: a hardware processor configured to perform operations, the operations comprising: calculating a first photon count of photons observed during a first time period when a first light source transmits through the optical communication path at a first wavelength at a first power level and a second light source does not transmit through the optical fiber; determining a first detection model based on the first photon count, the first detection model generating an inference as to 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 through the optical fiber at a first wavelength at a second power level and the first light source does not transmit through the optical fiber; determining a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; when the first light source transmits through the optical fiber at the first wavelength at the first power level a first light source transmitting at the first power level through the optical fiber and a second light source transmitting at the first wavelength through the optical fiber at the second power level, calculating a third photon count of photons observed during a third time period; determining a third detection model based on the third photon count, the third detection model generating an inference as to whether a given photon count indicates that the first light source is activated at the first power level and the second light source is activated at the second power level; receiving transmissions through the optical fiber at the first wavelength during a fourth time period; determining the photon count of the transmissions; determining a first inference that the transmissions were caused by the first light source at the first power level using the first detection model, determining a second inference that the transmissions were caused by the second light source at the second power level using the second detection model, and determining a third inference that the transmissions were caused by the first and second light sources 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 on the first, second, and third inferences, the first and second data streams being stored in a memory of the computing device.

[0230] In Example 89, the subject matter of Example 88 includes, wherein the first detection model is a Poisson distribution.

[0231] In Example 90, the subject matter of Example 89 includes, wherein the operation of training the first photon count is an average number of photons observed during a first time period.

[0232] In Example 91, the subject matter of Examples 88-90 includes where the operation of determining the first detection model includes training a supervised learning machine learning model using the first photon counts.

[0233] In Example 92, the subject matter of Examples 88-91 includes, wherein the operation further includes: sending a first instruction to a controller of a first light source before a first time period; sending a second instruction to a controller of a second light source before a second time period; and sending a third instruction to the controller of the first light source and the controller of the second light source before a third time period.

[0234] In Example 93, the subject matter of Examples 88-92 includes, wherein the first and second light sources are in a same device.

[0235] In Example 94, the subject matter of Examples 88-93 includes, wherein the first and second light sources are in different devices.

[0236] In Example 95, the subject matter of Examples 88-94 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first inference, the second inference, and the third inference includes: determining that the first or third inference indicates a maximum probability, and in response, assigning a value of 1 to the first stream.

[0237] In Example 96, the subject matter of Examples 88-95 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first, second, and third inferences includes: determining that the second or third inference indicates a maximum probability, and in response, assigning a value of 1 to the second stream.

[0238] In Example 97, the subject matter of Examples 88-96 includes, wherein the first, second, and third detection models are specific to a first phase of the power level allocation scheme, and wherein the operation further includes: determining a first inference, a second inference, and a third inference in response to a determination that the first phase of the power level allocation scheme is active; receiving a next transmission at the first wavelength through the optical fiber during a fifth time period; determining a photon count for the next transmission; determining that the second phase of the power level allocation scheme is active; and in response to determining that the second phase of the power level allocation scheme is active, determining a next bit allocation for the first data stream and the second data stream based on the photon count for the next transmission and fourth, fifth, and sixth detection models, the fourth, fifth, and sixth detection models being calculated based on the second phase of the power level allocation scheme.

[0239] In Example 98, the subject matter of Examples 88-97 includes, wherein the optical communication path is an optical fiber.

[0240] Example 99 is a machine-readable medium storing instructions that, when executed, cause the machine to perform operations including: calculating a first photon count of photons observed during a first time period when a first light source transmits through an optical communication path at a first wavelength at a first power level and a second light source does not transmit through the optical fiber; determining a first detection model based on the first photon count, the first detection model generating an inference as to 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 through the optical fiber at a first wavelength at a second power level and the first light source does not transmit through the optical fiber; determining a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; a first light source transmitting at the first wavelength through the optical fiber at a second power level, calculating a third photon count of photons observed during a third time period; determining a third detection model based on the third photon count, the third detection model generating an inference as to whether a given photon count indicates that the first light source is activated at the first power level and the second light source is activated at the second power level; receiving the transmission through the optical fiber at the first wavelength during a fourth time period; determining the photon count of the transmission; determining a first inference that the transmission was caused by the first light source at the first power level using the first detection model, determining a second inference that the transmission was caused by the second light source at the second power level using the second detection model, and determining a third inference that the transmission was caused by the first and second light sources 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 on the first, second, and third inferences, the first and second data streams being stored in a memory of the computing device.

[0241] In Example 100, the subject matter of Example 99 includes, wherein the first detection model is a Poisson distribution.

[0242] In Example 101, the subject matter of Example 100 includes where the operation of training the first photon count is an average number of photons observed during a first time period.

[0243] In Example 102, the subject matter of Examples 99-101 includes, wherein the operation of determining the first detection model includes training a supervised learning machine learning model using the first photon counts.

[0244] In Example 103, the subject matter of Examples 99-102 includes, wherein the operation further includes: sending a first instruction to a controller of a first light source before a first time period; sending a second instruction to a controller of a second light source before a second time period; and sending a third instruction to the controller of the first light source and the controller of the second light source before a third time period.

[0245] In Example 104, the subject matter of Examples 99-103 includes, wherein the first and second light sources are in a same device.

[0246] In Example 105, the subject matter of Examples 99-104 includes, wherein the first and second light sources are in different devices.

[0247] In Example 106, the subject matter of Examples 99-105 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first inference, the second inference, and the third inference includes: determining that the first or third inference indicates a maximum probability, and in response, assigning a value of 1 to the first stream.

[0248] In Example 107, the subject matter of Examples 99-106 includes, wherein the first, second, and third inferences are probabilities, and wherein assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first, second, and third inferences includes: determining that the second or third inference indicates a maximum probability, and in response, assigning a value of 1 to the second stream.

[0249] In Example 108, the subject matter of Examples 99-107 includes, wherein the first, second, and third detection models are specific to a first phase of a power level allocation scheme, and wherein the operation further comprises: determining a first inference, a second inference, and a third inference in response to a determination that the first phase of the power level allocation scheme is active; receiving a next transmission at a first wavelength through the optical fiber during a fifth time period; determining a photon count for the next transmission; determining that the second phase of the power level allocation scheme is active; and in response to determining that the second phase of the power level allocation scheme is active, determining a next bit allocation for the first data stream and the second data stream based on the photon count for the next transmission and fourth, fifth, and sixth detection models, the fourth, fifth, and sixth detection models being calculated based on the second phase of the power level allocation scheme.

[0250] In Example 109, the subject matter of Examples 99-108 includes, wherein the optical communication path is an optical fiber.

[0251] Example 110 is a device for receiving data through an optical communication path, the device comprising: a device for calculating a first photon count of photons observed during a first time period when a first light source transmits through the optical communication path at a first wavelength at a first power level and a second light source does not transmit through the optical fiber; a device for determining a first detection model based on the first photon count, the first detection model generating an inference as to 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; a device for calculating a second photon count of photons observed during a second time period when the second light source transmits through the optical fiber at a first wavelength at a second power level and the first light source does not transmit through the optical fiber; a device for determining a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; a device for determining a second detection model based on the second photon count, the second detection model generating an inference as to whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; Means for calculating a third photon count of photons observed during a third time period when transmitting through the optical fiber at the first wavelength at the second power level; means for determining a third detection model based on the third photon count, the third detection model generating an inference as to whether a given photon count indicates that the first light source is activated at the first power level and the second light source is activated at the second power level; means for receiving a transmission through the optical fiber at the first wavelength during a fourth time period; means for determining the photon count of the transmission; means for determining a first inference that the transmission was caused by the first light source at the first power level using the first detection model, a second inference that the transmission was caused by the second light source at the second power level using the second detection model, and a third inference that the transmission was caused by the first and second light sources together using the third detection model; and means for 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 on the first, second, and third inferences, the first and second data streams being stored in a memory of the computing device.

[0252] In Example 111, the subject matter of Example 110 includes, wherein the first detection model is a Poisson distribution.

[0253] In Example 112, the subject matter of Example 111 includes, wherein the training first photon count is an average number of photons observed during the first time period.

[0254] In Example 113, the subject matter of Examples 110-112 includes, wherein the means for determining the first detection model includes means for training a supervised learning machine learning model using the first photon counts.

[0255] In Example 114, the subject matter of Examples 110-113 includes a device for sending a first instruction to a controller of a first light source before a first time period; a device for sending a second instruction to a controller of a second light source before a second time period; and a device for sending a third instruction to the controller of the first light source and the controller of the second light source before a third time period.

[0256] In Example 115, the subject matter of Examples 110-114 includes, wherein the first and second light sources are in a same device.

[0257] In Example 116, the subject matter of Examples 110-115 includes, wherein the first and second light sources are in different devices.

[0258] In Example 117, the subject matter of Examples 110-116 includes wherein the first, second, and third inferences are probabilities, and wherein the apparatus for assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first inference, the second inference, and the third inference includes: apparatus for determining that the first or third inference indicates a maximum probability, and in response, assigning a value of 1 to the first stream.

[0259] In Example 118, the subject matter of Examples 110-117 includes wherein the first, second, and third inferences are probabilities, and wherein the means for assigning bit values ​​to a first data stream corresponding to a first light source and a second data stream corresponding to a second light source based on the first, second, and third inferences includes: means for determining that the second or third inference indicates a maximum probability, and in response, assigning a value of 1 to the second stream.

[0260] In Example 119, the subject matter of Examples 110-118 includes wherein the first, second, and third detection models are specific to a first phase of the power level allocation scheme, and wherein the device further includes: means for determining a first inference, a second inference, and a third inference in response to a determination that the first phase of the power level allocation scheme is active; means for receiving a next transmission at a first wavelength through the optical fiber during a fifth time period; means for determining a photon count for the next transmission; means for determining that the second phase of the power level allocation scheme is active; and means for determining a next bit allocation for the first data stream and the second data stream based on the photon count for the next transmission and fourth, fifth, and sixth detection models in response to determining that the second phase of the power level allocation scheme is active, the fourth, fifth, and sixth detection models being calculated based on the second phase of the power level allocation scheme.

[0261] In Example 120, the subject matter of Examples 110-119 includes, wherein the optical communication path is an optical fiber.

[0262] Example 121 is a method of optically receiving data, the method comprising: determining a count of photons received through an optical communication channel, the photons generated by transmitting a first data stream at a first power level and transmitting a second data stream at a second power level; and demultiplexing the first data stream and the second data stream from the optical communication channel by applying the photon counts as input to at least one detection model without using successive interference cancellation.

[0263] In Example 122, the subject matter of Example 121 includes, wherein demultiplexing is performed using multiple detection models including at least one detection model, the demultiplexing including assigning a bit value corresponding to a detection model among the multiple detection models that returns a highest probability given a given photon count to the first data stream and the second data stream.

[0264] In Example 123, the subject matter of Example 122 includes, wherein a first detection model in the plurality of detection models has a different range than a second detection model in the plurality of detection models.

[0265] In Example 124, the subject matter of Example 123 includes, wherein the plurality of detection models are probabilistic models.

[0266] In Example 125, the subject matter of Examples 121-124 includes, wherein the received photons are received as a sine wave.

[0267] In Example 126, the subject matter of Examples 121-125 includes, wherein the received photons are received as a square wave.

[0268] In Example 127, the subject matter of Examples 121-126 includes, wherein the photon counts are generated by destructive interference, and wherein demultiplexing of the first data stream and the second data stream is performed despite the destructive interference.

[0269] In Example 128, the subject matter of Examples 121-127 includes, wherein the photons are received via a single fiber optic cable.

[0270] In Example 129, the subject matter of Examples 121-128 includes, wherein the first light source is used to transmit the first data stream and the second light source is used to transmit the second data stream.

[0271] In Example 130, the subject matter of Examples 121-129 includes, wherein demultiplexing includes demultiplexing first and second data streams from the optical communication channel by applying photon counts as input to at least one detection model without using successive interference cancellation and without remodulating the signal.

[0272] Example 131 is a device for optically receiving data, the device comprising: a controller configured to perform operations including: determining a count of photons received through an optical communication channel, the photons generated by transmitting a first data stream at a first power level and transmitting a second data stream at a second power level; and demultiplexing the first data stream and the second data stream from the optical communication channel by applying the photon counts as input to at least one detection model without using successive interference cancellation.

[0273] In Example 132, the subject matter of Example 131 includes, wherein the controller performs demultiplexing using multiple detection models including at least one detection model, the demultiplexing operation including assigning bit values ​​corresponding to a detection model among the multiple detection models that returns a highest probability given a given photon count to the first data stream and the second data stream.

[0274] In Example 133, the subject matter of Example 132 includes, wherein a first detection model in the plurality of detection models has a different range than a second detection model in the plurality of detection models.

[0275] In Example 134, the subject matter of Example 133 includes, wherein the plurality of detection models are probabilistic models.

[0276] In Example 135, the subject matter of Examples 131-134 includes, wherein the received photons are received as a sine wave.

[0277] In Example 136, the subject matter of Examples 131-135 includes, wherein the received photons are received as a square wave.

[0278] In Example 137, the subject matter of Examples 131-136 includes, wherein the photon counts are generated by destructive interference, and wherein the operation of demultiplexing the first data stream and the second data stream is performed despite the destructive interference.

[0279] In Example 138, the subject matter of Examples 131-137 includes, wherein the photons are received via a single fiber optic cable.

[0280] In Example 139, the subject matter of Examples 131-138 includes, wherein the first light source is used to transmit the first data stream and the second light source is used to transmit the second data stream.

[0281] In Example 140, the subject matter of Examples 131-139 includes, wherein the operation of demultiplexing includes demultiplexing first and second data streams from the optical communication channel by applying photon counts as input to at least one detection model without using successive interference cancellation and without remodulating the signal.

[0282] Example 141 is a machine-readable medium storing instructions for optically receiving data, which, when executed by a machine, causes the machine to perform operations including: a controller configured to perform operations including: determining a count of photons received through an optical communication channel, the photons resulting from transmission of a first data stream at a first power level and transmission of a second data stream at a second power level; and demultiplexing the first data stream and the second data stream from the optical communication channel by applying the photon counts as input to at least one detection model without using successive interference cancellation.

[0283] In Example 142, the subject matter of Example 141 includes, wherein the demultiplexing utilizes multiple detection models including at least one detection model, and the operation of the demultiplexing includes assigning a bit value corresponding to a detection model among the multiple detection models that returns a highest probability given a given photon count to the first data stream and the second data stream.

[0284] In Example 143, the subject matter of Example 142 includes, wherein a first detection model in the plurality of detection models has a different range than a second detection model in the plurality of detection models.

[0285] In Example 144, the subject matter of Example 143 includes, wherein the plurality of detection models are probabilistic models.

[0286] In Example 145, the subject matter of Examples 141-144 includes, wherein the received photons are received as a sine wave.

[0287] In Example 146, the subject matter of Examples 141-145 includes, wherein the received photons are received as a square wave.

[0288] In Example 147, the subject matter of Examples 141-146 includes, wherein the photon counts are generated by destructive interference, and wherein the operation of demultiplexing the first data stream and the second data stream is performed despite the destructive interference.

[0289] In Example 148, the subject matter of Examples 141-147 includes, wherein the photons are received via a single fiber optic cable.

[0290] In Example 149, the subject matter of Examples 141-148 includes, wherein the first light source is used to transmit the first data stream and the second light source is used to transmit the second data stream.

[0291] In Example 150, the subject matter of Examples 141-149 includes, wherein the operation of demultiplexing includes demultiplexing first and second data streams from the optical communication channel by applying photon counts as input to at least one detection model without using successive interference cancellation and without remodulating the signal.

[0292] Example 151 is a device for optically receiving data, the device comprising: a device for determining a count of photons received through an optical communication channel, the photons generated by transmitting a first data stream at a first power level and a second data stream at a second power level; and a device for demultiplexing the first data stream and the second data stream from the optical communication channel by applying the photon counts as input to at least one detection model without using successive interference cancellation.

[0293] In Example 152, the subject matter of Example 151 includes, wherein demultiplexing is performed using multiple detection models including at least one detection model, and the device for demultiplexing includes a device for assigning bit values ​​corresponding to the detection model among the multiple detection models that returns the highest probability given a given photon count to the first data stream and the second data stream.

[0294] In Example 153, the subject matter of Example 152 includes, wherein a first detection model in the plurality of detection models has a different range than a second detection model in the plurality of detection models.

[0295] In Example 154, the subject matter of Example 153 includes, wherein the plurality of detection models are probabilistic models.

[0296] In Example 155, the subject matter of Examples 151-154 includes, wherein the received photons are received as a sine wave.

[0297] In Example 156, the subject matter of Examples 151-155 includes, wherein the received photons are received as a square wave.

[0298] In Example 157, the subject matter of Examples 151-156 includes, wherein the photon counts are generated by destructive interference, and wherein demultiplexing of the first data stream and the second data stream is performed despite the destructive interference.

[0299] In Example 158, the subject matter of Examples 151-157 includes, wherein the photons are received via a single fiber optic cable.

[0300] In Example 159, the subject matter of Examples 151-158 includes, wherein the first light source is used to transmit the first data stream and the second light source is used to transmit the second data stream.

[0301] In Example 160, the subject matter of Examples 151-159 includes, wherein the means for demultiplexing includes means for demultiplexing first and second data streams from an optical communication channel by applying photon counts as input to at least one detection model without using successive interference cancellation and without remodulating the signal.

[0302] Example 161 is a system for transmitting data using light, the system comprising: a first light source configured to transmit a first data stream to a receiver at a first power level and at a first wavelength through a first optical communication path; and a second light source configured to transmit a second data stream to the receiver at a second power level different from the first power level and at the first wavelength through the first optical communication path at the same time as the first light source transmits the first data stream.

[0303] In Example 162, the subject matter of Example 161 includes, wherein the first optical communication path is a single fiber optic cable.

[0304] In Example 163, the subject matter of Examples 161-162 includes, wherein the first and second light sources at least partially interfere with each other when both are activated.

[0305] In Example 164, the subject matter of Examples 161-163 includes a receiver configured to receive a first data stream and a second data stream and to recover the first data stream and the second data stream using a plurality of detection models.

[0306] In Example 165, the subject matter of Example 164 includes wherein the first and second light sources interfere with each other on the first optical communication path at least sometimes when both are activated, and wherein the plurality of detection models are configured to account for the interference, and wherein the receiver is configured to recover the first data stream and the second data stream despite the interference.

[0307] In Example 166, the subject matter of Examples 164-165 includes, wherein the receiver is configured to recover the first and second data streams by inputting photon counts of received photons into a plurality of detection models.

[0308] In Example 167, the subject matter of Example 166 includes, wherein at least one of the plurality of detection models is a Poisson probability distribution.

[0309] In Example 168, the subject matter of Examples 166-167 includes, wherein at least one of the plurality of detection models is a supervised learning neural network model.

[0310] In Example 169, the subject matter of Examples 166-168 includes, wherein at least two of the plurality of detection models have different detection ranges.

[0311] In Example 170, the subject matter of Examples 166-169 includes, wherein the receiver is configured to recover the first and second data streams by: submitting the photon counts to a plurality of detection models, each of the plurality of detection models corresponding to a bit allocation for the first and second data streams; and assigning a value to the first data stream and the second data stream that is equal to the corresponding bit allocation of the detection model that produces the highest probability given the photon counts.

[0312] In Example 171, the subject matter of Examples 166-170 includes, wherein the receiver is configured to instruct the first and second light sources to transmit a plurality of training sequences, and the receiver is further configured to determine a plurality of detection patterns from the training sequences.

[0313] In Example 172, the subject matter of Examples 166-171 includes, wherein the receiver is configured to transmit a power level allocation scheme to the first and second light sources, the power level allocation scheme specifying power levels used by the first light source and the second light source in multiple stages, including a stage in which the first light source transmits at a first power level and the second light source transmits at a second power level.

[0314] In Example 173, the subject matter of Examples 161-172 includes, wherein the first and second light sources are included in a same computing device.

[0315] In Example 174, the subject matter of Examples 161-173 includes, wherein the first light source is included in the first computing device and the second light source is included in the second computing device.

[0316] In Example 175, the subject matter of Examples 161-174 includes, wherein the controller of the first light source is configured to receive an instruction from the receiver indicating the first power level.

[0317] In Example 176, the subject matter of Examples 161-175 includes, wherein the controller of the first light source and the controller of the second light source are configured to send a training sequence to the receiver.

[0318] In Example 177, the subject matter of Examples 161-176 includes, wherein the first light source and the second light source are configured to be time synchronized and to transmit corresponding bits of the first and second data streams simultaneously.

[0319] In Example 178, the subject matter of Examples 161-177 includes, wherein the first light source is configured to transmit a sinusoidal waveform.

[0320] In Example 179, the subject matter of Examples 161-178 includes, wherein the first light source is configured to transmit a square wave.

[0321] In Example 180, the subject matter of Examples 161-179 includes, wherein the first light source is a light emitting diode (LED).

[0322] Example 181 is a method for simultaneously transmitting multiple data streams on an optical communication path, the method comprising, at a controller of a first light source: coordinating with a controller of a second light source or a receiver to determine a first power level; and selectively activating the first light source at a first wavelength at a first power level according to a modulation scheme to transmit data of the first data stream to the receiver, each data bit of the first data stream being transmitted in the same time slot as the corresponding data bit of the second data stream, the second data stream being transmitted through the optical communication path by the second light source selectively activated at the first wavelength and the second power level according to the modulation scheme.

[0323] In Example 182, the subject matter of Example 181 includes, wherein the optical communication path is a single fiber optic cable.

[0324] In Example 183, the subject matter of Examples 181-182 includes, wherein the optical communication path is a path between the first and second light sources and the photon detector of the receiver that does not pass through glass fiber.

[0325] In Example 184, the subject matter of Examples 181-183 includes, wherein coordinating with a controller of the second light source or with the receiver to determine the first power level includes selecting a power level distribution scheme and determining the first power level from the selected power level distribution scheme.

[0326] In Example 185, the subject matter of Example 184 includes, wherein determining the first power level according to the selected power level allocation scheme comprises identifying a current stage, and based on the current stage, identifying the first power level from the power level allocation scheme.

[0327] In Example 186, the subject matter of Example 185 includes, wherein the current phase is associated with a current time slot.

[0328] In Example 187, the subject matter of Examples 181-186 includes, wherein the modulation scheme produces a sinusoidal waveform.

[0329] In Example 188, the subject matter of Examples 181-187 includes, wherein the modulation scheme produces a square wave.

[0330] In Example 189, the subject matter of Examples 181-188 includes, wherein the first light source and the second light source are at different devices.

[0331] In Example 190, the subject matter of Examples 181-189 includes, wherein the first light source and the second light source are on a same device.

[0332] In Example 191, the subject matter of Examples 181-190 includes, wherein the method further comprises: selectively activating the first light source at the second power level in a subsequent phase of the power level allocation scheme, and wherein the second light source is selectively activated at the first power level.

[0333] In Example 192, the subject matter of Examples 181-191 includes, wherein the modulation scheme activates the first light source when the bits of the first data stream are value one and does not activate the first light source when the bits of the first data stream are value zero.

[0334] Example 193 is a device for simultaneously transmitting multiple data streams on an optical communication path, the device comprising: a controller of a first light source, configured to perform operations including: coordinating with a controller of a second light source or with a receiver to determine a first power level; and selectively activating the first light source at a first wavelength and a first power level according to a modulation scheme to transmit data of the first data stream to the receiver, each data bit of the first data stream being transmitted in the same time slot as the corresponding data bit of the second data stream, the second data stream being transmitted through the optical communication path by a second light source selectively activated at the first wavelength and the second power level according to the modulation scheme.

[0335] In Example 194, the subject matter of Example 193 includes, wherein the optical communication path is a single fiber optic cable.

[0336] In Example 195, the subject matter of Examples 193-194 includes, wherein the optical communication path is a path between the first and second light sources and the photon detector of the receiver that does not pass through glass fiber.

[0337] In Example 196, the subject matter of Examples 193-195 includes, wherein coordinating with a controller of the second light source or with the receiver to determine the first power level includes selecting a power level allocation scheme and determining the first power level from the selected power level allocation scheme.

[0338] In Example 197, the subject matter of Example 196 includes, wherein the operation of determining the first power level from the selected power level allocation scheme includes identifying a current stage, and based on the current stage, identifying the first power level from the power level allocation scheme.

[0339] In Example 198, the subject matter of Example 197 includes, wherein the current phase is related to the current time slot.

[0340] In Example 199, the subject matter of Examples 193-198 includes, wherein the modulation scheme produces a sinusoidal waveform.

[0341] In Example 200, the subject matter of Examples 193-199 includes wherein the modulation scheme produces a square wave.

[0342] In Example 201, the subject matter of Examples 193-200 includes, wherein the first light source and the second light source are at different devices.

[0343] In Example 202, the subject matter of Examples 193-201 includes, wherein the first light source and the second light source are on a same device.

[0344] In Example 203, the subject matter of Examples 193-202 includes, wherein the operations further include: selectively activating the first light source at the second power level in a subsequent phase of the power level allocation scheme, and wherein the second light source is selectively activated at the first power level.

[0345] In Example 204, the subject matter of Examples 193-203 includes, wherein the modulation scheme activates the first light source when the bits of the first data stream are value one and deactivates the first light source when the bits of the first data stream are value zero.

[0346] Example 205 is a machine-readable medium storing instructions for simultaneously transmitting multiple data streams on an optical communication path, which, when executed by a machine at a first light source, causes the machine to perform operations including: coordinating with a controller of a second light source or with a receiver to determine a first power level; and selectively activating the first light source at a first wavelength at a first power level according to a modulation scheme to transmit data of the first data stream to the receiver, each data bit of the first data stream being transmitted in the same time slot as a corresponding data bit of the second data stream, the second data stream being transmitted through the optical communication path by the second light source selectively activated at the first wavelength and the second power level according to the modulation scheme.

[0347] In Example 206, the subject matter of Example 205 includes, wherein the optical communication path is a single optical fiber.

[0348] In Example 207, the subject matter of Examples 205-206 includes, wherein the optical communication path is a path between the first and second light sources and the photon detector of the receiver that does not pass through glass fiber.

[0349] In example 208, the subject matter of examples 205-207 includes, wherein coordinating with a controller of the second light source or with the receiver to determine the first power level includes selecting a power level allocation scheme and determining the first power level from the selected power level allocation scheme.

[0350] In example 209, the subject matter of example 208 includes, wherein determining the first power level from the selected power level allocation scheme comprises identifying a current stage, and based on the current stage, identifying the first power level from the power level allocation scheme.

[0351] In example 210, the subject matter of example 209 includes, wherein the current phase is associated with a current time slot.

[0352] In Example 211, the subject matter of Examples 205-210 includes, wherein the modulation scheme produces a sinusoidal waveform.

[0353] In Example 212, the subject matter of Examples 205-211 includes, wherein the modulation scheme produces a square wave.

[0354] In Example 213, the subject matter of Examples 205-212 includes, wherein the first light source and the second light source are located at different devices.

[0355] In Example 214, the subject matter of Examples 205-213 includes, wherein the first light source and the second light source are on a same device.

[0356] In Example 215, the subject matter of Examples 205-214 includes, wherein the operations further include: selectively activating the first light source at the second power level during a subsequent phase of the power level allocation scheme, and wherein the second light source is selectively activated at the first power level.

[0357] In Example 216, the subject matter of Examples 205-215 includes, wherein the modulation scheme activates the first light source when the bit of the first data stream is a value of one and does not activate the first light source when the bit of the first data stream is a value of zero.

[0358] Example 217 is a device for simultaneously transmitting multiple data streams on an optical communication path, the device comprising at a controller of a first light source: a device for coordinating with a controller of a second light source or with a receiver to determine a first power level; and a device for selectively activating the first light source at a first wavelength and a first power level according to a modulation scheme to transmit data of the first data stream to the receiver, each data bit of the first data stream being transmitted in the same time slot as the corresponding data bit of the second data stream, and the second data stream being transmitted through the optical communication path by the second light source selectively activated at the first wavelength and the second power level according to the modulation scheme.

[0359] In Example 218, the subject matter of Example 217 includes, wherein the optical communication path is a single fiber optic cable.

[0360] In Example 219, the subject matter of Examples 217-218 includes, wherein the optical communication path is a path between the first and second light sources and the photon detector of the receiver that does not pass through glass fiber.

[0361] In Example 220, the subject matter of Examples 217-219 includes, wherein the means for coordinating with a controller of the second light source or with the receiver to determine the first power level includes means for selecting a power level allocation scheme and determining the first power level from the selected power level allocation scheme.

[0362] In Example 221, the subject matter of Example 220 includes, wherein the means for determining the first power level from the selected power level allocation scheme comprises means for identifying a current phase and identifying the first power level from the power level allocation scheme based on the current phase.

[0363] In Example 222, the subject matter of Example 221 includes, wherein the current phase is related to the current time slot.

[0364] In Example 223, the subject matter of Examples 217-222 includes, wherein the modulation scheme produces a sinusoidal waveform.

[0365] In Example 224, the subject matter of Examples 217-223 includes, wherein the modulation scheme produces a square wave.

[0366] In Example 225, the subject matter of Examples 217-224 includes, wherein the first light source and the second light source are at different devices.

[0367] In Example 226, the subject matter of Examples 217-225 includes, wherein the first light source and the second light source are on a same device.

[0368] In Example 227, the subject matter of Examples 217-226 includes, wherein the apparatus further comprises: means for selectively activating the first light source at the second power level during a subsequent phase of the power level allocation scheme, and wherein the second light source is selectively activated at the first power level.

[0369] In Example 228, the subject matter of Examples 217-227 includes, wherein the modulation scheme activates the first light source when the bit of the first data stream is a value of one and does not activate the first light source when the bit of the first data stream is a value of zero.

[0370] Example 229 is a method for receiving an optical signal at a receiver, the method comprising: using a hardware processing circuit: determining a photon count that strikes a photon detector during a detection time period and for a specific optical frequency, the photons being generated by the transmission of corresponding first and second bit streams transmitted to the photon detector at the same frequency and across the same optical communication path during the detection time period; and based on the photon count, determining a first bit value assignment for the first bit stream and a second bit value assignment for the second bit stream based on a plurality of photon counting decision regions, each of the plurality of photon counting decision regions corresponding to a corresponding bit value assignment for the first bit stream and the second bit stream, and wherein a first decision region among the plurality of photon counting decision regions has a decision range different from a second decision region among the plurality of photon counting decision regions.

[0371] In Example 230, the subject matter of Example 229 includes wherein the decision ranges of the plurality of photon counting decision regions include producing photon counts with a probability greater than a predetermined minimum threshold.

[0372] In Example 231, the subject matter of Example 230 includes, wherein determining a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream using a plurality of photon counting decision regions based on the photon count comprises: for each of the plurality of photon counting decision regions, determining a probability given the photon count; selecting a photon counting decision region with a maximum probability given the photon count; and assigning values ​​to the first bit stream and the second bit stream, the values ​​corresponding to the bit assignments corresponding to the selected photon counting decision regions.

[0373] In Example 232, the subject matter of Example 231 includes, wherein the plurality of photon count decision regions is a Poisson probability distribution created based on a plurality of average photon counts received at the receiver during a training time period.

[0374] In Example 233, the subject matter of Examples 229-232 includes updating the plurality of photon counting decision regions using a training process, wherein the training process changes a range of at least one of the plurality of photon counting decision regions.

[0375] In Example 234, the subject matter of Examples 229-233 includes instructing the first light source to emit at a first power level and instructing the second light source to emit at a second power level.

[0376] In Example 235, the subject matter of Examples 229-234 includes, wherein the optical communication path is a single fiber optic cable.

[0377] In Example 236, the subject matter of Examples 229-235 includes where the optical communication path is a spatial alignment of a first transmitter and a photon detector of a receiver transmitting a first bit stream and a spatial alignment of a second transmitter and a photon detector transmitting a second bit stream.

[0378] Example 237 is a device for receiving an optical signal, the device comprising: a hardware processing circuit configured to perform operations comprising: determining a photon count that strikes a photon detector during a detection time period and for a specific optical frequency, the photons being generated by the transmission of corresponding first and second bit streams transmitted to the photon detector at the same frequency and across the same optical communication path during the detection time period; and determining, based on the photon count, a first bit value assignment for the first bit stream and a second bit value assignment for the second bit stream based on a plurality of photon counting decision regions, each of the plurality of photon counting decision regions corresponding to a corresponding bit value assignment for the first bit stream and the second bit stream, and wherein a first decision region among the plurality of photon counting decision regions has a decision range different from a second decision region among the plurality of photon counting decision regions.

[0379] In Example 238, the subject matter of Example 237 includes wherein the decision ranges of the plurality of photon counting decision regions include producing photon counts with a probability greater than a predetermined minimum threshold.

[0380] In Example 239, the subject matter of Example 238 includes, wherein determining a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream using a plurality of photon counting decision regions based on the photon count comprises: for each of the plurality of photon counting decision regions, determining a probability given the photon count; selecting a photon counting decision region with a maximum probability given the photon count; and assigning values ​​to the first bit stream and the second bit stream, the values ​​corresponding to the bit assignments corresponding to the selected photon counting decision regions.

[0381] In Example 240, the subject matter of Example 239 includes, wherein the plurality of photon count decision regions are Poisson probability distributions created based on a plurality of average photon counts received at the receiver during a training time period.

[0382] In Example 241, the subject matter of Examples 237-240 includes, wherein the operations further include: updating the plurality of photon counting decision regions using a training process, wherein the training process changes a range of at least one of the plurality of photon counting decision regions.

[0383] In Example 242, the subject matter of Examples 237-241 includes, wherein the operations further include instructing the first light source to emit at a first power level and instructing the second light source to emit at a second power level.

[0384] In Example 243, the subject matter of Examples 237-242 includes, wherein the optical communication path is a single fiber optic cable.

[0385] In Example 244, the subject matter of Examples 237-243 includes where the optical communication path is a spatial alignment of a first transmitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second transmitter transmitting the second bit stream and the photon detector.

[0386] Example 245 is a machine-readable medium storing instructions for receiving an optical signal at a receiver, which instructions, when executed by a machine, cause the machine to perform operations including: determining a count of photons that strike a photon detector during a detection time period and for a particular optical frequency, the photons being generated by transmission of respective first and second bit streams transmitted to the photon detector at the same frequency and across the same optical communication path during the detection time period; and determining, based on the photon counts, a first bit value assignment for the first bit stream and a second bit value assignment for the second bit stream based on a plurality of photon counting decision regions, each of the plurality of photon counting decision regions corresponding to a respective bit value assignment for the first bit stream and the second bit stream, and wherein a first decision region among the plurality of photon counting decision regions has a decision range different from a second decision region among the plurality of photon counting decision regions.

[0387] In Example 246, the subject matter of Example 245 includes wherein the decision ranges of the plurality of photon counting decision regions include producing photon counts with a probability greater than a predetermined minimum threshold.

[0388] In Example 247, the subject matter of Example 246 includes, wherein determining a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream using a plurality of photon counting decision regions based on the photon count comprises: determining, for each of the plurality of photon counting decision regions, a probability given the photon count; selecting a photon counting decision region having a maximum probability given the photon count; and assigning values ​​to the first bit stream and the second bit stream corresponding to the bit assignments corresponding to the selected photon counting decision regions.

[0389] In Example 248, the subject matter of Example 247 includes, wherein the plurality of photon count decision regions are Poisson probability distributions created based on a plurality of average photon counts received at the receiver during a training time period.

[0390] In Example 249, the subject matter of Examples 245-248 includes, wherein the operations further include: updating the plurality of photon counting decision regions using a training process, wherein the training process changes a range of at least one of the plurality of photon counting decision regions.

[0391] In Example 250, the subject matter of Examples 245-249 includes, wherein the operations further include instructing the first light source to emit at a first power level and instructing the second light source to emit at a second power level.

[0392] In Example 251, the subject matter of Examples 245-250 includes, wherein the optical communication path is a single fiber optic cable.

[0393] In Example 252, the subject matter of Examples 245-251 includes, wherein the optical communication path is a spatial alignment of a first transmitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second transmitter transmitting the second bit stream and the photon detector.

[0394] Example 253 is a device for receiving an optical signal, the device comprising: a device for determining a photon count that strikes a photon detector during a detection time period and for a particular optical frequency, the photons being generated by the transmission of corresponding first and second bit streams transmitted to the photon detector at the same frequency and across the same optical communication path during the detection time period; and a device for determining, based on the photon count, a first bit value assignment for the first bit stream and a second bit value assignment for the second bit stream based on a plurality of photon counting decision regions, each of the plurality of photon counting decision regions corresponding to a corresponding bit value assignment for the first bit stream and the second bit stream, and wherein a first decision region among the plurality of photon counting decision regions has a decision range different from a second decision region among the plurality of photon counting decision regions.

[0395] In Example 254, the subject matter of Example 253 includes wherein the decision ranges of the plurality of photon counting decision regions include producing photon counts with a probability greater than a predetermined minimum threshold.

[0396] In Example 255, the subject matter of Example 254 includes, wherein the device for determining the first bit value assignment of the first bit stream and the second bit value assignment of the second bit stream based on the photon count using multiple photon counting decision regions includes: a device for determining the probability given the photon count for each of the multiple photon counting decision regions; a device for selecting the photon counting decision region with the maximum probability given the photon count; and a device for assigning values ​​to the first bit stream and the second bit stream, the values ​​corresponding to the bit assignments corresponding to the selected photon counting decision regions.

[0397] In Example 256, the subject matter of Example 255 includes, wherein the plurality of photon count decision regions are Poisson probability distributions created based on a plurality of average photon counts received at the receiver during a training time period.

[0398] In Example 257, the subject matter of Examples 253-256 includes means for updating the plurality of photon counting decision regions using a training process, wherein the training process changes a range of at least one of the plurality of photon counting decision regions.

[0399] In Example 258, the subject matter of Examples 253-257 includes means for instructing a first light source to emit at a first power level and instructing a second light source to emit at a second power level.

[0400] In Example 259, the subject matter of Examples 253-258 includes, wherein the optical communication path is a single fiber optic cable.

[0401] In Example 260, the subject matter of Examples 253-259 includes, wherein the optical communication path is a spatial alignment of a first transmitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second transmitter transmitting the second bit stream and the photon detector.

[0402] Example 261 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any of Examples 1-260.

[0403] Example 262 is an apparatus comprising means for implementing any of Examples 1-260. Example 263 is a system implementing any of Examples 1-260.

[0404] Example 264 is a method of implementing any of Examples 1-260.

Claims

1. A system for transmitting data using light, the system comprising: a first optical source configured to: transmit a first data stream at a first power level and at a first wavelength to a receiver via a first optical communication path; a second optical source configured to: transmit a second data stream to the receiver at the first wavelength over the first optical communication path at a second power level different from the first power level simultaneously with the transmission of the first data stream by the first optical source, the first power level and the second power level being different power levels; as well as The receiver is configured as: receiving the first data stream and the second data stream; as well as The first and second data streams are demultiplexed by inputting photon counts of received photons into a plurality of detection models.

2. The system of claim 1, wherein: The first optical communication path is a single-fiber optical fiber.

3. The system of claim 1, wherein: The first light source and the second light source at least partially interfere with each other when both are activated.

4. The system of claim 1, wherein: The receiver is configured to demultiplex the first data stream and the second data stream based on the first power level and the second power level using the plurality of detection models.

5. The system of claim 4, wherein: The first light source and the second light source interfere with each other on the first optical communication path at least sometimes when both are activated, and wherein the plurality of detection models are configured to take into account the interference, and wherein the receiver is configured to demultiplex the first data stream and the second data stream despite the interference.

6. The system of claim 1, wherein: At least one of the plurality of detection models is a Poisson probability distribution.

7. The system of claim 1, wherein: At least one of the multiple detection models is a supervised learning neural network model.

8. The system of claim 1, wherein: At least two of the plurality of detection patterns have different detection ranges.

9. The system of claim 1, wherein: The receiver is configured to demultiplex the first data stream and the second data stream by: submitting photon counts to the plurality of detection patterns, each of the plurality of detection patterns corresponding to a bit allocation for the first data stream and the second data stream; and Values ​​are assigned to the first and second data streams, the values ​​being equal to the corresponding bit assignments of the detection model that yields the highest probability given a given photon count.

10. The system according to claim 1, wherein: The receiver is configured to instruct the first light source and the second light source to transmit a plurality of training sequences, and the receiver is further configured to determine the plurality of detection patterns according to the training sequences.

11. The system according to claim 1, wherein: The receiver is configured to transmit a power level allocation scheme to the first light source and the second light source, the power level allocation scheme specifying power levels used by the first light source and the second light source in a plurality of stages, the plurality of stages including a stage in which the first light source transmits at the first power level and the second light source transmits at the second power level.

12. The system of claim 1, wherein: The first light source and the second light source are included in a same computing device.

13. The system of claim 1, wherein: The first light source is included in a first computing device and the second light source is included in a second computing device.

14. The system of claim 1, wherein: A controller of the first light source is configured to receive instructions from the receiver indicating the first power level.

Citation Information

Patent Citations

  • Polarization division multiplexing in optical data transmission systems

    US6580535B1

  • Communication systems and apparatus with synchronous orthogonal coding

    WO2000077962A1