WO1997040582A1 - Parallel concatenated tail-biting convolutional code and decoder therefor - Google Patents

Parallel concatenated tail-biting convolutional code and decoder therefor Download PDF

Info

Publication number
WO1997040582A1
WO1997040582A1 PCT/US1997/006129 US9706129W WO9740582A1 WO 1997040582 A1 WO1997040582 A1 WO 1997040582A1 US 9706129 W US9706129 W US 9706129W WO 9740582 A1 WO9740582 A1 WO 9740582A1
Authority
WO
WIPO (PCT)
Prior art keywords
component
decoder
soft
decision
composite
Prior art date
Application number
PCT/US1997/006129
Other languages
French (fr)
Inventor
Stephen Michael Hladik
John Bailey Anderson
Original Assignee
General Electric Company
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
Priority to AU24591/97A priority Critical patent/AU716645B2/en
Priority to MX9710510A priority patent/MX9710510A/en
Priority to UA97125953A priority patent/UA44779C2/en
Priority to BR9702156A priority patent/BR9702156A/en
Priority to EP97920377A priority patent/EP0834222B1/en
Priority to HU9901440A priority patent/HU220815B1/en
Priority to JP53813797A priority patent/JP3857320B2/en
Priority to DE69736881T priority patent/DE69736881T2/en
Application filed by General Electric Company filed Critical General Electric Company
Priority to PL97349517A priority patent/PL184230B1/en
Priority to CA002221295A priority patent/CA2221295C/en
Priority to PL97349516A priority patent/PL183537B1/en
Priority to PL97323524A priority patent/PL183239B1/en
Publication of WO1997040582A1 publication Critical patent/WO1997040582A1/en
Priority to NO975966A priority patent/NO975966D0/en

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
    • 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/2996Tail biting
    • 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/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/2978Particular arrangement of the component decoders
    • H03M13/2981Particular arrangement of the component decoders using as many component decoders as component 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • 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/0067Rate matching
    • H04L1/0068Rate matching by puncturing

Definitions

  • the present invention relates generally to error-correction coding for the communication of short messages over poor channels and, more particularly, to a parallel concatenated convolutional coding technique and a decoder therefor.
  • PCCC parallel concatenated convolutional coding
  • Turbo coding One form of parallel concatenated coding, referred to as either parallel concatenated convolutional coding (PCCC) or "turbo coding" has been the subject of recent coding research due to impressive demonstrated coding gains when applied to blocks of 10,000 or more bits.
  • PCCC parallel concatenated convolutional coding
  • Turbo coding has been the subject of recent coding research due to impressive demonstrated coding gains when applied to blocks of 10,000 or more bits.
  • a parallel concatenated convolutional coding scheme utilizes tail-biting nonrecursive systematic convolutional (NSC) codes.
  • the associated decoder iteratively utilizes circular maximum a posteriori (MAP) decoding to produce hard and soft decision outputs.
  • MAP circular maximum a posteriori
  • Use of tail-biting codes solves the problem of termination of the input data sequences in turbo coding, thereby avoiding associated decoder performance degradation for shon messages.
  • NSC codes are generally weaker than recursive systematic convolutional (RSC) codes having the same memory asymptotically as the data block length increases, the free distance of a NSC code is less sensitive to data block length.
  • RSC recursive systematic convolutional
  • FIG. 1 is a simplified block diagram illustrating a parallel concatenated encoder
  • FIG. 2 is a simplified block diagram illustrating a decoder for parallel concatenated codes
  • FIG. 3 is a simplified block diagram illustrating a tail-biting, nonrecursive systematic convolutional encoder for use in the coding scheme according to the present invention
  • FIG. 4 is a simplified block diagram illustrating a circular MAP decoder useful as a component decoder in a decoder for a parallel concatenated convolutional coding scheme according to the present invention.
  • FIG. 5 is a simplified block diagram illustrating an altemative embodiment of a circular MAP decoder useful as a component decoder for a parallel concatenated convolutional coding scheme according to the present invention
  • RG. 1 is a general block diagram of encoder signal processing
  • the 10 for parallel concatenated coding schemes. It comprises a plurality N of component encoders 12 which operate on blocks of data bits from a source. The data blocks are permuted by interleaving algorithms via interleavers 14. As shown, there are N-1 interleavers for N encoders 12. Finally, the component encoder outputs are combined into a single composite codeword by a composite codeword formatter 16.
  • the composite codeword formatter is chosen to suit the characteristics of the channel, and it may be followed by a frame formatter chosen to suit the channel and communication system's ,. occidental makeup,, 40582
  • the frame formatter may also insert other necessary overhead such as control bits and synchronization symbols.
  • a significant code rate advantage can be obtained in parallel concatenated coding if the component codes are systematic codes.
  • the codewords (ou ⁇ ut) generated by a systematic encoder include the original data bits provided as inputs to the encoder and additional parity bits. (The redundancy introduced by the parity bits is what yields a code's error correction capability.) Therefore, when systematic encoders are used in the parallel concatenated encoder shown in FIG. 1, the codewords produced by all component encoders 12 contain the input data bits.
  • formaner 16 forms a data packet or composite codeword comprising only the parity bits generated by each component encoder 12 and the block of information bits to be coded, a substantial improvement in the rate of the composite parallel concatenated code is realized by eliminating repetition of the information bits in the transmitted composite codeword.
  • component encoder 1 and component encoder 2 of a parallel concatenated convolutional code (PCCC) encoder comprising two component codes are both rate 1/2 codes
  • the composite parallel concatenated code rate is increased from 1/4 for nonsystematic component codes to 1/3 when systematic component codes are used.
  • PCCCs parallel concatenated convolutional codes
  • BER bit error rate
  • E ⁇ /N ⁇ energy per bit to noise power spectral density ratio
  • the performance of a nonrecursive systematic tail-biting convolutional code is independent of data block length for most practical purposes; the obtainable performance degrades only if the block of data bits encoded is less than a minimum size that is determined by the NSC's decision depth properties.
  • FIG. 2 illustrates a general decoder 20 for parallel concatenated codes in block diagram form.
  • Decoder 20 comprises the following: a composite-codeword-to-component-codeword converter 22 which converts the composite codeword received from a channel to individual received codewords for each component decoder 24; N component decoders 24 corresponding to the N component encoders of FIG. 1; the same type (or same) interleavers 14 mat are used in the parallel concatenated encoder (FIG. 1); and first and second deinterleavers 28 and 29, respectively, that each have a sequence reordering characteristic that is equivalent to a series concatenation of N-1 deinterleavers 30 corresponding to die N-1 interleavers used for encoding.
  • the outputs of component decoders 24 are some type of soft- decision information on the estimated value of each data bit in the received codeword.
  • the outputs of the component decoders may be a first function of the probabilities that the decoded bits are 0 or 1 conditioned on the received sequence of symbols from the channel.
  • the soft-decision information outputted by component decoders 24 may be a function of the likelihood ratio
  • the Nth component decoder has a second output, i.e., a second function of the conditional probabilities for the decoded bit values or likelihood ratios above.
  • the decoder for parallel concatenated codes operates iteratively in the following way.
  • the soft- decision values calculated by decoder 1 are then interleaved using the same type (or same) interleaver that was used in the encoder to permute the block of data bits for the second encoder.
  • the permuted soft-decision values and the corresponding received codeword comprise the inputs to the next component decoder (decoder 2).
  • the permuted soft-decision values received from the preceding component decoder and interleaver are utilized by the next component decoder as a priori information about the data bits to be decoded.
  • the component decoders operate sequentially in this manner until the N th decoder has calculated a set of soft-decision outputs for the block of data bits that was encoded by the encoder.
  • the next step is deinterleaving soft-decision values from the Nth decoder as described hereinabove.
  • the first decoder then operates on the received codeword again using the new soft-decision values from the N th decoder as its a priori information. Decoder operation proceeds in this manner for die desired number of iterations. At the conclusion of the final iteration, the sequence of values which are a second function of the soft- decision outputs calculated by me N th decoder is deinterleaved in order to return the data to the order in which it was received by the PCCC encoder.
  • the number of iterations can be a predetermined number, or it can be determined dynamically by detecting decoder convergence.
  • Typical turbo decoders utilize eidier maximum a posteriori (MAP) decoders, such as described by L.R. Bahl, J. Cocke, F. Jelinek and J. Raviv in “Optimal Decoding of Linear Codes for Minimizing Symbol error Rate,” IEEE Transactions of Information Theory, March 1974, pp. 284-287, or soft output Viterbi algorithm (SOVA) decoders, as described by J. Hagenauer and P. Hoeher in “A Viterbi Algorithm with Soft-Decision Outputs and its Applications, 1989 IEEE Globecom Conference, pp. 1680- 1686.
  • a MAP decoder produces the probability that a decoded bit value is 0 or 1.
  • a SOVA decoder typically calculates the likelihood ratio
  • the component codes in a parallel concatenated convolutional coding scheme comprise tail-biting nonrecursive systematic convolutional codes.
  • the use of such tail-biting codes solves the problem of termination of die input data sequences in turbo coding, thereby avoiding decoder performance degradation for shon messages.
  • NSC codes are generally weaker than RSC codes having die same memory, the free distance of a NSC code is less sensitive to data block length.
  • parallel concatenated coding with NSC codes will perform better than with RSC codes having the same memory for messages mat are shoner than a predetermined threshold data block size.
  • the performance cross-over point is a function of desired decoded bit error rate, code rate, and code memory.
  • the present invention is applicable to any values of k, n ,and m.
  • a switch 50 is in the down position, and L input bits are shifted into a shift register 52, k at a time (one input symbol at a time for this example).
  • the switch moves to the up position and encoding begins with the shift of die first bit from a second shift register 54 into the nonrecursive systematic encoder; the state of the encoder at this time is fbu b ⁇ . ⁇ ,..., bukm-l) ⁇ - hi this example, die encoder ou ⁇ ut comprises die current input bit and a parity bit formed in block 56 (shown as modulo 2 addition for this example) as a function of the encoder state and the current input symbol. Encoding ends when die L/ ⁇ bit is encoded.
  • the associated decoder for die hereinabove described parallel concatenated encoder comprises a circular MAP decoder as described by the present inventors in commonly assigned, copending U.S. Patent Application No. (RD-24,923), which is incorporated by reference herein.
  • U.S. Patent Application No. (RD-24,923) describes a circular MAP decoder useful for decoding tail-biting convolutional codes.
  • the circular MAP decoder can deliver both an estimate of die encoded data block and reliability information to a data sink, e.g., a speech synthesis signal processor for use in transmission error concealment or protocol processor for packet data as a measure of block error probability for use in repeat request decisions.
  • a circular MAP decoder for error-correcting ⁇ ellis codes that employ tail biting produces soft-decision ou ⁇ uts.
  • the circular MAP decoder provides an estimate of the probabilities of the states in the first stage of die trellis, which probabilities replace the a priori knowledge of the starting state in a conventional MAP decoder.
  • the circular MAP decoder provides die initial state probability distribution in eidier of two ways.
  • the first involves a solution to an eigenvalue problem for which the resulting eigenvector is die desired initial state probability distribution; with knowledge of the starting state, die circular MAP decoder performs the rest of the decoding according to die conventional MAP decoding algorithm.
  • the second is based on a recursion for which die iterations converge to a starting state distribution. After sufficient iterations, a state on the circular sequence of states is known with high probability, and die circular MAP decoder performs the rest of die decoding according to die conventional MAP decoding algorithm.
  • the objective of the conventional MAP decoding algorithm is to find the conditional probabilities:
  • Pf state m at time 1 1 receive channel outputs y j ,...,y ⁇ j .
  • L in this expression represents the length of die data block in units of the number of encoder symbols.
  • the encoder for an (n, k) code operates on k- bit input symbols to generate n-bit output symbols.
  • y t is the channel output (symbol) at time t.
  • the MAP decoding algoritiim actually first finds die probabilities:
  • r t (i,j) Pf state j ot time t; y t I state i at time t-1 . ⁇
  • the matrix F f is calculated as a function of the channel transition probability
  • each element of I " is calculated by summing over all possible encoder outputs X as follows:
  • the MAP decoder calculates L of diese matrices, one for each trellis stage. They are formed from die received channel output symbols and the nature of the trellis branches for a given code.
  • m is the index that corresponds to a state S t .
  • the decoder's hard-decision or decoded bit output is obtained by applying Pfd? - 0 ⁇ Y J to the following decision rule:
  • the mauix of probabilities ⁇ / comprises elements defined as follows:
  • One embodiment of the circular MAP decoder determines the initial state probability distribution by solving an eigenvalue problem as follows. Let a t , ⁇ t , -T f and ⁇ , be as before, but take the initial a () and ⁇ L as follows: Set ⁇ L to the column vector (11 l...l) ⁇ .
  • FIG. 4 is a simplified block diagram illustrating a circular MAP decoder 110 for decoding an error-correcting tail-biting trellis code in accordance with the eigenvector method described hereinabove.
  • Decoder 110 comprises a J) calculator 112 which calculates / " ⁇ as a function of the channel output y t .
  • the F / calculator receives as inputs the following from a memory 130: the channel transition probability R(Y t , X), the probability p,(m ⁇ v') that die encoder makes a transition from state m' to m at time t, and the probability q t (X ⁇ m',m) that the encoder's output symbol is X given that the previous encoder state is m' and die present encoder state is in.
  • the J " ⁇ calculator calculates each element of J " ⁇ by summing over all possible encoder outputs X in accordance with equation (2).
  • the calculated values of J " ⁇ are provided to a matrix product calculator 114 to form the matrix product /Xy T 2 ... J ⁇ ⁇ using an identity matrix
  • the identity matrix is applied as one input to the matrix product calculator.
  • the resulting matrix product is provided via a switch 121 to a normalized eigenvector computer 122 which calculates die normalized eigenvector corresponding to the largest eigenvalue of the matrix product input thereto.
  • the values of/7 / are determined in a matrix product calculator 132 using a switch 134 and delay 136 circuitry according to equation (6). Then, die probabilities ⁇ / are calculated from the values of a , and ⁇ t in an element- by-element product calculator 140 according to equation (7). The values ol ' ⁇ , are provided to a decoded bit value probability calculator 150 which determines the probability that the j* decoded bit at time t, d 1 ; , equals zero.
  • This probability is provided to a threshold decision device 152 which implements the following decision rule: If the probability from calculator 150 is greater than 2 * then decide that the decoded bit is zero; if the probability is less than 2 , then decide that the decoded bit is one; if it equals 2 , then the decoded bit is randomly assigned the value 0 or 1.
  • the output of the threshold decision device is the decoder's output bit at time t.
  • An alternative embodiment of the circular MAP decoder determines the state probability distributions by a recursion method.
  • the recursion continues until decoder convergence is detected .
  • step (ii.c) Compare ⁇ 7 from step (ii.b) to the previously found set from step w n m ⁇ n
  • step (ii.a) If the M corresponding elements of the new and old a L are within a w m ⁇ n tolerance range, proceed to step (iv) set forth hereinabove. Otherwise, continue to step (ii.d).
  • step (ii.e) Compare die new a t 's to die previously found set. If the M new and old a t 's are within a tolerance range, proceed to step (iv). Otherwise, continue with step (ii.d) if the two most recent vectors do not agree to within the tolerance range and if the number of recursions does not exceed a specified maximum (typically 2L); proceeding U ⁇ step (iv) otherwise.
  • a specified maximum typically 2L
  • the recursion method described hereinabove is modified so diat die decoder only needs to process a predetermined, fixed number of trellis stages for a second time, that is, a predetermined wrap depth. This is advantageous for implementation purposes because die number of computations required for decoding is die same for every encoded message block. Consequendy, hardware and software complexities are reduced.
  • One way to estimate die required wrap depth for MAP decoding of a tail-biting convolutional code is to determine it from hardware or software experimentation, requiring that a circular MAP decoder widi a variable wrap depth be implemented and experiments be conducted to measure die decoded bit error rate versus E
  • the minimum decoder wrap depth that provides the minimum probability of decoded bit error for a specified E /N g is found when further increases in wrap depth do not decrease the error probability.
  • die wrap depdi search described hereinabove may simply be terminated when the desired average probability of bit error is obtained.
  • die term "correct path" refers to the sequence of states or a padi through die trellis diat results from encoding a block of data bits.
  • corrected subset of a node refers to die set of all incorrect (treUis) branches out of a correct padi node and their descendents.
  • the decision depths are defined as follows:
  • die minimum wrap depdi for circular MAP decoding is LU(e).
  • die depth LU(e) shows diat it is always larger tiian LF(e) but that it obeys the same approximate law. This implies diat die minimum wrap depth can be estimated as die forward decision depdi LF(e) if die unmerged decision depth of a code is not known.
  • a preferred embodiment of the circular MAP decoder algorithm hased on recursion comprises the following steps:
  • the trellis- level index t takes on the values ((u-1) mod L) + 1.
  • the trellis-level index / takes on the values L-(u mod L).
  • /3 7 is used as ⁇ L+] and F; is used as
  • FIG. 5 is a simplified block diagram illustrating a circular MAP decoder 180 in accordance widi diis preferred embodiment of the present invention.
  • Decoder 180 comprises a 7 " ) calculator 182 which calculates r, as a function of the channel output y / .
  • the channel outputs y ⁇ ,...,y ⁇ are provided to the J ⁇ calculator via a switch 184.
  • the r, calculator calculates each element of fj by summing over all possible encoder outputs X in accordance with equation (2).
  • the calculated values of r are provided to a matrix product calculator 190 which multiplies the 7 " ) matrix by die ⁇ / -i matrix, which is provided recursively via a delay 192 and demultiplexer 194 circuit.
  • control signal CNTRLl causes demultiplexer 194 to select a. ul from delay 192 as one input to matrix product calculator 190.
  • Values of T t and Of are stored in memory 196 as required.
  • the ⁇ ⁇ vectors are calculated recursively in a matrix product calculator 200 via a delay 202 and demultiplexer 204 circuit.
  • Control signal CNTRL2 causes demultiplexer 204 to select ⁇ L from memory 196 as one input to matrix product calculator 200 when t - L-l.
  • control signal CNTRL2 causes demultiplexer 204 to select ⁇ [+J from delay 102 as one input to matrix product calculator 2(K).
  • the resulting values of ⁇ t are multiplied by the values of ⁇ / , obtained from memory 196, in an element-by- element product calculator 206 to provide the probabilities ⁇ / , as described hereinabove.
  • the values of ⁇ t are provided to a decoded bit value probability calculator 150, the output of which is provided to a threshold decision device 152, resulting in the decoder's decoded output bits.
  • the present invention il is possible to increase the rate of the parallel concatenated coding scheme comprising tail- biting nonrecursive systematic codes by deleting selected bits in the composite codeword formed by the composite codeword formatter according to an advantageously chosen pattern prior to transmitting the bits of the composite codeword over a channel.
  • This technique is known as puncturing.
  • This puncturing pattern is also known by the decoder.
  • the following simple additional step performed by the received eomposite-c ⁇ deword-io-component- codeword converter provides the desired decoder operation: the received composite-codeword-to-component-codeword converter merely inserts a neutral value for each known punctured bit during the formation of the received component codewords.
  • the neutral value is lor the case of antipodal signalling over an additive white Gau.ssian noise channel.
  • the rest of the decoder's operation is as described hereinabove.
  • die use of tail-biting codes solves die problem of termination of input data sequences in turbo codes.
  • Use of tail- biting convolutional codes as component codes in a parallel concatenated coding scheme has not been proposed heretofore.
  • die present invention provides a parallel concatenated nonrecursive tail-biting systematic convolutional coding scheme with a decoder comprising circular MAP decoders for decoding die component tail-biting convolutional codes to provide better performance for shon data block lengths tiian in conventional turbo coding schemes, as measured in terms of bit error rate versus signal-to-noise ratio.

Abstract

A parallel concatenated convolutional coding scheme utilizes tail-biting nonrecursive systematic convolutional codes. The associated decoder iteratively utilizes circular maximum a posteriori decoding to produce hard and soft decision outputs. This encoding/decoding system results in improved error-correction performance for short messages.

Description

PARALLEL CONCATENATED TAIL-RrTTNfi CONVOLUTIONAL CODE AND DECODER THEREFOR
Field of the Invention
The present invention relates generally to error-correction coding for the communication of short messages over poor channels and, more particularly, to a parallel concatenated convolutional coding technique and a decoder therefor.
Background of the Invention
One form of parallel concatenated coding, referred to as either parallel concatenated convolutional coding (PCCC) or "turbo coding", has been the subject of recent coding research due to impressive demonstrated coding gains when applied to blocks of 10,000 or more bits. (See C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes," Proceedings ofthe IEEE International Conference on Communications, 1993, pp. 1064-1070; J.D. Andersen, "The TURBO Coding Scheme," Report IT- 146 ISSN 0105-854, Institute of Telecommunication, Technical University of Denmark, December 1994; and P. Robertson, "Illuminating the Structure of Code and Decoder of Parallel Concatenated Recursive Systematic (Turbo) Codes," 1994 IEEE Globecom Conference, pp. 1298-1303.)
However, it has been shown that the performance of a turbo code degrades substantially as the length of the encoded data block decreases. This effect is due to the strong dependence of its component recursive systematic convolutional codes' weight structures on block length. A second issue is the proper termination of message blocks applied to a turbo encoder.
As described by O. Joersson and H. Meyr in "Terminating the Trellis of Turbo- Codes," IEE Electronics Letters, vol. 30, no. 16, August 4, 1994, pp. 1285- 1286, the interleaving used in turbo encoders may make it impossible to terminate both the interleaved and non -interleaved encoder input sequences with a single set of tail bits. While it is possible to use a second tail sequence embedded into the message structure such that the encoder operating on the interleaved data sequence is properly terminated, this doubles die overhead associated with encoder termination and reduces the effective code rate. An altemative is not to terminate one of the encoder sequences, but this degrades performance of the encoder/decoder system, panicularly when applied to shon messages. In Terminating the Trellis of Turbo-Codes in die Same State," IEE
Electronics Letters, 1995, vol. 31, no. 1, January 5, pp. 22-23, A.S. Barbulescu and S.S. Pietrobon reported a method that places restrictions on the interleaver design in order to terminate two component recursive systematic convolutional (RSC) encoders with a single termination bit sequence. Their performance results show some degradation compared to performance obtained by terminating both encoders when an optimized interleaver is used. In addition, published bit-error rate (BER) versus energy-per-bit-to-noise-power-spectral- density ratio (E^/N0) data exhibit a flattening in BER over a range of Eij/N0 values when RSCs are utilized in the turbo encoder.
Accordingly, it is desirable to provide an improved parallel concatenated coding technique for short data blocks.
Summary of the Invention
Ln accordance with the present invention, a parallel concatenated convolutional coding scheme utilizes tail-biting nonrecursive systematic convolutional (NSC) codes. The associated decoder iteratively utilizes circular maximum a posteriori (MAP) decoding to produce hard and soft decision outputs. Use of tail-biting codes solves the problem of termination of the input data sequences in turbo coding, thereby avoiding associated decoder performance degradation for shon messages. While NSC codes are generally weaker than recursive systematic convolutional (RSC) codes having the same memory asymptotically as the data block length increases, the free distance of a NSC code is less sensitive to data block length. Hence, parallel concatenated coding with NSC codes will perform better than with RSC codes having the same memory for messages that are shoner than some threshold data block size. Brief Description of the Drawings
The features and advantages of the present invention will become apparent from the following detailed description ofthe invention when read with the accompanying drawings in which:
FIG. 1 is a simplified block diagram illustrating a parallel concatenated encoder,
FIG. 2 is a simplified block diagram illustrating a decoder for parallel concatenated codes;
FIG. 3 is a simplified block diagram illustrating a tail-biting, nonrecursive systematic convolutional encoder for use in the coding scheme according to the present invention;
FIG. 4 is a simplified block diagram illustrating a circular MAP decoder useful as a component decoder in a decoder for a parallel concatenated convolutional coding scheme according to the present invention; and
FIG. 5 is a simplified block diagram illustrating an altemative embodiment of a circular MAP decoder useful as a component decoder for a parallel concatenated convolutional coding scheme according to the present invention
Detailed Description of the Invention
RG. 1 is a general block diagram of encoder signal processing
10 for parallel concatenated coding schemes. It comprises a plurality N of component encoders 12 which operate on blocks of data bits from a source. The data blocks are permuted by interleaving algorithms via interleavers 14. As shown, there are N-1 interleavers for N encoders 12. Finally, the component encoder outputs are combined into a single composite codeword by a composite codeword formatter 16. The composite codeword formatter is chosen to suit the characteristics of the channel, and it may be followed by a frame formatter chosen to suit the channel and communication system's ,.„„,, 40582
channel access technique. The frame formatter may also insert other necessary overhead such as control bits and synchronization symbols.
A significant code rate advantage can be obtained in parallel concatenated coding if the component codes are systematic codes. The codewords (ouφut) generated by a systematic encoder include the original data bits provided as inputs to the encoder and additional parity bits. (The redundancy introduced by the parity bits is what yields a code's error correction capability.) Therefore, when systematic encoders are used in the parallel concatenated encoder shown in FIG. 1, the codewords produced by all component encoders 12 contain the input data bits. If formaner 16 forms a data packet or composite codeword comprising only the parity bits generated by each component encoder 12 and the block of information bits to be coded, a substantial improvement in the rate of the composite parallel concatenated code is realized by eliminating repetition of the information bits in the transmitted composite codeword. For example, if component encoder 1 and component encoder 2 of a parallel concatenated convolutional code (PCCC) encoder comprising two component codes are both rate 1/2 codes, the composite parallel concatenated code rate is increased from 1/4 for nonsystematic component codes to 1/3 when systematic component codes are used.
Parallel concatenated coding schemes which utilize recursive systematic convolutional (RSC) codes have been die recent topic of much research. These parallel concatenated convolutional codes (PCCCs) are also commonly known in die literature as "turbo" codes. As noted hereinabove, it has been demonstrated that these PCCCs can achieve impressive performance in terms of bit error rate (BER) versus the energy per bit to noise power spectral density ratio (E^/N^ for the case of relatively large messages, i.e., ten ϋiousand or more bits. However, it has also been shown that the coding gain obtained with turbo codes degrades significandy with decreasing data block size because the recursive systematic convolutional component codes' strengths are quite sensitive to data block length. On the other hand, the performance of a nonrecursive systematic tail-biting convolutional code is independent of data block length for most practical purposes; the obtainable performance degrades only if the block of data bits encoded is less than a minimum size that is determined by the NSC's decision depth properties.
FIG. 2 illustrates a general decoder 20 for parallel concatenated codes in block diagram form. Decoder 20 comprises the following: a composite-codeword-to-component-codeword converter 22 which converts the composite codeword received from a channel to individual received codewords for each component decoder 24; N component decoders 24 corresponding to the N component encoders of FIG. 1; the same type (or same) interleavers 14 mat are used in the parallel concatenated encoder (FIG. 1); and first and second deinterleavers 28 and 29, respectively, that each have a sequence reordering characteristic that is equivalent to a series concatenation of N-1 deinterleavers 30 corresponding to die N-1 interleavers used for encoding. The required ordering of these deinterleavers is shown in FIG. 2 and is the reverse of the ordering of the interleavers. The outputs of component decoders 24 are some type of soft- decision information on the estimated value of each data bit in the received codeword. For example, the outputs of the component decoders may be a first function of the probabilities that the decoded bits are 0 or 1 conditioned on the received sequence of symbols from the channel. One example of such a first function removes the influence of the conditional probability Pfd / = 0 \ Y / ) from a component decoder's soft-decision output that is inputted to a next sequential component decoder after an appropriate permutation, where Pfd/ =
0 \ Y } is die probability that the j 1 information bit at time t is 0 conditioned on the jώ (systematic) bit ofthe received channel output symbol Y{. Alternatively, the soft-decision information outputted by component decoders 24 may be a function of the likelihood ratio
. Pfd/ = ι \ Y] L) l - Pfd/ = o i y/v
Λ ( dt ) = — Pfd/ , = 0 I Yj r } = Pfd/ ; = 0 I Yp z~
or as a function of the log-likelikelihood ratio log [ A ( d/ ) ] . PC17US97/06129
As shown, the Nth component decoder has a second output, i.e., a second function of the conditional probabilities for the decoded bit values or likelihood ratios above. An example of this second function is the product ol" Pfd: = 0 1
Y} } and the a priori probability that d{ = 0 received from the previous component decoder.
The decoder for parallel concatenated codes operates iteratively in the following way. The first component decoder (decoder 1) calculates a set of soft-decision values for the sequence of information bits encoded by the first component encoder based on the received codeword and any a priori information about the transmitted information bits. In the first iteration, if there is no a priori information on the source statistics, it is assumed that the bits are equally likely to be 0 or l(i.e., Pfbit = 0} = Pfbit = 1J = 1/2 ). The soft- decision values calculated by decoder 1 are then interleaved using the same type (or same) interleaver that was used in the encoder to permute the block of data bits for the second encoder. These permuted soft-decision values and the corresponding received codeword comprise the inputs to the next component decoder (decoder 2). The permuted soft-decision values received from the preceding component decoder and interleaver are utilized by the next component decoder as a priori information about the data bits to be decoded. The component decoders operate sequentially in this manner until the Nth decoder has calculated a set of soft-decision outputs for the block of data bits that was encoded by the encoder. The next step is deinterleaving soft-decision values from the Nth decoder as described hereinabove. The first decoder then operates on the received codeword again using the new soft-decision values from the Nth decoder as its a priori information. Decoder operation proceeds in this manner for die desired number of iterations. At the conclusion of the final iteration, the sequence of values which are a second function of the soft- decision outputs calculated by me Nth decoder is deinterleaved in order to return the data to the order in which it was received by the PCCC encoder. The number of iterations can be a predetermined number, or it can be determined dynamically by detecting decoder convergence. The decoder provides soft-decision information which is a function of the probability Pfdj = 0 \ Y }) ; that is, the conditional probability that the j111 data bit in a k-bit symbol input to the encoder at time / is 0 given that the set of channel outputs Y} = fy},.-,y L } is received, ln addition, the decoder may provide hard-decision information as a function of its soft- decision output through a decision device which implements a decision rule, such as:
K 0
>- pfdj r o \ γL 1} 1
< 2 dJ 1 -
That is, if P{dJ t = 0
Figure imgf000009_0001
= 0 I YL }/ < j , then dj t = 7; otherwise, randomly assign dJ the value 0 or 1.
Typical turbo decoders utilize eidier maximum a posteriori (MAP) decoders, such as described by L.R. Bahl, J. Cocke, F. Jelinek and J. Raviv in "Optimal Decoding of Linear Codes for Minimizing Symbol error Rate," IEEE Transactions of Information Theory, March 1974, pp. 284-287, or soft output Viterbi algorithm (SOVA) decoders, as described by J. Hagenauer and P. Hoeher in "A Viterbi Algorithm with Soft-Decision Outputs and its Applications, 1989 IEEE Globecom Conference, pp. 1680- 1686. A MAP decoder produces the probability that a decoded bit value is 0 or 1. On the other hand, a SOVA decoder typically calculates the likelihood ratio
Pf decoded bit is 1 } Pf decoded bit is 0 }
for each decoded bit. It is apparent that this likelihood ratio can be obtained from Pf decoded bit is 0} and vice versa using Pf decoded bit is 0} = 1 - Pf decoded bit is 1). Some computational advantage has been found when eidier MAP or SOVA decoders work with the logarithm of likelihood ratios, mat is,
( Pf decoded bit is 1 } l°s { Pf decoded bit is 0 J It has been demonstrated that the coding gain (error correction capability) obtained with turbo codes degrades signiϋcandy with decreasing data block size. Several authors have attributed this behavior primarily to the properties of RSC codes. It has been shown mat the distance property of a RSC code increases with increasing data block length. Conversely, the minimum distance of a RSC code decreases with decreasing data block length. A second problem is die difficulty in terminating all RSC codes comprising a turbo coding scheme due to interleaving. Disadvantageously, the adverse effects resulting from a lack of sequence termination or the imposition of restrictions on interleaver design are significant and become even more so with decreasing data block length.
In accordance with the present invention, the component codes in a parallel concatenated convolutional coding scheme comprise tail-biting nonrecursive systematic convolutional codes. The use of such tail-biting codes solves the problem of termination of die input data sequences in turbo coding, thereby avoiding decoder performance degradation for shon messages. Although NSC codes are generally weaker than RSC codes having die same memory, the free distance of a NSC code is less sensitive to data block length. Hence, parallel concatenated coding with NSC codes will perform better than with RSC codes having the same memory for messages mat are shoner than a predetermined threshold data block size. The performance cross-over point is a function of desired decoded bit error rate, code rate, and code memory.
FIG. 3 illustrates an example of rate ■ 1/2, memory = m tail- biting nonrecursive systematic convolutional encoder for use in the parallel concatenated convolutional coding (PCCC) scheme of the present invention.
For purposes of description, an (n, k, m) encoder denotes and encoder wherein the input symbols comprise k bits, die ouφut symbols comprise n bits, and m = encoder memory in Jfc-bit symbols. For purposes of illustration, FIG. 3 is drawn for binary input symbols, i.e., k = /. However, the present invention is applicable to any values of k, n ,and m.
Initially, a switch 50 is in the down position, and L input bits are shifted into a shift register 52, k at a time (one input symbol at a time for this example). After loading the LΛ bit into die encoder, the switch moves to the up position and encoding begins with the shift of die first bit from a second shift register 54 into the nonrecursive systematic encoder; the state of the encoder at this time is fbu bι.ι,..., bukm-l)}- hi this example, die encoder ouφut comprises die current input bit and a parity bit formed in block 56 (shown as modulo 2 addition for this example) as a function of the encoder state and the current input symbol. Encoding ends when die L/Λ bit is encoded.
Anodier aspect of the present invention, the associated decoder for die hereinabove described parallel concatenated encoder, comprises a circular MAP decoder as described by the present inventors in commonly assigned, copending U.S. Patent Application No. (RD-24,923), which is incorporated by reference herein. In particular, U.S. Patent Application No. (RD-24,923) describes a circular MAP decoder useful for decoding tail-biting convolutional codes. The circular MAP decoder can deliver both an estimate of die encoded data block and reliability information to a data sink, e.g., a speech synthesis signal processor for use in transmission error concealment or protocol processor for packet data as a measure of block error probability for use in repeat request decisions.
In particular, as described in U.S. Patent Application No. (RD- 24,923), a circular MAP decoder for error-correcting σellis codes that employ tail biting produces soft-decision ouφuts. The circular MAP decoder provides an estimate of the probabilities of the states in the first stage of die trellis, which probabilities replace the a priori knowledge of the starting state in a conventional MAP decoder. The circular MAP decoder provides die initial state probability distribution in eidier of two ways. The first involves a solution to an eigenvalue problem for which the resulting eigenvector is die desired initial state probability distribution; with knowledge of the starting state, die circular MAP decoder performs the rest of the decoding according to die conventional MAP decoding algorithm. The second is based on a recursion for which die iterations converge to a starting state distribution. After sufficient iterations, a state on the circular sequence of states is known with high probability, and die circular MAP decoder performs the rest of die decoding according to die conventional MAP decoding algorithm. The objective of the conventional MAP decoding algorithm is to find the conditional probabilities:
Pf state m at time 1 1 receive channel outputs yj,...,yιj .
The term L in this expression represents the length of die data block in units of the number of encoder symbols. (The encoder for an (n, k) code operates on k- bit input symbols to generate n-bit output symbols.) The term yt is the channel output (symbol) at time t.
The MAP decoding algoritiim actually first finds die probabilities:
λ/m) = PfS, = m; Y} } (1 )
that is, die joint probability that the encoder state at time r, S{ , is m and the set of channel outputs Y. = fy]r...,yLJ is received. These are the desired probabilities multiplied by a constant (PfY, }, the probability of receiving the set of channel outputs fy1,...,ylj) .
Now define the elements of a matrix r* f by
rt(i,j) = Pf state j ot time t; yt I state i at time t-1 .}
The matrix Ff is calculated as a function of the channel transition probability
R(Yt, X), die probability pt(m\m') that the encoder makes a transition from state m' to m at time t, and die probability qt(X\m',m) that the encoder's output symbol is X given that die previous encoder state is m' and the present encoder state is m. In particular, each element of I") is calculated by summing over all possible encoder outputs X as follows:
(2) γt(m',m) = ∑/^mim'J qt(X\m',m) R(Y,, X) X
SUBSTITUTE SHEET (RϋLE 26) The MAP decoder calculates L of diese matrices, one for each trellis stage. They are formed from die received channel output symbols and the nature of the trellis branches for a given code.
Next define the M joint probability elements of a row vector αf by α,0V = Pf state j at time t; y7,...,yf / (3)
and the M conditional probability elements of a column vector βt by
βtϋ) = p{yt+ι>~yL ' stme J at time V (4)
for j = 0,1,..., (M-l) where Λf is the number of encoder states. (Note that matrices and vectors are denoted herein by using boldface type.)
The steps of the MAP decoding algorithm are as follows:
(i) Calculate α,, ..., aL by the forward recursion:
at = a^ rt , t=l,...,L . (5)
(ii) Calculate βj, .... β^ j by the backward recursion:
βt = rι+j βt+I - t = L-l,...,I . (6)
(iii) Calculate die elements of λ t by:
λ/i) = α/i) β/i) , all i, t=l L (7)
(iv) Find related quantities as needed. For example, leiAJ be the set of states St = fSJ t> S2 f ..., S*JV such that the j01 element of St, SJ , is equal to zero. For a conventional non-recursive trellis code, SJ = dJ , the j* data bit at time /. Therefore, the decoder's soft-decision output is /US97/06129
12
Figure imgf000014_0001
where Pfήj = ∑λL(m) and m
m is the index that corresponds to a state St.
The decoder's hard-decision or decoded bit output is obtained by applying Pfd? - 0\Y J to the following decision rule:
dj t = o
PfdJ t = 0 \ YL 1} > L 2 ; t
That is, if Pf ' d1 t = 0 I YL 1J > ( 2, then 3j t = 0; if Pf 'd1 t = 0 I YL IJ < ^ 2 , then Ηj t =
1 ; otherwise, randomly assign J the value 0 or 1.
As anodier example of a related quantity for step (iv) hereinabove, the mauix of probabilities σ/ comprises elements defined as follows:
σt (i, j) = P{St-i = i; St = j; YL } } = ahl (i) γt (i, j) β, (j)
These probabilities are useful when it is desired to determine the a posteriori probability of die encoder output bits.
In die standard application of the MAP decoding algorithm, the forward recursion is initialized by the vector Ct() = (1,0,....0), and the backward recursion is initialized by βL - (l,0,...0)τ . These initial conditions are based on assumptions that the encoder's initial state S0 = 0 and its ending state SL = 0.
One embodiment of the circular MAP decoder determines the initial state probability distribution by solving an eigenvalue problem as follows. Let at, βt, -Tf and λ, be as before, but take the initial a() and βL as follows: Set βL to the column vector (11 l...l)τ.
Let OQ be an unknown (vector) variable.
Then,
(i) Calculate iTf for t - 1, 2, ... L according to equation (2).
(ii) Find the largest eigenvalue of the matrix product T, T2 ... TL. Normalize the corresponding eigenvector so diat its components sum to unity. This vector is the solution for a(). The eigenvalue is Pf Y . j .
(iii) Form the succeeding at by die forward recursion set forth in equation (5).
(iv) Starting from βL , initialized as above, form the βf by the backward recursion set forth in equation (6).
(v) Form die λ( as in (7), as well as odier desired variables, such as, for example, the soft-decision output Pfd1 = 0\Y } or the matrix of probabilities ϋv described hereinabove.
The inventors have shown that the unknown variable a() satisfies the matrix equation
ao rι r2 a0 = -
>fA}
From the fact that diis formula expresses a relationship among probabilities, we know that the product of Tt matrices on the right has largest eigenvalue equal to Pf Y , I , and that the corresponding eigenvector must be a probability vector.
With the initial βL = (lll...l)τ, equation (6) gives βL_j. Thus, repeated applications of this backward recursion give all the βt . Once a0 is known and βL is set, all computations in the circular MAP decoder of the present invention follow the conventional MAP decoding algorithm. FIG. 4 is a simplified block diagram illustrating a circular MAP decoder 110 for decoding an error-correcting tail-biting trellis code in accordance with the eigenvector method described hereinabove. Decoder 110 comprises a J) calculator 112 which calculates /"} as a function of the channel output yt. The F/ calculator receives as inputs the following from a memory 130: the channel transition probability R(Yt, X), the probability p,(m\ιv') that die encoder makes a transition from state m' to m at time t, and the probability qt(X\m',m) that the encoder's output symbol is X given that the previous encoder state is m' and die present encoder state is in. The J"} calculator calculates each element of J"} by summing over all possible encoder outputs X in accordance with equation (2).
The calculated values of J"} are provided to a matrix product calculator 114 to form the matrix product /Xy T2 ... J~^ using an identity matrix
116, e.g., received from memory, a switch 1 18 and a delay circuit 120. At lime t = 7, the identity matrix is applied as one input to the matrix product calculator. t- l For each subsequent time from t = 2 to t = L, the matrix product |~J Tj gels i=l fed back via die delay circuit to die mauix product calculator. Then, at time / = L, the resulting matrix product is provided via a switch 121 to a normalized eigenvector computer 122 which calculates die normalized eigenvector corresponding to the largest eigenvalue of the matrix product input thereto.
With a o thus initialized, i.e., as this normalized eigenvector, the succeeding a t vectors are determined recursively according to equation (5) in a matrix product calculator 124 using a delay 126 and switch 128 circuitry, as shown. Appropriate values of J"} are retrieved from a memory 130, and the resulting a / are then stored in memory 130.
The values of/7 / are determined in a matrix product calculator 132 using a switch 134 and delay 136 circuitry according to equation (6). Then, die probabilities λ / are calculated from the values of a , and β t in an element- by-element product calculator 140 according to equation (7). The values ol' λ , are provided to a decoded bit value probability calculator 150 which determines the probability that the j* decoded bit at time t, d1 ; , equals zero. This probability is provided to a threshold decision device 152 which implements the following decision rule: If the probability from calculator 150 is greater than 2 * then decide that the decoded bit is zero; if the probability is less than 2 , then decide that the decoded bit is one; if it equals 2 , then the decoded bit is randomly assigned the value 0 or 1. The output of the threshold decision device is the decoder's output bit at time t.
The probability that the decoded bit equals zero Pfd/ = 0 I Y/ } is also shown in FIG. 4 as being provided to a soft output function block 154 for providing a function of the probability, i.e., f(Pfd = 0 I Y I), such as, for example, the
likelihood ratio
Figure imgf000017_0001
as the decoder's soft-decision output. Another useful function of Pfd = 0 I
Figure imgf000017_0002
log likelihood ratio = log .
Figure imgf000017_0003
Alternatively, a useful function for block 154 may simply be the identity function so that the soft output is just Pfd1 = 0 I YJ }.
An alternative embodiment of the circular MAP decoder determines the state probability distributions by a recursion method. In particular, in one embodiment (die dynamic convergence method), the recursion continues until decoder convergence is detected . In this recursion (or dynamic convergence) method, steps (ii) and (iii) of the eigenvector method described hereinabove are replaced as follows: (ii.a) Starting with an initial a() equal to (1/M 1/M), where M is the number of states in die trellis, calculate die forward recursion L times. Normalize the results so that the elements of each new a, sum to unity. Retain all L a, vectors. (ii.b) Let Ot() equal flt^ from the previous step and, starting at / = 7 , calculate the first Lw a. probability vectors again. "min
M-l That is, calculate a((m) = \o:h](i) γ{(i,m) for m = 0, 1, .... M-l and t = i-0
1,2,...,LW where L is a suitable minimum number of trellis stages. wmin min
Normalize as before. Retain only the most recent sel of L α's found by the recursion in steps (ii.a) and (ii.b) and the a, found previously in step mm
(ii.a).
(ii.c) Compare α7 from step (ii.b) to the previously found set from step w nmιn
(ii.a). If the M corresponding elements of the new and old aL are within a wmιn tolerance range, proceed to step (iv) set forth hereinabove. Otherwise, continue to step (ii.d).
(ii.d) Let t = t + 1 and calculate a{ = Ot(_jrr Normalize as before. Retain only the most recent set of L crX calculated and the a, found previously in step (ii.a).
(ii.e) Compare die new at's to die previously found set. If the M new and old at's are within a tolerance range, proceed to step (iv). Otherwise, continue with step (ii.d) if the two most recent vectors do not agree to within the tolerance range and if the number of recursions does not exceed a specified maximum (typically 2L); proceeding U\step (iv) otherwise.
This method then continues with steps (iv) and (v) given hereinabove with respect to the eigenvector method to produce the soft-decision outputs and decoded output bits of the circular MAP decoder.
In another alternative embodiment of the circular MAP decoder as described in U.S. Patent Application No. (RD-24,923), the recursion method described hereinabove is modified so diat die decoder only needs to process a predetermined, fixed number of trellis stages for a second time, that is, a predetermined wrap depth. This is advantageous for implementation purposes because die number of computations required for decoding is die same for every encoded message block. Consequendy, hardware and software complexities are reduced.
One way to estimate die required wrap depth for MAP decoding of a tail-biting convolutional code is to determine it from hardware or software experimentation, requiring that a circular MAP decoder widi a variable wrap depth be implemented and experiments be conducted to measure die decoded bit error rate versus E|j/N0 for successively increasing wrap depths. The minimum decoder wrap depth that provides the minimum probability of decoded bit error for a specified E /Ng is found when further increases in wrap depth do not decrease the error probability.
If a decoded bit error rate diat is greater than the minimum achievable at a specified EJ/NQ is tolerable, it is possible to reduce die required number of trellis stages processed by die circular MAP decoder. In particular, die wrap depdi search described hereinabove may simply be terminated when the desired average probability of bit error is obtained.
Another way to determine the wrap depdi for a given code is by using die code's distance properties. To diis end, it is necessary to define two distinct decoder decision depths. As used herein, die term "correct path" refers to the sequence of states or a padi through die trellis diat results from encoding a block of data bits. The term "incorrect subset of a node" refers to die set of all incorrect (treUis) branches out of a correct padi node and their descendents.
Both the decision depths defined below depend on die convolutional encoder.
The decision depths are defined as follows:
(i) Define die forward decision depdi for e-error conection, LF(e) , to be die first depth in die trellis at which all paths in die incorrect subset of a correct padi initial node, whedier later merging to the correct padi or not, lie more tiian a
Hamming distance 2e from die correct padi. The significance of LF(e) is diat if tiiere are e or fewer errors forward of die initial node, and encoding is known to have begun diere, tiien die decoder must decode correcdy. A formal tabulation of forward decision depdis for convolutional codes was provided by J.B. Anderson and K. Balachandran in "Decision Depdis of Convolutional Codes", IEEE Transactions on Information Theory, vol. IT-35, pp. 455-59, March 1989. A number of properties of LF(e) are disclosed in diis reference and also by J.B. Anderson and S. Mohan in Source and Channel Coding - An Algorithmic Approach, Kluwer Academic Publishers, Norwell, MA, 1991. Chief among tiiese propenies is diat a simple linear relation exists between LF and e; for example, with rate 7/2 codes, LF is approximately 9.08e .
(ii) Next define the unmerged decision depdi for e-error correction, LU(e) , to be the first depdi in die trellis at which all paths in die trellis diat never touch die correct padi lie more man a Hamming distance of 2e away from die correct path.
The significance of LU(e) for soft-decision circular MAP decoding is diat the probability of identifying a state on the actual transmitted path is high after die decoder processes LU(e) trellis stages. Therefore, die minimum wrap depdi for circular MAP decoding is LU(e). Calculations of die depth LU(e) show diat it is always larger tiian LF(e) but that it obeys the same approximate law. This implies diat die minimum wrap depth can be estimated as die forward decision depdi LF(e) if die unmerged decision depth of a code is not known.
By finding die minimum unmerged decision depth for a given encoder, we find die fewest number of trellis stages diat must be processed by a practical circular decoder diat generates soft-decision ouφuts. An algorithm to find LF(e), the forward decision depdi, was given by J.B. Anderson and K. Balachandran in "Decision Depdis of Convolutional Codes", cited hereinabove. Υo find LU(e):
(i) Extend die code trellis from left to right, starting from all trellis nodes simultaneously, except for die zero-state. (ii) At each level, delete any paths that merge to the correct (all- zero) path; do not extend any paths out of die correct (zero) state node.
(iii) At level k, find the least Hamming distance, or weight, among patiis terminating at nodes at this level.
(iv) If diis least distance exceeds 2e, stop. Then, LU(e) = k.
As described in U.S. Patent Application No. (RD-24,923), experimentation via computer simulation lead to two unexpected results: (1) wrapped processing of β( improves decoder performance; and (2) the use of a wrap depdi of LU(e) + LF(e) ~ 2 LF(e) improves performance significantly. Hence, a preferred embodiment of the circular MAP decoder algorithm hased on recursion comprises the following steps:
(i) Calculate Fr for t - 1, 2, ... L according to equation (2).
(ii) Starting with an initial a() equal to (1/M,..., 1/M), where M is the number of states in the trellis, calculate die forward recursion ol equation (5) (L + Lw) times for u = 1, 2, ... (L + Lw) where Lw is the decoder's wrap depth.
The trellis- level index t takes on the values ((u-1) mod L) + 1. When the decoder wraps around the received sequence of symbols from the channel, aL is treated as aϋ. Normalize the results so that the elements of each new at sum to unity. Retain the L most recent a vectors found via this recursion. (iii) Starling with an initial β^ equal to ( 1 7)7, calculate the backward recursion of equation (6) (L + Lw) times for u = 1, 2, ... (L + Lw).
The trellis-level index / takes on the values L-(u mod L). When the decoder wraps around die received sequence, /37is used as βL+] and F; is used as
J"z.+7 when calculating the dew βL. Normalize the results so that the elements of each new βt sum to unity. Again, retain the L most recent β vectors found via this recursion.
' The next step of this preferred recursion method is the same as step (v) set forth hereinabove widi respect to the eigenvector method to produce the soft-decisions and decoded bits output by the circular MAP decoder. FIG. 5 is a simplified block diagram illustrating a circular MAP decoder 180 in accordance widi diis preferred embodiment of the present invention. Decoder 180 comprises a 7") calculator 182 which calculates r, as a function of the channel output y/. The channel outputs y^,...,y^ are provided to the J} calculator via a switch 184. With the switch in the down position, L channel output symbols are loaded into a /" / calculator 182 and a shift register 186 one at a time. Then, switch 184 is moved to the up position to allow die shift register to shift the first Lw received symbols into the f} calculator again, i.e., to provide circular processing. The /"} calculator receives as inputs from memory 130 the channel transition probability R(Y{, X), the probability
Pt(m\m') that the encoder makes a transition from state m' to m at time /, and the probability qt(X\m\ m) that the encoder's output symbol is X given that the previous encoder state is m' and the present encoder state is m. The r, calculator calculates each element of fj by summing over all possible encoder outputs X in accordance with equation (2).
The calculated values of r, are provided to a matrix product calculator 190 which multiplies the 7") matrix by die α / -i matrix, which is provided recursively via a delay 192 and demultiplexer 194 circuit. Control signal CNTRL1 causes demultiplexer 194 to select a() from memory 196 as one input to matrix product calculator 190 when / = 7. When 2 5 / < L, control signal CNTRLl causes demultiplexer 194 to select a. ul from delay 192 as one input to matrix product calculator 190. Values of Tt and Of , are stored in memory 196 as required.
The β ι vectors are calculated recursively in a matrix product calculator 200 via a delay 202 and demultiplexer 204 circuit. Control signal CNTRL2 causes demultiplexer 204 to select βL from memory 196 as one input to matrix product calculator 200 when t - L-l. When L-2 > t ? 7, control signal CNTRL2 causes demultiplexer 204 to select β[+J from delay 102 as one input to matrix product calculator 2(K). The resulting values of β t are multiplied by the values of α / , obtained from memory 196, in an element-by- element product calculator 206 to provide the probabilities λ / , as described hereinabove. In the same manner as described hereinabove with reference to FIG. 4, the values of λ t are provided to a decoded bit value probability calculator 150, the output of which is provided to a threshold decision device 152, resulting in the decoder's decoded output bits.
The conditional probability that the decoded bit equals zero (Pfd = 0 \ YJ }) is also shown in FIG. 5 as being provided to a soft output function block 154 for providing a function of the probability,
T S97/06129
- 22 -
i.e., ((Pfd/ = 0 I YJ}), such as, for example, the
likelihood ratio
Figure imgf000024_0001
as the decoder's soft-decision output. Another useful function ol
Figure imgf000024_0002
log likelihood ratio .
Figure imgf000024_0003
Alternatively, a useful function for block 154 may simply he the identity function so that the soft output is just Pfd/ = 0 I Y1 } .
In accordance with the present invention, il is possible to increase the rate of the parallel concatenated coding scheme comprising tail- biting nonrecursive systematic codes by deleting selected bits in the composite codeword formed by the composite codeword formatter according to an advantageously chosen pattern prior to transmitting the bits of the composite codeword over a channel. This technique is known as puncturing. This puncturing pattern is also known by the decoder. The following simple additional step performed by the received eomposite-cυdeword-io-component- codeword converter provides the desired decoder operation: the received composite-codeword-to-component-codeword converter merely inserts a neutral value for each known punctured bit during the formation of the received component codewords. For example, the neutral value is lor the case of antipodal signalling over an additive white Gau.ssian noise channel. The rest of the decoder's operation is as described hereinabove.
It has heretofore been widely accepted thai nonrecursive systematic convolutional codes would not be useful as the component codes in a parallel concatenated coding scheme because of the superior distance properties of RSC codes for relatively large die data block lengths, as reported, for example in S. Benedetto and G. Montorsi, "Design of Parallel Concatenated Convolutional Codes," IEEE Transactions on Communications, to be published. However, as described hereinabove, die inventors have determined that die minimum distance of a NSC code is less sensitive to data block length and, dierefore, can be used advantageously in communication systems diat transmit shon blocks of data bits in very noisy channels. In addition, the inventors have determined that die use of tail-biting codes solves die problem of termination of input data sequences in turbo codes. Use of tail- biting convolutional codes as component codes in a parallel concatenated coding scheme has not been proposed heretofore. Hence, die present invention provides a parallel concatenated nonrecursive tail-biting systematic convolutional coding scheme with a decoder comprising circular MAP decoders for decoding die component tail-biting convolutional codes to provide better performance for shon data block lengths tiian in conventional turbo coding schemes, as measured in terms of bit error rate versus signal-to-noise ratio.
While die preferred embodiments of die present invention have been shown and described herein, it will be obvious that such embodiments are provided by way of example only. Numerous variations, changes and substitutions will occur to diose of skill in die an without departing from the invention herein. Accordingly, it is intended that the invention be limited only by die spirit and scope of die appended claims.

Claims

PARALLEL CONCATENATED TML-BΠTNO CONVOLUTIONAL CODE AND DECODER THEREFORWHAT IS CLAIMED IS:
1. A method for parallel concatenated convolutional encoding, comprising the steps of:
providing a block of data bits to a parallel concatenated encoder comprising a plurality of N component encoders and N- 1 interleavers 5 connected in a parallel concatenation;
encoding the block of data bits in a first one of the component encoders by applying a tail-biting nonrecursive systematic convolutional code thereto and thereby generating a corresponding first component codeword comprising the data bits and parity bits;
o interleaving the block of data bits to provide a permuted block of data bits;
encoding the resulting permuted block of data bits in a subsequent component encoder by applying a tail-biting nonrecursive systematic convolutional code thereto, and thereby generating a corresponding 5 second component codeword compnsmg the data bits and paπty bits;
repeating the steps of interleaving and encoding the resulting permuted block of data bits through the remaining N-2 interleavers and the remaining N-2 component encoders, and thereby generating component codewords comprising the data bits and paπty bits; and
0 formatting the bits of the component codewords to provide a composite codeword.
2. The method of claim I wherein the formatting step is performed such that the composite codeword includes only one occurrence of each bit in the block of data bits.
3. The method of claim 1 wherein the formatting step is performed such that the composite codeword includes only selected ones of the bits comprising the component codewords according to a predetermined pattern.
4. A method for decoding parallel concatenated convolutional codes, comprising the steps of:
receiving from a channel a composite codeword that comprises a formatted collection of bits from a plurality (N) of component codewords that have been generated by applying tail-biting nonrecursive systematic convolutional codes to a block of data bits in a parallel concatenated encoder, forming received component codewords from the received composite codeword, each respective received component codeword being received by a corresponding one of a plurality of N component decoders of a composite decoder, each respective component decoder also receiving a set of a priori soft-decision information for values of the data bits;
decoding the received component codewords by a process of iterations through the N component decoders and N- 1 interleavers to provide soft-decision outputs from the composite decoder, the N component decoders each providing soft-decision information on each data bit in die data block in the order encoded by the corresponding component encoder, the N-1 interleavers each interleaving die soft-decision information from a preceding component decoder to provide a permuted block of soft information to a subsequent component decoder, the set of a priori soft-decision information for the first of the N component decoders being calculated assuming that the data bits' values are equally likely for the first iteration and thereafter comprising a first function of the soft-decision information, which first function of the soft-decision information is fed back from the N,h component decoder via a first deinterleaver comprising N-1 deinterleavers corresponding to the N-1 interleavers, die N-1 deinterleavers of the first deinterleaver being applied in reverse order to the N- 1 interleavers, the set of a priori soft-decision information provided to each other component decoder comprising the first function of the soft-decision information from the previous sequential component decoder; and
deinterleaving in a second deinterleaver to provide a second function of the soft-decision output from the Nth component decoder as the composite decoder's soft-decision output using N-1 deinterleavers corresponding to the N- 1 interleavers, the N- 1 deinterleavers of the second deinterleaver being applied in reverse order to the N-1 interleavers.
5. The method of claim 4 wherein the number of iterations through the component decoders, interleavers and deinterleavers is a predetermined number.
6. The method of claim 4 wherein die iterations through the component decoders, interleavers and deinterleavers continues until decoder convergence is detected if the number of iterations is less than a maximum number; otherwise decoding terminates after the maximum number of iterations, and the composite decoder provides the second function of soft- decision outputs from the N^ component decoder as its soft-decision output via the second deinterleaver.
7. The method of claim 4, further comprising the step of implementing a decision rule to provide hard-decision outputs as a function of the composite decoder's soft-decision output.
8. The method of claim 4 wherein the formatted collection of bits has been punctured according to a predetermined pattern, the method for decoding further comprising the step of inserting neutral values for all punctured bits when forming the received component codewords.
9. The method of claim 4 wherein the decoding step is performed by the N component decoders comprising circular MAP decoders, the decoding step comprising solving an eigenvector problem.
10. The method of claim 4 wherein the decoding step is performed by the N component decoders comprising circular MAP decoders, the decoding step comprising a recursion method.
11. A method for encoding and decoding parallel concatenated convolutional codes, comprising the steps of:
providing a block of data bits to a parallel concatenated encoder comprising a plurality of N component encoders and N-1 interleavers connected in a parallel concatenation;
encoding the block of data bits in a first one of the component encoders by applying a tail-biting nonrecursive systematic convolutional code thereto and thereby generating a corresponding first component codeword comprising the data bits and parity bits;
interleaving the block of data bits to provide a permuted block of data bits;
encoding die resulting permuted block of data bits in a subsequent component encoder by applying a tail-biting nonrecursive systematic convolutional code thereto and thereby generating a corresponding second component codeword comprising the data bits and parity bits;
repeating the steps of interleaving and encoding the resulting permuted block of data bits through the remaining N-2 interleavers and the remaining N-2 component encoders, and thereby generating component codewords comprising the data bits and parity bits;
formatting the bits of the component codewords to provide a composite codeword;
inputting die composite codeword to a channel;
receiving a received composite codeword from a channel;
forming received component codewords from the received composite codeword
providing each respective received component codeword to a corresponding one of a plurality of N component decoders of a composite decoder, each respective component decoder also receiving a set of a priori probabilities for values of the data bits;
decoding the received component codewords by a process of iterations through the N component decoders and N- 1 interleavers to provide soft-decision outputs from die composite decoder, the N component decoders each providing soft-decision information on each data bit in the data block in the order encoded by the corresponding component encoder, the N- 1 interleavers each interleaving the soft-decision information from a preceding component decoder to provide a permuted block of soft information to a subsequent component decoder, the set of a priori soft-decision information for the first of the N component decoders being calculated assuming mat the data bits' values are equally likely for the first iteration and thereafter comprising a first function of the soft-decision information, which first function of the soft-decision information is fed back from the Nώ decoder via a first deinterleaver comprising N-1 deinterleavers corresponding to the N-1 interleavers, the N-1 deinterleavers of the first deinterleaver being applied in reverse order to the N-1 interleavers, the set of a priori soft-decision information provided to each other component decoder comprising the first function of the soft-decision information from the previous sequential component decoder; and
deinterleaving in a second deinterleaver to provide a second function of the soft-decision output from the Nth component decoder as the composite decoder's soft-decision output using N-1 deinterleavers corresponding to the N- 1 interleavers, the N- 1 deinterleavers of the second deinterleaver being applied in reverse order to the N-1 interleavers.
12. The method of claim 1 1 wherein the formatting step is performed such that the composite codeword includes only one occurrence of each bit in the block of data bits.
13. The method of claim 1 1 wherein the formatting step is performed such that the composite codeword includes only selected ones of the bits comprising the component codewords according to a predetermined pattern.
14. The method of claim 11 wherein the number of iterations through the component decoders, interleavers and deinterleavers is a predetermined number.
15. The method of claim 11 wherein the iterations through the component decoders, N-1 interleavers and deinterleavers continues until decoder convergence is detected if the number of iterations is less than a maximum number; otherwise decoding terminates after the maximum number of iterations, and the composite decoder provides the second function of soft- decision outputs from the N* component decoder as its soft-decision output via the second deinterleaver.
16. The method of claim 1 1, further comprising the step of implementing a decision rule to provide hard-decision outputs as a function of the composite decoder's soft-decision output.
17. The method of claim 1 1 wherein the decoding step is performed by the N component decoders comprising circular MAP decoders, the decoding step comprising solving an eigenvector problem.
18. The method of claim 1 1 wherein the decoding step is performed by the N component decoders comprising circular MAP decoders, the decoding step comprising a recursion method.
19. The method of claim 1 1 wherein the formatting step further comprises puncturing selected ones of the bits from the component codewords which comprise the composite codeword according to a predetermined pattern, the method for decoding further comprising the step of inserting neutral values for all punctured bits when forming the received component codewords.
20. A parallel concatenated encoder, comprising:
a plurality (N) of component encoders and a plurality (N- 1 ) of interleavers connected in a parallel concatenation for systematically applying tail-biting nonrecursive systematic convolutional codes to a block of data bits and various permutations of the block of data bits, and tiiereby generating component codewords comprising the data bits and parity bits ; and a composite codeword formatter for formatting the collection of bits from the component codewords to provide a composite codeword.
21. The encoder of claim 20 wherein the composite codeword formatter produces the composite codeword such that it includes only one occurrence of each bit in the block of data bits.
22. The encoder of claim 20 wherein the composite codeword produces the composite codeword such that it includes only selected ones of the bits comprising the component codewords according to a predetermined pattern.
23. A composite decoder for decoding parallel concatenated convolutional codes, comprising:
a composite-codeword-to-component-codeword converter for receiving a composite codeword from a channel, the composite codeword comprising selected bits of a plurality of N component codewords that have been generated by applying tail-biting nonrecursive convolutional codes to a block of data bits in a parallel concatenated encoder, and forming a plurality of N corresponding received component codewords therefrom;
a plurality (N) of component decoders, each respective decoder receiving a corresponding received component codeword from the composite- codeword-to-component-codeword converter, each respective decoder also receiving a set of a priori soft-decision information for values of the data bits, the N component decoders each providing soft-decision information on each data bit in die data block in the order encoded by a corresponding component encoder in the parallel concatenated encoder;
a plurality of N-1 interleavers, each respective interleaver interleaving the soft-decision information from a corresponding component decoder to provide a permuted block of soft information to a subsequent component decoder, the received codewords being decoded by a process of iterations through the N component decoders and N- 1 interleavers to provide soft-decision output from the composite decoder; a first deinterleaver comprising N-1 deinterleavers corresponding to the N-1 interleavers, the N-1 deinterleavers of the first deinterleaver being applied in reverse order to die N-1 interleavers, the set of a priori soft-decision information for the first of the N component decoders being calculated assuming that the data bits' values are equally likely for the first iteration and thereafter comprising a first function of the soft-decision information, which first function of the soft-decision information is outputted by the Nώ decoder and fed back via the first deinterleaver, the set of a priori soft-decision information provided to each other component decoder comprising the first function of the soft-decision information from the previous sequential component decoder; and
a second deinterleaver comprising N- 1 deinterleavers corresponding to the N-1 interleavers, the N-1 deinterleavers of the second deinterleaver being applied in reverse order to the N- 1 interleavers, the second deinterleaver deinterleaving a second function of the soft-decision output from the Nth component decoder to provide the composite decoder's soft-decision ouφut.
24. The decoder of claim 23 wherein the number of iterations through the component decoders, interleavers and deinterleavers is a predetermined number.
25. The decoder of claim 23 wherein the iterations through the component decoders, interleavers and deinterleavers continues until decoder convergence is detected if the number of iterations is less than a maximum number; otherwise decoding terminates after the maximum number of iterations, and die composite decoder provides the second function of soft- decision outputs from the NΛ component decoder as its soft-decision output via the second deinterleaver.
26. The decoder of claim 23, further comprising a decision device for implementing a decision rule to provide hard-decision outputs as a function of the composite decoder's soft-decision ouφut.
27. The method of claim 23 wherein the N component decoders comprise circular MAP decoders which decode by solving an eigenvector problem.
28. The method of claim 23 wherein the N component decoders comprise circular MAP decoders which decode by using a recursion method.
29. An encoder and decoder system for encoding and decoding parallel concatenated convolutional codes, comprising:
a parallel concatenated encoder comprising a plurality (N) of component encoders and a plurality (N-1) of encoder interleavers connected in a parallel concatenation for systematically applying tail-biting nonrecursive systematic convolutional codes to a block of data bits and various permutations of the block of data bits, and thereby generating component codewords comprising the data bits and parity bits; and
a composite codeword formatter for formatting the collection of bits from the component codewords to provide a composite codeword;
a composite-codeword-to-component-codeword converter for receiving the composite codeword from a channel and forming a plurality of N corresponding received component codewords therefrom;
a plurality (N) of component decoders, each respective decoder receiving a corresponding received component codeword from the composite- codeword-to-component-codeword converter, each respective decoder also receiving a set of a priori soft-decision information for values of the data bits, the N component decoders each providing soft-decision information on each data bit in the data block in the order encoded by a corresponding component encoder in the parallel concatenated encoder;
a plurality of N- 1 interleavers, each respective interleaver interleaving the soft-decision information from a corresponding component decoder to provide a permuted block of soft information to a subsequent component decoder, the received codewords being decoded by a process of iterations through the N component decoders and N-1 interleavers to provide soft-decision ouφut from die composite decoder;
a first deinterleaver comprising N- 1 deinterleavers corresponding to the N-1 interleavers, the N-1 deinterleavers of the first deinterleaver being applied in reverse order to the N-1 interleavers, the set of a priori soft-decision information for the first of the N component decoders being calculated assuming that die data bits' values are equally likely for the first iteration and thereafter comprising a first function of the soft-decision information, which first function of the soft-decision information is outputted by the N* decoder and fed back via the first deinterleaver, the set of a priori soft-decision information provided to each other component decoder comprising the first function of the soft-decision information from the previous sequential component decoder; and
a second deinterleaver comprising N- 1 deinterleavers corresponding to the N- 1 interleavers, the N- 1 deinterleavers of the second deinterleaver being applied in reverse order to the N-1 interleavers, the second deinterleaver deinterleaving a second function of the soft-decision output from the Nth component decoder to provide the composite decoder's soft-decision output.
30. The encoder and decoder system of claim 29 wherein the composite codeword formatter produces the composite codeword such that it includes only one occurrence of each bit in the block of data bits.
31. The encoder and decoder system of claim 29 wherein the composite codeword produces the composite codeword such that it includes only selected ones of the bits comprising the component codewords according to a predetermined pattern.
32. The encoder and decoder system of claim 29 wherein the number of iterations through the component decoders, interleavers and deinterleavers is a predetermined number.
33. The encoder and decoder system of claim 29 wherein the iterations through the component decoders, interleavers and deinterleavers continues until decoder convergence is detected if the number of iterations is less than a maximum number; otherwise decoding terminates after the maximum number of iterations, and the composite decoder provides the second function of soft-decision outputs from the Nth component decoder as its soft- decision output via the second deinterleaver.
34. The encoder and decoder system of claim 29, further comprising a decision device for implementing a decision rule to provide hard- decision ouφuts as a function of the decoder's soft-decision output.
35. The method of claim 29 wherein the N component decoders comprise circular MAP decoders which decode by solving an eigenvector problem.
36. The method of claim 29 wherein the N component decoders comprise circular MAP decoders which decode by using a recursion method.
PCT/US1997/006129 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor WO1997040582A1 (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
JP53813797A JP3857320B2 (en) 1996-04-19 1997-04-14 Parallel connected tail biting convolution codes and decoders thereof
UA97125953A UA44779C2 (en) 1996-04-19 1997-04-14 CODING AND DECODING METHOD, CODER BLOCK, DECODER BLOCK, AND CODER AND DECODER SYSTEM
BR9702156A BR9702156A (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and docoder for the same
EP97920377A EP0834222B1 (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor
HU9901440A HU220815B1 (en) 1996-04-19 1997-04-14 Method for parallel concatenated tail-biting convolutional coding and decoding, coder and decoder of composite codes, coder and decoder system
AU24591/97A AU716645B2 (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor
DE69736881T DE69736881T2 (en) 1996-04-19 1997-04-14 PARALLEL CHAINED TAIL BITING FOLDING CODE AND DECODER THEREFOR
MX9710510A MX9710510A (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor.
PL97349517A PL184230B1 (en) 1996-04-19 1997-04-14 Method of decoding parallel combined convolution codes and a decoder therefor
CA002221295A CA2221295C (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor
PL97349516A PL183537B1 (en) 1996-04-19 1997-04-14 Method of encoding and decoding parallel combined entanglement codes and encoder/decoder system therefor
PL97323524A PL183239B1 (en) 1996-04-19 1997-04-14 Parallel, combined splice code with end bited and decoder therefor
NO975966A NO975966D0 (en) 1996-04-19 1997-12-18 Procedure for parallel chain decoding and decoding, and associated circuits

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/636,732 1996-04-19
US08/636,732 US5721745A (en) 1996-04-19 1996-04-19 Parallel concatenated tail-biting convolutional code and decoder therefor

Publications (1)

Publication Number Publication Date
WO1997040582A1 true WO1997040582A1 (en) 1997-10-30

Family

ID=24553103

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/006129 WO1997040582A1 (en) 1996-04-19 1997-04-14 Parallel concatenated tail-biting convolutional code and decoder therefor

Country Status (21)

Country Link
US (1) US5721745A (en)
EP (1) EP0834222B1 (en)
JP (1) JP3857320B2 (en)
KR (1) KR100522263B1 (en)
CN (1) CN1111962C (en)
AR (1) AR006767A1 (en)
AU (1) AU716645B2 (en)
BR (1) BR9702156A (en)
CA (1) CA2221295C (en)
CZ (1) CZ296885B6 (en)
DE (1) DE69736881T2 (en)
HU (1) HU220815B1 (en)
ID (1) ID16464A (en)
IL (1) IL122525A0 (en)
MY (1) MY113013A (en)
NO (1) NO975966D0 (en)
PL (3) PL183537B1 (en)
RU (1) RU2187196C2 (en)
UA (1) UA44779C2 (en)
WO (1) WO1997040582A1 (en)
ZA (1) ZA973217B (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999007076A2 (en) * 1997-07-30 1999-02-11 Samsung Electronics Co., Ltd. Adaptive channel encoding method and device
EP0917294A1 (en) * 1997-11-18 1999-05-19 Koninklijke Philips Electronics N.V. Digital transmission system, decoder, and decoding method
JP2000004196A (en) * 1998-03-10 2000-01-07 Conexant Syst Inc Retransmission packet capture system under radio multiple service communication environment using turbo decoding
WO2000019618A1 (en) * 1998-09-29 2000-04-06 Nortel Networks Limited Interleaver using co-set partitioning
FR2789824A1 (en) * 1999-02-12 2000-08-18 Canon Kk Residual error correction method for output of turbo-coder in transmitter-receiver communication systems, involves storing binary data in matrix form and applying error correcting code to create formatted matrix
FR2790621A1 (en) * 1999-03-05 2000-09-08 Canon Kk Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period
GB2352943A (en) * 1999-07-21 2001-02-07 Mitsubishi Electric Corp Turbo-code decoder having reduced complexity
US6437714B1 (en) 1998-04-18 2002-08-20 Samsung Electronics, Co., Ltd. Channel encoding device and method for communication system
US6920602B1 (en) 1998-03-31 2005-07-19 Samsung Electronics Co., Ltd. Turbo encoding/decoding device and method for processing frame data according to QoS
EP2096811A2 (en) * 2008-02-29 2009-09-02 Industrial Technology Research Institute Pre-encoding and pre-decoding apparatuses and methods thereof
EP1480366A3 (en) * 1998-08-19 2010-11-24 Fujitsu Limited Error-correcting encoding apparatus
EP2439868A1 (en) * 2010-10-08 2012-04-11 Research in Motion Limited Message rearrangement for improved code performance
US8533568B2 (en) 2004-07-21 2013-09-10 Qualcomm Incorporated LDPC encoding methods and apparatus
US8595569B2 (en) 2004-07-21 2013-11-26 Qualcomm Incorporated LCPC decoding methods and apparatus
US8769365B2 (en) 2010-10-08 2014-07-01 Blackberry Limited Message rearrangement for improved wireless code performance
US9043667B2 (en) 2011-11-04 2015-05-26 Blackberry Limited Method and system for up-link HARQ-ACK and CSI transmission
US10178651B2 (en) 2012-05-11 2019-01-08 Blackberry Limited Method and system for uplink HARQ and CSI multiplexing for carrier aggregation

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI100565B (en) * 1996-01-12 1997-12-31 Nokia Mobile Phones Ltd Communication method and apparatus for encoding a signal
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
KR100498752B1 (en) * 1996-09-02 2005-11-08 소니 가부시끼 가이샤 Apparatus and method for receiving data using bit metrics
US5996113A (en) * 1996-11-26 1999-11-30 Intel Corporation Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation
US6377610B1 (en) * 1997-04-25 2002-04-23 Deutsche Telekom Ag Decoding method and decoding device for a CDMA transmission system for demodulating a received signal available in serial code concatenation
US6490243B1 (en) * 1997-06-19 2002-12-03 Kabushiki Kaisha Toshiba Information data multiplex transmission system, its multiplexer and demultiplexer and error correction encoder and decoder
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
US6029264A (en) * 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
DE59801578D1 (en) * 1997-04-30 2001-10-31 Siemens Ag METHOD AND ARRANGEMENT FOR DETERMINING AT LEAST ONE DIGITAL SIGNAL VALUE FROM AN ELECTRICAL SIGNAL
KR19990003242A (en) 1997-06-25 1999-01-15 윤종용 Structural Punched Convolutional Codes and Decoders
KR19990012821A (en) 1997-07-31 1999-02-25 홍성용 Electromagnetic wave absorber composition and its manufacturing method, electromagnetic wave absorbing coating composition, its manufacturing method and its coating method
US6192503B1 (en) * 1997-08-14 2001-02-20 Ericsson Inc. Communications system and methods employing selective recursive decording
JP4033245B2 (en) * 1997-09-02 2008-01-16 ソニー株式会社 Turbo coding apparatus and turbo coding method
KR100248396B1 (en) * 1997-10-24 2000-03-15 정선종 Designed method of channel encoder by using parallel convolutional encoder
US6000054A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for encoding and decoding binary information using restricted coded modulation and parallel concatenated convolution codes
JP3347335B2 (en) * 1997-11-10 2002-11-20 株式会社エヌ・ティ・ティ・ドコモ Interleaving method, interleaving device, and recording medium recording interleave pattern creation program
US6256764B1 (en) * 1997-11-26 2001-07-03 Nortel Networks Limited Method and system for decoding tailbiting convolution codes
US6643331B1 (en) * 1997-12-24 2003-11-04 Inmarsat Ltd. Coding method and apparatus
US6088387A (en) * 1997-12-31 2000-07-11 At&T Corp. Multi-channel parallel/serial concatenated convolutional codes and trellis coded modulation encoder/decoder
US6370669B1 (en) * 1998-01-23 2002-04-09 Hughes Electronics Corporation Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US7536624B2 (en) * 2002-01-03 2009-05-19 The Directv Group, Inc. Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
US6275538B1 (en) * 1998-03-11 2001-08-14 Ericsson Inc. Technique for finding a starting state for a convolutional feedback encoder
US6452985B1 (en) * 1998-03-18 2002-09-17 Sony Corporation Viterbi decoding apparatus and Viterbi decoding method
KR100557177B1 (en) * 1998-04-04 2006-07-21 삼성전자주식회사 Adaptive Channel Code / Decoding Method and Its Code / Decoding Device
US6198775B1 (en) * 1998-04-28 2001-03-06 Ericsson Inc. Transmit diversity method, systems, and terminals using scramble coding
DE29924886U1 (en) * 1998-06-05 2006-06-08 Samsung Electronics Co., Ltd., Suwon Channel coding device for communication system
US6298463B1 (en) * 1998-07-31 2001-10-02 Nortel Networks Limited Parallel concatenated convolutional coding
JP3453122B2 (en) 1998-08-17 2003-10-06 ヒューズ・エレクトロニクス・コーポレーション Turbo code interleaver close to optimum performance
US6128765A (en) * 1998-08-20 2000-10-03 General Electric Company Maximum A posterior estimator with fast sigma calculator
US6192501B1 (en) 1998-08-20 2001-02-20 General Electric Company High data rate maximum a posteriori decoder for segmented trellis code words
US6263467B1 (en) 1998-08-20 2001-07-17 General Electric Company Turbo code decoder with modified systematic symbol transition probabilities
US6223319B1 (en) 1998-08-20 2001-04-24 General Electric Company Turbo code decoder with controlled probability estimate feedback
WO2000013323A1 (en) 1998-08-27 2000-03-09 Hughes Electronics Corporation Method for a general turbo code trellis termination
KR100377939B1 (en) * 1998-09-01 2003-06-12 삼성전자주식회사 Frame Composition Device and Method for Subframe Transmission in Mobile Communication System
EP1443657A1 (en) 1998-09-28 2004-08-04 Comtech Telecommunications Corp. Turbo product code decoder
US6028897A (en) * 1998-10-22 2000-02-22 The Aerospace Corporation Error-floor mitigating turbo code communication method
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6044116A (en) * 1998-10-29 2000-03-28 The Aerospace Corporation Error-floor mitigated and repetitive turbo coding communication system
KR100277764B1 (en) * 1998-12-10 2001-01-15 윤종용 Encoder and decoder comprising serial concatenation structre in communication system
US6202189B1 (en) * 1998-12-17 2001-03-13 Teledesic Llc Punctured serial concatenated convolutional coding system and method for low-earth-orbit satellite data communication
KR100346170B1 (en) * 1998-12-21 2002-11-30 삼성전자 주식회사 Interleaving / deinterleaving apparatus and method of communication system
US6484283B2 (en) * 1998-12-30 2002-11-19 International Business Machines Corporation Method and apparatus for encoding and decoding a turbo code in an integrated modem system
KR100315708B1 (en) * 1998-12-31 2002-02-28 윤종용 Apparatus and method for puncturing a turbo encoder in a mobile communication system
KR100296028B1 (en) * 1998-12-31 2001-09-06 윤종용 Decoder with Gain Control Device in Mobile Communication System
US6088405A (en) * 1999-01-15 2000-07-11 Lockheed Martin Corporation Optimal decoder for tall-biting convolutional codes
US6665357B1 (en) * 1999-01-22 2003-12-16 Sharp Laboratories Of America, Inc. Soft-output turbo code decoder and optimized decoding method
US6304995B1 (en) * 1999-01-26 2001-10-16 Trw Inc. Pipelined architecture to decode parallel and serial concatenated codes
US6598204B1 (en) * 1999-02-18 2003-07-22 Imec Vzw System and method of turbo decoding
US6499128B1 (en) 1999-02-18 2002-12-24 Cisco Technology, Inc. Iterated soft-decision decoding of block codes
US6678843B2 (en) * 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
WO2000052832A1 (en) * 1999-03-01 2000-09-08 Fujitsu Limited Turbo-decoding device
US6304996B1 (en) * 1999-03-08 2001-10-16 General Electric Company High-speed turbo decoder
US6754290B1 (en) * 1999-03-31 2004-06-22 Qualcomm Incorporated Highly parallel map decoder
US6594792B1 (en) 1999-04-30 2003-07-15 General Electric Company Modular turbo decoder for expanded code word length
US6715120B1 (en) 1999-04-30 2004-03-30 General Electric Company Turbo decoder with modified input for increased code word length and data rate
DE19924211A1 (en) * 1999-05-27 2000-12-21 Siemens Ag Method and device for flexible channel coding
US6473878B1 (en) * 1999-05-28 2002-10-29 Lucent Technologies Inc. Serial-concatenated turbo codes
JP3670520B2 (en) * 1999-06-23 2005-07-13 富士通株式会社 Turbo decoder and turbo decoder
US6516136B1 (en) * 1999-07-06 2003-02-04 Agere Systems Inc. Iterative decoding of concatenated codes for recording systems
KR100421853B1 (en) * 1999-11-01 2004-03-10 엘지전자 주식회사 rate matching method in uplink
US7031406B1 (en) * 1999-08-09 2006-04-18 Nortel Networks Limited Information processing using a soft output Viterbi algorithm
DE19946721A1 (en) * 1999-09-29 2001-05-03 Siemens Ag Method and device for channel coding in a communication system
US6226773B1 (en) * 1999-10-20 2001-05-01 At&T Corp. Memory-minimized architecture for implementing map decoding
EP1094612B1 (en) * 1999-10-21 2003-05-28 Sony International (Europe) GmbH SOVA Turbo decoder with decreased normalisation complexity
US6580767B1 (en) * 1999-10-22 2003-06-17 Motorola, Inc. Cache and caching method for conventional decoders
WO2001031795A1 (en) * 1999-10-27 2001-05-03 Infineon Technologies Ag Method and device for coding a punctured turbo code
JP3549788B2 (en) * 1999-11-05 2004-08-04 三菱電機株式会社 Multi-stage encoding method, multi-stage decoding method, multi-stage encoding device, multi-stage decoding device, and information transmission system using these
US6400290B1 (en) * 1999-11-29 2002-06-04 Altera Corporation Normalization implementation for a logmap decoder
EP1234420A2 (en) * 1999-12-03 2002-08-28 Broadcom Corporation Viterbi slicer for turbo codes
AU4710501A (en) 1999-12-03 2001-06-18 Broadcom Corporation Interspersed training for turbo coded modulation
DE10001147A1 (en) * 2000-01-13 2001-07-19 Siemens Ag Data bit stream error protection method esp. for mobile phone networks - requires attaching given number of known tail-bits to end of respective data-blocks for protection of information-carrying bits in end-zones
US7092457B1 (en) * 2000-01-18 2006-08-15 University Of Southern California Adaptive iterative detection
KR100374787B1 (en) * 2000-01-18 2003-03-04 삼성전자주식회사 Bandwidth-efficient concatenated trellis-coded modulation decoder and method thereof
CA2397893C (en) 2000-01-20 2011-05-03 Nortel Networks Limited Hybrid arq schemes with soft combining in variable rate packet data applications
KR100331686B1 (en) * 2000-01-26 2002-11-11 한국전자통신연구원 Turbo decoder using base 2 log map algorithm
US6810502B2 (en) 2000-01-28 2004-10-26 Conexant Systems, Inc. Iteractive decoder employing multiple external code error checks to lower the error floor
US6606724B1 (en) * 2000-01-28 2003-08-12 Conexant Systems, Inc. Method and apparatus for decoding of a serially concatenated block and convolutional code
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
EP1281241A2 (en) * 2000-04-04 2003-02-05 Advanced Hardware Architectures, Inc Enhanced turbo product code decoder system
US6606725B1 (en) 2000-04-25 2003-08-12 Mitsubishi Electric Research Laboratories, Inc. MAP decoding for turbo codes by parallel matrix processing
FR2808632B1 (en) * 2000-05-03 2002-06-28 Mitsubishi Electric Inf Tech TURBO-DECODING PROCESS WITH RECONCODING MISTAKEN INFORMATION AND FEEDBACK
WO2001086821A2 (en) * 2000-05-05 2001-11-15 Icoding Technology, Inc. Improved error floor turbo codes
US6542559B1 (en) * 2000-05-15 2003-04-01 Qualcomm, Incorporated Decoding method and apparatus
US6718508B2 (en) * 2000-05-26 2004-04-06 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre High-performance error-correcting codes with skew mapping
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
FI109162B (en) * 2000-06-30 2002-05-31 Nokia Corp Method and arrangement for decoding a convolution-coded codeword
JP4543522B2 (en) * 2000-08-31 2010-09-15 ソニー株式会社 Soft output decoding device, soft output decoding method, and decoding device and decoding method
US7254190B2 (en) * 2000-09-01 2007-08-07 Broadcom Corporation Satellite receiver
EP1329025A1 (en) * 2000-09-05 2003-07-23 Broadcom Corporation Quasi error free (qef) communication using turbo codes
US7242726B2 (en) * 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US6604220B1 (en) * 2000-09-28 2003-08-05 Western Digital Technologies, Inc. Disk drive comprising a multiple-input sequence detector selectively biased by bits of a decoded ECC codedword
US6518892B2 (en) 2000-11-06 2003-02-11 Broadcom Corporation Stopping criteria for iterative decoding
US20020104058A1 (en) * 2000-12-06 2002-08-01 Yigal Rappaport Packet switched network having error correction capabilities of variable size data packets and a method thereof
EP1410513A4 (en) 2000-12-29 2005-06-29 Infineon Technologies Ag Channel codec processor configurable for multiple wireless communications standards
US6813742B2 (en) * 2001-01-02 2004-11-02 Icomm Technologies, Inc. High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
FI20010147A (en) * 2001-01-24 2002-07-25 Nokia Corp A method and arrangement for decoding a convolutionally coded codeword
WO2002067429A2 (en) * 2001-02-20 2002-08-29 Cute Ltd. System and method for enhanced error correction in trellis decoding
FR2822316B1 (en) * 2001-03-19 2003-05-02 Mitsubishi Electric Inf Tech OPTIMIZATION METHOD, UNDER RESOURCE CONSTRAINTS, OF THE SIZE OF ENCODED DATA BLOCKS
JP4451008B2 (en) * 2001-04-04 2010-04-14 三菱電機株式会社 Error correction encoding method and decoding method and apparatus
US6738948B2 (en) * 2001-04-09 2004-05-18 Motorola, Inc. Iteration terminating using quality index criteria of turbo codes
EP1407555A1 (en) * 2001-05-09 2004-04-14 Comtech Telecommunications Corp. Low density parity check codes and low density turbo product codes
US7012911B2 (en) * 2001-05-31 2006-03-14 Qualcomm Inc. Method and apparatus for W-CDMA modulation
US20030123563A1 (en) * 2001-07-11 2003-07-03 Guangming Lu Method and apparatus for turbo encoding and decoding
CA2421427A1 (en) * 2001-07-12 2003-01-23 Min-Goo Kim Reverse transmission apparatus and method for improving transmission throughput in a data communication system
US6738370B2 (en) * 2001-08-22 2004-05-18 Nokia Corporation Method and apparatus implementing retransmission in a communication system providing H-ARQ
US7085969B2 (en) 2001-08-27 2006-08-01 Industrial Technology Research Institute Encoding and decoding apparatus and method
US6763493B2 (en) * 2001-09-21 2004-07-13 The Directv Group, Inc. Method and system for performing decoding using a reduced-memory implementation
FR2830384B1 (en) * 2001-10-01 2003-12-19 Cit Alcatel DEVICE FOR CONVOLUTIVE ENCODING AND DECODING
EP1317070A1 (en) * 2001-12-03 2003-06-04 Mitsubishi Electric Information Technology Centre Europe B.V. Method for obtaining from a block turbo-code an error correcting code of desired parameters
JP3637323B2 (en) * 2002-03-19 2005-04-13 株式会社東芝 Reception device, transmission / reception device, and reception method
JP3549519B2 (en) * 2002-04-26 2004-08-04 沖電気工業株式会社 Soft output decoder
US20050226970A1 (en) * 2002-05-21 2005-10-13 Centrition Ltd. Personal nutrition control method and measuring devices
US20030219513A1 (en) * 2002-05-21 2003-11-27 Roni Gordon Personal nutrition control method
JP3898574B2 (en) * 2002-06-05 2007-03-28 富士通株式会社 Turbo decoding method and turbo decoding apparatus
KR100584170B1 (en) * 2002-07-11 2006-06-02 재단법인서울대학교산학협력재단 Turbo Coded Hybrid Automatic Repeat Request System And Error Detection Method
US6774825B2 (en) * 2002-09-25 2004-08-10 Infineon Technologies Ag Modulation coding based on an ECC interleave structure
US7346833B2 (en) * 2002-11-05 2008-03-18 Analog Devices, Inc. Reduced complexity turbo decoding scheme
CN1947368B (en) 2004-04-28 2010-06-16 三星电子株式会社 Apparatus and method for coding/decoding block low density parity check code with variable block length
CN100367676C (en) * 2004-05-27 2008-02-06 中国科学院计算技术研究所 Method and compressing circuits carried by high code rate convolutional codes
US20060263750A1 (en) * 2004-06-01 2006-11-23 Roni Gordon Personal nutrition control devices
KR101131323B1 (en) 2004-11-30 2012-04-04 삼성전자주식회사 Apparatus and method for channel interleaving in a wireless communication system
US7373585B2 (en) * 2005-01-14 2008-05-13 Mitsubishi Electric Research Laboratories, Inc. Combined-replica group-shuffled iterative decoding for error-correcting codes
US7461328B2 (en) * 2005-03-25 2008-12-02 Teranetics, Inc. Efficient decoding
US7502982B2 (en) * 2005-05-18 2009-03-10 Seagate Technology Llc Iterative detector with ECC in channel domain
US7360147B2 (en) * 2005-05-18 2008-04-15 Seagate Technology Llc Second stage SOVA detector
US7395461B2 (en) * 2005-05-18 2008-07-01 Seagate Technology Llc Low complexity pseudo-random interleaver
US9014152B2 (en) 2008-06-09 2015-04-21 Qualcomm Incorporated Increasing capacity in wireless communications
US8611305B2 (en) 2005-08-22 2013-12-17 Qualcomm Incorporated Interference cancellation for wireless communications
US8271848B2 (en) * 2006-04-06 2012-09-18 Alcatel Lucent Method of decoding code blocks and system for concatenating code blocks
US20080092018A1 (en) * 2006-09-28 2008-04-17 Broadcom Corporation, A California Corporation Tail-biting turbo code for arbitrary number of information bits
US7827473B2 (en) * 2006-10-10 2010-11-02 Broadcom Corporation Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors
US7831894B2 (en) * 2006-10-10 2010-11-09 Broadcom Corporation Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves
US8392811B2 (en) * 2008-01-07 2013-03-05 Qualcomm Incorporated Methods and systems for a-priori decoding based on MAP messages
EP2096884A1 (en) 2008-02-29 2009-09-02 Koninklijke KPN N.V. Telecommunications network and method for time-based network access
US8250448B1 (en) * 2008-03-26 2012-08-21 Xilinx, Inc. Method of and apparatus for implementing a decoder
US8719670B1 (en) * 2008-05-07 2014-05-06 Sk Hynix Memory Solutions Inc. Coding architecture for multi-level NAND flash memory with stuck cells
US9277487B2 (en) 2008-08-01 2016-03-01 Qualcomm Incorporated Cell detection with interference cancellation
US9237515B2 (en) 2008-08-01 2016-01-12 Qualcomm Incorporated Successive detection and cancellation for cell pilot detection
JP5276173B2 (en) * 2008-08-15 2013-08-28 エルエスアイ コーポレーション ROM list decoding of near codeword
WO2010123493A1 (en) 2009-04-21 2010-10-28 Agere Systems, Inc. Error-floor mitigation of codes using write verification
US9160577B2 (en) 2009-04-30 2015-10-13 Qualcomm Incorporated Hybrid SAIC receiver
KR101376676B1 (en) * 2009-11-27 2014-03-20 퀄컴 인코포레이티드 Increasing capacity in wireless communications
CN102668628B (en) 2009-11-27 2015-02-11 高通股份有限公司 Method and device for increasing capacity in wireless communications
CN102792370B (en) * 2010-01-12 2014-08-06 弗劳恩霍弗实用研究促进协会 Audio encoder, audio decoder, method for encoding and audio information and method for decoding an audio information using a hash table describing both significant state values and interval boundaries
US8448033B2 (en) * 2010-01-14 2013-05-21 Mediatek Inc. Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) * 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
CN102412849A (en) * 2011-09-26 2012-04-11 中兴通讯股份有限公司 Coding method and coding device for convolutional code
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US20130326630A1 (en) * 2012-06-01 2013-12-05 Whisper Communications, LLC Pre-processor for physical layer security
US9053047B2 (en) * 2012-08-27 2015-06-09 Apple Inc. Parameter estimation using partial ECC decoding
RU2012146685A (en) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн DATABASE DETAILS DATABASE FOR DECODER BASED ON SPARED PARITY CONTROL
US9432053B1 (en) * 2014-07-07 2016-08-30 Microsemi Storage Solutions (U.S.), Inc. High speed LDPC decoder

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0611098A2 (en) * 1993-02-11 1994-08-17 AT&T Corp. Circular viterbi decoder for tail-biting convolutional codes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675968B1 (en) * 1991-04-23 1994-02-04 France Telecom METHOD FOR DECODING A CONVOLUTIVE CODE WITH MAXIMUM LIKELIHOOD AND WEIGHTING OF DECISIONS, AND CORRESPONDING DECODER.
FR2675971B1 (en) * 1991-04-23 1993-08-06 France Telecom CORRECTIVE ERROR CODING METHOD WITH AT LEAST TWO SYSTEMIC CONVOLUTIVE CODES IN PARALLEL, ITERATIVE DECODING METHOD, CORRESPONDING DECODING MODULE AND DECODER.
US5349589A (en) * 1991-07-01 1994-09-20 Ericsson Ge Mobile Communications Inc. Generalized viterbi algorithm with tail-biting
US5369671A (en) * 1992-05-20 1994-11-29 Hughes Aircraft Company System and method for decoding tail-biting code especially applicable to digital cellular base stations and mobile units
US5577053A (en) * 1994-09-14 1996-11-19 Ericsson Inc. Method and apparatus for decoder optimization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0611098A2 (en) * 1993-02-11 1994-08-17 AT&T Corp. Circular viterbi decoder for tail-biting convolutional codes

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
ANDERSON J B ET AL: "DECISION DEPTHS OF CONVOLUTIONAL CODES", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 35, no. 2, March 1989 (1989-03-01), pages 455 - 459, XP000048372 *
BAHL L R ET AL: "OPTIMAL DECODING OF LINEAR CODES FOR MINIMIZING SYMBOL ERROR RATE", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. IT-20, no. 2, March 1974 (1974-03-01), pages 284 - 287, XP000647243 *
BENEDETTO S ET AL: "Design of parallel concatenated convolutional codes", IEEE TRANSACTIONS ON COMMUNICATIONS, MAY 1996, IEEE, USA, vol. 44, no. 5, ISSN 0090-6778, pages 591 - 600, XP000587085 *
BENEDETTO S ET AL: "Performance evaluation of parallel concatenated codes", ICC 95 SEATTLE. COMMUNICATIONS - GATEWAY TO GLOBALIZATION. 1995 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (CAT. NO.95CH35749), PROCEEDINGS IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS ICC 95, SEATTLE, WA, USA, 18-22 JUNE 1995, ISBN 0-7803-2486-2, 1995, NEW YORK, NY, USA, IEEE, USA, pages 663 - 667 vol.2, XP000533097 *
BENEDETTO S ET AL: "Role of recursive convolutional codes in turbo codes", ELECTRONICS LETTERS, 25 MAY 1995, UK, vol. 31, no. 11, ISSN 0013-5194, pages 858 - 859, XP000519086 *
BERROU C ET AL: "NEAR SHANNON LIMIT ERROR - CORRECTING CODING AND DECODING: TURBO-CODES (1)", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), GENEVA, MAY 23 - 26, 1993, vol. 1 - 2 - 03, 23 May 1993 (1993-05-23), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 1064 - 1070, XP000371240 *
BIGLIERI E: "PARALLEL DECODING OF GENERALIZED CONCATENATED CODES", SIGNAL PROCESSING THEORIES AND APPLICATIONS, BARCELONA, SEPT. 18 - 21, 1990, vol. 3, 18 September 1990 (1990-09-18), TORRES L;MASGRAU E; LAGUNAS M A, pages 1939 - 1942, XP000365939 *
DIVSALAR D ET AL: "Turbo codes for PCS applications", ICC 95 SEATTLE. COMMUNICATIONS - GATEWAY TO GLOBALIZATION. 1995 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (CAT. NO.95CH35749), PROCEEDINGS IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS ICC 95, SEATTLE, WA, USA, 18-22 JUNE 1995, ISBN 0-7803-2486-2, 1995, NEW YORK, NY, USA, IEEE, USA, pages 54 - 59 vol.1, XP000532968 *
JOERSSEN O ET AL: "Terminating the trellis of turbo-codes", ELECTRONICS LETTERS, 4 AUG. 1994, UK, vol. 30, no. 16, ISSN 0013-5194, pages 1285 - 1286, XP000468789 *
ROBERTSON P: "ILLUMINATING THE STRUCTURE OF CODE AND DECODER OF PARALLEL", PROCEEDINGS OF THE GLOBAL TELECOMMUNICATIONS CONFERENCE (GLOBECOM), SAN FRANCISCO, NOV. 28 - DEC. 2, 1994, vol. 3 OF 3, 28 November 1994 (1994-11-28), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 1298 - 1303, XP000488744 *

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999007076A2 (en) * 1997-07-30 1999-02-11 Samsung Electronics Co., Ltd. Adaptive channel encoding method and device
WO1999007076A3 (en) * 1997-07-30 1999-09-16 Samsung Electronics Co Ltd Adaptive channel encoding method and device
EP0917294A1 (en) * 1997-11-18 1999-05-19 Koninklijke Philips Electronics N.V. Digital transmission system, decoder, and decoding method
FR2771228A1 (en) * 1997-11-18 1999-05-21 Philips Electronics Nv DIGITAL TRANSMISSION SYSTEM, DECODER, AND DECODING METHOD
JP2000004196A (en) * 1998-03-10 2000-01-07 Conexant Syst Inc Retransmission packet capture system under radio multiple service communication environment using turbo decoding
JP4612129B2 (en) * 1998-03-10 2011-01-12 ワイアヴ ソリューションズ、エルエルシー. Retransmission packet capture system in wireless multi-service communication environment using turbo decoding
US6920602B1 (en) 1998-03-31 2005-07-19 Samsung Electronics Co., Ltd. Turbo encoding/decoding device and method for processing frame data according to QoS
US6437714B1 (en) 1998-04-18 2002-08-20 Samsung Electronics, Co., Ltd. Channel encoding device and method for communication system
EP1480366A3 (en) * 1998-08-19 2010-11-24 Fujitsu Limited Error-correcting encoding apparatus
US8572467B2 (en) 1998-08-19 2013-10-29 Fujitsu Limited Error-correcting encoding apparatus
US8433982B2 (en) 1998-08-19 2013-04-30 Fujitsu Limited Error-correcting encoding apparatus
WO2000019618A1 (en) * 1998-09-29 2000-04-06 Nortel Networks Limited Interleaver using co-set partitioning
US6427214B1 (en) 1998-09-29 2002-07-30 Nortel Networks Limited Interleaver using co-set partitioning
FR2789824A1 (en) * 1999-02-12 2000-08-18 Canon Kk Residual error correction method for output of turbo-coder in transmitter-receiver communication systems, involves storing binary data in matrix form and applying error correcting code to create formatted matrix
US6578171B1 (en) 1999-02-12 2003-06-10 Canon Kabushiki Kaisha Method of correcting residual errors at the output of a turbodecoder
FR2790621A1 (en) * 1999-03-05 2000-09-08 Canon Kk Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period
US6625762B1 (en) 1999-03-05 2003-09-23 Canon Kabushiki Kaisha Interleaving device and method for turbocoding and turbodecoding
GB2352943A (en) * 1999-07-21 2001-02-07 Mitsubishi Electric Corp Turbo-code decoder having reduced complexity
GB2352943B (en) * 1999-07-21 2002-04-24 Mitsubishi Electric Corp Turbo-Code Error Correcting Decoder and Turbo-Code Error Correction Decoding Method
US6757865B1 (en) 1999-07-21 2004-06-29 Mitsubishi Denki Kabushiki Kaisha Turbo-code error correcting decoder, turbo-code error correction decoding method, turbo-code decoding apparatus, and turbo-code decoding system
US8533568B2 (en) 2004-07-21 2013-09-10 Qualcomm Incorporated LDPC encoding methods and apparatus
US8683289B2 (en) 2004-07-21 2014-03-25 Qualcomm Incorporated LDPC decoding methods and apparatus
US8595569B2 (en) 2004-07-21 2013-11-26 Qualcomm Incorporated LCPC decoding methods and apparatus
US8175180B2 (en) 2008-02-29 2012-05-08 Industrial Technology Research Institute Pre-encoding and pre-decoding apparatuses and methods thereof
EP2096811A2 (en) * 2008-02-29 2009-09-02 Industrial Technology Research Institute Pre-encoding and pre-decoding apparatuses and methods thereof
EP2096811A3 (en) * 2008-02-29 2012-02-08 Industrial Technology Research Institute Pre-encoding and pre-decoding apparatuses and methods thereof
EP2439868A1 (en) * 2010-10-08 2012-04-11 Research in Motion Limited Message rearrangement for improved code performance
US8769365B2 (en) 2010-10-08 2014-07-01 Blackberry Limited Message rearrangement for improved wireless code performance
US8972814B2 (en) 2010-10-08 2015-03-03 Blackberry Limited Message rearrangement for improved wireless code performance
USRE48767E1 (en) 2010-10-08 2021-10-05 Blackberry Limited Message rearrangement for improved wireless code performance
US9043667B2 (en) 2011-11-04 2015-05-26 Blackberry Limited Method and system for up-link HARQ-ACK and CSI transmission
US10178651B2 (en) 2012-05-11 2019-01-08 Blackberry Limited Method and system for uplink HARQ and CSI multiplexing for carrier aggregation

Also Published As

Publication number Publication date
JP3857320B2 (en) 2006-12-13
AU716645B2 (en) 2000-03-02
CZ407397A3 (en) 1998-06-17
CN1189935A (en) 1998-08-05
KR19990022971A (en) 1999-03-25
NO975966L (en) 1997-12-18
DE69736881D1 (en) 2006-12-14
CA2221295C (en) 2005-03-22
CZ296885B6 (en) 2006-07-12
PL183537B1 (en) 2002-06-28
BR9702156A (en) 1999-07-20
AR006767A1 (en) 1999-09-29
PL183239B1 (en) 2002-06-28
HU220815B1 (en) 2002-05-28
ZA973217B (en) 1997-12-18
KR100522263B1 (en) 2006-02-01
MY113013A (en) 2001-10-31
HUP9901440A2 (en) 1999-08-30
HUP9901440A3 (en) 2000-03-28
UA44779C2 (en) 2002-03-15
EP0834222A1 (en) 1998-04-08
CN1111962C (en) 2003-06-18
NO975966D0 (en) 1997-12-18
DE69736881T2 (en) 2007-06-21
EP0834222B1 (en) 2006-11-02
IL122525A0 (en) 1998-06-15
US5721745A (en) 1998-02-24
ID16464A (en) 1997-10-02
CA2221295A1 (en) 1997-10-30
AU2459197A (en) 1997-11-12
PL184230B1 (en) 2002-09-30
PL323524A1 (en) 1998-03-30
RU2187196C2 (en) 2002-08-10
JPH11508439A (en) 1999-07-21

Similar Documents

Publication Publication Date Title
EP0834222B1 (en) Parallel concatenated tail-biting convolutional code and decoder therefor
Divsalar et al. Hybrid concatenated codes and iterative decoding
US6289486B1 (en) Adaptive channel encoding method and device
EP0997031B1 (en) Adaptive channel encoding method and device
US6530059B1 (en) Tail-biting turbo-code encoder and associated decoder
Robertson Improving decoder and code structure of parallel concatenated recursive systematic (turbo) codes
US20010010089A1 (en) Digital transmission method of the error-correcting coding type
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
US7027521B2 (en) Digital transmission method of the error correcting coding type
US6961894B2 (en) Digital transmission method of the error-correcting coding type
EP1119915B1 (en) Hybrid interleaver for turbo codes
Ambroze et al. Iterative MAP decoding for serial concatenated convolutional codes
Sklar Turbo code concepts made easy, or how I learned to concatenate and reiterate
Devamane et al. Performance evaluation of interleavers for Turbo codes
Viterbi Approaching the Shannon limit: Theorist’s dream and practitioner’s challenge
Sikora et al. Serial concatenation with simple block inner codes
Talakoub et al. A linear Log-MAP algorithm for turbo decoding over AWGN channels
Fanucci et al. VLSI design of a high speed turbo decoder for 3rd generation satellite communication
Dave et al. Turbo block codes using modified Kaneko's algorithm
Dannan et al. Performance comparison for serial concatenated block convolutional codes when sequentially and iteratively decoded
Soleymani et al. Turbo Decoding Principles
GB2409618A (en) Telecommunications decoder device
Wang et al. Analysis of iterative decoding for serial concatenated convolutional codes
JP2001326577A (en) Device and method for directly connected convolutional encoding

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 97190399.9

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR CA CN CZ HU IL JP KR MX NO PL RU UA

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

ENP Entry into the national phase

Ref document number: 2221295

Country of ref document: CA

Ref document number: 2221295

Country of ref document: CA

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 1997 538137

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1997920377

Country of ref document: EP

Ref document number: 1019970709441

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: PV1997-4073

Country of ref document: CZ

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1997920377

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: PV1997-4073

Country of ref document: CZ

WWP Wipo information: published in national office

Ref document number: 1019970709441

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1019970709441

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: PV1997-4073

Country of ref document: CZ

WWG Wipo information: grant in national office

Ref document number: 1997920377

Country of ref document: EP