Error control coding with dynamic range
OPLM with multiple light sources at different power levels and detection models addresses bandwidth inefficiencies in existing systems, enhancing decoding efficiency and reducing complexity in optical communication.
Patent Information
- Application Number
- CN202080028701.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-18
- Filing Date
- 2020-03-24
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2040-03-24
AI Technical Summary
The existing optical communication technologies have inefficiency and complexity problems in utilizing optical fiber bandwidth, especially in optical communication paths using different light sources, making it difficult to effectively decode and demultiplex multiple data streams.
Optical power level modulation (OPLM) technology is used to send multiple data streams on the same optical communication path using light sources of different power levels, and train the detection model using Poisson distribution and machine learning models to determine the probability distribution of each bit, thereby demultiplexing. Combined with error correction code (ECC) to process data within the uncertainty range to avoid incorrect bit allocation.
It improves the bandwidth utilization of fiber optic communication, simplifies the decoding process, reduces equipment cost and decoding time, and supports data transmission of multiple users on the same communication path.
Smart Images

Figure CN113692578B_ABST
Abstract
Description
Technical Field
[0001] The present application generally relates to the field of optical communications and, more particularly, to methods, computing devices, and machine-readable media for receiving multiplexed data over an optical communication path. Background Art
[0002] Optical communications, such as fiber optic communications, utilize a light source at one end to transmit one or more data streams by modulating the data stream into an optical signal. These optical signals travel through a medium such as air or a glass fiber (optical fiber) having an internal reflective surface to a receiver that employs a photodetector module to detect the optical signal. The detected light is then demodulated back into one or more data streams.
[0003] To efficiently utilize the available optical bandwidth, multiple different channels can be created by assigning different optical wavelengths to each channel. Different data streams can be placed on each channel and simultaneously transmitted 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 optical fiber, and each channel bandwidth can be 40 gigabits per second, resulting in a transmission of nearly 3.1 terabits per second on a single optical fiber (excluding losses due to overhead).
[0004] Due to this large bandwidth, fiber optic systems are becoming increasingly popular among communication network providers, cloud service providers, and other entities that require very fast transmission of large amounts of data. In addition to carrying large amounts of data, fiber optic also offers other advantages, such as: less attenuation than cables (which provides the benefit of longer distance transmission of communication cables using less network infrastructure); no electromagnetic interference; and various other benefits. Summary of the Invention
[0005] In one aspect of the present application, a method for receiving multiplexed data over an optical communication path, the method comprising: using a hardware processor at a receiver: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted at different power levels at the same wavelength over the optical communication path by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit value assignments for each bit position among the plurality of bit positions other than the first bit position by assigning values in the first and second data streams using the plurality of detection models from each corresponding photon count; and generating a value corresponding to the first bit position 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. The method further comprises determining the uncertainty range based on a defined characteristic of the ECC. The defined characteristic of the ECC includes the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the uncertainty range. The method further comprises determining the uncertainty range based on a characteristic of at least one of the plurality of detection models. Determining the uncertainty range based on a characteristic of at least one of the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold of a probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models. Determining the uncertainty range based on a characteristic of at least one of the plurality of detection models includes determining the uncertainty range based on one of: the highest possible probability of one of the plurality of detection models, or the range of one of the plurality of detection models. The method further comprises adjusting the size of the uncertainty range based on a ratio of instances in which the photon counts are within the defined uncertainty range.
[0006] In another aspect of the present application, a computing device for receiving multiplexed data over an optical communication path, the device comprising: a hardware processor configured to perform operations including: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted at different power levels at the same wavelength over the optical communication path by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 of each corresponding photon count, by using the plurality of detection models to assign values in the first and second data streams, determining bit value assignments for each bit position among the plurality of bit positions other than the first bit position; and 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, generating a value corresponding to the first bit position for the first and second data streams. The operations further include determining the uncertainty range based on defined characteristics of the ECC. The defined characteristics of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct; the larger the size of the uncertainty range. The operations further include determining the uncertainty range based on characteristics of at least one of the plurality of detection models. The operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold of a probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models. The operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on one of: the highest possible probability of one of the plurality of detection models; or the range of one of the plurality of detection models. The operations further include adjusting the size of the uncertainty range based on a ratio of instances in which the photon count is within the defined uncertainty range.
[0007] In another aspect of the present application, a machine-readable medium stores instructions for receiving multiplexed data via an optical communication path, which when executed by a machine cause the machine to perform operations including: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted at the same wavelength at different power levels via selective activation of one or more light sources on the optical communication path; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit value assignments for each bit position among the plurality of bit positions other than the first bit position by assigning values in the first and second data streams using the plurality of detection models from each corresponding photon count; and generating a value corresponding to the first bit position 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. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] In the drawings, like reference numerals may describe like components in different views, and the drawings are not necessarily drawn to scale. Like numbers with different letter suffixes may represent different instances of the same component. The drawings generally illustrate, by way of example and not limitation, various embodiments discussed in this document.
[0009] Figure 1 Components of a simplified optical communication system according to some examples of the present disclosure are depicted.
[0010] Figure 2 An OPLM method performed by a receiver when decoding data according to some examples of the present disclosure is depicted.
[0011] Figure 3 A graph depicting three Poisson probability distributions corresponding to three different power levels according to some examples of the present disclosure, where probability is on the y-axis and received photon count is on the x-axis.
[0012] Figure 4 Depicts, according to some examples of the present disclosure, Figure 3 Graphs of three detection models similar to the detection models in
[0013] Figure 5 A method for demultiplexing multiple data streams transmitted via an optical communication path according to an OPLM method using an uncertainty range according to some examples of the present disclosure is depicted.
[0014] Figure 6Depicts a method for demultiplexing multiple 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.
[0015] Figure 7 Depicts a schematic diagram of a system for increasing the bandwidth of an optical fiber, according to some examples of the present disclosure.
[0016] Figure 8 Depicts a schematic diagram of a receiver, according to some examples of the present disclosure.
[0017] Figure 9 Depicts an example machine learning component, according to some examples of the present disclosure.
[0018] Figure 10 Is a block diagram depicting an example of a machine on which one or more embodiments may be implemented. Detailed Description
[0019] Figure 1 Depicts components of a simplified optical communication system in the form of an optical fiber system 100, according to some examples of the present disclosure. Data stream 105 may include binary data generated by a higher network layer processed by processing circuitry 110. Processing circuitry 110 may process the data of data stream 105 in one or more ways to prepare it for transmission. Example processing operations performed by processing circuitry 110 include applying one or more error correction codes (ECCs), compression algorithms, encryption algorithms, etc. The data transformed by processing circuitry 110 is then passed as a control signal to light source 115. Light source 115 modulates the data by selectively turning the light source on and off according to the input data based on a modulation scheme. For example, in a simple modulation scheme, each bit may be transmitted during a predetermined time period (e.g., time slot). During a particular time slot, if the current bit from the input data is '1', the light source may be turned on during that time slot, and if the current bit from the input data is '0', the light source may be turned off during that time slot. 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.
[0020] 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, air, etc. In Figure 1 an example, the optical communication path travels across a single fiber optic fiber 120. In an example where the medium is air, the optical communication path may be the alignment of the transmitting light source and the sensor at the receiver.
[0021] The receiver includes a photodetector 125 and a processing circuit 130. The photodetector 125 collects a count of the number of photons detected during a detection time period corresponding to the amount of time during which a single bit of the data stream 105 is transmitted. Based on the photon count, the photodetector generates a data stream, which is then input into the processing circuit 130, which applies operations opposite to those applied by the processing circuit 110 to generate the data stream 135. The goal is to transmit the data stream 105 to the receiver as quickly as possible while matching the data stream 135 to the data stream 105.
[0022] As already described, 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 clear that none of these techniques fully utilize the entire bandwidth available in the medium and, 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 through the same communication path (e.g., an optical fiber) as the receiver. In addition, the decision range for bit allocation for each stream is equal for each bit combination (range of photon counts corresponding to the detected bit combination) for these techniques. In the case where different transmitters have slightly different power levels, these symmetric decision ranges pose difficulties. 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 device cost and / or the decoding time.
[0023] Another technique, optical power level modulation (OPLM), is described in the co-pending application "Power Switching for Systems Implementing Throughput Improvements for Optical Communications" by Amer Hassan and Edward Giaimo (Attorney Docket No. #1777.C02US1), filed on the same day as the present application, the entire contents of which are incorporated herein by reference. This technique allows multiple data streams to be transmitted across the same optical communication path (e.g., the same optical fiber) using different light sources that transmit at different power levels at the same wavelength. The OPLM technique can be combined with various modulation schemes, such as a simple modulation scheme in which the light source is turned on to transmit a '1' and turned off to transmit a '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 on the same optical communication path using different power levels. The receiver demultiplexes the data for each stream by applying one or more detection models to the photon counts observed at the receiver to determine the possible bit assignments for each stream.
[0024] Since each light source transmits at a different power level, the separately activated first light source, the separately activated second light source, or both activated together produce different photon counts detected at the receiver. A detection model in the form of a Poisson distribution (or other detection models) can calculate the probability that each light source is activated based on these photon counts. This can be used to assign bit values to each stream. Thus, detection models such as the Poisson distribution can be used to demultiplex the streams. For example, consider a system with two data streams and two light sources using a modulation scheme where light source activation is transmitted as a '1' signal in the bit stream and light source off is transmitted as a '0' signal in the bit stream. In this system, the first model can indicate the probability that the first light source is on and the second light source is off - which corresponds to the bit combination of '1' and '0'. The second model can indicate the probability that the second light source is on and the first light source is off - which corresponds to the bit combination of '0' and '1'. The third model can indicate the probability that both light sources are activated, and thus corresponds to the bit combination of '1' and '1'.
[0025] As a result, multiple data streams from multiple light sources can be sent on a single optical link, which may be two, three, four, or more times the bandwidth of a single channel on a single link. Additionally, problems of other techniques can be avoided. For example, the decision range (e.g., Poisson distribution) for each bit combination can be different from that of other bit combinations. This allows light sources with different power levels. Additionally, unlike DDPDM, detection is very simple. Further, since multiple light sources can be used, the system can support multiple users on the same communication path (e.g., the same optical fiber).
[0026] Figure 2 Shown is an OPLM method 200 performed by a receiver in 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 the receiver are synchronized to send one or more bits of a bit stream (e.g., bits of a packet). At operation 215, the receiver uses the photon count and a first detection model to determine the following first probability: the first light source corresponding to the first data stream is on at a first power level and the second light source corresponding to the second data stream is off. At operation 220, the receiver uses the photon count and a second detection model to determine the following second probability: the first light source corresponding to the first data stream is off and the second light source corresponding to the second data stream is on at a second power level. At operation 225, the receiver uses the photon count and a third detection model to determine the following third probability: the first light source is on at the first power level and the second light source is on at the second power level.
[0027] The detection model can be a Poisson probability distribution, a machine learning model (e.g., a neural network, a regression model, a clustering model), a decision tree, and so on. For example, as described above, the first light source alone being sent at the first power level, the second light source alone being sent at the second power level, and both the first and second light sources being sent together can result in different average numbers of photons hitting the receiver. Thus, a Poisson distribution can be used to model the probability that a particular combination of light sources causes those photons to hit the receiver. These Poisson distributions can be used as detection models.
[0028] At operation 230, the system can determine the bit values of the first and second data streams based on the first, second, and third probabilities. For example, the model that produces the highest probability value can be selected and the bit value corresponding to that model can be assigned to the bit stream. As described above, the detection models can correspond to the bit values of the respective data streams. In some examples, the '0' value of the two bit streams can be determined by comparing the photon count to a predetermined minimum threshold (e.g., before operations 215, 220, and 225 or during operation 230). In other examples, separate models can be used for the '0' value of the two bit streams. Method 200 is for two light sources and two bit streams, but can be applied to additional light sources with additional bit streams. In other examples, a single model can output the bit assignment.
[0029] The OPLM system solves the technical problem of efficient bandwidth utilization in optical communication without the drawbacks of the previous methods 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 accounted for by detection models trained using any such interference. Additionally, since the models may have probabilities with unequal decision ranges, using different light sources with different power levels does not pose a problem as in AM and DDPDM. Furthermore, these models can be adjusted over time to account for aging transmitter circuitry. In contrast to DDPDM, the present disclosure does not require re - modulating the received signal by performing successive interference cancellation. Instead, the present disclosure utilizes the average photon count of specific bit combinations. Since the disclosed detection models are relatively simple probability distributions, 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 the case of using successive interference cancellation.
[0030] OPLM uses training sequences to determine the detection models. For example, by instructing each light source to activate individually and in combination with each other light source, the average photon count for each combination is determined. The average photon count 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, the photon counts observed during the transmission time slot are submitted to each detection model, and the detection model with the highest probability can be selected. The bit assignment corresponding to that detection model can be assigned as the bit for each specific stream.
[0031] Figure 3 Graph 300 depicts three Poisson probability distributions corresponding to three different power levels, in which probability is on the y - axis and the received photon count is on the x - axis, according to some examples of the present disclosure. Figure 3Depicts a first probability distribution 320 of a light source activated at a first power, a second probability distribution 325 of a light source activated at a second power (where the second power is greater than the first power), and a third probability distribution 330 of a light source activated at a third power (where the third power is 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 causes the probability distribution to shift to the right and flatten on the Figure 3 graph as shown in (because more variation is expected as the photon count gets higher).
[0032] As described above, the present disclosure utilizes one or more detection models to determine the bit value of each bit in each stream transmitted over the same optical communication path (e.g., the same optical fiber) and at the same wavelength but using different power levels. The detection model can be a Poisson probability distribution. For example, the probability distributions 320, 325, and 330 can be used as detection models. The first probability distribution 320 can model the probability that a particular photon count observed at the receiver is caused by the first light source at the first power corresponding to the first stream being on and the second light source corresponding to the second stream being off. In a simple modulation scheme, a light source that is "on" during the detection period is interpreted as '1', and a light source that is "off" during the detection period is interpreted as '0'. Thus, 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).
[0033] 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 on at the second power and the first light source corresponding to the first stream being off. Under the above simple modulation scheme, 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.
[0034] 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 in the figure as (1, 1). Multiple light sources activated simultaneously will produce more photons than each individual light source - thus, the probability distribution shifts even further to the right. Additionally, the range also increases with increasing power, flattening the Poisson distribution, because the additional photons also introduce more possibilities for variation.
[0035] Accordingly, the receiver can determine each bit of each bitstream using the observation that the photon counts observed at the receiver follow a Poisson distribution based on the power levels of the light sources, even when both light sources are active simultaneously. The receiver can observe the number of photons impinging on the receiver and calculate the following probabilities: the photon count is generated by the first light source alone using the first probability distribution 320, by the second light source alone using the second probability distribution 325, and by the combination of the first and second light sources using the third probability distribution 330. Based on these probability calculations, a decision can be made using decision logic as to whether the bit of the first stream is '0' or '1' and whether the bit of the second stream is '0' or '1'. In one example, the decision logic can be to select the bit associated with the detection model corresponding to the highest probability for a given observed photon count. For example, if the highest probability is that the photon count is generated by the first light source alone, a bit value of '1' can be assigned to the first stream and a bit value of '0' can be assigned to the second stream. Or, if the highest probability is that the photon count is generated by the second light source alone, a bit value of '0' can be assigned to the first stream and a bit value of '1' can be assigned to the second stream. Finally, if the highest probability is that the photon count is generated by both light sources, then a '1' can be assigned to both streams. This scheme can be repeated until the transmitter finishes sending data.
[0036] As an example, the photon count 340 observed at the receiver can have a first probability 345 according to the first probability distribution 320, a second probability 350 according to the second probability model, and a third probability 355 of zero or close to 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 - thus the observed photon count is most likely caused by the first light source being activated at the first power level and the second light source being off. Since in this example, a '1' is represented by turning on the light source and a '0' is represented by turning off the light source, the most likely bit assignment for the first stream is '1', and for the second stream, the most likely bit assignment is '0'.
[0037] Figure 4 Depicts the same as Figure 3The graph 400 of three detection models 420, 425, and 430 that are similar to the detection model in []. The photon counting ranges 415, 424, and 435 (represented by the dashed boxes) can be the photon counting ranges where the probabilities generated by the detection models are not high or the probability differences between two models may be very low. For example, the photon counts within the photon counting range 424 generate probabilities for the detection models 420 and 425 that are not very high and are very similar to each other. In the case where the OPLM technique demultiplexes the stream using the bit assignment associated with the model having the highest probability, this may involve the receiver selecting a bit assignment for which the receiver has a low confidence metric. For example, for the photon counts to the left and right of the intersection point of the detection models 420 and 425 (e.g., in the range 424), the probability of the bit stream assignment being 10 and 01 should be almost equal.
[0038] Selecting an incorrect bit assignment instead of omitting these bits may not be optimal in all cases. This is because error correction codes (ECCs) may be applied to data such as the following: better performance can be obtained during decoding by causing the decoding to fail rather than attempting to process incorrect data. For example, Reed - Solomon codes and bounded - distance decoding. As a result, compared to making an incorrect bit assignment, not making a bit assignment when the receiver has a low confidence level for the bit assignment can reduce the error rate after applying the ECC.
[0039] Methods, systems, optical devices, and machine - readable media for utilizing an uncertainty range together with ECC in a power - level modulation scheme are disclosed in some examples. The photon counts within the uncertainty range are not demultiplexed, and the data is later recovered by the ECC algorithm without re - transmission. This improves performance by changing the demultiplexing behavior to utilize the characteristics in the ECC algorithm to reduce the error rate.
[0040] There can be one or more uncertainty ranges, and their sizes and positions can be determined by various factors. In some examples, the uncertainty range can have a fixed size throughout the execution of the system. In other examples, the uncertainty range can vary periodically over time in response to changing characteristics (such as changes in the ECC algorithm, changes in the detection model), etc. The size of the uncertainty range can be determined based on the system designer, system characteristics, etc. In other examples, the size of the uncertainty range can be set based on the characteristics of the detection model and / or the characteristics of the ECC used. For example, the more lost bits the ECC can tolerate before requiring re - transmission, the larger the uncertainty range can be set. This allows for more accurate decision - making because the range in which the decision is made has the characteristic of a large probability difference between detection models.
[0041] In an example of using the ECC feature to determine the size of the uncertainty range, an example algorithm for setting the size can be used to determine the size of the following uncertainty range: The uncertainty range is predicted to produce the number of lost bits that is closest to but does not exceed the maximum number of lost bits tolerated by the ECC without retransmission. For example, the maximum bit error rate for a specific data unit size (e.g., the data unit on which the ECC operates) can be determined. This can be calculated or can be indicated by the ECC used. For each size of the uncertainty range, the receiver can determine the expected amount of lost bits for a specific data unit size. The expected amount of lost bits for a given uncertainty range size can be provided by an administrator or designer and can be stored in a table or other variable. In other examples, the receiver can use a detection model to calculate the expected amount of lost bits for a given uncertainty range size. For example, the receiver can use historical data to determine which bit combinations are most likely, and then based on the probability distribution, the expected number of lost bits that are expected to be skipped can be calculated for a given uncertainty range size. The receiver can then select an uncertainty range size that has an expected amount of lost bits that is as close as possible to but does not exceed the maximum bit error rate tolerance of the ECC algorithm.
[0042] In some examples, instead of using the ECC feature, or in addition to using the ECC feature, the size and location of the uncertainty range can be based on the characteristics of the detection model (either individually or in combination with each other). For example, the size and location can be based on or be the overlapping range of adjacent detection ranges of one or more detection models. For example, in Figure 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 can be determined based on the difference in probabilities of a first detection range and a second detection range of a next power level or a previous power level. For example, the uncertainty range can include photon counts where the probability difference is less than a threshold probability difference. In these examples, the uncertainty range reflects that although the probability of one detection model may be greater than the probability of a second probability model, the difference is not statistically significant, so the receiver may not have confidence in the bit assignments generated in those ranges.
[0043] In an example of using both the ECC feature and the detection model feature, the size can be set by using a size calculated by considering the ECC feature as the maximum size, and the characteristics of the detection model can be used as long as the size of the uncertainty range does not exceed that maximum size.
[0044] Another characteristic of the detection range that can be used to set the uncertainty range can include the maximum probability value returned by a specific detection model. For example, in Figure 4Among them, the probability generated by the detection model 430 at its peak is much smaller than the probability of the detection model 420 at its peak. This may reflect the increased uncertainty about detecting these bit combinations. In these examples, the larger uncertainty range of the model can be used to increase the confidence of the receiver. For example, the receiver can calculate the total range of all models based on the ECC characteristics and then divide it into each model based on the maximum probability, overlapping range, etc.
[0045] Another characteristic of the detection range that can be used can include the range. For example, in Figure 4 Among them, the detection model 430 has a much larger higher probability range than the detection model 420 (for example, the range of photon counts that produce statistically significant probabilities). This can reflect that a larger set of photon counts can be generated by the transmitter sending the corresponding bit combination. In these examples, the larger uncertainty range can be used to increase the confidence of the receiver.
[0046] In some examples, the size of a given uncertainty range can be set by considering one or more of the above factors. As an example, the receiver can determine the size based on one of the above factors (e.g., the overlapping range) and modify the size based on one or more other factors (e.g., the maximum probability and range), but limit the size to the maximum value determined using the ECC characteristics. In other examples, each factor can be used to independently generate the size and each factor can be weighted and summed to produce the final size of the uncertainty range. In some examples, the uncertainty range can be limited to the maximum value specified by the ECC characteristics. In other examples, one or more supervised learning algorithms can train a model that can be used to set the size. The data representing the characteristics used to set the size (e.g., ECC characteristics, model characteristics, etc.) can be labeled with the appropriate size and used to train the machine learning model. The model can then use new data to make new predictions about the appropriate size of the uncertainty range. The subsequently observed error rate and retransmission rate can then be used to adjust the model. The following discussion for Figure 9 discusses additional information about machine learning algorithms.
[0047] In addition to the size of the uncertainty range, the position of the uncertainty range can be determined based on the characteristics of the detection model. For example, the uncertainty range can be centered on the photon count where the probabilities of at least two detection models are equal. In Figure 4 Among them, this corresponds to the intersection of the detection models 420, 425, and 430.
[0048] 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.
[0049] Each uncertainty range may have a size and / or position determined independently. In other examples, one or more uncertainty ranges may have a size and / or position determined based on the size and / or position of one or more other uncertainty ranges. For example, a maximum uncertainty range size may be determined (e.g., based on ECC characteristics) 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.
[0050] In other examples, the size of the detection model may be initially set and may be adjusted over time. For example, as more photon counts fall within the uncertainty range of a given data unit, the uncertainty range may shrink to prevent too many bits from being lost and to prevent the ECC algorithm from exceeding the maximum allowable lost data for a particular data unit and to avoid retransmission.
[0051] Figure 5 Method 500 for demultiplexing multiple data streams transmitted over an optical communication path according to the OPLM method using uncertainty ranges is depicted in accordance with some examples of the present disclosure. At operation 505, the receiver begins receiving data and demultiplexing the data streams. As previously described, each stream may be transmitted by one or more different light sources that span the same optical communication path (e.g., the same optical fiber) and are transmitted at the same wavelength at different power levels.
[0052] One or more bits of each stream may be transmitted during a particular time period (e.g., time slot). At operation 510, the photon count of photons detected at the receiver that are generated by selectively activating the light sources transmitting one or more data streams according to a modulation scheme may be determined.
[0053] At operation 515, the photon count is examined to determine whether 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 perform bit allocation for the bit positions corresponding to the current time slot of any data stream. Thus, the receiver leaves the data positions blank. The subsequent demultiplexed bits can be inserted into the bit stream where the bits that would have been demultiplexed would have been placed, or in other examples, the bits can be represented in the bit stream by some data representation (e.g., NULL), or otherwise indicated or marked as unknown.
[0054] If the photon count is not within the uncertainty range at operation 515, then at operation 520, a detection model can be used to assign bit values to the stream. For example, by performing Figure 2 operations 215 - 230.
[0055] In some examples, an ECC algorithm operates on packets, segments, or other data units of a bit stream of a determined size. In these examples, at operation 530, the receiver determines whether additional data, such as a codeword, packet, or other data unit, is still needed for the current data unit before performing an ECC operation to correct or replace any data. This decision can take into account any missing bits when determining whether all the data for the data unit has been received. If the determination is yes, the operation returns to operation 510 to receive additional data. If the determination is no, then at operation 535, the received data of the data stream in the current data unit can have any missing or incorrect bit allocations corrected by the ECC process. The operation continues to operation 510 for the next data unit, and the process is repeated until the transmitter stops sending data or the receiver is no longer configured to receive data.
[0056] Figure 6 A method 600 for demultiplexing multiple data streams transmitted over an optical communication path according to an OPLM scheme with an uncertainty range is depicted in accordance with some examples of the present disclosure. Figure 6 is Figure 5 an example. At operation 610, the receiver can generate multiple photon counts corresponding to respective multiple bit positions of first and second data streams. The photons can be generated by one or more light sources in one or more transmitters that transmit one or more data streams. The photon counts can be determined by a photon detector over a specific time period, where one or more bits in the multiple bit streams are transmitted by one or more light sources selectively activated according to a modulation scheme to transmit one or more data streams. That is, the photon counts can be the result of the transmission of the values of specific bit positions in the first and second bit streams. The multiplexing scheme can be an OPLM scheme used in combination with WDM, AM, or other modulation schemes.
[0057] At operation 615, the receiver can determine whether one or more photon counts from operation 610 are within one or more defined uncertainty ranges. In some examples, each uncertainty range can 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, then the photon count is within the defined uncertainty range.
[0058] At operation 620, the receiver can determine the bit value assignments in the first and second data streams. For example, the receiver can submit the photon counts received for that bit position to one or more detection models. For example, 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 can be done for all bit positions except those bit positions having corresponding photon counts within one or more uncertainty ranges. Bit positions having corresponding photon counts within one or more uncertainty ranges can be unassigned, can be skipped (e.g., the next photon count can be used for that bit position), can be assigned a value indicating that the value is unknown, and so on. In some examples, operations 610, 615, and 620 can be continuously performed for each received photon count in each bit position, and the results in operation 620 can be saved in a buffer or other memory.
[0059] At operation 625, the receiver can use an error correction code (ECC) process applied to the determined bit value assignments for the first and second data streams to generate values corresponding to the bit positions having corresponding photon counts within the uncertainty ranges of the first and second data streams. For example, the bit values assigned by the receiver for each bit stream (e.g., in cases where the photon count is not within the uncertainty range) can be used by the ECC algorithm to determine the bit value assignments for the bit positions where the photon count is within the uncertainty range. In some examples, the receiver uses the ECC algorithm for a particular data unit. For example, a packet, a codeword, etc. The receiver can thus use the other data in the particular data unit to determine the unknown data according to the ECC scheme. For example, operations 610 - 620 can be repeated until enough bits are received to apply the ECC algorithm.
[0060] In some examples, the size of the uncertainty range can be dynamically adjusted based on the number of current unknown bits in the current data unit. For example, during the reception of a particular data unit, if there are no unknown data bits, the uncertainty range may be larger than the case where 50% of the maximum number of unknown bits can be corrected by the ECC algorithm. This allows the receiver to reduce the number of unknown bits when the ECC can determine the lost data, but to reduce the number of unknown bits when the ECC reaches its capacity to determine the lost data.
[0061] Example Transmitter and Receiver
[0062] Now turning to Figure 7 , a schematic diagram of a system 700 for increasing the bandwidth of an optical fiber according to some examples of the present disclosure is shown. A first transmitter 705 may include processing circuitry 710 for transforming a data stream to prepare it for transmission over an optical fiber strand. Example operations include applying ECC, encryption, modulation operations, and the like. The transformed bits are used as signals to a controller 720 to indicate that a light source 715 is selectively turned on or off to represent the transformed bit stream according to a modulation scheme. For example, the light source 715 is turned on in response to a '1' in the bit stream and turned off in response to a '0' in the bit stream. The controller 720 may set the power of the light source 715 based on the power level indicated in an assigned power level allocation scheme and based on the current phase 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, these transmitters may alternate as to which transmitter transmits at a particular power level. A power level allocation scheme may be divided into one or more phases. A phase specifies a unit of the power level allocation scheme, where each transmitter served by the scheme is assigned 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 phase of the power level allocation scheme. A power level allocation scheme may be described by one or more data structures. For example, a formula, table, graph, or other metric. In the case of a modulation scheme that uses changing power, the power level may be the average power level over a particular time slot. An indication of which power level allocation scheme is active and which phase is active may be stored in a power level allocation scheme storage unit 765.
[0063] The light source 715 sends light to a receiver over an optical communication path, which may be through a medium such as an optical fiber strand. Example light sources may include LED or LASER light sources. The controller 720 and the processing circuitry 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, read-only memory (ROM), or other transient or non-transient storage unit.
[0064] Transmitters 705 and 750 can be transceivers because they can have associated receivers, such as receivers 725, 758. A power level allocation scheme can be allocated by receiver 760 (which can also be a transceiver), through a protocol with the second transmitter 750, etc. The allocated power level allocation scheme can be one of a library of predetermined allocation schemes stored in the power level allocation scheme storage unit 765. In some examples, the allocated power level allocation scheme can be based on a scheme in the allocation scheme library but can be modified for one or more of the specific transmitters and receivers involved in a communication session. In other examples, the allocated power level allocation scheme can be customized for a specific communication session. The power level allocation scheme storage unit 765 can store specific allocation schemes, selections of specific allocation schemes, any customizations in use, the current phase, etc.
[0065] Receiver 725 can be an optical fiber receiver, but can also be an out-of-band receiver such as a WiFi receiver, a Bluetooth receiver, an Ethernet receiver, etc. Receiver 725 can receive instructions from receiver 760, which are passed to a controller to turn on or off the light source 715 during model training of the receiver.
[0066] The second transmitter 750 can include components similar to those of the first transmitter 705. For example, a controller 754, a light source 756, a processing circuit 752, a receiver 758, a power level allocation scheme storage unit 770, etc. In some examples, if the first transmitter 705 and the second transmitter 750 are in the same device, one or more components can be shared between the first transmitter 705 and the second transmitter 750. Additionally, the first transmitter 705 and the second transmitter 750 can send multiple data streams to the receiver 760 over an optical fiber cable at multiple different wavelengths. Thus, the first transmitter 705 and the second transmitter 750 can utilize two techniques of the present invention to simultaneously send multiple data streams on the same optical fiber by changing the power level, but also use multiple data streams of different wavelengths.
[0067] Figure 8FIG. 800 shows a schematic diagram of a receiver in accordance with some examples of the present 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 an optical fiber, over a predetermined period of time (e.g., a time slot). The photon count is passed to a controller 810. Controller 810 may determine whether the photon count falls within one of the uncertainty ranges stored in the uncertainty range data storage unit 865. If the photon count falls within the uncertainty range, the controller may skip demultiplexing the data for the current period. In some examples, the corresponding bit positions of the bitstream may be occupied by bits demultiplexed in the next period. In other examples, one or more indicators may be inserted into the bitstream to indicate that the bit position is unknown.
[0068] If the photon count is not within one of the uncertainty ranges, controller 810 determines the individual bits in the bitstream using one or more detection models stored in the model storage unit 835. For example, the model may include one or more Poisson distributions that may return the probability that a photon count corresponds to one or more specific bit combinations for each stream. The specific detection model to be used may be selected based on the current stage of the current power level allocation scheme. The current stage and / or the selected power level allocation scheme may be stored in the power level allocation scheme storage unit 840.
[0069] For example, consider a simple power level allocation scheme where two light sources transmit simultaneously over the same communication path (e.g., an optical fiber) at the same wavelength. The power level allocation scheme alternates on a bit-by-bit basis which of the two light sources corresponding to two different data streams is activated at a high power level. For the first bit, stream 1 is the high power light source and stream 2 is the low power light source. The photon count received during the period in which the first bit is transmitted is submitted to a first set of detection models that includes models trained to detect the first light source activated at high power (second light source off), the second light source activated at low power (first light source off), and both activated at their respective allocated powers. The detection model that returns the highest score (e.g., detection probability) is used to assign a value to the bitstream. For example, if the detection model trained to detect the first light source activated at high power (second light source off) returns the highest probability, a '1' is assigned to the bitstream corresponding to the first light source and a '0' is assigned to the bitstream corresponding to the second light source (e.g., based on the following modulation scheme: where '1' is indicated by light source activation and '0' is indicated by light source deactivation).
[0070] In the second stage, stream 1 is a low-power light source and stream 2 is a high-power light source. The photon counts received during the time period when the second bit is sent are submitted to a second set of detection models, which includes models trained to detect the first light source activated at low power (the second light source not activated), the second light source activated at high power (the first light source not activated), and both sending '1' at their respective assigned powers. The detection model that returns the highest score (e.g., detection probability) is used to assign a value to the bit stream. For example, if the detection model trained to detect the first light source activated at low power (the second device not activated) returns the highest probability, then '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.
[0071] Each bit stream determined by the controller is then separately passed to processing circuits 815 and 820, which decode the bit streams and perform various operations (e.g., operations opposite to those performed by the processing circuits 710 and 752 of the transmitter in Figure 7 ), and output the bit streams to a higher-level layer (e.g., the physical layer, the transport layer, or other network layers). Example inverse operations can include: using ECC to detect and correct errors, including correcting lost bits. In some examples, feedback from the demultiplexing at controller 810 and / or the ECC operations at processing circuits 815 and 820 can be provided to the range determiner 855. The range determiner 855 can use this feedback information to adjust the range of uncertainty.
[0072] The range determiner 855 can set one or more ranges of uncertainty stored in the uncertainty range data storage unit 865 based on one or more of the following: ECC characteristics, detection model characteristics, etc.
[0073] The calibration component 825 can initially train the models and can include a model training component 830, which can instruct the transmitter (via transmitter 850) to send various test data sequences. The photon counts observed by the photodetector 805 can be used to build the models. For example, by using the average photon count to create the models, or by submitting the photon counts to a training module, such as Figure 9 the training component 910.
[0074] In some examples, the controller 810 can also select and control a power level allocation scheme. For example, the scheme can be selected and / or customized through communication with the transmitter. This can occur periodically before and / or during the communication session with the transmitter. In other examples, with the transmitter's consent to the power level allocation scheme, the controller 810 receives a message indicating which power level allocation scheme is active. The controller can determine the current phase through messaging to and / or from one or more transmitters (e.g., for QoS-based methods or modifications), based on the elapsed time since the last stage, etc.
[0075] As described above, the controller 810 determines the phase of the power level allocation scheme (which transmitter's light source is at what power) and uses this phase to select an appropriate detection model.
[0076] Figure 9 An example machine learning component 900 is shown according to some examples of the present disclosure. The machine learning component 900 can be used 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, the training component 910 can be implemented by a different device than the prediction component 920. In these examples, the model 980 can be created on a first machine and then sent to a second machine.
[0077] The machine learning component 900 uses the training component 910 and the prediction component 920. The training component 910 inputs feature data 930 into the feature determination component 950. The feature data 930 can 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 can be ECC characteristics, detection model characteristics, etc. In examples where the model is used to determine a detection model or a power level allocation scheme, the feature data can be explicitly labeled with the bit allocation for each flow, the light source currently being transmitted, the power level used by the currently transmitted light source for transmission, etc.
[0078] 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 information determined to predict the bit allocation for each stream. In an example where the model determines an uncertainty range, the features of the feature vector 960 are a set of information inputs and are information determined to predict the uncertainty range. The features selected to be included in the feature vector 960 can be all of the feature data 930, or in some examples, can be a subset of all of the feature data 930. In an example 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 is included in the feature vector can be utilized. The feature vector 960 can be utilized by the machine learning algorithm 970 (along with any applicable labels) to generate one or more detection models 980.
[0079] In the prediction component 920, current feature data 990 (e.g., photon count; power level allocation scheme information; or ECC characteristics and / or detection model characteristics) can be input into the feature determination component 995. The feature determination component 995 can determine the same set of features or a different set of features as the feature determination component 950. In some examples, the feature determination components 950 and 995 are the same component or different instances of the same component. The feature determination component 995 generates a feature vector 997, which is input into the model 980 to determine the bit allocation, phase, power level allocation scheme, uncertainty range, etc. 999.
[0080] 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 can be updated periodically via additional training and / or user feedback. For example, updated features can be used to retrain or update the model 980.
[0081] The machine learning algorithm 970 can be selected from many different potential supervised or unsupervised machine learning algorithms. Examples of supervised learning algorithms include artificial neural networks, convolutional neural networks, Bayesian networks, instance-based learning, support vector machines, decision trees (e.g., Iterative Dichotomiser 3, C4.5, Classification and Regression Trees (CART), Chi-squared Automatic Interaction Detector (CHAID), etc.), random forests, linear classifiers, quadratic classifiers, k-nearest neighbors, linear regression, logistic regression, support vector machines, perceptrons, and hidden Markov models. Examples of unsupervised learning algorithms include the expectation maximization algorithm, vector quantization, and the information bottleneck method. Unsupervised models may not have a training component 910. In some examples, the detection model 980 can determine the bits of each stream based on the detected photons. In other examples, the detection model 980 can generate a score or probability for each stream for which a particular bit is being sent. In some examples, the model 990 can generate the magnitude of one or more uncertainty ranges (all individual magnitudes, or magnitudes for a particular detection model), the location of one or more uncertainty ranges, or both (e.g., a particular range of photons).
[0082] Machine learning models can also be used to select a power level allocation scheme. In these examples, the feature data 930, 990 can be information for predicting an appropriate power level allocation scheme. The features discussed above can be used as the feature data 930, 990 - such as power budget, transmitter characteristics, receiver characteristics, etc. The result can be a ranking and / or selection 999 of the power level allocation scheme.
[0083] The modulation scheme used herein is relatively simple (on or off to represent '1' or '0'). In other examples, different modulation schemes can be used. For example, if the light source and the receiver have related functions, in addition to the techniques described herein, WDM, phase shift modulation, amplitude modulation, and other advanced modulation forms can be utilized. For example, multiple bitstreams can be divided into multiple wavelengths - where each wavelength can have multiple data streams transmitted using the methods disclosed herein. Similarly, for power modulation, the power allocation scheme of the present invention can allocate multiple power levels to each transmitter - where each power level is a particular combination of bits. Thus, power levels 1, 2, and 3 can be allocated to the first transmitter (indicating the '01', '10', and '11' bits respectively), and power levels 4, 5, and 6 can be allocated to the second transmitter (to indicate the '01', '10', and '11' bits respectively). In this example, the system can allocate the power levels such that the average photon count for each power level combination is sufficiently different, so that the probability distributions are sufficiently far apart, resulting in a low error rate.
[0084] Figure 10FIG. 0 is a block diagram of an example machine 1000 on which any one or more of the techniques (e.g., methods) discussed herein can be performed. In alternative embodiments, machine 1000 can operate as a stand-alone device or can be connected (e.g., networked) to other machines. In a networked deployment, in a server-client network environment, machine 1000 can operate as a server machine, a client machine, or both. In an example, machine 1000 can function as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 1000 can be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smartphone, a network device, a network router, a switch or bridge, or any machine capable of executing instructions (sequentially or otherwise) that specify actions to be taken by that machine. Machine 1000 can implement the transmitter and / or receiver disclosed herein. Additionally, machine 1000 can include the transmitter and / or receiver disclosed herein. Machine 1000 can implement any method disclosed herein. Further, although 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 methods discussed herein, such as cloud computing, software as a service (SaaS), other computer cluster configurations.
[0085] As described herein, an example can include or operate on the following: a logic unit, or multiple components, components, or mechanisms. A component is a tangible entity (e.g., hardware) capable of performing a specified operation and can be configured or arranged in a certain manner. In one example, a circuit can be arranged (e.g., intrinsically or relative to external entities such as other circuits) in a specified manner as a component. In an example, portions or the whole of one or more computer systems (e.g., individual client or server computer systems), or one or more hardware processors can be configured by firmware or software (e.g., instructions, an application portion, or an application) to operate as a component that performs a specified operation. In an example, the software can reside on a machine-readable medium. In an example, when executed by the underlying hardware of a component, the software causes the hardware to perform the specified operation.
[0086] Accordingly, it should be understood that the term "component" includes a tangible entity, which is physically constructed, specifically configured (e.g., hardwired) or temporarily (e.g., transiently) configured (e.g., programmed) to perform in a particular manner or to perform some or all of any of the operations described herein. Consider an example where the components are transiently configured, and each of these components does not need to be instantiated at any one time. For example, in a case where a component includes a general-purpose hardware processor configured with software, the general-purpose hardware processor can be configured as various different components at different times. The software can accordingly configure the hardware processor, e.g., to constitute a particular component at one time and a different component at a different time.
[0087] A machine (e.g., a computer system) 1000 can 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 can communicate with each other via an interconnection (e.g., a bus) 1008. The machine 1000 can 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 can be a touch screen display. The machine 1000 can also include a storage device (e.g., a 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, a compass, an accelerometer, or other sensors). The machine 1000 can 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, a card reader, etc.).
[0088] The storage device 1016 can include a machine-readable medium 1022, on which is stored a set or sets of data structures or instructions 1024 (e.g., software) that embody or are used by any one or more of the techniques or functions described herein. The instructions 1024 can also be located entirely or at least partially within the main memory 1004, within the static memory 1006, or within the hardware processor 1002 during execution of the instructions 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 can constitute a machine-readable medium.
[0089] Although the machine-readable medium 1022 is shown as 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 one or more instructions 1024.
[0090] The term "machine-readable medium" can include any of the following media: media capable of storing, encoding, or carrying instructions for execution by a machine 1000 and causing the machine 1000 to perform any one or more of the techniques in this disclosure, or media capable of storing, encoding, or carrying data structures used by or associated with such instructions. Non-limiting examples of machine-readable media can include solid-state memories and optical and magnetic media. Specific examples of machine-readable media can include: non-volatile memories (such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)), and flash memory devices), disks (such as internal hard disks and removable disks), magneto-optical disks, random access memory (RAM), solid-state drives (SSD), and CD-ROM and DVD-ROM disks). In some examples, the machine-readable medium can include a non-transitory machine-readable medium. In some examples, the machine-readable medium can include a machine-readable medium that is not an instantaneous propagated signal.
[0091] The instructions 1024 can also be sent or received over a communication network 1026 via a network interface device 1020 using a transmission medium. The machine 1000 can communicate with one or more other machines using any one of a variety of transmission protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Example communication networks can include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile telephone networks (e.g., cellular networks), plain old telephone (POTS) networks, and wireless data networks (e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard series, known as the IEEE 802.16 standard series), the IEEE 802.15.4 standard series, the Long Term Evolution (LTE) standard series, the Universal Mobile Telecommunications System (UMTS) standard series, peer-to-peer (P2P) networks, and so on. In one example, the network interface device 1020 may include one or more physical jacks (e.g., Ethernet, coaxial cable, 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 to perform wireless communication 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 perform wireless communication using multi-user MIMO techniques.
[0092] Other notes and examples
[0093] Example 1 is a method for receiving multiplexed data over an optical communication path, the method comprising: using a hardware processor at a receiver: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit value assignments for each bit position among 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 a value corresponding to the first bit position 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.
[0094] In Example 2, the subject matter of Example 1 includes: determining the uncertainty range based on a defined capability of the ECC.
[0095] In Example 3, the subject matter of Example 2, wherein the defined capability of the ECC includes the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0096] In Example 4, the subject matter of Examples 1-3 includes: determining the uncertainty range based on a characteristic of at least one of the plurality of detection models.
[0097] In Example 5, the subject matter according to Example 4 includes: wherein determining the uncertainty range based on characteristics of at least one detection model among the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models.
[0098] In Example 6, the subject matter according to Examples 4-5 includes: wherein determining the uncertainty range based on characteristics of at least one detection model among the plurality of detection models includes determining the uncertainty range based on one of the following: the highest possible probability of one detection model among the plurality of detection models, or the range of the one detection model among the plurality of detection models.
[0099] In Example 7, the subject matter according to Examples 1-6 includes: adjusting the size of the uncertainty range based on the ratio of instances where the photon counts are within the defined uncertainty range.
[0100] Example 8 is a computing device for receiving multiplexed data over an optical communication path, the device including: a hardware processor configured to perform operations including: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted through selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit value assignments for each bit position among 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 a value corresponding to the first bit position 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.
[0101] In Example 9, the subject matter according to Example 8 includes: wherein the operations further include: determining the uncertainty range based on a defined capability of the ECC.
[0102] In Example 10, the subject matter according to Example 9 includes, wherein the defined capability of the ECC includes the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0103] In Example 11, the subject matter according to Examples 8 - 10 includes: wherein, the operation further includes: determining the uncertainty range based on the characteristics of at least one of the plurality of detection models.
[0104] In Example 12, the subject matter according to Example 11 includes: wherein, the operation of determining the uncertainty range based on the characteristics of at least one of the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models.
[0105] In Example 13, the subject matter according to Examples 11 - 12 includes: wherein, the operation of determining the uncertainty range based on the characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on one of the following: the highest possible probability of one of the plurality of detection models, or the range of one of the plurality of detection models.
[0106] In Example 14, the subject matter according to Examples 8 - 13 includes: wherein, the operation includes: adjusting the size of the uncertainty range based on the ratio of instances where the photon count is within the defined uncertainty range.
[0107] Example 15 is a machine - readable medium storing instructions for receiving multiplexed data via an optical communication path, which when executed by a machine, cause the machine to perform operations including: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit - value assignments for each bit position other than the first bit position among the plurality of bit positions by assigning values in the first and second bitstreams from each corresponding photon count using the plurality of detection models; and generating a value corresponding to the first bit position 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.
[0108] In Example 16, the subject matter according to Example 15 includes: wherein, the operation further includes: determining the uncertainty range based on the defined capabilities of the ECC.
[0109] In Example 17, the subject matter according to Example 16 includes, wherein the defined ability of the ECC includes the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0110] In Example 18, the subject matter according to Examples 15 - 17 includes: wherein the operation further includes: determining the uncertainty range based on the characteristics of at least one of the plurality of detection models.
[0111] In Example 19, the subject matter according to Example 18 includes: wherein the operation of determining the uncertainty range based on the characteristics of at least one of the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models.
[0112] In Example 20, the subject matter according to Examples 18 - 19 includes: wherein the operation of determining the uncertainty range based on the characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on one of the following: the highest possible probability of one of the plurality of detection models, or the range of one of the plurality of detection models.
[0113] In Example 21, the subject matter according to Examples 15 - 20 includes: wherein the operation includes: adjusting the size of the uncertainty range based on the ratio of instances where the photon count is within the defined uncertainty range.
[0114] Example 22 is a device for receiving multiplexed data via an optical communication path, the device including: a unit for generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted by selective activation of one or more light sources; a unit for determining that a first photon count corresponding to a first bit position among the plurality of photon counts is within a defined uncertainty range of a plurality of detection models; a unit for, in response to determining that the first photon count is within the defined uncertainty range, determining a bit value assignment for each bit position other than the first bit position among the plurality of bit positions by assigning values in the first and second bit streams from each corresponding photon count using the plurality of detection models; and a unit for generating a value corresponding to the first bit position 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.
[0115] In Example 23, the subject matter according to Example 22 includes: a unit for determining the range of uncertainty based on the defined capabilities of the ECC.
[0116] In Example 24, the subject matter according to Example 23 includes, wherein the defined capabilities of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the range of uncertainty.
[0117] In Example 25, the subject matter according to Examples 22-24 includes: a unit for determining the range of uncertainty based on the characteristics of at least one of the plurality of detection models.
[0118] In Example 26, the subject matter according to Example 25 includes: wherein the unit for determining the range of uncertainty based on the characteristics of at least one of the plurality of detection models includes: a unit for determining the range of uncertainty based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model and a second detection model among the plurality of detection models.
[0119] In Example 27, the subject matter according to Examples 25-26 includes: wherein the unit for determining the range of uncertainty based on the characteristics of at least one of the plurality of detection models includes: a unit for determining the range of uncertainty based on one of the following: the highest possible probability of one of the plurality of detection models, or the range of one of the plurality of detection models.
[0120] In Example 28, the subject matter according to Examples 22-27 includes: a unit for adjusting the size of the range of uncertainty based on the ratio of instances of photon counts within the defined range of uncertainty.
[0121] Example 29 is a method for receiving data over an optical communication path, the method comprising: using a hardware processor at a receiver: determining that a photon count of photons generated by a light source at a transmitter is within a defined range of uncertainty; in response to determining that the photon count is within the defined range of uncertainty, avoiding using the photon count to assign any bit to a first bit position in first and second data streams during a demultiplexing operation; and using an error correction code (ECC) applied to other bits of the first and second data streams, determining a bit assignment for the first bit position of the first and second data streams.
[0122] In Example 30, the subject matter according to Example 29 includes: determining the range of uncertainty based on the defined capabilities of the ECC.
[0123] In Example 31, the subject matter according to Example 30 includes, wherein the defined capabilities of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request.
[0124] In Example 32, the subject matter according to Example 31 includes, wherein the more lost bits the ECC can correct, the larger the size of the range of uncertainty.
[0125] In Example 33, the subject matter according to Examples 29 - 32 includes: determining the range of uncertainty based on the characteristics of one or more detection models used to demultiplex the photon counts into bit assignments for the first and second data streams.
[0126] In Example 34, the subject matter according to Example 33 includes: wherein determining the range of uncertainty based on the characteristics of the one or more detection models includes: determining the range of uncertainty based on a plurality of photon counts that result in a probability difference greater than a threshold probability difference as determined according to a first detection model among the one or more detection models and a second detection model among the one or more detection models.
[0127] In Example 35, the subject matter according to Examples 33 - 34 includes: wherein the characteristics of the one or more detection models include one of the following: the highest possible probability of the one or more detection models, or the range of the one or more detection models.
[0128] In Example 36, the subject matter according to Examples 29 - 35 includes: determining the range of uncertainty based on the characteristics of one or more detection models and based on the defined capabilities of the ECC.
[0129] In Example 37, the subject matter according to Examples 29 - 36 includes: wherein the size of the range of uncertainty is fixed.
[0130] In Example 38, the subject matter according to Examples 29 - 37 includes: wherein the size of the range of uncertainty is dynamically updated in response to a change in one of the capabilities of the ECC or the characteristics of one or more detection models.
[0131] Example 39 is a device for receiving data over an optical communication path, the device including: a hardware processor; a memory storing instructions that, when executed by the processor, cause the device to perform operations including: 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 uncertainty range, avoiding using the photon count to assign any bits to a first bit position in first and second data streams during a demultiplexing operation; and determining a bit assignment for the 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.
[0132] In example 40, the subject matter according to example 39 includes: wherein, the operations further include: determining the uncertainty range based on a defined ability of the ECC.
[0133] In example 41, the subject matter according to example 40 includes, wherein, the defined ability of the ECC includes the number of lost bits that the ECC can correct without triggering a retransmission request.
[0134] In example 42, the subject matter according to example 41 includes, wherein, the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0135] In example 43, the subject matter according to examples 39 - 42 includes: wherein, the operations further include: determining the uncertainty range based on characteristics of one or more detection models for demultiplexing the photon count into bit assignments for the first and second data streams.
[0136] In example 44, the subject matter according to example 43 includes: wherein, the operation of determining the uncertainty range based on characteristics of the one or more detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model among the one or more detection models and a second detection model among the one or more detection models.
[0137] In example 45, the subject matter according to examples 43 - 44 includes: wherein, the characteristics of the one or more detection models include one of the following: the highest possible probability of the one or more detection models, or the range of the one or more detection models.
[0138] In example 46, the subject matter according to examples 39 - 45 includes: wherein, the operations further include: determining the uncertainty range based on characteristics of one or more detection models and based on a defined ability of the ECC.
[0139] In Example 47, the subject matter according to Examples 39 - 46 includes: wherein, the size of the uncertainty range is fixed.
[0140] In Example 48, the subject matter according to Examples 39 - 47 includes: wherein, the size of the uncertainty range is dynamically updated in response to a change in one of the capabilities of the ECC or the characteristics of one or more detection models.
[0141] Example 49 is a machine - readable medium storing instructions for receiving data via an optical communication path, which when executed by a machine, cause the machine to perform operations including: 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 uncertainty range, avoiding using the photon count to assign any bit to a first bit position in first and second data streams during a demultiplexing operation; and using an error - correcting code (ECC) applied to other bits of the first and second data streams, determining a bit assignment for the first bit position of the first and second data streams.
[0142] In Example 50, the subject matter according to Example 49 includes: wherein, the operations further include: determining the uncertainty range based on a defined capability of the ECC.
[0143] In Example 51, the subject matter according to Example 50 includes, wherein, the defined capability of the ECC includes the number of lost bits that the ECC can correct without triggering a re - transmission request.
[0144] In Example 52, the subject matter according to Example 51 includes, wherein, the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0145] In Example 53, the subject matter according to Examples 49 - 52 includes: wherein, the operations further include: determining the uncertainty range based on characteristics of one or more detection models for demultiplexing the photon count into bit assignments for the first and second data streams.
[0146] In Example 54, the subject matter according to Example 53 includes, wherein, the operation of determining the uncertainty range based on the characteristics of the one or more detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference according to a first detection model among the one or more detection models and a second detection model among the one or more detection models.
[0147] In Example 55, the subject matter according to Examples 53-54 includes: wherein, the characteristic of the one or more detection models includes one of the following: the highest possible probability of the one or more detection models, or the range of the one or more detection models.
[0148] In Example 56, the subject matter according to Examples 49-55 includes: wherein, the operation further includes: determining the uncertainty range based on the characteristics of one or more detection models and based on the defined capabilities of the ECC.
[0149] In Example 57, the subject matter according to Examples 49-56 includes: wherein, the size of the uncertainty range is fixed.
[0150] In Example 58, the subject matter according to Examples 49-57 includes: wherein, the size of the uncertainty range is dynamically updated in response to a change in one of the capabilities of the ECC or the characteristics of one or more detection models.
[0151] Example 59 is a device for receiving data over an optical communication path, the method including: a unit for determining that a photon count of photons generated by a light source at a transmitter is within a defined uncertainty range; a unit for, in response to determining that the photon count is within the defined uncertainty range, avoiding using the photon count to assign any bit to a first bit position in first and second data streams during a demultiplexing operation; and a unit for determining a bit assignment for the 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.
[0152] In Example 60, the subject matter according to Example 59 includes: a unit for determining the uncertainty range based on the defined capabilities of the ECC.
[0153] In Example 61, the subject matter according to Example 60 includes, wherein, the defined capabilities of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request.
[0154] In Example 62, the subject matter according to Example 61 includes, wherein, the more lost bits the ECC can correct, the larger the size of the uncertainty range.
[0155] In Example 63, the subject matter according to Examples 59-62 includes: a unit for determining the uncertainty range based on the characteristics of one or more detection models for demultiplexing the photon count into bit assignments for the first and second data streams.
[0156] In Example 64, the subject matter according to Example 63 includes: wherein, the unit for determining the uncertainty range based on the characteristics of the one or more detection models includes: a unit for determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold probability difference based on a first detection model among the one or more detection models and a second detection model among the one or more detection models.
[0157] In Example 65, the subject matter according to Examples 63-64 includes: wherein, the characteristics of the one or more detection models include one of the following: the highest possible probability of the one or more detection models, or the range of the one or more detection models.
[0158] In Example 66, the subject matter according to Examples 59-65 includes: a unit for determining the uncertainty range based on the characteristics of one or more detection models and based on the defined capabilities of the ECC.
[0159] In Example 67, the subject matter according to Examples 59-66 includes: wherein, the size of the uncertainty range is fixed.
[0160] In Example 68, the subject matter according to Examples 59-67 includes: wherein, the size of the uncertainty range is dynamically updated in response to a change in one of the capabilities of the ECC or the characteristics of one or more detection models.
[0161] Example 69 is at least one machine-readable medium that includes instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any one of Examples 1-68.
[0162] Example 70 is an apparatus that includes units for implementing any one of Examples 1-68.
[0163] Example 71 is a system for implementing any one of Examples 1-68.
[0164] Example 72 is a method for implementing any one of Examples 1-68.
Claims
1. A method for receiving multiplexed data over an optical communication path, the method comprising: using a hardware processor at a receiver: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted at different power levels at the same wavelength over the optical communication path by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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 bit value assignments for each bit position among the plurality of bit positions other than the first bit position by assigning values in the first and second data streams from each corresponding photon count using the plurality of detection models; and generating a value corresponding to the first bit position 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 according to claim 1, further comprising: determining the uncertainty range based on defined characteristics of the ECC.
3. The method according to claim 2, wherein The defined characteristics of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein the more lost bits the ECC can correct, the larger the size of the uncertainty range.
4. The method according to claim 1, further comprising: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.
5. The method according to claim 4, wherein Determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold of a probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models.
6. The method according to claim 4, wherein Determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on one of: the highest possible probability of one of the plurality of detection models, and the range of one of the plurality of detection models.
7. The method according to claim 1, further comprising: adjusting the size of the uncertainty range based on a ratio of instances in which photon counts are 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 including: generating a plurality of photon counts corresponding to respective multiple bit positions of first and second data streams, the first and second data streams being transmitted at different power levels at the same wavelength over the optical communication path by selective activation of one or more light sources; determining that a first photon count corresponding to a first bit position among the plurality of photon counts 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, for each bit position among the plurality of bit positions other than the first bit position, determine a bit value assignment by using the plurality of detection models to assign values in the first and second data streams from each corresponding photon count; and 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, generate a value corresponding to the first bit position for the first and second data streams.
9. The computing device according to claim 8, wherein, The operation further includes: determining the uncertainty range based on defined characteristics of the ECC.
10. The computing device according to claim 9, wherein, The defined characteristics of the ECC include the number of lost bits that the ECC can correct without triggering a retransmission request, and wherein, the more lost bits the ECC can correct, the larger the size of the uncertainty range.
11. The computing device according to claim 8, wherein, The operation further includes: determining the uncertainty range based on characteristics of at least one of the plurality of detection models.
12. The computing device according to claim 11, wherein, The operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes: determining the uncertainty range based on a plurality of photon counts that determine a probability difference greater than a threshold of the probability difference according to a first detection model among the plurality of detection models and a second detection model among the plurality of detection models.
13. The computing device according to claim 11, wherein, The operation of determining the uncertainty range based on characteristics of at least one of the plurality of detection models includes determining the uncertainty range based on one of the following: the highest possible probability of one of the plurality of detection models, and the range of one of the plurality of detection models.
14. The computing device according to claim 8, wherein, The operation further includes: adjusting the size of the uncertainty range based on a ratio of instances in which the photon count is within the defined uncertainty range.
15. A machine-readable medium storing instructions for receiving multiplexed data via an optical communication path, the instructions when executed by a machine cause the machine to perform operations including the following: Generate a plurality of photon counts corresponding to respective pluralities of bit positions of first and second data streams, the first and second data streams being transmitted at different power levels at the same wavelength via selective activation of one or more light sources on the optical communication path; Determine that a first photon count corresponding to a first bit position among the plurality of photon counts 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, for each bit position among the plurality of bit positions other than the first bit position, determine a bit value assignment by using the plurality of detection models to assign values in the first and second data streams from each corresponding photon count; and 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, generate a value corresponding to the first bit position for the first and second data streams.
Citation Information
Patent Citations
Optical receiving device
US20130216219A1