Error correction in quantum telecommunications systems

By creating a strictly hierarchical asymmetric graph in a quantum telecommunications system and selecting and generating codeword lists, the problem of error correction and detection in asymmetric communication channels is solved, achieving efficient error correction and detection while reducing computational complexity and storage requirements.

CN121548944APending Publication Date: 2026-02-17TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380100366.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-11
Publication Date
2026-02-17

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently find codeword sets for error correction and detection in quantum telecommunications systems, especially due to the NP-hardness of the maximum independent set problem and the complexity of processing asymmetric graphs, resulting in excessively high computational costs and large storage requirements.

Method used

By creating a strictly hierarchical asymmetric graph, potential codewords are selected and added. The hierarchical structure of the graph is used to efficiently generate a codeword list, which is then corrected and detected at the receiving end. The codeword generation process is optimized using random selection or sorting methods.

Benefits of technology

It enables efficient error correction and detection in quantum telecommunications systems, reduces computational complexity and storage requirements, and improves the reliability and efficiency of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121548944A_ABST
    Figure CN121548944A_ABST
Patent Text Reader

Abstract

A computer-implemented method (100) for error correction encoding of source data transmitted in a communication network, where the transmitted data comprises tri-state qubits. The method comprises determining (101) a maximum number of transmission errors to be corrected in each codeword. The method further comprises creating (102) a strictly layered asymmetric graph of the words constituting the potential codeword, where nodes of the graph represent the words, and if the first word can become the second word by a transmission error, the first word is connected to the second word by a directed edge towards the second word. The method comprises selecting (103) a codeword from a lowest non-empty layer of the graph and adding (103a) the selected codeword to a codeword list. The method finally comprises encoding (104) the source data using the selected codeword from the list of codewords and initiating (105) a transmission of the encoded data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to methods and apparatus for error correction and error detection. More specifically, this disclosure relates to methods and apparatus for encoding error correction and error detection of information in quantum telecommunications systems. Related telecommunications network nodes, computer programs, and computer program products are also disclosed. Background Technology

[0002] In classical computing, a bit exists in two possible states: 1 and 0. These states are well-studied both theoretically and experimentally, and there are ways to discover when a bit registered at one end is not in the same state as the transmitted bit, and methods to correct erroneous bits. In quantum computing, states are instead referred to as H, V, and 0. In this scenario, H and V represent excited states that may lose their energy and become state 0, but no other errors occur. This is an asymmetric channel—errors can only occur in one direction—which has been studied far less. The goal is to find words that can be used to encode transmitted data in such a way that the receiver can recover the transmitted word with fewer transmission errors than a certain maximum number of transmission errors.

[0003] The standard approach to solving this problem in this field is to compute the maximum independent set of a graph created by words and connections (created by potential transmission errors). The maximum independent set of a graph is defined as the largest set 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 the maximum clique, and both problems are considered NP-hard. Therefore, finding the maximum independent set becomes excessively computationally expensive very quickly as the size of the graph increases, and thus as the number of bits used to encode information grows. More efficient algorithms for finding the maximum independent set also assume that the graph is symmetric, which is not the case for graphs in the quantum case.

[0004] The fastest solution to the maximum independent set problem is a program called Cliquer, which is based on an idea developed in Östergård, PRJ's "A fast algorithm for the maximum clique problem" (Discrete Applied Mathematics 120 (2002), 197-207). It cannot be used in the quantum case because the channels and the resulting graph are asymmetric. To use Cliquer to solve the quantum problem, the asymmetric graph must be modified to include additional edges to make it symmetric. Cliquer is then applied to the resulting symmetric graph to find the 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 using Cliquer to solve the problem might take less than a second to find the optimal set of codewords of length 4 for the quantum case, while codewords of length 5 might run for days without producing results before crashing.

[0005] Once a set of codewords has been established, they can be used to correct errors in transmission. If a receiver receives a word through a communication channel, the receiver may or may not contain an error. The traditional way to determine the presence of an error and, if so, what the transmitted codeword is, is to obtain a codeword table and related words that may contain errors; these erroneous words are often referred to as syndrome words. A problem with this approach is storage—such a table can be very large, which can cause problems in edge deployments with limited storage.

[0006] An alternative but relevant codeword set is a set of codewords that includes codewords that produce a comprehensive set of symptom words indicating that an error has occurred, but cannot be corrected to be unique codewords. Such a codeword set provides error detection for many errors and error correction for a smaller number of errors. Currently, there is no available method for asymmetric channels to find a codeword set that allows for both error correction and further detection. Summary of the Invention

[0007] The purpose of this disclosure is to provide a computationally efficient method for finding error correction and error detection sets for codewords in asymmetric communication channels.

[0008] According to a first aspect of this disclosure, a computer-implemented method is provided for error-correction encoding of source data transmitted in a communication network. The source data includes a string of classical information bits to be encoded as three-state qutrits having potential states represented as H, V, and 0, where H and V represent excited states and 0 represents the ground state, and H... 0 and V 0 is the only possible transmission error. Encoding is a mapping from the source data to encoded data, where the elements of the encoded data are codewords, and each codeword includes one or more letters. The method includes determining the maximum number of transmission errors to be corrected in each transmitted codeword, where a transmission error includes a letter corresponding to a received word being recorded as a different letter by the receiver. The method also includes creating a strictly hierarchical asymmetric graph of words constituting potential codewords, where the nodes of the graph represent words, and the first word is connected to the second word by directed edges toward the second word if and only if the first word can be transformed into the second word through a transmission error. The method also includes selecting codewords from the lowest non-empty layer of the graph and adding the selected codewords to a codeword list. The method also includes encoding the source data using the selected codewords from the codeword list and initiating the transmission of the encoded data. This achieves a computationally efficient method for finding codewords for error correction coding in an asymmetric channel.

[0009] According to an embodiment of the first aspect, the codeword consisting of all zeros is excluded from the graph.

[0010] According to an embodiment of the first aspect, selecting a codeword from the lowest non-empty layer of the graph includes: randomly selecting a codeword from the codewords in the lowest non-empty layer of the graph.

[0011] According to an embodiment of the first aspect, the method further includes removing the selected first codeword from the diagram. The method also includes removing all words above the selected codeword from the diagram that could be transformed into the selected codeword by a maximum of a determined number of errors. The method further includes removing all words below the selected codeword from the diagram that could be transformed into the selected codeword by a maximum of a determined number of errors. The method also includes removing all words above the words removed in the previous steps from the diagram that could be transformed into the removed word by a maximum of a determined number of errors.

[0012] According to an embodiment of the first aspect, the method further includes selecting a second codeword from the lowest non-empty layer of the graph and adding the selected second codeword to the codeword list. The method also includes removing from the graph all words above the selected second codeword that can become the selected second codeword by a maximum of a determined number of errors, and removing from the graph all words below the selected second codeword that the selected second codeword can become by a maximum of a determined number of errors. Finally, the method includes removing from the graph all words above the words removed in the previous steps that can become the removed words by a maximum of a determined number of errors.

[0013] According to an embodiment of the first aspect, the method further includes repeating the steps of the previous embodiment until the graph is empty. This enables the generation of a complete codeword list in a computationally efficient manner.

[0014] According to a second aspect of this disclosure, a computer-implemented method is provided for error-correcting decoding of data received in a communication network. Decoding is a mapping from the received data to decoded data, wherein elements of the received data are words, each word comprising one or more letters. The method includes obtaining a list of known codewords and an indication of a maximum number of transmission errors that can be corrected, wherein a transmission error includes a letter in a received word being recorded by a receiver as a different letter than the transmitted letter. The method also includes receiving encoded data encoded according to any embodiment of the first aspect. The method further includes determining whether a received word is in the codeword list.

[0015] If the received word is in the codeword list, the method includes outputting the decoded value of the received word. If the received word is not in the codeword list, the method includes determining which codeword in the codeword list can become the received word within a maximum determined number of errors, and outputting the decoded value of the determined codeword as the corrected word. This achieves a computationally efficient method for decoding codewords used for error correction coding in asymmetric channels.

[0016] According to a third aspect of this disclosure, a computer-implemented method is provided for encoding error correction and error detection data transmitted in a communication network. The encoding is a mapping from source data to encoded data, wherein the source data comprises a string of classical information bits to be encoded as three-state qubits having potential states H, V, and 0, where H and V represent excited states and 0 represents the ground state, and H... 0 and V 0 is the only possible transmission error. Elements of the encoded data are codewords, each codeword comprising one or more letters. The method includes determining a maximum number c of transmission errors to be corrected in each transmitted codeword, where a transmission error includes a letter in a received word being recorded as a different letter by the receiver. The method also includes determining a maximum number d of transmission errors to be further detected in each codeword, and defining d... c = c + d. The method further includes creating a strictly hierarchical asymmetric graph of words constituting potential codewords, wherein the nodes of the graph represent words, and the first word is connected to the second word by directed edges toward the second word if and only if the first word can become the second word through a transmission error. The method further includes 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 codeword list. The method further includes encoding the source data using the selected codeword from the codeword list and initiating the transmission of the encoded data. This achieves a computationally efficient method for finding codewords for error correction and error detection coding in asymmetric channels.

[0017] According to an embodiment of the third aspect, the codeword consisting of all zeros is excluded from the graph.

[0018] 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 includes: randomly selecting a codeword from the characters in the c+1 highest layers such that the highest layer is the highest non-empty layer.

[0019] According to an embodiment of the third aspect, the method further includes removing the selected codeword from the graph. The method also includes removing codewords above the selected codeword from the graph that can be accessed via a maximum of d... c An error caused all the characters in the selected codeword to become the correct one.

[0020] The method further includes removing from the graph all words below the selected codeword that the selected codeword can be transformed into by a maximum of c errors, i.e., the word A. The method further includes removing from the graph all words below the selected codeword that the selected codeword can be transformed into by a maximum of d errors. c All words that become B due to an error. The method also includes removing words above A from the diagram that can be accessed by up to d. c The method also includes removing all words above the character B from the diagram that can become the character B through a maximum of c errors.

[0021] According to an embodiment of the third aspect, the method further includes 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 codeword list. The method also includes removing the selected second codeword from the graph. The method further includes removing codewords above the selected second codeword and accessible through a maximum of d... c The method further includes removing all words below the selected second codeword from the diagram that can be transformed into the selected second codeword by a maximum of c errors, i.e., the word A. The method also includes removing all words below the selected second codeword from the diagram that can be transformed into the selected second codeword by a maximum of d errors. c All words that become B due to an error. The method also includes removing words above A from the diagram that can be accessed by up to d. c The method also includes removing all words above the character B from the diagram that can become the character B through a maximum of c errors.

[0022] According to an embodiment of the third aspect, the method further includes repeating the steps of the previous embodiment until the figure is empty.

[0023] According to a fourth aspect of this disclosure, a computer-implemented method is provided for decoding error correction and error detection data received in a communication network, wherein decoding is a mapping from the received data to decoded classical data. Elements of the received data form words, each word comprising one or more letters. The method includes obtaining a list of known codewords and an indication of the maximum number of transmission errors to be corrected in each word and the maximum number of transmission errors to be further detected in each word, wherein a transmission error includes a letter in a transmitted codeword being recorded as a different letter in a corresponding word received by a receiver. The method further includes receiving encoded data according to any embodiment of the third aspect and determining whether a received word is in the codeword list. If the received word is in the codeword list, the method includes outputting the decoding of the received word. If the received word is not in the codeword list, the method includes determining whether a codeword in the codeword list can be transformed into the received word within a maximum of c errors. If so, the method includes outputting the decoding of the codeword as a corrected word; otherwise, the method includes indicating that the received word contains uncorrectable errors. This provides a computationally efficient method for decoding codewords encoded for error correction and error detection in asymmetric channels.

[0024] According to a fifth aspect of this disclosure, an apparatus is provided for error-correcting encoding of source data transmitted in a communication network, wherein the source data comprises a string of classical information bits to be encoded as three-state qubits having 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 is the only possible transmission error. Encoding is a mapping from the source data to encoded data, where the elements of the encoded data are codewords, and each codeword includes one or more letters. The apparatus is configured to determine the maximum number of transmission errors to be corrected in each transmitted codeword, where a transmission error includes a letter in a corresponding received word being recorded as a different letter by the receiver. The apparatus is also configured to create a strictly hierarchical asymmetric graph of words constituting potential codewords, where the nodes of the graph represent words, and the first word is connected to the second word by directed edges toward the second word if and only if the first word can be transformed into the second word through a transmission error. The apparatus is also configured to select codewords from the lowest non-empty layer of the graph and add the selected codewords to a codeword list. The apparatus is further configured to encode the source data using the selected codewords from the codeword list and initiate the transmission of the encoded data.

[0025] According to an embodiment of the fifth aspect, selecting a codeword from the lowest non-empty layer of the graph includes: randomly selecting a codeword from the codewords in the lowest non-empty layer of the graph.

[0026] According to an embodiment of the fifth aspect, the device is further configured to remove the selected first codeword from the diagram. The device is also configured to remove from the diagram all words above the selected codeword that can become the selected codeword by a maximum of a determined number of errors. The device is further configured to remove from the diagram all words below the selected codeword that the selected codeword can become by a maximum of a determined number of errors. The device is also configured to remove from the diagram all words above the words removed in the previous step that can become the removed words by a maximum of a determined number of errors.

[0027] 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 codeword list. The apparatus is also configured to remove the selected second codeword from the graph. The apparatus is further configured to remove from the graph all words above the selected second codeword that can become the selected second codeword by a maximum of a determined number of errors. The apparatus is further configured to remove from the graph all words below the selected second codeword that can become the selected second codeword by a maximum of a determined number of errors. The apparatus is further configured to remove from the graph all words above the words removed in the previous steps that can become the removed words by a maximum of a determined number of errors.

[0028] According to an embodiment of the fifth aspect, the apparatus is further configured to repeat the steps of the previous embodiments until the figure is empty.

[0029] According to a sixth aspect of this disclosure, an apparatus is provided for error correction decoding of data received in a communication network, wherein decoding is a mapping from the received data to decoded data. Elements of the received data are words, each word comprising one or more letters. The apparatus is configured to obtain a known codeword list and an indication of a maximum number of transmission errors that can be corrected, wherein a transmission error includes a letter in a received word being recorded by a receiver as a different letter than the transmitted letter. The apparatus is further configured to receive encoded data encoded according to any embodiment of the first aspect and determine whether the received word is in the codeword list. If the received word is in the codeword list, the apparatus is configured to output the decoded value of the received word. If the received word is not in the codeword list, the apparatus is configured to determine which codeword in the codeword list can become the received word within a maximum determined number of errors, and output the decoded value of the determined codeword as the corrected word.

[0030] According to a seventh aspect of this disclosure, an apparatus is provided for error correction and error detection encoding of data transmitted in a communication network, wherein the encoding is a mapping from the source data to the encoded data. The source data includes a string of classical information bits to be encoded as three-state qubits having potential states H, V, and 0, where H and V represent excited states and 0 represents the ground state, and H... 0 and V 0 is the only possible transmission error. The elements of the encoded data are codewords, each codeword comprising one or more letters. The apparatus is configured to determine a maximum number c of transmission errors to be corrected in each transmitted codeword, wherein a transmission error includes a letter in a corresponding received word being recorded as a different letter by the receiver. The apparatus is also configured to determine a maximum number d of transmission errors to be further detected in each codeword, and defines d... c =c + d. The apparatus is further configured to create a strictly hierarchical asymmetric graph of words constituting potential codewords, wherein the nodes of the graph represent words, and the first word is connected to the second word by directed edges toward the second word if and only if the first word can become the second word through a 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 codeword list. The apparatus is further configured to encode the source data using the selected codeword from the codeword list and initiate the transmission of the encoded data.

[0031] According to an embodiment of the seventh aspect, 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 includes: randomly selecting a codeword from the words in the c+1 highest layers such that the highest layer is the highest non-empty layer.

[0032] According to an embodiment of the seventh aspect, the device is further configured to remove the selected codeword from the diagram. The device is also configured to remove codewords above the selected codewords from the diagram and to be able to remove codewords at most d... c The device is further configured to remove all words below the selected codeword from the diagram that can be transformed into the selected codeword by a maximum of c errors, i.e., the word A. The device is also configured to remove all words below the selected codeword from the diagram that can be transformed into the selected codeword by a maximum of d errors. c All the words that became B due to the error. The device is also configured to remove the word above A from the diagram and can pass through up to d c The device is also configured to remove all words above the letter B from the diagram and capable of becoming the letter B through a maximum of c errors.

[0033] According to an embodiment of the seventh aspect, the device 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 codeword list. The device is also configured to remove the selected second codeword from the graph. The device is further configured to remove from the graph a codeword above the selected second codeword and capable of passing through at most d... c The device is further configured to remove all words below the selected second codeword from the diagram, and all words that the selected second codeword can become through a maximum of c errors, i.e., the word A. The device is also configured to remove all words below the selected second codeword from the diagram, and all words that the selected second codeword can become through a maximum of d errors. c All the words that became B due to the error. The device is also configured to remove the word above A from the diagram and can pass through up to d c The device is also configured to remove all words above the letter B from the diagram and capable of becoming the letter B through a maximum of c errors.

[0034] According to an embodiment of the seventh aspect, the apparatus is further configured to repeat the steps of the previous embodiment until the figure is empty.

[0035] According to an eighth aspect of this disclosure, an apparatus is provided for error correction and error detection decoding of data received in a communication network. 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 be corrected in each word and the maximum number of transmission errors to be further detected in each word, wherein a transmission error includes a letter in 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 whether a received word is in the codeword list. If the received word is in the codeword list, the apparatus is configured to output the decoding of the received word. If the received word is not in the codeword list, the apparatus is configured to determine whether a codeword in the codeword list can be transformed into the received word within a maximum of c errors. If so, the apparatus is configured to output the decoding of the codeword as a corrected word; otherwise, the apparatus is configured to indicate that the received word contains uncorrectable errors.

[0036] According to a ninth aspect of this disclosure, a network node is provided in a communication system including means according to a fifth, sixth, seventh, or eighth aspect of this disclosure.

[0037] The technical advantages of the methods in the first to fourth aspects are also applicable to the corresponding devices after necessary adjustments. Attached Figure Description

[0038] Figure 1 A flowchart illustrating a method according to an embodiment of the present disclosure is provided.

[0039] Figure 2 An asymmetric diagram with strictly layered structure is depicted according to embodiments of the present disclosure.

[0040] Figure 3 A flowchart illustrating a method according to an embodiment of the present disclosure is provided.

[0041] Figure 4 An encoding / decoding table according to an embodiment of the present disclosure is depicted.

[0042] Figure 5 A flowchart illustrating a method according to an embodiment of the present disclosure is provided.

[0043] Figure 6 A flowchart illustrating a method according to an embodiment of the present disclosure is provided.

[0044] Figure 7 An asymmetric diagram according to an embodiment of the present disclosure is depicted.

[0045] Figure 8 An exemplary communication system according to embodiments of the present disclosure is described.

[0046] Figure 9 An exemplary network node according to an embodiment of the present disclosure is depicted.

[0047] Figure 10 The average accuracy obtained in simulations according to the method of this disclosure is depicted.

[0048] Figure 11 The quality of the average codeword length was described in the simulation for different block lengths.

[0049] Figure 12a The length of the codeword list obtained in the simulation is described.

[0050] Figure 12b The length of the codeword list obtained in the simulation is described.

[0051] Figure 13 A comparison of time is described for the method of this disclosure and Cliquer. Detailed Implementation

[0052] Figure 1A flowchart is depicted according to a first aspect 100 of this disclosure. The first aspect is a computer-implemented method for error-correcting encoding of data transmitted in a communication network. Encoding is an injective mapping from source data (i.e., data to be transmitted) to encoded data. Elements of the encoded data may be called codewords, where each codeword includes one or more letters.

[0053] Error correction coding for data is a type of coding that allows received words to be corrected back to their original codewords in the event of a transmission error. A transmission error includes a letter in a transmitted codeword being recorded as a different letter by the receiver. Transmission errors can occur due to noise in the communication channel between the transmitting and receiving devices. Noise can include, for example, physical defects in a wired connection. Noise can also include interference from other nearby communication channels. Transmission errors can also occur due to photons and therefore the random loss of information carried by those photons. In this embodiment, the maximum number of transmission errors that can be corrected is fixed.

[0054] In embodiments of this disclosure, the only possible transmission error is that the symbol representing the excited state is recorded as the ground state. Specifically, the error is H. 0 and V 0.

[0055] By way of example, the sender might want to send the classical word 11. (See reference) Figure 4 The word can be encoded as codeword H0V. The mapping used for encoding is arbitrary and can be chosen by the implementer. In some embodiments, the mapping used for encoding can be determined in a standard. The received word may be word H00—a comprehensive symptom word for H0V. In this example, a single transmission error has occurred, so the third letter V of the transmitted codeword is received by the receiver as a different letter 0. The purpose of the disclosed first method is to provide a method for selecting codewords such that the original codeword can be recovered by the receiver and correctly decoded into word 11.

[0056] The first method includes determining the maximum number of transmission errors to be corrected. Determining the maximum number of transmission errors to be corrected may include estimating the number of possible errors by considering known properties of the communication channel. Determining the maximum number of transmission errors to be corrected may also include determining the number of codewords required to transmit the desired information by considering that correcting a larger number of errors would eliminate more potential codewords, thereby reducing the size of the potential codeword set and thus reducing the complexity of the information that can be transmitted.

[0057] The first method also includes creating a strictly hierarchical asymmetric graph of 102 potential codewords. A mathematical graph is a mathematical structure that encodes pairwise relationships between discrete objects. For the purposes of this disclosure, a graph refers to a finite set of vertices and edges that encode pairwise relationships between vertices. A hierarchical graph is one that can be drawn such that vertices are divided into horizontal layers. A directed graph (where all edges point up or all edges point down). For the purposes of this disclosure, a strictly layered graph is a layered graph such that for any vertex... If and only if hour, Has it connected to The edges of a strictly hierarchical asymmetric graph are further restricted such that the edges have associated directions, meaning that the relations encoded by the edges are ordered pairs of vertices. Therefore, a strictly hierarchical asymmetric graph is a graph such that for any given edge... All edges will be set The vertices in the set are connected The vertices in the middle.

[0058] refer to Figure 2 The desired outcome is to obtain a list of potential codewords of length 3, such that at most one error can be corrected. The created graph 200 comprises four layers, with the lowest layer being... Including a single codeword 000, layer Including codewords with a non-zero letter, This includes codewords with two non-zero letters, and This includes codewords consisting only of the letters H and V.

[0059] Each node in the graph represents a word as a potential codeword, and the first word is connected to the second word by a directed edge toward the second word if and only if the first codeword can be transformed into the second codeword by a transmission error. Returning to the example above, in graph 200 of potential codewords of length 3, the words H0V and H00 will each be represented by a node with an edge from H0V to H00, because H0V can be transformed into H00 by a transmission error.

[0060] refer to Figure 2 As an example, the codeword H0V is connected to the word H00 by an arrow, indicating that H0V can become H00 through a single transmission error.

[0061] The first method also includes selecting 103 codewords from the lowest non-empty layer of the graph. The lowest layer of the graph is the nodes. A collection. (See reference) Figure 2 The lowest layer of Figure 200 consists of a single node labeled 000. Therefore, the word 000 is chosen as the first potential codeword. The lowest non-empty layer of the graph is a set ,in It makes The smallest integer. Codeword selection includes selecting from layers. One of the nodes in the set represents a word. In an embodiment of the first method, selecting a codeword includes selecting from the set... Codewords are randomly selected from the layers. In other embodiments, codeword selection includes selecting the first character after sorting the characters in the layer by a suitable sorting. In embodiments, the sorting may be a lexicographical sort.

[0062] The first method also includes adding the selected codeword to the codeword list. The codeword list is a list of all words that have been selected for encoding data to be transmitted in the communication channel.

[0063] The first method also includes encoding the source data 104 using selected codewords from a codeword list. Encoding the classical source data using the selected codewords involves determining a mapping from the source data to the selected codewords. Therefore, encoding the source data involves selecting the bit string to be mapped to each codeword used for encoding, depending on the number of available codewords. For example, if there are 8 available codewords, each codeword can encode a block of 3 bits of information, and each block of length 3 can be encoded with a different codeword. Furthermore, see reference... Figure 4 Code words can be combined or repeated to obtain more robust results.

[0064] Finally, the first method includes initiating the transmission of 105 encoded data. Initiating the transmission of encoded data includes taking actions toward the transmission of encoded data. In an embodiment, the first method may be performed in a module of the network not configured to transmit data. In such an embodiment, initiating the transmission may include making the encoded data available to a module or node configured to transmit data. In other embodiments, the first method may be performed by the same node that transmits the data. In such an embodiment, initiating the transmission may include transmitting the encoded data.

[0065] In some embodiments of the first method, words consisting entirely of zeros are excluded from the graph. Excluding words consisting entirely of zeros from the graph involves marking words with all zeros as unusable codewords before selecting any codeword. Excluding words with all zeros ensures that if all possible errors occur—that is, if the received word is entirely of zeros—the received word is always identified as incorrect, which is beneficial in situations where a significant number of errors may occur.

[0066] In an embodiment of the first method, the first method further includes removing 106 nodes representing the selected first codeword from the graph. In such an embodiment, the first method further includes removing 107 all words above the selected codeword that can be transformed into the selected codeword by a maximum of a determined number of errors from the graph. In such an embodiment, the first method further includes removing 108 all words below the selected first codeword that can be transformed into the selected first codeword by a maximum of a determined number of errors from the graph. Finally, the first method may include removing 109 all words above the words removed in the previous steps that can be transformed into that word by a maximum of a determined number of errors from the graph.

[0067] Removing the node representing the selected first codeword from the graph corresponds to marking the node representing the selected first codeword as an unavailable potential codeword.

[0068] Removing all words above the selected codeword that can become the selected codeword with at most the selected number of errors from the graph involves: finding all nodes in the graph corresponding to the words that can become the selected codeword with at most the selected number of errors, and removing all such nodes from the graph. Given the graph's structure, finding such nodes is straightforward. These nodes are those with a path length to the selected codeword that is at most the selected number of errors. Since the graph is strictly hierarchical, such nodes are only found in layers above the selected codeword that are at most the selected number of errors. A suitable greedy algorithm can find all such nodes very efficiently, or a list of such nodes can be generated directly.

[0069] The process of removing all words below the selected codeword from the graph, where the selected codeword can be changed by a maximum of a determined number of errors, corresponds to the same process described above, except that only the words below the selected codeword in the graph are eliminated. Again, this can be achieved efficiently due to the structure of the graph.

[0070] Finally, this embodiment of the first method includes removing all such characters from the diagram: those above characters removed in previous steps, and those that can be replaced by a maximum of a determined number of errors. This step removes characters that may conflict with the selected codewords due to transmission errors. (See reference) Figure 2 The example that works shows the node with potential codeword 000 being removed from the graph (indicated by the dashed line) and added to the potential codeword list. Next, all words that can become word 000 are removed from the graph. In this example, this is layer 1. All words in the array (indicated by parallel lines passing through the nodes). Since there are no nodes below word 000, further steps are unnecessary.

[0071] In an embodiment, the first method may further include selecting a second codeword from the lowest non-empty layer of the graph. Selecting the codeword includes selecting from layers... One of the nodes represents a word. In an embodiment of the first method, selecting a codeword includes selecting from a set... Codewords are randomly selected from the layers. In other embodiments, codeword selection includes selecting the first character after sorting the characters in the layer by a suitable sorting. In embodiments, the sorting may be a lexicographical sort.

[0072] refer to Figure 2 And as an example of what works, choosing the second codeword includes from the layer Select the codeword. In this example, the word H0V is selected as the codeword.

[0073] In an embodiment, the first method may further include adding the selected second codeword to the codeword list 110a. In an embodiment, the first method may further include removing the selected second codeword from the diagram 111. In an embodiment, the first method may further include removing from the diagram 107 all words above the selected second codeword that can become the selected second codeword by a maximum of a determined number of errors. In an embodiment, the first method may further include removing from the diagram 108 all words below the selected second codeword that can become the selected second codeword by a maximum of a determined number of errors. In an embodiment, the first method may further include removing from the diagram 109 all such words: those above the words removed in the previous steps, and those that can become the removed words by a maximum of a determined number of errors.

[0074] An embodiment of the first method may further include repeatedly selecting a second codeword and removing potential interfering words until the graph is empty. 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 codeword list is typically within 10% of the optimal number of codewords. However, this method is much faster than any other method that can find the optimal number of codewords, thus allowing the small loss of codewords to be traded for a faster method to find acceptable compromises for them.

[0075] refer to Figure 2In the example where it works, the word H0V will be added to the codeword list that already includes the word 000. Next, remove from the graph all words above H0V that could become H0V in a transmission error. These are the words HHV and HVV, indicated by the parallel lines passing through the nodes. Next, remove all words that H0V could become in a transmission error. These are the words H00 and 00V, which have already been removed in the previous step. Finally, remove from the graph all words above the words that H0V could become in a transmission error. This corresponds to the words HH0, 0HV, H0H, HV0, 0VV, and V0V (indicated in the graph by marking the nodes with horizontal lines). After selecting the second potential codeword, there are therefore five remaining words in the third layer and six remaining words in the fourth layer.

[0076] Figure 3 A second aspect of this disclosure is described. This second aspect is a computer-implemented method 300 for error-correcting decoding of data received in a communication network. Decoding is a mapping from received data to decoded data, where the elements of the received data are words, and each word includes one or more letters. Error-correcting decoding of data is a decoding method capable of detecting when a transmission error has occurred and correcting the transmission error, thereby enabling the recovery of the transmitted data.

[0077] Returning to the example that worked, the purpose of the second method is to enable the word H00 to be corrected to the word H0V, which can be decoded into the sent word 11.

[0078] The second method includes obtaining a list of 301 known codewords and an indication of the maximum number of transmission errors that can be corrected. In embodiments, the list of known codewords and the maximum number of transmission errors that can be corrected may have been previously transmitted. The list of known codewords may have been specified, for example, in a standard. The maximum number of transmission errors to be corrected may have been previously transmitted or specified by a standard document. Alternatively, for example, the maximum number of transmission errors may be iteratively adjusted up or down depending on the use case until an acceptable frequency of uncorrectable errors is reached. Alternatively or additionally, the maximum number of transmission errors may be adjusted until quality criteria for the channel are met. Alternatively, the maximum number of errors to be corrected may be calculated directly from the list of known codewords. Alternatively, the maximum number of transmission errors to be corrected may be calculated as a function of the channel quality between the transmitter 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 being associated with channel quality.

[0079] The second method further includes receiving 302 encoded data encoded according to the first method of this disclosure. Receiving the encoded data may include receiving it via a wired or wireless communication channel. The encoded data may include one or more received words, wherein each received word includes one or more letters.

[0080] The second method also includes determining, for each received character, whether the received character is in the codeword list. Determining whether a received character is in the codeword list may include searching for the received character in the codeword list using a suitable algorithm.

[0081] Referring to the example that works, the receiver will receive the word H00 and find that it is not in the list of potential codewords.

[0082] If the received word is in the codeword list, the second method further includes decoding the received word and outputting the 304 decoded received word. If the received word is in the codeword list, the receiver can be certain that no transmission error or more than the determined number of errors has occurred. If no transmission error has occurred, the received word can be decoded to recover the message. If more than the determined number of errors has occurred, the resulting received word may be in the codeword list, but the encoding does not allow for the detection or correction of such incidents. In such a case, where more than the determined number of errors has occurred, the erroneous information will be decoded from the received word.

[0083] If the received word is not in the codeword list, the second method further includes determining, 305, which codeword in the codeword list can be transformed into the received word within a maximum determined number of errors. The second method also includes decoding the determined codeword and outputting, 306, the decoded word. Since codewords and words exist in a strictly hierarchical asymmetric graph structure, determining which codeword is within a maximum determined number of errors of the received word can be performed computationally efficiently. Furthermore, only one such codeword exists. Therefore, if the maximum determined number of errors occurs, the received word can be uniquely corrected and decoded, and the original message can be recovered. If more than the determined number of errors occurs, the received word may be corrected to an incorrect codeword, but such errors cannot be detected or corrected.

[0084] Refer again to the examples that worked and Figure 2 The receiver will determine that the only word that can be transformed into H00 by at most one error is the word H0V. Therefore, the receiver will infer that H00 is the comprehensive symptom word and correct it to H0V, and output the decoding result of the word H0V: 11.

[0085] However, if two transmission errors occur, the received word will be 000 from the codeword list, and the decoding result of word 000 will be 00, thus unintentionally outputting an incorrect message.

[0086] Figure 4 Depicting and Figure 2 The table shows the codewords associated with the graph and the corresponding data used for transmission. Table 401 first describes a set of codewords sufficient to encode any block of length 1 while correcting any possible transmission errors. Table 402 second describes a set of codewords sufficient to encode any block of length 2 while correcting transmission errors as in the successful example. Table 403 third describes 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. In some embodiments, combining shorter codewords can be more efficient than determining a single, longer set of codewords to encode a longer block.

[0087] Figure 5 A third aspect 500 of this disclosure is described. This third aspect is a computer-implemented method for encoding error correction and error detection of data transmitted in a communication network. The error correction and error detection encoding of the data is an encoding such that there exists a certain number c of errors that can be corrected and a certain number d of errors that can be detected but not corrected. Such encoding results in a total number d of errors that can be detected in each word. c = c + d, and words with at most c errors can also be corrected. Compared to the embodiment of the first aspect, the third aspect enables error detection and error correction.

[0088] The third method involves determining the 501 and 502 numbers c and d. Determining the numbers c and d can include evaluating channel quality. Evaluating channel quality can involve estimating the channel quality based on known quantities such as distance and channel medium. Evaluating channel quality can also involve evaluating historical channel quality data.

[0089] By way of example, suppose the number c is set to 1 and d is set to 1. Therefore, the total number of detectable errors is d. c The value is 2, and at most one erroneous received word can also be corrected.

[0090] The third method also includes creating a strictly hierarchical asymmetric graph of the 503 potential codewords. The graph of the third method is the same as that of the first method.

[0091] Figure 7 A subset of Figure 700 created according to this method is depicted. For clarity, only a subset is depicted, as the complete figure comprises 3... 4 There are many nodes and a large number of edges. Figure 7The diagram shows the character HHVV, and all nodes marked as unusable by this method when removing a character after selecting HHVV as a codeword. Note that there are nodes located at... Figure 7 The text in the second and fourth layers of the image belongs to the third layer but is placed in the second or fourth layer for clarity.

[0092] The third method also includes selecting a 504 codeword from one of the c+1 highest levels of the graph, such that the highest level is the highest non-empty level. Selecting the codeword involves selecting from the layers... One of the nodes in the text represents a word, where It is the highest non-empty layer. Note that in some embodiments of this method, (No errors are corrected; errors are only detected.) In an embodiment of the first method, selecting codewords includes selecting from a set... Codewords are randomly selected. In other embodiments, codeword selection includes selecting the first character after sorting characters in one or more layers by a suitable sorting. In embodiments, the sorting may be a lexicographical sort. The sorting may be within each layer, or it may be a single sorting of all characters from all layers together.

[0093] refer to Figure 7 In the example where this works, the chosen potential codeword is the word HHVV, indicated by the dashed line in the diagram. In this example, c = 1, and therefore the codeword is chosen from either of the top two layers of the diagram.

[0094] The third method also includes adding the selected codeword to the codeword list at 505. The third method also includes encoding the source data using the selected codeword from the codeword list at 506, and initiating the transmission of the encoded data at 507.

[0095] In an embodiment of the third method, codewords consisting of all zeros are excluded from the graph.

[0096] In an embodiment of the third method, the third method further includes removing the selected codeword from the diagram at step 508. The third method also includes removing from the diagram at step 509 the codeword above the selected codeword, and this can be done by a maximum of d... c The third method also includes removing 510 from the diagram below the selected codeword, and the selected codeword can be transformed into all words, i.e., word A, through a maximum of c errors. The third method also includes removing 511 from the diagram below the selected codeword, and the selected codeword can be transformed into all words, i.e., word A, through a maximum of d errors. c The error resulted in all the words, namely the letter B. The third method also includes removing 512 from the image above the letter A and passing through at most d. cAll words that become letter A due to a maximum of c errors. An embodiment of the third method finally includes removing 513 from the diagram above letter B, and all words that can become letter B through a maximum of c errors.

[0097] refer to Figure 7 In the example where this works, the latent codeword HHVV will be added to the latent codeword list. There is no layer above HHVV, so no word above the selected latent codeword needs to be removed.

[0098] Next, remove the word "A" from the diagram. "A" is the word that HHVV can become through at most one error. In this example, the words are H0VV, 0HVV, HHV0, and HH0V. "A" is indicated by a single vertical line passing through the left side of the node.

[0099] Next, remove the word "B" from the diagram. "B" is a word that HHVV can become through a maximum of two errors. In this example, these words are 00VV, H0V0, H00V, 0H0V, 0HV0, and HH00. These words are indicated by a single vertical line passing through the right side of the node.

[0100] Next, remove all words above the word A from the diagram that can become the word A in at most two errors. The word A is located on the second highest layer of the diagram, so only words on the layer above it need to be considered. In this case, the words above the word A are HVVV, VHVV, HHVH, and HHHV, which are also indicated by the line passing through the left side of the node.

[0101] Finally, remove all words above the letter B from the diagram that can become the letter B through at most one error. In this example, these words are HVV0, V0VV, 0VVV, H0VH, HV0V, H0HV, 0HHV, VH0V, 0HVH, VHV0, HHH0, and HH0H.

[0102] Therefore, the third method includes removing the only word that prevents recovery of a received word with at most c errors, and words that can result in c and d errors. c The number of incorrect characters received and the error correction characters.

[0103] The third method may further include selecting the second codeword 514 from the c+1 highest layers of the graph, where the highest layer is the highest non-empty layer. The third method may further include adding the selected second codeword 514a to the codeword list. The third method may further include removing the selected second codeword 515 from the graph. The third method may further include removing 509 from the graph above the selected second codeword and accessible by a maximum of d. cThe third method may also include removing 510 below the selected second codeword, and the selected second codeword may be transformed into all words by a maximum of c errors, referred to as word A. The third method may also include removing 511 below the selected second codeword from the diagram, and the selected second codeword may be transformed into all words by a maximum of d errors. c The error resulted in all the words, namely the letter B. A third method could also include removing 512 from the image above the letter A and passing through at most d. c The third method can also include removing 513 from the image above the character B, and all characters that can become the character B through a maximum of c errors.

[0104] The third method may also include repeating the above steps until the graph is empty.

[0105] Figure 6 A flowchart of the fourth aspect 600 of this disclosure is depicted. The fourth aspect of this disclosure is a computer-implemented method for error correction and error detection decoding of data received in a communication network.

[0106] The fourth method involves obtaining a list of known 601 codewords and indications of the digits c and d.

[0107] In this embodiment, the known codeword list and the numbers c and d may have been previously transmitted. The known codeword list may, for example, have been specified in a standard. Alternatively, the numbers c and d can be calculated directly from the known codeword list. Alternatively, the numbers c and d can be calculated as a function of the channel quality between the transmitter and receiver according to a predetermined formula. For example, the numbers c and d may be iteratively adjusted up or down depending on the use case until an acceptable frequency of uncorrectable and / or undetectable errors is reached. Alternatively or additionally, the numbers c and d may be adjusted until quality criteria for the channel are met. In some embodiments, the receiver may have access to multiple lists of potential codewords, each list of potential codewords associated with channel quality.

[0108] The fourth method also includes receiving encoded data encoded according to the third method of this disclosure.

[0109] The fourth method also includes determining whether the received character at 603 is in the codeword list. If the received character is in the codeword list, the method includes decoding the received character and outputting the decoded character at 604. Those skilled in the art will note that if the received character includes more than d... c If there is an error, the received word can be a word in the codeword list and will therefore be decoded as an error message.

[0110] If the received word is not in the codeword list, the fourth method further includes determining, in step 605, whether a codeword in the codeword list is within the c errors of the received word. If such a codeword exists, the fourth method includes decoding the determined codeword and outputting, in step 606, the decoded word. If such a word does not exist, the method includes indicating, in step 607, that the received word contains uncorrectable errors. If such a word does not exist, the received word contains more than c errors but at most d errors. c This is an error, which falls within the scope of the fourth method, which can detect errors but cannot correct them.

[0111] Figure 8 An exemplary communication system 800 is depicted, which can be configured to implement methods according to any one or more aspects of this disclosure. The communication system may include a telecommunications network 802, which includes an access network 804 and a core network 806. The core network may include a core network node 808 that can communicate with a host 816. The access network may include network nodes 810A and 810B. The access nodes can communicate with UEs 812A and 812B. Alternatively or additionally, the network nodes may communicate with a central hub 814, which in turn communicates with UEs 812C and 812D.

[0112] Figure 9 An exemplary network node 900 is depicted that can perform any of the methods of this disclosure. The node may be part of a radio access network or it may be part of a core network. In some embodiments of this disclosure, the network node may be a virtual node and / or a node in an Open Radio Access Network (O-RAN), wherein the functionality of the network node is distributed across multiple physically distinct units. The network node may include a communication interface 906 including an antenna 910, radio front-end circuitry 918 including a filter 920 and an amplifier 922, and a port / terminal 916. The network node may also include processing circuitry 905 including radio frequency transceiver circuitry 912 and baseband circuitry 914. The radio access node may also include a memory 904. The network node may also include a power supply 908. The network node may also include an encoding / decoding device 901 configured to perform the methods according to any embodiment of this disclosure. The encoding / decoding device may also include a memory 902 and a processor 903. The memory of the encoding / decoding device may further include a computer program 923 comprising computer-readable instructions that, when executed by a processor, cause the encoding / decoding device to perform one or more methods according to any embodiment of the methods disclosed herein. The encoding / decoding device may also include a computer program product 924 comprising a computer-readable storage medium on which the computer program is stored.

[0113] Network nodes may be adapted to receive and / or transmit data wirelessly, via wired links, or through some combination of the methods described.

[0114] Figure 10 Table 1000 depicts the simulation results of transmitting data encoded according to embodiments of the present disclosure over a noisy channel with a number of errors to be corrected between 1 and 3 and a number of errors to be detected between 0 and 2. The first column shows the number of errors to be corrected, the second column shows the number of errors to be detected, the third column shows the accuracy of the source data recovery, and the fourth column shows the standard deviation of the accuracy. Those skilled in the art will conclude that the method works to recover the original data with a certain degree of accuracy over a noisy channel.

[0115] Figure 11 Line graph 1100 shows the average length of the codeword list found compared to the longest list found in long-running simulations for different block lengths and different combinations of c and d values. As can be seen in the graph, the length of the codeword list tends to be at least 90% of the optimal length as the block length increases.

[0116] Figure 12a More detailed results are shown for the average length of the codeword list found in repeated simulations for a block length of 10 with c=1 and d=0. For this scenario, no optimal value for the codeword list length was found from Cliquer or similar methods.

[0117] Figure 12b More detailed results are shown for the average length of the codeword list found in repeated simulations for a block length of 10 with c=1 and d=1. For this scenario, no optimal value for the codeword list length was found from Cliquer or similar methods.

[0118] Figure 13 Tables 1301 and 1302 show the time taken for the method of this disclosure to run on a standard HP EliteBook laptop 1301, compared to Cliquer running on a virtual Ubuntu machine (t2.micro) on AWS 1302. The results demonstrate that the claimed method can handle cases where Cliquer crashes without producing results after working for more than 48 hours in less than a quarter of a second. Together with... Figure 12b The results show those skilled in the art that, as the block length and the number of errors to be corrected / the number of errors to be detected increase, the method according to this disclosure has significant advantages over the prior art.

Claims

1. A computer-implemented method (100) for error correction coding of source data for transmission in a communication network, wherein, The source data comprises blocks of classical information bits to be encoded as qubits with three states denoted H, V and 0, where H and V denote excited states and 0 denotes a ground state, and H 0 and V 0 is the only possible transmission error, wherein the encoding is a mapping from the source data to encoded data, wherein 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 be corrected in each transmitted codeword, wherein a transmission error comprises a letter in a received word that corresponds to a letter transmitted being recorded by a receiver as a different letter; creating (102) a strictly layered asymmetric graph of words that make up potential codewords; wherein nodes of the graph represent words, and a first word is connected to a second word by a directed edge towards the second word if and only if the first word can become 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 codeword from the list of codewords; and initiating (105) transmission of the encoded data.

2. The method (100) of claim 1, wherein The codeword consisting of all 0s is excluded from the graph.

3. The method (100) according to one or more of the preceding claims, wherein Selecting (103) a codeword from the lowest non-empty layer of the graph comprises randomly selecting a codeword among the codewords in the lowest non-empty 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) from the graph all words above the selected codeword and capable of becoming the selected codeword by at most the determined number of errors; and removing (108) from the graph all words below the selected codeword and the selected codeword being capable of becoming by at most the determined number of errors; and removing (109) from the graph all words above the words removed in the previous steps and capable of becoming the removed words 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) from the graph all words above the selected second codeword and capable of becoming the selected second codeword by at most the determined number of errors; and removing (108) from the graph all words below the selected second codeword and the selected second codeword being capable of becoming by at most the determined number of errors; and removing (109) from the graph all words above the words removed in the previous steps and capable of becoming the removed words by at most the determined number of errors.

6. The method (100) of claim 5, further comprising: The steps of claim 5 are repeated until the graph is empty.

7. A computer-implemented method (300) for error correction decoding of data received in a communication network, wherein, Decoding is a mapping from the received data to decoded data, wherein 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 a maximum number of transmission errors that can be corrected, wherein a transmission error comprises a letter in a received word that corresponds to a letter transmitted being recorded by a receiver as a different letter; receiving (302) encoded data; determining (303) whether a received word is in the list of codewords; if the received word is in the list of code words, then: output (304) the decoding of the received word; if the received word is not in the list of code words, then: determine (305) which code word in the list of code words can become the received word in at most the determined number of errors, and output (306) the decoding of the determined code word as a corrected word.

8. The method (300) of 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 correction and error detection coding of data transmitted in a communication network, wherein, Encoding is a mapping from the source data to the encoded data, where the source data comprises a block of classical information bits to be encoded as qubits with latent states H, V, and 0, where H and V represent excited states and 0 represents a ground state, and H 0 and V 0 is the only possible transmission error, where an element of the encoded data is a codeword, each codeword comprising one or more letters, the method comprising: determining (501) a maximum number c of transmission errors to be corrected in each transmitted code word, wherein a transmission error comprises a letter in a corresponding received word being recorded by a receiver as a different letter; determining (502) a maximum number d of transmission errors to be further detected in each codeword, and defining d c = c + d; creating (503) a strictly layered asymmetric graph of words constituting potential code words; wherein a node of the graph represents a word, and a first word is connected to a second word by a directed edge towards the second word if and only if the first word can become the second word by one transmission error; selecting (504) a code word 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 code word to a list of code words; encoding (506) the source data using the selected code words from the list of code words; and initiating (507) transmission of the encoded data.

10. The method (500) of claim 9, wherein, The code word consisting of all 0s is excluded from the graph.

11. The method (500) of any one or more of claims 9-10, wherein, Selecting (504) a code word from one of the c+1 highest layers of the graph, such that the highest layer is the highest non-empty layer, comprises: randomly selecting a code word 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) of any one or more of claims 9-11, further comprising: removing (508) the selected code word from the graph; remove (509) from the graph all words that are above the selected codeword and that can become the selected codeword by at most d c errors. removing (510) from the graph all words below the selected code word and which the selected code word can become by at most c errors, i.e. A words; remove (511) from the graph all words that are below the selected codeword and that can become the selected codeword by at most d c errors, i.e. the B words; remove (512) from the graph all words that are above the word A and can become the word A by at most d c errors. and removing (513) from the graph all words above the B word and which can become the B word by at most c errors.

13. The method (500) of claim 12, further comprising: selecting (514) a second code word 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 code word to the list of code words; removing (515) the selected second code word from the graph; remove (509) from the graph all words that are above the selected second codeword and that can become the selected second codeword by at most d c errors. removing (510) from the graph all words below the selected second code word and which the selected second code word can become by at most c errors, i.e. A words; remove (511) from the graph all words that are below the selected second codeword and that can become the selected second codeword by at most d c errors, i.e. the B words; remove (512) from the graph all words that are above the word A and can become the word A by at most d c errors. and removing (513) from the graph all words above the B word and which can become the B word by at most c errors.

14. The method (500) of claim 13, further comprising: The steps of claim 13 are repeated until the graph is empty.

15. A computer-implemented method (600) for error correction and error detection decoding of data received in a communication network, wherein, The decoding is a mapping from the received data to decoded classical data, wherein elements of the received data form words, each word comprising one or more letters, the method comprising: obtaining (601) a list of known code words and an indication of a maximum number of transmission errors to correct in each word and a maximum number of transmission errors to further detect in each word, wherein a transmission error comprises one letter in a transmitted code word being recorded as a different letter in a corresponding received word; receiving (602) encoded data; determining (603) whether the received word is in the list of code words; if the received word is in the list of code words, then outputting (604) a decoding of the received word; if the received word is not in the list of code words, then: if (605) a code word in the list of code words can become the received word in at most c errors, then: outputting (606) a decoding of the code word as a corrected word; otherwise indicating (607) that the received word contains uncorrectable errors.

16. The method (600) of claim 15, wherein the encoded data is encoded according to any one or more of claims 9-14.

17. An apparatus (901) for error correction encoding of source data for transmission in a communication network, wherein, The source data comprises blocks of classical information bits to be encoded as qubits with three states denoted H, V and 0, where H and V denote excited states and 0 denotes a ground state, and H 0 and V 0 is the only possible transmission error, wherein the encoding is a mapping from the source data to encoded data, wherein elements of the encoded data are codewords, each codeword comprising one or more letters, the apparatus being configured to: determining (101) a maximum number of transmission errors to correct in each transmitted code word, wherein a transmission error comprises one letter in a corresponding received word being recorded as a different letter by a receiver; creating (102) a strictly layered asymmetric graph of words constituting potential code words; wherein a node of the graph represents a word, and a first word is connected to a second word by a directed edge towards the second word if and only if the first word can become the second word through one transmission error; selecting (103) a code word from the lowest non-empty layer of the graph; adding (103a) the selected code word to a list of code words; encoding (104) the source data using the selected code words from the list of code words; and initiating (105) transmission of the encoded data.

18. The apparatus (901) according to claim 17, wherein Selecting (103) a code word from the lowest non-empty layer of the graph comprises randomly selecting a code word among the code words in the lowest non-empty layer of the graph.

19. The apparatus (901) of claim 17 or 18, further configured to: remove (106) the selected first code word from the graph; removing (107) from the graph all words above the selected codeword and which can become the selected codeword by at most the determined number of errors; and remove (108) from the graph all words below the selected code word and which the selected code word can become through at most the determined number of errors; and remove (109) from the graph all words above the words removed in the previous step and which can become the removed words through at most the determined number of errors.

20. The apparatus (901) of claim 19, further configured to: select (110) a second code word from the lowest non-empty layer of the graph; add (110a) the selected second code word to the list of code words; remove (111) the selected second code word from the graph; remove (107) from the graph all words above the selected second code word and which can become the selected second code word through at most the determined number of errors; and remove (108) from the graph all words below the selected second code word and which the selected second code word can become through at most the determined number of errors; and remove (109) from the graph all words above the removed word in the previous step and which can become the removed word by at most the determined number of errors.

21. The apparatus (901) of claim 20, further configured to repeat the steps of claim 20 until the graph is empty.

22. An apparatus (901) for error correction decoding of data received in a communication network, wherein Decoding is a mapping from the received data to decoded data, where elements of the received data are words, each word comprising one or more letters, the apparatus being configured to: obtain (301) a list of known code words and an indication of a maximum number of transmission errors that can be corrected, where a transmission error comprises a letter in a received word being recorded by a receiver as a different letter than the transmitted letter; receive (302) encoded data encoded according to claim 1; determine (303) whether the received word is in the list of code words; if the received word is in the list of code words, then: output (304) a decoding of the received word; if the received word is not in the list of code words, then: determine (305) which code word in the list of code words can become the received word in at most the determined number of errors, and output (306) a decoding of the determined code word as a 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 correction and error detection encoding of data for transmission in a communication network, wherein, Encoding is a mapping from the source data to the encoded data, where the source data comprises a block of classical information bits to be encoded as qubits with latent states H, V, and 0, where H and V represent excited states and 0 represents a ground state, and H 0 and V 0 is the only possible transmission error, where an element of the encoded data is a codeword, each codeword comprising one or more letters, the method comprising: determine (501) a maximum number c of transmission errors to be corrected in each transmitted code word, where a transmission error comprises a letter in a corresponding received word being recorded by a receiver as a different letter; determining (502) a maximum number d of transmission errors to be further detected in each codeword, and defining d c = c + d; create (503) a strictly layered asymmetric graph of words constituting potential code words; where nodes of the graph represent words, and a first word is connected to a second word by a directed edge towards the second word if and only if the first word can become the second word by one transmission error; select (504) a code word 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 code word to a list of code words; encode (506) the source data using the selected code words from the list of code words; and initiate (507) transmission of the encoded data.

25. The apparatus (901) according to claim 24, wherein Selecting (504) a code word from one of the c+1 highest layers of the graph, such that the highest layer is the highest non-empty layer, comprises randomly selecting a code word 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) of any one or more of claims 24-25, further configured to: remove (508) the selected code word from the graph; remove (509) from the graph all words that are above the selected codeword and that can become the selected codeword by at most d c errors. remove (510) from the graph all words below the selected code word and which can become the selected code word by at most c errors, i.e. A words; remove (511) from the graph all words that are below the selected codeword and that can become the selected codeword by at most d c errors, i.e. the B words; remove (512) from the graph all words that are above the word A and can become the word A by at most d c errors. and remove (513) from the graph all words above the B word and which can become the B word by at most c errors.

27. The apparatus (901) of claim 26, further configured to: 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; remove (509) from the graph all words that are above the selected second codeword and that can become the selected second codeword by at most d c errors. removing (510) from the graph all words below the selected second codeword and that can become the selected second codeword by at most c errors, i.e. A words; remove (511) from the graph all words that are below the selected second codeword and that can become the selected second codeword by at most d c errors, i.e. the B words; remove (512) from the graph all words that are above the word A and can become the word A by at most d c errors. and removing (513) from the graph all words above the B words and that can become the B words by at most c errors.

28. The apparatus (901) of claim 27, further configured to repeat the steps of claim 27 until the graph is empty.

29. An apparatus (901) for error correction and error detection decoding of data received in a communication network, wherein Decoding is a mapping from the received data to decoded classical data, where elements of the received data form words, each word comprising one or more letters, the apparatus being configured to: obtain (601) a list of known codewords and an indication of a maximum number of transmission errors to correct in each word and a maximum number of transmission errors to further detect in each word, where a transmission error comprises a letter in a transmitted codeword being recorded as a different letter in the corresponding word received by the receiver; receive (602) encoded data; determine (603) whether the received word is in the list of codewords; if the received word is in the list of codewords, then output (604) a decoding of the received word; if the received word is not in the list of codewords, then: if (605) a codeword in the list of codewords can become the received word in at most c errors, then: output (606) a decoding of the codeword as a corrected word; otherwise indicate (607) that the received word contains uncorrectable errors.

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 telecommunication network node (900) comprising the apparatus of 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), cause the apparatus to perform the method of any one of claims 1-16.

33. A computer program product (924) comprising a computer readable storage medium on which the computer program (923) of claim 32 is stored.