Abstract:
A decoding device having a turbo decoder and an RS decoder concatenated serially and a method of decoding performed by the same. A turbo decoder decodes received data of a channel and an RS decoder RS decodes the turbo decoded data. A controller controls the turbo decoder to iteratively turbo-decode the data according to a number of iterations determined by a stored iteration number and to cease the turbo decoding if an error correction completion signal is received from the RS decoder. The controller decreases the iteration number for a next frame of the data if the completion signal is received within the predetermined number of iterations and increases the iteration number for a next frame if the completion signal is not received within the predetermined number of iterations. The iteration number is changeable within maximum and minimum limits and may exceed the maximum limit in special cases.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   This application claims the benefit of Korean Application No. 2002-1813 filed Jan. 11, 2002 in the Korean Industrial Property Office, the disclosure of which is incorporated herein by reference. 
   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a decoding device having a turbo decoder and an RS decoder serially concatenated, and more particularly, to a device for decoding a signal which has undergone both an RS encoding and a turbo encoding, and a decoding method thereof. 
   2. Description of the Related Art 
   Generally, in order to correct an error on a channel, a wireless digital communication system uses a method of adding an error correction code in a transmitting terminal and a method of correcting the error in a receiving terminal. One of the coding methods used for the error correction is a turbo code. The turbo code is employed for a channel in need of a high data rate such as CDMA2000 used in the USA, and W-CDMA used in Europe. 
     FIG. 1  is a block diagram of a conventional decoding device for decoding a received turbo code. 
   A signal received through a channel passes an input buffer  10  and is input into a turbo decoder  20 . The turbo decoder  20  decodes a turbo code by an iterative decoding method and the decoded signal is transmitted to an output buffer  70 . 
   The turbo code varies in the error correction capacity according to an iteration number of the iterative decoding operation. As the iteration number gets greater, the possibility of error correction increases. However, if the iteration number is too great, a decoding time becomes long and power consumption for decoding increases. Therefore, a controller  40  ceases the iterative decoding once the error correction is performed beyond a particular level. 
   Two conventional criteria determining methods of ceasing the iterative decoding are described below. 
   The first method is to predetermine an iteration number and cease the iterative decoding when the iteration number reaches the predetermined iteration number. However, this method may increase the decoding time and power consumption as the unnecessary iterative decoding may be performed even though an error is sufficiently corrected. Additionally, this method has a problem that the desired error correction performance may not be achieved as the iterative decoding can be ceased although the error correction is not completed. 
   The second method is to have a separate LLR (Log Likelihood Ratio) calculator or CRC (Cyclic Redundancy Check) generator  30  as shown in  FIG. 1 . In other words, it is a method that, by performing the CRC on the signal decoded during the iterative turbo decoding or producing the LLR of the decoding results, the decoding is ceased when it is determined that the error correction is completed according to the CRC result or when the minimum value of the absolute values of the LLR is higher than a predetermined threshold value. 
   However, in the method using the CRC, the turbo code should be encoded again according to the CRC method, which may cause a data rate loss and the CRC result may be incorrect. 
   In addition, the method using the LLR has a difficulty in determining a proper threshold value for ceasing the iteration, and errors may still occur even though the LLR conditions are met. 
   The iteration control of the turbo decoder by the method mentioned above can be adopted even if the error correction is done by the turbo decoder alone. Recently, a new error correction method using both a turbo decoder and a Reed Solomon Decoder (RS decoder) is suggested (U.S. Pat. No. 6,298,461) where a decoding result of an RS decoder is used to control the iteration of the turbo decoder to get a better decoding result. 
   SUMMARY OF THE INVENTION 
   The present invention is made to overcome the above-identified problems and accordingly it is an object of the present invention to provide a decoding device which prevents unnecessary and insufficient decoding of signals which are encoded by the RS encoder and a turbo encoder, and which optimizes error correction performance. 
   Additional objects and advantages of the invention will be set forth in part in the description which follows, and, in part, will be obvious from the description, or may be learned by practice of the invention. 
   In order to achieve the above and other objects of the invention, a decoding device according to the present invention comprises a first decoder which decodes an input signal in a predetermined first fashion, a second decoder which decodes the input signal decoded by the first decoder in a predetermined second fashion, and outputs a completion signal when an error correction is completed by the decoding in the second fashion, and a controller which controls the first decoder to perform decoding as many times as a predetermined iteration number and to cease the decoding when the completion signal occurs in the second decoder. An example of the first decoder here is a turbo decoder and an example of the second decoder is an RS decoder. 
   The controller reduces the iteration number where the completion signal occurs in the second decoder as a result of the second decoding of the turbo decoded inputs by the turbo decoder as many times as the iteration number and increases the iteration if the completion signal is not received. Accordingly, the decoding performance becomes optimized by the adaptive changes in the iteration number according to the channel condition. 
   The controller may control the iteration number within predefined minimum and maximum iteration limits. The controller sets a minimum value as the iteration number if the iteration number would become smaller than the minimum value, and sets a maximum value as the iteration number if the iteration number would become greater than this maximum value. Accordingly, the minimum iteration of turbo decoding is secured and iterations excessively greater than the predefined maximum or less than the minimum iteration are avoided except in special cases which are discussed below. 
   The decoding device according to the present invention further comprises an input buffer which temporarily stores input data to the turbo decoder and an output buffer which temporarily stores an output of the RS decoder. The controller may set the iteration number to be greater than the predefined maximum value if the input buffer has storage capacity available or the output buffer does not have storage capacity available. Accordingly, error correction with better performance is possible without unnecessary time delay. 
   The current iteration number and the predefined minimum and maximum values are stored in a memory and the stored iteration number is used for a next frame. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects and characteristic of the present invention will be more apparent by describing an embodiment of the present invention with reference to the accompanying drawings, in which: 
       FIG. 1  is a block diagram of a conventional turbo decoding device; 
       FIG. 2  is a block diagram of a decoding device according to an embodiment of the present invention; and 
       FIG. 3  is a flow chart of a method of decoding of the decoding device shown in  FIG. 2 . 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENT 
   Reference will now be made in detail to the present embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
   The decoding device according to the present invention decodes signals which are encoded by an RS encoder and a turbo encoder. In other words, a signal transmitter has an RS encoder and a turbo encoder and accordingly the signals to be transmitted are encoded by the RS encoder to be a block code and then encoded again by the turbo encoder. 
     FIG. 2  is a block diagram of the decoding device according to an embodiment of the present invention. The decoding device comprises an input buffer  110 , a turbo decoder  120 , an RS decoder  150 , an output buffer  170 , a controller  140 , and a memory  180 . 
   The input buffer  110  temporarily stores the input signals (input data) and the stored signals are provided to the turbo decoder  120 . The output buffer  170  temporarily stores signals (RS decoded data) decoded by the RS decoder  150 . The turbo decoder  120  performs iterative turbo-decoding of the signal input from the input buffer  110  (turbo decoded data). 
   The RS decoder  150  performs RS-decoding of the signal turbo-decoded by the turbo decoder  120 . When an error correction is completed by the RS-decoding process of the RS decoder  150 , the RS decoder  150  outputs an error correction (EC) completion signal. If all errors are corrected by the RS decoder  150 , the error correction by the turbo decoder  120  is regarded as sufficient. Therefore, if the RS decoder  150  outputs the error correction completion signal, the error correction by the turbo decoder  120  and the RS decoder  150  is judged to be sufficient. 
   The memory  180  stores an iteration number of the turbo decoder  120  and predefined maximum and minimum iteration values of the iteration number. The controller  140  controls the turbo decoder  120  so that the turbo decoder  120  performs decoding as many times as the iteration number stored in the memory  180 . In addition, the controller  140  updates the iteration number stored in the memory  180  according to the completion signal from the RS decoder  150 . 
   The decoding method according to the present invention will now be described. 
   Referring now to  FIG. 3 , the received signal (turbo code) is sent to the turbo decoder  120  after being saved to the input buffer  110  at operation S 10 . The turbo decoder  120  performs turbo-decoding on the received signal at operation S 20  (S 20 ). The turbo decoder  120  is controlled by the controller  140  and the controller  140  controls the turbo decoder  120  to iterate the decoding as many times as the iteration number preset in the memory  180 . 
   The turbo-decoded signal (turbo decoded data) is sent to the RS decoder  150  to perform the RS-decoding on the input signal at operation S 25  to output RS decoded data. The RS decoder  150  determines whether the error correction is completed, and outputs the error correction completion signal at operation S 30  if the error correction is completed. The error correction completion signal is sent to the controller  140  to show the completion of the error correction. 
   If the controller  140  receives the completion signal, the controller  140  determines whether the iteration number stored in the memory  180  is greater than the predefined minimum value stored in the memory at operation S 40 . If the stored iteration number is greater than the predefined minimum value, the controller decreases the iteration number in the memory  180  by one (1) at operation S 50 . If the reduction of the iteration number would make the iteration number less than or equal the predefined minimum value at operation S 40 , the controller  140  does not decrease the iteration number. 
   If the completion signal is not received after the RS decoding, some errors are presumed to still exist after the RS decoding. The controller  140  determines at operation S 60  whether the iteration number is greater than or equal to the predefined maximum value at operation S 60 . If the iteration number is not greater than or equal to the predefined maximum value, the controller  140  increases the iteration number in the memory  180  by one at operation S 70  and controls the turbo decoder  120  to continue the turbo decoding on a current frame of the received signal at operation S 80  since the error correction is not sufficiently completed. If, at operation, S 60 , the iteration number would be greater than or equal the predefined maximum value if increased, the controller  140  determines at operation S 75  whether surplus capacity in the input buffer  110  exists. If the surplus capacity exists in the input buffer  110 , the controller increases the iteration number at operation S 78 . If the surplus capacity in the input buffer  110  does not exist, the controller controls the turbo decoder  120  to continue the turbo decoding on the current frame of the received signal at operation S 80 . 
   The iteration number updated in the operations S 50 , S 70  or S 78  is used as the iteration number of the turbo decoder for the next frame of the received signals. 
   If the condition of the channel through which the signal is transmitted is good, there will be less errors in the data. However, if the channel is not good, there will be more errors in the received signals. The more the errors exist, the greater the iteration number of the turbo-decoding should be to obtain a better error correction capacity. If there are fewer errors, good quality of error correction is obtainable with fewer iterations of turbo decoding. 
   According to the present invention, as described above, the iteration number of the turbo decoder  120  is preset in the memory  180  and if the error correction is sufficient by decoding the data by the number of times of the preset iteration number, the current channel is determined to be good for error correction by the preset iteration. Therefore, one less iteration for the turbo decoding is tried out for the next frame of signals. On the contrary, if the result of the error correction is not sufficient, the errors in the current channel are determined to be too severe for error correction by the preset iteration of the turbo decoder. Therefore, one more iteration for the turbo decoding is tried out for the next frame of the signals. 
   As shown in the operations S 40  and S 50 , although the condition of the current channel is good, the iteration number does not decrease below the predefined minimum value. On the other hand, as shown in operations S 60  and S 70 , although the condition of the current channel is poor, the iteration number does not increase above the predefined maximum value. Even though the error correction is incomplete to some extent, time delay and energy consumption caused by excessive iterations is prevented and an iteration number required for a normal turbo-decoding is guaranteed to be within the predefined maximum and minimum predefined limits. 
   If the input buffer  110  has the surplus storage capacity, the iteration number may be allowed to increase above the predefined maximum limit. In such case, the problem of time delay caused by excessive iteration will not occur. That is because, when a determination is made at operation S 75  that the input buffer  110  has the surplus storage capacity, time delay of decoding operation generally does not occur while a signal received in the input buffer  110  is additionally stored, although a delay occurs by the decoding operation of the turbo decoder  120 . Therefore, if the input buffer  110  has a surplus storage capacity, the iteration number may be increased at operation S 78  even where the iteration number exceeds the maximum predefined limit. 
   If the iteration number increases above the predefined maximum limit and if the output buffer  170  does not have a surplus storage capacity, the time delay caused by excessive iteration will not be a limiting factor in the decoding. If the output buffer  170  does not have a surplus storage capacity, although a completely turbo-decoded and RS decoded signal is transmitted to the output buffer  170 , a time delay will occur anyway as the completely turbo-decoded and RS decoded signal cannot be stored in the output buffer  170 . Accordingly, if the output buffer  170  does not have a surplus storage capacity, the performance of an error correction can be improved by increasing the iteration number even when the iteration number exceeds the maximum value. 
   According to the present invention, the turbo-decoding by the optional iteration to the current channel condition is achieved adaptively by the completion of the error correction from the RS decoder. Therefore, the performance of decoding is improved. The minimal performance of the turbo decoder is secured by the predefined minimum iteration number, and an excessive time delay is prevented by the predefined maximum iteration number. 
   The present invention is exemplified in the above embodiment of a decoding device wherein a turbo decoder and an RS decoder are concatenated serially but the present invention may also be applied to other decoding devices having a first decoder performing iterative decoding and a second decoder which decodes the signal from the first decoder. 
   Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.