System for throughput increase for optical communications

文档序号:1909798 发布日期:2021-11-30 浏览:13次 中文

阅读说明:本技术 用于光通信的吞吐量增加的系统 (System for throughput increase for optical communications ) 是由 A·A·哈桑 于 2020-03-24 设计创作,主要内容包括:在一些示例中公开了光学设备、系统和机器可读介质,其使用以不同功率电平传输的不同光源通过具有相同波长的相同光通信路径(例如,相同光纤)发送和接收多个数据流,从而增加每条光通信路径的带宽。对应于每个流的每个光源以相同的频率并在相同的光通信路径上使用不同的功率电平进行传输。接收器通过将一个或多个检测模型应用于接收器处观察到的光子计数以确定每个流的可能的位分配,来区分每个流的数据。(Disclosed in some examples are optical devices, systems, and machine-readable media that use different optical sources transmitting at different power levels to transmit and receive multiple data streams over 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. The receiver distinguishes the data for 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.)

1. A system for transmitting data using light, the system comprising:

a first light source configured to: transmitting a first data stream to a receiver over a first optical communication path at a first power level and at a first wavelength; and

a second light source configured to: simultaneously with transmission of the first data stream by the first optical source, a second data stream is transmitted to the receiver over the first optical communication path at a second power level different from the first power level and at the first wavelength.

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, further comprising:

a receiver configured to: the first data stream and the second data stream are received and recovered using a plurality of detection models.

5. The system of claim 4, 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 and second data streams despite the interference.

6. The system of claim 4, wherein the receiver is configured to: recovering the first data stream and the second data stream by inputting photon counts of received photons to the plurality of detection models.

7. The system of claim 6, wherein at least one of the plurality of detection models is a Poisson probability distribution.

8. The system of claim 6, wherein at least one of the plurality of detection models is a supervised learning neural network model.

9. The system of claim 6, wherein at least two of the plurality of detection models have different detection ranges.

10. The system of claim 6, wherein the receiver is configured to recover the first data stream and the second data stream by:

submitting photon counts to the plurality of detection models, each of the plurality of detection models corresponding to a bit allocation of the first data stream and the second data stream; and

assigning a value to the first data stream and the second data stream that is equal to a corresponding bit assignment of the detection model that yields a highest probability given a photon count.

11. The system of claim 6, 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 the plurality of detection models from the training sequences.

12. The system of claim 6, wherein the receiver is configured to communicate a power level allocation scheme to the first and second light sources, the power level allocation scheme specifying power levels used by the first and second light sources in a plurality of phases including a phase in which the first light source transmits at the first power level and the second light source transmits at the second power level.

13. The system of claim 1, wherein the first light source and the second light source are contained in the same computing device.

14. 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.

15. The system of claim 1, wherein the controller of the first light source is configured to receive an instruction from the receiver indicative of the first power level.

Background

Optical communications (e.g., fiber optic communications) utilize an optical source at one end that transmits one or more data streams by modulating the data streams into optical signals. These optical signals pass through a medium such as air or glass fiber (optical fiber) with an internal reflective surface to a receiver that employs a photon detection module to detect the optical signals. The detected light is then demodulated back into one or more data streams.

To efficiently utilize the available optical bandwidth, multiple different channels may be created by assigning different optical wavelengths to each channel. Different data streams may be placed on each channel and transmitted simultaneously to the same receiver over the same medium. This practice is commonly referred to as Wavelength Division Multiplexing (WDM). Some WDM systems allow up to 80 such channels per fiber and may have a bandwidth of 40 Gbit/s per channel to produce almost 3.1 TB/s of transmission on a single fiber (excluding losses due to overhead).

As a result of this large bandwidth, fiber optic systems are becoming increasingly popular with communication 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, optical fibers have other advantages, such as: attenuation is less than with cables-this provides the benefit of using less network infrastructure for longer distance communication cables; no electromagnetic interference exists; and other various benefits.

Drawings

In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.

Fig. 1 illustrates components of a simplified optical communication system according to some examples of the present disclosure.

Fig. 2 illustrates a graph of three poisson probability distributions corresponding to three different power levels, plotted with probability on the y-axis and photon count on the x-axis, according to some examples of the present disclosure.

Fig. 3 illustrates a method performed by a receiver, according to some examples of the present disclosure.

Fig. 4 illustrates a schematic diagram of an example power level allocation scheme, according to some examples of the present disclosure.

Fig. 5 illustrates a flow chart of a method of a transmitter implementing a power level allocation scheme according to some examples of the present disclosure.

Fig. 6 illustrates a flow chart of an example method of tracking a phase according to a timing-based power level allocation scheme, according to some examples of the present disclosure.

Fig. 7 illustrates an example method of tracking phases according to a bit count based power level allocation scheme according to some examples of the present disclosure.

Fig. 8 illustrates an example method of tracking phases according to a QoS-based power level allocation scheme according to some examples of the present disclosure.

Fig. 9 illustrates a flow diagram of a method of training a detection model according to some examples of the present disclosure.

Fig. 10 illustrates a flow chart of a method of performing a training step and determining a model according to some examples of the present disclosure.

FIG. 11 illustrates a flow chart of a method showing a more specific implementation of the method of FIG. 10.

Fig. 12 illustrates a schematic diagram of a system for increasing fiber bandwidth, according to some examples of the present disclosure.

Fig. 13 illustrates a schematic diagram of a receiver, according to some examples of the present disclosure.

Fig. 14 illustrates an example machine learning component in accordance with some examples of the present disclosure.

Fig. 15 illustrates a flow chart of a method of optically receiving data in accordance with some examples of the present disclosure.

Fig. 16 illustrates a flow chart of a method for receiving an optical signal at a receiver, according to some examples of the present disclosure.

Fig. 17 illustrates a flow diagram of a method for simultaneously transmitting multiple data streams over an optical communication path according to some examples of the present disclosure.

FIG. 18 is a block diagram that illustrates an example of a machine upon which one or more embodiments may be implemented.

Detailed Description

Fig. 1 illustrates components of a simplified optical communication system in the form of a fiber optic system 100 according to some examples of the present disclosure. The data stream 105 may include binary data generated by higher network layers processed by the processing circuit 110. Processing circuitry 110 may process the data of 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, and the like. The data transformed by the processing circuitry 110 is then passed to the light source 115 as a control signal. The light source 115 modulates data by selectively turning the light source on and off according to a modulation scheme according to input data. For example, in a simple modulation scheme, each bit may be transmitted during a predetermined time period (e.g., a time slot). During a particular time slot, a light source may be turned on during that time slot if the current bit from the input data is '1', and may be turned off during that time slot if the current bit from the input data is '0'. Other more complex modulation schemes may be used, such as amplitude, phase or polarization modulation. In some examples, the light may be modulated on a sine wave.

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 may be through one or more media, such as single fiber optical fiber(s), air, etc. In the example of fig. 1, the optical communication path travels through a single fiber optical fiber 120. In examples where the medium is air, the optical communication path may be the alignment of the emitting light source with the sensor at the receiver.

The receiver includes a photodetector 125 and processing circuitry 130. The photodetector 125 collects a count of the number of photons detected during a detection period corresponding to the amount of time that a single bit of the data stream 105 was transmitted. Based on the photon count, the photodetector generates a data stream, which is then input to the processing circuit 130, and the processing circuit 130 applies the inverse of the operations applied by the processing circuit 110 to generate the data stream 135. The goal is to transmit data stream 105 to the receiver as quickly as possible while matching data stream 135 to data stream 105.

As previously described, when WDM is used, each communication path (e.g., each fiber) may support simultaneous transmission of multiple optical flows when each transmission uses a different optical wavelength. Although the bandwidth of optical communications has been high, more capacity is necessary as the data demand increases. For example, the proliferation of higher quality video streaming; the popularity of connected sensors and controllable devices (e.g., internet of things devices); and an ever-increasing world population requires increased bandwidth and connectivity. Once the bandwidth of the optical fiber operating in a system using prior art techniques (e.g., WDM) has been exceeded, increasing the bandwidth requires the installation of additional optical fibers, which can be difficult and/or costly to install.

While WDM increases the bandwidth of the medium, it does not utilize the entire bandwidth available in the medium, as will be explained. Another solution to extend the system bandwidth may be to represent the different bits in the form of Amplitude Modulation (AM) using multiple power levels. For example, '10' may be represented by modulating a sine wave with a first power level (first amplitude), and '01' may be represented by modulating a sine wave with a second power level (second amplitude), and '11' may be represented by modulating a sine wave with a third power level (third amplitude). While increasing the number of bits that a particular light source can transmit, AM has a number of disadvantages. First, AM does not allow two different transmitters with two different light sources to transmit simultaneously at the same wavelength and over the same communication path (e.g., fiber) as the receiver. This therefore does not increase the number of devices that may occupy a particular communication path (e.g., optical fiber). Second, AM does not allow for non-sinusoidal waveforms. Finally, with AM, the receiver must know the exact power level at each bit level in advance.

Other schemes similar to amplitude modulation include digital domain power division multiplexing, DDPDM, with successive interference cancellation. The DDPDM linearly combines the baseband signals (bit streams in each signal) after encoding and modulation to form a new signal, which is transmitted using a single optical source. The receiver detects each stream by demodulating and decoding the baseband signal one by one in descending order of power level using a successive interference cancellation algorithm. The process estimates the channel response and demodulates the strongest signal while treating the 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 have been decoded.

The DDPDM scheme has a number of disadvantages. First, as with AM, this approach does not increase the number of devices that can use fiber optic media simultaneously. That is, while this 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 additional light sources is likely to create destructive interference, preventing successful demodulation of the signal at the receiver. Even if the problem of reducing destructive interference is solved, DDPDM and AM systems encounter difficulties if the power levels of the different transmitters are slightly different, since the decision regions (photon counting regions corresponding to the detected bit combinations) in AM and DDPDM are equal for each bit combination. Finally, decoding, demodulation, and interference cancellation for DDPDM communications are very complex and require significant processing resources. For example, DDPDM demodulates and remodulates the same signal multiple times at the receiver. This increases the cost of the device and/or the decoding time.

Optical devices, systems, and machine-readable media are disclosed in some examples that use different optical sources transmitting at different power levels to transmit and receive multiple data streams over the same optical communication path (e.g., the same optical fiber) at the wavelength of the system, 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. The receiver distinguishes the data for 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 may be a poisson distribution of the average number of photons received around a given bit allocation combination. As a result, multiple data streams may be transmitted over a single optical link, which may be twice, three times, four times, or more the bandwidth of a single channel over a single link.

The present disclosure addresses the technical problem of efficient bandwidth utilization in optical communications without the drawbacks of the previous approaches described above. For example, the present disclosure allows for the transmission of multiple data streams using a single light source or multiple data streams using multiple light sources. In the present disclosure, any interference from multiple light sources is handled by a detection model trained using any such interference (account for). Furthermore, since the model may have unequal decision regions, using different light sources with different power levels does not pose problems like AM and DDPDM. Furthermore, these models may be adjusted over time to account for aged transmitter circuitry. In contrast to DDPDM, the present disclosure does not require re-modulation of the received signal by performing successive interference cancellation. Rather, the present disclosure utilizes the average photon count for a particular bit combination. Since the disclosed detection model is a relatively simple probability distribution, the decoding and demultiplexing processes for the data streams can demultiplex the inputs using relatively simple, inexpensive and fast hardware and/or software, without requiring more complex hardware, such as those required in methods using successive interference cancellation.

Since the optical power is a function of the photon number and the wavelength, the power therefore depends on the photon number if the wavelength is kept constant. Thus, for a given wavelength, the power increase is an increase in photons transmitted through the fiber. For a given power level of the light source, the probability that a particular number of photons strike a photodetector in the receiver during a particular 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 is related to the power level of the light source. As mentioned above, an increase in the power level increases the number of transmitted photons, and thus also increases the probability of more photons striking the receiver-resulting in a change in the poisson probability distribution.

Fig. 2 illustrates a graph 200 of three poisson probability distributions corresponding to three different power levels, plotted with probability on the y-axis and received photon count on the x-axis, according to some examples of the present disclosure. Fig. 2 shows a first probability distribution 220 of light sources activated at a first power, a second probability distribution 225 of light sources activated at a second power (the second power being greater than the first power), and a third probability distribution 230 of light sources activated at a third power (the third power being greater than the second power) for a given wavelength on the same optical communication path. 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 may be expected to strike the receiver, which moves the probability distribution to the right on the graph of fig. 2 and flattens the curve (since more variation is expected as the photon count increases).

As described above, the present disclosure utilizes one or more detection models to determine the bit value of each bit in each stream transmitted over the same optical communication path (e.g., the same optical fiber) and the same wavelength, but using different power levels. The detection model may be a poisson probability distribution. For example, probability distributions 220, 225, and 230 can be used as detection models. The first probability distribution 220 may model the probability that a particular photon count observed at a receiver is caused by: a first light source corresponding to a first stream at a first power is turned on and a second light source corresponding to a second stream is turned off. In a simple modulation scheme (where light source "on" is interpreted as '1' during the detection period and light source "off" is interpreted as '0' during the detection period), the first probability distribution 220 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', represented in the figure as (1, 0).

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 is turned on and the first light source corresponding to the first stream is 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 as (0,1) in the figure. The second power level is greater than the first power level.

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 are activated (and thus 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 as (1,1) in the figure. Multiple light sources activated simultaneously will produce more photons than each individual light source — thus, the probability distribution is shifted more to the right. Furthermore, the range also increases with increasing power — flattening the poisson distribution, as additional photons also introduce more variation possibilities.

Thus, the receiver can determine each bit of each bit stream following an observation of a poisson distribution based on the power level of the light source, with the photon counts observed at the receiver, even if both light sources are active at the same time. The receiver may observe the number of photons striking the receiver and calculate the probability that a photon count would result from the first light source alone using the first probability distribution 220, the probability that a photon count would result from the second light source alone using the second probability distribution 225, and the probability that a photon count would result from the combination of the first and second light sources using the third probability distribution 230. Based on these probability calculations, decision logic may be used to decide whether a bit of the first stream is '1' or '0' and whether a bit of the second stream is '0' or '1'. In one example, the decision logic may be to select the bit associated with the detection model corresponding to the highest probability given the observed photon counts. For example, if the highest probability is that the photon count was generated by the first light source alone, the first stream may be assigned a bit value of '1' and the second stream may be assigned a bit value of '0'. Alternatively, if the highest probability is that the photon count was generated by the second light source alone, it may be the first stream coordination value 0 and may be the second stream coordination value 1. Finally, having the highest probability means that the photon count is generated by two light sources, then both streams can be assigned a 1. This scheme may repeat until the transmitter completes transmitting the data.

As an example, the photon counts 240 observed at the receiver may have a first probability 245 according to the first probability distribution 220 and 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 deactivated. Since in this example '1' is represented by turning on the light source and zero is represented by turning off the light source, the most likely bit allocation for the first stream is 1, while for the second stream the most likely bit allocation is 0.

As used herein, a detection region of a detection model is a range of signals or observations of signals (e.g., photon counts) that have a non-negligible probability of being assigned to a particular bit value. In the example of fig. 2, the detection regions may be regions below the distributions 220, 225, and 230. The detection region may be a region in which a probability of assigning a specific bit or bit combination to one or more bit streams is higher than a predetermined threshold (e.g., a non-negligible value). It will be appreciated that the size of the detection region of bit allocation 10 is different from the size of the detection region of bit allocation 01, and is also different from bit allocation 11. The different sizes reflect the reality: that is, different light sources operating at different power levels may produce different photon counting features (signatures).

Fig. 3 illustrates a method 300 performed by a receiver, according to some examples of the present disclosure. 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 receiver are synchronized to transmit one or more bits of the bit stream (e.g., bits of a packet). In operation 315, the receiver determines a first probability that a first light source corresponding to a first data stream is on at a first power level and a second light source corresponding to a second data stream is off using the photon counting 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 off and a second light source corresponding to the second data stream is on at a second power level using the photon counting and a second detection model. At operation 325, the receiver determines a third probability that the first light source is on at the first power level and the second light source is on at the second power level using the photon count and a third detection model.

At operation 330, the system may determine bit values for 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 yielding the highest probability value may be selected and bit values corresponding to the model may be assigned to the bitstream. As described above, the detection model may correspond to bit values of various data streams. For example, a light source on during a predetermined time period (e.g., a time slot) may indicate a '1' of the bit stream and a light source off indicates a '0'. In these examples, the first detection model may indicate a probability that, for a given photon count, a bit of the first stream is a '1' and a bit of the second stream is a '0'. In some examples, the value of '0' for both bit streams may be determined by comparing the photon counts to a predetermined minimum threshold (e.g., prior to operations 315, 320, and 325 or during operation 330). In other examples, separate models may be used for the '0' values of the two bitstreams.

The present disclosure thus improves the functionality of data transmission systems by providing an improved transmission scheme that provides increased utilization of existing physical resources. By distinguishing the 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. Such bandwidth increases may allow additional users via additional equipment on the same fiber, or additional streams per user (e.g., increasing the connection bandwidth of a particular user). The disclosed technology thus addresses the technical problem of bandwidth shortage by: a detection model, such as a photon counting probability model, is utilized to more efficiently utilize the currently available bandwidth rather than adding additional fiber to increase the new bandwidth.

Power level allocation

As described above, each light source transmitting data over the optical communication path is activated at a different power level. In some examples, the power level of each light source may be fixed-i.e., one or more emitting light sources may be fixed to always activate at a particular power level different from other light sources in the system. The system may be simple and may be suitable for certain situations, for example where one light source is much more powerful than another. In these examples, no coordination or power level adjustment may be required, as each light source is naturally activated at a different power than the other light sources.

In other examples where the light sources have similar output powers and/or may have adjustable power outputs, the power level of each light source may be set by allocating 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. The power level allocation scheme may be divided into one or more phases. A phase specifies one unit of a power level allocation scheme where each transmitter served by the scheme is allocated a power level for a defined duration or until a defined event occurs. The duration may be time-based, data length-based (e.g., a defined number of slots), etc. In some examples, the detection model used by the receiver may be specific to the current stage of the power level allocation scheme. The power level allocation scheme may be described by one or more data structures. Such as a formula, table, chart, or other indicator.

In some examples, the receiver may allocate a power level allocation scheme. In other examples, the transmitters may agree with each other regarding power level allocation schemes. In an example where the transmitters agree with each other regarding the power level allocation schemes, an agreement on agreement (aggregate protocol), such as a majority voting algorithm, may be utilized, wherein the power level allocation scheme is selected as the scheme where the transmitter has the highest vote count. The determination of the power level allocation scheme may include selecting the power level allocation scheme from a determined list of power level allocation schemes and may include customization of the selected power level allocation scheme.

When using a majority voting algorithm, each transmitter may vote for a power level allocation scheme that best matches the transmitter policy. The transmitter policies may vote for the power level allocation scheme that most closely meets one or more policy objectives (e.g., bandwidth, error rate, quality of service (QoS), power consumption, heat output, etc.). These policy goals may be represented by an indication of a desired number of phases in the policy in which the transmitter will transmit at high power. The number of high power stages is indicative of the policy objective, as high power stages increase bandwidth, reduce error rate, improve QoS, but also increase power consumption and heat output. Therefore, devices with priority over low battery usage will expect fewer high power stages. In contrast, a device that wants high QoS and high performance will expect more high power stages. A rating (rating) for each particular power level allocation scheme may be determined based on how many high power phases are allocated to the transmitter for the particular power level allocation scheme as compared to a desired number of high power phases.

In examples where one of the receiver allocation power level schemes or transmitters makes a determination for the overall system, the determination (selection, creation, and/or customization) of the power level allocation scheme may be made without knowledge of the transmitter's capabilities. In other examples, the determination (selection and/or customization) of the power level allocation scheme may be based on light source, data stream, and/or device characteristics. These characteristics may 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 Light Amplification (LASER)), and so forth. Device characteristics may include thermal budget, power budget, battery life, and the like. The data flow characteristics may include an expected QoS priority, an expected bandwidth requirement for the flow, an expected data rate, and the like.

As an example, consider a simple power level allocation scheme in which two data streams having two power levels are utilized, where a first phase may cause a first stream to be transmitted using light sources that are selectively activated at a high power level and a second stream to be transmitted using light sources that are selectively activated at a low power level, and a second phase may cause the first stream to be selectively transmitted using light sources that are selectively activated at a low power level and the second stream to be selectively transmitted using light sources that are activated at a high power level. These phases may be repeated as long as data is being transmitted. A phase may last for a determined time, a determined number of bit transmissions (e.g., a determined number of time slots), or until the occurrence (or non-occurrence) of a particular event. Thus, the scheme may change the power level every x bits, every x time periods, upon the occurrence of a determined event, etc., where x is a determined number of bits (where x may be 1).

The power level allocation scheme may be evenly distributed in that the power levels are allocated such that each light source may have an equal or nearly equal (e.g., +/-10%) time of activation at each power level. In other examples, the power level allocation schemes may be asymmetrically distributed such that one light source may be activated more frequently at higher or lower power levels. This may be a result of considerations related to the light source, the data stream, and/or device characteristics of the transmitter. For example, some emitters may have a thermal 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 operating at a particular power, the battery of the transmitter may discharge too quickly. Furthermore, operating at high power levels may unacceptably increase the amount of heat dissipated by the device. If one of the light sources has a higher thermal and/or power level, that light source may be allocated to be activated at the higher power level for a longer period of time to keep both light sources within the power and/or thermal budget. This can be achieved by adjusting the duration of the phase. If the transmitter provides information about the heat dissipation and power usage of the light sources, the system may calculate an optimal power level allocation scheme that keeps all light sources within their power levels and/or heat dissipation budgets. Expected QoS priorities and bandwidth requirements may also be considered. For example, light sources corresponding to data streams that are low priority data or use a lower bandwidth may be allocated to use a lower power level for a longer time than light sources having high priority or high bandwidth data for transmission.

For example, the asymmetric phase distribution of the power level allocation scheme may utilize a transmitter power budget (e.g., which may be set by a user, administrator, manufacturer, etc.) that specifies a power limit for the total power consumed by the light sources over a particular time period. In these examples, the system may determine how long each emitter may activate its light source at high 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 so that both equations are true, and selecting the answer that is closest to being equal to the power budget of each transmitter, without repeating:

equation 1:

equation 2:where x is the proportion of the stage consumed at the high Power level, PowerLIs the Power required to activate the light source at a low Power level, PowerHIs the power required to activate the light source at a high power level, TimePIs the total time spent at each stage of the power level allocation scheme. The above equation assumes that the light source will transmit 100% of the time in the phase. Thus, in some examples, the left side of each equation may be adjusted to account for the expected duty cycle during this phase (which may be 50% assuming that the data is well distributed between 'l' and '0' on average). TimeZIs the time frame for measuring the power budget. Therefore, the temperature of the molten metal is controlled,corresponding to the number of phases that pass through in the power budget.

In other examples, the power level allocation scheme may be determined in whole or in part as a function of quality of service (QoS) of the data to be transmitted. The light sources transmitting the data streams carrying higher priority data (determined by the QoS metadata of the streams) may be allocated higher power levels to increase. In some examples, the phase of the power level allocation scheme may be changed on a packet-by-packet basis as various QoS changes for the data to be transmitted. 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 complement or override 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 decrease the time remaining for the current phase in order to transmit data with higher priority data at a higher power level. Thus, the time range for each scheme may be initially set by consideration of 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 by 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 for transmission 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.

Other characteristics may be utilized to select or modify the power level allocation scheme. For example, a thermal budget may be utilized similar to a power budget (since heat and power are related). For example, the thermal budget may be converted to a power budget and used as previously described. Similarly, battery life may be considered such that as the battery life of the device becomes shorter, the proportion of time it takes to transmit at a high power level may be reduced. 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 remaining battery life, or by some other calculation that uses remaining battery life). In some examples, if the other participants are also running low on battery, a blanking period may be inserted into the power level allocation scheme during which no transmitter is transmitting.

Other factors (e.g., expected bandwidth requirements and data rates) may be used similarly to the QoS requirements, as they modify the phase timing. For example, to achieve a particular data rate, the system may allocate additional time for 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. The particular data rate of one device may be balanced against the competing data rates of the other devices. For example, if both transmitters 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 another transmitter, the device requesting the higher data rate may receive additional time to transmit at a higher power level. In other examples, the system may exclusively dedicate a particular phase to a particular transmitter and instruct the transmitter to use amplitude modulation on that phase.

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

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

The fraction of a particular power level allocation scheme may be a sum of the sub-fractions. For example, for sub-fractions corresponding to a power budget, the system may determine the extent to which a particular power level allocation scheme matches the power budget of the transmitter (with or without modification as described above). As one 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 this difference increases, the degree of conformity between the transmitting device and the power level allocation scheme is less than ideal. In some examples, a predetermined number of points may be assigned to the sub-fraction and the difference between the left and right sides of both equations 1 and 2 may be subtracted from the amount.

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

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 determined manually by a system administrator or may be learned using one or more machine learning algorithms, as detailed with respect to fig. 6, and discussed below.

The power level allocation scheme may be determined prior to data transmission and may change in response to the addition of a new data stream (adding a light source, or adding a stream to be transmitted with a light source), a change in one or more characteristics of the stream and/or light source, degradation of the light source over time, or the like. For example, the fraction of the power level allocation scheme may be calculated periodically based on the updated characteristic information. The power level allocation scheme may be changed if a different power level allocation scheme gets more than a threshold fraction higher than the current power level allocation scheme. In some examples, the scheme may of course be changed periodically.

Fig. 4 illustrates a schematic diagram 400 of an example power level allocation scheme according to some examples of the present disclosure. A first emitter 405 and a second emitter 410 are shown, each emitter comprising a light source. The first and second emitters may be on the same device (e.g., different streams on the same device) or on different devices. In some examples, the transmitters 405 and 410 are the example transmitters 1205 and 1250 of fig. 12. A power level allocation scheme with power level allocation 420 and power level allocation 430 for the second transmitter 410 are shown for the first transmitter 405. In fig. 4, the power level allocation scheme is shown as having two repeating stages. 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 stage in which the first emitter activates its light source using high power and the second emitter activates its light source using low power. The first and second phases are then repeated in an alternating manner for each bit. 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. In fig. 4, the power level allocation scheme allocates each transmitter alternating power level. That is, when one transmitter transmits at a high level, the other transmitter transmits at a low level. Further, in fig. 4, the power level changes with each bit-i.e., the phase changes with each bit-but in other examples, the power level allocation scheme may change the power level (phase) after a number of bits, a defined period of time, etc.

Example bit streams 415 and 425 are shown along with samples of a plot of power level (y-axis) versus time (x-axis) for each bit light source sent by each transmitter. For example, the first transmitter transmits the first bit with a value of '1' at a low power level. By turning off the light source, the second emitter sends a '0'. This is detected by the receiver knowing 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 split scheme for each phase is represented by a tuple, the first term of which is the power allocated to the first transmitter and the second term of which is the power level allocated to the second transmitter. Thus, the first bit is (L, H), which indicates that the first transmitter will send a '1' at a low power level, and the second transmitter will send a '1' at a high power level.

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

In the second bit, the power level allocation is reversed, however none of the transmitters send any bits, so the receiver determines by using the set of detection models 455 that the bit allocation should be (0, 0). In some examples, rather than using a specific detection model, the bitstream allocation may be set to (0,0) if the photon count is below a certain threshold. The power level allocation is restored to the first phase at the third bit. This time, both light sources are on and the receiver uses the detection model 450 to determine that the bit allocation should be (1, 1). This continues until communication ceases. The bit allocation for the stream is shown at 435 with stream 1 column preceding stream 2.

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

Fig. 5 illustrates a flow chart of a method 500 of a transmitter implementing a power level allocation scheme in accordance with some examples of the present disclosure. Prior to the operation of fig. 5, 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, data flows from higher layers in the network protocol stack. In some examples, in examples where the same device has multiple light sources, the transmitter may be in a device with higher layers that split a single data stream into multiple data streams for simultaneous transmission. At operation 512, the transmitter may determine a current stage of the power level allocation scheme. The process of determining the phase depends on the power level allocation scheme. For example, if the power level allocation scheme is based on a timer — e.g., each phase lasts for a predetermined period of time, the timer value may be used to determine the phase. In some examples, the timer value may be a multiple of the slot length. Fig. 6 illustrates a flow diagram of a method 600 of tracking phases according to a timing-based power level allocation scheme (discussed in more detail below), according to some examples of the present disclosure. If the power level allocation scheme is based on a bit count (e.g., each phase lasts for a predetermined number of transmitted bits), the phase may be determined based on the bit count that has passed since the last change. Fig. 7 illustrates an example of tracking phases according to a bit number based power level allocation scheme (discussed in more detail below) according to some examples of the present disclosure.

In the QoS-based example, the phase may be determined by the flow of data to be transmitted having the highest QoS value. For example, the transmitters may transmit their respective data QoS values to each other and to the receivers in their transmit queues per predetermined time period, either over the 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 stage corresponding to the transmitter transmitting at the highest power level. In other examples, the phase may be accelerated or changed based on QoS attributes, but otherwise determined by other described mechanisms (e.g., time or bit count).

Referring back to fig. 5, at operation 515, the transmitter may determine a 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 so, the light source is turned on at the determined power level. In some examples, rather than turning the light source on or off, the emitter may remove an obstruction that blocks light generated by the light source from entering the optical fiber (or other medium) or otherwise direct light that has been activated to the optical fiber (e.g., moving a mirror to direct light).

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

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, a phase may have a variable duration depending on one or more events, factors, or characteristics (e.g., of a device, transmitter, light source, data stream, etc.). At operation 620, a timer expires. At operation 625, the 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, operation 512 of fig. 5 may include reading a phase indicator.

Fig. 7 illustrates an example method 700 of tracking phases according to a bit count based power level allocation scheme according to some examples of the present disclosure. In operation 710, the system determines an initial stage based on the power level allocation scheme and sets an indicator to indicate the initial stage. This may be accomplished using the method described with respect to operation 610 of fig. 6. At operation 715, the bit counter may be set to zero to clear it. At operation 720, when a bit is transmitted ('1' or '0'), a bit counter is incremented. For example, when a predetermined period of time (time slot) elapses. In some examples, when the light source is on to transmit '1'OrWhile remaining off to send a '0', a bit is transmitted. In other examples, the bit counter may only count when the light source is on. When the transmitter wishes to keep power usage below the power budget, an example may be used where the bit counter only counts when the light source is on. At 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 at operation 730, the phase is incremented, the indicator is updated, and operation proceeds to operation 715 where the bit counter is reset. If the bit counter does not exceed or equal the threshold at operation 725, then the bit counter continues to increment as bits are transmitted at operation 720. Fig. 7 shows a bit counter, but other data sizes may be used, such as bytes, kilobytes, megabytes, gigabytes, terabytes, and so forth.

Fig. 8 illustrates an example method 800 of tracking phases according to a QoS-based power level allocation scheme in accordance with some examples of the present disclosure. In operation 810, the system determines a QoS indicator of data of the first flow allocated to the first transmitter. The data may be a packet, a portion of a packet, a plurality of packets, and the like. For example, a communication application may be transmitting a communication data stream that may have an associated QoS level. The QoS level may be determined by higher level messaging from the network stack, indicators in the packets (e.g., packet headers), etc.

In operation 815, the system determines a QoS of data of the second stream allocated to the second transmitter. The data may be a packet, a portion of a packet, a plurality of packets, and the like. For example, a communication application may be transmitting a communication data stream that may have an associated QoS level. The QoS level may be determined by higher level messaging from the network stack, indicators in the packets (e.g., packet headers), etc.

At operation 820, the 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 flow with the highest QoS may be assigned the highest power level. In other examples, where more than two flows 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 case of a tie between QoS levels, the system may have the transmitter transmit alternately at high power levels.

Although the example power level allocation scheme described above uses a single power level per phase for each transmitter, in other examples, multiple power levels may be grouped into multiple power level groups. For example, a highest power group of power levels, a medium power group of power levels lower than the power levels in the highest power group, and a low power group of power levels lower than the power levels in the medium power group. Each transmitter may be assigned to a different power group (e.g., based on QoS data) and may transmit using any of those power levels in the group. In some examples, these groups may be used to utilize amplitude modulation over the techniques disclosed in this disclosure. In other examples, within a power group, a power level allocation scheme may be defined that specifies the power level of the transmitter at a particular timer and/or the bit count within the power level grouping.

Once the QoS level based phase is set, the power level may be maintained indefinitely until the QoS of the data changes, until a predetermined period of time has elapsed (at which time method 800 may be repeated), until a predetermined amount of data has been transmitted (at which time method 800 may be repeated), and so on.

Creating a detection model

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

As described above, the model training process may train the detection model with photon counts detected by photon detectors at the receivers to produce probabilities for one or more particular bit combinations. For example, for each particular combination of power level and bit combination, the system may instruct the emitters to activate their light sources (and in some cases, multiple times) individually or in combination. 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:

stream 1 bit Power of stream 1 Stream 2 bit Power of stream 2
0 Height of 0 Is low in
0 Height of 1 Is low in
1 Height of 0 Is low in
1 Height of 1 Is low in
0 Is low in 0 Height of
0 Is low in 1 Height of
1 Is low in 0 Height of
1 Is low in 1 Height of

TABLE 1

In table 1, the first four rows correspond to the first phase of the power level allocation scheme, and the last four rows correspond to the second phase of the power level allocation scheme. The receiver can calculate a separate detection model for each of the possibilities shown above. For example, if the detection model is a poisson distribution, the system may instruct the emitters to activate their light sources according to each combination (e.g., to produce the indicated bits according to a modulation scheme) and calculate an average photon number for the bit and power level combination (e.g., each row of table 1).

Thus, for example, the system may transmit a '1' for the light source of the first bit stream by activating its light source solely at high power. The photon counts observed at the receiver during this period can be used to calculate a detection model for the (1,0) bit pattern of the first stage. The system may also instruct the light sources of the first and second bit streams to transmit '1' by activating their light sources together at their respective allocated power levels. The photon counts observed at the receiver during this period can be used to calculate a detection model for the (1,1) bit pattern of the first stage. Next, the system may 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 a detection model for the (0,1) bit pattern. This process is repeated for the second phase, where the photon counts are observed for the bit combinations and power levels of rows 5-8 of table 1.

In some examples, a single measurement of photon counts is made for each of the combinations of emitter and power levels, but in other examples, multiple measurements are made and an average is calculated. As described above, one example detection model is Poisson distribution. One example poisson detection model is:

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

In other examples, other machine learning models may be utilized and computed in place of the poisson model. This is explained in more detail in fig. 14. As described above, in some examples, the training data-and the model created from the training data-may be specific to a particular power level scheme stage. In other examples, negative training data corresponding to power levels and/or bit combinations corresponding to out-of-phase assignments may be used to train a machine learning model of the characteristics of the invalid photon counts. That is, the machine learning model may identify and correct out-of-phase operations.

Fig. 9 illustrates a flow diagram of a method 900 of training a detection model according to some examples of the present disclosure. 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 neuron weights for a neural network, or the like.

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

At operation 915, the instruction is transmitted to the receiver. The instructions may include what phase to use, at what power level to activate the light source (which may be communicated by the indication phase if a power level allocation scheme exists), whether to activate the light source, how long to activate the light source, any particular bit sequence to use, and so forth. 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 make 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.

In operation 917, a training step may be performed. At operation 917, the transmitter may be activated at one or more power levels or not 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 instructions once. In operation 917, the receiver may also determine a 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 a first emitter (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 a second emitter (or an average photon count in the case of multiple measurements), a third photon count at a third time range corresponding to a third power level produced by the first and second emitters activating their light sources at the respective first and second power levels (or an average photon count in the case of multiple measurements).

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

Fig. 10 illustrates a flow chart of a method 1000 of performing a training step and determining a model according to some examples of the present disclosure. According to some examples, the 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 previously. 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, e.g., at operation 915. Those instructions may also specify when and at what power to turn the light sources on and off. In other examples, the tuple may be transmitted to the transmitter along with the instruction to activate the light source prior to the period of time to activate the light source (e.g., between operations 1010 and 1020). At operation 1025, a photon count may be determined. In some examples, this may be an average photon count. The average is used to build the model (or may be part of the model). At operation 1030, the receiver may determine whether any other combinations remain to be trained and, if so, repeat operations 1010 and 1030 for those combinations. If not, the method ends.

Fig. 11 illustrates a flow diagram of a method 1100 showing a more specific implementation of the method 1000. The method 1100 may be an implementation of operations 917 and 920 from fig. 9. Method 1100 is a one-phase training method that can be applied to a power management scheme where there are two transmitters with two power levels. Additional operations may be performed for more transmitters. The process of fig. 11 may be repeated for additional stages. Further, operations 1140 and 1152 illustrate subsequent use of a detection model trained in accordance with some examples of the present disclosure.

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 the optical fiber and a second light source is not activated. In some examples, the receiver or another device instructs the first light source to activate before or at the beginning of the first time period. Also, the second transmitter may be instructed not to activate before or at the beginning of the first time period. In some examples, the photon count is an average photon count.

At operation 1115, the receiver determines a first detection model from the first photon count, the first detection model yielding an inference as to whether the given photon count indicates that the first light source is activated at the first power level and that the second light source is not activated. For example, the detection model may be a poisson distribution, which may yield a probability that a particular photon count is produced by the first light source at a first power (where the second light source is inactive). In other examples, the detection model may be a machine learning model as previously described. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, and the like.

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 the second power level at the first wavelength through the optical fiber and the first light source is not activated. As with the first time period, in some examples, the receiver or another device instructs the second light source to activate before or at the beginning of the second time period. Likewise, the first transmitter may be instructed not to activate before or at the beginning of the second time period. In some examples, the photon count is an average photon count.

At operation 1125, the receiver determines a second detection model based on the second photon count, the second detection model producing an inference as to whether the given photon count indicates that the second light source is active at the second power level and the first light source is inactive. For example, the detection model may be a poisson distribution, which may yield a probability that a particular photon count is produced by the second light source at the second power (where the first light source is not activated). In other examples, the detection model may be a machine learning model as previously described. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, and the like. The type of model used for the first detection model may be the same type of model used for the second detection model, or a different type of model.

In 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 a first wavelength through an optical fiber. As with the first and second time periods, in some examples, the receiver or another device instructs the first and second light sources to activate before or at the beginning of the second time period. In some examples, the photon count is an average photon count.

At operation 1135, the receiver determines a third detection model from the third photon count, the third detection model producing an inference as to whether the given photon count indicates that both the first and second light sources are active at the first and second power levels, respectively. For example, the detection model may be a poisson distribution, which may yield a probability that a particular photon count is produced by a first light source of a first power and a second light source of a second power. In other examples, the detection model may be a machine learning model as previously described. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, and the like. The types of models used for the first detection model, the second detection model, and the third detection model may be the same type of model or different types of models.

Although operations 1110-1135 are described in conjunction with a simple modulation scheme in which the light source is activated during a time slot to indicate a '1' and the light source is deactivated during the time slot to indicate a '0'. In other examples, the system may train the model based on other types of modulation. For example, amplitude modulation may be used and the system may also train those models. In these examples, the "activation" of the light source means that a value of '1' is transmitted according to the selected modulation scheme, and the turning off of the light source means that a value of '0' is transmitted according to the selected modulation scheme. In some examples, an amplitude modulation scheme may be combined with the presently disclosed scheme to allow multiple bits to be transmitted in each stream per slot using a power level set. In these examples, the system may learn a model of all possible bit groupings.

Once the models are determined, they can be used to determine the bit allocation of the bit stream transmitted by the transmitter. For example, in operation 1140, the receiver may receive a transmission during a fourth time period. The transmission may be received at the first wavelength over an optical communication path (e.g., over an optical fiber). In operation 1145, the receiver may determine a transmitted photon count received in operation 1140. In operation 1150, the receiver may determine a first probability that the transmission is caused by activating the first light source at a first power level using a first detection model, a second probability that the transmission is caused by activating the second light source at a second power level using a second detection model, and a third probability that the transmission is caused by activating the first and second light sources together using a third detection model. In 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 stream may be provided to a higher layer in the network stack (e.g., the method of fig. 11 may be the physical layer). for example, the receiver may determine the highest probability value. The model yielding the highest probability value may have corresponding bit values assigned for both the first and second streams. The corresponding bit value may be allocated to the first stream and the second stream.

Example transmitters and receivers

Turning now to fig. 12, a schematic diagram of a system 1200 for increasing fiber bandwidth is shown, according to some examples of the present disclosure. First transmitter 1205 may include processing circuitry 1210 to convert a data stream in preparation for its transmission over an optical fiber. Example operations include error coding, encryption, modulation operations, and the like. The converted bits are used as a signal to the controller 1220 to instruct the light source 1215 to be selectively turned on or off to represent the converted bit stream according to a modulation scheme. For example by turning on the light source 1215 in response to a '1' in the bitstream and turning off the light source in response to a '0' in the bitstream. The controller 1220 may set the power of the light sources 1215 based on the power levels indicated in the allocated power level allocation scheme and based on the current stage of the power level allocation scheme. In case a modulation scheme of varying power is used, the power level may be an average power level over a specific time slot. An indication of which power level allocation scheme is active and which phase is active may be stored in power level allocation scheme storage 1265.

The light source 1215 transmits light through an optical communication path that may pass through a medium such as an optical fiber to a receiver. Example light sources may include LED or LASER light sources. The controller 1220 and the processing circuitry 1210 may be general purpose processors or may be specially designed circuitry configured to implement the techniques described herein. The power level allocation scheme storage 1265 may be flash memory, Read Only Memory (ROM), or other temporary or non-temporary storage.

Transmitters 1205 and 1250 may be transceivers because they may have associated receivers, such as receivers 1225, 1258. The power level allocation scheme may be allocated by the receiver 1260 (which may also be a transceiver) by agreement with a second transmitter 1250, or the like. The assigned power level allocation scheme may be one of a library of predetermined allocation schemes stored in power level allocation scheme store 1265. In some examples, the assigned power level allocation scheme may be based on a scheme in the allocation scheme library, but modified for one or more particular transmitters and receivers involved in the communication session. In other examples, the assigned power level assignment scheme may be tailored to a particular communication session. Power level allocation scheme storage 1265 may store a particular allocation scheme, a selection of a particular allocation scheme, any customizations in use, a current phase, etc.

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

The second emitter 1250 may include similar components as the first emitter 1205. For example, the controller 1254, the light source 1256, the processing circuitry 1252, the receiver 1258, the power level allocation scheme store 1270, and/or the like. In some examples, one or more components may be shared between first emitter 1205 and second emitter 1250 if first emitter 1205 and second emitter 1250 are in the same device. Additionally, first transmitter 1205 and second transmitter 1250 can transmit multiple data streams at multiple different wavelengths over the optical fiber cable to receiver 1260. Thus, first transmitter 1205 and second transmitter 1250 can utilize both techniques of the present invention to simultaneously transmit multiple data streams on the same fiber by varying the power level, and also transmit multiple data streams using different wavelengths.

Fig. 13 shows a schematic diagram of a receiver 1300 according to some examples of the present disclosure. For example, the receiver 1300 may be an example receiver that is part of the transceiver 1260. Receiver 1300 may include a photodetector 1305 that detects and/or counts photons received over an optical communication path, such as an optical fiber, over a predetermined time period (e.g., one time slot). The photon count is passed to a controller 1310. Controller 1310 may utilize one or more detection models stored in model store 1335 to determine the individual bits in the bitstream. For example, the model may include one or more poisson distributions, which may return probabilities that photon counts correspond to one or more particular bit combinations for each stream. The particular detection model to be used may be selected based on the current phase of the current power level allocation scheme. The current stage and/or the selected power level allocation scheme may be stored in power level allocation scheme store 1340.

For example, consider a simple power level allocation scheme in which two light sources transmit simultaneously across the same communication path (e.g., optical fiber) on the same wavelength. The power level allocation scheme causes which of the two light sources (corresponding to the two different data streams) is alternately activated bit-by-bit at the high power level. In the first position, 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 comprising models trained for detecting that the first light source is activated at high power (the second light source is off), that the second light source is activated at low power (the first light source is off) and that both are activated at respective specified powers. The detection model that returns the highest score (e.g., detection probability) is used to assign values to the bitstream. For example, if the detection model is trained to detect that a first light source activated at high power (second light source off) returns the highest probability, '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 (e.g., based on a modulation scheme where '1' is indicated by activation of the light source and '0' is indicated by light source off).

In the second stage, stream 1 is a low power light source and stream 2 is a high power light source. The photon counts received during the period in which the second bit is to be transmitted are submitted to a second set of detection models comprising models trained for detecting that the first light source is activated at low power (without activating the second light source), that the second light source is activated at high power (without activating the first light source) and that both emit '1' at their respective assigned powers. The detection model that returns the highest score (e.g., detection probability) is used to assign values to the bitstream. For example, if the detection model is trained to detect that a first light source activated at low power (without activating the second device) returns the highest probability, '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.

Each bit stream determined by the controller is then passed to processing circuits 1315 and 1320, respectively, which decode the bit stream and perform various operations (e.g., the inverse of the operations performed by processing circuits 1210 and 1252 of the transmitter in fig. 12) and output the bit stream to a higher level layer (e.g., a physical layer, a transport layer, or other network layer).

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

As described above, the controller 1310 determines the stage of the power level allocation scheme (which emitter's light source is at what power) and uses this stage 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 transmitter to transmit at a high power level, if the phase is 1, the model is trained using data from photon counts for a training period where the first transmitter may be selected and used to activate at a high power and the second transmitter at a low power level.

Fig. 14 illustrates an example machine learning component 1400 in accordance with 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, training component 1410 may be implemented by a different device than prediction component 1420. In these examples, model 1480 may be created on a first machine and then sent to a second machine.

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

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 bit allocation for each stream. The features selected for inclusion in the feature vector 1460 may be all of the feature data 1430, or in some examples, may be a subset of all of the 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 may be utilized. Machine learning algorithm 1470 may utilize feature vectors 1460 (along with any applicable labels) to generate one or more detection models 1480.

In the prediction component 1420, current feature data 1490 (e.g., photon counts) may be input to a 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 determining components 1450 and 1495 are the same component or different instances of the same component. Feature determination component 1495 generates feature vectors 1497 that are input into model 1480 to determine bit allocation, phase, power level allocation scheme, etc. 1499.

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

The machine learning algorithm 1470 may 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 dichotomy 3, C4.5, classification and regression trees (CART), chi-square automatic interaction detectors (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. The unsupervised model may not have a training component 1410. In some examples, the detection model 1480 may determine the bits for each stream based on the detected photons. In other examples, detection model 1480 may generate a score or probability for each stream that transmits a particular bit.

As described above, a machine learning model may be used to select a power level allocation scheme. In these examples, the characteristic data 1430, 1490 may be information that predicts an appropriate power level allocation scheme. The features discussed above may be used as feature data 1430, 1490-e.g., power budget, transmitter characteristics, receiver characteristics, etc. The result may be an ordering and/or selection 1499 of the power level allocation schemes.

The modulation scheme used here has been relatively simple (on or off to mean '1' or '0'). In other examples, different modulation schemes may be used. For example, if the optical source and receiver are capable, WDM, phase shift modulation, amplitude modulation, and other advanced forms of modulation may be utilized in addition to the techniques described herein. For example, multiple bit streams may be split into multiple wavelengths — where each wavelength may have multiple data streams transmitted 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 — where each power level is a particular 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 assign the power levels such that the average photon counts for each power level combination are sufficiently different such that the probability distributions are sufficiently far apart that the error rate is low.

Fig. 15 illustrates a flow chart of a method 1500 of optically receiving data in accordance with some examples of the present disclosure. At operation 1510, a controller or other processor of the receiver may determine a count of photons received over the optical communication channel. For example, the controller may be communicatively coupled to the photonic sensor. The controller may poll or otherwise receive a count, etc. In some examples, photons striking the sensor may result from 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 the photon detector within a time slot used to transmit the bit data.

At operation 1515, the receiver may demultiplex the first data stream and the second data stream from the optical communication channel by applying the photon counts as inputs to the at least one detection model. An example detection model may be a probability distribution, such as a poisson probability distribution. Demultiplexing can be done without using successive interference cancellation. In some examples, demultiplexing may be performed with multiple detection models by assigning bit values corresponding to the detection model that returns the highest probability (given a photon count) among the multiple detection models. In some examples, the received photons may be detected as a sine wave, a square wave, or the like. In some examples, the photon counts may result from or be affected by destructive interference and the demultiplexing is not affected by it, because the detection model is trained based on the average of the photon counts that have dealt with the destructive interference. In some examples, the optical communication channel may be on (or partially on) a single fiber optic. In other examples, the optical communication channel may be (or partially) in the air-e.g., the transmitter may be directed at the receiver.

Fig. 16 illustrates a flow chart of a method 1600 for receiving an optical signal at a receiver, according to some examples of the present disclosure. In operation 1610, the receiver may determine a photon count that strikes the photon detector during a detection time period (e.g., a time slot) and for a particular light frequency. For example, a controller at the receiver may be communicatively coupled to the photon detector. The photons may result from 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. The respective first and second bit streams may be transmitted by selectively powering on and off the first and second light sources at a first power level and a second power level. In some examples, the selective powering on and off may conform to a particular modulation scheme, such as an amplitude modulation scheme.

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

In some examples, determining the first bit value allocation of the first bit stream and the second bit value allocation of the second bit stream using the plurality of photon counting decision regions based on the photon counts is performed by: for each of a plurality of photon count decision regions, a probability is determined (a photon count is given), the photon count decision region having the highest probability (a photon count is given) is selected, and the first and second bit streams are assigned values corresponding to the bit assignments corresponding to the selected photon count decision region. In some examples, the decision region may be readjusted. For example, the training program may be re-run after a predetermined period of time. This can be adjusted for changing the light source transmission characteristics, changing the dielectric characteristics, etc.

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

In operation 1715, the controller may selectively activate the first light source at the 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 a modulation scheme. For example, a first light source may be activated to "turn 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, where the sinusoidal waveform is adjusted in amplitude.

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

Fig. 18 illustrates a block diagram of an example machine 1800 on which any one or more of the techniques (e.g., methods) discussed herein may be executed. In alternative embodiments, the machine 1800 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine 1800 may operate in the capacity of a server machine, a client machine, or both, in server-client network environments. In one example, the machine 1800 may operate as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 1800 may be a Personal Computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a mobile telephone, a smart phone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. The machine 1800 may implement the transmitters and/or receivers disclosed herein. Further, machine 1800 may include a transmitter and/or receiver as disclosed herein. The machine 1800 may implement any of the methods disclosed herein. Further, while only a single 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), other computer cluster configurations.

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

Thus, the term "component" is understood to encompass a tangible entity, be it an entity of physical construction, particular configuration (e.g., hardwired), or temporary (e.g., temporary) configuration (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 configuring components, each component need not be instantiated at any time. For example, where the components include a general purpose hardware processor configured using software, the general purpose hardware processor may be configured as the respective different components at different times. The software may configure the hardware processor accordingly, e.g., to constitute a particular component at one instance in time and to constitute a different component at a different instance in time.

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., 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., drive unit) 1816, a signal generation 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, compass, accelerometer, or other sensor. 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, card reader, etc.).

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), the data structures or instructions 1824 (e.g., software) embodying or used by any one or more of the techniques or functions 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 thereof 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 machine-readable media.

While the machine-readable medium 1822 is shown to be a single medium, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that are configured to store the one or more instructions 1824.

The term "machine-readable medium" may include any medium that is capable of storing, encoding or carrying instructions for execution by the machine 1800 and that cause the machine 1800 to perform any one or more of the techniques of this disclosure, or that is 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 the machine-readable medium may include: non-volatile memories such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; random Access Memory (RAM); a Solid State Disk (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium may include a non-transitory machine-readable medium. In some examples, a machine-readable medium may include a machine-readable medium that is not a transitory propagating signal.

The instructions 1824 may further be transmitted or received over a communication network 1826 via a network interface device 1820 using a transmission medium. Machine 1800 may communicate with one or more other machines using any of a number 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 Local Area Networks (LANs), Wide Area Networks (WANs)(WAN), packet data networks (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, and wireless data networks (e.g., the Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standards, referred to as the Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standardsIEEE 802.16 family of standards, referred to 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, and the like. 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 wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. In some examples, the network interface device 1820 may communicate wirelessly using multi-user MIMO techniques.

Other notes and examples

Example 1 is a method for receiving data over an optical communication path, the method comprising: determining a count of photons detected on the optical communication path within the determined time frame; 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 energized at a first power level, 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 energized at a second power level based on the count and a second detection model; determining a third probability that the first and second light sources are simultaneously on at the respective first and second power levels based on the count and a third detection model; first data of the first data stream and second data of the second data stream are determined based on the first, second, and third probabilities.

In example 2, the subject matter of example 1 includes, wherein determining the first data and the second data comprises: assigning a value of 1 to the first data in response to either the first probability or the third probability being greater than a threshold probability; in response to the second probability or the third probability being greater than the threshold probability, a value of 1 is assigned to the second data.

In example 3, the subject matter of examples 1-2 includes, wherein determining the first data and the second data comprises: in response to the first probability or the third probability being the highest probability of the first, second, and third probabilities, a value of 1 is assigned to the first data.

In example 4, the subject matter of examples 1-3 includes, wherein determining the first data and the second data comprises: in response to the second probability or the third probability being higher than the first probability, a value of 1 is assigned to the second data.

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 the same device.

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.

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.

In example 8, the subject matter of examples 1-7 includes wherein the first, second, and third detection models are poisson distributions.

In example 9, the subject matter of examples 1-8 includes, wherein the optical communication path is an optical fiber.

Example 10 is an apparatus for receiving data over an optical communication path, the apparatus comprising: a hardware processor configured to perform operations comprising: determining a count of photons detected on the optical communication path within the determined time frame; 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 energized at a first power level, 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 energized at a second power level based on the count and a second detection model; determining a third probability that the first and second light sources are simultaneously on at the respective first and second power levels based on the count and a third detection model; first data of the first data stream and second data of the second data stream are determined based on the first probability, the second probability, and the third probability.

In example 11, the subject matter of example 10 includes, wherein the operation of determining the first data and the second data comprises: assigning a value of 1 to the first data in response to either the first probability or the third probability being greater than a threshold probability; in response to the second probability or the third probability being greater than the threshold probability, a value of 1 is assigned to the second data.

In example 12, the subject matter of examples 10-11 includes, wherein the operation of determining the first data and the second data comprises: in response to the first probability or the third probability being the highest probability of the first, second, and third probabilities, a value of 1 is assigned to the first data.

In example 13, the subject matter of examples 10-12 includes, wherein the operation of determining the first data and the second data comprises: in response to the second probability or the third probability being higher than the first probability, a value of 1 is assigned to the second data.

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 the same device.

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.

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.

In example 17, the subject matter of examples 10-16 includes wherein the first, second, and third detection models are poisson distributions.

In example 18, the subject matter of examples 10-17 includes, wherein the optical communication path is an optical fiber.

Example 19 is a machine-readable medium storing instructions that, when executed by a machine, cause the machine to perform operations comprising: determining a count of photons detected on the optical communication path within the determined time frame; 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 energized at a first power level, 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 energized at a second power level based on the count and a second detection model; determining a third probability that the first and second light sources are simultaneously on at the respective first and second power levels based on the count and a third detection model; first data of the first data stream and second data of the second data stream are determined based on the first, second, and third probabilities.

In example 20, the subject matter of example 19 includes, wherein the operation of determining the first data and the second data comprises: assigning a value of 1 to the first data in response to either the first probability or the third probability being greater than a threshold probability; in response to the second probability or the third probability being greater than the threshold probability, a value of 1 is assigned to the second data.

In example 21, the subject matter of examples 19-20 includes, wherein the operation of determining the first data and the second data comprises: in response to the first probability or the third probability being the highest probability of the first, second, and third probabilities, a value of 1 is assigned to the first data.

In example 22, the subject matter of examples 19-21 includes, wherein the operation of determining the first data and the second data comprises: in response to the second probability or the third probability being higher than the first probability, a value of 1 is assigned to the second data.

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 the same device.

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.

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.

In example 26, the subject matter of examples 19-25 includes, wherein the first, second, and third detection models are poisson distributions.

In example 27, the subject matter of examples 19-26 includes, wherein the optical communication path is an optical fiber.

Example 28 is an apparatus for receiving data over an optical communication path, the apparatus comprising: means for determining a photon count detected on the optical communication path within a determined time frame; means for determining a first probability that a first light source corresponding to a first data stream is energized 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; means for determining a second probability that a second light source corresponding to a second data stream is energized at a second power level based on the count and a second detection model; means for determining a third probability that the first and second light sources are simultaneously on at the respective first and second power levels based on the count and a third detection model; and means for determining first data of the first data stream and second data of the second data stream based on the first, second, and third probabilities.

In example 29, the subject matter of example 28 includes, wherein the means for determining the first data and the second data comprises: means 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 means for assigning a value of 1 to the second data in response to the second probability or the third probability being greater than the threshold probability.

In example 30, the subject matter of examples 28-29 includes, wherein the means for determining the first data and the second data comprises: means for assigning a value of 1 to the first data in response to the first probability or the third probability being the highest probability of the first, second, and third probabilities.

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.

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 the same device.

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.

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.

In example 35, the subject matter of examples 28-34 includes wherein the first, second, and third detection models are poisson distributions.

In example 36, the subject matter of examples 28-35 includes, wherein the optical communication path is an optical fiber.

Example 37 is a method for simultaneously transmitting multiple data streams over an optical communication path, the method comprising: identifying a power level allocation scheme that allocates different power levels to the first and second light sources; determining a current stage of a power level allocation scheme; determining a first power level of a first light source corresponding to a first data stream to be transmitted over 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 over the optical communication path using the first light source at a 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 over the same optical communication path, the second data stream being transmitted at a second power level.

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

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.

In example 40, the subject matter of examples 37-39 includes determining a priority of the 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.

In example 41, the subject matter of examples 37-40 includes, wherein the current stage is a first stage, and wherein a second stage of the power level allocation scheme allocates a first power level to the second light source and a second power level to the first light source, and wherein the method further comprises: determining that the current phase has transitioned to the second phase; data for the first data stream is transmitted using the second power level.

In example 42, the subject matter of examples 37-41 includes, wherein identifying the power level allocation scheme includes receiving an identifier of the selected power level allocation scheme from the receiver.

In example 43, the subject matter of examples 37-42 includes, wherein determining the current phase includes determining whether a timer of the first phase has elapsed.

In example 44, the subject matter of examples 37-43 includes, wherein determining the current stage includes determining whether a data counter of the first stage has exceeded a threshold count.

In example 45, the subject matter of examples 37-44 includes, wherein determining the first power level includes resolving a power level allocation scheme of the first power level.

In example 46, the subject matter of examples 37-45 includes, wherein the optical communication path is an optical fiber.

Example 47 is an apparatus for transmitting data over an optical communication path, the apparatus comprising: a hardware processor configured to perform operations comprising: identifying a power level allocation scheme that allocates different power levels to the first and second light sources; determining a current stage of a power level allocation scheme; determining a first power level of a first light source corresponding to a first data stream to be transmitted over 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 over the optical communication path using the first light source at a 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 over the same optical communication path, the second data stream being transmitted at a second power level.

In example 48, the subject matter of example 47 includes, wherein the operations further comprise: data of a second data stream is transmitted at a second power level using a second light source.

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.

In example 50, the subject matter of examples 47-49 includes, wherein the operations further comprise: determining a priority of the 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.

In example 51, the subject matter of examples 47-50 includes, wherein the current stage is a first stage, and wherein a second stage of the power level allocation scheme allocates a first power level to the second light source and a second power level to the first light source, and wherein the operations further comprise: determining that the current phase has transitioned to the second phase; and transmitting data of the first data stream using the second power level.

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.

In example 53, the subject matter of examples 47-52 includes, wherein the operation of determining the current phase includes determining whether a timer of the first phase has elapsed.

In example 54, the subject matter of examples 47-53 includes, wherein the operation of determining the current stage includes determining whether a data counter of the first stage has exceeded a threshold count.

In example 55, the subject matter of examples 47-54 includes, wherein the operation of determining the first power level includes resolving a power level allocation scheme of the first power level.

In example 56, the subject matter of examples 47-55 includes, wherein the optical communication path is an optical fiber.

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 comprising: identifying a power level allocation scheme, the power level allocation scheme allocating different power levels to the first and second light sources; determining a current stage of a power level allocation scheme; determining a first power level of a first light source corresponding to a first data stream to be transmitted over the optical communication path based on the power level allocation scheme and the current stage; the first optical source using a first power level transmits data of a first data stream at a first frequency over an optical communication path, the data of the first data stream transmitted at the same time and frequency as the data of a second data stream transmitted at a second power level over the same optical communication path.

In example 58, the subject matter of example 57 includes, wherein the operations further comprise: data of a second data stream is transmitted at a second power level using a second light source.

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.

In example 60, the subject matter of examples 57-59 includes, wherein the operations further comprise: determining a priority of the 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.

In example 61, the subject matter of examples 57-60 includes, wherein the current stage is a first stage and wherein a second stage of the power level allocation scheme allocates a first power level to the second light source and a second power level to the first light source, wherein the operations further comprise: determining that the current phase has transitioned to the second phase; data for the first data stream is transmitted using the second power level.

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.

In example 63, the subject matter of examples 57-62 includes, wherein the operation of determining the current phase includes determining whether a timer of the first phase has elapsed.

In example 64, the subject matter of examples 57-63 includes, wherein the operation of determining the current stage includes determining whether a data counter of the first stage has exceeded a threshold count.

In example 65, the subject matter of examples 57-64 includes, wherein the operation of determining the first power level includes resolving a power level allocation scheme of the first power level.

In example 66, the subject matter of examples 57-65 includes, wherein the optical communication path is an optical fiber.

Example 67 is an apparatus for transmitting data over an optical communication path, the apparatus comprising: means for identifying a power level allocation scheme that allocates different power levels to the first and second light sources; means for determining a current stage of a power level allocation scheme; means for determining a first power level of a first light source corresponding to a first data stream to be transmitted over an optical communication path based on a power level allocation scheme and a current stage; and means for transmitting data of the first data stream at a first frequency over the optical communication path using the first light source at a 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 transmitted at a second power level over the same optical communication path.

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.

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.

In example 70, the subject matter of examples 67-69 includes means for determining a priority of a first data stream; means for communicating the priority to one of: a receiver of the first and second data streams or a transmitter of the second data stream; and means 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.

In example 71, the subject matter of examples 67-70 includes, wherein the current stage is a first stage, and wherein a second stage of the power level allocation scheme allocates a first power level to the second light source and a second power level to the first light source, and wherein the apparatus further comprises: means for determining that the current phase has transitioned to the second phase; and means for transmitting data of the first data stream using the second power level.

In example 72, the subject matter of examples 67-71 includes, wherein the means for identifying the power level allocation scheme includes means for receiving an identifier of the selected power level allocation scheme from the receiver.

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 of the first phase has elapsed.

In example 74, the subject matter of examples 67-73 includes, wherein the means for determining the current stage includes means for determining whether a data counter of the first stage has exceeded a threshold count.

In example 75, the subject matter of examples 67-74 includes, wherein the means for determining the first power level includes means for resolving a power level allocation scheme for the first power level.

In example 76, the subject matter of examples 67-75 includes wherein the optical communication path is an optical fiber.

Example 77 is a method for receiving data over an optical communication path, the method comprising: calculating a first photon count of photons observed during a first time period when the first light source is transmitting through the optical communication path at a first wavelength at a first power level and the second light source is not transmitting through the optical fiber; determining a first detection model from the first photon count, the first detection model producing an inference as to whether the 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 the second power level at the first wavelength and the first light source does not transmit through the optical fiber; determining a second detection model from the second photon count, the second detection model producing an inference as to whether the given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; calculating a third photon count of photons observed during a third time period when the first light source is transmitted through the optical fiber at the first wavelength at the first power level and the second light source is transmitted through the optical fiber at the first wavelength at the second power level; determining a third detection model from the third photon count, the third detection model producing an inference as to whether the 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 a transmission over the optical fiber at the first wavelength during a fourth time period; determining a transmitted photon count; determining a first inference that the transmission was caused by the first light source at a first power level using a first detection model, a second inference that the transmission was caused by the second light source at a second power level using a second detection model, and a third inference that the transmission was caused by both the first and second light sources using a third detection model; based on the first, second, and third inferences, bit values are assigned to a first data stream corresponding to the first light source and a second data stream corresponding to the second light source, the first and second data streams being stored in a memory of the computing device.

In example 78, the subject matter of example 77 includes, wherein the first detection model is a poisson distribution.

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.

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 counting.

In example 81, the subject matter of examples 77-80 includes, wherein the method further comprises: 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 the second light source before a second time period; 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.

In example 82, the subject matter of examples 77-81 includes, wherein the first and second light sources are in the same device.

In example 83, the subject matter of examples 77-82 includes, wherein the first and second light sources are in different devices.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first inference, the second inference, and the third inference comprises: either the first or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the first stream.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first, second, and third inferences comprises: a second or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the second stream.

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 a 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 a first phase of a power level allocation scheme is active; receiving a next transmission at the first wavelength over the optical fiber during a fifth time period; determining a photon count for a next transmission; determining that a second phase of the power level allocation scheme is active; 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 calculated based on the second phase of the power level allocation scheme.

In example 87, the subject matter of examples 77-86 includes wherein the optical communication path is an optical fiber.

Example 88 is an apparatus for receiving data over an optical communication path, the apparatus comprising: a hardware processor configured to perform operations comprising: calculating a first photon count of photons observed during a first time period when the first light source is transmitting through the optical communication path at a first wavelength at a first power level and the second light source is not transmitting through the optical fiber; determining a first detection model from the first photon count, the first detection model producing an inference as to whether the 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 the second power level at the first wavelength and the first light source does not transmit through the optical fiber; determining a second detection model from the second photon count, the second detection model producing an inference as to whether the given photon count indicates that the second light source is activated at the second power level and the first light source is not activated; calculating a third photon count of photons observed during a third time period when the first light source is transmitted through the optical fiber at the first wavelength at the first power level and the second light source is transmitted through the optical fiber at the first wavelength at the second power level; determining a third detection model from the third photon count, the third detection model producing an inference as to whether the 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 a transmission over the optical fiber at the first wavelength during a fourth time period; determining a transmitted photon count; determining a first inference that the transmission was caused by the first light source at a first power level using a first detection model, a second inference that the transmission was caused by the second light source at a second power level using a second detection model, and a third inference that the transmission was caused by both the first and second light sources using a third detection model; based on the first, second, and third inferences, bit values are assigned to a first data stream corresponding to the first light source and a second data stream corresponding to the second light source, the first and second data streams being stored in a memory of the computing device.

In example 89, the subject matter of example 88 includes, wherein the first detection model is a poisson distribution.

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 the first time period.

In example 91, the subject matter of examples 88-90 includes, wherein the operation of determining the first detection model includes training a supervised learning machine learning model using the first photon counting.

In example 92, the subject matter of examples 88-91 includes, wherein the operations further comprise: 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 the second light source before a second time period; 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.

In example 93, the subject matter of examples 88-92 includes wherein the first and second light sources are in the same device.

In example 94, the subject matter of examples 88-93 includes wherein the first and second light sources are in different devices.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first inference, the second inference, and the third inference comprises: either the first or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the first stream.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first, second, and third inferences comprises: a second or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the second stream.

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 a power level allocation scheme, and wherein the operations further comprise: determining a first inference, a second inference, and a third inference in response to a determination that a first phase of a power level allocation scheme is active; receiving a next transmission at the first wavelength over the optical fiber during a fifth time period; determining a photon count for a next transmission; determining that a second phase of the power level allocation scheme is active; 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 calculated based on the second phase of the power level allocation scheme.

In example 98, the subject matter of examples 88-97 includes wherein the optical communication path is an optical fiber.

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

In example 100, the subject matter of example 99 includes, wherein the first detection model is a poisson distribution.

In example 101, the subject matter of example 100 includes, wherein the operation of training the first photon count is an average number of photons observed during the first time period.

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 counting.

In example 103, the subject matter of examples 99-102 includes, wherein the operations further comprise: 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 the second light source before a second time period; 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.

In example 104, the subject matter of examples 99-103 includes wherein the first and second light sources are in the same device.

In example 105, the subject matter of examples 99-104 includes wherein the first and second light sources are in different devices.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first inference, the second inference, and the third inference comprises: either the first or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the first stream.

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 the first data stream corresponding to the first light source and the second data stream corresponding to the second light source based on the first, second, and third inferences comprises: a second or third inference is determined to indicate a maximum probability and, in response, a value of 1 is assigned to the second stream.

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 operations further comprise: determining a first inference, a second inference, and a third inference in response to a determination that a first phase of a power level allocation scheme is active; receiving a next transmission at the first wavelength over the optical fiber during a fifth time period; determining a photon count for a next transmission; determining that a second phase of the power level allocation scheme is active; 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 calculated based on the second phase of the power level allocation scheme.

In example 109, the subject matter of examples 99-108 includes, wherein the optical communication path is an optical fiber.

Example 110 is an apparatus for receiving data over an optical communication path, the apparatus comprising: means for calculating a first photon count of photons observed during a first time period when the first light source is transmitting through the optical communication path at a first wavelength at a first power level and the second light source is not transmitting through the optical fiber; means for determining a first detection model from the first photon count, the first detection model producing an inference as to whether the given photon count indicates that the first light source is activated at the first power level and the second light source is not activated; means for calculating a second photon count of photons observed during a second time period when the second light source is transmitting through the optical fiber at the second power level at the first wavelength and the first light source is not transmitting through the optical fiber; means for determining a second detection model based on the second photon count, the second detection model producing an inference as to whether the 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 the first light source is transmitted through the optical fiber at the first wavelength at the first power level and the second light source is transmitted 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 producing an inference as to whether the 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 over the optical fiber at the first wavelength during a fourth time period; means for determining a transmitted photon count; means for determining a first inference that a first light source is causing transmission at a first power level using a first detection model, a second inference that a second light source is causing transmission at a second power level using a second detection model, and a third inference that the first and second light sources are causing transmission together using a third detection model; 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 stored in a memory of the computing device.

In example 111, the subject matter of example 110 includes, wherein the first detection model is a poisson distribution.

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.

In example 113, the subject matter of example 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.

In example 114, the subject matter of example 110-113 includes means for sending a first instruction to a controller of a first light source before a first time period; means for sending a second instruction to a controller of a second light source before a second time period; means 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.

In example 115, the subject matter of example 110 and 114 includes wherein the first and second light sources are in the same device.

In example 116, the subject matter of example 110 and 115 includes wherein the first and second light sources are in different devices.

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

In example 118, the subject matter of example 110 and 117 includes wherein the first, second, and third inferences are probabilities, and wherein the means for assigning bit values to the first data stream corresponding to the first light source and the second data stream corresponding to the 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.

In example 119, the subject matter of example 110 and 118 includes, wherein the first, second, and third detection models are specific to a first phase of a power level allocation scheme, and wherein the apparatus further comprises: means for determining a first inference, a second inference, and a third inference in response to a determination that a first phase of a power level allocation scheme is active; means for receiving a next transmission at the first wavelength over the optical fiber during a fifth time period; means for determining a photon count for the next transmission; means for determining that a second phase of the power level allocation scheme is active; 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 calculated based on the second phase of the power level allocation scheme, in response to determining that the second phase of the power level allocation scheme is active.

In example 120, the subject matter of example 110 and 119 includes wherein the optical communication path is an optical fiber.

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

In example 122, the subject matter of example 121 includes, wherein the demultiplexing is performed with a plurality of detection models including at least one detection model, the demultiplexing including assigning bit values to the first data stream and the second data stream corresponding to a detection model of the plurality of detection models that returns a highest probability given a photon count.

In example 123, the subject matter of example 122 includes wherein a first detection model of the plurality of detection models has a different range than a second detection model of the plurality of detection models.

In example 124, the subject matter of example 123 includes, wherein the plurality of detection models are probabilistic models.

In example 125, the subject matter of example 121 and 124 includes wherein the received photons are received as a sine wave.

In example 126, the subject matter of example 121 and 125 includes wherein the received photons are received as a square wave.

In example 127, the subject matter of example 121-126 includes wherein the photon counting results from destructive interference, and wherein the demultiplexing of the first data stream and the second data stream is performed despite the destructive interference.

In example 128, the subject matter of example 121 and 127 includes wherein the photons are received through a single fiber optical fiber.

In example 129, the subject matter of example 121 and 128 includes wherein the first light source is to transmit a first data stream and the second light source is to transmit a second data stream.

In example 130, the subject matter of example 121-129 includes wherein the demultiplexing comprises demultiplexing the first and second data streams from the optical communication channel by applying the photon counts as inputs to the at least one detection model without using successive interference cancellation and without re-modulating the signal.

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

In example 132, the subject matter of example 131 includes, wherein the controller is to perform demultiplexing with a plurality of detection models including at least one detection model, the demultiplexing operation including assigning bit values corresponding to a detection model of the plurality of detection models that returns a highest probability given a photon count to the first data stream and the second data stream.

In example 133, the subject matter of example 132 includes wherein a first detection model of the plurality of detection models has a different range than a second detection model of the plurality of detection models.

In example 134, the subject matter of example 133 includes wherein the plurality of detection models are probabilistic models.

In example 135, the subject matter of example 131 and 134 includes wherein the received photons are received as a sine wave.

In example 136, the subject matter of example 131 and 135 includes wherein the received photons are received as a square wave.

In example 137, the subject matter of example 131-136 includes wherein the photon counting results from destructive interference, and wherein the operation of demultiplexing the first data stream and the second data stream is performed despite the destructive interference.

In example 138, the subject matter of example 131 and 137 includes wherein the photons are received through a single fiber optical fiber.

In example 139, the subject matter of example 131-138 includes wherein the first light source is to transmit a first data stream and the second light source is to transmit a second data stream.

In example 140, the subject matter of example 131-139 includes wherein the operation of demultiplexing comprises demultiplexing the first and second data streams from the optical communication channel by applying the photon counts as inputs to the at least one detection model without using successive interference cancellation and without re-modulating the signal.

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

In example 142, the subject matter of example 141 includes, wherein the demultiplexing utilizes a plurality of detection models including at least one detection model, the operation of demultiplexing including assigning bit values corresponding to a detection model of the plurality of detection models that returns a highest probability given the photon count to the first data stream and the second data stream.

In example 143, the subject matter of example 142 includes wherein a first detection model of the plurality of detection models has a different range than a second detection model of the plurality of detection models.

In example 144, the subject matter of example 143 includes wherein the plurality of detection models are probabilistic models.

In example 145, the subject matter of example 141-144 includes wherein the received photons are received as a sine wave.

In example 146, the subject matter of example 141 and 145 includes wherein the received photons are received as a square wave.

In example 147, the subject matter of example 141-146 includes wherein the photon counting results from destructive interference, and wherein the operation of demultiplexing the first data stream and the second data stream is performed despite the destructive interference.

In example 148, the subject matter of example 141-147 includes wherein the photons are received through a single fiber optical fiber.

In example 149, the subject matter of example 141 and 148 includes wherein the first light source is to transmit a first data stream and the second light source is to transmit a second data stream.

In example 150, the subject matter of example 141-149 includes wherein the operation of demultiplexing includes demultiplexing the first and second data streams from the optical communication channel by applying the photon counts as inputs to the at least one detection model without using successive interference cancellation and without re-modulating the signal.

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

In example 152, the subject matter of example 151 includes wherein the demultiplexing is performed with a plurality of detection models including at least one detection model, the means for demultiplexing includes means for assigning bit values corresponding to a detection model of the plurality of detection models that returns a highest probability given a photon count to the first data stream and the second data stream.

In example 153, the subject matter of example 152 includes wherein a first detection model of the plurality of detection models has a different range than a second detection model of the plurality of detection models.

In example 154, the subject matter of example 153 includes, wherein the plurality of detection models are probabilistic models.

In example 155, the subject matter of example 151 and 154 includes wherein the received photons are received as a sine wave.

In example 156, the subject matter of example 151-155 includes wherein the received photons are received as a square wave.

In example 157, the subject matter of example 151-156 includes wherein the photon counting results from destructive interference, and wherein the demultiplexing of the first data stream and the second data stream is performed despite the destructive interference.

In example 158, the subject matter of example 151 and 157 includes wherein the photons are received through a single fiber optical fiber.

In example 159, the subject matter of example 151 and 158 includes wherein the first light source is to transmit a first data stream and the second light source is to transmit a second data stream.

In example 160, the subject matter of example 151-159 includes wherein the means for demultiplexing comprises means for demultiplexing the first and second data streams from the optical communication channel by applying the photon counts as inputs to the at least one detection model without using successive interference cancellation and without re-modulating the signal.

Example 161 is a system for transmitting data using light, the system comprising: a first optical source configured to transmit a first data stream to a receiver at a first power level and at a first wavelength over a first optical communication path; and a second optical 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 over the first optical communication path concurrently with the first data stream transmitted by the first optical source.

In example 162, the subject matter of example 161 includes wherein the first optical communication path is a single fiber optical fiber.

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

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

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.

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

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.

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

In example 169, the subject matter of example 166-168 includes wherein at least two of the plurality of detection models have different detection ranges.

In example 170, the subject matter of example 166 and 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 of the first and second data streams; a value is assigned to the first data stream and the second data stream that is equal to the corresponding bit assignment of the detection model that yields the highest probability given the photon count.

In example 171, the subject matter of example 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 models from the training sequences.

In example 172, the subject matter of example 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 a plurality of phases including a phase in which the first light source transmits at a first power level and the second light source transmits at a second power level.

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

In example 174, the subject matter of example 161-173 includes wherein the first light source is included in a first computing device and the second light source is included in a second computing device.

In example 175, the subject matter of example 161-174 includes wherein the controller of the first light source is configured to receive an instruction from the receiver indicative of the first power level.

In example 176, the subject matter of example 161-175 includes wherein the controller of the first light source and the controller of the second light source are configured to send the training sequence to the receiver.

In example 177, the subject matter of example 161-176 includes wherein the first light source and the second light source are configured to time synchronize and simultaneously transmit respective bits of the first and second data streams.

In example 178, the subject matter of example 161-177 includes wherein the first light source is configured to transmit a sinusoidal waveform.

In example 179, the subject matter of example 161-178 includes wherein the first light source is configured to transmit a square wave.

In example 180, the subject matter of example 161-179 includes wherein the first light source is a Light Emitting Diode (LED).

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

In example 182, the subject matter of example 181 includes wherein the optical communication path is a single fiber optical fiber.

In example 183, the subject matter of example 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 a glass fiber.

In example 184, the subject matter of example 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 allocation scheme and determining the first power level from the selected power level allocation scheme.

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 phase, and based on the current phase, identifying the first power level from the power level allocation scheme.

In example 186, the subject matter of example 185 includes wherein the current stage is associated with a current timeslot.

In example 187, the subject matter of example 181-186 includes wherein the modulation scheme generates a sinusoidal waveform.

In example 188, the subject matter of example 181-187 includes wherein the modulation scheme generates a square wave.

In example 189, the subject matter of example 181-188 includes wherein the first light source and the second light source are at different devices.

In example 190, the subject matter of example 181-189 includes wherein the first light source and the second light source are on a same device.

In example 191, the subject matter of example 181-190 includes, wherein the method further comprises: in a subsequent stage of the power level allocation scheme, the first light source is selectively activated at a second power level, and wherein the second light source is selectively activated at the first power level.

In example 192, the subject matter of example 181-191 includes wherein the modulation scheme activates the first light source when the bits of the first data stream are a value of 1 and does not activate the first light source when the bits of the first data stream are a value of zero.

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

In example 194, the subject matter of example 193 includes wherein the optical communication path is a single fiber optical fiber.

In example 195, the subject matter of example 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 a glass fiber.

In example 196, the subject matter of example 193 and 195 includes wherein the operation of coordinating with a controller of the second light source or with the receiver to determine the first power level comprises selecting a power level allocation scheme and determining the first power level from the selected power level allocation scheme.

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 comprises identifying a current phase, and based on the current phase, identifying the first power level from the power level allocation scheme.

In example 198, the subject matter of example 197 includes, wherein the current stage is associated with a current timeslot.

In example 199, the subject matter of example 193-.

In example 200, the subject matter of example 193-199 includes wherein the modulation scheme generates a square wave.

In example 201, the subject matter of example 193-200 includes wherein the first light source and the second light source are at different devices.

In example 202, the subject matter of example 193-201 includes wherein the first light source and the second light source are on the same device.

In example 203, the subject matter of example 193-202 includes, wherein the operations further comprise: in a subsequent stage of the power level allocation scheme, the first light source is selectively activated at the second power level, and wherein the second light source is selectively activated at the first power level.

In example 204, the subject matter of example 193-203 includes wherein the modulation scheme activates the first light source when the bits of the first data stream are a value of 1 and does not activate the first light source when the bits of the first data stream are a value of zero.

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

In example 206, the subject matter of example 205 includes, wherein the optical communication path is a single optical fiber.

In example 207, the subject matter of example 205 and 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 a glass fiber.

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

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

In example 210, the subject matter of example 209 includes, wherein the current stage is associated with a current time slot.

In example 211, the subject matter of example 205 and 210 includes wherein the modulation scheme generates a sinusoidal waveform.

In example 212, the subject matter of example 205 and 211 includes wherein the modulation scheme generates a square wave.

In example 213, the subject matter of example 205 and 212 includes wherein the first light source and the second light source are located at different devices.

In example 214, the subject matter of example 205 and 213 includes wherein the first light source and the second light source are on the same device.

In example 215, the subject matter of example 205 and 214 comprises, wherein the operations further comprise: in a subsequent stage of the power level allocation scheme, the first light source is selectively activated at the second power level, and wherein the second light source is selectively activated at the first power level.

In example 216, the subject matter of example 205 and 215 includes wherein the modulation scheme activates the first light source when the bit of the first data stream is a value of 1 and does not activate the first light source when the bit of the first data stream is a value of zero.

Example 217 is an apparatus for simultaneously transmitting multiple data streams over an optical communication path, the apparatus comprising, at a controller of a first light source: means for coordinating with a controller of the second light source or with the receiver to determine the first power level; and means for selectively activating the first light source at the first wavelength according to the modulation scheme at the first power level to transmit data of a 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 a second data stream transmitted over 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.

In example 218, the subject matter of example 217 includes wherein the optical communication path is a single fiber optical fiber.

In example 219, the subject matter of example 217 and 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 a glass fiber.

In example 220, the subject matter of example 217 and 219, comprising, wherein the means for coordinating with a controller of the second light source or with the receiver to determine the first power level comprises means for selecting a power level allocation scheme and determining the first power level from the selected power level allocation scheme.

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.

In example 222, the subject matter of example 221 includes wherein the current stage is associated with a current time slot.

In example 223, the subject matter of example 217 and 222 includes wherein the modulation scheme generates a sinusoidal waveform.

In example 224, the subject matter of example 217 and 223 includes wherein the modulation scheme generates a square wave.

In example 225, the subject matter of example 217 and 224 includes wherein the first light source and the second light source are at different devices.

In example 226, the subject matter of example 217 and 225 includes wherein the first light source and the second light source are on the same device.

In example 227, the subject matter of example 217 and 226 comprises, wherein the apparatus further comprises: means for selectively activating the first light source at the second power level at a subsequent stage of the power level allocation scheme, and wherein the second light source is selectively activated at the first power level.

In example 228, the subject matter of example 217 and 227 includes wherein the modulation scheme activates the first light source when the bits of the first data stream are of value 1 and does not activate the first light source when the bits of the first data stream are of value zero.

Example 229 is a method for receiving an optical signal at a receiver, the method comprising: using hardware processing circuitry: determining a count of photons that strike the photon detector during the detection time period and for a particular optical frequency, the photons resulting from transmission of the 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 allocation of the first bit stream and a second bit value allocation of the second bit stream based on a plurality of photon count decision regions, each of the plurality of photon count decision regions corresponding to a respective bit value allocation of the first bit stream and the second bit stream, and wherein a first decision region of the plurality of photon count decision regions has a different decision range than a second decision region of the plurality of photon count decision regions.

In example 230, the subject matter of example 229 includes, wherein the decision range of the plurality of photon count decision regions comprises photon counts that yield a probability greater than a predetermined minimum threshold.

In example 231, the subject matter of example 230 includes, wherein determining, based on the photon counts, a first bit value allocation of the first bit stream and a second bit value allocation of the second bit stream using the plurality of photon count decision regions comprises: for each of the plurality of photon count decision regions, determining a probability given the photon count; selecting a photon count decision region having a maximum probability given the photon count; and assigning a value to the first bitstream and the second bitstream, the value corresponding to a bit assignment corresponding to the selected photon counting decision region.

In example 232, the subject matter of example 231 includes, wherein the plurality of photon count decision regions is a poisson probability distribution created from a plurality of average photon counts received at the receiver during a training time period.

In example 233, the subject matter of example 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.

In example 234, the subject matter of example 229 and 233 includes instructing the first light source to transmit at a first power level and instructing the second light source to transmit at a second power level.

In example 235, the subject matter of example 229-234 includes wherein the optical communication path is a single fiber optical fiber.

In example 236, the subject matter of example 229 and 235 includes wherein the optical communication path is a spatial alignment of a photon detector of a first emitter and receiver that transmits the first bit stream and a spatial alignment of a second emitter and photon detector that transmits the second bit stream.

Example 237 is an apparatus for receiving an optical signal, the apparatus comprising: hardware processing circuitry configured to perform operations comprising: determining a count of photons that strike the photon detector during the detection time period and for a particular optical frequency, the photons resulting from transmission of the 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 allocation of the first bit stream and a second bit value allocation of the second bit stream based on a plurality of photon count decision regions, each of the plurality of photon count decision regions corresponding to a respective bit value allocation of the first bit stream and the second bit stream, and wherein a first decision region of the plurality of photon count decision regions has a different decision range than a second decision region of the plurality of photon count decision regions.

In example 238, the subject matter of example 237 includes, wherein the decision range of the plurality of photon count decision regions includes photon counts that yield a probability greater than a predetermined minimum threshold.

In example 239, the subject matter of example 238 includes, wherein determining, based on the photon counts, a first bit value allocation of a first bit stream and a second bit value allocation of a second bit stream using a plurality of photon count decision regions comprises: for each of the plurality of photon count decision regions, determining a probability given the photon count; selecting a photon count decision region having a maximum probability given the photon count; and assigning a value to the first bitstream and the second bitstream, the value corresponding to a bit assignment corresponding to the selected photon counting decision region.

In example 240, the subject matter of example 239 includes wherein the plurality of photon count decision regions is a poisson probability distribution created from a plurality of average photon counts received at the receiver during a training time period.

In example 241, the subject matter of example 237-: 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.

In example 242, the subject matter of example 237-241 includes, wherein the operations further comprise: the first light source is instructed to emit at a first power level and the second light source is instructed to emit at a second power level.

In example 243, the subject matter of example 237-242 includes wherein the optical communication path is a single fiber optical fiber.

In example 244, the subject matter of example 237 and 243 includes wherein the optical communication path is a spatial alignment of a first emitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second emitter transmitting the second bit stream and the photon detector.

Example 245 is a machine-readable medium storing instructions for receiving an optical signal at a receiver, the instructions when executed by a machine, cause the machine to perform operations comprising: determining a count of photons that strike the photon detector during the detection time period and for a particular optical frequency, the photons resulting from transmission of the 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 allocation of the first bit stream and a second bit value allocation of the second bit stream based on a plurality of photon count decision regions, each of the plurality of photon count decision regions corresponding to a respective bit value allocation of the first bit stream and the second bit stream, and wherein a first decision region of the plurality of photon count decision regions has a different decision range than a second decision region of the plurality of photon count decision regions.

In example 246, the subject matter of example 245 includes, wherein the decision range of the plurality of photon count decision regions includes photon counts that yield a probability greater than a predetermined minimum threshold.

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

In example 248, the subject matter of example 247 includes wherein the plurality of photon count decision regions are poisson probability distributions created from a plurality of average photon counts received at the receiver during a training time period.

In example 249, the subject matter of example 245-248 includes, wherein the operations further comprise: 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.

In example 250, the subject matter of example 245-249 comprises, wherein the operations further comprise: the first light source is instructed to emit at a first power level and the second light source is instructed to emit at a second power level.

In example 251, the subject matter of example 245-250 includes wherein the optical communication path is a single fiber optical fiber.

In example 252, the subject matter of example 245-251 includes wherein the optical communication path is a spatial alignment of a first emitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second emitter transmitting the second bit stream and the photon detector.

Example 253 is an apparatus for receiving an optical signal, the apparatus comprising: means for determining a count of photons striking the photon detector during a detection time period and for a particular optical frequency, the photons resulting from transmission of respective first and second bit streams transmitted to the photon detector at a same frequency and across a same optical communication path during the detection time period; and means for determining, based on the photon counts, a first bit value allocation of the first bit stream and a second bit value allocation of the second bit stream based on a plurality of photon count decision regions, each of the plurality of photon count decision regions corresponding to a respective bit value allocation of the first bit stream and the second bit stream, and wherein a first decision region of the plurality of photon count decision regions has a different decision range than a second decision region of the plurality of photon count decision regions.

In example 254, the subject matter of example 253 includes, wherein the decision range of the plurality of photon count decision regions comprises photon counts that yield a probability greater than a predetermined minimum threshold.

In example 255, the subject matter of example 254 includes, wherein means for determining, based on the photon counts, a first bit value allocation of a first bit stream and a second bit value allocation of a second bit stream using a plurality of photon count decision regions comprises: means for determining, for each of the plurality of photon count decision regions, a probability given the photon count; means for selecting a photon count decision region having a maximum probability given the photon count; and means for assigning a value to the first bit stream and the second bit stream, the value corresponding to the bit assignment corresponding to the selected photon counting decision region.

In example 256, the subject matter of example 255 includes wherein the plurality of photon count decision regions are poisson probability distributions created from a plurality of average photon counts received at the receiver during a training time period.

In example 257, the subject matter of example 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.

In example 258, the subject matter of example 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.

In example 259, the subject matter of example 253 and 258 includes wherein the optical communication path is a single fiber optical fiber.

In example 260, the subject matter of example 253-259 includes wherein the optical communication path is a spatial alignment of a first emitter transmitting the first bit stream and a photon detector of the receiver and a spatial alignment of a second emitter transmitting the second bit stream and the photon detector.

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.

Example 262 is an apparatus comprising means for implementing any of examples 1-260.

Example 263 is a system to implement any of examples 1-260.

Example 264 is a method of implementing any of examples 1-260.

60页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据传输方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!