Error control coding with dynamic range

文档序号:1879189 发布日期:2021-11-23 浏览:32次 中文

阅读说明:本技术 具有动态范围的错误控制编码 (Error control coding with dynamic range ) 是由 A·A·哈桑 于 2020-03-24 设计创作,主要内容包括:在一些示例中公开了用于在功率电平调制方案中连同ECC使用不确定性范围的方法、系统、光学设备和机器可读介质。不确定性范围内的光子计数不会被解复用,数据稍后由ECC算法恢复,无需重传。这通过改变解复用行为以利用ECC算法中的特性来降低错误率来提高性能。(Methods, systems, optical devices, and machine-readable media for using uncertainty ranges in power level modulation schemes in conjunction with ECC are disclosed in some examples. Photon counts within the uncertainty range are not demultiplexed and the data is later recovered by the ECC algorithm without retransmission. This improves performance by changing the demultiplexing behavior to take advantage of the characteristics in the ECC algorithm to reduce the error rate.)

1. A method for receiving multiplexed data over an optical communication path, the method comprising:

using a hardware processor at the receiver:

generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources;

determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models;

in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and

generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

2. The method of claim 1, further comprising:

determining the uncertainty range based on a defined capability of the ECC.

3. The method of claim 2, wherein the defined capability of the ECC comprises a number of missing bits that an ECC can correct without triggering a retransmission request, and wherein the more missing bits the ECC can correct, the greater the size of the uncertainty range.

4. The method of claim 1, further comprising:

determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

5. The method of claim 4, wherein determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the plurality of detection models and a second detection model of the plurality of detection models.

6. The method of claim 4, wherein determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

7. The method of claim 1, further comprising:

adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

8. A computing device for receiving multiplexed data over an optical communication path, the device comprising:

a hardware processor configured to perform operations comprising:

generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources;

determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models;

in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and

generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

9. The computing device of claim 8, wherein the operations further comprise: determining the uncertainty range based on a defined capability of the ECC.

10. The computing device of claim 9, wherein the defined capability of the ECC comprises a number of missing bits that an ECC can correct without triggering a retransmission request, and wherein the more missing bits the ECC can correct, the greater the size of the uncertainty range.

11. The computing device of claim 8, wherein the operations further comprise: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

12. The computing device of claim 11, wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the plurality of detection models and a second detection model of the plurality of detection models.

13. The computing device of claim 11, wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

14. The computing device of claim 8, wherein the operations comprise: adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

15. A machine-readable medium storing instructions for receiving multiplexed data over an optical communication path, the instructions when executed by a machine, cause the machine to perform operations comprising:

generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources;

determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models;

in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and

generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

Background

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

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

Due to this large bandwidth, fiber optic systems are increasingly popular with communication network providers, cloud service providers, and other entities that need to transmit large amounts of data very quickly. In addition to carrying large amounts of data, optical fibers offer other advantages, such as: less attenuation than cable (which provides the benefit of using less network infrastructure to enable longer range transmission of communications cable); no electromagnetic interference exists; as well as various other benefits.

Drawings

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

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

Fig. 2 depicts an OPLM method performed by a receiver when decoding data, according to some examples of the present disclosure.

Fig. 3 depicts a graph of three poisson probability distributions for three different power levels, with probability on the y-axis and received photon count on the x-axis, according to some examples of the present disclosure.

Fig. 4 depicts graphs of three detection models similar to the detection model in fig. 3, according to some examples of the present disclosure.

Fig. 5 depicts a method for demultiplexing multiple data streams transmitted over an optical communication path according to an OPLM method using an uncertainty range, according to some examples of the present disclosure.

Fig. 6 depicts a method for demultiplexing a plurality of data streams transmitted over an optical communication path according to an OPLM scheme with an uncertainty range, according to some examples of the present disclosure.

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

Fig. 8 depicts a schematic diagram of a receiver in accordance with some examples of the present disclosure.

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

FIG. 10 is a block diagram depicting an example of a machine on which one or more embodiments may be implemented.

Detailed Description

Fig. 1 depicts components of a simplified optical communication system in the form of a fiber optic system 100 according to some examples of the present disclosure. The data stream 105 may include binary data generated by a higher network layer processed by the processing circuit 110. Processing circuitry 110 may process data of data stream 105 in one or more ways to prepare for transmission. Example processing operations performed by the processing circuit 110 include applying one or more Error Correction Codes (ECC), compression algorithms, encryption algorithms, and the like. The data transformed by the processing circuitry 110 is then passed to the light source 115 as a control signal. The light source 115 modulates data by selectively turning the light source on and off according to a modulation scheme according to input data. For example, in a simple modulation scheme, each bit may be transmitted during a predetermined time period (e.g., a time slot). During a particular time slot, the light source may be turned on during that time slot if the current bit from the input data is '1' and turned off during that time slot if the current bit from the input data is '0'. Other more complex modulation schemes may be used, such as amplitude, phase or polarization modulation. In some examples, the light may be modulated onto a sine wave.

The light generated by the light source then travels through an optical communication path to the receiver. The optical communication path is the path taken by the light source from the transmitting light source to the receiving sensor. The path may pass through one or more media, such as a single fiber optic (fiber optic), air, or the like. In the example of fig. 1, the optical communication path travels across a single fiber optic fiber 120. In examples where 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 photodetector 125 and processing circuitry 130. The photodetector 125 collects a count of the number of photons detected during a detection period corresponding to the amount of time that a single bit of the data stream 105 is transmitted. Based on the photon counts, the photodetectors generate a data stream, which is then input to the processing circuitry 130, which applies the inverse of the operations applied by the processing circuitry 110 to generate the data stream 135. The goal is to transmit data stream 105 to the receiver as quickly as possible while matching data stream 135 to data stream 105.

As already mentioned, WDM can be used to optimize the use of the optical communication path. Other techniques such as Amplitude Modulation (AM) and Digital Domain Power Division Multiplexing (DDPDM) also increase the bandwidth of the medium. It will be clearly shown that none of these techniques fully utilize the entire bandwidth available in the medium and that in some cases these techniques have undesirable drawbacks. For example, none of these techniques allow two different transmitters with two different light sources to transmit simultaneously at the same wavelength and over the same communication path (e.g., optical fiber) as the receiver. Furthermore, the decision range for bit allocation for each stream is equal for each bit combination (photon count range corresponding to the detected bit combination) in these techniques. These symmetric decision ranges can present difficulties where different transmitters have slightly different power levels. Finally, for DDPDM, the decoding, demodulation and interference cancellation used are very complex and require a large amount of processing resources. For example, DDPDM demodulates and remodulates the same signal multiple times at the receiver. This increases the cost of the device and/or the decoding time.

Another technique, Optical Power Level Modulation (OPLM), described by co-pending application "Power Switching for Systems implementation Improvements for Optical Communications" filed on even date herewith, Amer Hassan and Edward giamo (attorney docket #1777.C02US1), the entire contents of which are incorporated herein by reference, allows multiple data streams to be transmitted across the same Optical communication path (e.g., the same fiber optic fiber) using different Optical sources that transmit at different Power levels at the same wavelength. The OPLM technique can be combined with various modulation schemes, such as simple modulation schemes in which the light source is turned on to transmit '1' and turned off to transmit '0', and more complex schemes such as AM, DDPDM, WDM, etc. In an OPLM system, each light source corresponding to each stream transmits at the same frequency and using different power levels on the same optical communication path. The receiver demultiplexes the data of each stream by applying one or more detection models to the photon counts observed at the receiver to determine the possible bit allocations for each stream.

Since each light source transmits at a different power level, the first light source activated individually, the second light source activated individually, or both activated together produce a different photon count that is detected at the receiver. A detection model in the form of a poisson distribution (or other detection model) may calculate the probability that each light source is activated based on these photon counts. This can be used to assign a specific value to each fraction. Thus, the streams may be demultiplexed using a detection model such as poisson distribution. For example, consider a system with two data streams and two light sources using a modulation scheme where light source activation is signaled in the bitstream as a '1' and light source deactivation is signaled in the bitstream as a '0'. In this system, the first model may indicate the probability that the first light source is on and the second light source is off — this corresponds to a bit combination of '1' and '0'. The second model may indicate the probability that the second light source is on and the first light source is off-this corresponds to a bit combination of '0' and '1'. The third model may indicate the probability that both light sources are activated, thus corresponding to a bit combination of '1' and '1'.

As a result, multiple data streams from multiple light sources may be transmitted over a single optical link, which may be two, three, four, or more times the bandwidth of a single channel over a single link. In addition, problems with other techniques can be avoided. For example, the decision range (e.g., poisson distribution) of each bit combination may be different from the decision ranges of other bit combinations. This allows for different power levels of the light source. Furthermore, unlike DDPDM, detection is very simple. Furthermore, since multiple light sources may be used, the system may support multiple users on the same communication path (e.g., the same fiber optic fiber).

Fig. 2 illustrates an OPLM method 200 performed by a receiver when demultiplexing data, according to some examples of the present disclosure. At operation 210, the receiver may determine a photon count of photons observed during a predetermined time period. The predetermined time period may be a period of time (e.g., a time slot) in which the transmitter and receiver are synchronized to transmit one or more bits of a bit stream (e.g., bits of a packet). At operation 215, the receiver determines the following first probability using the photon counts and the first detection model: a first light source corresponding to the first data stream is turned on at a first power level and a second light source corresponding to the second data stream is turned off. At operation 220, the receiver determines the following second probability using the photon counts and the second detection model: a first light source corresponding to the first data stream is turned off and a second light source corresponding to the second data stream is turned on at a second power level. At operation 225, the receiver determines the following third probability using the photon counts and a third detection model: the first light source is turned on at a first power level and the second light source is turned on at a second power level.

The detection model may be a poisson probability distribution, a machine learning model (e.g., neural network, regression model, clustering model), a decision tree, and so forth. For example, as described above, a first light source transmitting at a first power level alone, a second light source transmitting at a second power level alone, and both the first and second light sources transmitting together may produce a different average number of photons hitting the receiver. Thus, the probability that a particular combination of light sources results in those photons hitting the receiver can be modeled using a poisson distribution. These poisson distributions can be used as detection models.

At operation 230, the system may determine bit values for the first and second data streams based on the first, second, and third probabilities. For example, the model yielding the highest probability value may be selected and the bit values corresponding to the model may be assigned to the bitstream. As described above, the detection model may correspond to bit values of each data stream. In some examples, a '0' value for both bitstreams may be determined by comparing the photon count to a predetermined minimum threshold (e.g., prior to operations 215, 220, and 225 or during operation 230). In other examples, separate models may be used for the '0' values of the two bitstreams. The method 200 is for two light sources and two bit streams, but may be applied to additional light sources with additional bit streams. In other examples, a single model may output bit allocations.

The OPLM system solves the technical problem of efficient bandwidth utilization in optical communications without the drawbacks of the previous approaches discussed above. For example, the method 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 is interpreted by a detection model trained using any such interference. Furthermore, using different light sources with different power levels does not pose the same problem as AM and DDPDM, since the model may have unequal probability of decision ranges. In addition, these models may be adjusted over time to account for aging transmitter circuitry. In contrast to DDPDM, the present disclosure does not require re-modulation of the received signal by performing successive interference cancellation. Instead, the present disclosure utilizes the average photon count for a particular bit combination. Since the disclosed detection model is a relatively simple probability distribution, the decoding and demultiplexing process of the data stream can demultiplex the input using relatively simple, inexpensive and fast hardware and/or software, without requiring more complex hardware, such as that necessary in approaches using successive interference cancellation.

OPLM uses the training sequence to determine the detection model. For example, the average photon count for each combination is determined by instructing each light source to activate individually and to combine with each other light source. The average photon counts can be used to construct a detection model, such as a poisson probability model, or to train a supervised or unsupervised machine learning model. During operation, photon counts observed during a transmission time slot are submitted to each detection model, and the detection model with the highest probability may be selected. The bit allocation corresponding to the detection model may be allocated as bits for each particular stream.

Fig. 3 depicts a graph 300 of three poisson probability distributions corresponding to three different power levels, where the probability is the y-axis and the received photon count is the x-axis, according to some examples of the present disclosure. Fig. 3 depicts a first probability distribution 320 for light sources activated at a first power, a second probability distribution 325 for light sources activated at a second power (the second power being greater than the first power), and a third probability distribution 330 for light sources activated at a third power (the third power being greater than the second power) for a given wavelength on the same optical communication path. As the power level of the light source increases, the number of photons output by the light source increases. This increases the number of photons expected to strike the receiver, which shifts the probability distribution to the right on the graph of fig. 3 and flattens the curve (since more variation is expected as the photon count becomes higher).

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

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

The third probability distribution 330 models the probability that a particular photon count observed at the receiver is caused by the first and second light sources being activated (and thus more photons are expected to strike the receiver). Thus, the third probability distribution 330 models the probability of the corresponding bit value 1 of the first stream and the corresponding bit value 1 of the second stream, represented as (1, 1) in the figure. Multiple light sources activated simultaneously will produce more photons than each individual light source-hence the probability distribution moves even further to the right. Furthermore, the range also increases with increasing power to flatten the poisson distribution, since additional photons also introduce more variation possibilities.

Thus, the receiver can determine each bit of each bitstream following an observation of a poisson distribution based on the power levels of the light sources, with photon counts observed at the receiver, even if both light sources are active at the same time. The receiver can observe the number of photons striking the receiver and calculate the following probability: photon counts are generated by the first light source using the first probability distribution 320 alone, the second light source using the second probability distribution 325 alone, and the combination of the first and second light sources using the third probability distribution 330. Based on these probability calculations, a decision logic may be used to make a decision as to whether a bit of the first stream is '0' or '1' and whether a bit of the second stream is '0' or '1'. In one example, the decision logic may be to select the bit associated with the detection model corresponding to the highest probability given the observed photon count. For example, if the highest probability is that the photon count was produced by the first light source alone, a bit value of '1' may be assigned to the first stream and a bit value of '0' may be assigned to the second stream. Alternatively, if the highest probability is that the photon count was produced by the second light source alone, a bit value of '0' may be assigned to the first stream and a bit value of '1' may be assigned to the second stream. Finally, if the highest probability is that the photon count is generated by two light sources, then 1 can be assigned to both streams. This scheme may be repeated until the transmitter has finished transmitting data.

As an example, the photon counts 340 observed at the receiver may have a first probability 345 according to the first probability distribution 320 and a second probability 350 according to the second probability model and a third probability 355 of zero or near zero according to the third probability distribution 330. Since the first probability 345 is greater than the second probability 350 and the third probability 355, the probability distribution 320 can be selected — so the observed photon count is most likely caused by the first light source being activated at the first power level and the second light source being turned off. Since in this example '1' is represented by turning on the light source and 0 is represented by turning off the light source, the most likely bit allocation for the first stream is 1 and for the second stream 0.

FIG. 4 depicts a graph 400 of three detection models 420, 425, and 430 similar to the detection model in FIG. 3. Photon count ranges 415, 424, and 435 (represented by dashed boxes) may be photon count ranges where the probability generated by the detection model is not high or where the difference in probability between the two models may be low. For example, photon counts within the photon count range 424 yield probabilities of detection models 420 and 425 that are not very high and very similar to each other. In the case where OPLM techniques demultiplex the stream with the bit allocations associated with the model with the highest probability, this may involve the receiver selecting the bit allocation for which the receiver has a low confidence metric. For example, for photon counts to the left and right of the intersection of detection models 420 and 425 (e.g., in range 424), the probability that the bit stream allocation should be 10 and 01 is nearly equal.

Selecting an incorrect bit allocation rather than omitting the bits may not be optimal in all cases. This is because an Error Correction Code (ECC) may be applied to data such as: better performance can be obtained during decoding by failing the decoding rather than attempting to process incorrect data. Such as reed-solomon codes and bounded distance decoding. As a result, not performing bit allocation with a low confidence level in the receiver for the bit allocation may reduce the error rate after applying ECC compared to performing error bit allocation.

Methods, systems, optical devices, and machine-readable media for utilizing uncertainty ranges in power level modulation schemes along with ECC are disclosed in some examples. Photon counts within the uncertainty range are not demultiplexed and the data is later recovered by the ECC algorithm without retransmission. This improves performance by changing the demultiplexing behavior to take advantage of the characteristics in the ECC algorithm to reduce the error rate.

One or more ranges of uncertainty may exist, and their size and location may be determined by a variety of factors. In some examples, the uncertainty range may have a fixed size throughout the execution of the system. In other examples, the uncertainty range may periodically vary over time in response to changing characteristics (e.g., changes in ECC algorithms, changes in detection models), and so forth. The size of the uncertainty range may be determined based on system designers, system characteristics, and the like. In other examples, the size of the uncertainty range may be set based on characteristics of the detection model and/or characteristics of the ECC used. For example, the more lost bits an ECC tolerates before requiring retransmission, the larger the uncertainty range can be set. This allows more accurate decisions to be made because the range in which the decision is made has features that detect the greater probability difference between models.

In examples where ECC characteristics are used to determine the size of the uncertainty range, an example algorithm to set the size may be used to determine the size of the following uncertainty range: the uncertainty range is predicted to yield the number of lost bits that is closest to, but does not exceed, the maximum number of lost bits that the ECC tolerates without retransmission. For example, a maximum loss bitrate for a particular data unit size (e.g., the data unit on which ECC operates) may be determined. This may be calculated or may be indicated by the ECC used. For each size of the uncertainty range, the receiver can determine an expected amount of missing bits for a particular data unit size. The expected amount of missing bits for a given uncertainty range size may be provided by an administrator or designer and may be stored in a table or other variable. In other examples, the receiver may use a detection model to calculate the expected amount of missing bits for a given uncertainty range size. For example, the receiver may use historical data to determine which bit combinations are most likely, and then based on the probability distribution, may calculate the number of expected missing bits that are expected to be skipped for a given uncertainty range size. The receiver may then select the uncertainty range size: which has an expected amount of lost bits that is as close as possible to, but does not exceed, the maximum lost bit rate tolerance of the ECC algorithm.

In some examples, instead of or in addition to using ECC characteristics, the size and location of the uncertainty range may be based on characteristics of the detection model (alone or in combination with each other). For example, the size and location may be based on or be the overlapping range of adjacent detection ranges of one or more detection models. For example, in fig. 4, the detection ranges of detection models 420 and 425 overlap, and the detection ranges of detection models 425 and 430 overlap. In some examples, the uncertainty range may be determined based on a difference in probabilities of the first detection range and the second detection range for the next power level or the previous power level. For example, the uncertainty range may include a photon count, wherein the probability difference is less than a threshold probability difference. In these examples, the uncertainty range reflects: although the probability of one detection model may be greater than the probability of the second probability model, the difference is not statistically significant and thus the receiver may have no confidence in the resulting bit allocations in those ranges.

In an example of using both the ECC characteristic and the detection model characteristic, the size may be set by using a size calculated considering the ECC characteristic as a maximum size, and the characteristic of the detection model may be used as long as the size of the uncertainty range does not exceed the maximum size.

Another characteristic of the detection range that may be used to set the uncertainty range may include the maximum probability value returned by a particular detection model. For example, in FIG. 4, the probability that detection model 430 produces at its highest peak is much less than the probability that detection model 420 produces at its highest peak. This may reflect an increased uncertainty with respect to detecting these bit combinations. In these examples, a larger uncertainty range of the model may be used to increase the confidence of the receiver. For example, the receiver may calculate the total range of all models based on the ECC characteristics and then partition it into each model based on maximum probability, overlapping range, etc.

Yet another characteristic of the detection range that may be used may include range. For example, in FIG. 4, detection model 430 has a much larger range of higher probabilities (e.g., a range of photon counts that produces a statistically significant probability) than detection model 420. This may reflect that a larger set of photon counts may be generated by the transmitter sending the corresponding bit combination. In these examples, a larger uncertainty range may be used to increase the confidence of the receiver.

In some examples, the size of a given uncertainty range may be set by considering one or more of the factors described above. As one example, the receiver may determine the size based on one of the factors described above (e.g., overlapping range) and modify the size based on one or more other factors (e.g., maximum probability and range), but limit the size to a maximum value determined using ECC characteristics. In other examples, each factor may be used to independently generate a size and each factor may be weighted and summed to generate a final size of the uncertainty range. In some examples, the uncertainty range may be limited to a maximum value specified by the ECC characteristics. In other examples, one or more supervised learning algorithms may train models that may be used to set the size. Data representing characteristics for setting the size (e.g., ECC characteristics, model characteristics, etc.) may be labeled with the appropriate size and used to train the machine learning model. The model can then make a new prediction of the appropriate size of the uncertainty range using the new data. The subsequently observed error rate and retransmission rate can then be used to adjust the model. Additional information regarding the machine learning algorithm is discussed later with respect to the discussion of fig. 9.

In addition to the size of the uncertainty range, the location of the uncertainty range may be determined based on characteristics of the detection model. For example, the uncertainty range may be centered around a photon count where the probabilities of the at least two detection models are equal. In fig. 4, this corresponds to the intersection of detection models 420, 425, and 430.

The receiver may utilize one or more uncertainty ranges. In some examples, multiple uncertainty ranges may be utilized for each decision model. In some examples, a single uncertainty range may be used for each decision model. Each uncertainty range may be the same size as all other uncertainty ranges. In other examples, one or more uncertainty ranges may have a different size than other uncertainty ranges.

Each uncertainty range may have an independently determined size and/or location. In other examples, one or more uncertainty ranges may have a size and/or location determined based on the size and/or location of one or more other uncertainty ranges. For example, a maximum uncertainty range size (e.g., based on ECC characteristics) may be determined and a proportion of the total number determined based on the characteristics of each detection model may be used to determine the size of each uncertainty range corresponding to each detection model.

In other examples, the size of the detection model may be set initially and may be adjusted over time. For example, as more photon counts fall within the uncertainty range within a given data unit, the uncertainty range may be narrowed to prevent losing too many bits and prevent the ECC algorithm from exceeding the maximum allowable lost data for a particular data unit and avoiding retransmission.

Fig. 5 depicts a method 500 for demultiplexing multiple data streams transmitted over an optical communication path according to an OPLM method using an uncertainty range, according to some examples of the present disclosure. At operation 505, the receiver begins receiving data and demultiplexing the data stream. As previously described, each stream may be transmitted by one or more different optical sources that span the same optical communication path (e.g., the same fiber optic fiber) and transmit at the same wavelength and at different power levels.

One or more bits of each stream may be transmitted during a particular time period (e.g., a time slot). At operation 510, a photon count of photons detected at a receiver may be determined, the photons being generated by selectively activating a light source that transmits one or more data streams according to a modulation scheme.

At operation 515, the photon count is examined to determine if the photon count is within one or more uncertainty ranges. If the photon count is within the defined uncertainty range, then at operation 525 the receiver does not bit allocate a bit position corresponding to the current time slot of any data stream. Thus, the receiver leaves the data location empty. The demultiplexed subsequent bits may be inserted into the bitstream where the bits to be demultiplexed will be placed, or in other examples, the bits may be represented in the bitstream by some representation of the data (e.g., NULL), or otherwise indicated or marked as unknown.

If the photon count is not within the uncertainty range at operation 515, a bit value may be assigned to the stream using a detection model at operation 520. For example, by performing operations 215-230 of fig. 2.

In some examples, the ECC algorithm operates on packets, segments, or other units of data of a bitstream having a determined size. In these examples, at operation 530 the receiver determines whether additional data, such as a codeword, packet, or other data unit, for the current data unit needs to be received before performing an ECC operation to correct or replace any data. This decision may take into account any missing bits when determining whether all data of a data unit has been received. If the determination is yes, operation returns to operation 510 to receive additional data. If the determination is negative, then at operation 535, the received data of the data stream in the current data unit may have any missing or incorrect bit allocations corrected by the ECC process. Operation continues to operation 510 for the next data unit and the process is repeated until the transmitter no longer transmits data or the receiver is no longer configured to receive data.

Fig. 6 depicts a method 600 for demultiplexing a plurality of data streams transmitted over an optical communication path according to an OPLM scheme with an uncertainty range, in accordance with some examples of the present disclosure. Fig. 6 is an example of fig. 5. At operation 610, the receiver may generate a plurality of photon counts corresponding to a respective plurality of bit positions of the first and second data streams. The photons may be generated by one or more light sources in one or more transmitters that transmit one or more data streams. The photon count may be determined by a photon detector for a particular period of time, wherein one or more bits of the plurality of bit streams are transmitted by one or more light sources that are selectively activated according to a modulation scheme to transmit one or more data streams. That is, the photon count may be the result of the transmission of the value of a particular bit position in the first and second bit streams. The multiplexing scheme may be an OPLM scheme used in conjunction with WDM, AM or other modulation schemes.

At operation 615, the receiver may determine whether the one or more photon counts from operation 610 are within one or more defined ranges of uncertainty. In some examples, each uncertainty range may be stored as a data structure having a first photon count and a second photon count. If the photon count determined at operation 610 is greater than the first photon count and less than the second photon count, the photon count is within a defined uncertainty range.

At operation 620, the receiver may determine bit value assignments in the first and second data streams. For example, the receiver may submit photon counts received for the bit positions to one or more detection models. Such as poisson probability. The highest probability returned by the detection model can be used to assign the value to the first and second streams at that bit position. This may be done for all bit positions except those having corresponding photon counts within one or more uncertainty ranges. A bit position having a corresponding photon count within one or more uncertainty ranges may be unassigned, skipped (e.g., the next photon count may be used for the bit position), assigned a value indicating that the value is unknown, and so on. In some examples, operations 610, 615, and 620 may be performed consecutively for each received photon count in each bit position, and the results in operation 620 may be saved in a buffer or other memory.

At operation 625, the receiver may generate values corresponding to bit positions having respective photon counts that are within an uncertainty range of the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the first and second data streams. For example, the bit values assigned by the receiver for each bitstream (e.g., in the case where the photon count is not in the uncertainty range) may be used by an ECC algorithm to determine the bit value assignments for the bit positions of the photon count in the uncertainty range. In some examples, the receiver uses an ECC algorithm for a particular data unit. E.g., packets, codewords, etc. The receiver may thus determine the unknown data using other data in the particular data unit according to the ECC scheme. For example, operation 610 and 620 may be repeated until enough bits are received to apply the ECC algorithm.

In some examples, the size of the uncertainty range may be dynamically adjusted based on the number of currently unknown bits in the current data unit. For example, during reception of a particular data unit, if there are no unknown data bits, the uncertainty range may be greater than if 50% of the maximum number of unknown bits could be corrected by the ECC algorithm. This allows the receiver to reduce the number of unknown bits when the ECC can determine the missing data, but reduce the number of unknown bits when the ECC reaches its capacity to determine the missing data.

Example transmitter and receiver

Turning now to fig. 7, a schematic diagram of a system 700 for increasing fiber bandwidth is shown, according to some examples of the present disclosure. The first transmitter 705 may include a processing circuit 710 for transforming a data stream to prepare it for transmission over a fiber optic fiber. Example operations include applying ECC, encryption, modulation operations, and the like. The transformed bits are used as a signal for the controller 720 to instruct the light source 715 to be selectively turned on or off to represent the transformed bitstream according to a modulation scheme. For example, the light source 715 is turned on in response to a '1' in the bitstream and turned off in response to a '0' in the bitstream. The controller 720 may set the power of the light sources 715 based on the power levels indicated in the allocated power level allocation scheme and based on the current stage of the power level allocation scheme. A power level allocation scheme is any formula or plan for coordinating different power levels across two or more transmitters. For example, the transmitters may alternate for which transmitter transmits at a particular power level. The power level allocation scheme may be divided into one or more phases. A phase specifies a unit of a power level allocation scheme where each transmitter served by the scheme is allocated a power level for a defined duration or until a defined event occurs. The duration may be time-based, data length-based (e.g., a defined number of time slots), and so on. In some examples, the detection model used by the receiver may be specific to the current stage of the power level allocation scheme. The power level allocation scheme may be described by one or more data structures. Such as a formula, table, chart, or other indicator. In case a modulation scheme of varying power is used, the power level may be an average power level over a specific time slot. An indication of which power level allocation scheme is active and which phase is active may be stored in power level allocation scheme storage unit 765.

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

Transmitters 705 and 750 may be transceivers in that they may have associated receivers, such as receivers 725, 758. The power level allocation scheme may be allocated by the receiver 760 (which may also be a transceiver), by a protocol with the second transmitter 750, etc. The allocated power level allocation scheme may be one of a library of predetermined allocation schemes stored in the power level allocation scheme storage unit 765. In some examples, the assigned power level allocation scheme may be based on a scheme in the allocation scheme library, but may be modified for one or more of the particular transmitters and receivers involved in the communication session. In other examples, the assigned power level assignment scheme may be customized for a particular communication session. The power level allocation scheme storage unit 765 may store the particular allocation scheme, the selection of the particular allocation scheme, any customizations in use, the current stage, and so forth.

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

The second transmitter 750 may include similar components as the first transmitter 705. Such as controller 754, light source 756, processing circuit 752, receiver 758, power level assignment scheme storage unit 770, and so forth. In some examples, one or more components may be shared between the first transmitter 705 and the second transmitter 750 if the first transmitter 705 and the second transmitter 750 are in the same device. Further, the first transmitter 705 and the second transmitter 750 may transmit multiple data streams over fiber optic cables at multiple different wavelengths to the receiver 760. Thus, the first transmitter 705 and the second transmitter 750 may utilize both techniques of the present invention to simultaneously transmit multiple data streams on the same fiber by varying the power level, but also using multiple data streams of different wavelengths.

Fig. 8 illustrates a schematic diagram 800 of a receiver in accordance with some examples of the disclosure. For example, receiver 800 may be an example receiver that is part of transceiver 760. Receiver 800 may include a photodetector 805 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 time slot). The photon counts are communicated to the controller 810. Controller 810 can determine whether the photon count falls within one of the uncertainty ranges stored in uncertainty range data store 865. If the photon count falls within the uncertainty range, the controller may skip demultiplexing the data for the current time period. In some examples, the corresponding bit position of the bitstream may be occupied by the demultiplexed bit in the next time period. In other examples, one or more indications may be inserted into the bitstream to indicate that the bit position is unknown.

If the photon count is not within one of the uncertainty ranges, the controller 810 utilizes one or more detection models stored in the model storage unit 835 to determine individual bits in the bitstream. For example, the model may include one or more poisson distributions, which may return probabilities that photon counts correspond to one or more particular bit combinations for each stream. The particular detection model to be used may be selected based on the current phase of the current power level allocation scheme. The current stage and/or the selected power level allocation scheme may be stored in the power level allocation scheme storage unit 840.

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

In the second phase, stream 1 is a low power light source and stream 2 is a high power light source. The photon counts received during the period of time during which the second bit is transmitted are submitted to a second set of detection models comprising models trained to detect that the first light source is activated at low power (the second light source is not activated), that the second light source is activated at high power (the first light source is not activated), and that both transmit '1's at their respective allocated powers. The detection model that returns the highest score (e.g., detection probability) is used to assign values to the bitstream. For example, if a detection model trained to detect a first light source activated at low power (the second device is not activated) returns the highest probability, '1' is assigned to the bit stream corresponding to the first light source and '0' is assigned to the bit stream corresponding to the second light source.

Each bit stream determined by the controller is then passed to processing circuits 815 and 820, respectively, which decode the bit stream and perform various operations (e.g., operations that are the inverse of the operations performed by processing circuits 710 and 752 of the transmitter in fig. 7) and output the bit stream to a higher level layer (e.g., a physical layer, a transport layer, or other network layer). Example inverse operations may include: ECC is used to detect and correct errors, including correcting lost bits. In some examples, feedback from the demultiplexing at controller 810 and/or ECC operations at processing circuits 815 and 820 may be provided to range determiner 855. The range determiner 855 may use the feedback information to adjust the range of uncertainty.

The range determiner 855 may set one or more uncertainty ranges stored in the uncertainty range data store 865 based on one or more of: ECC characteristics, detection model characteristics, etc.

Calibration component 825 can initially train the model and can include model training component 830, which can instruct a transmitter (via transmitter 850) to transmit various test data sequences. The photon counts observed by the photodetector 805 can be used to construct a model. For example, by creating a model using the average photon counts, or by submitting the photon counts to a training module, such as the training component 910 of FIG. 9.

In some examples, the controller 810 may also select and control a power level allocation scheme. For example, the scheme may be selected and/or customized by communication with the transmitter. This may occur prior to and/or periodically during a communication session with the transmitter. In other examples, the controller 810 receives a message indicating which power level allocation scheme is active in the event that the transmitter agrees to the power level allocation scheme. The controller may determine the current phase by messaging to and/or from one or more transmitters (e.g., for QoS-based methods or modifications), based on elapsed time from the last phase, etc.

As described above, the controller 810 determines the stage of the power level allocation scheme (which transmitter's light source is at what power) and uses this stage to select the appropriate detection model.

Fig. 9 illustrates an example machine learning component 900 in accordance with some examples of the present disclosure. The machine learning component 900 can be utilized to determine a detection model, a power level allocation scheme, and an uncertainty range. The machine learning component 900 can be implemented in whole or in part by the model training component 830 and/or the range determiner 855. The machine learning component 900 can include a training component 910 and a prediction component 920. In some examples, training component 910 may be implemented by a device different from prediction component 920. In these examples, model 980 may be created on a first machine and then sent to a second machine.

The machine learning component 900 uses a training component 910 and a prediction component 920. The training component 910 inputs the feature data 930 into the feature determination component 950. The characteristic data 930 may be photon counts, phases, etc. In examples where the model is used to determine the size and location of one or more uncertainty ranges, the feature data 930 may be ECC characteristics, detection model characteristics, and so forth. In examples where the model is used to determine a detection model or power level allocation scheme, the characteristic data may be explicitly labeled with the bit allocation for each stream, the light source currently transmitting, the power level at which the light source currently transmitting transmits, and so on.

The feature determination component 950 determines one or more features of the feature vector 960 from the feature data 930. In an example where the model is a detection model, the features of the feature vector 960 are a set of information inputs and are the information determined to predict the bit allocation for each stream. In the example where the model determines the uncertainty range, the features of the feature vector 960 are a set of information inputs and are the information determined to predict the uncertainty range. The features selected for inclusion in the feature vector 960 may be all of the feature data 930, or in some examples, may be a subset of all of the feature data 930. In examples where the features selected for the feature vector 960 are a subset of the feature data 930, a predetermined list of which feature data 930 to include in the feature vector may be utilized. The feature vectors 960 may be utilized (along with any applicable labels) by the machine learning algorithm 970 to generate one or more detection models 980.

In the prediction component 920, current feature data 990 (e.g., photon counts; power level allocation scheme information; or ECC characteristics and/or detection model characteristics) may be input to a feature determination component 995. The feature determination component 995 can determine the same set of features as the feature determination component 950 or a different set of features. In some examples, feature determining components 950 and 995 are the same component or different instances of the same component. The feature determination component 995 produces a feature vector 997 that is input into the model 980 to determine the bit allocation, phase, power level allocation scheme, uncertainty range, etc. 999.

The training component 910 can operate in an offline manner to train the model 980. However, the prediction component 920 can be designed to operate in an online manner. It should be noted that the model 980 may be updated periodically via additional training and/or user feedback. For example, the updated features may be used to retrain or update the model 980.

The machine learning algorithm 970 may be selected from a number of different potential supervised or unsupervised machine learning algorithms. Examples of supervised learning algorithms include artificial neural networks, convolutional neural networks, bayesian networks, instance-based learning, support vector machines, decision trees (e.g., iterative dichotomy 3, C4.5, classification and regression trees (CART), chi-square automatic interaction detectors (CHAID), etc.), random forests, linear classifiers, quadratic classifiers, k-nearest neighbors, linear regression, logistic regression, support vector machines, perceptrons, and hidden markov models. Examples of unsupervised learning algorithms include expectation maximization algorithms, vector quantization, and information bottleneck methods. The unsupervised model may not have a training component 910. In some examples, detection model 980 may determine the bits for each stream based on the detected photons. In other examples, detection model 980 may generate a score or probability for each stream that a particular bit is transmitted. In some examples, the model 990 may generate the size of one or more uncertainty ranges (all individual sizes, or the size of a particular detection model), the location of one or more uncertainty ranges, or both (e.g., a particular range of photons).

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

The modulation scheme used herein is relatively simple (on or off to denote '1' or '0'). In other examples, different modulation schemes may be used. For example, if the optical source and receiver have related functions, WDM, phase shift modulation, amplitude modulation, and other advanced forms of modulation may be utilized in addition to the techniques described herein. For example, the multiple bit streams may be divided into multiple wavelengths-where each wavelength may have multiple data streams transmitted using the methods disclosed herein. Similarly, for power modulation, the power allocation scheme of the present invention may allocate multiple power levels to each transmitter — where each power level is a particular bit combination. Thus, the first transmitter may be allocated power levels 1, 2, and 3 (indicating '01', '10', and '11' bits, respectively), and the second transmitter may be allocated power levels 4, 5, and 6 (indicating '01', '10', and '11' bits, respectively). In this example, the system may assign the power levels such that the average photon counts for each combination of power levels are sufficiently different such that the probability distributions are sufficiently far apart such that the error rate is low.

Fig. 10 depicts a block diagram of an example machine 1000 on which any one or more of the techniques (e.g., methods) discussed herein may be performed. In alternative embodiments, the machine 1000 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, in a server-client network environment, the machine 1000 may operate as a server machine, a client machine, or both. In an example, the machine 1000 may operate as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. The machine 1000 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 network appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. The machine 1000 may implement the transmitters and/or receivers disclosed herein. Further, the machine 1000 may include a transmitter and/or receiver as disclosed herein. The machine 1000 may implement any of the methods disclosed herein. Further, while only a single machine is depicted, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), other computer cluster configurations.

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

Thus, it should be understood that the term "component" includes a tangible entity, either physically constructed, specifically configured (e.g., hardwired) or temporarily (e.g., temporarily) configured (e.g., programmed) to perform in a particular manner, or to perform some or all of any of the operations described herein. Considering the example in which components are temporarily configured, each of these components need not be instantiated at any one time. For example, where the components include a general purpose hardware processor configured using software, the general purpose hardware processor may be configured as various different components at different times. The software may configure the hardware processor accordingly, e.g., to constitute a particular component at one time and to constitute a different component at a different time.

The machine (e.g., computer system) 1000 may include a hardware processor 1002 (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a hardware processor core, or any combination thereof), a main memory 1004, and a static memory 1006, some or all of which may communicate with each other via an interconnect (e.g., bus) 1008. The machine 1000 may also include a display unit 1010, an alphanumeric input device 1012 (e.g., a keyboard), and a User Interface (UI) navigation device 1014 (e.g., a mouse). In an example, the display unit 1010, the input device 1012, and the UI navigation device 1014 may be a touch screen display. The machine 1000 may also include a storage device (e.g., drive unit) 1016, a signal generation device 1018 (e.g., a speaker), a network interface device 1020, and one or more sensors 1021, such as a Global Positioning System (GPS) sensor, compass, accelerometer, or other sensor. The machine 1000 may include an output controller 1028 (such as a serial (e.g., Universal Serial Bus (USB), parallel, or other wired or wireless (e.g., Infrared (IR), Near Field Communication (NFC), etc.) connection) to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.).

The storage device 1016 may include a machine-readable medium 1022 on which is stored one or more sets of data structures or instructions 1024 (e.g., software) embodying or used by any one or more of the techniques or functions described herein. The instructions 1024 may also reside, completely or at least partially, within the main memory 1004, within the static memory 1006, or within the hardware processor 1002 during execution thereof by the machine 1000. In one example, one or any combination of the hardware processor 1002, the main memory 1004, the static memory 1006, or the storage device 1016 may constitute machine-readable media.

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

The term "machine-readable medium" may include any medium that: may be capable of storing, encoding or carrying instructions for execution by the machine 1000 and causing the machine 1000 to perform any one or more of the techniques of this disclosure or may be capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting examples of machine readable media may include solid-state memory and optical and magnetic media. Specific examples of the machine-readable medium may include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)), as well as flash memory devices, magnetic disks (such as internal hard disks and removable disks), magneto-optical disks, Random Access Memory (RAM), Solid State Disks (SSD), and CD-ROM and DVD-ROM disks.

The instructions 1024 may also be transmitted or received over a communication network 1026 via the network interface device 1020 using a transmission medium. Machine 1000 may communicate with one or more other machines using any of a number of transmission protocols (e.g., frame relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a Local Area Network (LAN), a Wide Area Network (WAN), a packet data network (e.g., the internet), a mobile telephone network (e.g., a cellular network), a Plain Old Telephone (POTS) network, and a wireless data network (e.g., referred to as a wireless data network)Of the Institute of Electrical and Electronics Engineers (IEEE)802.11 family of standards, known asIEEE 802.16 family of standards), IEEE 802.15.4 family of standards, Long Term Evolution (LTE) family of standards, Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, and so forth. In one example, the network interface device 1020 may include one or more physical jacks (e.g., ethernet, coaxial, or telephone jacks) or one or more antennas connected to the communication network 1026. In one example, the network interface device 1020 may include multiple antennas such thatWireless communication is performed using at least one of Single Input Multiple Output (SIMO), Multiple Input Multiple Output (MIMO), or Multiple Input Single Output (MISO) techniques. In some examples, the network interface device 1020 may wirelessly communicate using multi-user MIMO techniques.

Other notes and examples

Example 1 is a method for receiving multiplexed data over an optical communication path, the method comprising: using a hardware processor at the receiver: generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources; determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models; in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

In example 2, the subject matter of example 1 includes: determining the uncertainty range based on a defined capability of the ECC.

In example 3, the subject matter of example 2, wherein the defined capability of the ECC comprises a number of missing bits that an ECC can correct without triggering a retransmission request, and wherein the more missing bits that the ECC can correct, the larger the size of the uncertainty range.

In example 4, the subject matter of examples 1-3 includes: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

In example 5, the subject matter of example 4 includes: wherein determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the plurality of detection models and a second detection model of the plurality of detection models.

In example 6, the subject matter of examples 4-5 includes: wherein determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

In example 7, the subject matter of examples 1-6 includes: adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

Example 8 is a computing device to receive multiplexed data over an optical communication path, the device comprising: a hardware processor configured to perform operations comprising: generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources; determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models; in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

In example 9, the subject matter of example 8 includes: wherein the operations further comprise: determining the uncertainty range based on a defined capability of the ECC.

In example 10, the subject matter of example 9 includes, wherein the defined capability of the ECC includes a number of missing bits that the ECC can correct without triggering a retransmission request, and wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 11, the subject matter of examples 8-10 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

In example 12, the subject matter of example 11 includes: wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the plurality of detection models and a second detection model of the plurality of detection models.

In example 13, the subject matter of examples 11-12 includes: wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

In example 14, the subject matter of examples 8-13 includes: wherein the operations comprise: adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

Example 15 is a machine-readable medium storing instructions for receiving multiplexed data over an optical communication path, which when executed by a machine, cause the machine to perform operations comprising: generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams transmitted by selective activation of one or more light sources; determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models; in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

In example 16, the subject matter of example 15 includes: wherein the operations further comprise: determining the uncertainty range based on a defined capability of the ECC.

In example 17, the subject matter of example 16 includes, wherein the defined capability of the ECC includes a number of missing bits that the ECC can correct without triggering a retransmission request, and wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 18, the subject matter of examples 15-17 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

In example 19, the subject matter of example 18 includes: wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the plurality of detection models and a second detection model of the plurality of detection models.

In example 20, the subject matter of examples 18-19 includes: wherein the operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

In example 21, the subject matter of examples 15-20 includes: wherein the operations comprise: adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

Example 22 is an apparatus for receiving multiplexed data over an optical communication path, the apparatus comprising: means for generating a plurality of photon counts corresponding to a respective plurality of bit positions of first and second data streams, the first and second data streams transmitted by selective activation of one or more light sources; means for determining that a first photon count of the plurality of photon counts corresponding to a first bit position is within a defined uncertainty range of a plurality of detection models; means for determining a bit value assignment for each bit position of the plurality of bit positions other than the first bit position by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models in response to determining that the first photon count is within the defined range of uncertainty; and means for generating values corresponding to the first bit positions for the first and second data streams using an Error Correction Code (ECC) process applied to the determined bit value assignments for the plurality of bit positions of the first and second data streams.

In example 23, the subject matter of example 22 includes: means for determining the uncertainty range based on a defined capability of the ECC.

In example 24, the subject matter of example 23 includes, wherein the defined capability of the ECC includes a number of missing bits that the ECC can correct without triggering a retransmission request, and wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 25, the subject matter of examples 22-24 includes: means for determining the uncertainty range based on characteristics of at least one of the plurality of detection models.

In example 26, the subject matter of example 25 includes: wherein the means for determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: means for determining the uncertainty range based on determining, from a first detection model of the plurality of detection models and a second detection model of the plurality of detection models, a plurality of photon counts that produce a probability difference greater than a threshold probability difference.

In example 27, the subject matter of examples 25-26 includes: wherein the means for determining the uncertainty range based on characteristics of at least one of the plurality of detection models comprises: means for determining the uncertainty range based on one of: a highest possible probability of one of the plurality of detection models, or a range of the one of the plurality of detection models.

In example 28, the subject matter of examples 22-27 includes: means for adjusting a size of the uncertainty range based on a ratio of instances of photon counts within the defined uncertainty range.

Example 29 is a method for receiving data over an optical communication path, the method comprising: using a hardware processor at the receiver: determining that a photon count of photons generated by a light source at a transmitter is within a defined uncertainty range; in response to determining that the photon count is within the defined range of uncertainty, refraining from assigning any bits to first bit positions in the first and second data streams using the photon count during a demultiplexing operation; and determining a bit allocation for a first bit position of the first and second data streams using an Error Correction Code (ECC) applied to other bits of the first and second data streams.

In example 30, the subject matter of example 29, comprising: determining the uncertainty range based on a defined capability of the ECC.

In example 31, the subject matter of example 30 includes, wherein the defined capability of the ECC comprises a number of missing bits that the ECC can correct without triggering a retransmission request.

In example 32, the subject matter of example 31 includes, wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 33, the subject matter of examples 29-32 includes: determining the uncertainty range based on characteristics of one or more detection models used to demultiplex the photon counts into bit allocations for the first and second data streams.

In example 34, the subject matter of example 33 includes: wherein determining the uncertainty range based on the characteristics of the one or more detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the one or more detection models and a second detection model of the one or more detection models.

In example 35, the subject matter of examples 33-34 includes: wherein the characteristic of the one or more detection models comprises one of: the highest possible probability of the one or more detection models, or a range of the one or more detection models.

In example 36, the subject matter of examples 29-35 includes: determining the uncertainty range based on characteristics of one or more detection models and based on a defined capability of the ECC.

In example 37, the subject matter of examples 29-36 includes: wherein the size of the uncertainty range is fixed.

In example 38, the subject matter of examples 29-37 includes: wherein the size of the uncertainty range is dynamically updated in response to a change in one of a capability of the ECC or a characteristic of one or more detection models.

Example 39 is an apparatus for receiving data over an optical communication path, the apparatus comprising: a hardware processor; a memory storing instructions that, when executed by the processor, cause the apparatus to perform operations comprising: determining that a photon count of photons generated by a light source at a transmitter is within a defined uncertainty range; in response to determining that the photon count is within the defined range of uncertainty, refraining from assigning any bits to first bit positions in the first and second data streams using the photon count during a demultiplexing operation; and determining a bit allocation for a first bit position of the first and second data streams using an Error Correction Code (ECC) applied to other bits of the first and second data streams.

In example 40, the subject matter of example 39 includes: wherein the operations further comprise: determining the uncertainty range based on a defined capability of the ECC.

In example 41, the subject matter of example 40 includes, wherein the defined capability of the ECC comprises a number of missing bits that the ECC can correct without triggering a retransmission request.

In example 42, the subject matter of example 41 includes wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 43, the subject matter of examples 39-42 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of one or more detection models used to demultiplex the photon counts into bit allocations for the first and second data streams.

In example 44, the subject matter of example 43 includes: wherein the operation of determining the uncertainty range based on characteristics of the one or more detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the one or more detection models and a second detection model of the one or more detection models.

In example 45, the subject matter of examples 43-44 includes: wherein the characteristic of the one or more detection models comprises one of: the highest possible probability of the one or more detection models, or a range of the one or more detection models.

In example 46, the subject matter of examples 39-45 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of one or more detection models and based on a defined capability of the ECC.

In example 47, the subject matter of examples 39-46 includes: wherein the size of the uncertainty range is fixed.

In example 48, the subject matter of examples 39-47 includes: wherein the size of the uncertainty range is dynamically updated in response to a change in one of a capability of the ECC or a characteristic of one or more detection models.

Example 49 is a machine-readable medium storing instructions for receiving data over an optical communication path, which when executed by a machine, cause the machine to perform operations comprising: determining that a photon count of photons generated by a light source at a transmitter is within a defined uncertainty range; in response to determining that the photon count is within the defined range of uncertainty, refraining from assigning any bits to first bit positions in the first and second data streams using the photon count during a demultiplexing operation; and determining a bit allocation for a first bit position of the first and second data streams using an Error Correction Code (ECC) applied to other bits of the first and second data streams.

In example 50, the subject matter of example 49 includes: wherein the operations further comprise: determining the uncertainty range based on a defined capability of the ECC.

In example 51, the subject matter of example 50 includes, wherein the defined capability of the ECC comprises a number of missing bits that the ECC can correct without triggering a retransmission request.

In example 52, the subject matter of example 51 includes, wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 53, the subject matter of examples 49-52 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of one or more detection models used to demultiplex the photon counts into bit allocations for the first and second data streams.

In example 54, the subject matter of example 53 includes, wherein the operation of determining the uncertainty range based on characteristics of the one or more detection models comprises: determining the uncertainty range based on determining a plurality of photon counts that yield a probability difference greater than a threshold probability difference according to a first detection model of the one or more detection models and a second detection model of the one or more detection models.

In example 55, the subject matter of examples 53-54 includes: wherein the characteristic of the one or more detection models comprises one of: the highest possible probability of the one or more detection models, or a range of the one or more detection models.

In example 56, the subject matter of examples 49-55 includes: wherein the operations further comprise: determining the uncertainty range based on characteristics of one or more detection models and based on a defined capability of the ECC.

In example 57, the subject matter of examples 49-56 includes: wherein the size of the uncertainty range is fixed.

In example 58, the subject matter of examples 49-57 includes: wherein the size of the uncertainty range is dynamically updated in response to a change in one of a capability of the ECC or a characteristic of one or more detection models.

Example 59 is an apparatus for receiving data over an optical communication path, the method comprising: means for determining that a photon count of photons generated by a light source at a transmitter is within a defined uncertainty range; means for avoiding allocating any bits to first bit positions in the first and second data streams using the photon count during a demultiplexing operation in response to determining that the photon count is within the defined range of uncertainty; and means for determining a bit allocation for a first bit position of the first and second data streams using an Error Correction Code (ECC) applied to other bits of the first and second data streams.

In example 60, the subject matter of example 59 includes: means for determining the uncertainty range based on a defined capability of the ECC.

In example 61, the subject matter of example 60 includes, wherein the defined capability of the ECC comprises a number of missing bits that the ECC can correct without triggering a retransmission request.

In example 62, the subject matter of example 61 includes, wherein the more missing bits the ECC can correct, the larger the size of the uncertainty range.

In example 63, the subject matter of examples 59-62 includes: means for determining the uncertainty range based on characteristics of one or more detection models used to demultiplex the photon counts into bit allocations for the first and second data streams.

In example 64, the subject matter of example 63 includes: wherein the means for determining the uncertainty range based on characteristics of the one or more detection models comprises: means for determining the uncertainty range based on determining, from a first detection model of the one or more detection models and a second detection model of the one or more detection models, a plurality of photon counts that produce a probability difference greater than a threshold probability difference.

In example 65, the subject matter of examples 63-64 includes: wherein the characteristic of the one or more detection models comprises one of: the highest possible probability of the one or more detection models, or a range of the one or more detection models.

In example 66, the subject matter of examples 59-65 includes: means for determining the uncertainty range based on characteristics of one or more detection models and based on a defined capability of the ECC.

In example 67, the subject matter of examples 59-66 includes: wherein the size of the uncertainty range is fixed.

In example 68, the subject matter of examples 59-67 includes: wherein the size of the uncertainty range is dynamically updated in response to a change in one of a capability of the ECC or a characteristic of one or more detection models.

Example 69 is at least one machine readable medium comprising instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations to implement any of examples 1-68.

Example 70 is an apparatus comprising means for implementing any of examples 1-68.

Example 71 is a system to implement any of examples 1-68.

Example 72 is a method for implementing any of examples 1-68.

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据存储装置中的预测性数据预取

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!