METHOD AND APPARATUS FOR CORRECTION OF ERRORS IN FIRE CODES USED IN GSM CONTROL CHANNELS

Abstract: Method and device for decoding with error correction of a cyclic code signal r(x) containing a main error burst shorter than or equal to a number n and a secondary error shorter than or equal to a number k where k<n with the secondary burst causing in a syndrome S(x) calculated on r(x) the not zeroing of all the bits in the first n positions with the cyclic code being a shortened Fire code to supply at most a standard correction of a single burst shorter than or equal to n. According to the method the error burst correction algorithm originally proposed by Fire but modified with the error trapping procedure based on recognition of first k bits of the syndrome generated by the secondary bursts is used jointly.

Description: "Method and apparatus for correction of errors in Fire codes used in GSM control channels" The present invention relates to the field of error correction in numerical transmissions and in particular to a method and an apparatus for more efficient error correction with shortened Fire codes. This is particularly useful in control channels for GSM cellular telephony. Conventional high speed data communication systems commonly use cyclic error detection codes to detect and correct data received with transmission errors. These errors can be caused by the number of transmission disturbance types such as evanescence, channel noise, interference et cetera. One class of particularly well known cyclic codes used is known by the code name 'Fire' . These codes can be advantageously used for correction of transmission channel error bursts . An error burst is a long sequence of mistaken symbols included between the first and last mistaken bits in the transmitted word. A coded word or sequence r(x) received can be expressed as the sum of the correct sequence transmitted c(x) and the mistaken bit configuration e(x). As r(x) can be considered a single polynomial, a single syndrome can be calculated therefrom by scrolling the received word in one direction and the errors can be corrected by scrolling the received word in the opposite direction. Correction is based on the consideration that with a certain number of cyclic scrolls of the word received it is possible to isolate the error burst in the n final bits of the syndrome. A decoder therefore operates by calculating the syndrome for each scrolling cycle of the received word and when it determines that the first 1-n bits of the syndrome (where 1= syndrome length) are zero then the remaining n bits of the syndrome represent the error burst in the received word. These errors can be corrected by scrolling the received word of the corresponding number of bits in the opposite direction. To define the type of Fire coding used, a notation (n,k) is used where the number n represents the length of the information word and the number k the length of the corresponding Fire error correction code. In the Fire standard these numbers are very high with a coded word having length n+k=3014633+3014593. In many applications such a word length is not acceptable because it is too high for practical systems . Accordingly shortened Fire codes were introduced. By shortening the Fire code however a limitation concerning the greatest error burst length which can be corrected is introduced. For example, in accordance with the GSM communication protocol the control channels are subject to dual coding, internal with rate convolution code (456, 228) and external with shortened Fire code (224,184). Decoding the shortened Fire code is effective for correcting an error burst less than or equal to 12 bits long. But this is not always sufficient. For example, from an attentive examination of the error sequences produced in the convolutional code decoding the filer of this application reached the conclusion that for radio channel error probability between 10 "2 e 10 "1 it is highly probably that on the 224 bit block of information transmitted there will appear two bursts. If in the received word there is another error sequence or burst in addition to the 12 bit one expected in the prior art, the conventional Fire standard decoder is not able to correct the received word and return it to the correct transmitted value. In practice it happens that, under relatively disturbed transmission conditions, conventional decoders supply errors at output with unacceptable frequency. The general purpose of the present invention is to remedy the above mentioned shortcomings by making available a method and an apparatus for decoding numerical signals codified with Fire codes which would allow correction within a given block of even two error sequences to return the output errors to an acceptable value even with high interference on the transmission channel. In view of this purpose it was sought to provide in accordance with the present invention a decoding method with error correction of a cyclic code signal r(x) containing a main error burst shorter than or equal to a number n and a secondary error burst shorter than or equal to a number k where k<n with the secondary burst causing in a syndrome S(x) calculated on r(x) the not zeroing of all the bits in the first n positions with the cyclic code being a shortened Fire code to supply at most a standard correction of a single burst shorter than or equal to n and comprising the steps of: - calculation of a predetermined number of syndromes S generable in an error burst having pattern P of length k and position X within the signal; - memorizing in a table the syndromes S calculated and associating them with a respective pattern P and the respective position X; and for every signal r(x) received: - calculating for the signal received r(x) the corresponding syndrome S(x), seeking the sequence of the first n bits of the syndrome S(x) between the predetermined number of syndromes in the table and, if traced, - correcting the secondary burst on the basis of the pattern P and the position X associated in the table with the syndrome which was found therein and then correcting the primary burst. Again in accordance with the principles of the present invention it was sought to provide a decoding apparatus for decoding with error correction of a cyclic code signal r(x) containing a main error burst shorter than or equal to a number n and a secondary error burst shorter than or equal to a number k where k<n with the secondary burst causing in a syndrome S(x) calculated on r(x) the not zeroing of all the bits in the first n positions and the cyclic code being a shortened Fire code to supply at most standard correction of a single burst shorter than or equal to n characterized in that it comprises: - a memory (218) memorizing a predetermined number of syndromes S generable in an error bust having pattern P of length k and position X within the signal, a calculation unit (211) receiving at input the received signal r(x) and calculating the corresponding syndrome S(x) , and - a comparison unit (213) which verifies the status of the calculated syndrome bits and on the basis thereof emits towards a calculation and correction unit (217) a no error signal, main error burst presence, secondary burst error presence, with the calculation and correction unit (217) seeking among the syndromes memorized in the memory (218) the sequence of the first n bits of the syndrome S(x) and, if it finds it, correcting the secondary burst on the basis of the relative position X of the error and of the pattern P associated in the table and then correcting the primary burst. To clarify the explanation of the innovative principles of the present invention and its advantages compared with the prior art there is described below with the aid of the annexed drawings possible embodiments thereof by way of non limiting examples applying said principles. In the drawings : - FIG 1 is a flowchart of the prior art error correction method with Fire code, - FIG 2 is a flowchart of the error correction method with Fire code provided in accordance with the innovative principles of the present invention, - FIG 3 is a more detailed flowchart of a part of the chart of FIG 2, - FIG 4 shows diagrammatically the possible relative position of two error bursts, - FIG 5 shows a correlation table in accordance with the present invention, and - FIG 6 shows a block diagram of an apparatus applying the method in accordance with the present invention. With reference to the figures there are described below a method and a decoding apparatus for correction of errors with improved Fire codes to assure correct decoding even under conditions which cannot be handled by conventional systems . The shortened Fire code (224,184) employed in normal GSM transmissions is able to correct a single error burst (i.e. a sequence included between the first and last mistaken bits in a code word) at most 12 bits long. The Fire code is also able to detect but not correct the presence of error bursts longer than 12 bits. As mentioned in the introduction it was found that in even moderately noisy channels there is a high probability that on the length of a 224 bit code word there will be two error bursts which the standard Fire decoder is not able to correct . The innovative decoder provided in accordance with the principles of the present invention is able to confront and correct even these cases. FIG 1 shows a flow diagram for error correction in accordance with the prior art. As may be seen in the figure, once the 224 bit sequence making up the code word (made up of 184 bits of information and 40 bits for parity control) is received in 10, the syndrome rotated relative to W cyclic rotations of the input polynomial with W=3.014.438 (block 11) is calculated. Then whether the 40 bit syndrome is made up of zeroes only is verified in 12. If it is, there are no errors in the received sequence and the correction procedure terminates correctly in 13. If on the contrary not all the 40 bits of the syndrome are zero it means that there are errors in the received sequence. In this latter case it is verified in 14 whether at least the first 28 bits of the syndrome are zero (i.e. the received signal contains at most 12 mistakes) which is the indispensable condition for application of the standard correction procedure with shortened Fire code. If the first 28 bits are zero, the errors (which are shown in the 12 not zero bits) are correctable by applying the standard correction method in block 16, a method well known to those skilled in the art and therefore not further described herein, to have the correct sequence at the output 17. If the first 28 bits of the syndrome are not all zeroes block 25 calculates the rotated syndrome to verify (returning to block 14) whether it is possible to find a rotated syndrome having 28 zero bits. The procedure terminates in 17 with the corrected word if on rotation the syndrome with 28 zero bits is found or terminates in 15 with an uncorrectable error signal if after performing all the 224 possible rotations no syndrome with 28 zero bits is found. In other words the known decoding procedure verifies whether there is a 40 bit syndrome calculated for one of the 224 translations of the vector r(x) received and made up of 28 zeros followed by 12 not zero bits and, if it finds it, corrects the vector r(x) accordingly. If on the contrary in the 224 translations it is not possible to find a syndrome with 28 zero bits it means that in the received word there is another error sequence and in this case with application of the standard method only the decoder cannot do other than signal the error (output 15 = uncorrectable error), without any possibility of correcting it. FIG 2 shows a flowchart similar to the one in FIG 1 but providing the method in accordance with the present invention. In the initial stages the method in accordance with the present invention is similar to the known standard method. Indeed, as may be seen in FIG 2, once the 224 bit sequence constituting the code word is received, the syndrome is calculated in block 111 and it is verified whether it is made up of zeroes only. If so, there are no errors in the received sequence and the correction procedure terminates normally in 113. If not all 40 bits of the syndrome are zero it is verified (block 114) whether at least the first 28 bits of the syndrome are zero, which is the indispensable condition for application of the normal correction procedure (block 116) and obtain therewith the correct sequence in the outlet 117. If the condition of having syndromes with 28 zero bits does not occur, instead proceeding immediately with calculation of a new rotated syndrome as took place in FIG 1 we go to a block 118 which will be called 'extended correction block'. As will be seen, extended correction in accordance with the present invention also permits correcting a second burst of shorter length which we shall call secondary burst. By short lengths is meant a length k shorter than the length of the primary burst. As seen in FIG 2 the extended correction block 118 receives in A the mistaken sequence (which can contain two error bursts: a primary and a secondary) and renders in B the sequence with the correct secondary burst error so that the primary burst error can be corrected by block 116. Block 118 also has an output C which is reached when an expected secondary burst proves to be outside the coded word, i.e. when the error sequence is not the one expected and therefore it is necessary to go on to the following syndrome rotation to then go back over the algorithm starting from the comparison 114. FIG 3 shows in greater detail operation of the extended correction block 118 in accordance with the present invention. Operation of this block is based on the consideration that for sufficiently small secondary error bursts of length k the number of possible syndromes because of this 'secondary' error is sufficiently small to enable advance calculation and memorization of all the possible syndromes associated with the respective error patterns and positions so as to be able to perform an exhaustive search among these possible secondary burst syndromes to check whether the sequence of the first 28 not zero bits of the syndrome calculated on the received sequence is found among the first 28 bits of one of the syndromes corresponding to the secondary burst of at most k bits . If the syndrome is found in the table (look-up table) 120, we go on (block 122) to correction of the secondary burst on the basis of the pattern and the relative position of the error (associated in the table with the syndrome) and then the syndrome (block 124) is also corrected so as to reach point B with a new syndrome which has its first 28 bits zero. This permits correcting the primary burst error in 116 and coming out in 117 with the correct word. If the syndrome is not found in the table, from block 122 we go on to point C to recycle with a new rotated syndrome as explained above. Only if secondary burst correction is not possible for any of the possible syndrome rotations we come out in 115 with 'uncorrectable error'. The frequency with which we reach the output 115 is much less than that with which the standard method of FIG 1 reaches the corresponding output 15. To define the relationship of length k on the dimension of the table 120 and, in conclusion, give a decision parameter concerning the expediency of performing the correction with the method of the present invention on the basis of a datum k, let it suffice to consider that if the second error sequence is made up of a burst not longer than k consecutive bits, the relative position compared with the 228 bit burst may prove in the two extreme cases to be as shown in FIG 4. The relative positions of the two bursts are therefore equal to 2 (216-k)=432-2k error sequences. The syndromes generated by the sequence of k mistaken bits are thus (432-2k) (2 k -l) and the complexity in the calculation thereof depends accordingly on 2 k ;k is to be selected according to the memory available in the receiver for table memorization. A value of k=4 was found to give and advantageous corrected error/computing cost ratio and dimensions of the table for GSM transmissions. With k=4 there are 424x15=6360 syndromes, which is an acceptable number to be able to proceed with use of the method in accordance with the present invention even with the relatively small calculating power and quantity of memory normally employed in conventional cellular telephones . Naturally k can be increased by increasing the performance of the hardware used. FIG 5 shows diagrammatically the structure of table 120. It is made up of three columns and n s rows where n s is the number of possible syndromes generable from a sequence of k mistaken bits. As mentioned, in the particular case of k=4 it is n s =6360. In the first column of the table are memorized all the possible syndromes S, in the second column is memorized the associated error pattern P of k bits for each of these, and in the third column is memorized the associated position X of the error. Essentially, to create the table it suffices to consider all the possible positions and error patterns and calculate the relative syndrome for each combination. For convenience and speed of search, in the table it is advantageous to memorize the syndromes ordered on the basis of their first 28 bits. In this method it is easy to trace (block 121,122) in the look-up table whether the sequence of the first 28 bits (not zero) of the syndrome calculated on the sequence received is found in the first 28 bits of one of the syndromes corresponding to the secondary burst of at most k bits and that are memorized in the look-up table. If the syndrome corresponds to a possible error sequence we proceed to correction and then verify whether the correct sequence is a valid code sequence or not. This is because the syndrome could correspond to another error sequence. It was noted that there are some secondary burst sequences which give rise to the same first 28 bits. For these sequences it is accordingly not distinguishable which of the possible code words was really transmitted. To avoid accepting a mistaken word as correct it was preferred to discard these sequences, not inserting them in the look-up table so that not all secondary bursts are correctable. Since the number of sequences to be discarded is very limited compared to the total number of sequences (e.g. the number of sequences to be discarded for k=4 was seven) giving up their correction is acceptable. To correct the secondary burst, in block 123 the bits of the signal r(x) indicated by the pattern P and which are in position X where P and X are those associated with the syndrome found in the table are inverted. In addition correction of the syndrome is performed in block 124 by merely adding the present syndrome (at point A) to the syndrome of the table. The result of the sum is a new syndrome with the first 28 bits zero (since by definition the table syndrome was the one associated with the error which had produced the first 28 not zero bits in the syndrome which had been calculated on the signal and possibly rotated) . Since at outlet B of block 118 the syndrome certainly has the first 28 bits zero, it is possible to return downstream from the control block 114 to avoid a useless verification. It is now clear to those skilled in the art that the predetermined purposes have been achieved by making available a method permitting error correction in Fire codes even for sequences containing two error bursts by using a correction algorithm of error bursts such as the one originally proposed by Fire but changing with the error trapping procedure based on recognition of the first (in the specific case) 28 bits of the syndromes generated by the secondary bursts . FIG 5 shows a block diagram of a receiving apparatus employing the method of the present invention. This apparatus receives the sequence r(x) which is memorized in the memory block 210. A calculating block 211 for the syndrome calculates the syndrome S(x) and memorizes it in memory block 212. A comparison block 213 verifies whether all the first 40 bits or only the first 28 bits are zero and emits corresponding signals 214, 215 and 216 indicating respectively whether no correction is required (first 40 bits zero), correction of a secondary burst is required (first 28 bits other than zero) or whether correction of the primary burst (first 28 bits zero) is required. The calculating unit 217 (which memorizes the look-up table of the possible syndromes in the memory 218) performs the required corrections and if necessary recycles the syndrome until the correct signal g(x) is obtained at output. Naturally the above description of an embodiment applying the innovative principles of the present invention is given by way of non-limiting example of said principles within the scope of the exclusive right claimed here. Those skilled in the art can readily imagine how to provide a similar apparatus for applying the described method in practice, e.g. by implementing it with software in a Digital Signal Processor (DSP) or providing it in cabled logic with appropriate electronic components .

Claims: CLAIMS 1. Method for decoding with error correction of a cyclic code signal r(x) containing a main error burst shorter than or equal to a number n and a secondary error burst shorter than or equal to a number k where k<n with the secondary burst causing in a syndrome S(x) calculated on r(x)the not zeroing of all the bits in the first n positions with the cyclic code having a shortened Fire code to supply at most standard correction of a single burst shorter than or equal to n comprising the steps of: - calculation of a predetermined number of syndromes S generable in an error burst having pattern P of length k and position X within the signal; - memorizing in a table the syndromes S calculated and associating them with a respective pattern P and the respective position X; and for every signal r(x) received: - calculating for the signal received r(x) the corresponding syndrome S(x), - seeking the sequence of the first n bits of the syndrome S(x) among the predetermined number of syndromes in the table and, if traced, - correcting the secondary burst on the basis of the pattern P and the position X associated in the table with the syndrome which was found therein and then correcting the primary burst. 2. Method in accordance with claim 1 comprising, if the search in the table has a negative outcome, the further step of calculating for the signal r(x) the rotated syndrome and employing this rotated syndrome to perform a new search. 3. Method in accordance with claim 1 in which correction of the primary error is done by employing a syndrome obtained by adding the present syndrome to the syndrome traced in the table. 4. Method in accordance with claim 1 comprising the further step of performing concluding verification that the corrected signal is a code word recalculating the syndrome. 5. Method in accordance with claim 1 in which k=4. 6. Method in accordance with claim 1 in which the Fire code is a shortened Fire code (224,184). 7. Apparatus for decoding with error correction of a cyclic code signal r(x) containing a main error burst shorter than or equal to a number n and a secondary error burst shorter than or equal to a number k where k<n with the secondary burst causing in a syndrome S(x) calculated on r(x) the not zeroing of all the bits in the first n positions and the cyclic code being a shortened Fire code to supply at most standard correction of a single burst shorter than or equal to n characterized in that it comprises: - a memory (218) memorizing a predetermined number of syndromes S generable in an error bust having pattern P of length k and position X within the signal, a calculation unit (211) receiving at input the received signal r(x) and calculating the corresponding syndrome S(x), and - a comparison unit (213) which verifies the status of the calculated syndrome bits and on the basis thereof emits towards a calculation and correction unit (217) a signal of no error, main error burst presence, or secondary error burst presence, with the calculation and correction unit (217) seeking among the syndromes memorized in the memory (218) the sequence of the first n bits of the syndrome S(x) and if it finds it correcting the secondary burst on the basis of the relative position X of the error and the pattern P associated in the table and then correcting the primary burst. 8. Apparatus in accordance with claim 7 characterized in that if the search in the memory (218) has a negative outcome the calculation unit calculates for the signal r(x) the rotated syndrome and employs this rotated syndrome to perform a new search in the memory. 9. Apparatus in accordance with claim 7 characterized in that the calculation unit employs for correction of the primary error a syndrome obtained by adding together the present syndrome and the syndrome traced in the memory.

Inventors: PUPOLIN SILVANO, TONETTO DANIELE, VENTURATO LORENZO, PUPOLIN, SILVANO, TONETTO, DANIELE, VENTURATO, LORENZO
Applicants: PUPOLIN SILVANO, TELIT MOBILE TERMINALS S P A, TONETTO DANIELE, VENTURATO LORENZO, PUPOLIN, SILVANO, TELIT MOBILE TERMINALS S.P.A., TONETTO, DANIELE, VENTURATO, LORENZO
Application year: 2000
Main classification: H03M13
IPC codes: H03M13