Patent Description:
In order to effectively utilize the available light bandwidth, a number of distinct channels may be created by assigning a different light wavelength to each channel. Different data streams may be placed on each channel and transmitted simultaneously over a same medium to a same receiver. This practice is commonly referred to as Wavelength Division Multiplexing (WDM). Some WDM systems allow up to <NUM> such channels per fiber and per channel bandwidth may be <NUM> Gbit/second to produce almost <NUM> terabits/second of transmission on a single fiber (not including 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 transfer large amounts of data very quickly. In addition to carrying a large amount of data, fiber optics offer other advantages such as: less attenuation than electrical cables - which provides the benefit of utilizing less network infrastructure for longer runs of communication cables; lack of electromagnetic interference; and various other benefits.

<NPL> describes that this paper examines fiber-optic code division multiple-access (FO-CDMA) communications techniques. A new class of codes (signature sequences), namely, optical orthogonal codes (OOC's), that are suitable for FO-CDMA are introduced. An experiment that shows the desired auto- and crosscorrelation properties of these codes and their use in FO-CDMA is reported. Furthermore, the concept of optical disk patterns, an equivalent way of representing OOC's is introduced. The optical disk patterns are used to derive the probability density functions associated with any two interfering OOC's. Also presented is a detailed study or different interference patterns from which the strongest and the weakest Interference patterns are introduced.

<CIT> describes that code-multiplexed communication systems (<NUM>), apparatus, and methods include coders (<FIG>) that encode and decode data streams with synchronous, substantially orthogonal codes. Code-multiplexed communications systems (<NUM>) encode data signals with such codes to control levels of decoding artifacts such as cross-talk at times or time intervals in which data is recovered. Some systems are based on synchronous, orthogonal codes that are obtained from complex orthogonal vectors. In an example, a three-level temporal-phase code that includes nine code chips is used to encodes and decodes data signals is a seven-channel communication system.

<NPL> describes that at present, the non-orthogonal multiple access (NOMA) protocol bas been considered as an emerging access technology for the near <NUM> networks. However, the related resource division multiplexing technique has not been well studied. Referring to the development or TDMA and FDMA, they are all based on the fundamental studies or time division multiplexing (TDM) and frequency division multiplexing (FDM), respectively. Accordingly, this paper proposes a new multiplexing technique, termed as. power division multiplexing (PDM), to support the power division based MAC protocol which the NOMA belongs to. In PDM, we consider the transmit power is divided into multiple power segments (PSs) similar to the time-slots/sub-bands in TDM/FDM. The multiple PSs are used to concurrently deliver different informations in a same channel. By analysis, we prove that PDM outperforms TDM and FDM with regard to QoS requirement. Thus, the proposed PDM has potentials for the future cellular network.

<NPL> describes that two <NUM>-Gb/s spectrally overlaid DDO-OFDM signals are successfully transmitted along <NUM>-km SMF using optical power division multiplexing and received by a successive interference cancellation (SIC) receiver. Spectral efficiency is doubled with optimized optical modulation index and optical power division ratio.

<NPL> describes that Capacity is the eternal pursuit for communication systems due to the overwhelming demand of bandwidth hungry applications. As the backbone infrastructure of modern communication networks, the optical fiber transmission system undergoes a significant capacity growth over decades by exploiting available physical dimensions (time, frequency, quadrature, polarization and space) of the optical carrier for multiplexing. For each dimension, stringent orthogonality must be guaranteed for perfect separation of independent multiplexed signals. To catch up with the ever-increasing capacity requirement, it is therefore interesting and important to develop new multiplexing methodologies relaxing the orthogonal constraint thus achieving better spectral efficiency and more flexibility of frequency reuse. Inspired by the idea of non-orthogonal multiple access (NOMA) scheme, here we propose a digital domain power division multiplexed (PDM) transmission technology which is fully compatible with current dual polarization (DP) coherent optical communication system. The coherent optical orthogonal frequency division multiplexing (CO-OFDM) modulation has been employed owing to its great superiority on high spectral efficiency, flexible coding, ease of channel estimation and robustness against fiber dispersion. And a PDM-DP-CO-OFDM system has been theoretically and experimentally demonstrated with 100Gb/s wavelength division multiplexing (WDM) transmission over <NUM> standard single mode fibers (SSMFs).

<CIT> discloses a system in which two optical signals of the same wavelength are polarization filtered at a sending end into orthogonal polarization orientations, and then added into a single optical transmission signal having various polarization components. The optical transmission signal is transmitted via an optical data link to a receiving end having a splitter. Portions of the optical transmission signal are inputted to different polarization filters logically corresponding to those at the sending end, to recover the two optical signals originally sent.

<FIG> illustrates components of a simplified optical communication system in the form of a fiber optic system <NUM> according to some examples of the present disclosure. A data stream <NUM> may comprise binary data produced by higher network layers that is processed by processing circuitry <NUM>. Processing circuitry <NUM> may process the data of data stream <NUM> in one or more ways to prepare it for transmission. Example processing operations performed by the processing circuitry <NUM> includes applying one or more error correction codes, compression algorithms, encryption algorithms, and/or the like. The data, as transformed by the processing circuitry <NUM>, is then passed as a control signal to a light source <NUM>. The light source <NUM> modulates the data by selectively turning the light source on an off in accordance with the input data according to a modulation scheme. For example, in a simple modulation scheme, each bit may be transmitted during a predetermined period of time (e.g., a timeslot). During a particular timeslot, if the current bit from the input data is a '<NUM>', the light source may be turned on during the timeslot and if the current bit from the input data is a '<NUM>', the light source may be turned off during the timeslot. Other, more complex modulation schemes may be utilized such as amplitude, phase, or polarization modulation. In some examples, the light may be modulated on a sine wave.

The light produced by the light source then travels over an optical communication path to the receiver. An optical communication path is the path taken by the light source from the transmitting light source to the receiving sensor. This path may be through one or more mediums, such as a single fiber optic fiber, air, or the like. In the example of <FIG> the optical communication path travels across a single fiber optic fiber <NUM>. In examples in which the medium is air, the optical communication path may be the alignment of the transmitting light source and the sensor at the receiver.

The receiver includes a photo detector <NUM> and processing circuitry <NUM>. The photo detector <NUM> collects a count of a number of photons detected over a detection time period which corresponds to an amount of time that a single bit of the data stream <NUM> is transmitted. Based upon the photon counts, the photo detector produces a data stream that is then input to the processing circuitry <NUM> which applies an inverse operation than that was applied by the processing circuitry <NUM> to produce data stream <NUM>. The goal is to transmit data stream <NUM> to the receiver as fast as possible while having data stream <NUM> match data stream <NUM>.

As previously noted, when using WDM, each communication path (e.g., each fiber) may support simultaneous transmission of multiple light streams when each transmission is using a different light wavelength. Despite the already high bandwidth of optical communications, as data needs grow, more capacity is necessary. For example, the proliferation of higher quality video streaming; the popularity of connected sensors and controllable devices (e.g., such as Internet of Things devices); and the ever-growing world population requires increased bandwidth and connectivity. Once the bandwidth of a fiber run in a system utilizing existing techniques such as WDM has been exceeded, increasing bandwidth requires installing additional fibers, which may be difficult and/or expensive to install.

While WDM increases the bandwidth of the medium, as will be made clear, it does not make use of the entire bandwidth available in the medium. Another solution to expand system bandwidth may be to utilize multiple power levels to represent different bits in a form of amplitude modulation (AM). For example, a '<NUM>' might be represented by modulating a sinusoidal wave with a first power level (a first amplitude) and a '<NUM>' might be represented by modulating a sinusoidal wave with a second power level (a second amplitude) and a '<NUM>' might be represented by modulating the sinusoidal wave with a third power level (a third amplitude). While increasing the number of bits that a particular light source may transmit, AM has a number of drawbacks. First, AM does not allow for two different transmitters with two different light sources to transmit simultaneously at a same wavelength and through the same communication path (e.g., fiber) as the receiver. Thus, this does not increase the number of devices that may occupy a particular communication path (e.g., fiber). Second, AM does not allow for non-sinusoidal waveforms. Finally, using AM, the receiver must know the exact power levels for each bit level ahead of time.

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

DDPDM schemes suffer from a number of drawbacks. First, as with AM, this scheme does not increase the number of devices that can simultaneously use the medium of a fiber. That is, while the scheme increases the number of streams that can be carried over a communication link, the DDPDM scheme utilizes a single light source. Using additional light sources would likely produce destructive interference that would prevent successful demodulation of the signal at the receiver. Even if the problem of reducing destructive interference was solved, since the decision regions in AM and DDPDM (the photon count region corresponding to a detected bit combination) are equal for each bit combination, the DDPDM and AM systems would have difficulty in situations where different transmitters have slightly different power levels. Finally, the decoding, demodulation, and interference cancellation of DDPDM communications are very complicated and require significant processing resources. For example, DDPDM demodulates and remodulates a same signal several times at the receiver. This increases device cost and/or decoding time.

Disclosed in some examples, are optical devices, systems, and machine-readable mediums that send and receive multiple streams of data across a same optical communication path (e.g., a same fiber optic fiber) with a same wavelength using different light sources transmitting at different power levels - thereby increasing the bandwidth of each optical communication path. Each light source corresponding to each stream transmits at a same frequency and on the same optical communication path using a different power level. The receiver differentiates the data for each stream by applying one or more detection models to the photon counts observed at the receiver to determine likely bit assignments for each stream. An example detection model may be a Poisson distribution around an average number of photons received for a given bit assignment combination. As a result, multiple streams of data may be sent on a single optical link which may double, triple, quadruple, or more the bandwidth of a single channel on a single link.

The present disclosure solves the technical problem of efficient bandwidth utilization in optical communications without the drawbacks of previous approaches discussed above. For example, the present disclosure allows for multiple data streams transmitted using a single light source or multiple data streams transmitted using multiple light sources. In the present disclosure, any interference from multiple light sources are accounted for by the detection models which are trained using any such interference. Also, due to the possibility that the models may have unequal decision regions, the use of different light sources with different power levels does not pose a problem like it does with AM and DDPDM. Furthermore, the models may adapt over time to factor in aging transmitter circuitry. In contrast to DDPDM, the present disclosure does not require remodulation of a received signal by doing a successive interference cancellation. Instead, the present disclosure utilizes average photon counts for a particular bit combination. Because the disclosed detection models are relatively simple probability distributions, the process of decoding and demultiplexing the data streams may use comparatively simple, cheap, and fast hardware and/or software to demultiplex the input rather than needing more complex hardware such as necessary in approaches using successive interference cancellation.

As optical power is a function of the number of photons and the wavelength, if the wavelength is kept constant, the power is therefore dependent on the number of photons. Thus, for a given wavelength, a power increase is an increase in photons being transmitted over the fiber. The probability of a particular number of photons striking the photodetector in the receiver during a particular time period (e.g., the time period for sending a data bit) for a given power level of the light source is described by a Poisson probability distribution where the median and the range of this probability distribution is related to the power level of the light source. As noted, an increase in power level increases the number of photons transmitted and thereby also increases a probability of more photons striking the receiver - thus causing a shift in the Poisson probability distribution.

<FIG> shows a graph <NUM> of three Poisson probability distributions corresponding to three different power levels graphed with probability as a y-axis and received photon count as the x-axis according to some examples of the present disclosure. <FIG> illustrates a first probability distribution <NUM> of a light source activated at a first power, a second probability distribution <NUM> of a light source activated at a second power (the second power is greater than the first power), and a third probability distribution <NUM> of a light source activated at a third power (the third power is greater than the second power) for a given wavelength on a same optical communication path. As noted above, as the power level of a 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 shifts the probability distributions to the right on the graph of <FIG> and flattens the curve (as more variation is to be expected with higher photon counts).

As noted above, the present disclosure utilizes one or more detection models to determine bit values for each bit in each stream that is transmitted over a same optical communication path (e.g., a same fiber) and a same wavelength but using different power levels. The detection models may be Poisson probability distributions. For example, probability distributions <NUM>, <NUM>, and <NUM> may serve as detection models. The first probability distribution <NUM> may model the probability that a particular photon count observed at the receiver is caused by the first light source corresponding to a first stream at a first power being switched on and the second light source corresponding to a second stream being switched off. In a simple modulation scheme where the light source being 'on' for the detection period is interpreted as a '<NUM>' and the light source being "off" for the detection period is interpreted as a '<NUM>,' the first probability distribution <NUM> thus models a probability of a corresponding bit value for the first stream of '<NUM>' and '<NUM>' for the second stream - denoted in the figure as (<NUM>,<NUM>).

A second probability distribution <NUM> models the probability that a particular photon count observed at the receiver is caused by the second light source being activated corresponding to a second stream at a second power being on and the first light source corresponding to the first stream is off. Under the aforementioned simple modulation scheme, the second probability distribution <NUM> thus models a probability of a corresponding bit value for the first stream of <NUM> and <NUM> for the second stream - denoted in the figure as (<NUM>,<NUM>). The second power level is greater than the first power level.

A third probability distribution <NUM> models the probability that a particular photon count observed at the receiver is caused by both the first and second light sources being activated (and thus more photons are expected to strike the receiver). The third probability distribution <NUM> thus models a probability of a corresponding bit value for the first stream of <NUM> and <NUM> for the second stream - denoted in the figure as (<NUM>,<NUM>). Multiple light sources that are activated at a same time will produce more photons then each individual light source - thus, shifting a probability distribution even farther to the right. Additionally, the range will increase with power as well - flattening out the Poisson distributions as the additional photons also introduces the potential for more variance.

Thus, the receiver may utilize the observation that the photon counts observed at the receiver follow Poisson distributions based upon the power level of the light source to determine each bit for each bit stream even when both light sources are active at the same time. The receiver may observe the number of photons striking the receiver and calculate the probabilities that the photon count was produced by the first light source alone using the first probability distribution <NUM>, the second light source alone using the second probability distribution <NUM>, and a combination of the first and second light sources using the third probability distribution <NUM>. Based upon these probability calculations a decision may be made using decision logic whether a bit for a first stream is '<NUM>' or '<NUM>' and whether a bit for a second stream is a '<NUM>' or '<NUM>. ' In one example, the decision logic may be to select bits associated with a detection model corresponding to the highest probability given the observed photon count. For example, if the highest probability is that the photon count was produced by the first light source alone, the first stream may be assigned a bit value of '<NUM>' and the second stream may be assigned a bit value of '<NUM>. ' Alternatively, if the highest probability is that the photon count was produced by the second light source alone, the first stream may be assigned a bit value of <NUM> and the second stream may be assigned a bit value of <NUM>. Finally, of the highest probability is that the photon count was produced by both light sources, then both streams may be assigned a <NUM>. This scheme may be repeated until the transmitters have finished transmitting data.

As an example, a photon count <NUM> observed at the receiver may have a first probability <NUM> according to the first probability distribution <NUM> and a second probability <NUM> according to a second probability model and a zero or near zero third probability <NUM> according to the third probability distribution <NUM>. As first probability <NUM> is greater than both second probability <NUM> and third probability <NUM>, probability distribution <NUM> may be selected - thus it is most probable that the photon count observed was caused by the first light source activated at the first power level and the second light source being off. Since a '<NUM>' is represented in this example by turning the light source on and a zero is represented by the light source being off - the most probable bit assignment of the first stream is <NUM> and for the second stream, the most probable bit assignment is <NUM>.

As used herein, a detection region for the detection model is a range in which a signal, or an observed value (such as a photon count) of a signal has a non-negligible probability of assignment to a particular bit value. In the example of <FIG>, the detection region may be the region underneath the distributions <NUM>, <NUM>, and <NUM>. The detection region may be a region in which a probability of assigning a particular bit or bit combination to one or more bitstreams is above a predetermined threshold (e.g., a non-negligible value). As can be appreciated, the detection regions for the bit assignment <NUM> is of a different size than the detection region for bit assignment <NUM> and likewise from bit assignment <NUM>. The differing sizes reflects the reality that different light sources operating at different power levels may produce different photon count signatures.

<FIG> illustrates a method <NUM> performed by a receiver according to some examples of the present disclosure. At operation <NUM> the receiver may determine a photon count of photons observed during a predetermined period of time. The predetermined period of time may be a period of time (e.g., a timeslot) whereby the transmitters and receivers are synchronized to transmit one or more bits of a bit stream (e.g., bits of a packet). At operation <NUM>, the receiver determines a first probability using the photon count and a first detection model 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. At operation <NUM>, the receiver determines a second probability using the photon count and a second detection model that a first light source corresponding to a first data stream is off and a second light source corresponding to a second data stream is on at a second power level. At operation <NUM>, the receiver determines a third probability using the photon count and a third detection model that the first light source is on at the first power level and the second light source is on at the second power level.

At operation <NUM>, the system may determine bit values for the first and second data streams based upon the first, second, and third probabilities. For example, a model producing a highest probability value may be selected and bit values corresponding to that model may be assigned to the bit stream. As noted, the detection models may correspond to bit-values of the various data streams. For example, a light source being on during the predetermined period of time (e.g., timeslot) may indicate a '<NUM>' of the bit stream and a light source being off indicates a '<NUM>. ' In these examples, the first detection model may indicate a probability, for a given photon count, that a bit of the first stream is a '<NUM>' and a bit of the second stream is a '<NUM>. ' In some examples, a value of '<NUM>' for both bit streams may be determined (e.g., before operations <NUM>, <NUM>, and <NUM> or during operation <NUM>) by comparing the photon count to a predetermined minimum threshold. In other examples, a separate model may be used for a value of '<NUM>' for both bit streams.

The present disclosure thus improves the functioning of a data transmission system by providing an improved transmission scheme that provides increased utilization of existing physical resources. By differentiating between multiple streams based upon detection models such as photon count probability models, each channel may carry multiple streams of data which increases overall system bandwidth significantly. This bandwidth increase may allow for additional users via additional devices or additional streams for each user (e.g., increase of a connection bandwidth for a particular user) over a same fiber. The disclosed techniques thus solve the technical problem of bandwidth shortages by utilizing detection models, such as photon count probability models to more efficiently utilize the currently available bandwidth rather than adding new bandwidth by adding additional fibers.

As described above, each light source sending data across the optical communication path activates at different power levels. In some examples, the power levels of each light source may be fixed - that is, one or more of the transmitting light sources may be fixed to always activate at a particular power level that is different than other light sources in the system. This system may be simple and may be appropriate in certain situations such as where one light source is much more powerful than another light source. In these examples, no coordination or power level adjustments may be necessary as each light source naturally activates 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 levels of each light source may be set by assigning a power level to each light source via a power level assignment scheme. The power level assignment scheme is any formula or plan that is used to coordinate differing power levels across two or more transmitters. The power level assignment scheme may be divided into one or more phases. A phase specifies a unit of a power level assignment scheme where each transmitter serviced by the scheme is assigned a power level for either a defined duration or until the occurrence of a defined event. The duration may be time-based, data length-based (e.g., a defined number of timeslots), or the like. In some examples, the detection models used by the receiver may be specific to the current phase of the power level assignment scheme. Power level assignment schemes may be described by one or more data structures. For example, a formula, table, chart, or other indicator.

In some examples, the receiver may assign a power level assignment scheme. In other examples, the transmitters may mutually agree upon a power level assignment scheme. In examples in which the transmitters mutually agree on the power level assignment scheme, an agreement protocol may be utilized such as a majority voting algorithm where a power level assignment scheme is chosen as the scheme with the highest number of votes by the transmitters. The determination of a power level assignment scheme may include a selection of a power level assignment scheme from a determined list of power level assignment schemes and may include a customization of the selected power level assignment scheme.

When using a majority voting algorithm, each transmitter may vote for the power level assignment scheme that best matches a transmitter policy. The transmitter policy may vote a power level assignment scheme that most closely meets one or more policy goals such as bandwidth, error rate, quality of service (QoS), power consumption, heat output, and the like. These policy goals may be represented by an indication in the policy of a desired number of phases in which the transmitter is to transmit on high power. The number of phases at high power is a representation of the policy goals as high power phases increase bandwidth, decrease error rate, increase QoS, but also increase power consumption and heat output. Thus, devices prioritizing low battery usage would desire fewer high power phases. In contrast, devices wanting high QoS and high performance would desire more high power phases. The rating for each particular power level assignment scheme may be determined based upon how many high power phases are assigned to the transmitter for the particular power level assignment scheme in comparison to the desired number of high power phases.

In examples in which the receiver assigns a power level scheme or where one of the transmitters makes determinations for the entire system, the determination (the selection, creation, and/or customization) of the power level assignment scheme may be made without knowledge of the capabilities of the transmitters. In other examples, the determination (the selection and/or customization) of the power level assignment scheme may be based upon light source, data stream, and/or device characteristics. These characteristics may be exchanged amongst the transmitters and the receiver. Example, light source characteristics may include attainable power levels of the light source, type of light source (e.g., Light Emitting Diode (LED) or Light Amplification by Stimulated Emission of Radiation (LASER)), and the like. Device characteristics may include a heat budget, power budget, battery life, and the like. Data stream characteristics may include an expected QoS priority, expected bandwidth requirements for the stream, expected data rate, or the like.

As an example, consider a simple power level assignment scheme in which two data streams are utilized with two power levels where a first phase may have the first stream transmitting using a light source selectively activated at a high power level and the second stream transmitting using a light source selectively activated at a low power level and a second phase with the first stream selectively transmitting with a light source activated at a low power level and the second stream selectively transmitting with a light source activated at a high power level. The phases may repeat as long as data is being sent. Phases may last a determined time, a determined number of bit transmissions (e.g., a determined number of timeslots), or until the occurrence (or non-occurrence) of a particular event. Thus, the scheme may change power levels every x-bits - where x is a determined number of bits (where x could be <NUM>), every x periods of time, at the occurrence of a determined event, and the like.

The power level assignment scheme may be evenly distributed in that the power levels are assigned such that each light source may have an equal, or near equal (e.g., +/- <NUM>%) time that it activates at each power level. In other examples, the power level assignment scheme may be asymmetrically distributed such that one light source may activate at a higher or lower power level more often. This may be the result of considerations related to the light source, data stream, and/or device characteristics of the transmitter. For example, some transmitters may have heat and/or power budgets that govern how much power they may use to supply to the light source. For example, if the light source operates over a particular power a battery of the transmitter may be discharged too quickly. Additionally, operation at high power levels may unacceptably increase a heat that the device puts out. If one of the light sources has higher heat and/or power levels, this light source may be assigned to activate at a higher power level for longer periods of time to keep both light sources within the power and/or heat budgets. This may be accomplished by adjusting the phase durations. If the transmitters supply information on heat dissipation and power usage of the light sources, the system may calculate an optimal power level assignment scheme that keeps all light sources within their power level and/or heat dissipation budgets. Expected QoS priorities and bandwidth requirements may also be considered. For example, a light source corresponding to a data stream that is low priority data or utilizing lower bandwidths may be assigned to use lower power levels for longer than light sources with high priority or high bandwidth data to send.

For example, an asymmetric phase distribution for a power level assignment scheme may utilize transmitter power budgets (e.g., which may be set by a user, an administrator, a manufacturer, or the like) which specify power limits for a total power spent by the light source over a particular time period. In these examples, the system may determine how long each transmitter may activate its light source at the high power and the low power to keep itself within its power budget and use those calculations to set the duration of each phase. For example, by solving x such that both of the following equations are true and selecting the answer that is closest to being equal to the power budgets of each transmitter without going over: <MAT> <MAT> Where x is the proportion of phases spent at a high power level, PowerL is the power needed to activate the light source on the low power level, PowerH is the power needed to activate the light source on the high power level, TimeP is the total time spent in each phase of the power level assignment scheme. The above equations assume that the light source would be transmitting <NUM>% of the time in the phase. Thus, in some examples, the left sides of each equation may be adjusted to factor in an expected duty cycle during the phase (which may be <NUM>% assuming on average that the data is well distributed between '<NUM>'s and '<NUM>'s). Timez is the time-frame the Power Budget is measured in. Thus, <MAT> corresponds to the number of phases that elapse in the power budget.

In other examples, the power level assignment scheme may be determined, in whole or in part, upon a Quality of Service (QoS) of the data to be transmitted. A light source transmitting a data stream carrying higher priority data (as determined by QoS metadata of the stream) may be assigned a higher power level to increase. In some examples, the phases of the power level assignment scheme may be changed on a packet-by-packet basis as the various QoS of the data to be transmitted changes. In other examples, the power level assignments may be changed as a result of higher priority QoS data and then changed back after a predetermined period of time. QoS approaches may supplement or override other approaches such that a power level assignment scheme may be modified to support QoS. As an example, a scheme in which the power level is alternated may extend or reduce the time left on a current phase in order to transmit data with higher priority data on a higher power level. Thus, a time frame for each scheme may be set initially through consideration of power budgets as described above, but the timing of each phase may be modified based upon QoS data and expected bandwidth needed for the QoS data. In some examples, QoS approaches may wholly dictate the power level of the streams - such that the stream with the highest priority data is selected to transmit at the highest power level. In other examples, a QoS of the data may be a factor in the selection and / or modification of a power level assignment scheme.

Other characteristics may be utilized to select or modify a power level assignment scheme. For example, the heat budget may be utilized similarly to the power budget (as heat and power are correlated). For example, a heat 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 gets lower, the proportion of time spent transmitting at a high-power level may be reduced. For example, if the battery level reported by a transmitter goes lower than a first threshold, then a time duration of a phase in which that transmitter activates the light source at the higher power level may be reduced (e.g., either by a static predetermined amount, or by a predetermined amount based upon the remaining battery life, or by some other calculation that uses the remaining battery life). In some examples, if the other participants are also low on battery power, blank periods may be inserted into the power level assignment scheme where none of the transmitters transmits.

Other factors such as expected bandwidth requirements and data rate may be utilized similar to QoS requirements in that they modify the phase timing. For example, in order to achieve a particular data rate, the system may allocate additional time for a device at the highest power level in order to ensure that errors that may be caused by transmitting at a lower power rate do not lower the data rate. The particular data rate of one device may be balanced against competing data rates of other devices. For example, if both transmitters request a highest data rate, the system may not favor one device. On the other hand, if one transmitter requests a higher data rate than the other, the device requesting the higher data rate may receive additional time transmitting at the higher power level. In still other examples, the system may dedicate a particular phase exclusively to a particular transmitter and instruct the transmitter to use an amplitude modulation on that phase.

In some examples, a plurality of the described factors may be utilized in combination by an algorithm to select a power level assignment schemes from a set of power level assignment schemes. Example selection algorithms may include machine learning algorithms, a plurality of if-then-statements, a decision tree, a random forest algorithm, and the like. Machine learning algorithms may be trained with feature data corresponding to the above-mentioned factors and labeled (e.g., manually labelled) with an appropriate power level assignment scheme. An example machine learning system is given in <FIG>. The power level assignment schemes may be configurable such that a duration of each phase may change based upon the above-mentioned factors.

In an example selection algorithm, each possible power level assignment scheme of a plurality of schemes may be scored based upon how closely the power level assignment scheme matches the characteristics of the communicating devices (e.g., transmitters and the receiver). For example, for each characteristic used, a subscore may be generated. The scores may be calculated by one or more of the transmitters, by the receiver, or the like.

The score for a particular power level assignment scheme may be the summation of the subscores. For example, for a subscore corresponding to a power budget, the system may determine how well the particular power level assignment scheme matches the power budgets of the transmitters (with or without modifications as described above). As one example, the score may be based upon a difference between the value calculated on the left side of equations <NUM> and <NUM> and the power level budgets on the right side of the equations. As this difference grows, the fit between the transmitting devices and the power level assignment scheme is less desirable. In some examples, a predetermined number of points may be assigned to this subscore and the difference between the left and right sides of both equations <NUM> and <NUM> may be subtracted from this amount.

As another example, points may be assigned based upon an anticipated QoS of the data to be transmitted and how well the particular power level assignment scheme fits that QoS classes for both transmitters. These points may be determined by consulting a table that matches power level assignment schemes with point values for various QoS classes. Each transmitter's point value for its expected QoS class (as determined by the table) may be summed to produce the QoS subscore. Similarly, anticipated or desired data rates may be evaluated against potential power level assignment schemes - again, using a table with a point values for each power level assignment scheme and each desired data rate. Likewise, a battery level of a device corresponding to one or more transmitters may be factored in. Power level assignment schemes may be rated based upon their power consumption (with higher ratings for more power consumption). Transmitting devices may be rated based upon their battery life left (with higher ratings denoting more battery power left). The subscore for the battery level may be the power level assignment scheme power consumption rating minus the battery life rating for each transmitter. These subscores may be summed to produce a final score for each power level assignment scheme.

The power level assignment scheme may then be chosen based upon these scores. For example, the power level assignment scheme with the highest score may be chosen. In some examples, the various subscores may be weighted. The weights may be determined manually by an administrator of the system or may be learned using one or more machine learning algorithms as detailed with respect to <FIG> and the discussion below.

Power level assignment schemes may be determined before data transmission and may be changed in response to the addition of a new data stream (either adding a light source, or adding a stream to be transmitted with a light source), the changing of one or more characteristics of the stream and/or light source, degradation of the light source over time, and the like. For example, scores of the power level assignment scheme may be calculated periodically based upon updated characteristic information. If a different power level assignment scheme scores more than a threshold score higher than the current power level assignment scheme, the power level assignment scheme may be changed. In some examples, the scheme is periodically changed as a matter of course.

<FIG> shows a schematic <NUM> of an example power level assignment scheme according to some examples of the present disclosure. A first transmitter <NUM> and a second transmitter <NUM> are shown, with each transmitter comprising a light source. First transmitter and second transmitters may be on a same device (e.g., different streams on a same device) or different devices. In some examples, transmitters <NUM> and <NUM> are example transmitters <NUM> and <NUM> of <FIG>. A power level assignment scheme with power level assignments <NUM> is shown for the first transmitter <NUM> along with power level assignments <NUM> for the second transmitter <NUM>. Shown in <FIG>, the power level assignment scheme has two repeating phases. A first phase where the first transmitter activates its light source using a low power and the second transmitter activates its light source using a high power. A second phase where the first transmitter activates its light source using a high power and the second transmitter activates its light source using low power. The first and second phases then repeat in an alternating fashion for each bit. While two power levels are shown ('L' for low and 'H' for high), more than two power levels may be utilized in a given power level assignment scheme. In <FIG>, the power level assignment scheme assigns each transmitter alternating power levels. That is, when one transmitter is transmitting on high, the other is transmitting on low. Furthermore, in <FIG>, the power level changes with each bit - that is, the phases change with each bit - but in other examples, the power level assignment scheme may change power levels (phases) after a number of bits, a defined period of time, or the like.

Example bit streams <NUM> and <NUM> are shown along with a sample of a graph of the power level of the light source (y-axis) over time (x-axis) for each bit transmitted by each transmitter. For example, the first bit with a value of '<NUM>' is transmitted at a low power level by the first transmitter. By turning off the light source, second transmitter transmits a '<NUM>'. This is detected by the receiver who is aware of the power level assignment scheme and the current phase of the power level assignment scheme. As shown in the figure, at the receiver side, the power level assignment scheme is represented at <NUM> for each phase by a tuple with the first item being a power assigned to the first transmitter and the second item being the power level assigned to the second transmitter. So, the first bit is (L,H) to signify that the first transmitter would transmit a '<NUM>' at a low power level and the second transmitter would transmit a '<NUM>' at the high power level.

The receiver counts the number of photons received during the period that a first bit is transmitted (e.g., a first timeslot). The graph shows the number of photons detected (y-axis) over time (x-axis) for each timeslot. The receiver then choses a detection model set <NUM> or <NUM> based upon the current phase. In the example shown in <FIG>, each phase corresponds to a different timeslot. Model sets <NUM> and <NUM> include multiple detection models. With respect to the first detection period, since the phase is (L,H) the detection model set <NUM> is chosen as that set of models corresponds to the (L,H) phase of the power level assignment scheme. Matching the detection models to a phase of a power level assignment scheme may increase detection accuracy as different transmitters may have slightly different power levels. Thus, a high-power level for the first transmitter <NUM> may be slightly different than the high-power level for the second transmitter <NUM> - even if a low power level may be similar. In the example shown, the photon counts have a highest probability of being a '<NUM>' for the first stream and '<NUM>' for the second stream according to the detection models, (<NUM>,<NUM>) is assigned - where '<NUM>' is for the first stream and '<NUM>' is for the second stream.

At the second bit, the power level assignments reverse, however no bit is transmitted by either transmitter, so the receiver determines that the bit assignments should be (<NUM>,<NUM>) by using the set of detection model <NUM>. In some examples, rather than using a particular detection model, if the photon count is below a determined threshold, then the bit stream assignments may be set at (<NUM>,<NUM>). The power level assignments revert back to the first phase at the third bit. This time, both light sources are on and the receiver utilizes the detection models <NUM> to determine that the bit assignments should be (<NUM>,<NUM>). This continues until communication ceases. The bit assignments for the streams are shown at <NUM> with stream <NUM> listed before stream <NUM>.

Note that the first and second transmitters may be time synchronized. This may be accomplished through a variety of mechanisms, such as a Network Time Protocol (NTP), a Precision Time Protocol (PTP), a Reference Broadcast Time Synchronization, or the like. In some examples, the receiver may act as the time server.

<FIG> illustrates a flowchart of a method <NUM> of a transmitter implementing a power level assignment scheme according to some examples of the present disclosure. Prior to the operations of <FIG>, the transmitter may identify or determine the current power level assignment scheme. At operation <NUM> the transmitter may receive data to transmit from a data stream. For example, a data stream from a higher layer in a network protocol stack. In some examples, the transmitter may be in a device that has a higher layer that splits a single data stream to multiple data streams for simultaneous transmission in examples where a same device has multiple light sources. At operation <NUM>, the transmitter may determine the current phase of the power level assignment scheme. The process for determining the phase depends on the power level assignment scheme. For example, if the power level assignment scheme is based upon a timer - e.g., each phase lasts a predetermined period of time, then a timer value may be used to determine the phase. In some examples, the timer value may be a multiple of a timeslot length. <FIG> illustrates a flowchart (discussed in more detail below) of a method <NUM> of tracking a phase according to a power level assignment scheme that is timing based according to some examples of the present disclosure. If the power level assignment scheme is based upon a bit count (e.g., each phase lasts a predetermined amount of bits that are transmitted), then the phase may be determined based upon the bit count that has elapsed since the last change. <FIG> illustrates an example of tracking a phase (discussed in more detail below) according to a power level assignment scheme that is based upon a bit number according to some examples of the present disclosure.

In examples in which the phase is based upon a QoS, the phase may be determined by a stream having data to be transmitted having the highest QoS value. For example, every predetermined period of time, the transmitters may communicate their respective QoS values of data in their transmission queues to each other and the receiver-either through the 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 assignment scheme is advanced to the phase corresponding to that transmitter transmitting at the highest power level. In other examples, a phase may be accelerated or changed based upon QoS properties, but otherwise determined by the other described mechanisms (e.g., time or bit count).

With reference back to <FIG>, at operation <NUM>, the transmitter may determine a power level based upon a selected power level assignment scheme and the determined phase. At operation <NUM>, the transmitter may transmit the data as light pulses at the determined power level by turning the light source on or off. The light source, if turned on, is turned on at the determined power level. In some examples, rather than turning the light source on or off, the transmitter may remove an obstruction that blocked the light produced by the light source from entering the fiber optic fiber (or other medium) or otherwise directing an already activated light to the fiber (e.g., moving a mirror to direct the light).

<FIG> illustrates an example method <NUM> of tracking a phase according to a power level assignment scheme that is timing based according to some examples of the present disclosure. At operation <NUM>, the system determines an initial phase based upon the power level assignment scheme. For example, a first transmitter may be assigned a particular power level at a first phase and a second transmitter may be assigned a different power level at a first phase. In some examples, the transmitters may be assigned a first phase by the receiver or by agreement between the transmitters, but in other examples a contention resolution method is utilized. For example, each transmitter may generate a random number, or have a random number programmed onto it. The transmitters may exchange the random numbers and the lowest (or highest depending on the implementation) number utilizes the high-power level for the first phase. An indicator may be set to indicate the power level and the current phase in memory of the transmitter.

At operation <NUM>, a timer may be set based upon the phase timing specified in the power level assignment scheme. In some examples, each phase may be the same time duration, but in other examples, two phases may differ in duration. In still other examples, phases may be variable duration depending on one or more events, factors, or characteristics (e.g., of the device, the transmitter, the light source, the data stream, or the like). At operation <NUM>, the timer expires. At operation <NUM>, the indicator is set to the next phase and/or power level based upon the power level assignment scheme. In power level assignment schemes that are time based, the operations of <NUM> of <FIG> may comprise reading the phase indicator.

<FIG> illustrates an example method <NUM> of tracking a phase according to a power level assignment scheme that is bit-count based according to some examples of the present disclosure. At operation <NUM>, the system determines an initial phase based upon the power level assignment scheme and sets an indicator to indicate this initial phase. This may be done using the method described for operation <NUM> of <FIG>. At operation <NUM>, a bit counter may be set to zero to clear it. At operation <NUM> the bit counter is incremented when a bit is communicated (either a '<NUM>' or a '<NUM>'). For example, when a predetermined period of time (timeslot) elapses. In some examples, a bit is communicated either when the light source is turned on to send a '<NUM>' or kept off to send a '<NUM>'. In other examples, the bit counter may count only when the light source is turned on. Examples in which the bit counter counts only when the light source is turned on may be utilized when a transmitter wishes to keep a power usage under a power budget. At operation <NUM> a comparison is made between a bit counter and a threshold. If the bit counter is greater than, or equal to the threshold, then at operation <NUM>, the phase is incremented, the indicator is updated, and operation proceeds to operation <NUM> where the bit counter is reset. If at operation <NUM>, the bit counter is not over than, or equal to, the threshold, then the bit counter continues being incremented as bits are transmitted at operation <NUM>. <FIG> illustrated a bit counter, but other data sizes may be utilized such as bytes, kilobytes, megabytes, gigabytes, terabytes, and the like.

<FIG> illustrates an example method <NUM> of tracking a phase according to a power level assignment scheme that is QoS based according to some examples of the present disclosure. At operation <NUM> the system determines a QoS indicator of data of a first stream assigned to a first transmitter. The data may be a packet, a portion of a packet, a plurality of packets, or the like. For example, a communications application may be sending streams of communication data that may have an associated QoS level. The QoS level may be determined by messaging from a higher level of a network stack, an indicator in the packet (e.g., a packet header), or the like.

At operation <NUM> the system determines a QoS of data of a second stream assigned to a second transmitter. The data may be a packet, a portion of a packet, a plurality of packets, or the like. For example, a communications application may be sending streams of communication data that may have an associated QoS level. The QoS level may be determined by messaging from a higher level of a network stack, an indicator in the packet (e.g., a packet header), or the like.

At operation <NUM>, the phase may be set based upon a comparison of the first and second QoS values. For example, a phase may be selected where the stream with the highest QoS may have a highest power level assigned. In other examples, where more than two streams are utilized and more than two QoS levels are determined, the highest power level may be assigned to a highest QoS, a second highest power level may be assigned to a second highest QoS, and so on. In case of a tie between QoS levels, the system may have the transmitters alternate transmitting at a high power level.

While the above-mentioned example power level assignment schemes utilized a single power level per phase for each transmitter, in other examples, a plurality of power levels may be grouped into a plurality of power level groups. For example, a highest power group of power levels, a middle power group that has power levels that are lower than those in the highest power group, and a low power group that has power levels that are lower than those in the middle power group. Each transmitter may be assigned to different power groups (e.g., based upon the QoS data) and may transmit using any of those power levels in the group. In some examples, the groups may be useful in utilizing amplitude modulation on top of the techniques disclosed in the present invention. In other examples, within the power group, the power level assignment scheme may be defined that specifies a power level for the transmitter at a particular timer and/or bit count within that power level grouping.

Once a phase based upon a QoS level is set, the power levels may be maintained indefinitely, until the QoS of the data changes, until a predetermined period of time has elapsed (at which point method <NUM> may be repeated), until a predetermined amount of data has been sent (at which point method <NUM> may be repeated), and the like.

Each light source may differ in an amount of photons given out as a result of manufacturing variances and because real-world conditions (such as distance between the transmitter and receiver, fiber quality, bends in the fiber, and the like) may affect the number of photons hitting a receiver. Accordingly, the receiver may employ a training process to build detection models that are customized according to the system. The training procedure may comprise a series of one or more steps where test bits of data are sent at one or more power levels by one or more of the transmitters - alone or in combination with each other. For example, for a two-transmitter system running a power level assignment scheme with two alternating power levels, the receiver may instruct each transmitter to activate their light sources at each power level separately and then at each power level together over the optical communication path at a same frequency. The photons received for each test may be counted and used to build a detection model, such as a Poisson distribution model. In other examples, other models, such as a machine-learning model may be built using the photon counts and labels corresponding to the light source producing the photon counts (and thus the bit assignments). In order to coordinate the training, the transmitters may be synchronized - e.g., through the use of in-band (through the fiber optic) or out-of-band (through another network) communications.

As noted, the model training process may utilize photon counts detected by the photon detector at the receiver to train the detection models to produce probabilities of one or more particular bit combinations. For example, the system may instruct the transmitters to activate their light sources - alone or in combination - for each particular combination of power level and bit combination (and in some cases, multiple times). Thus, for example, for a system with two transmitters and a simple power level assignment scheme that alternates each transmitter between two power levels the possible (bit, power level) combinations are given by Table <NUM>:.

In table <NUM>, the first four rows correspond to a first phase of a power level assignment scheme and the second four rows correspond to a second phase of the power level assignment scheme. The receiver may calculate a separate detection model for each possibility shown above. For example, if the detection models are Poisson distributions, the system may instruct the transmitters to activate their light sources according to each combination (e.g., according to the modulation scheme to produce the indicated bit) and calculate an average number of photons for the bit and power level combination (e.g., each row of Table <NUM>).

Thus, for example, the system may have the light source for the first bit stream transmit a '<NUM>' by activating its light source at high power alone. The photon counts observed at the receiver during this period may be used to calculate a detection model for a bit combination of (<NUM>,<NUM>) for a first phase. The system may also instruct the light source of the first bit stream and the second bit stream to transmit a '<NUM>' by activating their light sources at their respective assigned power levels together. The photon counts observed at the receiver during this period may be used to calculate a detection model for a bit combination of (<NUM>,<NUM>) for the first phase. Next, the system may instruct the light source of the second bit stream to transmit a '<NUM>' by activating its light source at a low power (without the light source of the first bit stream being activated). The photon counts observed at the receiver during this period may be used to calculate a detection model for the bit combination of (<NUM>,<NUM>). This process is repeated for the second phase where photon counts are observed for the bit combinations and power levels for rows <NUM>-<NUM> of table <NUM>.

In some examples, a single measurement of photon counts is taken for each of the combinations of transmitter and power level, but in other examples, multiple measurements are taken and an average is calculated. As noted, one example detection model is a Poisson distribution. One example, Poisson detection model is: <MAT> Where λ is the average number of photons calculated in the training procedure, and t is the observed photons at the photon detector.

Instead of Poisson models, in other examples, other machine learning models may be utilized and calculated. These are explained in more detail in <FIG>. As noted, in some examples training data-and the model created from that training data-may be specific to a particular power level scheme phase. In other examples, negative training data that corresponds to power levels and/or bit combinations corresponding to an out-of-phase assignment may be utilized to train the machine learning model of characteristics of an invalid photon count. That is, the machine-learning model may recognize and correct for out-of-phase operation.

<FIG> illustrates a flowchart of a method <NUM> of training a detection model according to some examples of the present disclosure. In some examples, the detection model may simply be an average number of photons observed that may be utilized in a mathematical formula (the formula may or may not be considered as part of the detection model) such as a Poisson distribution. In other examples, the detection models may be more complicated data structures, such as neuron weightings for neural networks, and the like.

At operation <NUM>, the receiver may determine a particular phase to train of a power level assignment scheme. For example, in a power level assignment scheme with two phases, a first phase may be chosen for training first and then a second phase may be trained after the first phase. In examples in which power levels are fixed, this step may not be performed.

At operation <NUM>, instructions are communicated to the receivers. Instructions may include what phase to utilize, what power levels to activate the light source at (which may be communicated by indicating the phase in cases where there is a power level assignment scheme), whether to activate the light source, how long to activate the light source for, any particular bit sequence to use, and the like. In some examples, the transmitter may be instructed to activate the light source multiple times over a predetermined period of time to allow for the receiver to take multiple measurements to produce an average photon count. The instructions sent by the receiver may instruct the receivers for each step - that is, during a first time frame a first transmitter will activate its light source at the first power level, during a second time frame a second transmitter will activate its light source at the second power level, and during a third time frame, both transmitters will activate their light sources at their respective assigned power levels.

At operation <NUM> the training step may be executed. At operation <NUM>, the transmitters may activate or not activate at one or more power levels according to the instructions sent at operation <NUM>. In some examples, rather than send the instructions at once, each training step may be proceeded by instructions. At operation <NUM>, the receiver may also determine photon counts for each bit combination in the determined phase. For example, a first photon count (or average photon count in the case of multiple measurements) at the first-time frame corresponding to a first power level of a first transmitter, a second photon count (or average photon count in the case of multiple measurements) at the second time frame corresponding to a second power level of a second transmitter, a third photon count at the third time frame (or average photon count in the case of multiple measurements), corresponding to a third power level produced by both the first second transmitters activating their light sources at the respective first and second power levels.

At operation <NUM> the receiver may determine the models for the particular phase based upon the collected photon counts or 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 assignment. At operation <NUM> a determination may be made whether any other phases are present. If so, then operations <NUM>-<NUM> are repeated for the other phases. If no other phases are present, then the training phase may end at operation <NUM>. Once the training phase ends, the transmitters may send data to the receiver. The end of the training phase may be signaled by the receiver using a message, after a passage of a predetermined time (e.g., as indicated by the instructions communicated at operation <NUM>), or the like.

<FIG> illustrates a flowchart of a method <NUM> of executing training steps and determining models according to some examples of the present disclosure. Method <NUM> may be an example of operations <NUM> and <NUM> according to some examples. At operation <NUM> a first (transmitter, power level) combination is selected - e.g., from a table such as table <NUM>. This corresponds to a bit assignment as noted previously. The set of (power level, transmitter) tuples may be dependent on the power level assignment scheme and the order in which they are trained may be given by instructions sent by the receiver - e.g., at operation <NUM>. Those instructions may also specify a time to turn a light source on and off and at what power. In other examples, the tuple may be communicated to the transmitters along with an instruction to activate the light source prior to the time period for activating the light source (e.g., between operations <NUM> and <NUM>). At operation <NUM>, photon counts may be determined. In some examples, this may be an average photon count. This average is used to build the model (or may be the model or a portion of the model). At operation <NUM>, the receiver may determine if any other combinations are left to be trained, and if so, then operations <NUM>-<NUM> are repeated for those combinations. If not, then the method ends.

<FIG> illustrates a flowchart of a method <NUM> showing a more specific implementation of method <NUM>. The method <NUM> may be an implementation of operations <NUM> and <NUM> from <FIG>. The method <NUM> is a method of training that may be applied to a single phase of a power managements scheme in which there are two transmitters with two power levels. Additional operations may be performed for more transmitters. The process of <FIG> may be repeated for additional phases. Additionally, operations <NUM>-<NUM> show the subsequent usage of the trained detection models according to some examples of the present disclosure.

At operation <NUM>, the receiver calculates a first photon count of photons observed during a first-time period where a first light source is activated at a first power level on a first wavelength over a fiber and a second light source is not activated. In some examples, the receiver, or another device, instructs the first light source to activate prior to, or at the beginning of the first-time period. Likewise, the second transmitter may be instructed not to activate prior to, or at the beginning of the first-time period. In some examples, the photon count is an average photon count.

At operation <NUM>, the receiver determines a first detection model from the first photon count, the first detection model producing an inference for whether a given photon count indicates that the first light source is activated at the first power level and the second light source is not activated. For example, the detection model may be a Poisson distribution that may produce a probability that a particular photon count was produced by the first light source at the first power (where the second light source is not activated). In other examples, the detection model may be a machine-learning model as noted previously. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, or the like.

At operation <NUM>, the receiver calculates a second photon count of photons observed during a second-time period where the second light source activates (turns on) at a second power level on the first wavelength over the fiber and the first light source does not activate. As with the first-time period, in some examples, the receiver, or another device, instructs the second light source to activate prior to, or at the beginning of the second time period. Likewise, the first transmitter may be instructed not to activate prior to, or at the beginning of the second time period. In some examples, the photon count is an average photon count.

At operation <NUM>, the receiver determines a second detection model from the second photon count, the second detection model producing an inference for whether a given photon count indicates that the second light source is activated at the second power level and the first light source is not activated. For example, the detection model may be a Poisson distribution that may produce a probability that a particular photon count was 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 noted previously. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, or the like. The type of model used for the first detection model may be a same type of model used for the second detection model, or a different type of model.

At operation <NUM>, the receiver calculates a third photon count of photons observed during a third-time period where the first light source activates at the first power level and the second light source activates at the second power level. Both the first and second light sources activate on the first wavelength over the 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 prior to, or at the beginning of the second time period. In some examples, the photon count is an average photon count.

At operation <NUM>, the receiver determines a third detection model from the third photon count, the third detection model producing an inference for whether a given photon count indicates that both the first and second light sources are activated at the first and second power levels, respectively. For example, the detection model may be a Poisson distribution that may produce a probability that a particular photon count was produced by the first light source at the first power and the second light source at the second power. In other examples, the detection model may be a machine-learning model as noted previously. The output of the machine learning model may be a probability, a yes-no answer, a confidence value, or the like. The type of model used for the first detection model, second detection model, and third detection model may be a same type of model, or a different type of model.

While operations <NUM>-<NUM> are described in connection with a simple modulation scheme where a light source being activated during the time slot indicates a '<NUM>' and a light source being off during the time slot indicates a '<NUM>. ' In other examples, the system may train a model based upon other types of modulations. For example, an amplitude modulation may be utilized and the system may train those models as well. In these examples, "activation" of the light source means to transmit a value of '<NUM>' according to the selected modulation scheme and turning the light source off means to transmit a value of '<NUM>' according to the selected modulation scheme. In some examples, amplitude modulation schemes may combine with the presently disclosed scheme to allow sending multiple bits per stream per timeslot using power level groups. In these examples, the system may learn a model for all possible bit groupings.

Once the models are determined, they may be used to determine bit assignments of streams of bits transmitted by the transmitters. For example, at operation <NUM>, the receiver may receive, during a fourth-time period, a transmission. The transmission may be received over the optical communication path (e.g., over a fiber optic fiber) at the first wavelength. At operation <NUM>, the receiver may determine a photon count of the transmission received at operation <NUM>. At operation <NUM>, the receiver may determine a first probability that the transmission resulted from activation of the first light source at the first power level using the first detection model, a second probability that the transmission resulted from the second light source activated at the second power level using the second detection model, and a third probability that the transmission resulted from the first and second light source activated together using the third detection model. At operation <NUM>, 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 upon the first, second, and third probabilities, the first and second data streams stored in a memory of a computing device. The data stream may be provided to a higher layer in a network stack (e.g., the method of <FIG> may be a physical layer). For example, the receiver may determine a highest probability value. The model that produced the highest probability value may have a corresponding bit value assignment for both the first and second streams. This corresponding bit value may be assigned to the first and second streams.

Turning now to <FIG>, a schematic of a system <NUM> for increasing fiber optic bandwidth is shown according to some examples of the present disclosure. First transmitter <NUM> may include processing circuitry <NUM> to transform the data stream to prepare it for transmission on the fiber optic fiber. Example operations include error coding, encryption, modulation operations, and the like. The transformed bits are used as a signal to the controller <NUM> to instruct the light source <NUM> to selectively turn on or off to represent the transformed bit stream according to a modulation scheme. For example, by turning the light source <NUM> on in response to a '<NUM>' in the bit stream and turn the light source off in response to a '<NUM>' in the bit stream. The controller <NUM> may set the power of the light source <NUM> based upon the power level indicated in the assigned power level assignment scheme and based upon the current phase of the power level assignment scheme. In cases in which modulation schemes that vary power are utilized, the power level may be an average power level over a particular timeslot. The indication of which power level assignment scheme is active and which phase is active may be stored in power level assignment scheme storage <NUM>.

Light source <NUM> transmits light over an optical communication path which may be through a medium such as a fiber optic fiber to a receiver. Example light sources may include an LED or a LASER light source. Controller <NUM> and processing circuitry <NUM> may be general purpose processors or may be specially designed circuits configured to implement the techniques described herein. Power level assignment scheme storage <NUM> may be flash storage, Read Only Memory (ROM) or other transitory or non-transitory storage.

Transmitters <NUM> and <NUM> may be transceivers in that they may have associated receivers, such as a receivers <NUM>, <NUM>. The power level assignment scheme may be assigned by the receiver <NUM> (which also may be a transceiver), through agreement with the second transmitter <NUM>, or the like. The assigned power level assignment scheme may be one of a predetermined library of assignment schemes that is stored in the power level assignment scheme storage <NUM>. In some examples, the assigned power level assignment scheme may be based upon a scheme in the library of assignment schemes but modified for one or more of the particular transmitters and receivers involved in the communication session. In yet other examples, the assigned power level assignment scheme may be custom to the particular communication session. The power level assignment scheme storage <NUM> may store the particular assignment scheme, a selection of the particular assignment scheme, any customizations in use, the current phase, and/or the like.

Receiver <NUM> may be a fiber optic receiver, but also may be an out-of-band receiver such as a WiFi receiver, a Bluetooth receiver, an ethernet receiver, or the like. Receiver <NUM> may receive instructions from the receiver <NUM> that are passed to the controller to turn on or off the light source <NUM> during model training for the receiver.

Second transmitter <NUM> may include similar components as first transmitter <NUM>. For example, a controller <NUM>, a light source <NUM>, processing circuitry <NUM>, a receiver <NUM>, a power level assignment scheme storage <NUM>, and the like. In some examples, if first transmitter <NUM> and second transmitter <NUM> are in a same device, one or more components may be shared between first transmitter <NUM> and second transmitter <NUM>. Additionally, first transmitter <NUM> and second transmitter <NUM> may send multiple streams of data over the fiber optic cable to receiver <NUM> over multiple different wavelengths. Thus, the first transmitter <NUM> and second transmitter <NUM> may utilize both the techniques of the present invention to send multiple streams of data simultaneously over a same fiber by altering power levels, but also multiple streams using different wavelengths.

<FIG> shows a schematic of a receiver <NUM> according to some examples of the present disclosure. For example, receiver <NUM> may be an example receiver that is part of transceiver <NUM>. Receiver <NUM> may include a photo detector <NUM> that detects and/or counts photons received over an optical communication path such as a fiber optic fiber over a predetermined time period (e.g., a timeslot). The photon counts are passed to the controller <NUM>. Controller <NUM> may utilize one or more detection models stored in model storage <NUM> to determine individual bits in a bit stream. For example, the models may comprise one or more Poisson distributions that may return the probability that the photon counts correspond to one or more particular bit combinations for each stream. The particular detection models to use may be selected based upon the current phase of the current power level assignment scheme. The current phase and/or the selected power level assignment scheme may be stored in power level assignment scheme storage <NUM>.

For example, consider a simple power level assignment scheme in which two light sources simultaneously transmit across a same communication path (e.g., fiber optic fiber) on a same wavelength. The power level assignment scheme alternates which of the two light sources - corresponding to two distinct data streams activates on a high power level on a bit-by-bit basis. On the first bit, stream <NUM> is the high power light source and stream <NUM> is the low power light source. The received photon counts for the period of time in which the first bit is to be transmitted is submitted to a first detection model set that includes models trained to detect the first light source activating at a high power (with the second light source being off), the second light source activating at low power (with the first light source being off), and both activated at their respective assigned powers. The detection model to return a highest score (e.g., detection probability) is used to assign values to the bit stream. For example, if the detection model trained to detect the first light source activated at a high power (with the second light source being off) returns the highest probability, then a '<NUM>' is assigned to the bit stream corresponding to the first light source and a zero to the bit stream corresponding to the second light source (e.g., based upon the modulation scheme where a '<NUM>' is indicated by activation of the light source and '<NUM>' is indicated by the light source being off).

On the second phase, stream <NUM> is the low power light source and stream <NUM> is the high-power light source. The received photon counts for the period of time in which the second bit is to be transmitted is submitted to a second detection model set that includes models trained to detect the first light source activated at a low power (with no activation of the second light source), the second light source activated at a high power (with no activation of the first light source), and both transmitting a '<NUM>' at their respective assigned powers. The detection model to return a highest score (e.g., detection probability) is used to assign values to the bit stream. For example, if the detection model trained to detect the first light source activated at a low power (with no activation of the second device) returns the highest probability, then a '<NUM>' is assigned to the bit stream corresponding to the first light source and a zero to the bit stream corresponding to the second light source.

Each bit stream determined by the controller is then passed to the processing circuitry <NUM> and <NUM> respectively, which decodes the bit stream, and performs various operations (such as an inverse of the operations performed by the processing circuitry <NUM> and <NUM> of the transmitters in <FIG>) and outputs bitstreams to higher level layers (such as a Physical, Transport, or other network layers).

Calibration components <NUM> may include a model training component <NUM> which may instruct the transmitters (through a transmitter <NUM>) to transmit various test data sequences. The models may be built using photon counts observed by the photo detector <NUM>. In some examples, the controller <NUM> may also select and control the power level assignment scheme. For example, by communication with the transmitters to select and/or customize a scheme. This may happen before the communication session with the transmitters and/or periodically during the communication session. In other examples, where the transmitters agree to the power level assignment scheme, the controller <NUM> receives messages indicating which power level assignment scheme is active. The controller may determine the current phase by messaging to and/or from one or more of the transmitters (e.g., for QoS based approaches or modifications), based upon an elapsed time from the last phase, or the like.

The controller <NUM>, as noted, determines the phase of the power level assignment scheme (which transmitter's light source is at what power) and uses the phase to select the appropriate detection models. For example, referring back to table <NUM> with a power level assignment scheme where a first phase has the first transmitter transmitting at a high power level, if the phase is <NUM>, then the models trained with data on photon counts from a training period where the first transmitter was activated at a high power and the second transmitter was activated at a low power level may be selected and used.

<FIG> shows an example machine learning component <NUM> according to some examples of the present disclosure. The machine learning component <NUM> may be implemented in whole or in part by the model training component <NUM>. The machine learning component <NUM> may include a training component <NUM> and a prediction component <NUM>. In some examples, the training component <NUM> may be implemented by a different device than the prediction component <NUM>. In these examples, the model <NUM> may be created on a first machine and then sent to a second machine.

Machine learning component <NUM> utilizes a training component <NUM> and a prediction component <NUM>. Training component <NUM> inputs feature data <NUM> into feature determination component <NUM>. The feature data <NUM> may be photon counts, phases, and the like. In some examples, the feature data may be explicitly labeled with the bit assignments for each stream, the light source(s) currently transmitting, the power level the light source(s) that are currently transmitting are transmitting at, and the like.

Feature determination component <NUM> determines one or more features for feature vector <NUM> from the feature data <NUM>. Features of the feature vector <NUM> are a set of the information input and is information determined to be predictive of a bit assignment for each stream. Features chosen for inclusion in the feature vector <NUM> may be all the feature data <NUM> or in some examples, may be a subset of all the feature data <NUM>. In examples in which the features chosen for the feature vector <NUM> are a subset of the feature data <NUM>, a predetermined list of which feature data <NUM> is included in the feature vector may be utilized. The feature vector <NUM> may be utilized (along with any applicable labels) by the machine learning algorithm <NUM> to produce one or more detection models <NUM>.

In the prediction component <NUM>, the current feature data <NUM> (e.g., photon counts) may be input to the feature determination component <NUM>. Feature determination component <NUM> may determine the same set of features or a different set of features as feature determination component <NUM>. In some examples, feature determination component <NUM> and <NUM> are the same components or different instances of the same component. Feature determination component <NUM> produces feature vector <NUM>, which are input into the model <NUM> to determine bit assignments, phases, power level assignment schemes, or the like <NUM>.

The training component <NUM> may operate in an offline manner to train the model <NUM>. The prediction component <NUM>, however, may be designed to operate in an online manner. It should be noted that the model <NUM> may be periodically updated via additional training and/or user feedback.

The machine learning algorithm <NUM> may be selected from among 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 Dichotomiser <NUM>, C4. <NUM>, Classification and Regression Tree (CART), Chi-squared Automatic Interaction Detector (CHAID), and the like),random forests, linear classifiers, quadratic classifiers, k-nearest neighbor, 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 method. Unsupervised models may not have a training component <NUM>. In some examples, the detection model <NUM> may determine a bit for each stream based upon the detected photons. In other examples, the detection model <NUM> may produce a score or probability for each stream that a particular bit was sent.

As noted, the machine learning models may be used to select a power level assignment scheme. In these examples, the feature data <NUM>, <NUM> may be information predictive of a proper power level assignment scheme. The features discussed above may be utilized as feature data <NUM>, <NUM> - such as a power budget, transmitter characteristics, receiver characteristics, and the like. The result may be a ranking and/or selection <NUM> of a power level assignment scheme.

The modulation schemes utilized herein have been relatively simple (on or off to represent a '<NUM>' or a '<NUM>'). In other examples, different modulation schemes may be utilized. For example, if the light sources and the receivers are capable, WDM, phase shift modulation, amplitude modulation, and other advanced modulation forms may be utilized in addition to the techniques described herein. For example, a plurality of bitstreams may be divided into a plurality of wavelengths - where each wavelength may have multiple streams of data that are sent using the methods disclosed herein. Similarly, for power modulation, a power assignment scheme of the present invention may assign multiple power levels to each transmitter - where each power level is a particular bit combination. Thus, first transmitter may be assigned power levels <NUM>, <NUM>, and <NUM> (to indicate '<NUM>', '<NUM>', and '<NUM>' bits respectively) and second transmitter may be assigned power levels <NUM>, <NUM>, and <NUM> (to indicate '<NUM>', '<NUM>', and '<NUM>' bits respectively). In this example, the system may allocate the power levels such that the average photon counts of each power level combination are distinct enough such that the probability distributions are far enough apart so that the error rate is low.

<FIG> illustrates a flowchart of a method <NUM> of receiving data optically according to some examples of the present disclosure. At operation <NUM>, a controller or other processor of the receiver may determine a count of the photons received over an optical communication channel. For example, the controller may be communicatively coupled to a photon sensor. The controller may poll or otherwise receive a count, or the like. In some examples, the photons that hit the sensor may result from a transmission of a first stream of data at a first power level and a second stream of data at a second power level. The first stream of data may be transmitted by a first light source and the second stream of data may be transmitted by a second light source. The first and second light sources may be on a same device, or on different devices. In some examples, the photon count may correspond to photons detected by the photon detector within a timeslot for sending a bit of data.

At operation <NUM>, the receiver may demultiplex a first and a second stream of data from the optical communication channel by applying the photon count as an input to at least one detection model. An example detection model may be a probability distribution such as a Poisson probability distribution. The demultiplexing may be accomplished without using successive interference cancellation. In some examples, the demultiplexing may be performed utilizing a plurality of detection models by assigning bit values corresponding to a detection model of the plurality of detection models that returns a highest probability given the photon count. In some examples, the received photons may be detected as a sinusoidal wave, a square wave, or the like. In some examples, the photon count may result from, or be influenced by, destructive interference and the demultiplexing is not affected by it because the detection models are trained based upon the photon count averages which already account for the destructive interference. In some examples, the optical communication channel may be over (or partially over) a single fiber optic fiber. In other examples, the optical communication channel may be over (or partially over) air - e.g., the transmitter may be pointed at the receiver.

<FIG> illustrates a flowchart of a method <NUM> for receiving optical signals at a receiver according to some examples of the present disclosure. At operation <NUM> the receiver may determine a count of photons hitting a photon detector during a detection period (e.g., a timeslot) and for a particular light frequency. For example, a controller at the receiver may be communicatively coupled to a photon detector. The photons may have been produced from transmission of respective first and second bitstreams transmitted on a same frequency and across a same optical communication path to the photon detector during the detection period. The respective first and second bitstreams may be transmitted by selectively powering on and off first and second light sources at first and second power levels. In some examples, the selectively powering on and off may be in accordance with a particular modulation scheme, such as an amplitude modulation scheme.

At operation <NUM>, the receiver may determine, based upon the photon count, a first bit value assignment for the first bit stream and a second bit value assignment for the second bit stream based on a plurality of photon count decision regions. In some examples, each of the plurality of photon count decision regions correspond to respective bit value assignments for the first and second bit streams. In some examples, 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 some examples, a decision range of the plurality of photon count decision regions may be defined by a range of photon counts of the decision region where a probability is 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 of the plurality of photon count decision regions may be defined as the photon count in which a probability returned by the decision region is highest. Thus, the decision regions may not overlap. In some examples, the decision regions may be described by a Poisson distribution.

In some examples, determining, based upon the photon count, a first bit value assignment for a first bit stream and a second bit value assignment for a second bit stream using a plurality of photon count decision regions is performed by determining, for each of the plurality of photon count decision regions, a probability given the photon count, selecting the photon count decision region with a greatest probability given the photon count, and assigning a value to the first and second bit streams that corresponds with a bit assignment corresponding to the selected photon count decision region. In some examples, the decision regions may be readjusted. For example, a training procedure may be rerun after a predetermined period of time. This may adjust for changing light source transmission characteristics, changing medium characteristics, and the like.

<FIG> illustrates a flowchart of a method <NUM> for simultaneous transmission of multiple data streams over an optical communication path according to some examples of the present disclosure. The method <NUM> may be performed by a controller of a first light source. At operation <NUM>, the controller may coordinate with a controller of a second light source or with a receiver to determine a first power level. For example, the controller may determine one or more power level assignment schemes, determine a current phase, and the like. The power level assignment schemes may be assigned by the receiver, determined by mutual agreement between transmitters and in some examples the receiver, or the like. The first power level may be determined by identifying a current phase. For example, based upon a bit transmitted in a sequence.

At operation <NUM>, the controller may selectively activate a first light source at the first power level at a first wavelength according to a modulation scheme to transmit data of a first stream of data to the receiver. During the same timeslot, the second data stream may be transmitted across the optical communication path by a second light source selectively activated according to the modulation scheme at the first wavelength and at a second power level. For example, the first light source may be activated "on" at the first power level to transmit a one bit and deactivated to transmit a zero. In other examples, more complex modulation schemes may be utilized, such as amplitude modulation where a sinusoidal waveform is adjusted in amplitude.

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

<FIG> illustrates a block diagram of an example machine <NUM> upon which any one or more of the techniques (e.g., methodologies) discussed herein may perform. The machine <NUM> 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. Machine <NUM> may implement the transmitters and/or receivers disclosed herein. Furthermore, machine <NUM> may include the transmitters and/or receivers disclosed herein. Machine <NUM> may implement any of the methods disclosed herein.

Examples, as described herein, may include, or may operate on, logic or a number of components, components, or mechanisms. Components are tangible entities (e.g., hardware) capable of performing specified operations and may be configured or arranged in a certain manner. In an example, circuits may be arranged (e.g., internally or with respect to external entities such as other circuits) in a specified manner as a component. In an example, the whole or part of one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware processors may be configured by firmware or software (e.g., instructions, an application portion, or an application) as a component that operates to perform specified operations. In an example, the software, when executed by the underlying hardware of the component, causes the hardware to perform the specified operations.

Accordingly, the term "component" is understood to encompass a tangible entity, be that an entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., transitorily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operation described herein. Considering examples in which components are temporarily configured, each of the components need not be instantiated at any one moment in time. For example, where the components comprise a general-purpose hardware processor configured using software, the general-purpose hardware processor may be configured as respective different components at different times. Software may accordingly configure a hardware processor, for example, to constitute a particular component at one instance of time and to constitute a different component at a different instance of time.

The term "machine readable medium" may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine <NUM> and that cause the machine <NUM> to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting machine readable medium examples may include solid-state memories, and optical and magnetic media. Specific examples of machine readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; Random Access Memory (RAM); Solid State Drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, machine readable media may include non-transitory machine readable media. In some examples, machine readable media may include machine readable media that is not a transitory propagating signal.

Claim 1:
A system for transmitting data using light, the system comprising:
a first light source configured to transmit a first data stream at a first power level and on a first wavelength to a receiver over a first optical communication path; and [<NUM>]
a second light source configured to transmit a second data stream at a second power level different than the first power level and on the first wavelength to the receiver over the first optical communication path simultaneously to a transmission of the first data stream by the first light source [<NUM>];
characterized in that the system further comprises a receiver configured to receive the first and second data streams, and demultiplex the first and second data streams by a plurality of detection models, wherein the receiver is configured to demultiplex the first and second data streams by:
- inputting a photon count of received photons to the plurality of detection models, wherein each of the plurality of detection models comprises a probability distribution modelling a probability of a number of photons striking a photodetector of the receiver in a particular time period for a given power level, corresponding to a bit assignment of the first and second data streams,
- assigning a value to the first data stream and the second data stream equal to the corresponding bit assignment of the detection model that produces a highest probability given a photon count.