US6353900B1 - Coding system having state machine based interleaver - Google Patents
Coding system having state machine based interleaver Download PDFInfo
- Publication number
- US6353900B1 US6353900B1 US09/172,069 US17206998A US6353900B1 US 6353900 B1 US6353900 B1 US 6353900B1 US 17206998 A US17206998 A US 17206998A US 6353900 B1 US6353900 B1 US 6353900B1
- Authority
- US
- United States
- Prior art keywords
- circumflex over
- data
- memory
- addresses
- address
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2742—Irregular interleaver wherein the permutation pattern is not obtained by a computation rule, e.g. interleaver based on random generators
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2757—Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2789—Interleaver providing variable interleaving, e.g. variable block sizes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
Definitions
- the present invention relates to coding. More particularly, the present invention relates to a novel and improved technique for performing iterative coding and decoding.
- “Turbo coding” represents an important advancement in the area of forward error correction (FEC).
- FEC forward error correction
- turbo codes could improve the performance of wireless satellite links, where the limited downlink transmit power of the satellite necessitates receiver systems that can operate at low E b /N o levels.
- Digital wireless telecommunication systems such as digital cellular and PCS telephone systems, also use forward error correction.
- the IS-95 over-the-air interface standard, and its derivatives, such as IS-95B define a digital wireless communications system that uses convolutional encoding to provide coding gain to increase the capacity of the system.
- a system and method for processing RF signals substantially in accordance with the use of the IS-95 standard is described in US pat. No. 5,103,459 entitled “System and Method for Generating Signal Waveforms in a CDMA ellular Telephone System” assigned to the assignee of the present invention and incorporated herein by reference ('459 patent). which are small and light.
- this requires development of a semiconductor integrated circuit (“chip”) for performing most or all of the necessary processing. While convolutional encoding is relatively complex, the circuits necessary to perform convolutional encoding and decoding can be formed on a single chip along with any other necessary circuitry.
- Turbo coding (in particular the decoding operation) is significantly more complex than convolutional encoding. Nonetheless, it would be highly desirable to include turbo coding in digital wireless telecommunication systems, including mobile digital communication systems. Thus, the present invention is directed to reducing the complexity associated with performing turbo coding, and therefore facilitating the use of turbo coding in systems where mobility is desirable, or where power consumption and circuit size are of concern.
- the present invention is a novel and improved technique for performing coding with particular application to turbo, or iterative, coding techniques.
- interleaving is performed by generating the address of a memory using a PN state generator. Data is written into a memory in sequential order, and then read out using addresses specified by the PN state generator. To deinterleave, the interleaved data is written into a memory using addresses specified by the PN state generator, and then read out in sequential order.
- a set of PN state generators that provide excellent coding performance is provided.
- FIGS. 1A and 1B are block diagrams of turbo coders when configured in accordance with one embodiment of the invention.
- FIG. 2 is a block diagram of an interleaver when configured in accordance with one embodiment of the invention.
- FIGS. 3A and 3B are diagrams of PN code generators when configured in accordance with one embodiment of the invention.
- FIG. 4 is a block diagram of an alternative and more generalized embodiment of the invention.
- FIGS. 5A and 5B are block diagrams of decoders configured in accordance with one embodiment of the invention.
- FIG. 6 is a graph illustrating the performance of one embodiment of the invention.
- FIG. 7 is a graph illustrating the performance of another embodiment of the invention.
- the present invention is a novel and improved technique for performing turbo coding.
- the exemplary embodiment is described in the context of the digital cellular telephone system. While use within this context is advantageous, different embodiments of the invention may be incorporated in different environments or configurations.
- the various systems described herein may be formed using software-controlled processors, integrated circuits, or discreet logic, however, implementation in an integrated circuit is preferred.
- the data, instructions, commands, information, signals, symbols and chips that may be referenced throughout the application are advantageously represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or a combination thereof.
- the blocks shown in each block diagram may represent either hardware or method steps.
- FIGS. 1A and 1B provide highly simplified illustrations of two types of turbo coders.
- FIG. 1A depicts a parallel concatenated turbo encoder.
- Coder 1 and interleaver 2 receive the encoder input data 4 , which is typically user information or control data.
- Coder 1 outputs systematic symbols 5 (typically a copy of the original input bits) and parity symbols 3 .
- Coder 6 receives the interleaved output of interleaver 2 and outputs a second set of parity symbols 7 .
- the outputs of coder 1 and coder 6 are muxed into the output data stream for a total coding rate R of 1 ⁇ 3. Additional coder and interleaver pairs may be added to reduce the coding rate for increased forward error correction.
- Coders 1 and 6 may be various types of coders including block coders or convolutional coders.
- coders 1 and 6 typically have a small constraint length of such as 4 (four) to reduce complexity, and are recursive systematic convolutional (RSC) encoders. The lower constraint length reduces the complexity of the corresponding decoder.
- FIG. 1B depicts a serial concatenated turbo coder.
- Input data 13 is coded by coder 10 and the parity symbols are applied to interleaver 12 .
- the resulting interleaved parity symbols are supplied to coder 14 , which performs additional encoding to generate parity symbols 15 .
- coder 10 (the outer coder) may be various types of encoders including block encoders or convolutional encoders, but coder 14 (the inner coder) must be a recursive coder and is typically a recursive systematic encoder.
- coders 10 and 14 As recursive systematic convolutional (RSC) encoders, coders 10 and 14 generate symbols at a coding rate R ⁇ 1. That is, for a given number of input bits N, M output symbols are generated where M>N.
- the total coding rate for the serial concatenated turbo coder of FIG. 1B is the coding rate of coder 10 multiplied by the coding rate of coder 14 . Additional interleaver and coder pairs may also be added in series to reduce the coding rate and therefore provide additional error protection.
- FIG. 2 is a block diagram of an interleaver configured in accordance with one embodiment of the invention.
- the interleaver may be used, for example, as interleavers 2 or 12 within the circuits of FIG. 1A or FIG. 1 B.
- memory 26 receives encoder input data 19 , as well as address data 21 from mux 20 .
- Mux 20 supplies address data 21 from either counter 18 or PN state machine 22 and address filter 24 .
- a control system (not shown for ease of drawing) controls mux 20 , counter 18 , PN state machine 22 and address filter 24 .
- the control system is preferably comprised of a microprocessor or DSP running software instructions stored in memory.
- encoder input data 19 is written into memory 26 with the address specified by the application of counter 18 to the address input using mux 20 .
- the data is then read out to coder 14 by applying PN state machine 22 , after filtering by address filter 24 , to the address input of memory 26 via mux 20 .
- the data is read out in an alternative order to coder 14 with respect to the encoder data received by coder 10 .
- the PN state machine is applied to the address input of the memory as data is written in, and the counter is applied to the address input of the memory as data is written out.
- Address filter 24 removes address from PN state machine 22 that are greater than the addressable memory space of memory 26 .
- address filter 24 receives addresses from PN state machine 22 .
- the possible set of addresses for a PN generator of length L is equal to 2 L ⁇ 1, where L is the number of bits in the PN state.
- address filter 24 determines when an address from PN state machine 22 is greater than the memory size N. If so, address filter signals PN state machine 22 to switch to the next state, and performs the comparison again. So long as the address from PN state machine 22 exceeds N, address filter 24 will continue to advance the state of PN state machine 22 until an address that is less than N is generated.
- N and increasing or decreasing the number of bits generated by PN state machine 22 , different sized memories can be accommodated by changing the value of N.
- a state generator must be selected such that the PN state machine does not enter the same state twice, before covering all the possible states. This condition will be satisfied if the PN generator produces a maximal length shift register sequence. Making the PN generator a primitive polynomial in the Galois field GF 2 is one way to achieve this characteristic. Also, the state machine may be initialized with a logic one in the most significant position, followed by logic zeros in the remaining positions. Other initialization values may also be used.
- address filter ensures that only addresses within the size of memory 26 are applied.
- a value V may be subtracted from the address generated by the PN state machine. The result is then address is retained only if it lies within 1 and N. Values V of 1 or 64 are acceptable. In still another embodiment of the invention, the number V maybe subtracted when the right most registers of the state machine have a value of between V and N ⁇ 1+V, and used without subtraction of V otherwise.
- an advantage of the invention is that more effective interleaving can be performed that provides high performance coding and decoding with a minimum of additional complexity.
- PN state machine By using a PN state machine to generate the addresses, more complex interleaving can performed, and therefore higher performance coding and decoding obtained, with reduced circuit space and power consumption.
- counter 18 may be replaced with another state machine.
- a second PN state machine could be used in place of counter 18 , so long as the two PN state machines covered the necessary address space in different order.
- a counter could simply be considered a PN state machine having a PN sequence equal to the binary counting sequence.
- the sequence of the PN states generated is adjusted to further increase performance with little additional complexity.
- S 1 , S 1 , S 3 . . . S N an integer k is found that is relatively prime to the period of the PN sequence 2 L ⁇ 1.
- Significant performance improvements may be obtained by choosing k to be on the order of L.
- two or more interleavers may be interlaced to generate a single interleaver of larger span.
- the two interleavers can both be polynomial based, and generally use different polynomial. Combination of polynomial based and other types of interleavers is also contemplated.
- two interleavers of equal length can be used in parallel to generate a single permutation in which the even and odd indices are permuted separately. This may be useful if the decoder needs to access two adjacent symbols of the interleaver input/output simultaneously without the use of a dual port memory.
- two interleavers of different size may be interlaced to form a larger interleaver that is not an integral power of 2.
- interleavers of span 2047 and 1023 may be interlaced to construct a larger interleaver of span 3070 .
- the two constituent interleavers are obtained from primitive polynomials of degree 11 and 10 respectively.
- FIGS. 3A and 3B illustrate two PN sequence generators when configured in accordance with one embodiment of the invention.
- a set of latches 50 ( 1 )- 50 (L) store state variables S 1 -S L .
- Polynomial coefficients C 1 -C L ⁇ 1 are applied to AND-gates 52 ( 1 )- 52 (L- 1 ), which also receive the state variables S 1 -S L ⁇ 1 .
- State variables S 1 -S L ⁇ 1 are also applied to the input of the next latch.
- XOR-gates 54 ( 1 )-(L- 1 ) receive the outputs of AND-gates 52 ( 1 )-(L).
- XOR-gates 54 ( 1 )- 54 (L- 2 ) also receive the outputs of adjacent XOR-gates 54 ( 2 )- 54 (L- 1 ), and XOR-gate 54 (L) also receives the output of latch 50 (L).
- the output of XOR-gate 54 ( 1 ) is the output of the PN state machine, as well as the input to latch 50 ( 1 ).
- the polynomial coefficients determine the way the state variables change as data is clocked through.
- the application of different polynomials changes the particular PN sequence generated, and the selection of certain polynomials generates a sequence of addresses which allow nearly optimal interleaving to be performed.
- a circuit like that shown in FIG. 2A can use used. Such a circuit occupies significantly less circuit area than a corresponding look-up-table, and therefore reduces the overall required chip area to implement the turbo coder.
- FIG. 3B provides an alternative method for generating PN states.
- the XOR-gates 62 ( 1 )- 62 (L- 2 ) are coupled between latches 60 ( 0 )- 60 (L), and the output of latch 60 ( 0 ) is applied to AND-gates 64 ( 1 )- 64 (L- 1 ) as well as to latch 60 (L- 1 ).
- AND-gates 64 ( 1 )- 64 (L- 1 ) also receive polynomial coefficients C( 1 )-C(L- 1 ).
- the outputs of AND-gates 64 ( 1 )- 64 (L- 1 ) are applied to XOR-gates 62 ( 1 )- 62 (L- 2 ).
- the application of different polynomials changes the particular PN sequence generated, and the selection of certain polynomials generates a sequence of addresses which allow nearly optimal interleaving to be performed.
- the polynomials used in the PN state machine are as set forth in Table I:
- the bit size of the address is preferably the smallest number L that gives a maximum address that is greater than or equal to the size N of the memory.
- Table II provides still more polynomials that may be used in alternative embodiments of the invention.
- Table III provides some polynomials that may be used in alternative embodiments of the invention.
- FIG. 4 is a block diagram of an alternative and more generalized embodiment of the invention.
- the interleaver address generation is performed by combining a row-column address generator with one or more PN address generator.
- interleaver memory 200 has data input-output (I/O) 202 and address input 204 .
- Address input 204 is comprised of row input 206 and column input 208 .
- Column multiplexer 210 provides either the output of column counter 212 or column PN address generator to column input 208 .
- Row multiplexer 220 provides either the output of row counter 222 or row PN address generator 214 to row input 206 .
- Column PN address generator 214 receives polynomial values from PN polynomial bank 216 and row PN address generator 214 receives polynomial values from PN polynomial bank 226 .
- each row is associated with a PN address generator of length c, with the particular generator defined by a different polynomial stored in PN polynomial bank 226 .
- each column is associated with a PN interleaver of length r, with the particular generator defined by a different polynomial stored in PN polynomial bank 216 .
- the interleavers associated with the different rows or columns may be identical or distinct.
- the one of either the column or row address generators may be something other than a PN based address generator such as bit reversal address generator, cyclic shift address generator or even an identity address generator.
- the data to be interleaved is written into the interleaver buffer in a row by row fashion using row counter 222 , while the columns are selected using column PN address generator 214 .
- each row is addressed using row PN address generator 224 and the columns are addressed using column counter 212 .
- the order or reading and writing may be interchanged.
- the polynomial used by a PN address generator is changed for each row or column addressed by loading a new polynomial from a PN polynomial bank.
- the different polynomials can be generated by using the “mirror” image of the polynomials listed in Tables I-III, where logic ones are set to logic zeros and vice-versa.
- Other methods of changing the address generation from row to row (or colum to colum) may be used.
- the starting states of the PN state machines may be changed from row to row.
- the PN state machine could be clocked a different number of times for each row.
- different state machines like the two state machines of FIG. 3, could be used for different rows.
- the use of the interleaver as shown in FIG. 4 provides additional performance with only a minimal amount of complexity.
- FIG. 5A is a block diagram of a decoder for parallel turbo coding when configured in accordance with one embodiment of the invention.
- Receive data is received on input 40 and applied to decoder 44 and interleaver 46 .
- the output of deinterleaver 46 is applied to decoder 48 and the outputs of decoders 44 and 48 are applied to summer 50 .
- the output of summer 50 forms the output of the decoder, but is also applied as a second input through mux 42 for iterative decoding.
- decoder 48 and decoder 44 are coupled via interleaver 50 and deinterleaver 52 .
- data received by decoder 44 and decoder 48 is repeatedly decoded and exchanged after by interleaved and deinterleaved by interleaver 54 and deinterleaver 52 . Once a desired number of iterations are performed, or a desired error level achieve, the output is taken from summer 50 .
- FIG. 5B is a block diagram of a decoder for serial turbo coding configured in accordance with one embodiment of the invention.
- Input data 70 is received by decoder 72 , the output of which is applied to deinterleaver 74 .
- the deinterleaved output of deinterleaver 74 is applied to decoder 76 .
- the output of decoder 76 is applied to deinterleaver 78 , the output of which is applied to decoder 72 .
- the output of decoder 76 also forms the output of the serial turbo decoder.
- the received symbols are repeatedly decoded by decoders 72 and 76 . Once a desired number of decoder iterations are performed, or a desired error level achieved, output is taken from decoder 76 .
- deinterleavers of FIGS. 4A and 4B are configured in a similar manner to that shown in FIG. 2 except, as described above, the PN state machine is applied during writing and the counter is applied during reading.
- the interleavers are preferably configured as shown in FIG. 2 .
- FIG. 6 is a graph illustrating the performance of a particular polynomial using a rate 1 ⁇ 4 serial concatenated turbo code when compared to other interleaving schemes which require the use of a look-up-table.
- the value K is the size of the data frame being processed.
- the frame error rate (FER) and the bit error rate (BER) are shown for an ideal interleaver and the PN based interleaver.
- FER frame error rate
- BER bit error rate
- the performance of the PN based interleaving scheme is nearly identical to that of the look-up-table scheme at an error rate (error probability) of 1 ⁇ 10 ⁇ 3 .
- This error rate is the preferred level of operation for an IS-95 based CDMA wireless telecommunications system, as well as many other digital wireless systems.
- the savings in circuit space can be provides with little or no reduction in performance by use of the PN based interleaving scheme.
- FIG. 7 is a graph illustrating a rate 1 ⁇ 2 serial concatenated turbo code when compared to other interleaving schemes which require the use of a look-up-table.
- the difference between the ideal and PN base interleaver is small at error rate of 1 ⁇ 10 ⁇ 3 .
- the savings in circuit space can be provides with little or no reduction in performance by use of the PN based interleaving scheme.
Abstract
The present invention is a novel and improved technique for performing coding with particular application to turbo, or iterative, coding techniques. In accordance with one embodiment of the invention, interleaving is performed by generating the address of a memory using a PN state generator. Data is written into a memory in sequential order, and then read out using addresses specified by the PN state generator. To deinterleave, the interleaved data is written into a memory using addresses specified by the PN state generator, and then read out in sequential order. A set of PN state generators that provide excellent coding performance is provided.
Description
This application is a Continuation-In-Part of U.S. application Ser. No. 09/158,457, now U.S. Pat. No. 6,304,984, entitled “Coding System Having State Machine Based Interleaver”, filed on Sep. 22, 1998.
I. Field of the Invention
The present invention relates to coding. More particularly, the present invention relates to a novel and improved technique for performing iterative coding and decoding.
II. Description of the Related Art
“Turbo coding” represents an important advancement in the area of forward error correction (FEC). There are many variants of turbo coding, but most types of turbo coding use multiple encoding steps separated by interleaving steps combined with interactive decoding. This combination provides previously unavailable performance with respect to noise tolerance in a communications system. That is, turbo coding allows communications at Eb/No levels that were previously unacceptably using the existing forward error correction techniques.
Many systems use forward error correction techniques, and therefore would benefit from the use of turbo coding. For example, turbo codes could improve the performance of wireless satellite links, where the limited downlink transmit power of the satellite necessitates receiver systems that can operate at low Eb/No levels.
Digital wireless telecommunication systems, such as digital cellular and PCS telephone systems, also use forward error correction. For example, the IS-95 over-the-air interface standard, and its derivatives, such as IS-95B, define a digital wireless communications system that uses convolutional encoding to provide coding gain to increase the capacity of the system. A system and method for processing RF signals substantially in accordance with the use of the IS-95 standard is described in US pat. No. 5,103,459 entitled “System and Method for Generating Signal Waveforms in a CDMA ellular Telephone System” assigned to the assignee of the present invention and incorporated herein by reference ('459 patent). which are small and light. Typically, this requires development of a semiconductor integrated circuit (“chip”) for performing most or all of the necessary processing. While convolutional encoding is relatively complex, the circuits necessary to perform convolutional encoding and decoding can be formed on a single chip along with any other necessary circuitry.
Turbo coding (in particular the decoding operation) is significantly more complex than convolutional encoding. Nonetheless, it would be highly desirable to include turbo coding in digital wireless telecommunication systems, including mobile digital communication systems. Thus, the present invention is directed to reducing the complexity associated with performing turbo coding, and therefore facilitating the use of turbo coding in systems where mobility is desirable, or where power consumption and circuit size are of concern.
The present invention is a novel and improved technique for performing coding with particular application to turbo, or iterative, coding techniques. In accordance with one embodiment of the invention, interleaving is performed by generating the address of a memory using a PN state generator. Data is written into a memory in sequential order, and then read out using addresses specified by the PN state generator. To deinterleave, the interleaved data is written into a memory using addresses specified by the PN state generator, and then read out in sequential order. A set of PN state generators that provide excellent coding performance is provided.
The features, objects, and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein:
FIGS. 1A and 1B are block diagrams of turbo coders when configured in accordance with one embodiment of the invention;
FIG. 2 is a block diagram of an interleaver when configured in accordance with one embodiment of the invention;
FIGS. 3A and 3B are diagrams of PN code generators when configured in accordance with one embodiment of the invention;
FIG. 4 is a block diagram of an alternative and more generalized embodiment of the invention.
FIGS. 5A and 5B are block diagrams of decoders configured in accordance with one embodiment of the invention;
FIG. 6 is a graph illustrating the performance of one embodiment of the invention;
FIG. 7 is a graph illustrating the performance of another embodiment of the invention.
The present invention is a novel and improved technique for performing turbo coding. The exemplary embodiment is described in the context of the digital cellular telephone system. While use within this context is advantageous, different embodiments of the invention may be incorporated in different environments or configurations. In general, the various systems described herein may be formed using software-controlled processors, integrated circuits, or discreet logic, however, implementation in an integrated circuit is preferred. The data, instructions, commands, information, signals, symbols and chips that may be referenced throughout the application are advantageously represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or a combination thereof. In addition, the blocks shown in each block diagram may represent either hardware or method steps.
FIGS. 1A and 1B, provide highly simplified illustrations of two types of turbo coders. FIG. 1A depicts a parallel concatenated turbo encoder. Coder 1 and interleaver 2 receive the encoder input data 4, which is typically user information or control data. Coder 1 outputs systematic symbols 5 (typically a copy of the original input bits) and parity symbols 3. Coder 6 receives the interleaved output of interleaver 2 and outputs a second set of parity symbols 7. The outputs of coder 1 and coder 6 are muxed into the output data stream for a total coding rate R of ⅓. Additional coder and interleaver pairs may be added to reduce the coding rate for increased forward error correction.
FIG. 1B depicts a serial concatenated turbo coder. Input data 13 is coded by coder 10 and the parity symbols are applied to interleaver 12. The resulting interleaved parity symbols are supplied to coder 14, which performs additional encoding to generate parity symbols 15. Typically, coder 10 (the outer coder) may be various types of encoders including block encoders or convolutional encoders, but coder 14 (the inner coder) must be a recursive coder and is typically a recursive systematic encoder.
As recursive systematic convolutional (RSC) encoders, coders 10 and 14 generate symbols at a coding rate R<1. That is, for a given number of input bits N, M output symbols are generated where M>N. The total coding rate for the serial concatenated turbo coder of FIG. 1B is the coding rate of coder 10 multiplied by the coding rate of coder 14. Additional interleaver and coder pairs may also be added in series to reduce the coding rate and therefore provide additional error protection.
FIG. 2 is a block diagram of an interleaver configured in accordance with one embodiment of the invention. The interleaver may be used, for example, as interleavers 2 or 12 within the circuits of FIG. 1A or FIG. 1B. Within the interleaver, memory 26 receives encoder input data 19, as well as address data 21 from mux 20. Mux 20 supplies address data 21 from either counter 18 or PN state machine 22 and address filter 24. A control system (not shown for ease of drawing) controls mux 20, counter 18, PN state machine 22 and address filter 24. The control system is preferably comprised of a microprocessor or DSP running software instructions stored in memory.
During operation, encoder input data 19 is written into memory 26 with the address specified by the application of counter 18 to the address input using mux 20. Once a block of encoder input data 19 has been written in to memory 16, the data is then read out to coder 14 by applying PN state machine 22, after filtering by address filter 24, to the address input of memory 26 via mux 20. Thus, the data is read out in an alternative order to coder 14 with respect to the encoder data received by coder 10.
To perform deinterleaving, the PN state machine is applied to the address input of the memory as data is written in, and the counter is applied to the address input of the memory as data is written out. The benefits realized by the use of the interleaver of FIG. 2 for coding, as described throughout the application, are also realized when used for decoding.
As should be apparent, a state generator must be selected such that the PN state machine does not enter the same state twice, before covering all the possible states. This condition will be satisfied if the PN generator produces a maximal length shift register sequence. Making the PN generator a primitive polynomial in the Galois field GF2 is one way to achieve this characteristic. Also, the state machine may be initialized with a logic one in the most significant position, followed by logic zeros in the remaining positions. Other initialization values may also be used.
As noted above, address filter ensures that only addresses within the size of memory 26 are applied. As should be apparent, it is preferable to select PN state generators that do not produce large sequences of addresses that are greater than N. In other words, it is advantageous to pick the PN generator length L so that 2L−1 ≦N<2L. Also, it is preferable to configure PN state machine 22 with the ability to advance the PN generator many times into the future, and store the list of intermediate states during the processing cycle of memory 26, so that a suitable address may be generated with sufficient speed. This ensures that the PN clock rate need be at most be twice the interleaver rate.
In another embodiment of the invention, a value V may be subtracted from the address generated by the PN state machine. The result is then address is retained only if it lies within 1 and N. Values V of 1 or 64 are acceptable. In still another embodiment of the invention, the number V maybe subtracted when the right most registers of the state machine have a value of between V and N−1+V, and used without subtraction of V otherwise.
As is widely known, the use of simple “block” interleavers does not provide optimal performance for turbo coding. Without the use of block interleaving, however, or some other more regular interleaving scheme, it is typically necessary to use a “look-up-table” that specifies the sequence of addresses at which the data should be read out.
For the larger block sizes necessary to perform turbo coding optimally, such look-up-tables require significant amounts of additional on-chip memory—sometimes on the order to the interleaver memory itself. This memory can take up a significant amount of chip space, which in turn increases the cost and power consumption of the chip. Thus, an advantage of the invention is that more effective interleaving can be performed that provides high performance coding and decoding with a minimum of additional complexity. By using a PN state machine to generate the addresses, more complex interleaving can performed, and therefore higher performance coding and decoding obtained, with reduced circuit space and power consumption.
In an alternative embodiment of the invention, counter 18 may be replaced with another state machine. A second PN state machine could be used in place of counter 18, so long as the two PN state machines covered the necessary address space in different order. (Alternatively, a counter could simply be considered a PN state machine having a PN sequence equal to the binary counting sequence.)
In an alternative embodiment of the invention, the sequence of the PN states generated is adjusted to further increase performance with little additional complexity. For a set of PN states S1, S1, S3 . . . SN an integer k is found that is relatively prime to the period of the PN sequence 2L−1. The state sequence is then defined as S(ki mod N)+1 to the index I, for each 0<=I<N. If N=2L−1 this amounts to clocking the PN generator k times to obtain the next PN state. Significant performance improvements may be obtained by choosing k to be on the order of L.
In still another embodiment of the invention, two or more interleavers may be interlaced to generate a single interleaver of larger span. The two interleavers can both be polynomial based, and generally use different polynomial. Combination of polynomial based and other types of interleavers is also contemplated.
In one example, two interleavers of equal length can be used in parallel to generate a single permutation in which the even and odd indices are permuted separately. This may be useful if the decoder needs to access two adjacent symbols of the interleaver input/output simultaneously without the use of a dual port memory.
In another example, two interleavers of different size may be interlaced to form a larger interleaver that is not an integral power of 2. For instance, interleavers of span 2047 and 1023 may be interlaced to construct a larger interleaver of span 3070. The two constituent interleavers are obtained from primitive polynomials of degree 11 and 10 respectively.
FIGS. 3A and 3B illustrate two PN sequence generators when configured in accordance with one embodiment of the invention. Referring to FIG. 3A, a set of latches 50(1)-50(L) store state variables S1-SL. Polynomial coefficients C1-CL−1 are applied to AND-gates 52(1)-52(L-1), which also receive the state variables S1-SL−1. State variables S1-SL−1 are also applied to the input of the next latch. XOR-gates 54(1)-(L-1) receive the outputs of AND-gates 52(1)-(L). XOR-gates 54(1)-54(L-2) also receive the outputs of adjacent XOR-gates 54(2)-54(L-1), and XOR-gate 54(L) also receives the output of latch 50(L). The output of XOR-gate 54(1) is the output of the PN state machine, as well as the input to latch 50(1).
During operation, the polynomial coefficients determine the way the state variables change as data is clocked through. The application of different polynomials changes the particular PN sequence generated, and the selection of certain polynomials generates a sequence of addresses which allow nearly optimal interleaving to be performed. By using a PN generated sequence, a circuit like that shown in FIG. 2A can use used. Such a circuit occupies significantly less circuit area than a corresponding look-up-table, and therefore reduces the overall required chip area to implement the turbo coder.
FIG. 3B provides an alternative method for generating PN states. The XOR-gates 62(1)-62(L-2) are coupled between latches 60(0)-60(L), and the output of latch 60(0) is applied to AND-gates 64(1)-64(L-1) as well as to latch 60(L-1). AND-gates 64(1)-64(L-1) also receive polynomial coefficients C(1)-C(L-1). The outputs of AND-gates 64(1)-64(L-1) are applied to XOR-gates 62(1)-62(L-2). As with FIG. 2A, the application of different polynomials changes the particular PN sequence generated, and the selection of certain polynomials generates a sequence of addresses which allow nearly optimal interleaving to be performed.
In accordance with one embodiment of the invention, for certain values L, and therefore for different sized address spaces, the polynomials used in the PN state machine are as set forth in Table I:
TABLE I | ||||
L | Max memory size | Polynomial | ||
2 | 3 | 1 + D + D{circumflex over ( )}2 | ||
3 | 7 | 1 + D + D{circumflex over ( )}3 | ||
4 | 15 | 1 + D + D{circumflex over ( )}4 | ||
5 | 31 | 1 + D{circumflex over ( )}2 + D{circumflex over ( )}5 | ||
6 | 63 | 1 + D + D{circumflex over ( )}6 | ||
7 | 127 | 1 + D + D{circumflex over ( )}7 | ||
8 | 255 | 1 + D{circumflex over ( )}2 + D{circumflex over ( )}3 + D{circumflex over ( )}4 + D{circumflex over ( )}8 | ||
9 | 511 | 1 + D{circumflex over ( )}4 + D{circumflex over ( )}9 | ||
10 | 1023 | 1 + D{circumflex over ( )}3 + D{circumflex over ( )}10 | ||
11 | 2047 | 1 + D{circumflex over ( )}2 + D{circumflex over ( )}11 | ||
12 | 4095 | 1 + D + D{circumflex over ( )}4 + D{circumflex over ( )}6 + D{circumflex over ( )}12 | ||
13 | 8191 | 1 + D + D{circumflex over ( )}3 + D{circumflex over ( )}4 + D{circumflex over ( )}13 | ||
14 | 16383 | 1 + D + D{circumflex over ( )}3 + D{circumflex over ( )}5 + D{circumflex over ( )}14 | ||
15 | 32767 | 1 + D + D{circumflex over ( )}15 | ||
Typically, were an element of particular order is present in the polynomial the corresponding coefficient C is set to logic one; otherwise the coefficient is set to logic zero. Those skilled in the art will recognize various ways of implementing PN state machines that use the specified polynomial, or some derivative thereof. Also, the bit size of the address is preferably the smallest number L that gives a maximum address that is greater than or equal to the size N of the memory.
Table II provides still more polynomials that may be used in alternative embodiments of the invention.
TABLE II | ||||
L | Max memory size | Polynomial | ||
9 | 511 | 1 + D{circumflex over ( )}4 + D{circumflex over ( )}5 + D{circumflex over ( )}8 + D{circumflex over ( )}9 | ||
10 | 1023 | 1 + D{circumflex over ( )}2 + D{circumflex over ( )}3 + D{circumflex over ( )}8 + D{circumflex over ( )}10 | ||
11 | 2047 | 1 + D + D{circumflex over ( )}2 + D{circumflex over ( )}3 + D{circumflex over ( )}4 + D{circumflex over ( )}5 + | ||
D{circumflex over ( )}6 + D{circumflex over ( )}8 + D{circumflex over ( )}11 | ||||
Table III provides some polynomials that may be used in alternative embodiments of the invention.
TABLE III | ||
L | Max memory size | Polynomial |
9 | 511 | 1 + D{circumflex over ( )}5 + D{circumflex over ( )}6 + D{circumflex over ( )}8 + D{circumflex over ( )}9 |
10 | 1023 | 1 + D + D{circumflex over ( )}5 + D{circumflex over ( )}6 + D{circumflex over ( )}8 + D{circumflex over ( )}9 + D{circumflex over ( )}10 |
FIG. 4 is a block diagram of an alternative and more generalized embodiment of the invention. In this alternative embodiment of the invention, the interleaver address generation is performed by combining a row-column address generator with one or more PN address generator. As illustrated, interleaver memory 200 has data input-output (I/O) 202 and address input 204. Address input 204 is comprised of row input 206 and column input 208.
In one embodiment, each row is associated with a PN address generator of length c, with the particular generator defined by a different polynomial stored in PN polynomial bank 226. Similarly, each column is associated with a PN interleaver of length r, with the particular generator defined by a different polynomial stored in PN polynomial bank 216. The interleavers associated with the different rows or columns may be identical or distinct. Additionally, in alternative embodiments of the invention, the one of either the column or row address generators may be something other than a PN based address generator such as bit reversal address generator, cyclic shift address generator or even an identity address generator.
During operation, the data to be interleaved is written into the interleaver buffer in a row by row fashion using row counter 222, while the columns are selected using column PN address generator 214. When the data is read out, each row is addressed using row PN address generator 224 and the columns are addressed using column counter 212. As will be apparent, the order or reading and writing may be interchanged.
Preferably, the polynomial used by a PN address generator is changed for each row or column addressed by loading a new polynomial from a PN polynomial bank. The different polynomials can be generated by using the “mirror” image of the polynomials listed in Tables I-III, where logic ones are set to logic zeros and vice-versa. Other methods of changing the address generation from row to row (or colum to colum) may be used. For example, the starting states of the PN state machines may be changed from row to row. The PN state machine could be clocked a different number of times for each row. Also, different state machines, like the two state machines of FIG. 3, could be used for different rows. The use of the interleaver as shown in FIG. 4 provides additional performance with only a minimal amount of complexity.
FIG. 5A is a block diagram of a decoder for parallel turbo coding when configured in accordance with one embodiment of the invention. Receive data is received on input 40 and applied to decoder 44 and interleaver 46. The output of deinterleaver 46 is applied to decoder 48 and the outputs of decoders 44 and 48 are applied to summer 50. The output of summer 50 forms the output of the decoder, but is also applied as a second input through mux 42 for iterative decoding. Additionally, decoder 48 and decoder 44 are coupled via interleaver 50 and deinterleaver 52.
During an exemplary operation, data received by decoder 44 and decoder 48 is repeatedly decoded and exchanged after by interleaved and deinterleaved by interleaver 54 and deinterleaver 52. Once a desired number of iterations are performed, or a desired error level achieve, the output is taken from summer 50.
FIG. 5B is a block diagram of a decoder for serial turbo coding configured in accordance with one embodiment of the invention. Input data 70 is received by decoder 72, the output of which is applied to deinterleaver 74. The deinterleaved output of deinterleaver 74 is applied to decoder 76. The output of decoder 76 is applied to deinterleaver 78, the output of which is applied to decoder 72. The output of decoder 76 also forms the output of the serial turbo decoder.
During an exemplary operation, the received symbols are repeatedly decoded by decoders 72 and 76. Once a desired number of decoder iterations are performed, or a desired error level achieved, output is taken from decoder 76.
In one embodiment of the invention, deinterleavers of FIGS. 4A and 4B are configured in a similar manner to that shown in FIG. 2 except, as described above, the PN state machine is applied during writing and the counter is applied during reading. The interleavers are preferably configured as shown in FIG. 2.
FIG. 6 is a graph illustrating the performance of a particular polynomial using a rate ¼ serial concatenated turbo code when compared to other interleaving schemes which require the use of a look-up-table. The value K is the size of the data frame being processed. The frame error rate (FER) and the bit error rate (BER) are shown for an ideal interleaver and the PN based interleaver. As shown, the performance of the PN based interleaving scheme is nearly identical to that of the look-up-table scheme at an error rate (error probability) of 1×10−3. This error rate is the preferred level of operation for an IS-95 based CDMA wireless telecommunications system, as well as many other digital wireless systems. Thus, the savings in circuit space can be provides with little or no reduction in performance by use of the PN based interleaving scheme.
FIG. 7 is a graph illustrating a rate ½ serial concatenated turbo code when compared to other interleaving schemes which require the use of a look-up-table. Once again, the difference between the ideal and PN base interleaver is small at error rate of 1×10−3. Thus, the savings in circuit space can be provides with little or no reduction in performance by use of the PN based interleaving scheme.
Thus, a novel and improved technique for performing turbo coding has been described. The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. The various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without the use of the inventive faculty. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims (20)
1. A method for decoding encoded data, comprising the steps of:
(a) writing the encoded data into a memory using a first address generation unit:
(b) reading the encoded data from said memory using a second address generation unit, wherein said reading step comprises the step of generating a set of addresses by incrementing a PN state machine; and
(c) removing an address from said set of addresses, if said address is greater than a number N, where N is an amount of encoded data to be interleaved.
2. The method as set forth in claim 1 , wherein said PN state machine has a state of L bits, where L is the smallest number to satisfy the equation N<=2L−1.
3. A method for decoding encoded data, comprising the steps of:
(a) writing the encoded data into a memory using a first address generation unit; and
(b) reading the encoded data from said memory using a second address generation unit;
wherein said second address unit comprises a state machine using the following polynomials:
1+D{circumflex over ( )}4+D{circumflex over ( )}9 when memory size is >256 and <=511;
1+D{circumflex over ( )}3+D{circumflex over ( )}10 when memory size is >511 and <=1023;
1+D{circumflex over ( )}2+D{circumflex over ( )}11 when memory size is >1024 and <=2047;
1+D+D{circumflex over ( )}4+D{circumflex over ( )}6+D{circumflex over ( )}12 when memory size is >2047 and <=4095;
1+D+D{circumflex over ( )}3+D{circumflex over ( )}4+D{circumflex over ( )}13 when memory size is >4095 and <=8191;
1+D+D{circumflex over ( )}3+D{circumflex over ( )}5+D{circumflex over ( )}14 when memory size is >8191 and <=16383;
1+D+D{circumflex over ( )}15 when memory size is >16383 and <=32767.
4. A system for coding data, comprising:
(a) a memory of size N, having an address input and a data input;
(b) a counter means for controlling said address input when data is written into said memory; and
(c) a PN state machine for controlling said address input when data is read out of said memory.
5. A system for coding data, comprising:
(a) a memory of size N, having an address input and a data input;
(b) a counter means for controlling said address input when data is written into said memory;
(c) a PN state machine for controlling said address input when data is read out of said memory; and
(d) an address filter for removing values greater than N generated by said PN state machine.
6. The system as set forth in claim 4 , further comprising a first coder, coupled to said memory, for generating first parity symbols in response to input data.
7. The system as set forth in claim 4 , further comprising a second coder for coding symbols received from said memory.
8. A method for decoding data, comprising the steps of:
(a) writing said data using a first set of addresses defined by a PN state machine;
(b) reading said data using a second set of addresses defined by a counter.
9. A method for decoding data, comprising the steps of:
(a) writing said data using a first set of addresses defined by a PN state machine;
(b) reading said data using a second set of addresses defined by a counter; and
(c) removing an address from said set first of addresses, if said address is greater than a number N, where N is an amount of encoded data to be interleaved.
10. A method for decoding data, comprising the steps of:
(a) writing said data using a first set of addresses defined by a PN state machine; and
(b) reading said data using a second set of addresses defined by a counter,
wherein said PN state machine uses the following polynomials:
1+D{circumflex over ( )}4+D{circumflex over ( )}9 when memory size is >256 and <=511;
1+D{circumflex over ( )}3+D{circumflex over ( )}10 when memory size is >511 and <=1023;
1+D{circumflex over ( )}2+D{circumflex over ( )}11 when memory size is >1024 and <=2047;
1+D+D{circumflex over ( )}4+D{circumflex over ( )}6+D{circumflex over ( )}12 when memory size is >2047 and <=4095;
1+D+D{circumflex over ( )}3+D{circumflex over ( )}4+D{circumflex over ( )}13 when memory size is >4095 and <=8191;
1+D+D{circumflex over ( )}3+D{circumflex over ( )}5+D{circumflex over ( )}14 when memory size is >8191 and <=16383;
1+D+D{circumflex over ( )}15 when memory size is >16383 and <=32767.
11. A decoder, comprising:
(a) a memory of size N, having an address input and a data input;
(b) a PN state machine for controlling said address input when data is written into said memory; and
(c) a counter means for controlling said address input when data is read out of said memory.
12. A decoder, comprising:
(a) a memory of size N, having an address input and a data input;
(b) a PN state machine for controlling said address input when data is written into said memory;
(c) a counter means for controlling said address input when data is read out of said memory; and
(d) an address filter for removing values greater than N generated by said PN state machine.
13. The decoder as set forth in claim 12 , further comprising a first coder, coupled to said memory, for generating first parity symbols in response is input data.
14. The decoder as set forth in claim 13 , further comprising a second coder for coding symbols received from said memory.
15. A method for performing interleaving in a turbo coder, comprising the steps of:
(a) generating a first set of PN based addresses;
(b) writing data into a memory using said first set of PN based addresses as row addresses; and
(c) reading out said data using a counter for row addresses.
16. A method for performing interleaving in a turbo coder, comprising the steps of:
(a) generating a first set of PN based addresses;
(b) writing data into a memory using said first set of PN based addresses as row addresses;
(c) reading out said data using a counter for row addresses;
(d) generating column addresses using a counter during said writing step; and
(e) generating row addresses using a counter during said read step.
17. The method as set fort in claim 15 , wherein said PN based addresses are generated using a polynomial selected from the following set of polynomials:
18. A method for performing interleaving in a turbo coder, comprising the steps of:
(a) generating a first set of PN based addresses;
(b) writing data into a memory using said first set of PN based addresses as column addresses; and
(c) reading out said data using a counter for column addresses.
19. A method for performing interleaving in a turbo coder, comprising the steps of:
(a) generating a first set of PN based addresses;
(b) writing data into a memory using said first set of PN based addresses as column addresses;
(c) reading out said data using a counter for column addresses;
(d) generating column addresses using a counter during said writing step; and
(e) generating row addresses using a counter during said read step.
20. The method as set forth in claim 18 , wherein said PN based addresses are generated using a polynomial selected from the following set of polynomials:
Priority Applications (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/172,069 US6353900B1 (en) | 1998-09-22 | 1998-10-13 | Coding system having state machine based interleaver |
CNB998142719A CN1186880C (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
BR9914541-3A BR9914541A (en) | 1998-10-13 | 1999-10-12 | Coding system having interleaver based on state machine |
AU65172/99A AU6517299A (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
CA002347237A CA2347237A1 (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
KR1020017004714A KR20010080157A (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
IL14256299A IL142562A0 (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
JP2000576546A JP2002527980A (en) | 1998-10-13 | 1999-10-12 | Coding system with state machine based interleaver |
PCT/US1999/024061 WO2000022738A1 (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
EP99953179A EP1121761A1 (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver |
MXPA01003814A MXPA01003814A (en) | 1998-10-13 | 1999-10-12 | Coding system having state machine based interleaver. |
RU2001112766/09A RU2001112766A (en) | 1998-10-13 | 1999-10-12 | Coding system having a state machine-based interleaver |
IDW00200101068A ID29939A (en) | 1998-10-13 | 1999-10-12 | A CODING SYSTEM THAT HAS A CONDITION MACHINE BASED ON INTERLEAVER |
NO20011889A NO20011889L (en) | 1998-10-13 | 2001-04-17 | Encoding system, with state machine based recessed |
HK02101499.2A HK1040011B (en) | 1998-10-13 | 2002-02-27 | Coding system having state machine based interleaver |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/158,457 US6304985B1 (en) | 1998-09-22 | 1998-09-22 | Coding system having state machine based interleaver |
US09/172,069 US6353900B1 (en) | 1998-09-22 | 1998-10-13 | Coding system having state machine based interleaver |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/158,457 Continuation-In-Part US6304985B1 (en) | 1998-09-22 | 1998-09-22 | Coding system having state machine based interleaver |
Publications (1)
Publication Number | Publication Date |
---|---|
US6353900B1 true US6353900B1 (en) | 2002-03-05 |
Family
ID=22626248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/172,069 Expired - Lifetime US6353900B1 (en) | 1998-09-22 | 1998-10-13 | Coding system having state machine based interleaver |
Country Status (15)
Country | Link |
---|---|
US (1) | US6353900B1 (en) |
EP (1) | EP1121761A1 (en) |
JP (1) | JP2002527980A (en) |
KR (1) | KR20010080157A (en) |
CN (1) | CN1186880C (en) |
AU (1) | AU6517299A (en) |
BR (1) | BR9914541A (en) |
CA (1) | CA2347237A1 (en) |
HK (1) | HK1040011B (en) |
ID (1) | ID29939A (en) |
IL (1) | IL142562A0 (en) |
MX (1) | MXPA01003814A (en) |
NO (1) | NO20011889L (en) |
RU (1) | RU2001112766A (en) |
WO (1) | WO2000022738A1 (en) |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480976B1 (en) * | 1999-03-11 | 2002-11-12 | Globespanvirata, Inc. | System and method for resource optimized integrated forward error correction in a DMT communication system |
US6536001B1 (en) * | 1999-03-11 | 2003-03-18 | Globespanvirata, Inc. | Circuit and method for convolutional interleaving using a single modulo operation |
US6563890B2 (en) * | 1999-03-01 | 2003-05-13 | Fujitsu Limited | Maximum a posteriori probability decoding method and apparatus |
US6590951B1 (en) * | 1999-04-02 | 2003-07-08 | Samsung Electronics Co., Ltd. | Address generator and address generating method for use in a turbo interleaver/deinterleaver |
US6591391B1 (en) * | 1999-09-08 | 2003-07-08 | Sencore Inc. | Method of generating an 8-VSB modulated signal |
US6625234B1 (en) * | 1998-12-10 | 2003-09-23 | Nortel Networks Limited | Efficient implementations of proposed turbo code interleavers for third generation code division multiple access |
US6701468B1 (en) * | 1999-09-10 | 2004-03-02 | Pioneer Corporation | Code error correcting circuit, code error correcting method, communicating apparatus and communicating method |
US6714606B1 (en) * | 2000-01-04 | 2004-03-30 | Lsi Logic Corporation | Integrated services digital broadcasting deinterleaver architecture |
US6721908B1 (en) * | 1999-04-02 | 2004-04-13 | Samsung Electronics Co., Ltd. | Interleaving/deinterleaving apparatus and method for a communication system |
US6769093B1 (en) * | 2000-12-15 | 2004-07-27 | Conexant Systems, Inc. | Synchronization of a communications system |
US20040181556A1 (en) * | 2003-03-14 | 2004-09-16 | Samsung Electronics Co., Ltd. | Deinterleaving apparatus and method for a digital communication system |
EP1463256A1 (en) * | 2003-03-25 | 2004-09-29 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
US20040267968A1 (en) * | 2003-06-25 | 2004-12-30 | Agilent Technologies Belgium S.A./N.V | Implementation of a column interleaving function with a limited amount of columns |
US20050034046A1 (en) * | 2002-02-18 | 2005-02-10 | Infineon Technologies Ag | Combined interleaver and deinterleaver, and turbo decoder comprising a combined interleaver and deinterleaver |
US20050091567A1 (en) * | 2000-01-03 | 2005-04-28 | Edmonston Brian S. | High spread highly randomized generatable interleavers |
US20050149808A1 (en) * | 2003-11-20 | 2005-07-07 | Purnima Naganathan | Method and apparatus for combining output of different type interleavers based on an input data sequence to obtain a combined output |
US20050216819A1 (en) * | 2004-02-19 | 2005-09-29 | Trellisware Technologies, Inc. | Method and apparatus for communications using turbo like codes |
US20060031737A1 (en) * | 2004-02-19 | 2006-02-09 | Trellisware Technologies, Inc. | Method and apparatus for communications using improved turbo like codes |
US20060107163A1 (en) * | 1999-02-26 | 2006-05-18 | Kazuhisa Obuchi | Turbo decoding apparatus and interleave-deinterleave apparatus |
US7051261B1 (en) * | 2002-10-29 | 2006-05-23 | Lattice Semiconductor Corporation | Turbo encoder with reduced processing delay |
US20060265634A1 (en) * | 2005-05-18 | 2006-11-23 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US20060282753A1 (en) * | 2005-05-18 | 2006-12-14 | Seagate Technology Llc | Second stage SOVA detector |
US20080115034A1 (en) * | 2006-11-10 | 2008-05-15 | Telefonaktiebolaget Lm Ericsson (Publ) | QPP Interleaver/De-Interleaver for Turbo Codes |
US20080133997A1 (en) * | 2006-12-01 | 2008-06-05 | Broadcom Corporation, A California Corporation | Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave |
US7395461B2 (en) | 2005-05-18 | 2008-07-01 | Seagate Technology Llc | Low complexity pseudo-random interleaver |
US20090110095A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
US20090110098A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
US20090110092A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
US20090110091A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
WO2009056801A1 (en) * | 2007-10-30 | 2009-05-07 | Sony Corporation | Data processing apparatus and method |
US20090125780A1 (en) * | 2007-10-30 | 2009-05-14 | Sony Corporation | Data processing apparatus and method |
US20100257426A1 (en) * | 2007-11-26 | 2010-10-07 | Takashi Yokokawa | Data processing apparatus and data processing method |
US20100269019A1 (en) * | 2007-11-26 | 2010-10-21 | Sony Corporation | Data processing apparatus and data processing method |
US20100275101A1 (en) * | 2007-11-26 | 2010-10-28 | Sony Corporation | Data processing apparatus and data processing method |
US20100281329A1 (en) * | 2007-11-26 | 2010-11-04 | Sony Corporation | Data processing apparatus, data processing method and program |
US20100299572A1 (en) * | 2007-11-26 | 2010-11-25 | Sony Corporation | Data processing apparatus and data processing method as well as encoding apparatus and encoding method |
US7843988B1 (en) * | 2006-09-21 | 2010-11-30 | Rockwell Collins, Inc. | System and method for pre-processing transmission sequences in a jammed environment |
US20100325512A1 (en) * | 2007-11-26 | 2010-12-23 | Sony Corporation | Data processing apparatus and data processing method |
CN101217336B (en) * | 2007-01-04 | 2011-02-09 | 浙江华立通信集团有限公司 | A TD-SCDMA/3G hard core turbo decoder |
EA017061B1 (en) * | 2007-10-30 | 2012-09-28 | Сони Корпорейшн | Data processing apparatus and method |
KR101209824B1 (en) | 2011-10-12 | 2012-12-07 | 고려대학교 산학협력단 | Block interleaving apparatus |
CN101425998B (en) * | 2007-10-30 | 2013-05-01 | 索尼株式会社 | Data processing apparatus and method |
US8885761B2 (en) | 2003-03-25 | 2014-11-11 | Sony Corporation | Data processing apparatus and method |
US8959403B2 (en) | 2006-11-10 | 2015-02-17 | Optis Wireless Technology, Llc | QPP interleaver/de-interleaver for turbo codes |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4532637B2 (en) * | 2000-01-11 | 2010-08-25 | キヤノン株式会社 | Data reordering device |
KR100925429B1 (en) * | 2002-12-28 | 2009-11-06 | 엘지전자 주식회사 | Turbo coder |
CN103166735B (en) * | 2011-12-15 | 2015-11-25 | 无锡中星微电子有限公司 | A kind of reading/writing method of interleaver |
CN114978420B (en) * | 2022-05-05 | 2023-05-16 | 重庆邮电大学 | Digital diversity copy encoder and method based on finite state machine |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4394642A (en) * | 1981-09-21 | 1983-07-19 | Sperry Corporation | Apparatus for interleaving and de-interleaving data |
US4547887A (en) * | 1983-11-30 | 1985-10-15 | The United States Of America As Represented By The Secretary Of The Army | Pseudo-random convolutional interleaving |
US5042033A (en) | 1989-06-05 | 1991-08-20 | Canadian Marconi Corporation | RAM-implemented convolutional interleaver |
US5056105A (en) * | 1988-11-25 | 1991-10-08 | Alcatel Transmission Par Faisceaux Hertziens | Interleaving method for a digital transmission system |
US5241563A (en) * | 1992-08-10 | 1993-08-31 | General Instrument Corporation | Method and apparatus for communicating interleaved data |
US5535220A (en) * | 1993-01-19 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Forward error correcting transmitter and receiver |
-
1998
- 1998-10-13 US US09/172,069 patent/US6353900B1/en not_active Expired - Lifetime
-
1999
- 1999-10-12 RU RU2001112766/09A patent/RU2001112766A/en not_active Application Discontinuation
- 1999-10-12 AU AU65172/99A patent/AU6517299A/en not_active Abandoned
- 1999-10-12 MX MXPA01003814A patent/MXPA01003814A/en unknown
- 1999-10-12 EP EP99953179A patent/EP1121761A1/en not_active Withdrawn
- 1999-10-12 CA CA002347237A patent/CA2347237A1/en not_active Abandoned
- 1999-10-12 IL IL14256299A patent/IL142562A0/en unknown
- 1999-10-12 CN CNB998142719A patent/CN1186880C/en not_active Expired - Fee Related
- 1999-10-12 WO PCT/US1999/024061 patent/WO2000022738A1/en active IP Right Grant
- 1999-10-12 KR KR1020017004714A patent/KR20010080157A/en active IP Right Grant
- 1999-10-12 JP JP2000576546A patent/JP2002527980A/en not_active Withdrawn
- 1999-10-12 ID IDW00200101068A patent/ID29939A/en unknown
- 1999-10-12 BR BR9914541-3A patent/BR9914541A/en not_active Application Discontinuation
-
2001
- 2001-04-17 NO NO20011889A patent/NO20011889L/en not_active Application Discontinuation
-
2002
- 2002-02-27 HK HK02101499.2A patent/HK1040011B/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4394642A (en) * | 1981-09-21 | 1983-07-19 | Sperry Corporation | Apparatus for interleaving and de-interleaving data |
US4547887A (en) * | 1983-11-30 | 1985-10-15 | The United States Of America As Represented By The Secretary Of The Army | Pseudo-random convolutional interleaving |
US5056105A (en) * | 1988-11-25 | 1991-10-08 | Alcatel Transmission Par Faisceaux Hertziens | Interleaving method for a digital transmission system |
US5042033A (en) | 1989-06-05 | 1991-08-20 | Canadian Marconi Corporation | RAM-implemented convolutional interleaver |
US5241563A (en) * | 1992-08-10 | 1993-08-31 | General Instrument Corporation | Method and apparatus for communicating interleaved data |
US5535220A (en) * | 1993-01-19 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Forward error correcting transmitter and receiver |
Non-Patent Citations (6)
Title |
---|
Berrou, C. et al.; "Near Optimum Error Correcting Coding and Decoding: Turbo-Codes"; Oct. 1, 1996; vol. 44, No. 10, pp. 1261-1271. |
Clark Jr. et al., "Error-Correction Coding for Digital Communications", Plenum Press, 1981, pp. 349-352, Dec. 1981.* |
Darmon et al., "A New Pseudo-Random Interleaving for Antijamming Applications", MILCOM '89, pp. 0006-0010, Dec. 1989.* |
Hong et al., "VLSI Design and Implementation of Low-Complexity Adaptive Turbo-Code Encoder and Decoder for Wireless Mobile Communication Applications", 1998 IEEE Workshops on Signal Processing Systems, Oct. 8-10, 1998, pp 233-242. * |
MacWilliams, F.J. et al.; "Pseudo-Random Sequences and Arrays"; Dec. 1976; vol. 64, No. 12, pp. 1715-1729. |
TR45.5.4 Standards Document Entitled "Turbo Code and Its Performance", by Lee et al., Hughes Network Systems, Phoenix AZ, (6 pages), 1997. |
Cited By (178)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625234B1 (en) * | 1998-12-10 | 2003-09-23 | Nortel Networks Limited | Efficient implementations of proposed turbo code interleavers for third generation code division multiple access |
US7533306B2 (en) * | 1999-02-26 | 2009-05-12 | Fujitsu Limited | Turbo decoding apparatus and interleave-deinterleave apparatus |
US20060107163A1 (en) * | 1999-02-26 | 2006-05-18 | Kazuhisa Obuchi | Turbo decoding apparatus and interleave-deinterleave apparatus |
US6563890B2 (en) * | 1999-03-01 | 2003-05-13 | Fujitsu Limited | Maximum a posteriori probability decoding method and apparatus |
US6480976B1 (en) * | 1999-03-11 | 2002-11-12 | Globespanvirata, Inc. | System and method for resource optimized integrated forward error correction in a DMT communication system |
US6536001B1 (en) * | 1999-03-11 | 2003-03-18 | Globespanvirata, Inc. | Circuit and method for convolutional interleaving using a single modulo operation |
US6590951B1 (en) * | 1999-04-02 | 2003-07-08 | Samsung Electronics Co., Ltd. | Address generator and address generating method for use in a turbo interleaver/deinterleaver |
US6721908B1 (en) * | 1999-04-02 | 2004-04-13 | Samsung Electronics Co., Ltd. | Interleaving/deinterleaving apparatus and method for a communication system |
US6591391B1 (en) * | 1999-09-08 | 2003-07-08 | Sencore Inc. | Method of generating an 8-VSB modulated signal |
US6701468B1 (en) * | 1999-09-10 | 2004-03-02 | Pioneer Corporation | Code error correcting circuit, code error correcting method, communicating apparatus and communicating method |
US20050091567A1 (en) * | 2000-01-03 | 2005-04-28 | Edmonston Brian S. | High spread highly randomized generatable interleavers |
US7302621B2 (en) * | 2000-01-03 | 2007-11-27 | Icoding Technology, Inc. | High spread highly randomized generatable interleavers |
US6714606B1 (en) * | 2000-01-04 | 2004-03-30 | Lsi Logic Corporation | Integrated services digital broadcasting deinterleaver architecture |
US6769093B1 (en) * | 2000-12-15 | 2004-07-27 | Conexant Systems, Inc. | Synchronization of a communications system |
US20050034046A1 (en) * | 2002-02-18 | 2005-02-10 | Infineon Technologies Ag | Combined interleaver and deinterleaver, and turbo decoder comprising a combined interleaver and deinterleaver |
US7051261B1 (en) * | 2002-10-29 | 2006-05-23 | Lattice Semiconductor Corporation | Turbo encoder with reduced processing delay |
US20040181556A1 (en) * | 2003-03-14 | 2004-09-16 | Samsung Electronics Co., Ltd. | Deinterleaving apparatus and method for a digital communication system |
US7185241B2 (en) * | 2003-03-14 | 2007-02-27 | Samsung Electronics Co., Ltd. | Deinterleaving apparatus and method for a digital communication system |
US9106494B2 (en) | 2003-03-25 | 2015-08-11 | Sony Corporation | Data processing apparatus and method |
US20040246888A1 (en) * | 2003-03-25 | 2004-12-09 | Jean-Luc Peron | Data processing apparatus and method |
EP1463256A1 (en) * | 2003-03-25 | 2004-09-29 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
EP2247055A1 (en) * | 2003-03-25 | 2010-11-03 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
EP1662740A1 (en) * | 2003-03-25 | 2006-05-31 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
EP1662739A1 (en) * | 2003-03-25 | 2006-05-31 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
US8130894B2 (en) | 2003-03-25 | 2012-03-06 | Sony Europe Limited | Data processing apparatus and method for use with a 4K interleaver in a digital video broadcasting (DVB) standard |
EP1463255A1 (en) * | 2003-03-25 | 2004-09-29 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
US10044540B2 (en) | 2003-03-25 | 2018-08-07 | Saturn Licensing Llc | Data processing apparatus and method |
US10333753B2 (en) | 2003-03-25 | 2019-06-25 | Saturn Licensing Llc | Data processing apparatus and method |
US8155228B2 (en) | 2003-03-25 | 2012-04-10 | Sony Europe Limited | Data processing apparatus and method |
US8885761B2 (en) | 2003-03-25 | 2014-11-11 | Sony Corporation | Data processing apparatus and method |
EP2117195A1 (en) * | 2003-03-25 | 2009-11-11 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
EP1931097A1 (en) * | 2003-03-25 | 2008-06-11 | Sony United Kingdom Limited | Interleaver for mapping symbols on the carriers of an OFDM system |
US9300515B2 (en) | 2003-03-25 | 2016-03-29 | Sony Corporation | Data processing apparatus and method |
US9722836B2 (en) | 2003-03-25 | 2017-08-01 | Saturn Licensing Llc | Data processing apparatus and method |
US7426240B2 (en) | 2003-03-25 | 2008-09-16 | Sony United Kingdom Limited | Data processing apparatus and method operable to map and de-map symbols and carrier signals of an Orthogonal Frequency Division Multiplexed (OFDM) symbol |
US20080298487A1 (en) * | 2003-03-25 | 2008-12-04 | Sony United Kingdom Limited | Data processing apparatus and method |
US20040267968A1 (en) * | 2003-06-25 | 2004-12-30 | Agilent Technologies Belgium S.A./N.V | Implementation of a column interleaving function with a limited amount of columns |
US7509556B2 (en) | 2003-11-20 | 2009-03-24 | Seagate Technology Llc | Method and apparatus for combining output of different type interleavers based on an input data sequence to obtain a combined output |
US20050149808A1 (en) * | 2003-11-20 | 2005-07-07 | Purnima Naganathan | Method and apparatus for combining output of different type interleavers based on an input data sequence to obtain a combined output |
US20050216819A1 (en) * | 2004-02-19 | 2005-09-29 | Trellisware Technologies, Inc. | Method and apparatus for communications using turbo like codes |
US7958425B2 (en) * | 2004-02-19 | 2011-06-07 | Trelliware Technologies, Inc. | Method and apparatus for communications using turbo like codes |
US7673213B2 (en) | 2004-02-19 | 2010-03-02 | Trellisware Technologies, Inc. | Method and apparatus for communications using improved turbo like codes |
US20060031737A1 (en) * | 2004-02-19 | 2006-02-09 | Trellisware Technologies, Inc. | Method and apparatus for communications using improved turbo like codes |
US20060282753A1 (en) * | 2005-05-18 | 2006-12-14 | Seagate Technology Llc | Second stage SOVA detector |
US20080215831A1 (en) * | 2005-05-18 | 2008-09-04 | Seagate Technology Llc | Interleaver With Linear Feedback Shift Register |
US7360147B2 (en) | 2005-05-18 | 2008-04-15 | Seagate Technology Llc | Second stage SOVA detector |
US20060265634A1 (en) * | 2005-05-18 | 2006-11-23 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US7395461B2 (en) | 2005-05-18 | 2008-07-01 | Seagate Technology Llc | Low complexity pseudo-random interleaver |
US7502982B2 (en) | 2005-05-18 | 2009-03-10 | Seagate Technology Llc | Iterative detector with ECC in channel domain |
US7788560B2 (en) | 2005-05-18 | 2010-08-31 | Seagate Technology Llc | Interleaver with linear feedback shift register |
US7843988B1 (en) * | 2006-09-21 | 2010-11-30 | Rockwell Collins, Inc. | System and method for pre-processing transmission sequences in a jammed environment |
US20080115034A1 (en) * | 2006-11-10 | 2008-05-15 | Telefonaktiebolaget Lm Ericsson (Publ) | QPP Interleaver/De-Interleaver for Turbo Codes |
US8239711B2 (en) * | 2006-11-10 | 2012-08-07 | Telefonaktiebolaget Lm Ericsson (Publ) | QPP interleaver/de-interleaver for turbo codes |
US8959403B2 (en) | 2006-11-10 | 2015-02-17 | Optis Wireless Technology, Llc | QPP interleaver/de-interleaver for turbo codes |
US20080133997A1 (en) * | 2006-12-01 | 2008-06-05 | Broadcom Corporation, A California Corporation | Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave |
CN101217336B (en) * | 2007-01-04 | 2011-02-09 | 浙江华立通信集团有限公司 | A TD-SCDMA/3G hard core turbo decoder |
EP2421165A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data processing apparatus and method |
EP2421160A3 (en) * | 2007-10-30 | 2012-10-03 | Sony Corporation | Data processing apparatus and method |
US20090125780A1 (en) * | 2007-10-30 | 2009-05-14 | Sony Corporation | Data processing apparatus and method |
EP2056468A3 (en) * | 2007-10-30 | 2009-08-26 | Sony Corporation | Data processing apparatus and method |
EP2056463A3 (en) * | 2007-10-30 | 2009-08-26 | Sony Corporation | Data processing apparatus and method |
EP2056549A3 (en) * | 2007-10-30 | 2009-09-16 | Sony Corporation | Data processing apparatus and method |
EP2056550A3 (en) * | 2007-10-30 | 2009-09-16 | Sony Corporation | Data processing apparatus and method |
EP2056464A3 (en) * | 2007-10-30 | 2009-09-16 | Sony Corporation | Data processing apparatus and method |
EP2056510A3 (en) * | 2007-10-30 | 2009-09-16 | Sony Corporation | Data processing apparatus and method |
EP2056475A3 (en) * | 2007-10-30 | 2009-05-13 | Sony Corporation | Data processing apparatus and method |
WO2009056801A1 (en) * | 2007-10-30 | 2009-05-07 | Sony Corporation | Data processing apparatus and method |
EP2056478A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
CN101843023A (en) * | 2007-10-30 | 2010-09-22 | 索尼公司 | Data processing equipment and method |
US10965506B2 (en) | 2007-10-30 | 2021-03-30 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
USRE48147E1 (en) | 2007-10-30 | 2020-08-04 | Saturn Licensing Llc | 16K mode interleaver in a digital video broadcasting (DVB) standard |
US10541844B2 (en) | 2007-10-30 | 2020-01-21 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
EP2056471A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP3582399A1 (en) * | 2007-10-30 | 2019-12-18 | Saturn Licensing LLC | Date processing apparatus and method |
EP3582401A1 (en) * | 2007-10-30 | 2019-12-18 | Saturn Licensing LLC | Data processing apparatus and method |
US20100296593A1 (en) * | 2007-10-30 | 2010-11-25 | Sony Corporation | Data processing apparatus and method |
EP2056466A1 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP3582400A1 (en) * | 2007-10-30 | 2019-12-18 | Saturn Licensing LLC | Data processing apparatus and method |
EP2056470A1 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP2056473A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP2333966A2 (en) * | 2007-10-30 | 2011-06-15 | Sony Corporation | Data processing apparatus and method |
EP2333965A2 (en) * | 2007-10-30 | 2011-06-15 | Sony Corporation | Data processing apparatus and method |
EP2333967A2 (en) * | 2007-10-30 | 2011-06-15 | Sony Corporation | Data Processing Apparatus and Method |
EP2421166A3 (en) * | 2007-10-30 | 2012-02-29 | Sony Corporation | Data processing apparatus and method |
EP2421163A3 (en) * | 2007-10-30 | 2012-02-29 | Sony Corporation | Data processing apparatus and method |
EP2056467A1 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP2421162A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data processing apparatus and method |
EP2421161A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data processing apparatus and method |
EP2056477A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data procesing apparatus and method |
EP2333967A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data Processing Apparatus and Method |
EP2421164A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data processing apparatus and method |
EP2333963A3 (en) * | 2007-10-30 | 2012-03-28 | Sony Corporation | Data processing apparatus and method |
AU2008237590B2 (en) * | 2007-10-30 | 2012-03-29 | Sony Corporation | Data processing apparatus and method |
AU2008237593B2 (en) * | 2007-10-30 | 2012-04-05 | Sony Corporation | Data processing apparatus and method |
US8155178B2 (en) | 2007-10-30 | 2012-04-10 | Sony Corporation | 16k mode interleaver in a digital video broadcasting (DVB) standard |
EP2056474A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
AU2008230049B2 (en) * | 2007-10-30 | 2012-04-12 | Sony Corporation | Data processing apparatus and method |
US8170091B2 (en) | 2007-10-30 | 2012-05-01 | Sony Corporation | 1K mode interleaver in a digital video broadcasting (DVB) standard |
US8170090B2 (en) | 2007-10-30 | 2012-05-01 | Sony Corporation | Data processing apparatus and method using a 32K mode interleaver in a digital video broadcasting (DVB) standard including the DVB-Terrestrial2 (DVB-T2) standard |
US8179955B2 (en) | 2007-10-30 | 2012-05-15 | Sony Corporation | Low density parity check (LDPC) coding for a 32K mode interleaver in a digital video broadcasting (DVB) standard |
US8179954B2 (en) | 2007-10-30 | 2012-05-15 | Sony Corporation | Odd interleaving only of an odd-even interleaver when half or less data subcarriers are active in a digital video broadcasting (DVB) standard |
EP2333965A3 (en) * | 2007-10-30 | 2012-05-30 | Sony Corporation | Data processing apparatus and method |
EP2341629A3 (en) * | 2007-10-30 | 2012-05-30 | Sony Corporation | Data processing apparatus and method |
EP2456077A3 (en) * | 2007-10-30 | 2012-05-30 | Sony Corporation | Data processing apparatus and method |
EP2426823A3 (en) * | 2007-10-30 | 2012-05-30 | Sony Corporation | Data processing apparatus and method |
US8199802B2 (en) | 2007-10-30 | 2012-06-12 | Sony Corporation | 8K mode interleaver with odd interleaving only and per OFDM symbol permutation code change in a digital video broadcasting (DVB) standard |
US8208525B2 (en) | 2007-10-30 | 2012-06-26 | Sony Corporation | 2K mode interleaver with odd interleaving only and per OFDM symbol permutation code change in a digital video broadcasting (DVB) standard |
EP2056469A1 (en) | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
EP2333964A3 (en) * | 2007-10-30 | 2012-08-08 | Sony Corporation | Data processing apparatus and method |
EP2403147A3 (en) * | 2007-10-30 | 2012-08-08 | Sony Corporation | Data processing apparatus and method |
EP2405584A3 (en) * | 2007-10-30 | 2012-08-08 | Sony Corporation | Data processing apparatus and method |
EP2333966A3 (en) * | 2007-10-30 | 2012-08-08 | Sony Corporation | Data processing apparatus and method |
EP2421169A3 (en) * | 2007-10-30 | 2012-08-15 | Sony Corporation | Data processing apparatus and method |
EP2421159A3 (en) * | 2007-10-30 | 2012-08-15 | Sony Corporation | Data processing apparatus and method |
EA017061B1 (en) * | 2007-10-30 | 2012-09-28 | Сони Корпорейшн | Data processing apparatus and method |
EP2421168A3 (en) * | 2007-10-30 | 2012-10-03 | Sony Corporation | Data processing apparatus and method |
EP2421158A3 (en) * | 2007-10-30 | 2012-10-03 | Sony Corporation | Data processing apparatus and method |
EP2056476A3 (en) * | 2007-10-30 | 2009-05-13 | Sony Corporation | Data processing apparatus and method |
EP2421167A3 (en) * | 2007-10-30 | 2012-10-03 | Sony Corporation | Data processing apparatus and method |
US8306137B2 (en) | 2007-10-30 | 2012-11-06 | Sony Corporation | Data processing apparatus and method for use in a 0.5K mode interleaver in a digital video broadcasting standard including DVB-Terrestrial2 |
US8320484B2 (en) | 2007-10-30 | 2012-11-27 | Sony Corporation | 1K mode interleaver in a digital video broadcasting (DVB) standard |
US20090110095A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
US10164743B2 (en) | 2007-10-30 | 2018-12-25 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
US8351541B2 (en) | 2007-10-30 | 2013-01-08 | Sony Corporation | Low density parity check (LDPC) coding for a 32k mode interleaver in a digital video broadcasting (DVB) standard |
US8351528B2 (en) | 2007-10-30 | 2013-01-08 | Sony Corporation | 8K mode interleaver with odd interleaving only and per OFDM symbol permutation code change in a digital video broadcasting (DVB) standard |
US8369434B2 (en) | 2007-10-30 | 2013-02-05 | Sony Corporation | 16k mode interleaver in a digital video broadcasting (DVB) standard |
US8374269B2 (en) | 2007-10-30 | 2013-02-12 | Sony Corporation | Odd interleaving only of an odd-even interleaver when half or less data subcarriers are active in a digital video broadcasting (DVB) system |
US20090110098A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
US8406339B2 (en) | 2007-10-30 | 2013-03-26 | Sony Corporation | 2K mode interleaver with odd interleaving only and per OFDM symbol permutation code change in a digital video broadcasting (DVB) standard |
CN101843023B (en) * | 2007-10-30 | 2013-04-17 | 索尼公司 | Data processing apparatus and method |
CN101425998B (en) * | 2007-10-30 | 2013-05-01 | 索尼株式会社 | Data processing apparatus and method |
US10020970B2 (en) | 2007-10-30 | 2018-07-10 | Saturn Licensing Llc | Data processing apparatus and method for interleaving and deinterleaving data |
USRE46550E1 (en) | 2007-10-30 | 2017-09-12 | Saturn Licensing Llc | 16k mode interleaver in a digital video broadcasting (DVB) standard |
US20090110092A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
CN101425992B (en) * | 2007-10-30 | 2013-08-14 | 索尼株式会社 | Data processing apparatus and method |
CN101425994B (en) * | 2007-10-30 | 2013-08-14 | 索尼株式会社 | Data processing apparatus and method |
US9722835B2 (en) | 2007-10-30 | 2017-08-01 | Saturn Licensing Llc | Data processing apparatus and method for interleaving and deinterleaving data |
US9338043B2 (en) | 2007-10-30 | 2016-05-10 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
US20090110093A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
CN103401830A (en) * | 2007-10-30 | 2013-11-20 | 索尼株式会社 | Data processing apparatus and method |
US8619890B2 (en) | 2007-10-30 | 2013-12-31 | Sony Corporation | Data processing apparatus and method for use in a 0.5K mode interleaver in a digital video broadcasting standard including DVB-Terrestrial2 |
TWI427954B (en) * | 2007-10-30 | 2014-02-21 | Sony Corp | Data processing apparatus and method |
US8737522B2 (en) | 2007-10-30 | 2014-05-27 | Sony Corporation | Data processing apparatus and method for interleaving and deinterleaving data |
CN101425995B (en) * | 2007-10-30 | 2014-06-11 | 索尼株式会社 | Data processing apparatus and method |
CN101425996B (en) * | 2007-10-30 | 2014-06-11 | 索尼株式会社 | Data processing apparatus and method |
CN101425997B (en) * | 2007-10-30 | 2014-06-11 | 索尼株式会社 | Data processing apparatus and method |
EP2469785A3 (en) * | 2007-10-30 | 2014-10-22 | Sony Corporation | Data processing apparatus and method |
EP2469715A3 (en) * | 2007-10-30 | 2014-10-22 | Sony Corporation | Data processing apparatus and method |
KR101459151B1 (en) | 2007-10-30 | 2014-11-07 | 소니 주식회사 | Data processing apparatus and method |
TWI461004B (en) * | 2007-10-30 | 2014-11-11 | Sony Corp | Data processing apparatus and method |
EP2056472A1 (en) * | 2007-10-30 | 2009-05-06 | Sony Corporation | Data processing apparatus and method |
US8891692B2 (en) | 2007-10-30 | 2014-11-18 | Sony Corporation | Data processing apparatus and method for interleaving and deinterleaving data |
US8891691B2 (en) | 2007-10-30 | 2014-11-18 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
KR101463627B1 (en) | 2007-10-30 | 2014-11-19 | 소니 주식회사 | Data processing apparatus and method |
KR101463624B1 (en) | 2007-10-30 | 2014-11-19 | 소니 주식회사 | Data processing apparatus and method |
KR101464762B1 (en) | 2007-10-30 | 2014-11-24 | 소니 주식회사 | Data processing apparatus and method |
KR101464761B1 (en) | 2007-10-30 | 2014-11-24 | 소니 주식회사 | Data processing apparatus and method |
US20090110091A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
TWI474692B (en) * | 2007-10-30 | 2015-02-21 | Sony Corp | Data processing apparatus and method |
US9054927B2 (en) | 2007-10-30 | 2015-06-09 | Sony Corporation | Data processing apparatus and method for use in an interleaver suitable for multiple operating modes |
US9100251B2 (en) | 2007-10-30 | 2015-08-04 | Sony Corporation | Data processing apparatus and method for interleaving and deinterleaving data |
US20090110094A1 (en) * | 2007-10-30 | 2009-04-30 | Sony Corporation | Data processing apparatus and method |
TWI508503B (en) * | 2007-10-30 | 2015-11-11 | Sony Corp | Data processing apparatus and method |
US8402337B2 (en) | 2007-11-26 | 2013-03-19 | Sony Corporation | Data processing apparatus and data processing method as well as encoding apparatus and encoding method |
US20100299572A1 (en) * | 2007-11-26 | 2010-11-25 | Sony Corporation | Data processing apparatus and data processing method as well as encoding apparatus and encoding method |
US8516335B2 (en) | 2007-11-26 | 2013-08-20 | Sony Corporation | Data processing apparatus and data processing method |
US8499214B2 (en) | 2007-11-26 | 2013-07-30 | Sony Corporation | Data processing apparatus and data processing method |
US8489956B2 (en) | 2007-11-26 | 2013-07-16 | Sony Corporation | Data processing apparatus and data processing method |
US8489955B2 (en) | 2007-11-26 | 2013-07-16 | Sony Corporation | Data processing apparatus, data processing method and program |
TWI410055B (en) * | 2007-11-26 | 2013-09-21 | Sony Corp | Data processing device, data processing method and program product for performing data processing method on computer |
US20100257426A1 (en) * | 2007-11-26 | 2010-10-07 | Takashi Yokokawa | Data processing apparatus and data processing method |
US8578237B2 (en) | 2007-11-26 | 2013-11-05 | Sony Corporation | Data processing apparatus and data processing method |
US20100325512A1 (en) * | 2007-11-26 | 2010-12-23 | Sony Corporation | Data processing apparatus and data processing method |
US8335964B2 (en) | 2007-11-26 | 2012-12-18 | Sony Corporation | Data processing apparatus and data processing method as well as encoding apparatus and encoding method |
US20100281329A1 (en) * | 2007-11-26 | 2010-11-04 | Sony Corporation | Data processing apparatus, data processing method and program |
US20100275101A1 (en) * | 2007-11-26 | 2010-10-28 | Sony Corporation | Data processing apparatus and data processing method |
US20100269019A1 (en) * | 2007-11-26 | 2010-10-21 | Sony Corporation | Data processing apparatus and data processing method |
KR101209824B1 (en) | 2011-10-12 | 2012-12-07 | 고려대학교 산학협력단 | Block interleaving apparatus |
Also Published As
Publication number | Publication date |
---|---|
BR9914541A (en) | 2002-01-02 |
NO20011889L (en) | 2001-06-05 |
CN1329777A (en) | 2002-01-02 |
KR20010080157A (en) | 2001-08-22 |
WO2000022738A1 (en) | 2000-04-20 |
AU6517299A (en) | 2000-05-01 |
MXPA01003814A (en) | 2003-07-21 |
NO20011889D0 (en) | 2001-04-17 |
JP2002527980A (en) | 2002-08-27 |
HK1040011B (en) | 2005-09-02 |
IL142562A0 (en) | 2002-03-10 |
EP1121761A1 (en) | 2001-08-08 |
CA2347237A1 (en) | 2000-04-20 |
CN1186880C (en) | 2005-01-26 |
HK1040011A1 (en) | 2002-05-17 |
ID29939A (en) | 2001-10-25 |
RU2001112766A (en) | 2003-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6353900B1 (en) | Coding system having state machine based interleaver | |
JP4955150B2 (en) | Highly parallel MAP decoder | |
US7523377B2 (en) | Random-access multi-directional CDMA2000 turbo code interleaver | |
US6304991B1 (en) | Turbo code interleaver using linear congruential sequence | |
US6854077B2 (en) | Apparatus and method for providing turbo code interleaving in a communications system | |
US6304985B1 (en) | Coding system having state machine based interleaver | |
WO2000059117A1 (en) | Generalized address generation for bit reversed random interleaving | |
JP2010016861A (en) | Memory architecture for map decoder | |
KR100628201B1 (en) | Method for Turbo Decoding | |
JP2001028548A (en) | Device and method for error correction encoding, device and method for error correction decoding, information processor, radio communications equipment and storage medium | |
KR20010059446A (en) | Method for interleaving using magic matrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SINDHUSHAYANA, NAGABHUSHANA T.;STEIN, JEREMY;VIJAYAN, RAJIV;AND OTHERS;REEL/FRAME:009627/0113;SIGNING DATES FROM 19981117 TO 19981123 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |