GB2390513A - Improved error detection using forward error correction and a CRC check - Google Patents

Improved error detection using forward error correction and a CRC check Download PDF

Info

Publication number
GB2390513A
GB2390513A GB0215207A GB0215207A GB2390513A GB 2390513 A GB2390513 A GB 2390513A GB 0215207 A GB0215207 A GB 0215207A GB 0215207 A GB0215207 A GB 0215207A GB 2390513 A GB2390513 A GB 2390513A
Authority
GB
United Kingdom
Prior art keywords
error correction
data
received data
receiver
crc
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.)
Withdrawn
Application number
GB0215207A
Other versions
GB0215207D0 (en
Inventor
Ian Robert Johnson
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Priority to GB0215207A priority Critical patent/GB2390513A/en
Publication of GB0215207D0 publication Critical patent/GB0215207D0/en
Publication of GB2390513A publication Critical patent/GB2390513A/en
Withdrawn legal-status Critical Current

Links

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/0061Error detection codes
    • 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
    • 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

Abstract

Forward error correction (FEC) 2 is performed on received data and the error correction is judged to have failed if the number of changes or corrections made to the received data exceeds a threshold value. A cyclic redundancy check (CRC) 4 is also performed, and data is only passed onto higher levels if both the CRC check is valid and the error correction is judged to have been successful. If the number of error corrections exceeds the threshold the received data is rejected even if it yields a valid CRC. The number of corrections made to the received data is determined by re-encoding 10 the corrected data and comparing the re-encoded data to the received data 12. Invention is applicable to systems where the probability of errors is relatively high and the CRC check or FEC cannot provide a wholly reliable indication of validity, for example, Bluetooth (RTM) printers using 16 bit CRC values.

Description

l 23905 1 3
IMPROVED ERItOR DETECTION IN RECEIVED DATA TRANSMISSIONS The present invention relates to a method of receiving data and a receiver for receiving data in which the validity of error correction performed on the received data is determined as an additional check further to a cyclic redundancy check (CRC) being performed on the received data.
It is well known in the field of data transmission to perform one or more checks on the
received data to establish if the received data contains any errors. One such example that is used when the data is transmitted in discrete data packets is a cyclic redundancy check (CRC). A cyclic redundancy check involves using the data to be transmitted to calculate a unique value associated with the data. Various methods of calculation may be employed, ranging from simple binary addition of the data bits within the data to be transmitted to performing complex polynomial arithmetic on the data. Whatever calculation method is employed, the desired result is to achieve a unique CRC value associated with the data packet. The calculated CRC value is then appended to the data to be transmitted prior to transmission. At a receiver, an identical CRC calculation is performed on the received data, but not including the added CRC value. If no errors have occurred in the transmission of the data from the transmitter to the receiver, the CRC value calculated by the receiver will be identical to the CRC value initially calculated by the transmitter and transmitted with the transmitted data. A simple comparison of the transmitted and calculated CRC at the receiver will therefore indicate if any errors have occurred in the data during transmission. Typically, a CRC value comprises 32 bits, thus providing 232 possible unique CRC values.
The probability of two different random data packets therefore having the same CRC value is equivalent to about I in 4,300 million. The probability of an error occurring in the received data and not being detected is therefore very small.
However, it is known that some data transmission protocols, for example Bluetooth_, use CRC values having less than 32 bits, for example 16 bits. A 16 bit CRC value only allows
2'6, or approximately 65000 different CRC values to be generated. The numba of arors that can occur within a data packet before the CRC value can be identical to the CRC value for the packet having no errors is referred to as the "men distance". Clearly for a CRC value of only 16 bits, the minimum distance is less than for a 32 bit CRC value. This means that a data packet need only contain a smaller number of amrs before returning an apparently correct CRC value. Given the transmission rate for a system such as BluetoothlM combined with such a system having only a 16 bit CRC value, it is estimated that errors occurring in transmission but the CRC check being regarded as correct could occur every few minutes. One application where such an error rate has a particularly detrimental impact is in the use of Bluetooth_ enabled printers. The occurrence of an error once every few minutes in data transmission Dom a Bluetooth_ enabled device to a suitably enabled printer can result in a significant probability that any given print job will not be completed because of an error occurred in the data transmission from the device to the printer. Of course other Bluetooth_ enabled devices, such as a wireless headset for a cellphone, may be more tolerant of such error levels, but nonetheless such an error rate is highly undesirable. The above examples of Bluetooth_ enabled devices are for illustration only and are not to be considered as limiting.
Other error control schemes are known that are used to improve data transmission. A simple example of such a scheme is the use of an additional parity bit. The parity of the transmitted data is established prior to transmission and an additional parity bit set accordingly. On receipt of the transmitted data, the parity is again determined and compared with the parity bit. Disagreement between the determined parity and the transmitted parity bit indicates that an error has occurred during transmission. Other, more complex error control schemes are known, such as a forward error correction codes. These involve coding the transmitted data such that on receipt of the transmitted data, any errors that have occurred during transmission can be detected and/or corrected. An example of such a forward error correction scheme is convolution encoding with Viterbi decoding. A common characteristic of forward error correction codes is that redundant data is added to the data to be transmitted that allows the errors to be detected and corrected. Retuming to the previous example of Bluetooth_ data transmission, a 15:10 forward error correction code is employed i.e. 15 bits are transmitted to send 10 bits of actual data.
However, if the transmitted data contains more than a certain number of errors, the number of errors being dependent upon the particular forward error correction code being used, the forward error correction code can fail because it becomes impossible to determine unique corrections for the data, and incorrect data bits may be left uncorrected whilst "correct" ones may be altered by the correction scheme. This failure can be detected by reencoding the received data after the forward error correction has been applied to it and comparing the re-encoded data with the originally received transmitted data to determine the number of "errors" that have been "corrected" i.e. by determining the number of bits within the data that have been changed. A large number of "corrections" is an indication that the forward error correction code has failed.
An example of a similar technique is disclosed in the United States patent number 6,163,571, which discloses a signal processing circuit for a receiver in a digital wireless communication system that uses a re- encode and compare scheme to measure received signal quality. Packets of data bits that have passed a CRC check are re-encoded and are compared to the originally received data to determine the number of bits that have been changed by the forward error correction scheme. This provides an estimate of the received signal quality. The data is subsequently forwarded for further processing. However, this system always operates on the assumption that both the CRC check and the forward error correction are accomplished accurately.
For data transmission systems where the probability of errors occurring in the data transmission is relatively high, and in particular when only a relatively small CRC value is used, neither a CRC check or forward error correction coding provides a wholly reliable indication of the validity of a particular transmitted data packet.
According to a first aspect of the present invention there is provided a method of receiving data, the method comprising performing error correction on received data and determining if said error correction has failed, calculating a CRC value associated with said error corrected received data and rejecting received data that has a valid associated CRC value if said error correction has failed.
It is therefore possible to discard received data even though that data may have a valid CRC value, on the basis that an additional check on the likelihood of failure of the error correction is also conducted. In other words, the CRC check is being double checked using a furler check of the performance of the error correction scheme.
Preferably, the failure of the error correction is determined according to at least one parameter of the data changed by the error correction. Preferably, the at least one parameter is the number of bits changed during error correction. More particularly, the error correction is determined as having failed when the number of changed bits in a block of data exceeds a threshold value.
Preferably, the number of changed bits is determined by re-encoding the corrected data and comparing the re-encoded data with the originally received data Preferably, the error correction is performed in accordance with a forward error correction code. Additionally, the received data may be rejected if the CRC value associated with the received data is not valid.
Preferably, the received data is in data packet format. More preferably the received data comprises at least one BluetoothlM data packet.
According to a second aspect of the present invention there is provided a receiver arranged to perform error correction on received data and to determine if said error correction has failed, the receiver being further arranged to calculate a CRC value associated with the received data and to reject received data having a valid associated CRC value if said error correction has failed.
Preferably, the failure of the error correction is determined according to at least one parameter of the data changed by the error correction. In particular, the at least one parameter may compose the number of bits changed during error correction. Additionally,
the receiver may determine the error correction to have failed when the number of bits changed exceeds a threshold value.
Additionally or alternatively, the receiver may comprise an encoder arranged to re-encode the received data and a comparator arranged to compare the re-encoded data and the received data, whereby the number of changed bits is determined.
Preferably, the receiver is arranged to perform forward error correction.
Additionally, the receiver may be furler arranged to reject the received data if the associated CRC value is not valid.
Additionally, the receiver may be arranged to receive wireless data transmissions.
Preferably, the receiver comprises a BluetoothlM enabled receiver.
According to a third aspect of the present invention there is provided a wireless communication enabled device comprising a receiver, in accordance with the second aspect of the present invention.
Preferably, the wireless communication enabled device comprises a BluetoothlM enabled device, such as a printer, headset, loudspeaker or camera, computer, computer peripheral device, telephone, personal digital assistant, or other data processor. This list is not to be considered as exhaustive.
Embodiments of the present invention will be described, by way of example only, in conjunction with the accompanying figures, of which: Figure I schematically illustrates a prior art receiver; and
Figure 2 schematically illustrates a receiver according to an embodiment of the present invention.
Figure 1 schematically illustrates a prior art receiver. Received data is input to a forward
error correction decoder 2 that is arranged to perform a forward error correction on the received data, thereby correcting any errors that have occurred in the transmission of the data It will be appreciated that the received data may be demodulated before being input to the forward error correction decoder as is appropriate. The output of the forward error correction decoder 2 comprising the corrected data is input to a CRC checker 4. The CRC checker 4 calculates the associated CRC value and outputs both the calculated value and the value transmitted with the received data to a CRC tester 6. The CRC tester 6 compares the transmitted CRC value with that calculated by the CRC checker 4. If the two values are not equal the CRC tester 6 rejects the received packet. If the two CRC values are equal, indicating that the data has been successfully transmitted, then the data packet is passed onto further parts of the system connected to the receiver.
Where receivers of this type are used with data transmission protocols having a relatively small CRC check value, for example Bluetooth_ that has a 16 bit CRC value, the receiver is prone to incorrectly passing the data packet onto the higher layers. This occurs because where the received data contains a significant number of errors the forward error correction decoder 2 cannot successfully correct the errors, although it gives an indication that it has.
Incorrect data is therefore passed to Me CRC checker 4. As the CRC is only a 16 bit value, the probability of data having a significant number of errors generating a CRC value that nonetheless is identical to the correct CRC value is relatively high (around 1 in 60,000).
The CRC tester 6 will therefore determine that the calculated CRC is correct because it matches the transmitted CRC, even though in reality the data is not valid, and will pass the erroneous data to higher levels within the system.
Figure 2 schematically illustrates a receiver system according to an embodiment of the present invention. Where applicable, like elements are given like reference numerals.
Received data is input to a forward error correction decoder 2 where error correction is performed on the received data in an attempt to correct any errors that have occurred during transmission. The corrected data is output from the forward error correction decoder 2 and input to a CRC checker 4. The CRC check sum unit calculates the associated CRC value of the corrected data and passes this to a CRC tester check unit 6 that compares the
calculated CRC value with the CRC value transmitted with the data. If the two CRC values are not equal then the CRC tester 6 determines that the received data is not valid and rejects the data packet. The corrected data provided by the output to the forward error correction decoder 2 is also input to a re-encoder 10 that re-encodes the corrected data using the same code as employed for transmission of the data. The re-encoded data is output from the re-encoder 10 to a comparator 12. In addition to being input to the forward error correction decoder 2, the received data is also input to the comparator 12 via a delay block 14. The comparator 12 performs a bit by bit comparison between the originally received data and the corrected and re-encoded data to determine if any differences exist.
The number of differences is determined by a bit error counter 16 and provides an indication of the number of "errors" that have been "corrected" by the forward error correction decoder 2 in a given packet of data. The output of the bit error counter 16 is input to a forward error correction tester 18 that uses the number of errors to determine whether the forward error correction has in fact failed or not. The forward error tester 18 receives the corrected data from the output of the CRC tester 6. If the forward error correction tester 18 determines that the error correction has failed because the number of corrections exceeds a threshold, then the received data is rejected. If it is determined that both the CRC value is valid and that the forward error collection is valid, then the received data is output from the forward error correction tester 18 to higher levels of the system.
The advantage of the receiver system according to the above described embodiment of the present invention is that in addition to the CRC value being checked, which may provide an erroneous indication of a valid CRC because of the use of a relatively small number of bits for the CRC value, for example 16 bits in BluetoothlM applications, a further check is performed based on the determined validity of the forward error correction. In effect, the validity of the forward error correction is used as a double check on the validity of the CRC check. It is envisaged that embodiments of We present invention will be particularly applicable to wireless data transmission, for example Bluetooth_ systems, such as wireless connectivity between BluetoothlM enabled devices. Bluelooth_ is {liven as an example because it may be subject to a significant number of errors. This is due to a number of factors, one of
which is the use of only a 16 bit CRC check value that allows as previously discussed, an increase probability of an apparently correct check sum being generated Mom data containing a significant number of errors. Additionally, Bluetooth_ is transmitted within the 2.4GHz transmission band that is available for any other transmission systems at this frequency. The transmission chanted may therefore be of low quality due to relatively high interference from other sources. The channel is also susceptible to poor transmission quality because of interference resulting from multiple path transmissions where the wireless transmission reflects off objects within the transmission channel to create reflected additional transmissions that cm interfere with the originally transmitted signal. The applications using Bluetooth_ and which can have their error performance improved by use of embodiments of the present invention include Bluetooth_ enaUed printers.

Claims (21)

C1AIMS
1. A method of receiving data comprising performing error correction on received data and detennining if said error correction has failed, calculating a CRC value associated with said error corrected received data and rejecting received data that has a valid associated CRC value if said error correction is has failed.
2. A method according to claim 1, wherein the failure of said error correction is determined according to at least one parameter of the data changed by the error correction.
3. A method according to claun 2, wherein said at least one parameter comprises the number of bits changed during error correction.
4. A method according to claim 3, wherein said error correction is determined as having failed when the number of changed bits in a data packet exceeds a threshold value.
5. A method according to claim 3 or 4, wherein the number of changed bits is determined by re-encoding said corrected data and comparing said reencoded data to said originally received data.
6. A method according to any preceding claim wherein said error correction is performed in accordance with a forward error correction code.
7. A method according to any preceding claim, wherein said received data is rejected if said CRC value is not valid.
8. A method according to any preceding claim, wherein said received data conforms to a wireless transmission protocol.
9. A method according to any preceding claim, wherein said received data is in data packet format.
10. A method according to any preceding claim, wherein said received data comprises at least one Bluetooth_ data packet.
11. A receiver arranged to perform error correction on received data and to determine if said error correction has failed, the receiver being further arranged to calculate a CRC value associated with the received data and to reject received data having a valid associated CRC value if said error correction has failed.
12. A receiver according to claim 11, wherein the failure of said error correction is determined according to at least one parameter of the data changed by the error correction.
13. A receiver according to claim 12, wherein said at least one parameter comprises the number of bits changed in a data packet during error correction.
14. A receiver according to claim 13, wherein the receiver determines the error correction to have failed when the number of bits changed exceeds a threshold value.
15. A receiver according to claim 13 or 14, wherein said receiver comprises an encoder arranged to re-encode said received data and a data comparator arranged to compare said re-encoded data and said received data, whereby the number of changed bits is determined.
16. A receiver according to any one of claims 11 to 15, wherein said receiver is arranged to perform forward error correction.
17. A receiver according to any one of claims I I to 16, wherein said receiver is further arranged to reject said received data if said associated CRC value is not valid.
1 8. A receiver according to any one of claims 11 to 1 7, wherein said receiver is arranged to receive wireless data transmissions.
19. A receiver according to any one of claims 11 to 18, wherein said receiver comprises a Bluetoothl,A enabled receiver.
20. A wireless communication enabled device comprising a receiver according to any one of claims 11 to 19.
21. A device according to claim 20, wherein said Bluetoo enabled device comprises a printer.
GB0215207A 2002-07-02 2002-07-02 Improved error detection using forward error correction and a CRC check Withdrawn GB2390513A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0215207A GB2390513A (en) 2002-07-02 2002-07-02 Improved error detection using forward error correction and a CRC check

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0215207A GB2390513A (en) 2002-07-02 2002-07-02 Improved error detection using forward error correction and a CRC check

Publications (2)

Publication Number Publication Date
GB0215207D0 GB0215207D0 (en) 2002-08-14
GB2390513A true GB2390513A (en) 2004-01-07

Family

ID=9939637

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0215207A Withdrawn GB2390513A (en) 2002-07-02 2002-07-02 Improved error detection using forward error correction and a CRC check

Country Status (1)

Country Link
GB (1) GB2390513A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090316835A1 (en) * 2005-03-31 2009-12-24 Qualcomm Incorporated Power savings in hierarchically coded modulation
US7925958B2 (en) 2004-09-25 2011-04-12 Aware, Inc. CRC counter normalization
CN108631914A (en) * 2017-03-23 2018-10-09 展讯通信(上海)有限公司 Blue-teeth data verification, method of reseptance and device and bluetooth equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718066A (en) * 1985-03-05 1988-01-05 Agence Spataile Europeenne Self-adaptive hybrid data transmission
JPH07143100A (en) * 1993-11-16 1995-06-02 Sanyo Electric Co Ltd Error correction control method
EP0802636A2 (en) * 1996-04-19 1997-10-22 Matsushita Electric Industrial Co., Ltd. Method and apparatus for error correction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718066A (en) * 1985-03-05 1988-01-05 Agence Spataile Europeenne Self-adaptive hybrid data transmission
JPH07143100A (en) * 1993-11-16 1995-06-02 Sanyo Electric Co Ltd Error correction control method
EP0802636A2 (en) * 1996-04-19 1997-10-22 Matsushita Electric Industrial Co., Ltd. Method and apparatus for error correction

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300324B2 (en) 2004-09-25 2016-03-29 Tq Delta, Llc CRC counter normalization
EP3176973A1 (en) * 2004-09-25 2017-06-07 TQ Delta, LLC Crc counter normalization
US8793553B2 (en) 2004-09-25 2014-07-29 Tq Delta Llc CRC counter normalization
US10346243B2 (en) 2004-09-25 2019-07-09 Tq Delta, Llc CRC counter normalization
US7979778B2 (en) 2004-09-25 2011-07-12 Aware, Inc. CRC counter normalization
EP1792430B1 (en) * 2004-09-25 2011-07-20 Aware, Inc. Crc counter normalization
EP2381610A1 (en) * 2004-09-25 2011-10-26 Aware, Inc. CRC counter normalization
US8516337B2 (en) 2004-09-25 2013-08-20 Tq Delta, Llc CRC counter normalization
US10049003B2 (en) 2004-09-25 2018-08-14 Tq Delta, Llc CRC counter normalization
US8984366B2 (en) 2004-09-25 2015-03-17 Tq Delta, Llc CRC counter normalization
US7925958B2 (en) 2004-09-25 2011-04-12 Aware, Inc. CRC counter normalization
US20100220816A1 (en) * 2005-03-31 2010-09-02 Qualcomm Incorporated Power savings in hierarchically coded modulation
US20090316835A1 (en) * 2005-03-31 2009-12-24 Qualcomm Incorporated Power savings in hierarchically coded modulation
US7725799B2 (en) * 2005-03-31 2010-05-25 Qualcomm Incorporated Power savings in hierarchically coded modulation
US8874998B2 (en) 2005-03-31 2014-10-28 Qualcomm Incorporated Power savings in hierarchically coded modulation
US8737470B2 (en) * 2005-03-31 2014-05-27 Qualcomm Incorporated Power savings in hierarchically coded modulation
CN108631914B (en) * 2017-03-23 2020-11-17 展讯通信(上海)有限公司 Bluetooth data checking and receiving method and device and Bluetooth equipment
CN108631914A (en) * 2017-03-23 2018-10-09 展讯通信(上海)有限公司 Blue-teeth data verification, method of reseptance and device and bluetooth equipment

Also Published As

Publication number Publication date
GB0215207D0 (en) 2002-08-14

Similar Documents

Publication Publication Date Title
US20040107398A1 (en) Error detection in received data transmissions
US7707478B2 (en) Error correction in packet-based communication networks using validation sets
US6396423B1 (en) Method for coding or decoding and device for coding or decoding
US11875806B2 (en) Multi-mode channel coding
JP2000516415A (en) Decoder using soft information output to minimize error rate
AU755043B2 (en) Data transmission method, data transmission system, transmitter and receiver
US20130185615A1 (en) Soft output viterbi detector with error event output
KR100780560B1 (en) Communication system, receiver, and method of estimating errors caused by a channel
WO2020165260A1 (en) Multi-mode channel coding with mode specific coloration sequences
EP1881633B1 (en) Data transmission method, data transmission system, transmitting method, receiving method, transmitting apparatus and receiving apparatus
AU2001294308B2 (en) Apparatus and method for detecting transmitting rate of turbo decoder
JP2012170062A (en) Method for minimizing undetectable errors in data packets in communication systems
US6848065B1 (en) Bit error rate estimation
US20080082896A1 (en) Burst error correction with offset for correction vector based on fire code
GB2390513A (en) Improved error detection using forward error correction and a CRC check
US7861137B2 (en) System for identifying localized burst errors
EP1947770B1 (en) Apparatus, and associated method, for selecting whether to reject as invalid a data segment received at a communication station
JP4730515B2 (en) Line alarm detection device, line alarm detection method and program
US8516302B2 (en) Automatic error control scheme selection for fixed-length messages based upon message payload size
US9319074B2 (en) Communication device, communication method, and communication program
US7313748B2 (en) FEC decoder and method
JP4659049B2 (en) Apparatus for selecting whether to reject a data segment received at a communication station as invalid and associated method
US20120300886A1 (en) Methods for early termination of reception of a bit stream
JP2003333018A (en) Method and device for estimating error rate
WO2020115874A1 (en) Error correction decoding device and error correction decoding method

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)