Error correction in quantum telecommunications system
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
- Filing Date
- 2023-07-11
- Publication Date
- 2026-05-20
AI Technical Summary
Current methods for error correction in quantum telecommunications are inefficient due to the NP-hard nature of the maximum independent set problem, which becomes computationally expensive for asymmetric channels, and lack effective solutions for both error correction and detection in such channels.
A computationally efficient method is introduced that creates a strictly layered, asymmetric graph to select codewords for error correction and detection, allowing for efficient encoding and decoding in asymmetric channels by determining the maximum number of transmission errors and using a greedy algorithm to generate a complete list of codewords.
This approach significantly reduces computational complexity and enables efficient error correction and detection in quantum telecommunications, outperforming existing methods like Cliquer by generating codewords faster while maintaining high accuracy and completeness.
Smart Images

Figure SE2023050731_16012025_PF_FP_ABST
Abstract
Description
[0001] ERROR CORRECTION IN QUANTUM TELECOMMUNICATIONS SYSTEM
[0002] TECHNICAL FIELD
[0003] The disclosure relates generally to methods and apparatuses for error correction and error detection. More specifically, the disclosure relates to methods and apparatuses for error correcting and error detecting encoding of information in a quantum telecommunications system. Also disclosed are related a telecommunications network node, a computer program, and a computer program product.
[0004] BACKGROUND
[0005] There are two possible states for bits in classical computing: 1 and 0. These states are well studied both theoretically as well as experimentally, and there are ways to discover when the bit which is registered at one end is not in the same state as the bit which was sent, as well as methods to correct the erroneous bit. In quantum computing, the states are instead known as H, V, and 0. In this scenario, H and V represent excited states which may lose its energy to become the state 0, but no other errors may occur. This is an asymmetric channel - errors can only occur in one direction - which is much less studied. There is a need to find words which may be used to encode transmitted data in such a way that the receiver can recover the transmitted word provided fewer than some maximum number of transmission errors occurred.
[0006] The standard way in the art to solve this problem is to calculate the maximum independent set of the graph created by the words and the connections (as created by potential transmission errors). The maximum independent set of a graph is defined as the largest group of nodes in the graph such that no two nodes are directly connected by an edge. The maximum independent set problem is equivalent to the problem of finding a maximum clique, and both problems are considered to be NP-hard. Finding the maximum independent set thus becomes prohibitively expensive in terms of computing power very quickly as the size of the graph, and hence the number of bits used to encode the information, grows. More efficient algorithms for finding the maximum independent set also assume that the graph is symmetric, which is not the case for the graph in the quantum case. The fastest maximum independent set solving method is a program called Cliquer, based on ideas developed in Ostergard, P. R. J., “A fast algorithm for the maximum clique problem” Discrete Applied Mathematics 120 (2002), 197-207. It cannot be used in the quantum case, since the channel and resulting graph is asymmetric. To use Cliquer to solve the quantum case, the asymmetric graph must be modified to incorporate additional edges to make the graph symmetric. Cliquer is then applied to the resulting symmetric graph to find codewords. Additionally, the problem is NP- hard, so the complexity grows exponentially with the size of the graph. As an example, a basic virtual machine solving the problem using Cliquer may take less than a second to discover an optimal set of codewords of length 4 for the quantum case, while the codeword for length 5 may run for several days before crashing without producing results.
[0007] Once a set of codewords has been established, they may be used to correct errors in transmissions. If a receiver receives a word through a communications channel, the receiver may or may not contain an error. The traditional way of determining if there is an error, and, if so, what the transmitted codeword was, is to obtain a table of codewords and possible related words with errors, the words with errors often referred to as syndrome words. A problem arising from this method is storage - such tables may be very large, which can cause problems in edge deployments with limited storage.
[0008] An alternative but related set of codewords is a set of codewords which include codewords giving rise to syndrome words which show that an error has occurred, but which cannot be corrected to a unique codeword. Such sets of codewords provide error detection for a number of errors, and error correction for a smaller number of errors. There are no currently available methods for asymmetric channels for finding codeword sets that allow for both correction and further detection of errors.
[0009] SUMMARY
[0010] It is an object of the present disclosure to provide a computationally efficient method for finding error correcting and error detecting sets of codewords for asymmetric communication channels.
[0011] According to a first aspect of the disclosure, there is a computer-implemented method for error correcting encoding of source data for transmission in a communications network. The source data comprises classical bit-strings of information to be encoded as qutrits with potential states represented as H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H
[0012] 0 and V ~ * 0 are the only possible transmission errors. An encoding is a mapping from the source data to encoded data, wherein the elements of the encoded data are codewords, and each codeword comprises one or more letters. The method comprises determining a maximum number of transmission errors to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver. The method further comprises creating a strictly layered, asymmetric graph of words constituting potential codewords wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error. The method further comprises selecting a codeword from the lowest non-empty layer of the graph and adding the selected codeword to a list of codewords. The method further comprises encoding the source data using the selected codewords from the list of codewords and initiating a transmission of the encoded data. Hereby is achieved a computationally efficient method of finding a codeword for error correcting encoding in an asymmetric channel.
[0013] According to an embodiment of the first aspect, the codeword consisting of all Os is excluded from the graph.
[0014] According to an embodiment of the first aspect, selecting a codeword from the lowest non-empty layer of the graph comprises selecting a codeword at random among the codewords in the lowest non-empty layer of the graph.
[0015] According to an embodiment of the first aspect, the method further comprises removing the selected first codeword from the graph. The method further comprises removing all words from the graph which are above the selected codeword and which can become the selected codeword by at most the determined number of errors. The method further comprises removing all words from the graph which are below the selected codeword and which the selected codeword can become by at most the determined number of errors. The method further comprises removing all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
[0016] According to an embodiment of the first aspect, the method further comprises selecting a second codeword from the lowest non-empty layer of the graph and adding the selected second codeword to the list of codewords. The method further comprises removing all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most the determined number of errors and removing all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most the determined number of errors. Finally, the method comprises removing all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
[0017] According to an embodiment of the first aspect, the method further comprises repeating the steps of the previous embodiment until the graph is empty. Hereby is achieved that a complete list of codewords may be generated in a computationally efficient manner.
[0018] According to a second aspect of the disclosure, there is a computer-implemented method for error correcting decoding of data received in a communications network. A decoding is a mapping from the received data to decoded data, wherein the elements of the received data are words, each word comprising one or more letters. The method comprises obtaining a list of known codewords and an indication of the maximum number of transmission errors which may be corrected, wherein a transmission error comprises one letter of a received word being recorded as a different letter by the receiver than what was transmitted. The method further comprises receiving encoded data encoded according to any embodiment of the first aspect. The method further comprises determining if the received word is in the list of codewords.
[0019] If the received word is in the list of codewords the method comprises outputting the decoding of the received word. If the received word is not in the list of codewords the method comprises determining which codeword in the list of codewords can become the received word in at most the determined number of errors and outputting the decoding of the determined codeword as the corrected word. Hereby is achieved a computationally efficient method of decoding a codeword for error correcting encoding in an asymmetric channel.
[0020] According to a third aspect of the disclosure, there is a computer-implemented method for error correcting and error detecting encoding of data for transmission in a communications network. An encoding is a mapping from the source data to encoded data, wherein the source data comprises classical bit-strings of information to be encoded as qutrits with potential states H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors. The elements of the encoded data are codewords, each codeword comprising one or more letters. The method comprises determining the maximum number of transmission errors, c, to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver. The method further comprises determining the maximum number of transmission errors, d, to further detect in each codeword, and defining dc= c + d. The method further comprises creating a strictly layered, asymmetric graph of words constituting potential codewords wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error. The method further comprises selecting a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer and adding the selected codeword to a list of codewords. The method further comprises encoding the source data using the selected codewords from the list of codewords and initiating a transmission of the encoded data. Hereby is achieved a computationally efficient method of finding a codeword for error correcting and error detecting encoding in an asymmetric channel.
[0021] According to an embodiment of the third aspect, the codeword consisting of all Os is excluded from the graph.
[0022] According to an embodiment of the third aspect, selecting a codeword from one of the c + 1 highest layers of the graph such that the highest layer is non-empty comprises selecting a codeword at random among the words in the c + 1 highest layers such that the highest layer is the highest non-empty layer.
[0023] According to an embodiment of the third aspect, the method further comprises removing the selected codeword from the graph. The method further comprises removing all words from the graph which are above the selected codeword and which can become the selected codeword by at most dcerrors.
[0024] The method further comprises removing all words from the graph which are below the selected codeword and which the selected codeword can become by at most c errors, A words. The method further comprises removing all words from the graph which are below the selected codeword and which the selected codeword can become by at most dcerrors, B words. The method further comprises removing all words from the graph which are above an A word and which can become the A word by at most dcerrors. The method further comprises removing all words from the graph which are above a B word and which can become the B word by at most c errors.
[0025] According to an embodiment of the third aspect, the method further comprises selecting a second codeword from the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer and adding the selected second codeword to the list of codewords. The method further comprises removing the selected second codeword from the graph. The method further comprises removing all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most dcerrors. The method further comprises removing all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most c errors, A words. The method further comprises removing all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most dcerrors, B words. The method further comprises removing all words from the graph which are above an A word and which can become the A word by at most dcerrors. The method further comprises removing all words from the graph which are above a B word and which can become the B word by at most c errors. According to an embodiment of the third aspect, the method further comprises repeating the steps of the previous embodiment until the graph is empty.
[0026] According to a fourth aspect of the disclosure, there is a computer-implemented method for error correcting and error detecting decoding of data received in a communications network, wherein a decoding is a mapping from the received data to decoded classical data. The elements of the received data form words, each word comprising one or more letters. The method comprises obtaining a list of known codewords and an indication of the maximum number of transmission errors to correct in each word and the maximum number of transmission errors to further detect in each word, wherein a transmission error comprises one letter of a transmitted codeword being recorded as a different letter in a corresponding word received by a receiver. The method further comprises receiving encoded data according to any embodiment of the third aspect and determining if the received word is in the list of codewords. If the received word is in the list of codewords the method comprises outputting the decoding of received word. If the received word is not in the list of codewords the method comprises determining if a codeword in the list of codewords can become the received word in at most c errors. If yes, the method comprises outputting the decoding of the codeword as the corrected word, else the method comprises indicating that the received word contains an uncorrectable error. Hereby is achieved a computationally efficient method of decoding a codeword for error correcting and error detecting encoding in an asymmetric channel.
[0027] According to a fifth aspect of the disclosure, there is an apparatus for error correcting encoding of source data for transmission in a communications network, wherein the source data comprises classical bit-strings of information to be encoded as qutrits with potential states represented as H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors. An encoding is a mapping from the source data to encoded data, wherein the elements of the encoded data are codewords, and each codeword comprises one or more letters. The apparatus is configured to determine a maximum number of transmission errors to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver. The apparatus is further configured to create a strictly layered, asymmetric graph of words constituting potential codewords wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error. The apparatus is further configured to select a codeword from the lowest non-empty layer of the graph and add the selected codeword to a list of codewords. The apparatus is further configured to encode the source data using the selected codewords from the list of codewords and initiate a transmission of the encoded data.
[0028] According to an embodiment of the fifth aspect, selecting a codeword from the lowest non-empty layer of the graph comprises selecting a codeword at random among the codewords in the lowest non-empty layer of the graph.
[0029] According to an embodiment of the fifth aspect, the apparatus is further configured to remove the selected first codeword from the graph. The apparatus is further configured to remove all words from the graph which are above the selected codeword and which can become the selected codeword by at most the determined number of errors. The apparatus is further configured to remove all words from the graph which are below the selected codeword and which the selected codeword can become by at most the determined number of errors. The apparatus is further configured to remove all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
[0030] According to an embodiment of the fifth aspect, the apparatus is further configured to select a second codeword from the lowest non-empty layer of the graph and add the selected second codeword to the list of codewords. The apparatus is further configured to remove the selected second codeword from the graph. The apparatus is further configured to remove all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most the determined number of errors. The apparatus is further configured to remove all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most the determined number of errors. The apparatus is further configured to remove all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
[0031] According to an embodiment of the fifth aspect, the apparatus is further configured to repeat the steps of the previous embodiment until the graph is empty.
[0032] According to a sixth aspect of the disclosure, there is an apparatus for error correcting decoding of data received in a communications network, wherein a decoding is a mapping from the received data to decoded data. The elements of the received data are words, each word comprising one or more letters. The apparatus is configured to obtain a list of known codewords and an indication of the maximum number of transmission errors which may be corrected, wherein a transmission error comprises one letter of a received word being recorded as a different letter by the receiver than what was transmitted. The apparatus is further configured to receive encoded data encoded according to any embodiment of the first aspect and determine if the received word is in the list of codewords. If the received word is in the list of codewords the apparatus is configured to output the decoding of the received word. If the received word is not in the list of codewords the apparatus is configured to determine which codeword in the list of codewords can become the received word in at most the determined number of errors and output the decoding of the determined codeword as the corrected word.
[0033] According to an seventh aspect of the disclosure, there is an apparatus for error correcting and error detecting encoding of data for transmission in a communications network, wherein an encoding is a mapping from the source data to encoded data. The source data comprises classical bit-strings of information to be encoded as qutrits with potential states H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors. The elements of the encoded data are codewords, each codeword comprising one or more letters. The apparatus is configured to determine the maximum number of transmission errors, c, to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver. The apparatus is further configured to determine the maximum number of transmission errors, d, to further detect in each codeword, and defining dc= c + d. The apparatus is further configured to create a strictly layered, asymmetric graph of words constituting potential codewords wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error. The apparatus is further configured to select a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer and add the selected codeword to a list of codewords. The apparatus is further configured to encode the source data using the selected codewords from the list of codewords and initiate a transmission of the encoded data.
[0034] According to an embodiment of the seventh aspect, select a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest nonempty layer comprises selecting a codeword at random among the words in the c + 1 highest layers such that the highest layer is the highest non-empty layer.
[0035] According to an embodiment of the seventh aspect, the apparatus is further configured to remove the selected codeword from the graph. The apparatus is further configured to remove all words from the graph which are above the selected codeword and which can become the selected codeword by at most dcerrors. The apparatus is further configured to remove all words from the graph which are below the selected codeword and which the selected codeword can become by at most c errors, A words. The apparatus is further configured to remove all words from the graph which are below the selected codeword and which the selected codeword can become by at most dcerrors, B words. The apparatus is further configured to remove all words from the graph which are above an A word and which can become the A word by at most dcerrors. The apparatus is further configured to remove all words from the graph which are above a B word and which can become the B word by at most c errors.
[0036] According to an embodiment of the seventh aspect, the apparatus is further configured to select a second codeword from the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer and add the selected second codeword to the list of codewords. The apparatus is further configured to remove the selected second codeword from the graph. The apparatus is further configured to remove all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most dcerrors. The apparatus is further configured to remove all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most c errors, A words. The apparatus is further configured to remove all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most dcerrors, B words. The apparatus is further configured to remove all words from the graph which are above an A word and which can become the A word by at most dcerrors. The apparatus is further configured to remove all words from the graph which are above a B word and which can become the B word by at most c errors.
[0037] According to an embodiment of the seventh aspect, the apparatus is further configured to repeat the steps of the previous embodiment until the graph is empty.
[0038] According to an eighth aspect of the disclosure, there is an apparatus for error correcting and error detecting decoding of data received in a communications network. A decoding is a mapping from the received data to decoded classical data, wherein the elements of the received data form words, each word comprising one or more letters. The apparatus is configured to obtain a list of known codewords and an indication of the maximum number of transmission errors to correct in each word and the maximum number of transmission errors to further detect in each word, wherein a transmission error comprises one letter of a transmitted codeword being recorded as a different letter in a corresponding word received by a receiver. The apparatus is further configured to receive encoded data according to any embodiment of the third aspect and determine if the received word is in the list of codewords. If the received word is in the list of codewords the apparatus is configured to output the decoding of the received word. If the received word is not in the list of codewords the apparatus is configured to determine if a codeword in the list of codewords can become the received word in at most c errors. If so, the apparatus is configured to output the decoding of codeword as the corrected word, else the apparatus is configured to indicate that the received word contains an uncorrectable error.
[0039] According to a ninth aspect of the disclosure, there is network node in a communication system comprising an apparatus according to the fifth, sixth, seventh, or eighth aspect of the disclosure. The technical advantages of the methods of the first through fourth aspect apply, mutatis mutandis, also to the corresponding apparatuses.
[0040] BRIEF DESCRIPTION OF THE DRAWINGS
[0041] Fig. 1 depicts a flowchart of a method according to an embodiment of the disclosure.
[0042] Fig. 2 depicts a strictly layered asymmetric graph according to an embodiment of the disclosure.
[0043] Fig. 3 depicts a flowchart of a method according to an embodiment of the disclosure.
[0044] Fig. 4 depicts a coding / decoding table according to an embodiment of the disclosure.
[0045] Fig. 5 depicts a flowchart of a method according to an embodiment of the disclosure.
[0046] Fig. 6 depicts a flowchart of a method according to an embodiment of the disclosure.
[0047] Fig. 7 depicts an asymmetric graph according to an embodiment of the disclosure.
[0048] Fig. 8 depicts an exemplary communication system according to an embodiment of the disclosure.
[0049] Fig. 9 depicts an exemplary network node according to an embodiment of the disclosure.
[0050] Fig. 10 depicts the average accuracy of a method according to the disclosure obtained in a simulation.
[0051] Fig. 11 depicts the quality of the average codeword length found for different block lengths in a simulation.
[0052] Fig. 12a depicts lengths of the codeword list obtained in a simulation.
[0053] Fig. 12b depicts lengths of the codeword list obtained in a simulation. Fig. 13 depicts a comparison of the time for the method of the disclosure and Cliquer.
[0054] DETAILED DESCRIPTION OF THE DRAWINGS
[0055] Fig. 1 depicts a flowchart of a first aspect 100 according to the disclosure. The first aspect is a computer-implemented method for error correcting encoding of data for transmission in a communications network. An encoding is an injective mapping from source data, that is, data to be transmitted, to encoded data. The elements of the encoded data may be referred to as codewords, where each codeword comprises one or more letters.
[0056] An error correcting encoding of data is an encoding such that a received word can be corrected back to the original codeword in case transmission errors occur. A transmission error comprises one letter of a transmitted codeword being recorded as a different letter by the receiver. Transmission errors may occur due to noise in a communication channel between the transmitting device and the receiving device. Noise may for example comprise physical flaws in wired connections. Noise may comprise interference from other nearby communication channels. Transmission errors may also occur due to random chance loss of a photon and thus the information carried by the photon. In embodiments, the maximum number of transmission errors which can be corrected is fixed.
[0057] In embodiments of the present disclosure, the only transmission errors that can occur are a symbol representing an excited state being recorded as a ground state. In particular, the errors are H 0 and V 0.
[0058] By way of example, a transmitter may wish to transmit the classical word 11 . With reference to Fig. 4, the word may be encoded as the codeword HOV. The mapping used for the encoding is arbitrary and may be selected by the implementer. In some embodiments, the mapping used for the encoding may be determined in a standard. The received word may be the word H00 - a syndrome word for HOV. In this example, a single transmission error has occurred whereby the third letter of the transmitted codeword, V, is received as a different letter, 0, by the receiver. An objective of the disclosed first method is to provide a method for choosing the codewords such that the original codeword can be recovered and correctly decoded to the word 11 by the receiver. The first method comprises determining 101 a maximum number of transmission errors to correct. Determining the maximum number of transmission errors to correct may comprise estimating the number of errors that are likely to occur considering the known properties of the communication channel. Determining the maximum number of transmission errors to correct may comprise determining the number of codewords that will be needed to transmit the desired information, taking into consideration that correcting a larger number of errors will eliminate more potential codewords, thereby reducing the size of the set of potential codewords and hence the complexity of the information that can be transmitted.
[0059] The first method further comprises creating 102 a strictly layered asymmetric graph of potential codewords. A mathematical graph is a mathematical structure encoding pairwise relationships between discrete objects. For the purpose of the present disclosure, a graph refers to a finite graph consisting of a finite set of vertices, and edges encoding the pairwise relationships between vertices. A layered graph is a directed graph which may be drawn so that the vertices are sorted into horizontal layers ...,Snwhere the edges are all directed upwards or the edges are all directed downwards. A strictly layered graph is, for the purpose of this disclosure, a layered graph such that for a vertex v e Shv has an edge connecting it to u e Sj if and only if j e {i - 1, i + 1}. A strictly layered asymmetric graph is further restricted so that the edges have an associated direction, that is, the relationships encoded by the edges are ordered pairs of vertices. Hence, a strictly layered asymmetric graph is a graph such that all edges connect a vertex in set Sfi+1} to a vertex in set for some i e {1, ...,n - 1}.
[0060] With reference to Fig. 2, it may be desired to obtain a list of potential codewords of length 3, such that at most one error may be corrected. The created graph 200 comprises four layers, where the lowest layer Si comprises the single codeword 000, layer S2comprises codewords with one non-zero letter, S3comprises codewords with two non-zero letters, and S4comprises codewords comprised exclusively of the letters H and V.
[0061] Each node of the graph represents a word which is a potential codeword and a first word is connected to a second word by a directed edge towards the second word if and only if the first codeword can turn into the second codeword by one transmission error. Returning to the example above, in a graph 200 of potential codewords of length three, the words HOV and H00 would each be represented by a node, with an edge from HOV to H00, since HOV can turn into H00 by one transmission error.
[0062] With reference to Fig. 2 and the example, the codeword HOV is connected by an arrow to the word H00, indicating that HOV may turn into H00 by a single transmission error.
[0063] The first method further comprises selecting 103 a codeword from the lowest nonempty layer of the graph. The lowest layer of the graph is the set of nodes S±. With reference to Fig. 2, the lowest layer of the graph 200 is the layer comprised of the single node labelled 000. Hence the word 000 is selected as the first potential codeword. The lowest non-empty layer of the graph is the set where i is the smallest integer such that 0. Selecting a codeword comprises selecting the word represented by one of the nodes in the layer In embodiments of the first method, selecting a codeword comprises selecting a codeword at random from the set Sj. In other embodiments, selecting a codeword comprises selecting the first word after ordering the words in the layer by a suitable ordering. In embodiments, the ordering may be a lexicographic ordering.
[0064] The first method further comprises adding 103a the selected codeword to a list of codewords. The list of codewords is a list comprising all words which have been selected to be used for encoding data to be transmitted in the communications channel.
[0065] The first method further comprises encoding 104 the source data using the selected codewords from the list of codewords. Encoding the classical source data using the selected codewords comprises determining a mapping from the source data to the selected codewords. Encoding the source data thus comprises selecting, depending on the number of available codewords, a bit string to map to each codeword for encoding. For example, if there are 8 available codewords, each codeword can encode blocks of 3 bits of information and each block of length 3 can be encoded as a distinct codeword. Moreover, with reference to Fig. 4, codewords may be combined or repeated to obtain more robust results.
[0066] Finally, the first method comprises initiating 105 a transmission of the encoded data. Initiating a transmission of the encoded data comprises taking an action towards a transmission of the encoded data. The first method may, in embodiments, be performed in a module of a network not equipped to transmit data. In such embodiments, initiating a transmission may comprise making the encoded data available to a module or node equipped to transmit data. In other embodiments, the first method may be performed by the same node which transmits the data. In such embodiments, initiating a transmission may comprise transmitting the encoded data.
[0067] In some embodiments of the first method, the word comprised of all Os is excluded from the graph. Excluding the word comprised of all Os from the graph comprises marking the word with all Os as unavailable as a codeword before selecting any codewords. Excluding the word with all Os guarantees that if all possible errors occur, i.e. the received word is the word comprised of all Os, the received word is always recognized as incorrect which can be beneficial in cases where a significant amount of errors could occur.
[0068] In embodiments of the first method, the first method further comprises removing 106 the node representing the selected first codeword from the graph. In such embodiments, the first method further comprises removing 107 all words from the graph which are above the selected codeword and which can become the selected codeword by at most the determined number of errors. In such embodiments, the first method further comprises removing 108 all words from the graph which are below the selected first codeword and which the selected first codeword can become by at most the determined number of errors. Finally, the first method may comprise removing 109 all words from the graph which are above a word which was removed in the previous step and which can become the word by at most the determined number of errors.
[0069] Removing the node representing the selected first codeword from the graph corresponds to marking the node representing the selected first codeword as unavailable as a potential codeword.
[0070] Removing all words from the graph which are above the selected codeword and which can become the selected codeword by at most the selected number of errors comprises finding all nodes in the graph which correspond to a word which can become the selected codeword in at most the selected number of errors and removing all such nodes from the graph. Given the structure of the graph, finding such nodes is very straight-forward. These nodes are the nodes with a path of length at most the selected number of errors to the selected codeword. Since the graph is strictly layered, such nodes are only found in layers at most the selected number of errors above the layer of the selected codeword. A suitable greedy algorithm can find all such nodes very efficiently, or a list of such nodes can be generated directly.
[0071] Removing all words from the graph which are below the selected codeword and which the selected codeword can become by at most the determined number of errors corresponds to the same procedure as above, only eliminating words below the selected codeword in the graph. Again, because of the structure of the graph, this can be achieved efficiently.
[0072] Finally, this embodiment of the first method comprises removing all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors. This step removes words which, through transmission errors, may cause conflicts with the selected codeword. With reference to Fig. 2 and the worked example, the node representing the potential codeword 000 is removed from the graph (indicated by dashed lines) and added to a list of potential codewords. Next, all words which can become the word 000 are removed from the graph. In this example, that is all the words in the layer Si (indicated by parallel lines through the nodes). Since there are no nodes below the word 000, no further steps are necessary.
[0073] In embodiments, the first method may further comprise selecting 110 a second codeword from the lowest non-empty layer of the graph. Selecting a codeword comprises selecting the word represented by one of the nodes in the layer In embodiments of the first method, selecting a codeword comprises selecting a codeword at random from the set In other embodiments, selecting a codeword comprises selecting the first word after ordering the words in the layer by a suitable ordering. In embodiments, the ordering may be a lexicographic ordering.
[0074] With reference to Fig. 2 and the worked example, the selecting a second codeword comprises selecting a codeword from layer S3. In this example, the word H0V is selected as a codeword.
[0075] In embodiments, the first method may further comprise adding 110a the selected second codeword to the list of codewords. In embodiment, the first method may further comprise removing 111 the selected second codeword from the graph. In embodiments, the first method may further comprise removing 107 all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most the determined number of errors. In embodiments, the first method may further comprise removing 108 all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most the determined number of errors. In embodiments, the first method may further comprise removing 109 all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
[0076] Embodiments of the first method may further comprise repeating the steps of selecting a second codeword and removing potential interfering words until the graph is the empty graph. Performing the steps of the first method until the graph is empty will result in a large list of codewords. In simulations, the length of the resulting list of codewords is usually within 10% of the optimal number of codewords. However, the method is considerably faster than any method which can find the optimal number of codewords, thus rendering the small loss in codewords in exchange for a faster method of finding them an acceptable compromise.
[0077] With reference to Fig. 2 and the worked example, the word HOV would be added to the list of codewords, already comprising the word 000. Next, all words above HOV which can become HOV in one transmission error are removed from the graph. This is the words HHV and HW, indicated by parallel lines though the nodes. Next, all the words that HOV can become by one transmission error are removed. This is the words H00 and 00V, which have already been removed in previous steps. Finally, all words which are above a word which HOV can become by one transmission error are removed from the graph. This corresponds to the words HH0, 0HV, H0H, HV0, OW, and V0V (indicated by marking the nodes with horizontal lines in the figure). After selecting the second potential codeword, there are thus five remaining words in the third layer and six remaining words in the fourth layer.
[0078] Fig. 3 depicts a second aspect of the disclosure. The second aspect of the disclosure is a computer-implemented method 300 for error correcting decoding of data received in a communications network. A decoding is a mapping from the received data to decoded data, wherein the elements of the received data are words, each word comprising one or more letters. An error correcting decoding of data is a decoding which can detect when a transmission error has occurred and correct the transmission error, thus enabling the recovery of the transmitted data.
[0079] Returning to the worked example, the purpose of the second method is to enable the correction of the word H00 into the word HOV, which can be decoded into the transmitted word 11 .
[0080] The second method comprises obtaining 301 a list of known codewords and an indication of the maximum number of transmission errors which may be corrected. The list of known codewords and maximum number of transmission errors which may be corrected may, in embodiments, have been communicated previously. The list of known codewords may, for example, have been specified in a standard. The maximum number of transmission errors to correct may have been communicated previously or specified by a standard document. Alternatively, the maximum number of transmission errors may, for example, be iteratively adjusted up or down until an acceptable frequency of uncorrectable errors is reached depending on the use case. Alternatively or in addition, the maximum number of transmission errors may be adjusted until a quality criterion for the channel is met. Alternatively, the maximum number of errors to correct may be calculated directly from the list of known codewords. Alternatively, the maximum number of transmission errors to correct may be calculated as a function of the channel quality between sender and receiver, according to a predetermined formula. In some embodiments, the receiver may have access to multiple lists of potential codewords, each list of potential codewords associated to a channel quality.
[0081] The second method further comprises receiving 302 encoded data encoded according to the first method of the disclosure. Receiving encoded data may comprise receiving it through a wired or wireless communication channel. The encoded data may comprise one or more received words, wherein each received word comprises one or more letters.
[0082] The second method further comprises determining 303, for each received word, if the received word is in the list of codewords. Determining if the received word is in the list of codewords may comprise using a suitable algorithm to search the list of codewords for the received word.
[0083] With reference to the worked example, the receiver would receive the word H00 and discover that it is not in the list of potential codewords.
[0084] If the received word is in the list of codewords, the second method further comprises decoding the received word and outputting 304 the decoded received word. If the received word is in the list of codewords, then the receiver can be certain that either there were no transmission errors, or more than the determined number of errors occurred. If there were no transmission errors, the received word can be decoded to recover the message. If more than the determined number of errors occurred, the resulting received word may be in the list of codewords, but the encoding does not allow for detection or correction of such incidents. In such cases, where more than the determined number of errors occur, wrong information will be decoded from the received word.
[0085] If the received word is not in the list of codewords, the second method further comprises determining 305 which codeword in the list of codewords can become the received word in at most the determined number of errors. The second method further comprises decoding the determined codeword and outputting 306 the decoded word. Since the codewords and words exist in a strictly layered asymmetric graph structure, determining which codeword is within a distance of at most the determined number of errors of the received word can be done in a computationally efficient manner. Moreover, there is only one such codeword. Hence, if at most the determined number of errors occurred, the received word can be uniquely corrected and decoded and the original message recovered. If more than the determined number of errors occur, the received word may be corrected to the wrong codeword, but such errors cannot be detected or corrected.
[0086] Again with reference to the worked example and Fig. 2, the receiver would determine that the only word which is a potential codeword and which can turn into H00 by at most one error is the word HOV. The receiver would thus deduce that H00 is a syndrome word and correct it to HOV and output the decoding of the word HOV: 11 . However, if two transmission errors occurred the received word would be 000, which is in the list of codewords and the decoding of the word 000, 00, would be outputted, inadvertently outputting the wrong message.
[0087] Fig. 4 depicts a table of codewords and corresponding data for transmission related to the graph in Fig. 2. The first table 401 depicts a set of codewords sufficient to encode any block of length 1 while correcting any one possible transmission error. The second table 402 depicts a set of codewords sufficient to encode any block of length 2 while correcting a transmission error as in the worked example. The third table 403 depicts an embodiment where a first set of codewords of length 3 and a second set of codewords of length 3 are combined to encode any block of length 5. Combining shorter codewords may, in some embodiments, be more efficient than determining a single longer set of codewords to encode longer blocks.
[0088] Fig. 5 depicts a third aspect 500 of the disclosure. The third aspect of the disclosure is a computer-implemented method for error correcting and error detecting encoding of data for transmission in a communications network. An error correcting and error detecting encoding of data is an encoding such that there is some number of errors, c, which can be corrected, and some number of errors, d, which can be detected but not corrected. Such encodings result in a total number dc= c + d of errors which may be detected in each word, and words with at most c errors can also be corrected. Compared to embodiments of the first aspect, the third aspect enables error detection as well as error correction.
[0089] The third method comprises determining 501 , 502 the numbers c and d. Determining the numbers c and d may comprise evaluating the channel quality. Evaluating the channel quality may involve estimating a channel quality based on known quantities such as distance and channel medium. Evaluating a channel quality may involve evaluating historical channel quality data.
[0090] By way of example, suppose the number c is set to 1 , and d is set to 1 . Hence the total dcnumber of errors that can be detected is 2, and received words with at most 1 error can also be corrected.
[0091] The third method further comprises creating 503 a strictly layered, asymmetric graph of potential codewords. The graph of the third method is identical to the graph of the first method. Fig. 7 depicts a subset of a graph 700 created according to the method. A subset is depicted for the sake of clarity, since the complete graph comprises 34nodes and a large number of edges. The graph in Fig. 7 shows the word HHW, along with all nodes which are marked as unavailable by the method when removing words after selecting HHW as a codeword. Note that there are words located in the second and fourth layer of the graph in Fig. 7 that belong in the third layer but were placed in the second or fourth for clarity reasons.
[0092] The third method further comprises selecting 504 a codeword from one of the c+1 highest layers of the graph such that the highest layer is the highest non-empty layer. Selecting a codeword comprises selecting the word represented by one of the nodes in the layer S ...,Si+c, where Sfi+C} is the highest nonempty layer. Note that in some embodiments of the method, c = 0 (no errors are corrected, errors are only detected). In embodiments of the first method, selecting a codeword comprises selecting a codeword at random from the set Sk. In other embodiments, selecting a codeword comprises selecting the first word after ordering the words in the layer or layers by a suitable ordering. In embodiments, the ordering may be a lexicographic ordering. The ordering may be within each layer, or ordering all the words from all layers together in a single ordering.
[0093] With reference to the worked example in Fig. 7, the selected potential codeword is the word HHW, indicated in the figure by dashed lines. In the example, c = 1 and the codeword is thus selected from any of the highest 2 layers of the graph.
[0094] The third method further comprises adding 505 the selected codeword to a list of codewords. The third method further comprises encoding 506 the source data using the selected codewords from the list of codewords, and initiating 507 a transmission of the encoded data.
[0095] In embodiments of the third method, the codeword consisting of all 0s is excluded from the graph.
[0096] In an embodiment of the third method, the third method further comprises removing 508 the selected codeword from the graph. The third method further comprises removing 509 all words from the graph which are above the selected codeword and which can become the selected codeword by at most dcerrors. The third method further comprises removing 510 all words from the graph which are below the selected codeword and which the selected codeword can become by at most c errors, A words. The third method further comprises removing 511 all words from the graph which are below the selected codeword and which the selected codeword can become by at most dcerrors, B words. The third method further comprises removing 512 all words from the graph which are above an A word and which can become the A word by at most dcerrors. The embodiment of the third method finally comprises removing 513 all words from the graph which are above a B word and which can become the B word by at most c errors.
[0097] With reference to the worked example in Fig. 7, the potential codeword HHW would be added to a list of potential codewords. There are no layers above HHW, so no words need to be removed above the selected potential codeword.
[0098] Next, the A words are removed from the graph. A words are words which HHW may become by at most one error. In this example, the words are HOW, OHW, HHVO, and HHOV. The A words are indicated by a single vertical line through the left side of the node.
[0099] Next, the B words are removed from the graph. B words are words which HHW may become by at most two errors. In the example, these words are 00W, H0V0, H00V, 0H0V, 0HV0, and HHOO. These words are indicated by a single vertical line through the right side of the node.
[0100] Next, all words which are above an A word and which can become the A word in at most two errors are removed from the graph. The A words are all located on the second highest layer of the graph, so only words one layer above have to be considered. In this case, the words above the A words are HWV, VHW, HHVH, and HHHV, also indicated by a line through the left side of the node.
[0101] Finally, all words which are above a B word and which can become the B word by at most one error are removed from the graph. In this example, those words are HWO, VOW, OWV, HOVH, HVOV, HOHV, OHHV, VHOV, OHVH, VHVO, HHHO, and HHOH.
[0102] The third method hence comprises removing words which prevent unique recovery of received words with at most c errors, and words which may cause incorrect correction of received words with between c and dcerrors. The third method may further comprise selecting 514 a second codeword from the c + 1 highest layers of the graph, where the highest layer is the highest non-empty layer. The third method may further comprise adding 514a the selected second codeword to the list of codewords. The third method may further comprise removing 515 the selected second codeword from the graph. The third method may further comprise removing 509 all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most dcerrors. The third method may further comprise removing 510 all words which are below the selected second codeword and which the selected second codeword can become by at most c errors, called A words. The third method may further comprise removing 511 all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most dcerrors, B words. The third method may further comprise removing 512 all words from the graph which are above an A word and which can become the A word by at most dcerrors. The third method may further comprise removing 513 all words from the graph which are above a B word and which can become the B word by at most c errors.
[0103] The third method may further comprise repeating the above steps until the graph is empty.
[0104] Fig. 6 depicts a flowchart of a fourth aspect 600 of the disclosure. The fourth aspect of the disclosure is a computer implemented method for error correcting and error detecting decoding of data received in a communications network.
[0105] The fourth method comprises obtaining 601 a list of known codewords and an indication of the numbers c and d.
[0106] The list of known codewords and the numbers c and d may, in embodiments, have been communicated previously. The list of known codewords may, for example, have been specified in a standard. Alternatively, the numbers c and d may be calculated directly from the list of known codewords. Alternatively, the numbers c and d may be calculated as a function of the channel quality between sender and receiver, according to a predetermined formula. The numbers c and d may, for example, be iteratively adjusted up or down until an acceptable frequency of uncorrectable and / or undetectable errors is reached depending on the use case. Alternatively or in addition, the numbers c and d may be adjusted until a quality criterion for the channel is met. In some embodiments, the receiver may have access to multiple lists of potential codewords, each list of potential codewords associated to a channel quality.
[0107] The fourth method further comprises receiving 602 encoded data encoded according to the third method of the disclosure.
[0108] The fourth method further comprises determining 603 if the received word is in the list of codewords. If the received word is in the list of codewords, the method comprises decoding the received word and outputting 604 the decoded word. The skilled person will note that if the received word comprises more than dcerrors, the received word may be a word in the list of codewords and hence be decoded to the wrong message.
[0109] If the received word is not in the list of codewords, the fourth method further comprises determining 605 if a codeword in the list of codewords is within c errors of the received word. If there is such a codeword, the fourth method comprises decoding the determined codeword and outputting 606 the decoded word. If there is no such word the method comprises indicating 607 that the received word contains an uncorrectable error. If there is no such word, the received word contains more than c errors, but at most dcerrors, which is in the range where the fourth method may detect errors but not correct them.
[0110] Fig. 8 depicts an exemplary communication system 800 which may be configured to implement a method according to any one or more of the aspects of the disclosure. The communication system may comprise a telecommunication network 802 comprising an access network 804 and a core network 806. The core network may comprise a core network node 808 which may be in communication with a host 816. The access network may comprise network nodes 810A, 810B. The access nodes may be in communication with UEs 812A, 812B. Alternatively or in addition, the network nodes may be in communication with a hub 814 which communicates with UEs 812C, 812D.
[0111] Fig. 9 depicts an exemplary network node 900 which may perform any of the methods of the disclosure. The node may be a part of a radio access network, or it may be a part of a core network. In some embodiments of the disclosure, the network node may be a virtual node and / or a node in an open radio access network, O-RAN, where the functionalities of the network node are distributed over multiple physically distinct units. The network node may comprise a communication interface 906, comprising an antenna 910, radio front-end circuitry 918 comprising a filter 920 and an amplifier 922, and a port / terminal 916. The network node may further comprise processing circuitry 905, comprising radio frequency transceiver circuitry 912 and baseband circuitry 914. The radio access node may further comprise a memory 904. The network node may further comprise a power source 908. The network node may further comprise an encoding / decoding apparatus 901 configured to perform a method according to any embodiment of the disclosure. The encoding / decoding apparatus may further comprise a memory 902 and a processor 903. The memory of the encoding / decoding apparatus may further comprise a computer program 923 comprising computer readable instructions, which, when executed by the processor cause the encoding / decoding apparatus to perform one or more methods according to any embodiments of the methods herein disclosed. The encoding / decoding apparatus may further comprise a computer program product 924 comprising a computer readable storage medium on which the computer program is stored.
[0112] The network node may be adapted to receive and / or transmit data either wirelessly, through a wired link, or through some combination of the methods.
[0113] Fig. 10 depicts a table 1000 of the outcome of a simulation of transmitting data encoded according to an embodiment of the disclosure over a noisy channel with between 1 and 3 errors to correct and between 0 and 2 errors to detect. The first column shows the number of errors to correct, the second column shows the number of errors to detect, the third column shows the accuracy of the recovery of the source data, and the fourth column shows a standard deviation of the accuracy. The person skilled in the art can conclude that the method works to recover the original data with some accuracy over a noisy channel.
[0114] Fig. 11 shows a line graph 1100 of the average of the length of the codeword list discovered compared to the longest list discovered in long-running simulations for different block lengths and different combinations of values for c and d. As can been seen in the figure, as the block length increases, the length of the codeword list trends towards at least 90% of the optimal length.
[0115] Fig. 12a shows more detailed results for the average length of the codeword list discovered in repeated simulations for block length 10, with c = 1 and d = 0. For this scenario, no optimal value for the length of the list of codewords is known from
[0116] Cliquer or similar methods.
[0117] Fig. 12b shows more detailed results for the average length of the codeword list discovered in repeated simulations for block length 10, with c = 1 and d = 1. For this scenario, no optimal value for the length of the list of codewords is known from Cliquer or similar methods.
[0118] Fig. 13 is two tables 1301 , 1302 showing the time it takes for the method of the disclosure to run on a normal hp EliteBook laptop 1301 , compared to Cliquer running on a virtual Ubuntu machine (t2. micro) on AWS 1302. The results show that the method as claimed can handle, in less than a quarter of a second, cases where Cliquer crashes without producing results after working for more than 48 hours. Along with the results in Fig. 12b, this indicates to the person skilled in the art that methods according to the disclosure have a significant advantage over the state-of- the-art as the block length and number of errors to correct / number of errors to correct and number of errors to detect increases.
Claims
CLAIMS1 . A computer-implemented method (100) for error correcting encoding of source data for transmission in a communications network, wherein the source data comprises blocks of classical bits of information to be encoded as qutrits with potential states represented as H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors, wherein an encoding is a mapping from the source data to encoded data, wherein the elements of the encoded data are codewords, each codeword comprising one or more letters, the method comprising: determining (101 ) a maximum number of transmission errors to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver; creating (102) a strictly layered, asymmetric graph of words constituting potential codewords; wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error; selecting (103) a codeword from the lowest non-empty layer of the graph; adding (103a) the selected codeword to a list of codewords; encoding (104) the source data using the selected codewords from the list of codewords; and initiating (105) a transmission of the encoded data.
2. The method (100) according to claim 1 , wherein the codeword consisting of all 0s is excluded from the graph.
3. The method (100) according to any one or more of the preceding claims, wherein selecting (103) a codeword from the lowest non-empty layer of the graph comprises selecting a codeword at random among the codewords in the lowest nonempty layer of the graph.
4. The method (100) according to any one or more of the preceding claims, further comprising: removing (106) the selected first codeword from the graph; removing (107) all words from the graph which are above the selected codeword and which can become the selected codeword by at most the determined number of errors; and removing (108) all words from the graph which are below the selected codeword and which the selected codeword can become by at most the determined number of errors; and removing (109) all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
5. The method (100) according to claim 4, further comprising: selecting (110) a second codeword from the lowest non-empty layer of the graph; adding (110a) the selected second codeword to the list of codewords; removing (111 ) the selected second codeword from the graph; removing (107) all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most the determined number of errors; and removing (108) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most the determined number of errors; and removing (109) all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
6. The method (100) according to claim 5, further comprising repeating the steps of claim 5 until the graph is empty.
7. A computer-implemented method (300) for error correcting decoding of data received in a communications network, wherein a decoding is a mapping from the received data to decoded data, wherein the elements of the received data are words, each word comprising one or more letters, the method comprising: obtaining (301 ) a list of known codewords and an indication of the maximum number of transmission errors which may be corrected, wherein a transmission error comprises one letter of a received word being recorded as a different letter by the receiver than what was transmitted; receiving (302) encoded data; determining (303) if the received word is in the list of codewords; if the received word is in the list of codewords: output (304) the decoding of the received word; if the received word is not in the list of codewords: determine (305) which codeword in the list of codewords can become the received word in at most the determined number of errors and output (306) the decoding of the determined codeword as the corrected word.
8. The method (300) according to claim 7, wherein the encoded data is encoded according to any one or more of claims 1-6.
9. A computer-implemented method (500) for error correcting and error detecting encoding of data for transmission in a communications network, wherein an encoding is a mapping from the source data to encoded data, wherein the source data comprises blocks of classical bits of information to be encoded as qutrits with potential states H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors, wherein the elements of the encoded data are codewords, each codeword comprising one or more letters, the method comprising: determining (501 ) the maximum number of transmission errors, c, to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver;determining (502) the maximum number of transmission errors, d, to further detect in each codeword, and defining dc= c + d; creating (503) a strictly layered, asymmetric graph of words constituting potential codewords; wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error; selecting (504) a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer; adding (505) the selected codeword to a list of codewords; encoding (506) the source data using the selected codewords from the list of codewords; and initiating (507) a transmission of the encoded data.
10. The method (500) according to claim 9, wherein the codeword consisting of all 0s is excluded from the graph.11 . The method (500) according to any one or more of claims 9-10, wherein selecting (504) a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer comprises selecting a codeword at random among the words in the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer.
12. The method (500) according to any one or more of claims 9-11 , further comprising: removing (508) the selected codeword from the graph; removing (509) all words from the graph which are above the selected codeword and which can become the selected codeword by at most dcerrors; removing (510) all words from the graph which are below the selected codeword and which the selected codeword can become by at most c errors, A words;removing (511 ) all words from the graph which are below the selected codeword and which the selected codeword can become by at most dcerrors, B words; removing (512) all words from the graph which are above an A word and which can become the A word by at most dcerrors; and removing (513) all words from the graph which are above a B word and which can become the B word by at most c errors.
13. The method (500) according to claim 12, further comprising: selecting (514) a second codeword from the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer; adding (514a) the selected second codeword to the list of codewords; removing (515) the selected second codeword from the graph; removing (509) all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most dcerrors; removing (510) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most c errors, A words; removing (511 ) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most dcerrors, B words; removing (512) all words from the graph which are above an A word and which can become the A word by at most dcerrors; and removing (513) all words from the graph which are above a B word and which can become the B word by at most c errors.
14. The method (500) according to claim 13, further comprising repeating the steps of claim 13 until the graph is empty.
15. A computer-implemented method (600) for error correcting and error detecting decoding of data received in a communications network, wherein adecoding is a mapping from the received data to decoded classical data, wherein the elements of the received data form words, each word comprising one or more letters, the method comprising: obtaining (601 ) a list of known codewords and an indication of the maximum number of transmission errors to correct in each word and the maximum number of transmission errors to further detect in each word, wherein a transmission error comprises one letter of a transmitted codeword being recorded as a different letter in a corresponding word received by a receiver; receiving (602) encoded data; determining (603) if the received word is in the list of codewords; if the received word is in the list of codewords: output (604) the decoding of the received word; if the received word is not in the list of codewords: if (605) a codeword in the list of codewords can become the received word in at most c errors: output (606) the decoding of the codeword as the corrected word; else indicate (607) that the received word contains an uncorrectable error.
16. The method (600) according to claim 15, wherein the encoded data is encoded according to any one or more of claims 9-14.
17. An apparatus (901 ) for error correcting encoding of source data for transmission in a communications network, wherein the source data comprises blocks of classical bits of information to be encoded as qutrits with potential states represented as H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors, wherein an encoding is a mapping from the source data to encoded data, wherein the elements of the encoded data are codewords, each codeword comprising one or more letters, the apparatus configured to:determine (101 ) a maximum number of transmission errors to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver; create (102) a strictly layered, asymmetric graph of words constituting potential codewords; wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error; select (103) a codeword from the lowest non-empty layer of the graph; add (103a) the selected codeword to a list of codewords; encode (104) the source data using the selected codewords from the list of codewords; and initiate (105) a transmission of the encoded data.18 The apparatus (901 ) according to claim 17, wherein select (103) a codeword from the lowest non-empty layer of the graph comprises selecting a codeword at random among the codewords in the lowest non-empty layer of the graph.
19. The apparatus (901 ) according to claim 17 or 18, further configured to: remove (106) the selected first codeword from the graph; remove (107) all words from the graph which are above the selected codeword and which can become the selected codeword by at most the determined number of errors; and remove (108) all words from the graph which are below the selected codeword and which the selected codeword can become by at most the determined number of errors; and remove (109) all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.
20. The apparatus (901 ) according to claim 19, further configured to:select (110) a second codeword from the lowest non-empty layer of the graph; add (110a) the selected second codeword to the list of codewords; remove (111 ) the selected second codeword from the graph; remove (107) all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most the determined number of errors; and remove (108) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most the determined number of errors; and remove (109) all words from the graph which are above a word which was removed in the previous step and which can become the removed word by at most the determined number of errors.21 . The apparatus (901 ) according to claim 20, further configured to repeat the steps of claim 20 until the graph is empty.
22. An apparatus (901 ) for error correcting decoding of data received in a communications network, wherein a decoding is a mapping from the received data to decoded data, wherein the elements of the received data are words, each word comprising one or more letters, the apparatus configured to: obtain (301 ) a list of known codewords and an indication of the maximum number of transmission errors which may be corrected, wherein a transmission error comprises one letter of a received word being recorded as a different letter by the receiver than what was transmitted; receive (302) encoded data encoded according to claim 1 ; determine (303) if the received word is in the list of codewords; if the received word is in the list of codewords: output (304) the decoding of the received word; if the received word is not in the list of codewords: determine (305) which codeword in the list of codewords can become the received word in at most thedetermined number of errors and output (306) the decoding of the determined codeword as the corrected word.
23. The apparatus (901 ) according to claim 22, wherein the received data is encoded according to any one or more of claims 1-6.
24. An apparatus (901 ) for error correcting and error detecting encoding of data for transmission in a communications network, wherein an encoding is a mapping from the source data to encoded data, wherein the source data comprises blocks of classical bits of information to be encoded as qutrits with potential states H, V, and 0, wherein H and V represent excited states and 0 represents the ground state, and H 0 and V 0 are the only possible transmission errors, wherein the elements of the encoded data are codewords, each codeword comprising one or more letters, the method comprising: determine (501 ) the maximum number of transmission errors, c, to correct in each transmitted codeword, wherein a transmission error comprises one letter of a corresponding received word being recorded as a different letter by a receiver; determine (502) the maximum number of transmission errors, d, to further detect in each codeword, and define dc= c + d; create (503) a strictly layered, asymmetric graph of words constituting potential codewords; wherein the nodes of the graph represent words and a first word is connected to a second word with a directed edge towards the second word if and only if the first word can turn into the second word by one transmission error; select (504) a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer; add (505) the selected codeword to a list of codewords; encode (506) the source data using the selected codewords from the list of codewords; and initiate (507) a transmission of the encoded data.
25. The apparatus (901 ) according to claim 24, wherein select (504) a codeword from one of the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer comprises selecting a codeword at random among the words in the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer.
26. The apparatus (901 ) according to any one or more of claims 24-25, further configured to: remove (508) the selected codeword from the graph; remove (509) all words from the graph which are above the selected codeword and which can become the selected codeword by at most dcerrors; remove (510) all words from the graph which are below the selected codeword and which the selected codeword can become by at most c errors, A words; remove (511 ) all words from the graph which are below the selected codeword and which the selected codeword can become by at most dcerrors, B words; remove (512) all words from the graph which are above an A word and which can become the A word by at most dcerrors; and remove (513) all words from the graph which are above a B word and which can become the B word by at most c errors.
27. The apparatus (901 ) according to claim 26, further configured to: select (514) a second codeword from the c + 1 highest layers of the graph such that the highest layer is the highest non-empty layer; add (514a) the selected second codeword to the list of codewords; remove (515) the selected second codeword from the graph; remove (509) all words from the graph which are above the selected second codeword and which can become the selected second codeword by at most dcerrors;remove (510) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most c errors, A words; remove (511 ) all words from the graph which are below the selected second codeword and which the selected second codeword can become by at most dcerrors, B words; remove (512) all words from the graph which are above an A word and which can become the A word by at most dcerrors; and remove (513) all words from the graph which are above a B word and which can become the B word by at most c errors.
28. The apparatus (901 ) according to claim 27, further configured to repeat the steps of claim 27 until the graph is empty.
29. An apparatus (901 ) for error correcting and error detecting decoding of data received in a communications network, wherein a decoding is a mapping from the received data to decoded classical data, wherein the elements of the received data form words, each word comprising one or more letters, the apparatus configured to: obtain (601 ) a list of known codewords and an indication of the maximum number of transmission errors to correct in each word and the maximum number of transmission errors to further detect in each word, wherein a transmission error comprises one letter of a transmitted codeword being recorded as a different letter in a corresponding word received by a receiver; receive (602) encoded data; determine (603) if the received word is in the list of codewords; if the received word is in the list of codewords: output (604) the decoding of the received word; if the received word is not in the list of codewords: if (605) a codeword in the list of codewords can become the received word in at most c errors:output (606) the decoding of the codeword as the corrected word; else indicate (607) that the received word contains an uncorrectable error.
30. The apparatus (901 ) according to claim 29, wherein the received data is encoded according to any one or more of claims 9-14. 31 . A telecommunications network node (900) comprising an apparatus according to any one or more of claims 17-30.
32. A computer program (923) comprising instructions which when run on a processor belonging to an apparatus (901 ) causes the apparatus to perform a method according to any one of claims 1-16.
33. A computer program product (924) comprising a computer readable storage medium on which a computer program (923) according to claim 32 is stored.