throbber

`
`APPLICATION FOR
`
`UNITED STATES PATENT
`
`IN THE NAME OF
`
`Dariush Divsalar
`
`Fabrizio Pollara
`
`of
`
`Jet Prepulsion Laboratory
`California Institute of Technology
`
`FOR
`
`HYBRID CONCATENATED CODES
`AND ITERATIVE DECODING
`
`
`
`
`
`“1:13"‘'1':1Z11:;.131{'3113.1$111
`
`1t.
`
`it?iii‘iaES'TIF?
`
`Scott Harris & John Land
`RD
`FISH & RICHA SON
`4225 Executive Square, Suite 1400
`La Jolla, CA 92037
`(619) 678-5070 voice
`19
`- 0
`fax
`) 678 S 99
`(6
`
`,5.
`__
`E 2
`A E
`A E kg? 25'
`Date ofDeposit:
`I hereby cenify under 37 CFR 1.1m tthis ca” upondence is being deposited
`with the United States Postal Service as xprm Mail Post OITIce To
`Addressee w
`Ificicnt postage on the flu:
`ridiculed above and is addressed
`to the Con
`nergfl‘altnluml
`rnd
`irks, Washington. DC 2023].
`'
`
`
`Christa
`er llnime
`
`DOCKET NO.
`
`06816/043001
`
`EXPRESS MAIL NO. EM122760575US
`
`ERICSSON EXHIBIT 1002
`
`

`

`
`
`-1-
`
`
`
`HYBRID CONCATENATED CODES AND ITERATIVE DECODING
`
`ORIGIN OF INVENTION
`
`The invention described herein was made in the performance of work under a NASA
`
`contract, and is subject to the provisions of Public Law 96-517 (35 USC 202) in which
`the Contractor has elected to retain title.
`
`BACKGROUND OF THE INVENTION
`
`1.
`
`Field ofthe Invention
`
`This invention relates to error correcting codes.
`
`2.
`
`Description ofRelated Art
`
`10
`
`15
`
`20
`
`Turbo codes are binary error-correcting codes built fi'om the parallel concatenation of two
`
`recursive systematic convolutional codes and using a feedback decoder. Recently
`
`introduced be Berrou, et al. (“Near Shannon limit error-correcting coding and decoding:
`
`Turbo-codes”, ICC ’93, Conf Rec. pp. 1064-1070, Geneva, May 1993), the basics of such
`
`codes are described further in US. Patent Nos. 5,446,747 and 5,406,570.
`
`The reference and patents to Berrou describe a basic turbo code encbder architecture of
`
`the type shown in the block diagram in FIGURE 1. As described in Berrou '747, FIGURE
`
`1 shows a block diagram of a coder in an example where two distinct codes are used in
`
`parallel. Each source data element d to be coded is coupled to a first systematic coding
`
`module 11 and, through-a temporal interleaving module 12, to a second systematic coding
`
`module 13. The coding modules 11 and 13 may be of any known systematic type, such
`
`as convolutional coders, that take into account at least one of the preceding source data
`
`elements in order to code the source data element (1. The codes implemented in coding
`modules 11 and 13 may be identical or different.
`
`
`
`

`

`
`
`-2-
`
`The input information bits d feed the first coding module 11 and, after being scrambled
`by the interleaving module 12, enter the second coding module 13. A codeword of a
`parallel concatenated code consists of the information input bits to the first encoder
`followed by the parity check bits of both encoders.
`
`Under this architecture, there are at least two coded data elements YI and Y2, coming from
`distinct coders 11 and 13, associated with each source data element d. A data element X,
`equal to the source data element d, is also transmitted. This characteristic was described
`in Berrou '747 as “necessary for the making of the decoding modules”.
`
`The transmitted coded data elements and source data element become received data
`elements at a decoder. The task of the decoder is to re-construct the original data source
`d bit stream from the received data elements, which may have been corrupted by noise.
`
`Thus, an important aspect of prior art turbo code encoders is that they transmit a data
`element X equal to input source data element d.
`
`The present invention results from observation that the prior art fails to achieve a simpler
`architecture for the encoder, and fails to provide as robust encoding as is required or
`desiredin certain environments, including low-power, constrained-bandwidth uses, such
`as deep space communications and personal communication devices, and high-noise
`environments.
`
` 1O
`
`15
`
`
`
`

`

`
`
`3!till!E33$3427.5:It]?
`
`SUMMARY OF THE INVENTION
`
`improved turbo code apparatuses and
`The present invention encompasses several
`methods. In a first class ofturbo code encoders, a data source d is applied to two or more
`
`encoders with an interleaver between the data source and each of the second and
`
`subsequent encoders. Each of the encoders outputs a turbo code element which may be
`transmitted or stored. A parallel decoder provides the ability to decode the turbo code
`
`elements to derive the original source information d without use of a received data signal
`corresponding to d. The output of the turbo code encoder optionally may be coupled to
`a multilevel trellis-coded modulator that provides excellent performance.
`
`In a second class of turbo code encoders, a data source d is applied to two or more
`
`encoders with an interleaver between the data source and each of the second and
`
`subsequent encoders. Each of the encoders outputs a turbo code element. In addition, the
`original data source dis output from the encoder. All of the output elements are coupled
`to a multilevel trellis-coded modulator.
`
`In a third class of turbo code encoders, at least two data sources are applied to two or
`
`more encoders with an interleaver between each data source and each of the second and
`
`subsequent encoders. Each of the encoders outputs a plurality of turbo code elements
`which may be transmitted or stored. The output ofthe turbo code engoder optionally may
`be coupled to a multilevel trellis-coded modulator.
`
`In a fourth class of turbo code encoders, at least two data sources are applied to two or
`
`more encoders with at least two interleavers between each data source and each of the
`
`second and subsequent encoders. Each of the encoders outputs a plurality of turbo code
`
`elements which may be transmitted or stored. The output of the turbo code encoder
`
`optionally may be coupled to a multilevel trellis-coded modulator.
`
`In a fifth class of turbo code encoders, at least one data source is applied to one or more
`
`serially linked encoders through at least one interleaver.
`
`10
`
`15
`
`20
`
`25
`
`
`
`

`

`
`
`
`
`-4-
`
`The invention also encompasses a novel method of terminating or resetting a turbo coder,
`and a general parallel decoder structure.
`
`The details of the preferred embodiments of the present invention are set forth in the
`
`accompanying drawings and the description below. Once the details of the invention are
`
`known, numerous additional innovations and changes will become obvious to one skilled
`in the art.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIGURE 1 is a block diagram of a prior art turbo code encoder.
`
` 10
`
`FIGURE 2 is a block diagram of a general model of a turbo code encoder having three
`codes.
`
`FIGURE 3 is a matrix of a weight-4 sequence.
`
`FIGURE 4 is a block diagram of an input trellis termination method for turbo code
`
`encoders in accordance with the present invention.
`
`\.
`
`15
`
`FIGURE 5 is a block diagram of a turbo encoder showing output only of encoded parity
`elements.
`
`FIGURE 6A is a block diagram of a third embodiment of the present invention, showing
`output of multiple encoded elements derived from multiple input data sources, the use of
`
`multiple interleavers on at least one data source, and an optional multilevel trellis-coded
`modulator.
`
`20
`
`FIGURE 6B is a block diagram of a variation of the coder shown in FIGURE 6A,
`showing a self-concatenating code.
`
`
`
`

`

`
`
`-5-
`
`FIGURE 6B2 is a block diagram showing a variation of a self-concatenated code, where
`
`the encoder has at least one input data line d, and d is sent to the modulator.
`
`FIGURE 6C is a block diagram of a fourth embodiment ofthe present invention, showing
`
`output of multiple encoded elements derived from multiple input data sources, the use of
`
`multiple interleavers on at least one data source, and an optional multilevel trellis-coded
`modulator.
`
`FIGURE 7A is a block diagram of a serial encoder in accordance with the present
`invention.
`
`10
`
`FIGURE 7B is a block diagram of a parallel-serial encoder in accordance with the present
`invention.
`
`FIGURE 7C is a block diagram of a serial-parallel hybrid encoder in accordance with the
`present invention.
`
`FIGURE 8 is a diagram showing the performance of various turbo codes.
`
`15
`
`FIGURE 9 is a block diagram of a first rate 1/2 turbo coder in accordance with the present
`'\.
`invention.
`
`FIGURE 10 is a block diagram of a second rate 1/2 turbo coder in accordance with the
`
`present invention.
`
`FIGURE 11 is a block diagram of a rate 1/3 turbo coder in accordance with the present
`invention.
`
`20
`
`FIGURE 12 is a block diagram of a rate 1/4 turbo coder in accordance with the present
`invention.
`
`
`
`

`

`
`
`-6-
`
`
`
`FIGURE 13 is a diagram showing the performance of various rate 1/4 turbo codes.
`
`FIGURE 14 is a diagram showing the performance of various turbo codes with short
`block sizes.
`
`FIGURE 15 is a diagram showing the performance of various three code turbo codes.
`
`5
`
`FIGURE 16 is a block diagram of a prior art decoder structure.
`
`FIGURE 17 is a block diagram of a parallel decoder structure in accordance with the
`present invention.
`
`FIGURE 18 is a block diagram of a channel model.
`
`FIGURE 19 is a signal flow graph for extrinsic information in a decoder.
`
`10
`
`FIGURE 20A is a block diagram of a single parallel block decoder in accordance with the
`present invention.
`
`FIGURE 20B is a block diagram showing a multiple turbo code decoder fona three code
`system, using three blocks similar to the decoder in FIGURE 20A.
`
`FIGURE 20C is a block diagram showing a multiple turbo code decoder for a three code
`
`15
`
`system, using three blocks similar to the decoder in FIGURE 20A, and having a
`switchable serial decoder mode.
`
`FIGURE 20D is a block diagram showing a decoder corresponding to the self-concatenat-
`ing coder of FIGURE 6B.
`
`

`

`-7.
`
`FIGURE 20D2 is a block diagram showing a decoder corresponding to the self-concaten-
`ated coder of FIGURE 6B2.
`
`FIGURE 20E is a block diagram showing a decoder corresponding to the serial coder of
`FIGURE 7A.
`
`FIGURE 20E2 shows a block diagram of an original and a modified MAP algorithm.
`
`FIGURE 20F is a block diagram showing a decoder corresponding to the serial coder of
`FIGURE 7B.
`
`FIGURE 20G is a block diagram showing a decoder corresponding to the hybrid
`
`concatenated code (serial-parallel, type II) of FIGURE 7C.
`
`FIGURE 21 is a block diagram of a 16 QAM turbo trellis-coded modulation coder in
`
`accordance with the present invention.
`
`FIGURE 22 is a diagram showing the BER performance of the coder shown in FIGURE
`21.
`
`FIGURE 23 is a block diagram of an 8 PSK turbo trellis-coded modulation}! coder in
`
`accordance with the present invention.
`
`FIGURE 24 is a diagram showing the BER performance of the coder shown in FIGURE
`23.
`
`FIGURE 25 is a block diagram of a 64 QAM turbo trellis—coded modulation coder in
`
`accordance with the present invention.
`
`
`
`10
`
`15
`
`

`

`
`
`.3-
`
`FIGURE 26 is a diagram showing the BER performance of the coder shown in FIGURE
`25.
`
`FIGURE 27 is a block diagram of general embodiment of the present invention, showing
`
`output of the source data element and encoded elements to a multilevel trellis-coded
`modulator.
`
`FIGURE 28 is a block diagram showing a general decoder for the TCM encoded output
`of, for example, FIGURES 21, 23, and 25.
`
`Like reference numbers and designations in the various drawings indicate like elements.
`
` I”:5:=3:
`
`sf“-
`i=5T
`
`

`

`"ll“.9-
`i5.
`:1
`I11.
`
`till#1:.iiiFiil
`
`w...“
`
`"'Hill
`1.]"''3-
`
`r
`
`mill
`15.31:“-
`[1"
`
`-9-
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`Throughout this description, the preferred embodiment and examples shown should be
`considered as exemplars, rather than as limitations on the present'invention.
`
`Overview
`
`Turbo codes are believed to be able to achieve near Shannon-limit error correction
`performance with relatively simple component codes and large interleavers. The present
`invention encompasses several novel designs for turbo code encoders and a corresponding
`decoder that is suitable for error correction in high noise or constrained-bandwidth, low
`power uses, such as personal communications systems (PCS) applications, where lower
`rate codes can be used.
`
`For example, in multiple-access schemes like CDMA (Code Division Multiple Access),
`the capacity (maximum number of users per cell) can be expressed as:
`
`C=EJND +1
`
`(1)
`
`where n is the processing gain and Eb/Na is the required signal-to-noise ratio to achieve
`a desired bit error rate (BER) performance (Eb: energy received per useful bit; No:
`monolateral spectral density of noise). For a specified BER, a smaller required E/N,
`implies a larger capacity or cell size. Unfortunately, to reduce E,/N0, it is necessary to use
`very complex codes (e.g., large constraint length convolutional codes). However, the
`present invention includes turbo codes that are suitable for CDMA and PCS applications
`and which can achieve superior performance with limited complexity. For example, if a
`(7, 1/2) convolutional code is used at BER=10'3 , the capacity is C= 0.511. However, iftwo
`(5, 1/3) punctured convolutional codes or three (4, 1/3) punctured codes are used in a
`
`turbo encoder structure in accordance with the present invention, the capacity can be
`increased to C = 0.811 (with l92-bits and 256-bits interleavers, which correspond to
`9.6 Kbps and 13 Kbps with roughly 20ms frames). Higher capacity can be obtained with
`
`

`

`
`
`-10-
`
`larger interleavers. Note that low rate codes can be used for CDMA since an integer
`number of chips per coded symbol are used and bandwidth is defined mainly by chip rate.
`
`Implementation
`
`The invention may be implemented in hardware or software, or a combination of both. In
`the preferred embodiment, the fimctions of a turbo coder and decoder designed in
`conformance with the principals set forth herein are implemented as one or more
`integrated circuits using a suitable processing technology (e.g., CMOS).
`
`As another example, the invention may be implemented in computer programs executing
`on programmable computers each comprising a processor, a data storage system
`(including volatile and non-volatile memory and/or storage elements), at least one input
`device, and at least one output device. Program code is applied to input data to perform
`the functions described herein and generate output information. The output information
`is applied to one or more output devices, in known fashion.
`
`Each such program may be implemented in a high level procedural or object oriented
`programming language to communicate with a computer system. However, the programs
`can be implemented in assembly or machine language, if desired. In any case, the
`language may be a compiled or interpreted language.
`
`Each such computer program is preferably stored on a storage media or device (e.g., ROM
`or magnetic disk) readable by a general or special purpose programmable computer, for
`configuring and operating the computer when the storage media or device is read by the
`computer to perform the procedures described herein. The inventive system may also be
`considered to be implemented as a computer-readable storage medium, configured with
`a computer program, where the storage medium so configured causes a computer to
`operate in a specific and predefined manner to perform the functions described herein. An
`example of one such type of computer is a personal computer.
`
` 10
`
`15
`
`20
`
`25
`
`

`

`
`
`Turbo Code Encoders
`
`Following is a discussion of several general considerations in designing turbo code
`encoders and decoders in accordance with the present invention. 'Since these consider-
`ations pertain to the novel designs described below as well as prior art designs in some
`cases, a simple 3-code encoder, as shown in FIGURE 2, will be used as an initial
`example.
`
`
`
`10
`
`15
`
`20
`
`25
`
`General Structure ofan Encoder
`
`In FIGURE 2, the turbo code encoder contains three recursive binary convolutional
`
`each encoder) respectively. In general, the three component encoders may not be identical
`and may not have identical code rates. The information bit sequence u = (ul,
`, u”) of
`length N is applied to the component Encoder 1 through interleaver n1 (normally set to the
`identify fimction), which outputs a sequence 11,. The component Encoder 1 produces two
`output sequences, x1, and X”, (the subscript 1' stands for “information” bits, while the
`subscript p stands for “parity” bits). The component Encoder 2 operates on a reordered
`sequence ofinformation bits, u2, produced by an interleaver (also known as a permuter),
`11:2, of length N, and outputs the sequence X». The component Encoder 3 operates on a
`reordered sequence ofinformation bits, us, produced by an interleaver, 7g, of length N, and
`outputs the sequence X». Similarly, subsequent component encoders operate on a
`reordered sequence of information bits, uj , produced by interleaver 7cj
`, and output the
`sequence ij.
`
`In the preferred embodiment, each interleaver is a pseudo-random block scrambler
`defined by a permutation ofN elements with no repetitions. That is, a complete block is
`read into an interleaver and read out in a specified (fixed) random order.
`
`In general, a decoder (discussed more fully below) receives the transmitted sequences x1,-
`and xJ-p as received sequences y,. As noted above, the taSk of the decoder is to re-construct
`the original data source d bit stream from the received data elements, which may have
`
`
`
`

`

`-12-
`
`been corrupted by noise. In the present invention, the encoder does not need to transmit
`the original data sequence. If one or more encoder outputs, including possibly x“, is
`punctured (not transmitted) based on a predetermined pattern, the punctured positions will
`be filled with erasures at the receiver.
`
`FIGURE 2 shows an example where a rate r = l/n = 1/4 code is generated by three
`component codes with M, = M) = M3 = M = 2, producing the outputs:
`x“ = u
`
`X”, = u ' gl/g.
`
`xzp = “2 'gA/ga
`
`Xsp = u3 'gI/ga
`
`(1:1 is assumed to be an identity, i. e., no permutation), where the generator polynomials
`g0 and g, have octal representation (7)96“, and (5)06“, respectively. Note that various code
`rates can be obtained by proper puncturing of xlp, xzp, x3,” and even X], if a decoder in
`accordance with the present invention is used (see below).
`
`Design ofPreferred Constituent Encoders
`
`characteristics over the region of interest).
`
`A design for constituent convolutional codes, which are not necessarily optimum
`convolutional codes, was originally reported in S. Benedetto and G. Montorsi, “Design
`of Parallel Concatenated Convolutional Codes” (to be published in IEEE Transactions
`on Communications, 1996) for rate l/n codes. We extend those results to rate b/n codes.
`It has been suggested (without proof) that good random codes are obtained if g, is a
`primitive polynomial. This suggestion, used in the report cited above to obtain “good”
`rate ]/2 constituent codes, will be used in this article to obtain “good” rate 1/3, 2/3, 3/4,
`and 4/5 constituent codes. By “good” codes, we mean codes with a maximum effective
`free distance dzf, that is, those codes that maximize the minimum output weight for
`weight-2 input sequences (because this weight tends to dominate the performance
`
`

`

`
`
`
`
`-13-
`
`Maximizing the weight of output codewords corresponding to weight-2 data sequences
`gives the best BER performance for a moderate bit signal-to-noise ratio (SNR) as the
`random interleaver size N gets large. In this region, the dominant term in the expression
`for bit error probability of a turbo code with q constituent encoders is:
`
`Pb = i Q 2r_b(f (115a)
`
`(2)
`
`is the minimum parity-weight (weight due to parity checks only) of the
`where (13.5
`codewords at the output of thejth constituent code due to weight-2 data sequences, and
`[i is a constant independent of N. Define d],2 = “i5 + 2 as the minimum output weight
`including parity and information bits, ifthejth constituent code transmits the information
`(systematic) bits. Usually one constituent code transmits the information bits (i=1), and
`the information bits of other codes are punctured. Definedef= 8:1 dj’; + 2 as the
`effective free distance of the turbo code and l/N‘Tl as the “interleaver’s gain.” We have
`the following bound ondjs for any constituent code: for any r = b/(b+1) recursive
`systematic convolutional encoder with generator matrix:
`
`111(1))
`
`how)
`
`
`h2(D)
`
`G = [W h0(D)
`
`(3)
`
`
`MD)
`
`h()(D)
`
` 10
`
`15
`
`where IN is the identity matrix, deg[h,.(D) s m, h,(D) at h0(d), i= 1,2,...,b, and h0(D) is
`a primitive polynomial of degree m, the following upper bound holds:
`
`
`
`

`

`
`
`J+2
`
`(4)
`
`‘
`
`5
`
`10
`
`A corollary of this is that, for any r=b/n recursive systematic convolutional code with b
`
`inputs, b systematic outputs, and n-b parity output bits using a primitive feedback
`generator, we have:
`
`dfsioibgz—MJQM—b)
`
`(5)
`
`There is an advantage to using b > 1, since the bound in the above equation for rate b/bn
`codes is larger than the bound for rate l/n codes. Examples of codes that meet the upper
`bound for b/bn codes are set forth below.
`
`A. Best Rate b/b + 1 Constituent Codes
`
`We obtained the best rate 2/3 codes as shown in Table 1, where d2 =45 + 2. The
`'
`minimum-weight codewords corresponding to weight-3 data sequences are denoted by
`(1;, d,,,,,, is the minimum distance ofthe code, and k = m + 1 in all the tables. By “best” we
`mean only codes with a large d2 for a given m that result in a maximum eflective free
`
`distance. We obtained the best rate 3/4 codes as shown in Table 2 and the best rate 4/5
`codes as shown in Table 3.
`
` :3fl
`LIB.
`g
`Mi
`ii";
`
`‘3'
`
`
`
`5 ‘
`
`3
`I}?
`:2
`3:?
`iii.
`
`

`

`-15-
`
`Table 1. Best rate 2/3 constituent codes.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`h0=13
`h,=15
`
`ho=13
`h,=15
`
`
`
`
`h0=23
`
`h,=35
`
`h2=33
`
`h0=23
`h,=35
`h2=27
`
`
`h2=21
`
`ho=23
`
`h,=35
`
`1O
`
`15
`
`

`

`-16-
`
`B. Best Punctured Rate 1/2 Constituent Codes
`
`A rate 2/3 constituent code can be derived by puncturing the parity bit of a rate 1/2
`recursive systematic convolutional code using, for example, a pattern P = [10]. A
`puncturing pattern P has zeros where parity bits are removed.
`
`Consider a rate 1/2 recursive systematic convolutional code (1 ,g,(D)/(g0(D)). For an input
`u(D), the parity output can be obtained as:
`
`D =
`J“ )
`
`“(0ng (D)
`giro)
`
`(6)
`
`We would like to puncture the output x(D) using, for example, the puncturing pattern
`P[10] (decimation by 2) and obtain the generator polynomials ho(D), h,(D), and hz(D) for
`the equivalent rate 2/3 code:
`
`G =
`
`
`h,(D)
`
`how)
`
`
`hzw)
`
`h0(D)
`
`(7)
`
`We note that any polynomialflD) = 2 (1,0 ’, a, E GF(2), can be written as: f(D) =f,(D2)
`+ Df2(D2), where f,(D2) corresponds to the even power terms of f(D), and Df2(D2)
`corresponds to the odd power terms off(D). Now, if we use this approach and apply it to
`u(D), gl(D), and go(D), then we can rewrite the equation for x(D) as:
`
`(“1(1) 2) +Du2(D 2))(g1 [(0 2)+D812(D 2)?
` xl(D 2) +Dx2 D2):
`801(1) 2) +Dg02(D 2)
`
`(3)
`
`
`
` E -
`
`__‘-
`4’?
`i=4:
`
`, '
`
`"e—E
`
`10
`
`

`

`-17-
`
`where xl(D) and x2(D) correspond to the punctured output x(D) using puncturing patterns
`
`P[l 0] and P[01], respectively. If we multiply both sides of the above equation by (go,(Dz)
`
`+ Dgoz(D2) and equate the even and the odd power terms, we obtain two equations in two
`
`unknowns, namely xl(D) and xz(D). For example, solving for xl(D), we obtain:
`
`
`MD) +
`MD)
`_
`MD) — 141(0) ho(D)
`u2(D) ho(D)
`
`5
`
`where h0(D) = g0(D) and:
`
`h1(D) =g11(D)g01(D) + Dg12(D)g02(D)
`
`h2(0) =812(D)g01(D) + Dg1.(D)goz(D)
`
`(9)
`
`(10)
`
`(11)
`
`From the second equation above, it is clear that th = 0. A similar method can be used to
`
`show that for P[01] we get hm = 0. These imply that the conditions that hio=l and hm=l
`
`will be violated. Thus, we have the following theorem: if the parity puncturing pattern is
`
`10
`
`P = [10] or P = [01], then it is impossible to achieve the upper bound on d2 =djf; + 2 for
`rate 2/3 codes derived by puncturing rate 1/2 codes.
`
`The best rate 1/2 constituent codes with puncturing pattern P = [10] that achieve the
`
`largest d1 are given in Table 4.
`
` 5:_==.
`t:E1:531i175i=3;i"'
`
`m a
`
`
`
`

`

`
`
`.18-
`
`Table 4. Best rate 1/2 punctured constituent codes.
`
`
`
`
`
`
`
`
`
`
`C.
`
`Best Rate I/n Constituent Codes
`
`As known in the art, for rate I/n codes, the upper bound for b=l reduces to:
`
`c155 s (n—1)(2""1+2)
`
`(12)
`
`Based on this condition, we have obtained the best rate 1/3 and 1/4 codes without parity
`repetition, as shown in Tables 5 and 6, where a?2 =a}; + 2 represents the minimum output
`weight given by weight-2 data sequences. The best nonpunctured rate 1/2 constituent
`codes have been reported by S. Benedetto er al., supra.
`
`"1v
`
`fiflfiflflmmfififlfififlflh
`
`10
`
`15
`
`Table 5. Best rate 1/3 constituent codes.
`
`Code generator
`
`
`
`
`
`
`
`
`
`
`

`

`
`
`.19-
`
`Table 6. Best rate 1/4 constituent codes.
`
`
`Code generator
`
`
`
`
`
`
`
`
`
`
`
`10
`
`15
`
`20
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`General Interleaver Design Considerations
`
`In order to estimate the performance of a code, it is necessary to have information about
`
`its minimum distance, weight distribution, or actual code geometry, depending on the
`
`accuracy required for the bounds or approximations. The challenge is in finding the
`
`pairing of codewords from each individual encoder, induced by a particular set of
`
`interleavers. We have found that it is best to avoid joining low-weight codewords from
`
`one encoder with low-weight words fi'om the other encoders. In the example of FIGURE
`
`2, the component codes have minimum distances 5, 2, and 2. This will produce a worst-
`
`case minimum distance of 9 for the overall code. Note that this would be unavoidable if
`
`the encoders were not recursive since, in this case, the minimum weight word for all three
`
`encoders is generated by the input sequence 11 = (00. . .0000100. ..000) with a single “1”,
`
`which will appear again in the other encoders, for any choice of interleavers. This
`
`motivates the use of recursive encoders, where the key ingredient is the recursiveness and
`
`not the fact that the encoders are systematic. For this example; the input sequence u =
`
`(00...00100100...000) generates a low-weight codeword with weight 6 for the first
`
`encoder. If the interleavers do not “break” this input pattern, the resulting codeword’s
`
`weight will be 14. In general, weight-2 sequences with 2+3r zeros separating the 1’s
`
`would result in a total weight of 14 + 6t if there were no permutations. By contrast, if the
`
`number of zeros between the ones is not of this form,
`
`the encoded output
`
`is
`
`
`
`
`
`

`

`nonterminating until the end of the block, and its encoded weight is very large unless the
`sequence occurs near the end of the block.
`
`With permutations before the second and third encoders, a weight-2 sequence with its 1’s
`separated by 2 + 3!, zeros will be permuted into two other weight-2 sequences with 1’s
`separated by 2 + 3t, zeros, where i= 2, 3, and where each I, is defined as a multiple of 1/3.
`If any I, is not an integer, the corresponding encoded output will have a high weight
`because then the convolutional code output is nonterrninating (until the end ofthe block).
`Ifall t,’s are integers, the total encoded weight will be 14 + 22,1, 1,. Thus, one of the
`considerations in designing the interleaver is to avoid integer triplets (1,, 1,, 1,) that are
`simultaneously small in all three components. In fact, it would be nice to design an
`interleaver to guarantee that the smallest value oni, I, (for integer r,) grows with the
`block size N.
`
`For comparison, consider the same encoder structure in FIGURE 2, except with the roles
`of g, and g, reversed. Now the minimum distances of the three component codes are 5,
`3, and 3, producing an overall minimum distance of 11 for the total code without any
`permutations. This is apparently a better code, but it turns out to be inferior as a turbo
`code. This paradox is explained by again considering the critical weight-2 data sequences.
`For this code, weight-2 sequences with l + 2!, zeros separating the two 1’s produce self-
`terminating output and, hence, low-weight encoded words. In the turbo encoder, such
`sequences will be permuted to have separations l + 2t,, where i = 2, 3, for the second and
`third encoders, but each I, is now defined as a multiple of 1/2. Now the total encoded
`
`weight for integer triplets (1,, (2, 5) is 11 + 2 21, t,. Notice that this weight grows only
`half as fast with2?_, t, as the previously calculated weight for the original code. If
`,1,
`t, can be made to grow with block size by the proper choice of an interleaver, then
`clearly it is important to choose component codes that cause the overall weight to grow
`as fast as possible with the individual separations 1,. This consideration outweighs the
`criterion of selecting component codes that would produce the highest minimum distance
`if unpermuted.
`
`10
`
`15
`
`20
`
`25
`
` In:
`
`a,
`
`,
`
`1“:
`a
`
`r.’atu
`
`I5“
`ii.
`
`

`

`
`
`-21-
`
`
`
`There are also many weight-n, n = 3, 4, 5,
`
`.. ., data sequences that produce self-
`
`terminating output and, hence, low encoded weight. However, as argued below, these
`
`sequences are much more likely to be broken up by random interleavers than the weight-2
`
`sequences and are, therefore, likely to produce nonterrninating output from at least one
`
`of the encoders. Thus, turbo code structures that would have low minimum distances if
`
`unpermuted can still perform well if the low-weight codewords of the component codes
`
`are produced by input sequences with weight higher than two.
`
`10
`
`15
`
`20
`
`25
`
`We briefly examine the issue of whether one or more random interleavers can avoid
`
`matching small separations between the 1’s of a weight-2 data sequence with equally
`
`small separations between the 1’s of its permuted version(s). Consider for example a
`
`particular weight-2 data sequence (...001001000...) which corresponds to a low weight
`
`codeword in each of the encoders of FIGURE 2. If we randomly select an. interleaver of
`
`size N, the probability that this sequence will be permuted into another sequence of the
`
`same form is roughly 2/N (assuming thatN is large, and ignoring minor edge effects). The
`
`probability that such an unfortunate pairing happens for at least one possible position of
`
`the original sequence within the block size of N, is approximately 1 - (l - 2/N)” 5* l -
`e‘z. This implies that the minimum distance of a two-code turbo code constructed with a
`
`random permutation is not likely to be much higher than the encoded weight of such an
`
`unpermuted weight-2 data sequence, e.g., 14 for the code in FIGURE 2. (For the worst
`
`case permutations, the d ofthe code is still 9, but these permutations are highly unlikely
`
`if chosen randomly). By contrast, if we use three codes and two different interleavers, the
`
`probability that the particular sequence above will be reproduced by both interleavers is
`
`only (2/N)2. Now the probability of finding such an unfortunate data sequence somewhere
`
`within the block of size N is roughly 1 — [l - (2/N)2]"' = 4/N. Thus it is probable that a
`
`three-code turbo code using two random interleavers will see an increase in its minimum
`
`distance beyond the encoded weight of an unpermuted weight-2 data sequence. This
`
`argument can be extended to account for other weight-2 data sequences which may also
`
`produce low weight codewords, e.g. , (...00100(000)'1000. . .), for the code in FIGURE 2.
`
`

`

`
`
`
`
`-22-
`
`For comparison, consider a weight-3 data sequence such as (... 0011100. ), which for
`our example corresponds to the minimum distance ofthe code (using no permutations).
`The probability that this sequence is reproduced with one random interleaver1s roughly
`6/N2, and the probability that some sequence of that form15 paired with another of the
`same form is l - (1 — 6/N2)” ~ 6N. Thus, for large block sizes, bad weight-3 data
`sequences have a small probability of being matched with bad weight-3 permuted data
`sequences, even in a two-code system.
`
`For a turbo code using q codes and q-l random interleavers, this probability is even
`smaller,
`1 - [l - (6/N)‘i"]N = 6/N (WA/2)“. This implies that the minimum distance
`codeword of the turbo code in FIGURE 2 is more likely to result from a weight-2 data
`sequence ofthe form (. . .001001000. . .) than from the weight-3 sequence (...0011100...)
`that produces the minimum distance in the unperrnuted version ofthe same code. Higher
`weight sequences have an even smaller probability of reproducing themselves after being
`passed through a random interleaver.
`
`For a turbo code using q codes and q—l interleavers, the probability that a weight-n data
`sequence will be reproduced somewhere within the block by all q— 1 permutations is of
`the form 1 - [l — (B/N"")""]”, where B is a number that depends on the weight-n data
`sequence but does not increase with block size N. For large N, this probability is
`proportional to (UN )"4'""’ , which falls offrapidly with N, when n and q are greater than
`two. Furthermore, the symmetry of this expression

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket