GB2407945A - Cyclic redundancy checking using punctured party bits - Google Patents

Cyclic redundancy checking using punctured party bits Download PDF

Info

Publication number
GB2407945A
GB2407945A GB0324925A GB0324925A GB2407945A GB 2407945 A GB2407945 A GB 2407945A GB 0324925 A GB0324925 A GB 0324925A GB 0324925 A GB0324925 A GB 0324925A GB 2407945 A GB2407945 A GB 2407945A
Authority
GB
United Kingdom
Prior art keywords
bits
code
crc
punctured
weight
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.)
Granted
Application number
GB0324925A
Other versions
GB0324925D0 (en
GB2407945B (en
Inventor
Andrew John Rogers
Marcel Ambroze
Martin Tomlinson
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to GB0324925A priority Critical patent/GB2407945B/en
Publication of GB0324925D0 publication Critical patent/GB0324925D0/en
Publication of GB2407945A publication Critical patent/GB2407945A/en
Application granted granted Critical
Publication of GB2407945B publication Critical patent/GB2407945B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • H03M13/005
    • 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
    • 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
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2742Irregular interleaver wherein the permutation pattern is not obtained by a computation rule, e.g. interleaver based on random generators
    • H03M13/2746S-random interleaver

Abstract

In an iterative decoding scheme (eg. Turbo decoding), parity bits are punctured and replaced by CRC bits in order to provide a means of indicating when the decoder fails to converge on the correct codeword without being detrimental to the code rate or error rate. The punctured bits are selected by monitoring the weight spectrum of the code, where the weight (distance from 0000...) is the number of nonzero bits in the sequence (11 in fig. 1) and the weight spectrum (Table 1) is calculated according to equation 1, references [4] or [5] or the alternative method presented, with the smaller distance values largely determining the error probability. The punctured (not transmitted) bits are selected by evaluating the weight spectrum of the punctured code and choosing only those bits for which the weight spectrum is not degraded. S class interleavers may be used, and optimised by swapping adjacent entries.

Description

CYCLIC REDUNDANCY CHECK FOR ERROR CORRECTING CODES WITH
MIMALCODE RATE LOSS
This invention relates to the addition of a cyclic redundancy check to an error correcting codes in digital communication systems with minimum code rate loss.
BACKGROUND
In many instances in the use of error correcting codes it is desirable to add an overall cyclic redundancy check (CRC) to either the information bits or the overall codeword in order to improve either the distance properties of the code or as an aid in reliable error detection and error correction decoding. For example iteratively decoded concatenated schemes, such as turbo codes [2], serial concatenated convolutional codes (SCCO) [1], implement powerful error correcting codes and these coding arrangements have been shown to approach the Shannon limit for very long codeword lengths They have low decoding complexity due to the suboptimal iterative decoder and are one of the main developments in digital communication systems in the last 10 years. Their performance is however limited due to the occasional failure of the iterative decoder to converge to the correct codeword or to converge to a codeword that is more likely than any other codeword. It is useful to have a reliable indication of this occurrence and this may be provided by observing the failure of the CRC under this circumstance. The introduction of a CRC normally requires a reduction in the number of information bits in each codeword causing a reduction in the code rate and hence the efficiency of the error correcting code. It is the purpose ofthis invention to puncture some ofthe parity bits to find room for some or all ofthe CRC bits.
The parity bits that are punctured are carefully selected so that there is no significant degradation to the distance properties of the overall code by monitoring the weight spectrum of the code. An example is given of the performance using the invention for a parallel-concatenated Turbo code of block length of 1014 bits and code rate 2/3 DESCRTlONOFTHEINVENTION The performance of an error correcting code in additive Gaussian noise may be evaluated by enumerating the codewords for all possible information bit combinations and determining for each the cross correlation between that codeword and all of the other codewords [3] . For a linear code this procedure may be simplified to the evaluation of the cross correlation between that codeword and the all zero codeword The probability of codeword decoder error is given by: dim Pw < 2 mderfc(NO d'R)2,, , (1) d dmU, where ma is the multiplicity at distance d and R is the code rate.
The multiplicities, ma, at distances given by d between the minimum distance dm,n (lowest distance with non-zero multiplicity) and an upper limit dmax form the weight spectrum of the code For a given linear code, the weight spectrum may be obtained by listing all of the codewords As it is a linear code, the relative codeword distances are defined by the weights of the codewords The multiplicity for each distance d, may be evaluated by counting all of the codewords with weight d. An example of a weight spectrum is illustrated in Table 1 for a parallel concatenated systematic Turbo code of rate 2/3 and information bit length, k, equal to Distance Multiplicity Total Information Weight
_
11 7 29 12 132 393 13 282 1011 14 645 2550 1513 6514 16 3535 16103
Table 1
Weight Spectrum of k = 676. Rate = 2/,, I urbo Code For this code there are two parity streams and a particular codeword has a total weight consisting of the information weight plus the first parity stream weight plus the second parity stream weight. An example is shown in Fig. 1 for this code with k = 676 information bits and the first parity stream p(l) consists of 169 bits and the second parity stream p(2) also consists of 169 bits.
The total codeword length N equals 1014 bits. The overall code rate R is 2/3 In the example of a codeword shown in Fig. 1, the information bit weight is 3 (there are only 3 ones, the remaining 673 information bits are zero) The p(1) weight is 3 and the p(2) weight is 5. The total codeword weight is 3 + 3 + 5 = 11. The weight spectrum from Table 1 indicates that there are only 6 other codewords of weight 11 When a cyclic redundancy check of length m bits is carried out on the information bits, the total number of information bits is reduced to k - m and the code rate R is reduced from nk to knm However, the codeword weight will usually be increased as illustrated in Fig. 2 for a specific codeword example The information weight is 3, the CRC weight is also 3 and the parity weights are 5 and 3 respectively. Now, the overall codeword weight is 3 + 3 + 5 + 3 = 14, an improvement on the previous case. The price that is paid for this weight spectrum improvement is the decrease in the code rate due to the CRC bits.
In this invention the code rate is not reduced because some of the parity bits are punctured (not transmitted) and their place is taken by the m CRC bits and their associated number of parity bits given by the product m(R 1) The total number of parity bits that are punctured is R The positions of the parity bits that are punctured are carefully chosen in order that there is no change to low distance terms of the weight spectrum. This is illustrated in Fig 3.
It is the low distance terms and their multiplicities in equation (1) above which determine the probability of decoder error. If the parity bits are punctured such that there is no change to these low distance terms and their multiplicities then it follows that the probability of decoder error will remain unchanged. In many cases it is found that the weight spectrum improves as a result of introducing the CRC despite the puncturing of some parity bits. The weight spectrum may be determined to check that the low distance multiplicities are not increased or the dm,n distance reduced Several methods are given in the literature to calculate the weight spectrum of a code [4], [5]. An alternative method is to list all information sequences starting with information weight one. If the information stream is denoted as I(j) then: I(.)=O, O<j<k-l, joy, I()=l This is a single non- zero information bit i e. the information stream weight is 1 Each information sequence is input to the corresponding encoder and the weight of the parity stream determined not counting the punctured parity bit positions. The information sequence is interleaved (if the code uses an interleaver) and input to the second encoder and the weight of the parity stream determined again not counting the punctured parity bit positions. If the code uses additional encoders then a similar procedure is followed Finally, the total codeword weight is obtained by adding the weight of the information sequence (1) plus the p(1) stream weight plus the p(2) stream weight plus any additional parity stream weights This is carried out for each of the k information sequences of weight 1. The number of codewords with the same weight are accumulated to produce the weight spectrum up to this point of the analysis. The next step in the weight spectrum analysis is to carry out the same procedure for each of the information sequences of weight 2. These are given by: I()=0, 0<j<k-1, jot and jug I()=l, I(g)=L fog for t=Otok-landg=Otok-l There are a total of k(k) distinct information sequences of weight 2 and in each case the total codeword weight is determined using the procedure above and the weight spectrum accumulated.
Information weight 3 sequences are then analysed, followed by increasing weight information sequences. Once the point is reached where the information weight exceeds the codeword weights of interest in the weight spectrum d,ax, the weight analysis procedure need not be carried out any further. The accumulated weight spectrum up to this point is the weight spectrum of the code up to the weight of interest dmax.
There are a number of approaches that may be used as described above to determine which parity bits should be punctured. One method is to randomly select Rm of the parity bits, puncture these bits and evaluate the weight spectrum of the punctured code. If the weight spectrum is degraded, select a new randomly chosen set of parity bits. This method can be quite effective for short CRC's (1 < m < 8) In the case of codes involving interleavers, the interleaver design may be optimised with regard to the punctured parity bit positions An interleaver may be randomly chosen, or randomly chosen with a spread constraint, the S interleaver [6] or be a generatable interleaver, based upon algebraic or number theory methods A random interleaver is a permutation of k integers that for each integer, i, there is a corresponding random integer, W(i) without repetition for i = 0 to k - 1.
For large values of k, most random interleavers perform well. However, when the interleaver block size decreases, the performance of the codes generally degrades. This can be improved by using an S interleaver.
An S-random interleaver is a semi-random interleaver that performs almost better than any known interleaver Each randomly selected integer, W(i), is compared to the S-1 previously selected random integers i.e. compared to W(i -1), W(i - 2), W(i - S -1) . If the magnitude of the difference between this integer and the S-1 previously selected random integers is greater than S. that is | W(i)- W(k)| 2 S for k = i - I to i - S - l then it is selected Otherwise, a new random integer is chosen and the above condition is tested. This process repeats until all k integers have been selected in this manner. r
Interleaver optimization together with parity bit puncturing may be carried out whereby the weight spectrum for a given interleaver and code is evaluated with the interleaver entries that are responsible for each low weight codeword recorded The weight spectrum is evaluated after a total of R bits have been punctured on a regular (every w spaced parity bit is punctured) or on an irregular basis Parity bits in these bit positions do not contribute to the weight of the codeword The interleaver entries for each low weight codeword may be changed by swapping adjacent interleaver values and re-evaluating the weight spectrum. If the weight spectrum is improved, the interleaver swaps are retained and the process continues. In this way, an optimised interleaver design is obtained.
For an S class interleaver, adjacent interleaver swaps can only reduce the S value by a maximum of 1. In this way a good interleaver can be derived which produces a code with a good weight spectrum despite the punctured parity positions.
As an example, the case is considered of a rate 2/3 parallel concatenated Turbo code whose component encoders are identical as shown in Fig. 4. The value of k = 676 and an S class interleaver is used with an original S value of 21 The code was simulated with a Gaussian noise channel using binary transmission and the decoder error probability (FER) is shown in Fig. 5 as a function of EL/NO in comparison to the Shannon limit for this code length and the Shannon limit for binary transmission (Shannon 2 PAM:) The code performance is within 0.4 dB of the binary Shannon limit at an EL/NO of 2.3 dB but shows evidence of an error floor By deriving a code using this invention with 6 punctured parity bits and a CRC of 4 bits, there is an improvement in FER performance as evident in Fig. 5.
In this case, the S interleaver with an S value of 21 was modified with punctured parity bit locations for the p(]) stream having positions 0, 33, 66, 99, 132, 165. The weight spectrum obtained is shown in Table 2 below.
Distance Multiplicity Total Information Weight 11 2 8 12 80 205 13 248 860 14 575 2222 1277 5222 16 2999 12835
Table 2
Weight Spectrum of k = 676, Rate 2/] Turbo Code with 6 Punctured Parity Bits and CRC = 4 The description of the invention above is described in terms of binary codes and binary parity bits. The techniques may be readily extended to non-binary symbols using a non-binary CRC and punctured parity symbols. In this case the encoder(s) are based upon GF(m) (Galois Fields of order m) producing GF(m) based streams of parity symbols and the CRC is based upon GF(m) arithmetic
REFERENCES
[1] S. Benedetto, M. Montorsi, D. Divsalar, and F. Pollara, "Serial Concatenation of Interleaved Codes: Performance Analysis, Design and Iterative Decoding", JPL TDA Progress Report, pages 42-126, August 1996.
[2] C. Berrou, P. Thitimajshima, and A. Glavieux, "Near Shannon Limit Error Correcting Coding and Decoding: Turbo Codes", Proc. IEEE International Conference on Communications, pages 1064-1070, Geneva, Switzerland, May 1993.
[3] J.G Proakis, "Digital Communications", Fourth Edition,McGraw-Hill [4] R. Garello, P. Pierleoni and S Benedetto, "Computing the Free Distance of Turbo Codes and Serially Concatenated Codes with Interleavers, Algorithms and Applications", IEEE Journal Selected Areas in Communications, Vol 19, pp 800-812, May 2001.
[5] D Divsalar, S Dolinar, F. Pollara and R J. McEliece, "Transfer Function Bounds on the Performance of Turbo Codes", TDA Progress Rep 42122, Jet Propulsion Lab., Pasadena, CA, USA, pp 44-55, August 1995.
[6] S. Dolinar and D. Divsalar, "Weight Distribution for Turbo Codes Using Random and Non-Random Permutations", JPL Progress Report 42-122, pp 56-65, August 15 1995

Claims (1)

  1. Claim 1: An error correcting system in which the error correcting code contains a Cyclic Redundancy Check (CRC) in which some of the CRC bits are transmitted in place of some of the parity check bits so as to minimise the reduction in overall code rate due to the CRC.
    Claim 2: An error correcting system according to Claim 1 in which all of the CRC bits are transmitted in place of some of the parity check bits so as to produce no reduction in overall code rate due to the CRC.
    Claim 3: A system according to Claim I or Claim 2 in which the positions of the parity bits that are punctured are selected on the basis that the effects on the small distance terms and their multiplicities of the weight spectrum of the overall code are minimised.
    Claim 4: A system in which the weight spectrum is evaluated up to a distance dmax by enumerating all information bit sequences with weight equal to or less than dmax and the weights of the corresponding parity bit sequence(s) taking into account the parity bit positions which are punctured and the CRC.
    Claim 5: A system operating according to Claim 1 or Claim 2 for application in serial or parallel concatenated codes in which an interleaves design is modified by repeatedly swapping entries in conjunction with weight spectrum analysis of the overall code which has a fixed arbitrary pattern of parity bits punctured so as to achieve an optimised code including a CRC.
    Claim 6: A system according to Claim 4 in which the interleaver is an S type of interleaver and which is modified by repeatedly swapping adjacent entries in conjunction with weight spectrum analysis of the overall code which is a code in which a fixed arbitrary pattern of parity bits is punctured so as to achieve an interleaves design which optimises the overall weight spectrum of the code.
    Claim 7: A system according to Claim 1, Claim 2, Claim 3, Claim 5, or Claim 6 in which the CRC is used as an additional means of providing reliable indication of convergence of an iterative decoder without incurring a penalty in error coding performance due to a reduction in code rate as a result of the provision of CRC bits in each transmitted codeword Claim 8: A system according to Claim 1, Claim 2, Claim 3, Claim 4, Claim 5, Claim 6 or Claim 7 except that it is based upon non-binary symbols with a CRC using non binary symbols and parity symbols which are punctured on a regular or irregular basis
GB0324925A 2003-10-25 2003-10-25 Cyclic redundancy check for error correcting codes with minimal code rate loss Expired - Fee Related GB2407945B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0324925A GB2407945B (en) 2003-10-25 2003-10-25 Cyclic redundancy check for error correcting codes with minimal code rate loss

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0324925A GB2407945B (en) 2003-10-25 2003-10-25 Cyclic redundancy check for error correcting codes with minimal code rate loss

Publications (3)

Publication Number Publication Date
GB0324925D0 GB0324925D0 (en) 2003-11-26
GB2407945A true GB2407945A (en) 2005-05-11
GB2407945B GB2407945B (en) 2006-04-19

Family

ID=29595821

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0324925A Expired - Fee Related GB2407945B (en) 2003-10-25 2003-10-25 Cyclic redundancy check for error correcting codes with minimal code rate loss

Country Status (1)

Country Link
GB (1) GB2407945B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007028834A2 (en) * 2005-09-09 2007-03-15 Thales Method of improving the iterative decoding of codes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079170A1 (en) * 2001-10-22 2003-04-24 Stewart Kenneth A. Block puncturing for turbo code based incremental redundancy
US20030126551A1 (en) * 1999-12-20 2003-07-03 Ramesh Mantha Hybrid automatic repeat request system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126551A1 (en) * 1999-12-20 2003-07-03 Ramesh Mantha Hybrid automatic repeat request system and method
US20030079170A1 (en) * 2001-10-22 2003-04-24 Stewart Kenneth A. Block puncturing for turbo code based incremental redundancy

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007028834A2 (en) * 2005-09-09 2007-03-15 Thales Method of improving the iterative decoding of codes
FR2890806A1 (en) * 2005-09-09 2007-03-16 Thales Sa METHOD FOR IMPROVING ITERATIVE CODE DECODING
WO2007028834A3 (en) * 2005-09-09 2007-05-18 Thales Sa Method of improving the iterative decoding of codes
US8332717B2 (en) 2005-09-09 2012-12-11 Thales Method of improving the iterative decoding of codes

Also Published As

Publication number Publication date
GB0324925D0 (en) 2003-11-26
GB2407945B (en) 2006-04-19

Similar Documents

Publication Publication Date Title
JP3494994B2 (en) Encoding and decoding apparatus having a serial chain structure in a communication system
Sadjadpour et al. Interleaver design for turbo codes
EP1601109B1 (en) Adaptive channel encoding method and device
CA2234006C (en) Encoding and decoding methods and apparatus
US20020147954A1 (en) Method and coding means for error-correction utilizing concatenated parity and turbo codes
CA2317202A1 (en) Channel decoder and method of channel decoding
US6785859B2 (en) Interleaver for variable block size
CA2366592A1 (en) A system and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network
US6453442B1 (en) Two stage S—Random interleaver
GB2407945A (en) Cyclic redundancy checking using punctured party bits
US7565594B2 (en) Method and apparatus for detecting a packet error in a wireless communications system with minimum overhead using embedded error detection capability of turbo code
KR100251087B1 (en) Decoder for turbo encoder
CN111130572B (en) Turbo code quick realizing method
Tallapragada et al. Fast turbo codes using sub-block based interleaver
Menezla et al. The Effect of Error Correcting Codes in the Chain of Transmission and Comparison between the Performances of these Codes
KR20070112326A (en) High code rate turbo coding method for the high speed data transmission and therefore apparatus
Shea et al. Concatenated codes based on multidimensional parity-check codes and turbo codes
Florea et al. Serial progressive hierarchical turbo codes
Qi et al. Class of turbo code interleavers based on divisibility
Fagoonee et al. On the use of partial unit memory codes for woven turbo codes with outer and inner warp
Pillay et al. Repeat-punctured superorthogonal convolutional turbo codes on AWGN and flat Rayleigh fading channels
Ramasamy et al. Performance comparison of convolutional and block turbo codes
Sason et al. On union bounds for random serially concatenated turbo codes with maximum likelihood decoding
Jasim Harbi PERFORMANCE EVALUATION OF TURBO CODE ENDCODING AND DECODING
Zidan et al. Design and Evaluation of Adaptive (Serial/Parallel) Concatenated Convolutional Codes

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20081025