Apparatus and method for channel encoding/decoding in a communication system

An apparatus and method for channel encoding/decoding are provided which vary an iterative decoding number according to service type, data class and channel condition. A message information receiver receives information about a message to be received. A controller determines an iterative decoding number according to the message information received. A decoder iteratively decodes the received message according to the determined iterative decoding number. The message information includes a class of received data, and the class includes a bit error rate (BER). The iterative decoding number is increased for a low BER as compared to a predetermined BER. Further, the class includes a permissible time delay, and the iterative decoding number is increased for a long permissible time delay as compared to a predetermined permissible time delay. In addition, the message information includes a service type of the received data, and the iterative decoding number is decreased when the service type is a moving picture service.

BACKGROUND

1. Field of the Invention

The present invention relates generally to a communication system, and more particularly, to an apparatus and method for channel encoding/decoding for performing soft-decision iterative decoding in a communication system.

2. Description of the Related Art

A turbo encoder is a typical channel encoder which supports iterative decoding. The turbo encoder is classified into a parallel turbo encoder and a serial turbo encoder. Although the present invention will be described with reference to the parallel turbo encoder, it is also possible to apply the present invention to the serial turbo encoder interworking with an iterative decoding apparatus.

The turbo encoder encodes an N-bits input data frame into parity symbols using two simple parallel concatenated codes, wherein recursive systematic convolutional (RSC) codes are generally used for component codes.FIGS. 1 and 2illustrate a prior art turbo encoder and decoder, respectively. The encoder and decoder are disclosed in U.S. Pat. No. 5,446,747 issued on Aug. 29, 1995, the contents of which are incorporated herein by reference.

Referring toFIG. 1, an interleaver16is connected between first and second constituent encoders12and14. For the first and second encoders12and14, a RSC encoder may be used, which is well-known in the art. The interleaver16has the same size as a frame length, N, of the input data, and changes arrangement of the input data bit-stream dkprovided to the second constituent encoder14to decrease the correlation among the data bits. Therefore, the output parallel concatenated codes for the input data bit-stream dkbecome xk(i.e., dkwithout modification), y1k,and y2k.

FIG. 2is a block diagram showing a configuration of a conventional turbo decoder. The turbo decoder includes an adder18, subtracters20and22, a soft-decision circuit24, delays26,28and30, and MAP (Maximum A Posteriori Probability) decoders32and34. The turbo decoder further includes an interleaver36which is identical to the interleaver16shown inFIG. 1, and deinterleavers38and40. The turbo decoder iteratively decodes input data in the frame unit using a MAP decoding algorithm; a bit error rate (BER) is decreased, as the iterative decoding number increases. A SOVA (Soft Output Viterbi Algorithm) decoder which can perform soft-decision iterative decoding can also be used for the turbo decoder.

As illustrated inFIG. 1, the turbo encoder includes the interleaver16, which implies that encoding and decoding should be performed in the frame unit. Therefore, it can be understood that the required memory capacity for the MAP decoders32and34in the turbo decoder ofFIG. 2increases in proportion to a value obtained by multiplying the frame length by a status number of the encoders12and14of FIG.1.

In a communication system for providing various services, such as voice, character, image and moving picture services, a data rate ranges from several Kbps to several Mbps, and a length of data frames inputted to a channel encoder varies from several ms (milliseconds) to several hundred ms. In particular, a channel decoder employing the iterative decoding, such as the turbo decoder, experiences a decreased bit error rate (BER) as the number of iterative decodings increases. However, an increase in the iterative decoding number inevitably leads to an increase in the amount of calculations, power consumed by the decoder, and transmission time. Hence, in the channel decoder using iterative decoding, the iterative decoding number is generally fixed to a value satisfying a permissible time delay irrespective of the service type.

However, since the condition of a transmission channel varies with time, a desired bit error rate may not be obtained with the fixed iterative decoding number when the condition of the receiving channel is worse as compared to a predetermined condition. In a packet data service which may be less influenced by a transmission time delay, a desired bit error rate may be satisfied by increasing the iterative decoding number. However, when the iterative decoding number is fixed to a maximum value in consideration of only the worst channel condition, the amount of calculations unnecessarily increases, causing an increase in power consumption of the decoder in a good channel condition. Further, even though the transmission delay time increases, it is needed to increase the iterative decoding number, if necessary, according to a class of the user or received data. The bit error rate and the time delay are determined according to the class. Therefore, it is necessary to vary the iterative decoding number according to the service type, the class, and the channel conditions.

SUMMARY

It is, therefore, an object of the present invention to provide a channel encoding/decoding apparatus and method for varying an iterative decoding number according to a service type and a data class.

It is another object of the present invention to provide a channel encoding/decoding apparatus for varying an iterative decoding number according to a channel condition as a function of time.

The present invention provides a receiving device for a communication system. In the receiving device, a message information receiver receives information about a message to be received. A controller determines an iterative decoding number of a decoder according to the message information received. A decoder iteratively decodes the received message according to the determined iterative decoding number.

The message information includes a class of received data, and the class includes a required bit error rate (BER). The iterative decoding number is increased for a low BER as compared to a predetermined threshold. Further, the class includes a permissible time delay, and the iterative decoding number is increased for a long permissible time delay as compared to a predetermined threshold. In addition, the message information includes a service type of the received data, and the iterative decoding number is decreased when the service type is a moving picture service.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will be described hereinbelow with reference to the accompanying drawings. In the following description, well known constructions or functions are not described in detail so as not to obscure the present invention.

In a preferred embodiment of the present invention, a turbo encoder is used for a channel encoder, and a MAP decoder is used for soft-decision iterative decoding. A SOVA decoder can also be used for the soft-decision iterative decoding.

FIG. 3illustrates a channel transmitter including a turbo channel encoder according to an embodiment of the present invention. The turbo channel encoder turbo encodes user data received in a unit of N-bits input frame and transmits the encoded user data over a transmission channel.

A source data encoder312compresses and encodes user data provided from a user data input device311. A channel encoder313encodes an output of the source data encoder312. In the embodiment, a turbo encoder is used for the channel encoder313. A channel interleaver314interleaves an output of the channel encoder313. A modulator315modulates (or spreads) an output of the interleaver314and transmits the modulated output over a transmission channel316. A central processing unit (CPU)300determines a service type (voice, character, image, or moving picture service) and a data class, and provides message information about the service type and data class to a message information transmitter301. The data class includes the required bit error rate (BER) and the permissible time delay. The data class and service type can be determined during call setup or during on service.

In operation, upon receipt of the user data from the user data input device311, the source data encoder312encodes the user data and provides the encoded data to the channel encoder313. The user data may be character, image or moving picture data having a data rate of several tens of Kbps or more, or voice data having a data rate of several Kbps. The CPU300transmits message information about the service type and the class of the user data through the message information transmitter301.

Although the present invention is described with reference to an embodiment which transmits the message information to the decoder via a separate channel, it is also contemplated to transmit the message information by carrying it on a head or tail area of a transmission frame during transmission of the user data.

FIG. 4illustrates a channel receiver including a channel decoder in accordance with a first embodiment. A demodulator412demodulates an input signal received via a transmission channel411. A channel deinterleaver413deinterleaves an output of the demodulator412. A message information receiver401receives the message information transmitted from the message information transmitter301ofFIG. 3, and provides it to a CPU400. The CPU400analyzes the received message information and provides information about iterative decoding to an iterative decoding controller402. The iterative decoding controller402then analyzes the iterative decoding information provided from the CPU400to determine the iterative decoding number according to the analysis, and controls the soft-decision decoder414according to the determined iterative decoding number. Here, the iterative decoding number is decreased for a moving picture service permitting only a short time delay, and increased for a character service permitting even a longer time delay. In addition, even while decoding, if the BER or FER (Frame Error Rate) is higher than a threshold, the iterative decoding number is increased. The soft-decision decoder414iteratively decodes an output of the channel deinterleaver413under the control of the iterative decoding controller402. A MAP or SOVA decoder may be used for the soft-decision decoder414. A source data decoder415decodes an output of the soft-decision decoder414and provides the decoded output to a user data output device416.

The message information includes the service type (voice, character, image and moving picture service) and the data class, as previously stated. The data class includes the required BER and the permissible time delay. This message information is used to determine the iterative decoding number. For a lower BER or a longer permissible time delay, the iterative decoding controller402increases the iterative decoding number.

The channel decoder414iteratively decodes the user data according to the iterative decoding number control signal provided from the iterative decoding controller402. Upon receiving the frame data through the transmission channel411, the demodulator412demodulates the received data and supplies the demodulated data to the channel deinterleaver413. The channel deinterleaver413deinterleaves the demodulated data and provides the deinterleaved data to the decoder414. At this moment, the message information receiver401receives the message information about the service type and the data class transmitted from the message information transmitter301ofFIG. 3via the transmission channel and provides the received message information to the CPU400.

The CPU400then analyzes the message information and provides information about iterative decoding to the iterative decoding controller402. The iterative decoding controller402analyzes the information about the iterative decoding to determine the iterative decoding number. Based on the determination results, the iterative decoding controller402varies the iterative decoding number of the soft-decision decoder414, when necessary. The soft-decision decoder414iteratively decodes the output of the channel deinterleaver413according to the iterative decoding number control signal provided from the iterative decoding controller402. The CPU400controls timing of the entire decoding process according to a variation in the iterative decoding number. The output of the soft-decision decoder414is inputted to the user data output device416via the source data decoder415.

FIG. 5illustrates a second embodiment of a channel receiver including a channel decoder according to the present invention. Referring toFIG. 5, the channel receiver does not include the message information transmitter401of FIG.4. However, the channel receiver can be separately provided with the message information about the service type and data class from the transmitter.

In the channel receiver ofFIG. 5, a channel condition analyzer501varies the iterative decoding number of a soft-decision decoder514according to the channel condition over time. The channel condition is compared to a predetermined channel condition and the iterative decoding number is adjusted accordingly. For example, in a CDMA communication system, when a base station exchanges data with multiple mobile stations, the base station provides the respective mobile stations with an interference level signal among reverse channel signals received from the mobile stations on a broadcasting channel. This interference level signal is used for channel condition in a mobile station. Alternatively, the mobile stations can determine the channel condition by analyzing a pilot signal transmitted from the base station to measure a signal-to-interference ratio (SIR) of the signal.

A demodulator512demodulates an input signal received through a transmission channel511. A channel deinterleaver513deinterleaves an output of the demodulator512. The channel condition analyzer501analyzes a channel condition by measuring a signal-to-interference ratio (SIR) and provides the analysis results to a CPU500. The CPU500provides information about iterative decoding to an iterative decoding controller502. The iterative decoding controller502then controls the iterative decoding number of the soft-decision decoder514. The iterative decoding controller502analyzes the information about the iterative decoding to determine whether it is needed to vary the present iterative decoding number.

The soft-decision decoder514iteratively decodes an output of the channel deinterleaver513under the control of the iterative decoding controller502. The MAP or SOVA decoder may be used for the soft-decision decoder514. A source data decoder515decodes an output of the soft-decision decoder514and provides the decoded output to a user data output device516.

In operation, the channel condition analyzer501measures the SIR using an interference level control signal and a pilot signal transmitted from the base station and provides the measured SIR to the CPU500. The CPU500provides information about iterative decoding to the iterative decoding controller502. The iterative decoding controller502analyzes the information about the channel condition and determines whether to vary the present iterative decoding number of the soft-decision decoder514.

For example, the iterative decoding controller502decreases the iterative decoding number when the condition of the transmission channel is better than a threshold or a predetermined number. The soft-decision decoder514decodes the output of the channel deinterleaver513according to the iterative decoding number control signal from the iterative decoding controller502. The controller500controls timing of the entire decoding process based on a variation in the iterative decoding number. The output of the soft-decision decoder514is inputted to the user data output device516via the source data decoder515.

A description will be made as to an operation of the iterative decoding controllers402and502with reference to FIG.6. The iterative decoding controllers402and502receive, at step611, information about iterative decoding from the CPU400and500, respectively. The information about the iterative decoding is determined by analyzing the message information about the service type, the data class, and the present channel condition. At step612, the information about the iterative decoding is analyzed to determine the iterative decoding number. It is judged at step613whether it is necessary to vary the iterative decoding number by comparing the determined iterative decoding number with a threshold or a predetermined number. If it is judged that it is not necessary to vary the iterative decoding number, the iterative decoding controllers402and502output the iterative decoding number control signal in a first state to the soft-decision decoders414and514, respectively, at step615. Otherwise, when it is necessary to vary the iterative decoding number, the present iterative decoding number is varied to the determined iterative decoding number at step614. Thereafter, a corresponding iterative decoding number control signal in a second state is applied to the soft-decision decoders414and514at step615.

It is contemplated that CPU400and iterative decoding controllers402can be merged in one controller chip. It is also contemplated that CPU500and iterative decoding controller502can be merged in one controller chip.

FIG. 7is a graph illustrating a simulated result as a function of the iterative decoding number of the channel decoder. As shown inFIG. 7, there is a considerable difference in the bit error rate between 4-times iterative decoding and 8-times iterative decoding. To provide a service having a higher data class in the state where the iterative decoding number is initially set to 4, the iterative decoding number is increased to 8.

In the light of the foregoing descriptions, an efficiency of the turbo decoder can be increased by varying the iterative decoding number according to the service type, data class and channel condition.