US6728920B1 - Method for correcting errors in transfer of information - Google Patents

Method for correcting errors in transfer of information Download PDF

Info

Publication number
US6728920B1
US6728920B1 US09/317,549 US31754999A US6728920B1 US 6728920 B1 US6728920 B1 US 6728920B1 US 31754999 A US31754999 A US 31754999A US 6728920 B1 US6728920 B1 US 6728920B1
Authority
US
United States
Prior art keywords
data
error correcting
segment
segments
data segments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US09/317,549
Inventor
Howard Glen Ebersman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adaptive Broadband Corp
Original Assignee
Adaptive Broadband Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adaptive Broadband Corp filed Critical Adaptive Broadband Corp
Priority to US09/317,549 priority Critical patent/US6728920B1/en
Assigned to ADAPTIVE BROADBAND CORPORATION reassignment ADAPTIVE BROADBAND CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EBERSMAN, HOWARD GLEN
Application granted granted Critical
Publication of US6728920B1 publication Critical patent/US6728920B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Definitions

  • the present invention relates to an error correction method for a lossy communications environment. It may readily be applied to a high traffic or high loss multipoint system.
  • the present invention may be used in any digital communications system, including such applications as satellite communications systems, terrestrial radio systems, and cellular phone systems.
  • the present invention is useable for Internet and Intranet broadcasting.
  • Communications systems need to reliably transmit information to all users within that system. To accomplish this, data is often broken into smaller pieces called packets which can be easily managed by the communications system. Communications systems invariably suffer from corrupted bits and lost packets, resulting from a multitude of causes, including, but not limited to interference, noise, and buffer overflows.
  • FEC Forward Error Correcting Code
  • An FEC works by adding error correcting bits to the transmitted packet. Unfortunately, if too many errors occur in a packet, the corrupted packet will remain corrupted or be lost, even with the use of an FEC code. Because of this, errors resulting from interference and buffer overflows are generally not correctable with an FEC code. Another disadvantage is that there is a necessary bandwidth overhead in sending the parity bits required by an FEC code.
  • error detection algorithms include the Cyclic Redundancy Checking (CRC) algorithm and checksum algorithm, which can detect the occurrence of multiple errors.
  • CRC Cyclic Redundancy Checking
  • checksum checksum algorithm
  • One method to greatly improve the probability of receiving an uncorrupted packet is to send the packet multiple times. In this case, any number of errors in a single packet, or even a lost packet, will not prohibit uncorrupted reception of the packet's information, as long as at least one packet is correctly received. Unfortunately, sending each packet R times requires R times as much bandwidth.
  • Another method to greatly reduce the probability of losing information is to request and retransmit a packet in the event that a packet is lost or corrupted.
  • This method is often referred to as ARQ (automatic repeat request).
  • ARQ automatic repeat request
  • acknowledgments ACKs
  • NACKs negative acknowledgments
  • timeout windows may be employed to identify which packets are incorrectly received or may need to be resent. These identified packets may be retransmitted as many times as necessary until the information is indicated to be successfully received.
  • Two serious drawbacks of this method are that latency and bandwidth are increased with each retransmission. Also, the ACK and NACK messages themselves require additional bandwidth. The increased and non-deterministic latency of this protocol is not well suited to many types of traffic such as satellite communications systems.
  • the additional bandwidth required for the ACK and NACK messages make this method very poorly suited to communications systems that support broadcast of information to many or all users, as the bandwidth of the ACK and NACK messages increases with each user in the system. Broadcast of information is the transmission of identical information to multiple or all users in a communications system.
  • the method of present invention has the advantage that information can be sent with a higher reliability, using the same amount of bandwidth, than the prior art method of repeating each packet multiple times.
  • the present invention relates to a method for correcting errors in the transfer of information over a lossy medium such as radio frequencies, copper wires, or fiber optic cables, where the channel is randomly blocked due to interference or jamming.
  • a lossy medium such as radio frequencies, copper wires, or fiber optic cables
  • the message is first divided into data blocks.
  • the data blocks are then divided into data segments.
  • the data segments of each data block are used to generate distinct combinations of data segments through a Boolean operation (such as XOR) or an arithmetic operation to form Error Correcting Segments.
  • the Data Segments and Error Correcting Segments are transmitted.
  • the message can be entirely reconstructed as long as one valid subset of Data Segments is correctly received.
  • a data block is divided into two Data Segments, three Data and Error Correcting Segments are transmitted.
  • the retrieval of any two Data and Error Correcting Segments provides enough information to retrieve the full amount of information transmitted in the corresponding data block.
  • seven Data and Error Correcting Segments are transmitted.
  • the retrieval of any four good Data or Error Correcting Segments results in full retrieval of transmitted information.
  • there are only four out of the thirty five possible sets of three Data and Error Correcting Segments which will not lead to the retrieval of the complete message.
  • each Data Block is further subdivided into two Data Segments A and B in which there is only one distinct combination of these Data Segments (for example, A ⁇ B, i.e., A XOR B).
  • a ⁇ B i.e., A XOR B
  • the entire Data Block i.e., both [A] and [B]
  • the method provides significantly better performance for a fixed amount of overhead relative to simple repetition or repeat schemes. This method is particularly suitable for broadcast mediums and high latency applications such as satellite communications for which an ARQ scheme is not acceptable or practical. Lastly, this method will outperform a standard FEC code in a jamming type environment where errors are in the form of large bursts, such as frequency hopping radio that has strong interference on a percentage of frequencies. Further applications include Internet or Intranet broadcasting and may be used in any network architecture.
  • the present invention relates to an error correcting method for a multipoint communications system, comprising partitioning a message into Data Blocks in which each of the Data Blocks are further divided into N data segments, representing one or more bits. At least one distinct combination of N data segments is computed using a Boolean or arithmetic operator such as XOR to form Error Correcting Segments where N is equal to 2, 3, or a larger natural number.
  • steps, in addition to receiving the Data or Error Correcting Segments such as correcting bit errors and performing operations on the Data or Error Correcting Segments which have been received correctly are employed to recover as much of the data block information as possible.
  • each of the Data or Error Correcting Segments is transmitted two or more times. This reduces the error rate at the expense of additional overhead.
  • the present invention is directed for use in any lossy environment, but is particularly useful in broadcast data systems such as communications systems exposed to intentional or unintentional jamming and satellite systems.
  • FIG. 7 shows the logical structure of a Data or Error Correcting Segment which is transmitted.
  • FIG. 10 shows a flow chart for processing for transmission.
  • FIG. 11 shows a flow chart for processing of the received Data Segment or Error Correcting Segments after transmission.
  • the present invention relates to an error correcting method suitable for any multipoint communications system.
  • it provides significantly improved bit error rate performance, for a given available bandwidth over existing methods for a broadcast multi-point system with large numbers of remote nodes. It also provides significant latency advantages over existing methods for satellite and other latency critical applications.
  • the present invention relies upon reversible operations.
  • a reversible operation is any operation that modifies information in such a way that it is recoverable through a reverse operation.
  • Two examples of reverse operations are binary XOR and modulo addition. In the case of modulo addition, the reverse operation is modulo subtraction.
  • Straight addition is also a reversible operation; however, it has the drawback that it is not easy to represent unbounded numbers in a communications system.
  • a message is divided into Data Blocks consisting of one or more bits, each of the Data Blocks is further subdivided into N Data Segments. Then, the N Data Segments and each and every distinct combination of the N Data Segments (i.e., Error Correcting Segments) is transmitted at least once. Each of the distinct combinations are generated by performing a reversible Boolean or arithmetic operation on two or more Data Segments.
  • a receiver processes the received Data Segments and Error Correcting Segments using the reverse operation to derive each of the N Data Segments which were not received or were discarded.
  • One advantage in the present method is that there is no reliance on an acknowledge signal. By not incorporating any acknowledgment signals, such as ACK or NACK, the present method is very amenable to performing well in a large or highly lossy communications environment or high latency such as satellite systems.
  • FIG. 1 shows an embodiment in which a data block is divided into two Data Segments A and B.
  • a ⁇ B A exclusive OR'ed with B.
  • FIG. 2 shows a second embodiment in which a message Data Block is divided into three Data Segments: A, B, C.
  • a message Data Block is divided into three Data Segments: A, B, C.
  • FIG. 3 shows a third embodiment in which a message segment is divided into two Data Segments: A and B.
  • the Data Segments and Error Correcting Segments are each transmitted twice: A, A, B, B, A ⁇ B, and A ⁇ B.
  • FIGS. 4 and 5 show other more complex extensions of this method.
  • the message to be sent is broken into data blocks. Each data block, furthermore, is divided into N data segments labeled A, B, C, etc. as shown in FIG. 6 .
  • Error Correcting Segments are all unique combinations of the XOR (bitwise exclusive “or”) of the N data segments.
  • the size of each Data or Error Correcting Segment is preferably chosen such that each Data Segment or Error Correcting Segment has an independent probability of being blocked by interference or jamming.
  • the Data and Error Correcting Segments need not be of the same size.
  • Each Data Segment or Error Correcting Segment contains four fields: a block number, a sequence number, a data field, and a CRC or check field, as shown in FIG. 7 .
  • all Data Segment or Error Correcting Segments are transmitted.
  • the Data segments of a data block representing actual data are transmitted.
  • the Error Correcting Segments formed by reversible operations from the Data Segments of a data block are then transmitted.
  • the Data Segments of the next Data Block are sent followed by transmission of the Error Correcting Segments. The process continues until all Data Block information has been transmitted.
  • the block number identifies the data block of the message being transmitted in a numerical sequence. This is a count value that increments after the completion of transmission of a data block and wraps to zero if it reaches the maximum block number value. This allows reliable detection of redundant information in the event that more packets may be lost.
  • Data Segment or Error Correcting Segment #0 is [A]
  • #1 is [B]
  • #2 is [C]
  • #3 is [A ⁇ B]
  • #4 is [A ⁇ C]
  • #5 is [B ⁇ C]
  • #6 is [A ⁇ B ⁇ C].
  • the check field determines the validity of the information, and protects the sequence and segment values, in addition to the user data.
  • a Data Segment or Error Correcting Segment When a Data Segment or Error Correcting Segment is received, its check field is processed to determine whether there has been any corruption of data. If the Data Segment or Error Correcting Segment is determined to be corrupted, it is discarded. Data and Error Correcting Segments may also not be received at all such as might occur in a burst error in a frequency hopping system. This can be detected by processing and interpreting the block and request number information. If the receiver completely misses a Data segment, the Data segment still may be reconstructed if a proper set of Data and Error Correcting Segments are received which are determined not to have errors.
  • the present method relies solely on the receiver's reception of Data Segments or Error Correcting Segments. If a Data segment is recovered, then the relevant section of the data block may be directly reconstructed with this part. If certain Data Segments are not directly recovered, they may still be derived through processing of other uncorrupted Data and Error Correcting Segments which have been received. In the event that certain Data Segments of a Data Block are not recoverable, then corrupted bits, zero fillers, or random bits may be inserted for those parts. For example, if a data block has three data segments, A, B, and C, and B is not recoverable, then the receiver sends out the data as A 0 C. In asynchronous systems, the unrecovered data can be deleted by sending just A C.
  • the entire data block (i.e., [A] and [B]) can be recovered if any of the following sets of Data Segments and Error Correcting Segments are received:
  • Partial information can be recovered if some single Data Segments are correctly received (i.e., [A] or [B]).
  • the method for recovering information is to XOR the appropriate Data Segments or Error Correcting Segments to yield the desired Data Segments which need to be derived. For example, [A] XOR [A XOR B] will yield [B]. XOR is a associative operator, so switching the order of arguments being XOR'ed together will yield identical results.
  • N For cases where N is very small, it is easy to implement each case directly into code. For larger N, a look up table is the easiest implementation. In any case, N should not be a large number as processing becomes overly complicated and correspondingly slow.
  • the FEC corrects the Data Segment or Error Correcting Segments containing a small number of bit errors, and then the present method is applied to correct for the lost Data segments containing too many errors for an FEC to resolve.
  • a previously proposed algorithm for solving this problem is to use repetition coding.
  • repetition coding a data block is broken into Data Segments, and each Data Segment is transmitted R times.
  • the probability of error (or missed message), denoted P e is found to be:
  • the channel efficiency of this scheme which is equal to the ratio of new information to total information transmitted, is:
  • P ( A missed) P ([ B ] good) ⁇ P ([ A ] bad) ⁇ P ([ A ⁇ B ] bad)+ P ([ A ⁇ B ] good) ⁇ P ([ A ] bad) ⁇ P ([ B ] bad)+ P ([ A ] bad) ⁇ P ([ B ] bad) ⁇ P ([ A ⁇ B ] bad)
  • P ( B missed) P ([ A ] good) ⁇ P ([ B ] bad) ⁇ P ([ A ⁇ B ] bad)+ P ([ A ⁇ B ] good) ⁇ P ([ A ] bad) ⁇ P ([ B ] bad)+ P ([ A ] bad) ⁇ P ([ B ] bad) ⁇ P ([ A ⁇ B ] bad)
  • FIG. 9 shows a comparison of performance of the present invention for the embodiments of FIGS. 1, 2 , and 3 versus the performance in the case where no coding is used and for methods in which the Data and Error Correcting Segments are transmitted two, three, or four times each.
  • the method of the prior art method of transmitting data segments of a data block two times has a similar performance to that of the method of the present invention in which the data block is divided into two Data segments
  • the efficiency of the method of the present invention is 66% which is notably superior to the 50% efficiency of the prior art method in which the Data segments of a data block are each transmitted twice.
  • FIGS. 10 and 11 Flow charts for algorithms to decode and correct messages are shown in FIGS. 10 and 11.
  • errored_Data Segment or Error Correcting Segment[x] TRUE if Data Segment or Error Correcting Segment “x” was received correctly and FALSE otherwise
  • Data Segment or Error Correcting Segment[x] the actual data contained in Data Segment or Error Correcting Segment “x”
  • the Data Segment or Error Correcting Segment variable is stored directly upon being received, while the errored_Data Segment or Error Correcting Segment variable is defaulted to FALSE, and set to TRUE when a valid CRC is detected for a Data Segment or Error Correcting Segment.
  • the above algorithm also works for the case where the [A] [B] [A ⁇ B] coding is sent multiple times (R>1) for each Data Segment or Error Correcting Segment. In this case, if any Data Segment or Error Correcting Segment is received multiple times, the duplicate is discarded, and the algorithm above applies.
  • look_up_table[x,y,z] the index of one Data Segment or Error Correcting Segment to be XOR'ed to recreate data segment “x”.
  • a value of 0 indicates that no more Data Segment or Error Correcting Segments need to be XOR'ed.
  • the parameter “y” is the index of one of the Data Segment or Error Correcting Segments that can recover data segment “x”.
  • Parameter “z” specifies which Data Segment or Error Correcting Segment index that must be XOR'ed. This table can be generated by hand or using a computer program.
  • MAX_Z A constant defined as MAX_Z is equal to the maximum number of different ways we can correctly XOR Data Segment or Error Correcting Segments to recover an original message
  • look_up ⁇ _table [ 2 , 4 , 0 3 , 5 , 0 6 , 7 , 0 2 , 3 , 7 1 , 2 , 0 3 , 6 , 0 5 , 7 , 0 1 , 3 , 7 1 , 5 , 0 2 , 6 , 0 4 , 7 , 0 1 , 2 , 7 ]
  • Table 1 tabulates the different probability outcomes for retrieving an uncorrupted message part A.
  • a Data Block may be divided into four, five, six, or more Data Segments. Although further division is possible, the improved performance is outweighed by the increased processing time involved and memory required in processing larger look up tables.
  • the present method may be used in Internet and Intranet broadcasting systems.
  • the error message rate is related to the bit rate and latency.
  • Latency is defined as the time delay from when the first byte enters the system to when it is output. In the multipoint communications systems, latency is generally limited to a few hundred milliseconds for most applications.

Abstract

Family of methods for correcting errors in transfer of information over a lossy medium. The message to be sent is first broken into Data Blocks, which are further divided into N data segments. These data segments are sent verbatim and followed by XOR combinations of the data segments, called Error Correcting Segments. Incorrect Data or Error Correcting Segments are detected through the use of a CRC or any other error detection algorithm, and errored Data or Error Correcting Segments are discarded. Once all Data or Error Correcting Segments for a message segment are received, logic or a look up table is used to determine which of the Data Segments can be recovered. The lost Data Segment recovery is done using a binary XOR of multiple good Data or Error Correcting Segments. For additional error correction, Data and Error Correcting Segments can also be repeatedly transmitted multiple times to further improve the performance of this algorithm.

Description

FIELD OF THE INVENTION
The present invention relates to an error correction method for a lossy communications environment. It may readily be applied to a high traffic or high loss multipoint system. The present invention may be used in any digital communications system, including such applications as satellite communications systems, terrestrial radio systems, and cellular phone systems. The present invention is useable for Internet and Intranet broadcasting.
BACKGROUND OF THE INVENTION
Communications systems need to reliably transmit information to all users within that system. To accomplish this, data is often broken into smaller pieces called packets which can be easily managed by the communications system. Communications systems invariably suffer from corrupted bits and lost packets, resulting from a multitude of causes, including, but not limited to interference, noise, and buffer overflows.
To recover corrupted bits and lost packets, many error correcting techniques may be applied. The most common is called a Forward Error Correcting Code (FEC) which may correct single or multiple errors in a packet. An FEC works by adding error correcting bits to the transmitted packet. Unfortunately, if too many errors occur in a packet, the corrupted packet will remain corrupted or be lost, even with the use of an FEC code. Because of this, errors resulting from interference and buffer overflows are generally not correctable with an FEC code. Another disadvantage is that there is a necessary bandwidth overhead in sending the parity bits required by an FEC code.
To detect the occurrence of corrupted packets, existing systems can use an error detection algorithm. Commonly used error detection algorithms include the Cyclic Redundancy Checking (CRC) algorithm and checksum algorithm, which can detect the occurrence of multiple errors. A technique of adding parity bits can be used to detect single and odd numbers of errors.
The absence of a packet that is expected, usually resulting from strong interference or buffer overflows, can be detected by the addition of sequence information to the packet.
One method to greatly improve the probability of receiving an uncorrupted packet is to send the packet multiple times. In this case, any number of errors in a single packet, or even a lost packet, will not prohibit uncorrupted reception of the packet's information, as long as at least one packet is correctly received. Unfortunately, sending each packet R times requires R times as much bandwidth.
Another method to greatly reduce the probability of losing information is to request and retransmit a packet in the event that a packet is lost or corrupted. This method is often referred to as ARQ (automatic repeat request). To accomplish this, acknowledgments (ACKs), negative acknowledgments (NACKs), and timeout windows may be employed to identify which packets are incorrectly received or may need to be resent. These identified packets may be retransmitted as many times as necessary until the information is indicated to be successfully received. Two serious drawbacks of this method are that latency and bandwidth are increased with each retransmission. Also, the ACK and NACK messages themselves require additional bandwidth. The increased and non-deterministic latency of this protocol is not well suited to many types of traffic such as satellite communications systems. Also, the additional bandwidth required for the ACK and NACK messages make this method very poorly suited to communications systems that support broadcast of information to many or all users, as the bandwidth of the ACK and NACK messages increases with each user in the system. Broadcast of information is the transmission of identical information to multiple or all users in a communications system.
Each of these methods of packet recovery have some advantages over the others. However, the method of present invention has the advantage that information can be sent with a higher reliability, using the same amount of bandwidth, than the prior art method of repeating each packet multiple times.
The prior art methods have not been optimally effective in correcting errors in the transfer of information over some lossy mediums such as radio links, copper wires, or fiber optic cables, where the channel is randomly blocked due to interference or jamming.
SUMMARY OF THE INVENTION
The present invention relates to a method for correcting errors in the transfer of information over a lossy medium such as radio frequencies, copper wires, or fiber optic cables, where the channel is randomly blocked due to interference or jamming. However, it is not limited to lossy mediums, but may also be used in non-lossy mediums. The message is first divided into data blocks. The data blocks are then divided into data segments. The data segments of each data block are used to generate distinct combinations of data segments through a Boolean operation (such as XOR) or an arithmetic operation to form Error Correcting Segments. The Data Segments and Error Correcting Segments are transmitted. In the event that a Data Segment of the information is incorrectly received, the message can be entirely reconstructed as long as one valid subset of Data Segments is correctly received. In the case where a data block is divided into two Data Segments, three Data and Error Correcting Segments are transmitted. The retrieval of any two Data and Error Correcting Segments provides enough information to retrieve the full amount of information transmitted in the corresponding data block. In the case where a data block is divided into three data segments, seven Data and Error Correcting Segments are transmitted. The retrieval of any four good Data or Error Correcting Segments results in full retrieval of transmitted information. Furthermore, in the case where only three good Data Segment or Error Correcting Segments are received, there are only four out of the thirty five possible sets of three Data and Error Correcting Segments which will not lead to the retrieval of the complete message.
In the simplest case, after a message is divided into Data Blocks, each Data Block is further subdivided into two Data Segments A and B in which there is only one distinct combination of these Data Segments (for example, A⊕B, i.e., A XOR B). There is no acknowledge signal which is sent from the receiver to the transmitter. This reduces overhead and latency since no ACK or NACK messages need to be sent or awaited. The entire Data Block (i.e., both [A] and [B]) can be recovered if any of the following three Data or Error Correcting Segments are received: (1) [A],[B]; (2) [A],[A⊕B]; or (3) [B],[A⊕B].
The method provides significantly better performance for a fixed amount of overhead relative to simple repetition or repeat schemes. This method is particularly suitable for broadcast mediums and high latency applications such as satellite communications for which an ARQ scheme is not acceptable or practical. Lastly, this method will outperform a standard FEC code in a jamming type environment where errors are in the form of large bursts, such as frequency hopping radio that has strong interference on a percentage of frequencies. Further applications include Internet or Intranet broadcasting and may be used in any network architecture.
The present invention relates to an error correcting method for a multipoint communications system, comprising partitioning a message into Data Blocks in which each of the Data Blocks are further divided into N data segments, representing one or more bits. At least one distinct combination of N data segments is computed using a Boolean or arithmetic operator such as XOR to form Error Correcting Segments where N is equal to 2, 3, or a larger natural number. In the present invention, steps, in addition to receiving the Data or Error Correcting Segments, such as correcting bit errors and performing operations on the Data or Error Correcting Segments which have been received correctly are employed to recover as much of the data block information as possible.
In a variation of the error correcting method of the present invention, each of the Data or Error Correcting Segments is transmitted two or more times. This reduces the error rate at the expense of additional overhead.
The present invention is directed for use in any lossy environment, but is particularly useful in broadcast data systems such as communications systems exposed to intentional or unintentional jamming and satellite systems.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a sequence of Data and Error Correcting Segments sent according to an embodiment of the present invention in which a Data Block of a message is divided into two Data Segments (N=2).
FIG. 2 shows a sequence of Data and Error Correcting Segments sent according to an embodiment of the present invention in which a Data Block of a message is divided into three Data Segments (N=3).
FIG. 3 shows a sequence of Data and Error Correcting Segments according to another embodiment of the present invention in which a Data Block of a message is divided into two Data Segments and each Data Segment and Error Correcting Segment is sent twice in succession (N=2, R=2).
FIG. 4 shows a sequence of Data or Error Correcting Segments sent according to an embodiment of the present invention in which a Data Block of a message is divided into two Data Segments and each Data Segment and combination of Data Segments is sent three times (N=2, R=3).
FIG. 5 shows a sequence of Data and Error Correcting Segments sent according to an embodiment of the present invention in which a Data Block of a message is divided into three Data Segments and each Data Segment and each Error Correcting Segment is sent a second time after all Data Segment and Error Correcting Segments are sent a first time (N=3, R=2).
FIG. 6 shows an embodiment in which a message is broken up into Y+1 Data Blocks and each Data Block is divided into N=3 Data Segments.
FIG. 7 shows the logical structure of a Data or Error Correcting Segment which is transmitted.
FIG. 8 shows a sequence in which various Data or Error Correcting Segments are transmitted for N=3 case.
FIG. 9 shows a graphical representation of the performance of repeat coding methods of the prior art versus the performance of the present invention in which a Data Block of a message is divided into N=2 or N=3 Data Segments.
FIG. 10 shows a flow chart for processing for transmission.
FIG. 11 shows a flow chart for processing of the received Data Segment or Error Correcting Segments after transmission.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention relates to an error correcting method suitable for any multipoint communications system. In particular, it provides significantly improved bit error rate performance, for a given available bandwidth over existing methods for a broadcast multi-point system with large numbers of remote nodes. It also provides significant latency advantages over existing methods for satellite and other latency critical applications.
The present invention relies upon reversible operations.
Reversible Operations
A reversible operation is any operation that modifies information in such a way that it is recoverable through a reverse operation. Two examples of reverse operations are binary XOR and modulo addition. In the case of modulo addition, the reverse operation is modulo subtraction. Straight addition is also a reversible operation; however, it has the drawback that it is not easy to represent unbounded numbers in a communications system.
For binary XOR,
A=A⊕B⊕B.
Example: A=011000101
B=100101001
A⊕B=111101100
A⊕B⊕B=011000101=A
For modulo addition,
A=A+B−B.
Note that numbers always take a value between 0 and the base (A-F denote 10-15 in base 16). Numbers are represented by adding or subtracting the base value to fit it within the allowed values. Also, note that binary XOR is identical to modulo addition (or subtraction) using base 2.
Example, base 16:
A=B149
B=053C
A+B=B675
A+B−B=B149=A.
Example, base 10:
A=93542
B=89625
A+B=72167
A+B−B=93542=A.
Preferred Embodiments
In the present method, a message is divided into Data Blocks consisting of one or more bits, each of the Data Blocks is further subdivided into N Data Segments. Then, the N Data Segments and each and every distinct combination of the N Data Segments (i.e., Error Correcting Segments) is transmitted at least once. Each of the distinct combinations are generated by performing a reversible Boolean or arithmetic operation on two or more Data Segments. A receiver processes the received Data Segments and Error Correcting Segments using the reverse operation to derive each of the N Data Segments which were not received or were discarded. One advantage in the present method is that there is no reliance on an acknowledge signal. By not incorporating any acknowledgment signals, such as ACK or NACK, the present method is very amenable to performing well in a large or highly lossy communications environment or high latency such as satellite systems.
FIG. 1 shows an embodiment in which a data block is divided into two Data Segments A and B. In this embodiment, there is only one distinct combination of the Data Segments; i.e., A⊕B (A exclusive OR'ed with B). Unlike prior art methods, there is no acknowledge signal which is sent from the receiver to the transmitter. This permits faster communications and less overhead since no time need be spent waiting for a return message and the overhead of the ACK/NACK is not needed.
FIG. 2 shows a second embodiment in which a message Data Block is divided into three Data Segments: A, B, C. In this embodiment, there are four distinct Error Correcting Segments: A⊕B, A⊕C, B⊕C, and A⊕B⊕C.
FIG. 3 shows a third embodiment in which a message segment is divided into two Data Segments: A and B. In the third embodiment, the Data Segments and Error Correcting Segments are each transmitted twice: A, A, B, B, A⊕B, and A⊕B.
FIGS. 4 and 5 show other more complex extensions of this method.
Patent Algorithm Description:
The message to be sent is broken into data blocks. Each data block, furthermore, is divided into N data segments labeled A, B, C, etc. as shown in FIG. 6. Error Correcting Segments are all unique combinations of the XOR (bitwise exclusive “or”) of the N data segments. The size of each Data or Error Correcting Segment is preferably chosen such that each Data Segment or Error Correcting Segment has an independent probability of being blocked by interference or jamming. The Data and Error Correcting Segments need not be of the same size. Each Data Segment or Error Correcting Segment contains four fields: a block number, a sequence number, a data field, and a CRC or check field, as shown in FIG. 7.
As shown in FIG. 8, all Data Segment or Error Correcting Segments are transmitted. First, the Data segments of a data block representing actual data are transmitted. Second, the Error Correcting Segments formed by reversible operations from the Data Segments of a data block are then transmitted. Next, the Data Segments of the next Data Block are sent followed by transmission of the Error Correcting Segments. The process continues until all Data Block information has been transmitted.
The block number identifies the data block of the message being transmitted in a numerical sequence. This is a count value that increments after the completion of transmission of a data block and wraps to zero if it reaches the maximum block number value. This allows reliable detection of redundant information in the event that more packets may be lost. In an example of a Data Block consisting of three Data Segments A, B, and C, Data Segment or Error Correcting Segment #0 is [A], #1 is [B], #2 is [C], #3 is [A⊕B], #4 is [A⊕C], #5 is [B⊕C], and #6 is [A⊕B⊕C].
The check field determines the validity of the information, and protects the sequence and segment values, in addition to the user data.
When a Data Segment or Error Correcting Segment is received, its check field is processed to determine whether there has been any corruption of data. If the Data Segment or Error Correcting Segment is determined to be corrupted, it is discarded. Data and Error Correcting Segments may also not be received at all such as might occur in a burst error in a frequency hopping system. This can be detected by processing and interpreting the block and request number information. If the receiver completely misses a Data segment, the Data segment still may be reconstructed if a proper set of Data and Error Correcting Segments are received which are determined not to have errors.
The present method relies solely on the receiver's reception of Data Segments or Error Correcting Segments. If a Data segment is recovered, then the relevant section of the data block may be directly reconstructed with this part. If certain Data Segments are not directly recovered, they may still be derived through processing of other uncorrupted Data and Error Correcting Segments which have been received. In the event that certain Data Segments of a Data Block are not recoverable, then corrupted bits, zero fillers, or random bits may be inserted for those parts. For example, if a data block has three data segments, A, B, and C, and B is not recoverable, then the receiver sends out the data as A 0 C. In asynchronous systems, the unrecovered data can be deleted by sending just A C.
The cases of N=2 and N=3 are shown below, and the XOR is replaced by a “⊕” for ease of readability.
N=2:
Transmitted Data Segment or Error Correcting Segment #1=[A]
Transmitted Data Segment or Error Correcting Segment #2=[B]
Transmitted Data Segment or Error Correcting Segment #3=[A⊕B]
N=3:
Transmitted Data Segment or Error Correcting Segment #1=[A]
Transmitted Data Segment or Error Correcting Segment #2=[B]
Transmitted Data Segment or Error Correcting Segment #3=[C]
Transmitted Data Segment or Error Correcting Segment #4=[A⊕B]
Transmitted Data Segment or Error Correcting Segment #5=[B⊕C]
Transmitted Data Segment or Error Correcting Segment #6=[A⊕C]
Transmitted Data Segment or Error Correcting Segment #7=[A⊕B⊕C]
N=2, R=2:
Transmitted Data Segment or Error Correcting Segment #1=[A]
Transmitted Data Segment or Error Correcting Segment #2=[B]
Transmitted Data Segment or Error Correcting Segment #3=[A⊕B]
Transmitted Data Segment or Error Correcting Segment #4=[A]
Transmitted Data Segment or Error Correcting Segment #5=[B]
Transmitted Data Segment or Error Correcting Segment #6=[A⊕B]
Note that the order of transmitted segments is unimportant to the algorithm except for its effect on base case latency.
At the receiver, upon receipt of the transmitted Data or Error Correcting Segments, all erroneous Data and Error Correcting Segments are discarded. The remaining valid Data and Error Correcting Segments are used to regenerate all or some of the original N Data Segments of a Data Block.
In the case of N=2, the entire data block (i.e., [A] and [B]) can be recovered if any of the following sets of Data Segments and Error Correcting Segments are received:
[A],[B]
[A],[A⊕B]
[B],[A⊕B]
Partial information can be recovered if some single Data Segments are correctly received (i.e., [A] or [B]).
For the case of N=3, it turns out that any set of 4 or more of the 7 Data or Error Correcting Segments transmitted will result in the error free recovery of [A] [B] and [C]. Further, all but 4 sets out of the possible thirty five sets of 3 successfully received Data and Error correcting segments will result in successful recovery of all [A] [B] and [C].
These 4 sets are:
[A⊕B] [B⊕C] [A⊕C]—can not recover any information
[A⊕B⊕C] [A⊕B] [C]—can only recover [C]
[A⊕B⊕C] [A⊕C] [B]—can only recover [B]
[A⊕B⊕C] [B⊕C] [A]—can only recover [A]
For higher values of N, the number of valid combinations rapidly increases, rapidly increasing both the performance and complexity of the algorithm. However, if a simple look-up table is generated and used, the computation complexity of the algorithm stays small even for large N, but the memory requirements increase quickly.
The method for recovering information is to XOR the appropriate Data Segments or Error Correcting Segments to yield the desired Data Segments which need to be derived. For example, [A] XOR [A XOR B] will yield [B]. XOR is a associative operator, so switching the order of arguments being XOR'ed together will yield identical results.
For cases where N is very small, it is easy to implement each case directly into code. For larger N, a look up table is the easiest implementation. In any case, N should not be a large number as processing becomes overly complicated and correspondingly slow.
Algorithm Performance Comparisons:
The case where this algorithm is of most significance is in an environment where Data Segments or Error Correcting Segments are completely corrupted, often referred to as blocked, with a probability, Pb, and are received intact with no errors with a probability (1−Pb). This environment occurs in the presence of intermittent interference.
In this scenario, a normal error correction code will only be throwing away bandwidth, since it is not capable of correcting the large numbers of errors that will occur if there is a large burst error, unless extremely large numbers of bits are interleaved, resulting in excessive latency. Even with this interleaving, it is believed that performance will generally not be as good as our proposed method.
In a scenario where some Data Segments or Error Correcting Segments are blocked, while others contain only a handful of errors, the combination of our patent method with a FEC code can be of benefit. In this case, the FEC corrects the Data Segment or Error Correcting Segments containing a small number of bit errors, and then the present method is applied to correct for the lost Data segments containing too many errors for an FEC to resolve.
Repetition Coding Performance:
A previously proposed algorithm for solving this problem is to use repetition coding. Using repetition coding, a data block is broken into Data Segments, and each Data Segment is transmitted R times. The probability of error (or missed message), denoted Pe, is found to be:
Pe=Pb R
because each of R Data Segments in a row must be missed.
The channel efficiency of this scheme, which is equal to the ratio of new information to total information transmitted, is:
Channel Efficiency=(1 data segment of information in a Data Block/R Data Segments of that Data Block transmitted)=1/R
Patent Algorithm Coding Performance:
By performing an exhaustive search on the possible combinations, we can find the probability of any particular data segment of a message being lost. In the case of N=2, we miss Data Segment [A] only if we receive Data segment [B] by itself, Error Correcting Segment [A⊕B] by itself, or no Data Segment or Error Correcting Segment.
P(A missed)=P([B] good)×P([A] bad)×P([A⊕B] bad)+P([A⊕B] good)×P([A] bad)×P([B] bad)+P([A] bad)×P([B] bad)×P([A⊕B] bad)
P(B missed)=P([A] good)×P([B] bad)×P([A⊕B] bad)+P([A⊕B] good)×P([A] bad)×P([B] bad)+P([A] bad)×P([B] bad)×P([A⊕B] bad)
Therefore,
P e =P(A missed)=P(B missed)=Σ3 k=2(3k)P b k q 3−k=(3 2)P b 2 (1−P b)+P b 3=3P b 2(1−P b)+P b 3
For very small Pb, Pe≅3Pb 2.
Channel Efficiency=(2 data segments of information in a data block/3 Data Segment and Error Correcting Segments of that data block transmitted)=⅔≅67%.
In the case of N=3, the probability of a missed Data segment is found to be:
P e=4P b 4(1−P b)37 k=5(7 k)P b k q 7−k=4P b 4(1−P b)3+21P b 5(1−P b)2+7P b 6(1−P b)+P b 7
For very small Pb, Pe≅4Pb 4.
Channel Efficiency=(3 data segments of information in a data block/7 Data Segment and Error Correcting Segments of that data block transmitted)={fraction (3/7)}=43%.
In the case of N=2, R=2, the probability of a missed message is found to be:
P e=3P b 4(1−P b)26 k=5(6 k)P b k q 6−k=3P b 4(1−P b)2+6P b 5(1−P b)+P b 6
For very small Pb, Pe≅3Pb 4.
Channel Efficiency=(2 data segments of information in a data block/6 Data Segment and Error Correcting Segments of that data block transmitted)=⅓≅33%.
FIG. 4 shows a fourth embodiment in which the data block is divided into two data segments and each Data Segment or Error Correcting Segment is transmitted three times (N=2, R=3).
In the case of N=2, R=3, the probability of a missed Data Segment is found to be:
P e=3P b 7(1−P b)2+9P b 6(1−P b)39 k=8 (9 k)P b k q 9−k=9P b 6(1−P b)3+3P b 7(1−P b)2+9P b 8(1−P b)+Pb 6.
For very small Pb, Pe≅9Pb 6.
Channel Efficiency=(2 data segments of information in a data block/6 Data or Error Correcting Segments of that data block transmitted)=⅓≅33%.
FIG. 5 shows a fifth embodiment in which the message is divided into three Data segments and each Data Segment and Error Correcting Segment is transmitted once in succession and then a second time in the same order (N=3, R=2).
Graphically comparing the errored message probability when the blocking probability is varied, we can easily compare performance of schemes with similar channel efficiency.
FIG. 9 shows a comparison of performance of the present invention for the embodiments of FIGS. 1, 2, and 3 versus the performance in the case where no coding is used and for methods in which the Data and Error Correcting Segments are transmitted two, three, or four times each. Although the method of the prior art method of transmitting data segments of a data block two times has a similar performance to that of the method of the present invention in which the data block is divided into two Data segments, the efficiency of the method of the present invention is 66% which is notably superior to the 50% efficiency of the prior art method in which the Data segments of a data block are each transmitted twice. Likewise, although the prior art method of transmitting Data and Error Correcting Segments four times has a similar performance to that of the method of the present invention in which the data block is divided into three Data segments (N=3) or the method of the present invention in which the data block is divided into two Data segments in which each Data Segment and Error Correcting Segment is transmitted twice (N=2, R=2). The prior art method of transmitting data segments of a data block four times only has an efficiency of 25% whereas the efficiency for N=3 method of the present invention is superior at an efficiency of 47% and the efficiency of the N=2, R=2 method of the present invention is superior at an efficiency of 33%.
Comparing the results, as shown in FIG. 9, we see that the performance of our method with N=2 is very close to that of repeat coding with R=2. In this case, the efficiency of the repeat coding is only 50%, vs. 66% for our method. This means we get a 32% increase in throughput for the same RF channel, while maintaining a similar message error performance.
In the comparison of our method with N=3 and repeat coding with R=4, both methods provide similar message error protection. In this case, the efficiency of the repeat coding is only 25%, vs. 47% for our method. This means we get a 88% increase in throughput for the same RF channel, while maintaining a similar message error performance.
The case of N=2, R=2 yields performance that is sub-optimal when compared with the N=3 case, as it has similar performance but with a lower efficiency. This case is presented because it can be implemented with a simpler algorithm than in the N=3 case.
Flow charts for algorithms to decode and correct messages are shown in FIGS. 10 and 11.
Definition of some Variables that must be set when this Algorithm is Called:
errored_Data Segment or Error Correcting Segment[x]=TRUE if Data Segment or Error Correcting Segment “x” was received correctly and FALSE otherwise
Data Segment or Error Correcting Segment[x]=the actual data contained in Data Segment or Error Correcting Segment “x”
The Data Segment or Error Correcting Segment variable is stored directly upon being received, while the errored_Data Segment or Error Correcting Segment variable is defaulted to FALSE, and set to TRUE when a valid CRC is detected for a Data Segment or Error Correcting Segment.
In the Simple Case of [A] [B] [A⊕B] Coding, the Following Algorithm can be Used:
if {
(errored_Data Segment or Error Correcting Segment[“A”] ==
FALSE) and
(errored_Data Segment or Error Correcting Segment[“B”] ==
TRUE) and
(errored_Data Segment or Error Correcting Segment[“A⊕B”] ==
TRUE)
}
then  Data Segment or Error Correcting Segment[“A”] =
XOR(errored_Data Segment or Error Correcting Segment[“B”],
errored_Data Segment or Error Correcting Segment[“A⊕B”])
if {
(errored_Data Segment or Error Correcting Segment[“B”] ==
FALSE) and
(errored_Data Segment or Error Correcting Segment[“A”] ==
TRUE) and
(errored_Data Segment or Error Correcting Segment[“A⊕B”] ==
TRUE)
}
then Data Segment or Error Correcting Segment[“B”]=XOR(errored_Data Segment or Error Correcting Segment[“A”], errored_Data Segment or Error Correcting Segment[“A⊕B”])
the above algorithm also works for the case where the [A] [B] [A⊕B] coding is sent multiple times (R>1) for each Data Segment or Error Correcting Segment. In this case, if any Data Segment or Error Correcting Segment is received multiple times, the duplicate is discarded, and the algorithm above applies.
In the case of the more complicated case of arbitrary N, a look-up table is the easiest implementation:
An additional array of constants must be defined to store the look-up table.
look_up_table[x,y,z]=the index of one Data Segment or Error Correcting Segment to be XOR'ed to recreate data segment “x”. A value of 0 indicates that no more Data Segment or Error Correcting Segments need to be XOR'ed. The parameter “y” is the index of one of the Data Segment or Error Correcting Segments that can recover data segment “x”. Parameter “z” specifies which Data Segment or Error Correcting Segment index that must be XOR'ed. This table can be generated by hand or using a computer program.
A constant defined as MAX_Z is equal to the maximum number of different ways we can correctly XOR Data Segment or Error Correcting Segments to recover an original message
In the case of N=2 (detailed immediately above), look_up _table = [ 2 , 3 1 , 3 ]
Figure US06728920-20040427-M00001
and MAX_Z=1
In the case of N=3, look_up _table = [ 2 , 4 , 0 3 , 5 , 0 6 , 7 , 0 2 , 3 , 7 1 , 2 , 0 3 , 6 , 0 5 , 7 , 0 1 , 3 , 7 1 , 5 , 0 2 , 6 , 0 4 , 7 , 0 1 , 2 , 7 ]
Figure US06728920-20040427-M00002
and MAX_Z=4
for x=1 to N,/* repeat for each of the N information data segments */
{
/* only bother with error correction if an error occurred on this
Data Segment or Error Correcting Segment */
If (errored_Data Segment or Error Correcting
Segment[x]==TRUE)
then
{
z = 1
flag = FALSE
while ((z <= MAX_Z) and (flag==FALSE))
{
/* check if all required data blocks of this XOR combo was
correctly received */
flag = TRUE /* flag defaults to true */
for y = 1:N,
{
if (errored_Data Segment or Error Correcting
Segment[y]==TRUE)
then  flag = FALSE /* set flag false we are missing a combo
*/
}
}
/*flag is now TRUE if we found a way to recover the errored
Data Segment or Error Correcting Segment */
if (flag==TRUE)
then
{
Data Segment or Error Correcting Segment[x] = Data Segment
or Error Correcting Segment[look_up_table[x,1,z]]
for y = 2:N,
{
/* perform XORs to recover errored Data Segment or Error
Correcting Segment */
Data Segment or Error Correcting Segment[x] = XOR(Data
Segment or Error Correcting Segment[x], Data Segment or Error
Correcting Segment[look_up_table[x,y,z]])
}
}
}
}
Table 1 tabulates the different probability outcomes for retrieving an uncorrupted message part A.
TABLE 1
Computation of Probability of Error for [A] [B]
[A⊕B] coding:
“A” “A⊕B”
received “B” received received “A” recovered Probability of
Correctly? Correctly? Correctly? Correctly? Occurrence
No No No No Pb{circumflex over ( )}3
No No Yes No (Pb{circumflex over ( )}2)*(1 − Pb)
No Yes No No (Pb{circumflex over ( )}2)*(1 − Pb)
No Yes Yes Yes (Pb)*(1 − Pb){circumflex over ( )}2
Yes No No Yes (Pb{circumflex over ( )}2)*(1 − Pb)
Yes No Yes Yes (Pb)*(1 − Pb){circumflex over ( )}2
Yes Yes No Yes (Pb)*(1 − Pb){circumflex over ( )}2
Yes Yes Yes Yes (1 − Pb){circumflex over ( )}3
Computation Complexity and Memory requirements for different methods:
(assuming reasonably long messages)
[A],[B],[A⊕B]: ˜1 operation per bit of message, no look-up table
[A],[A],[B],[B],[A⊕B],[A⊕B]: same complexity as case immediately above
[A],[B],[C],[A⊕B],[A⊕C],[B⊕C],[A⊕B⊕C]: approximately 3 operations per bit of message, and 36 element look-up table with a minimum of 3 bits per table entry.
[A],[A],[B],[B ], [C],[C],[A⊕B ],[A⊕B ],[A⊕C],[A⊕C],[B⊕C], [B⊕C],[A⊕B⊕C],[A⊕B⊕C]: same complexity as case immediately above.
The user will appreciate that setting the values within a block of code or providing the values in a look up table are two of the ways to implement the preferred embodiments of the present invention.
A Data Block may be divided into four, five, six, or more Data Segments. Although further division is possible, the improved performance is outweighed by the increased processing time involved and memory required in processing larger look up tables.
The present method may be used in Internet and Intranet broadcasting systems.
The error message rate is related to the bit rate and latency. Latency is defined as the time delay from when the first byte enters the system to when it is output. In the multipoint communications systems, latency is generally limited to a few hundred milliseconds for most applications.
The above description is only illustrative of the invention. Various alternatives and modifications may be made by those skilled in the art without departing from the spirit of the invention. Accordingly, the present invention is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.
While the invention has been described with reference to preferred embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation of material to the teachings of the invention without departing from the scope of the invention. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope and spirit of the appended claims.

Claims (21)

What is claimed is:
1. A method for transmitting and recovering data from a transmitter to a receiver without requiring communications from the receiver to the transmitter, comprising:
(a) partitioning a message into N data segments;
(b) reversibly combining each data segment of the N data segments with at least one other data segment of the N data segments to form at least one error correcting segment; and
(c) transmitting the N data segments and the at least one error correcting segment.
2. The method of claim 1, wherein the stop of reversibly combining includes an exclusive OR operation.
3. The method of claim 2, wherein N is 2.
4. The method of claim 2, wherein N is 3.
5. The method of claim 2, wherein N is greater than 3.
6. The method of claim 1, further comprising:
(a) receiving any of the N data segments and the at least one error correcting segment;
(b) correcting bit errors, where possible, for any of the N data segments and the at least one error correcting segment received;
(c) discarding any of the N data segments and the at least one error correcting segment which are determined not to be correctable;
(d) storing any of the N data segments which are determined not to contain errors or which have been determined to be correctable and have been corrected; and
(e) performing operations on any of the at least error correcting segment and data segments which have been determined not to contain errors or which have been determined to have been corrected, the operations being performed to derive any of the N data segments which have not been stored.
7. The method of claim 6, wherein each of the N data segments and each of the at least one error correcting segment is transmitted twice.
8. The method of claim 7, wherein first each of the N data segments and each of the at least one error correcting segment are sent before sending any of the N data segments and the at least one error correcting segment a second time.
9. The method of claim 7, wherein each of the N data segments or each of the at least one error correcting segment is sent twice before sending the next of the N data segments or the at least one error correcting segment.
10. The method of claim 6, wherein each of the N data segments and each of the at least one error correcting segment is transmitted three times.
11. The method of claim 1, wherein the at least one error correcting segment include all the distinct combinations that can be formed by the N data segments.
12. The method of claim 11, wherein each of the N data segments and the at least one error correcting segment are sent R times, where R is a natural number greater than 1.
13. The method of claim 12, all of the N data segments and the at least one error correcting segment are sent once before any of the N data segments and the at least one error correcting segment are sent a second time.
14. The method of claim 12, wherein each of the N data segments and the at least one error correcting segment are sent R times before any other of the N data segments and the at least one error correcting segment are sent.
15. The method of claim 1, wherein each of the N data segments and the at least one error correcting segment are transmitted and at least one of the N data segments and at least one error correcting segment are transmitted at least one additional time.
16. A method for sending and receiving data for a communications system, comprising the steps of:
(a) partitioning a message into a plurality of blocks;
(b) partitioning each of the plurality of blocks into N data segments, N being a natural number greater than 1;
(c) reversibly combining, through the use of Boolean or arithmetic operations, the N data segments into all possible distinct combinations of the N data segments to form error correcting segments, each of the N data segments being used no more than once in forming any of the error correcting segments;
(d) transmitting all the N data segments and the error correcting segments by a transmitter;
(e) receiving the transmitted data segments and error correcting segments by a receiver;
(f) checking the received transmitted data segments and error correcting segments for errors;
(g) if the received data segment is determined not to contain errors, storing the data segment;
(h) if the received data segment or error correcting segment is determined to contain errors, then correcting it if it is determined to be correctable and either storing the corrected data segment or temporarily saving the error correcting segment, otherwise, discarding the data segment or error correcting segment;
(i) if the received error correcting segment is determined not to contain errors, then temporarily saving the error correcting segment in memory;
(j) if one of the transmitted data segments has not been received or has been discarded, performing operations on temporarily saved error correcting segments and stored data segments to derive other data segments; and
(k) if a data segment is derived, storing the derived data segment.
17. The method of claim 16, further comprising the step of
(i) zero filling data for those data segments which have not been received nor derived or have been discarded.
18. The method of claim 17, further comprising the step of
(i) sending out only the data segments which have been stored without zero filling data.
19. The error correcting method of claim 16, wherein the receiver does not transmit any acknowledge or negative acknowledge signal to the transmitter.
20. A method for transmitting and recovering data, comprising:
(a) partitioning a message into N data segments;
(b) reversibly combining each data segment of the N data segments with at least one other data segment of the N data segments, each data segment being used no more than once to form any of the error correcting segments;
(c) transmitting the N data segments and the error correcting segments; and
(d) receiving any of the N data segments and error correcting segments.
21. A method for transmitting and recovering data, comprising:
(a) partitioning a message into blocks;
(b) partitioning each of the blocks into N data segments;
(c) reversibly combining each data segment of the N data segments with at least one other data segment of the N data segments to form error correcting segments, each data segment being used no more than once to form any of the error correcting segments;
(d) transmitting the N data segments and the error correcting segments; and
(e) receiving any of the N data segments and error correcting segments.
US09/317,549 1999-05-24 1999-05-24 Method for correcting errors in transfer of information Expired - Lifetime US6728920B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/317,549 US6728920B1 (en) 1999-05-24 1999-05-24 Method for correcting errors in transfer of information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/317,549 US6728920B1 (en) 1999-05-24 1999-05-24 Method for correcting errors in transfer of information

Publications (1)

Publication Number Publication Date
US6728920B1 true US6728920B1 (en) 2004-04-27

Family

ID=32107710

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/317,549 Expired - Lifetime US6728920B1 (en) 1999-05-24 1999-05-24 Method for correcting errors in transfer of information

Country Status (1)

Country Link
US (1) US6728920B1 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030002499A1 (en) * 2001-06-22 2003-01-02 Broadcom Corporation FEC block reconstruction system, method and computer program product for mitigating burst noise in a communications system
US20030023915A1 (en) * 2001-07-30 2003-01-30 Koninklijke Philips Electronics N.V. Forward error correction system and method for packet based communication systems
US20030031198A1 (en) * 2001-06-22 2003-02-13 Broadcom Corporation System , method and computer program product for mitigating burst noise in a communications system
US20030202610A1 (en) * 2000-04-18 2003-10-30 Kazuhiko Terada Encoding method
US20030206561A1 (en) * 2000-06-09 2003-11-06 Schmidl Timothy M. Wireless communications with efficient channel coding
US20040100937A1 (en) * 2002-11-26 2004-05-27 Tao Chen Multi-channel transmission and reception with block coding in a communication system
US20050222751A1 (en) * 2004-04-06 2005-10-06 Honda Motor Co., Ltd Method for refining traffic flow data
US20060239254A1 (en) * 1998-12-08 2006-10-26 Nomadix, Inc. Systems and Methods for Providing Dynamic Network Authorization, Authentication and Accounting
US7197556B1 (en) * 1999-10-22 2007-03-27 Nomadix, Inc. Location-based identification for use in a communications network
US20070253423A1 (en) * 2006-05-01 2007-11-01 Aik Chindapol Embedded retransmission scheme with cross-packet coding
US20080180730A1 (en) * 2007-01-26 2008-07-31 Samsung Electronics Co., Ltd. Host device and printing control method thereof
US20090282309A1 (en) * 2008-05-07 2009-11-12 Nec Laboratories America, Inc. Cognitive radio, anti-jamming coding retransmission methods and systems
US7712015B1 (en) * 2001-07-19 2010-05-04 Cisco Technology, Inc. Apparatus and method for separating corrupted data from non-corrupted data within a packet
US20110055666A1 (en) * 2009-09-02 2011-03-03 Agere Systems Inc. Receiver for error-protected packet-based frame
CN1738219B (en) * 2004-05-14 2011-05-11 夏普株式会社 Transmitter, receiver, data transfer system, transmission method, reception method
US20110301947A1 (en) * 1999-12-14 2011-12-08 Texas Instruments Incorporated Systems, processes and integrated circuits for rate and/or diversity adaptation for packet communications
US8156246B2 (en) 1998-12-08 2012-04-10 Nomadix, Inc. Systems and methods for providing content and services on a network system
US20120290876A1 (en) * 2011-05-10 2012-11-15 At&T Intellectual Property I, L.P. System and Method for Delivering Content Over a Multicast Network
US20120287806A1 (en) * 2004-08-06 2012-11-15 LiveQoS Inc. System and method for achieving accelerated throughput
US8613053B2 (en) 1998-12-08 2013-12-17 Nomadix, Inc. System and method for authorizing a portable communication device
US8615692B1 (en) * 2009-12-15 2013-12-24 Cadence Design Systems, Inc. Method and system for analyzing test vectors to determine toggle counts
US20140126580A1 (en) * 2012-11-02 2014-05-08 Qualcomm Incorporated Method, device, and apparatus for error detection and correction in wireless communications
KR20180019488A (en) * 2016-08-16 2018-02-26 폭스바겐 악티엔 게젤샤프트 Method for the digital transmission of data blocks from a sending station to a receiving station, sending station, receiving station and motor vehicle for use in the method
RU2711035C1 (en) * 2019-05-08 2020-01-14 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Modified error correction device taking into account deletion signal

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3685016A (en) * 1969-10-29 1972-08-15 Honeywell Inc Array method and apparatus for encoding, detecting, and/or correcting data
US4644543A (en) 1984-09-26 1987-02-17 Honeywell Inc. Forward error correction hardware for a data adaptor
US4769818A (en) 1984-05-30 1988-09-06 Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee Method and apparatus for coding digital data to permit correction of one or two incorrect data packets (bytes)
US4956709A (en) 1988-03-11 1990-09-11 Pbs Enterprises, Inc. Forward error correction of data transmitted via television signals
US5010554A (en) 1989-05-12 1991-04-23 At&T Bell Laboratories Error correction method and apparatus
US5010553A (en) 1988-12-05 1991-04-23 Compuquest, Inc. High speed, error-free data transmission system and method
US5220568A (en) 1988-05-31 1993-06-15 Eastman Kodak Company Shift correcting code for channel encoded data
US5247523A (en) 1989-07-12 1993-09-21 Hitachi, Ltd. Code error correction apparatus
US5260840A (en) * 1991-03-18 1993-11-09 Hitachi, Ltd. PCM signal recording system
US5282211A (en) 1991-08-14 1994-01-25 Genrad, Inc. Slip detection during bit-error-rate measurement
US5285497A (en) 1993-04-01 1994-02-08 Scientific Atlanta Methods and apparatus for scrambling and unscrambling compressed data streams
US5313475A (en) 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5321703A (en) 1992-03-13 1994-06-14 Digital Equipment Corporation Data recovery after error correction failure
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5528607A (en) 1995-02-02 1996-06-18 Quantum Corporation Method and apparatus for protecting data from mis-synchronization errors
US5548598A (en) 1994-03-28 1996-08-20 Motorola In a data communications systems a method of forward error correction
US5596589A (en) * 1993-10-29 1997-01-21 Motorola, Inc. Method and apparatus for encoding and decoding error correction codes in a radio communication system
US5600663A (en) 1994-11-16 1997-02-04 Lucent Technologies Inc. Adaptive forward error correction system
US5631907A (en) 1995-12-13 1997-05-20 Lucent Technologies Inc. Reliable broadcast protocol structure for electronic software distribution
US5699365A (en) 1996-03-27 1997-12-16 Motorola, Inc. Apparatus and method for adaptive forward error correction in data communications
US5699369A (en) 1995-03-29 1997-12-16 Network Systems Corporation Adaptive forward error correction system and method
US5844918A (en) * 1995-11-28 1998-12-01 Sanyo Electric Co., Ltd. Digital transmission/receiving method, digital communications method, and data receiving apparatus
US6079043A (en) * 1997-05-30 2000-06-20 Matsushita Electric Industrial Co., Ltd. Magnetic disk apparatus

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3685016A (en) * 1969-10-29 1972-08-15 Honeywell Inc Array method and apparatus for encoding, detecting, and/or correcting data
US4769818A (en) 1984-05-30 1988-09-06 Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee Method and apparatus for coding digital data to permit correction of one or two incorrect data packets (bytes)
US4644543A (en) 1984-09-26 1987-02-17 Honeywell Inc. Forward error correction hardware for a data adaptor
US4956709A (en) 1988-03-11 1990-09-11 Pbs Enterprises, Inc. Forward error correction of data transmitted via television signals
US5220568A (en) 1988-05-31 1993-06-15 Eastman Kodak Company Shift correcting code for channel encoded data
US5010553A (en) 1988-12-05 1991-04-23 Compuquest, Inc. High speed, error-free data transmission system and method
US5010554A (en) 1989-05-12 1991-04-23 At&T Bell Laboratories Error correction method and apparatus
US5247523A (en) 1989-07-12 1993-09-21 Hitachi, Ltd. Code error correction apparatus
US5260840A (en) * 1991-03-18 1993-11-09 Hitachi, Ltd. PCM signal recording system
US5282211A (en) 1991-08-14 1994-01-25 Genrad, Inc. Slip detection during bit-error-rate measurement
US5313475A (en) 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5321703A (en) 1992-03-13 1994-06-14 Digital Equipment Corporation Data recovery after error correction failure
US5285497A (en) 1993-04-01 1994-02-08 Scientific Atlanta Methods and apparatus for scrambling and unscrambling compressed data streams
US5596589A (en) * 1993-10-29 1997-01-21 Motorola, Inc. Method and apparatus for encoding and decoding error correction codes in a radio communication system
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5548598A (en) 1994-03-28 1996-08-20 Motorola In a data communications systems a method of forward error correction
US5600663A (en) 1994-11-16 1997-02-04 Lucent Technologies Inc. Adaptive forward error correction system
US5528607A (en) 1995-02-02 1996-06-18 Quantum Corporation Method and apparatus for protecting data from mis-synchronization errors
US5699369A (en) 1995-03-29 1997-12-16 Network Systems Corporation Adaptive forward error correction system and method
US5844918A (en) * 1995-11-28 1998-12-01 Sanyo Electric Co., Ltd. Digital transmission/receiving method, digital communications method, and data receiving apparatus
US5631907A (en) 1995-12-13 1997-05-20 Lucent Technologies Inc. Reliable broadcast protocol structure for electronic software distribution
US5699365A (en) 1996-03-27 1997-12-16 Motorola, Inc. Apparatus and method for adaptive forward error correction in data communications
US6079043A (en) * 1997-05-30 2000-06-20 Matsushita Electric Industrial Co., Ltd. Magnetic disk apparatus

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
Block Coding, Jun. 1998.
Cyclic Redundancy Check (CRC), at least as early as May 1999.
David Chase, Code Combining-A Maximum-Llkelihood Decoding Approach for Combining an Arbitrary Number of Noisy Packets, IEEE Transactions on Communications, May 1985, pp. 385-393, vol. COM-33, No. 5.
Direct Sequence, Sep. 1997.
Farhood Moslehi, Wireless Connectivity, 1996.
Hannu Kauppinen, Machine Vision and Media Processing Group, Applied research: Video coding for wireless channels, Jan. 1998.
Hans Werner Arweiler, Siemens Dynamic Duo, telcom report International, at least as early as May.
M. Aghadavoodi Jolfaei, U. Querheim, Multicopy ARQ Strategies for Heterogeneous Networks, Protocols for High Speed Networks IV, 1994, pp. 155-168, Chapman & Hall.
The Principles of Spread Spectrum Communication, at least as early as May 1999.
Thierry Turletti, Convolutional Coding / Decoding, Jun. 1996.
Thierry Turletti, Error Detecting Codes, Jun. 1996.
Thierry Turletti, From Speech to Radio Waves, Jun. 1996.

Cited By (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9160672B2 (en) 1998-12-08 2015-10-13 Nomadix, Inc. Systems and methods for controlling user perceived connection speed
US9548935B2 (en) 1998-12-08 2017-01-17 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8725888B2 (en) 1998-12-08 2014-05-13 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8788690B2 (en) 1998-12-08 2014-07-22 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8613053B2 (en) 1998-12-08 2013-12-17 Nomadix, Inc. System and method for authorizing a portable communication device
US8606917B2 (en) 1998-12-08 2013-12-10 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8370477B2 (en) 1998-12-08 2013-02-05 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8364806B2 (en) 1998-12-08 2013-01-29 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US8725899B2 (en) 1998-12-08 2014-05-13 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8266269B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing content and services on a network system
US20060239254A1 (en) * 1998-12-08 2006-10-26 Nomadix, Inc. Systems and Methods for Providing Dynamic Network Authorization, Authentication and Accounting
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US10341243B2 (en) 1998-12-08 2019-07-02 Nomadix, Inc. Systems and methods for providing content and services on a network system
US10110436B2 (en) 1998-12-08 2018-10-23 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8244886B2 (en) 1998-12-08 2012-08-14 Nomadix, Inc. Systems and methods for providing content and services on a network system
US8156246B2 (en) 1998-12-08 2012-04-10 Nomadix, Inc. Systems and methods for providing content and services on a network system
US7689716B2 (en) 1998-12-08 2010-03-30 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7197556B1 (en) * 1999-10-22 2007-03-27 Nomadix, Inc. Location-based identification for use in a communications network
US20110301947A1 (en) * 1999-12-14 2011-12-08 Texas Instruments Incorporated Systems, processes and integrated circuits for rate and/or diversity adaptation for packet communications
US8224643B2 (en) * 1999-12-14 2012-07-17 Texas Instruments Incorporated Sending packets of CELP and important information from an IC
US20030202610A1 (en) * 2000-04-18 2003-10-30 Kazuhiko Terada Encoding method
US7020211B2 (en) * 2000-04-18 2006-03-28 Nippon Telegraph And Telephone Corporaiton Encoding method and apparatus for forward error correction
US8223867B2 (en) * 2000-06-09 2012-07-17 Texas Instruments Incorporated Wireless communications with efficient channel coding
US20030206561A1 (en) * 2000-06-09 2003-11-06 Schmidl Timothy M. Wireless communications with efficient channel coding
US20030031198A1 (en) * 2001-06-22 2003-02-13 Broadcom Corporation System , method and computer program product for mitigating burst noise in a communications system
US20090327845A1 (en) * 2001-06-22 2009-12-31 Broadcom Corporation System and Method For Mitigating Burst Noise In A Communications System
US8667362B2 (en) 2001-06-22 2014-03-04 Broadcom Corporation System and method for mitigating burst noise in a communications system
US7631242B2 (en) 2001-06-22 2009-12-08 Broadcom Corporation System, method and computer program product for mitigating burst noise in a communications system
US9350491B2 (en) 2001-06-22 2016-05-24 Broadcom Corporation System and method for mitigating burst noise in a communications system
US20030002499A1 (en) * 2001-06-22 2003-01-02 Broadcom Corporation FEC block reconstruction system, method and computer program product for mitigating burst noise in a communications system
US7089478B2 (en) * 2001-06-22 2006-08-08 Broadcom Corporation FEC block reconstruction system, method and computer program product for mitigating burst noise in a communications system
US7712015B1 (en) * 2001-07-19 2010-05-04 Cisco Technology, Inc. Apparatus and method for separating corrupted data from non-corrupted data within a packet
US20030023915A1 (en) * 2001-07-30 2003-01-30 Koninklijke Philips Electronics N.V. Forward error correction system and method for packet based communication systems
US20040100937A1 (en) * 2002-11-26 2004-05-27 Tao Chen Multi-channel transmission and reception with block coding in a communication system
US7260764B2 (en) * 2002-11-26 2007-08-21 Qualcomm Incorporated Multi-channel transmission and reception with block coding in a communication system
US8219888B2 (en) 2002-11-26 2012-07-10 Qualcomm Incorporated Multi-channel transmission and reception with block coding in a communication system
US20050222751A1 (en) * 2004-04-06 2005-10-06 Honda Motor Co., Ltd Method for refining traffic flow data
CN1738219B (en) * 2004-05-14 2011-05-11 夏普株式会社 Transmitter, receiver, data transfer system, transmission method, reception method
US20150236813A1 (en) * 2004-08-06 2015-08-20 LiveQoS Inc. System and method for achieving accelerated throughput
US20120287806A1 (en) * 2004-08-06 2012-11-15 LiveQoS Inc. System and method for achieving accelerated throughput
US9893836B2 (en) * 2004-08-06 2018-02-13 LiveQoS Inc. System and method for achieving accelerated throughput
US7941724B2 (en) * 2006-05-01 2011-05-10 Nokia Siemens Networks Oy Embedded retransmission scheme with cross-packet coding
US20070253423A1 (en) * 2006-05-01 2007-11-01 Aik Chindapol Embedded retransmission scheme with cross-packet coding
US8854652B2 (en) * 2007-01-26 2014-10-07 Samsung Electronics Co., Ltd. Host device and printing control method thereof
US20080180730A1 (en) * 2007-01-26 2008-07-31 Samsung Electronics Co., Ltd. Host device and printing control method thereof
US20090282309A1 (en) * 2008-05-07 2009-11-12 Nec Laboratories America, Inc. Cognitive radio, anti-jamming coding retransmission methods and systems
US8347162B2 (en) * 2008-05-07 2013-01-01 Nec Laboratories America, Inc. Cognitive radio, anti-jamming coding retransmission methods and systems
US20110055666A1 (en) * 2009-09-02 2011-03-03 Agere Systems Inc. Receiver for error-protected packet-based frame
US8543893B2 (en) 2009-09-02 2013-09-24 Agere Systems Llc Receiver for error-protected packet-based frame
EP2369751A3 (en) * 2009-09-02 2012-02-29 Agere System Inc. Receiver for error-protected packet-based frame
US8615692B1 (en) * 2009-12-15 2013-12-24 Cadence Design Systems, Inc. Method and system for analyzing test vectors to determine toggle counts
US8954815B2 (en) 2011-05-10 2015-02-10 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US9294528B2 (en) 2011-05-10 2016-03-22 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US10819762B2 (en) 2011-05-10 2020-10-27 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US20120290876A1 (en) * 2011-05-10 2012-11-15 At&T Intellectual Property I, L.P. System and Method for Delivering Content Over a Multicast Network
US9686331B2 (en) 2011-05-10 2017-06-20 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US10348788B2 (en) 2011-05-10 2019-07-09 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US8601334B2 (en) * 2011-05-10 2013-12-03 At&T Intellectual Property I, L.P. System and method for delivering content over a multicast network
US9300602B2 (en) * 2012-11-02 2016-03-29 Qualcomm Incorporated Method, device, and apparatus for error detection and correction in wireless communications
US20140126580A1 (en) * 2012-11-02 2014-05-08 Qualcomm Incorporated Method, device, and apparatus for error detection and correction in wireless communications
EP3293903A3 (en) * 2016-08-16 2018-06-20 Volkswagen Aktiengesellschaft Device and method for transfering data
CN107769890A (en) * 2016-08-16 2018-03-06 大众汽车有限公司 By method of the data block from dispatching station Digital Transmission to receiving station
KR20180019488A (en) * 2016-08-16 2018-02-26 폭스바겐 악티엔 게젤샤프트 Method for the digital transmission of data blocks from a sending station to a receiving station, sending station, receiving station and motor vehicle for use in the method
CN107769890B (en) * 2016-08-16 2020-12-25 大众汽车有限公司 Method for digital transmission of data blocks from a transmitting station to a receiving station
RU2711035C1 (en) * 2019-05-08 2020-01-14 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Modified error correction device taking into account deletion signal

Similar Documents

Publication Publication Date Title
US6728920B1 (en) Method for correcting errors in transfer of information
US8386901B2 (en) Method, device and software application for transmitting data packets in a communication system
EP0928520B1 (en) Error detection scheme for arq systems
EP0054118B1 (en) Improved go-back-n automatic repeat request communication systems
EP0891662B1 (en) Method and apparatus for data recovery in arq systems
US6977888B1 (en) Hybrid ARQ for packet data transmission
EP0962068B1 (en) Automatic repeat request data communications method and apparatus
US10721020B2 (en) Parity frame
US20220311542A1 (en) Adaptive Payload Extraction and Retransmission in Wireless Data Communications with Error Aggregations
KR20000074685A (en) method for adaptive hybrid ARQ using a concatenated FEC
US20040181740A1 (en) Communicating method, transmitting apparatus, receiving apparatus, and communicating system including them
CN113078985B (en) Retransmission data packet merging error correction method and system
RU2786023C1 (en) Method for message transmission in systems with feedback and hybrid automatic repeat request
Jolfaei et al. Effective block recovery schemes for ARQ retransmission strategies
Jagath-Kumara A new HARQ scheme using BCH codes with unequal data and parity frames
Elfouly et al. Efficient Forward Error Correction for Reliable Transmission in Packet Networks
Elmougy et al. Analysis of ARQ protocols using AAED codes over the m (≥ 2)-ary Z-channel
Mandel et al. Selected CRC polynomials can correct errors and thus reduce retransmission
Jolfaei et al. Multicopy ARQ strategies for heterogeneous networks
WO1999004527A2 (en) Reconstruction of a sent data frame
JP2011234268A (en) Communication control device and communication control method
Bakhtiyari Performance evaluation of adaptive hybrid ARQ systems
Soltani et al. Performance evaluation of error control protocols over finite-state Markovian channels

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADAPTIVE BROADBAND CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EBERSMAN, HOWARD GLEN;REEL/FRAME:010002/0646

Effective date: 19990524

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12