Range Extension and Noise Mitigation For Wireless Communication Links Utilizing a CRC Based Single and Multiple Bit Error Correction Mechanism
First Claim
1. A method of extending the range of a wireless communications link, said method comprising the step of:
- using a packet cyclic redundancy check (CRC) error detection code as an error correction code to correct one or more bit errors in a received packet.
1 Assignment
0 Petitions
Accused Products
Abstract
A novel and useful range extension and in-band noise mitigation mechanism that uses conventional CRC error detection codes to correct single and multiple bit errors in packets received over a communications link. The CRC error correction mechanism of the invention is particularly suitable for use with communication protocols with weak error correction capabilities. The mechanism uses the linearity property of the CRC calculation to detect the existence of errors in the received packet. The entire received packet is searched for single bit errors and are corrected in a single cycle. If no single bit errors are found, the mechanism then searches for multiple bit errors. Packet retransmissions are used to detect and mark the location of multiple bit errors. Multiple bit errors are corrected by trying a plurality of hypotheses of single bit error corrections. Each hypotheses pattern is investigated to find matching CRC patterns for correction using the single bit, single cycle CRC error correction method.
51 Citations
25 Claims
-
1. A method of extending the range of a wireless communications link, said method comprising the step of:
using a packet cyclic redundancy check (CRC) error detection code as an error correction code to correct one or more bit errors in a received packet. - View Dependent Claims (2, 3, 4)
-
5. A method of correcting single bit errors in a received packet, said method comprising the steps of:
-
calculating a cyclic redundancy check (CRC) code for said received packet; XORing a received CRC code with said calculated CRC code to yield an XOR result therefrom; determining a bit error location in accordance with said XOR result; and flipping the value of the bit at said bit error location in said received packet thereby correcting said single bit error. - View Dependent Claims (6, 7, 8)
-
-
9. A method of correcting single bit errors in a received packet, said method comprising the steps of:
-
calculating a cyclic redundancy check (CRC) code for said received packet; XORing said calculated CRC code with a plurality of single bit error CRC correction values to generate a plurality of XOR results therefrom, wherein each CRC correction value corresponds to a single bit packet error; searching for a match between each XOR result and a received CRC code; and if a match is found, flipping the value of the bit at a bit location in said received packet corresponding to the bit number of the matching XOR result thereby correcting said single bit error. - View Dependent Claims (10, 11)
-
-
12. A method of correcting one or more bit errors in a received packet, said method comprising the steps of:
-
calculating a cyclic redundancy check (CRC) code for an initial received packet; utilizing a retransmitted packet to detect the presence of one or more bit errors; generating a plurality of hypotheses to check, each hypothesis represented by a CRC value; XORing said calculated CRC code with the CRC value associated with each hypothesis to generate a plurality of XOR results therefrom; searching for a match between said plurality of XOR results and a received CRC code; and if a match is found, flipping the value of the bit at one or more bit locations in said initial received packet corresponding to one or more bit numbers of a matching XOR result thereby correcting said one or more bit errors. - View Dependent Claims (13, 14)
-
-
15. A method of correcting multiple bit errors in a received packet, said method comprising the steps of:
-
calculating a cyclic redundancy check (CRC) code for an initial received packet; utilizing a retransmitted packet to detect the presence of multiple bit errors; generating a plurality of hypotheses to check, each hypothesis represented by a CRC value; for each bit position in said received packet, XORing the CRC value of each hypothesis with both a single bit error CRC correction value associated with a particular bit position and said calculated CRC code to generate XOR results therefrom; searching for a match between said plurality of XOR results and a received CRC code for each bit position in said received packet; and if a match is found, flipping the value of the bit at the bit location in said initial received packet corresponding to the location of the matching tested bit and the value of one or more bits corresponding to the matching hypothesis thereby correcting said multiple bit errors. - View Dependent Claims (16, 17, 18)
-
-
19. A software program product embodied in a computer-readable medium, comprising program instructions executable to implement:
a range extension and noise mitigation mechanism operative to use a packet cyclic redundancy check (CRC) error detection code as an error correction code to correct one or more bit errors in a received packet. - View Dependent Claims (20, 21)
-
22. A single chip radio controller, comprising:
-
a radio for establishing a link to a remote device; and a range extension and noise mitigation mechanism operative to use a packet cyclic redundancy check (CRC) error detection code as an error correction code to correct one or more bit errors in a received packet - View Dependent Claims (23, 24, 25)
-
Specification