WO2003071689A2 - Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler - Google Patents

Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler Download PDF

Info

Publication number
WO2003071689A2
WO2003071689A2 PCT/DE2003/000145 DE0300145W WO03071689A2 WO 2003071689 A2 WO2003071689 A2 WO 2003071689A2 DE 0300145 W DE0300145 W DE 0300145W WO 03071689 A2 WO03071689 A2 WO 03071689A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
interleaving
ram
deinterleaving
data memory
Prior art date
Application number
PCT/DE2003/000145
Other languages
English (en)
French (fr)
Other versions
WO2003071689A3 (de
Inventor
Jens Berkmann
Thomas Herndl
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2003071689A2 publication Critical patent/WO2003071689A2/de
Publication of WO2003071689A3 publication Critical patent/WO2003071689A3/de
Priority to US10/920,902 priority Critical patent/US20050034046A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • H03M13/2714Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Definitions

  • the invention relates to circuits which interleave or deinterleave a data stream as a function of a selected mode, and to turbo decoders which comprise such a circuit. Furthermore, the invention relates to methods for carrying out and
  • the signal to be transmitted is subjected to channel coding and interleaving after being processed in a source encoder. Both measures give the signal to be transmitted a certain robustness.
  • channel coding is targeted
  • the introduction of redundancy in the signal to be transmitted creates an effective error protection.
  • the interleaving ensures that channel interference, which would result in group bit errors (so-called bundle errors) without interleaving, results in temporally distributed data of the data to be sent
  • the data stream to be sent is interleaved in the transmitter in data blocks, i.e. the data bits of each data block are after the same
  • Interleaving rule permuted by the transmitter-side interleaver The reverse transformation, with which the data bits are brought back into their original order, takes place in the receiver by means of a deinterleaver according to the inverse deinterleaving rule.
  • Binary, concurrently concatenated recursive convolutional codes are referred to as so-called "turbo codes”.
  • Turbo coding combines the addition of redundancy with the nesting of the data stream to be sent. Turbo codes represent a powerful form of error protection coding, especially when transmitting large data blocks.
  • the UMTS Universal Mobile Telecommunications System
  • the UMTS standard specifies the interleaving or deinterleaving rule depending on the (variable) block length, which is between 40 and 5114 bits.
  • the calculation of the nesting rule i.e. the addresses for the permutation of the bits of the data block is described in the technical specification 3GPP TS 25.212 V3.5.0 (2000-12) in chapters 4.2.3.2.3.1. to 4.2.3.2.3.3. specified.
  • Interleaver has a data memory for storing the data to be interleaved, a continuous address counter and an address exchanger.
  • the continuous address counter generates the addresses for loading the data memory, while the address exchanger supplies the addresses for reading out the data memory in accordance with the specified nesting specification.
  • deinterleavers usually have the same structural structure as an interleaver.
  • the deinterleaving is achieved by reading out the data from the data memory in accordance with the inverse deinterleaving rule.
  • both interleavers and de-eggs are required.
  • An extremely important representative of such a circuit type is a turbo decoder, which is used in radio receivers to remove the redundancy added during turbo coding from the received data stream.
  • the decoding of a turbo-coded data stream is relatively computationally complex.
  • the high computational effort is caused on the one hand by the fact that an iterative method is used in turbo decoding, in which the individual data have to be decoded several times as a result of the multiple running through a recursion loop.
  • an interleaving and a deinterleaving procedure must be carried out in each iteration loop.
  • turbo decoders therefore contain an interleaver and a deinterleaver.
  • the interleaver and the deinterleaver are implemented independently of one another, i.e. Both the interleaver and the deinterleaver are assigned a RAM area of size K * Q, where K denotes the block length and Q the word length of the data to be interleaved or deinterleaved (so-called soft bits).
  • the interleaver works according to the interleaving rule and the deinterleaver according to the (inverse) deinterleaving rule.
  • the nesting rule must first be calculated in accordance with the UMTS specifications. This regulation is defined in the UMTS standard in the form of a coordinate transformation matrix. The deinterleaving rule is then obtained for the rule by inverting the coordinate transformation matrix.
  • the invention is based on the object of specifying a circuit which can carry out both interleaving and deinterleaving and has a low implementation outlay. Furthermore, the invention aims to provide an inexpensive to implement interleaving and deinterleaving method. In particular, the circuit according to the invention and the method according to the invention, when used in a turbo decoder, are intended to reduce its implementation effort.
  • a first circuit type comprises a data memory for temporarily storing the data of a data stream. Furthermore, the circuit comprises a first address generator, which provides a sequence of consecutive addresses for addressing the data memory, and a second address generator, which provides a sequence of addresses representing the interleaving rule for addressing the data memory.
  • a logic means causes the data memory in the interleaving mode during a read process and in
  • Deinterleaving mode is addressed by the second address generator during a write operation and is addressed by the first address generator in interleaving mode during a write operation and in deinterleaving mode during a read operation.
  • the combined interleaving and deinterleaving circuit according to the invention has the advantage that it only requires one memory area for carrying out the two operating modes (interleaving / deinterleaving). Another major advantage is that both for the nesting process and for the Deinterleaving process the same address sequence (generated by the second address generator) is used. There is no need to convert this "nesting address sequence" into the corresponding "deinterleaving address sequence".
  • the circuit according to the second aspect of the invention corresponds structurally to the circuit according to claim 1, but the function of the second logic means is different from the function of the first logic means.
  • the main difference is that the address sequence from the second address generator is used for loading the data memory as part of an interleaving procedure in the circuit according to the second aspect of the invention, and consequently this must already exist, while this is the case in the circuit according to the first aspect of the invention is not required. Otherwise, the circuit according to the second aspect of the invention also has the advantages already mentioned.
  • the first address generator, the second address generator and also the first and / or second logic means can be implemented both in hardware and in software.
  • "Realized in software” means that a program is executed in machine code to calculate the respective results (address sequences or logic values).
  • a hardware implementation includes logic and arithmetic elements that do not process machine code.
  • the first and / or second logic means comprise an XOR gate, the inputs of which are connected to the read / write signal for the data memory and a mode signal indicating the mode. It also contains a multiplexer, the control input of which is connected to the output of the XOR gate and the multiplexer inputs of which are connected to the first and the second address generator. In this way a simple hardware implementation of the logic means is created.
  • the invention further relates to a turbo decoder, which comprises a channel decoder and a circuit for interleaving and deinterleaving a data stream according to one of the preceding claims.
  • a turbo decoder which comprises a channel decoder and a circuit for interleaving and deinterleaving a data stream according to one of the preceding claims.
  • De-interleaving a data stream according to claim 1 comprises.
  • the reason that a turbo decoder with a circuit for interleaving and deinterleaving according to claim 1 has specific advantages over a turbo decoder with a circuit for interleaving and deinterleaving according to claim 2 is that on the one hand the calculation of the
  • the deinterleaving procedure takes place. Because of these circumstances, it is possible to initialize the interleaving step (i.e. address calculation in the second address generator) in parallel with the first decoding, thereby saving a considerable amount of time (the channel decoder does not have to wait for the address calculation in the second address generator to be completed).
  • Another advantage of this embodiment is that the UMTS standard specifies the algorithm for calculating the interleaving addresses, which is why
  • turbo decoder is designed to carry out decoding using sliding window technology and, as the available rewritable memory area, only the common data memory of the circuit for interleaving and deinterleaving and a buffer memory for intermediate storage of interleaved and deinterleaved data read from the data memory, the memory size of which is adapted to the length of the sliding window. Since the memory size of the buffer memory can be designed to be significantly smaller than the memory size of the common data memory of the circuit for interleaving and deinterleaving, the total memory requirement is almost halved compared to conventional solutions, each with its own memory areas for the interleaver and the deinterleaver.
  • FIG. 1 shows a schematic diagram of an interleaver
  • FIG. 5 shows a first architecture of a deinterleaver
  • 6 shows a second architecture of a deinterleaver
  • 7 shows a first exemplary embodiment of a combined interleaver and deinterleaver according to the invention
  • FIG. 8 shows a second exemplary embodiment of a combined interleaver and deinterleaver according to the invention
  • FIG. 9 shows a block diagram of a known turbo encoder for generating a turbo code
  • FIG. 10 shows a block diagram of a known turbo decoder for decoding a turbo-coded data stream
  • FIG. 11 shows an architecture of a turbo decoder according to the invention with an internal combined interleaver and deinterleaver;
  • FIG. 12 is a timing diagram of that shown in FIG. 11
  • FIG. 13 is a timing diagram of that shown in FIG. 11
  • K denotes the sequence length on which the nesting is based, which we will also refer to as block length in the following. Since the interleaving takes place in blocks, the interleaver IL is also referred to as a block interleaver.
  • This rule can be expressed as a function (i), where ⁇ (i) indicates the time step index in the input data stream from which a data x ⁇ (i) to be positioned on the time step index i in the output data stream is to be referred. That is, the regulation ⁇ (i) reads:
  • FIG. 2 shows an implementation example of the interleaver IL from FIG. 1.
  • the interleaver IL comprises a data memory RAM, a two-way multiplexer MUX and an address generator AG, which implements the interleaving rule ⁇ (i).
  • the interleaver IL has a first input 1, to which a read / write signal rw is present.
  • a second input 2 receives an address signal i which corresponds to the time step index i of the input data sequence X and e.g. can be generated by a counter.
  • the input data sequence X is present at a third input 3.
  • the read / write signal rw is the read / write switch R / W of the data memory RAM and also the control input of the
  • Input (rw 1) of the multiplexer MUX supplied.
  • the exit of the multiplexer MUX is connected to an address input A of the data memory RAM.
  • the data memory RAM also has a write data input WD and a read data output RD.
  • the data sequence X obtained via input 3 is fed to the write data input WD, and the write data output RD outputs the interleaved data sequence Y via an output 4 of the interleaver IL.
  • interleaver IL The operation of the interleaver IL is illustrated in the lower part of FIG. 2:
  • the write addressing present at address input A corresponds directly to the input time step index i.
  • ⁇ (i) points to the address of the data memory RAM from which a date is to be taken and output at the output time step index i.
  • FIG. 2 The addressing explained in FIG. 2 is referred to as non-nested, since it is based on the time step index of the non-nested data sequence X.
  • an address generator AG ' which performs the inverse function ⁇ _: L (i)
  • one speaks of a nested internal addressing since this is based on the time step index of the nested data sequence Y oriented.
  • wr-addr denotes the write addresses and rd-addr denotes the read addresses for memory addressing.
  • the deinterleaver DIL receives the nested data sequence Y on the input side and outputs the original, deinterleaved data sequence X on the output side. In other words, the deinterleaver DIL undoes the re-sorting of the data stream carried out by the interleaver IL, IL '.
  • the deinterleaver DIL (see FIG. 5) can be constructed based on the architecture of the interleaver IL shown in FIG. 2. The only difference is that when reading the data, the inverse address function ⁇ ⁇ 1 (i) must be performed instead of ⁇ (i). Analogously to this, the defaching egg DIL 'shown in FIG. 6 is based on the in
  • Fig. 3 illustrated architecture of the interleaver IL 'formed.
  • the function ⁇ (i) is used instead of the function ⁇ -1 (i).
  • 7 shows a first exemplary embodiment of a combined interleaver and deinterleaver IDL 1 according to the invention.
  • the same functional elements as in the previous figures are denoted by the same reference numerals.
  • the interlocking and deinterleaving egg IDL1 according to the invention differs from the interleaver IL of FIG. 2 in that it has a further input 5 and an XOR gate XOR.
  • Input 5 is connected to one input of the XOR gate XOR, the other input of the XOR gate XOR is connected to input 1.
  • the output of the XOR gate XOR controls the multiplexer MUX.
  • the multiplexer inputs are interchanged in comparison to the interleaver IL shown in FIG. 2, ie the address generator AG is connected to the multiplexer input "0" and the index counter (not shown) is connected to the multiplexer input "1" in connection.
  • This mode signal il / dil in conjunction with the logic of the XOR gate, causes the combined interleaver and deinterleaver IDL1 to operate in the interleaving mode in accordance with the interleaver IL shown in FIG. 2 (see FIG. 7, lower part) and in the deinterleaving mode operates according to the de-observer DIL 'shown in FIG. 6 (see FIG. 7, upper part).
  • the combined interlocking and deinterleader IDL1 carries out a non-interleaved addressing with the address generator AG, based on the sequence X.
  • the one (address mapping) function ⁇ (i) is required in the combined interlocking and de-interlocking egg IDL1.
  • the same memory area RAM is used for the two operating modes.
  • FIG. 8 A second exemplary embodiment of a combined interleaver and deinterleaver IDL2 according to the invention is shown in FIG. 8. Its structure corresponds to the design of the combined interleaver and deinterleaver IDL1 shown in FIG.
  • the interlocking and deinterleaving machine IDL2 shown in FIG. 8 carries out a nested addressing that is linked to the sequence Y in both modes.
  • the two combined interlocking and deinterleaving eggs IDL1 and IDL2 have in common that (apart from the additional input 5 and the XOR gate XOR) they only have the complexity of a single interleaver (or deinterleaver). They also show the same logical input / output behavior. Both IDL1 and IDL2 only require a single-ported memory area RAM.
  • turbo decoder For a better understanding of a turbo decoder is based on
  • the turbo encoder TCOD shown here has a turbo interleaver T_IL, two identical, recursive, systematic convolutional encoders RSCl and RSC2 (e.g. 8-state convolutional encoder), two optional puncturers PKT1 and PKT2 and a multiplexer MUXC.
  • the input signal is a bit sequence U to be coded, which is, for example, a source-coded speech or
  • Video signal can act.
  • the turbo encoder TCOD generates a digital output signal D which is obtained by multiplexing the input signal U (so-called systematic signal), a signal Cl coded by RSCl and possibly punctured by PKT1 and one by T IL interleaved, coded by RSC2 and possibly punctured by PKT2 signal C2 is generated.
  • the block length K is variable and is between 40 and 5114 bits.
  • a special interleaving specification is prescribed in the standard, according to which the turbo interleaver T_IL works.
  • the error protection-coded data signal D is then modulated in a suitable manner on a carrier and transmitted over a transmission channel.
  • the turbo decoder TDEC comprises first and second demultiplexers DMUX1 and DMUX2, first and second convolutional decoders DEC1 and DEC2, a turbo
  • Interleaver IL1 a first and a second turbo deinterleaver DIL1 and DIL2 as well as a decision logic (threshold value decider) TL.
  • An equalized data sequence D which is the encoded data sequence D reconstructed in the receiver, is provided by a demodulator (not shown) of the receiver.
  • turbo decoder TDEC shown in Fig. 10 is briefly explained below.
  • the first demultiplexer DMUX1 splits the equalized data signal D into the equalized systematic data signal U (reconstructed version of the input signal U) and an equalized redundancy signal C.
  • the latter is from the second
  • Demultiplexer DMUX2 depending on the multiplexing and puncturing regulation used in the turbo encoder TCOD in the two equalized redundant partial signals Cl and C2 (these are the reconstructed versions of the redundant partial signals Cl and C2) split.
  • the two convolutional decoders DEC1 and DEC2 can e.g. MAP symbol estimator.
  • the first convolutional decoder DECl calculates first logarithmic reliability data ⁇ l in the form of LLRs (log-likelihood ratios) based on the data signals U and Cl and a feedback signal Z (so-called extrinsic information).
  • the first reliability data ⁇ l which also contain the systematic data of the data signal Ü, are interleaved by the turbo interleaver IL1 and the interleaved reliability data ⁇ li are fed to the second convolutional decoder DEC2.
  • the turbo interleavers T_IL and IL1 work in the same way (however, T_IL interleaves a bit stream and IL1 a data stream with word widths greater than 1).
  • the second convolutional decoder DEC2 calculates an interleaved feedback signal Zi and interleaved second logarithmic reliability data ⁇ 2 ⁇ from the interleaved reliability data ⁇ lj and from the reconstructed redundancy partial signal data C2, likewise in the form of LLRs.
  • the interleaved feedback signal 7> ⁇ is deinterleaved by the first turbo deinterleaver DIL1 and results in the feedback signal Z.
  • the recursion loop shown is run through several times. Each run is based on the data of the same data block. Two decoding steps (in DEC1 and DEC2) are carried out per run. The interleaved second reliability data I ⁇ 2 ⁇ obtained during the last run become of the second
  • turbo decoding comprises a turbo interleaving procedure (IL1) and a turbo deinterleaving procedure (DIL1) for each loop pass.
  • IL1 turbo interleaving procedure
  • DIL1 turbo deinterleaving procedure
  • two separate circuits interleaver and deinterleaver
  • two data memories the size of a data block are used and generators are required to provide the interleaving rule and the inverted interleaving rule.
  • FIG. 11 shows the architecture of an exemplary embodiment of a turbo decoder according to the invention (the signal splitting on the input side in FIG. 10 by means of the demultiplexers DMUX1 and DMUX2 is omitted in FIG. 11).
  • the circuit comprises a turbo decoder core TD_K, which carries out the convolutional decoding and thus performs the functions of the two circuit blocks DEC1 and DEC2 in FIG. 10.
  • the turbo decoder core TD_K is connected to a first control unit CON1, which uses a control connection 10 to control the flow of the turbo
  • Decoder core TD_K performs and allows data exchange (in particular the data sequences Ü, Cl, C2) via a bidirectional data connection 11.
  • the circuit comprises a second control unit CON2, two multiplexers MUX0 and MUX1, the combined interlocking and de-interlocking eggs IDL1 and a buffer memory B1.
  • the first control unit CON1 is connected via a control connection 12 to the control input of the first multiplexer MUXO.
  • the inputs of the multiplexer MUXO are fed by two outputs 32 and 33 of the turbo decoder core TD_K.
  • the first output 32 outputs the first (non-nested) reliability data ⁇ l and the (nested) extrinsic information Z ⁇ . Since both ⁇ l and Z ⁇ always form input information for a subsequent decoding, they are both referred to as (new) apriori information in the following according to common usage.
  • the second output 33 outputs the second (interleaved) reliability data J 2 ⁇ . These are referred to below as (nested) LLRs.
  • the second control unit CON2 monitors and controls the combined interlocking and deblocking eggs IDL1, the second multiplexer MUXl and the buffer memory B1. For this purpose, it is connected to inputs 1 and 5 of the combined interleaver and deinterleaver IDL1 via control connections 13 (read / write switching) and 14 (mode signal).
  • a signal en_Bl for activating the buffer memory B1 can be applied via a control connection 15, while a control connection 16 is fed to the control input of the second multiplexer MUXl.
  • a bidirectional data exchange between the second control unit CON2 and the combined interlocking and deblocking egg IDL1 is possible via a data connection 18.
  • the two control units CON1 and CON2 are connected to a bus structure BU via bidirectional data connections 19 and 20.
  • the bus structure BU stands over a bidirectional data connection 21 with a processor (not shown) in data exchange.
  • the combined interlocking and deinterleaving unit IDL1 can also have a small buffer PB (pipeline buffer, shown in dashed lines) between the input 3 and the write data input WD, which compensates for pipeline delays during pipeline processing.
  • PB pipeline buffer, shown in dashed lines
  • its size corresponds to the number of pipeline stages.
  • the architecture shown in Fig. 11 is used for iterative turbo decoding using sliding window technology.
  • the sliding window technology as such is known and is described, for example, in German patent application DE 100 01 856 AI or in the article "Saving memory in turbo-decoders using the Max-Log-MAP algorithm" by F. Raouafi, et al. , IEE (Institution of Electrical Engineers), pages 14/1 - 14/4. In this connection, these two documents are added by reference to the disclosure content of the present application.
  • the sliding window technology is based on the following: In the symbol estimation in the turbo decoder core TD_K, a must be used to calculate the apriori information or the LLRs
  • Forward recursion and backward recursion are performed. At least the result data obtained in the forward recursion must be temporarily stored in order to be able to combine them later with the result data obtained in the backward recursion for the a priori information (or the LLRs). Without using sliding window technology, both recursions would have to run over the entire block length K. Accordingly, a memory requirement corresponding to K * Q is required, where Q denotes the word length of the data to be stored.
  • Sliding window technology consists of performing the recursion runs segment by segment within a certain window. The position of the window is gradually shifted over the entire block length K.
  • the size of the buffer memory B1 need only be WS * Q, where WS denotes the length of the overlap area of the forward and backward recursions (which is usually identical to the length of the forward recursion).
  • WS can be selected to be orders of magnitude smaller than K, especially in the case of large data blocks.
  • the processor (not shown) transfers all required parameters and data to the control units C0N1 and C0N2 via the bus structure BU.
  • these include the input data U, Cl, C2.
  • the combined interleaving and deinterleaving eggs IDL1 must be enabled by suitable information to perform the interleaving and deinterleaving intended for the block length K.
  • the function ⁇ (i) can either be calculated in the processor and transferred to the address generator AG (in this case, the address generator AG is designed in the form of a table memory), or the address generator AG only receives parameters (in the extreme case, only the Block length K) communicated, on the basis of which this automatically performs the calculation of the function ⁇ (i) in hardware.
  • the turbo decoder core TD_K does not wait for the initialization of the combined interleaver and deinterleaver IDL1, but begins immediately with the decoding of the input data.
  • the first arithmetic run of the turbo decoder core TD_K and the initialization of the combined interleaver and deinterleaver So IDLs take place at the same time. This simultaneous operation is possible because in the first iteration loop the "old" apriori information (ie the extrinsic information Z (see FIG.
  • both the first calculation run of the turbo decoder core TD_K has ended and the initialization of the combined interleaving and deinterleaver IDL1 has been completed.
  • Turbo decoder core TD_K can be fed via input 30.
  • the calculation of new nested a priori information is now carried out the "regular" processing, which occurs in
  • Using sliding window technology can be broken down into four steps: 1.
  • the forward metrics for WS time steps are calculated;
  • Deinterleaver IDLl are provided. These WS values are also temporarily stored in the buffer memory B1 for further use.
  • Time steps calculated (X depends on the specially selected turbo decoding algorithm).
  • De-icing eggs can be read out.
  • the new apriori information is then calculated "on-the-fly" in the area of the overlapping section of the forward and backward recursions.
  • the sliding window (i.e. the interval limits for the forward and backward recursions) is shifted to the right by WS time steps and the process starts again at step 1. Steps 1 - 4 continue until the end of the block is reached. If the block length K is not a multiple of the window size, the last calculation step must be suitably adapted.
  • the second and third calculation runs described above are repeated until an iteration limit (for example a predetermined number of turbo iteration loops) is reached.
  • an iteration limit for example a predetermined number of turbo iteration loops
  • the nested LLRs are read from the turbo decoder core TD_K instead of the nested a priori information (corresponds to Z ⁇ ).
  • the first multiplexer MUXO is switched over the control connection 12.
  • the interleaved LLRs are deinterleaved for the last time in the combined interleaving and deinterleaving unit IDL1 and read out by the processor (not shown) as de-interleaved reliability information (corresponds to ⁇ 2) via the data connections 18, 20 and the bus structure BU. 12 illustrates the sliding window technique using an example.
  • step S1 the forward metrics of time steps 0-19 are read out from the data memory RAM, stored in B1 and, at the same time, the turbo decoder core TD__K is entered.
  • step 2 the apriori information for the time steps 39-20 is first read out from the data memory RAM and sent as data april 0 to the turbo decoder core TD_K (S2.1). Subsequently, the remaining a priori information is used for the time steps 19-0 read out from the first buffer Bl, and also as a data april 0 ⁇ d the turbo decoder core TD_K supplied (S2.2).
  • the new apriori information apri new is calculated in the third step S3 at the same time as step S2.2. Since the calculated apriori information apri ne is immediately written into the data memory RAM, it must first be switched to the read mode, which is indicated by the reference symbol 40.
  • the fourth step S4 consists in sliding the window W1 into the position W2. Then steps S1-S4 are repeated.
  • a variant consists in providing a further buffer memory B2 in parallel with the buffer memory B1.
  • the corresponding data connections and an additionally required multiplexer MUX2 with activation signal en_B2 are shown in dashed lines in FIG. 11.
  • the apriori information available on the output side of the multiplexer MUX2 is designated apri2 0 id and are fed to the turbo decoder core TD_K via a further input 31.
  • FIG. 13 shows a representation corresponding to FIG. 12 for the architecture with two buffer memories B1 and B2.
  • the memory content of the second buffer memory B2 (B2) and the delivery of old apriori information apri2 0 ⁇ d from the second buffer memory B2 to the turbo decoder core TD_K are also shown here.
  • the first buffer memory B1 is filled in step S1.
  • the second buffer memory B2 is filled with the a priori information for the time steps 39-30.
  • Steps S2.2 and S3 are identical to steps S2.2 and S3 shown in FIG. 12.
  • step S4 has the advantage that the apriori information for the time steps 20-39 is already available in the second buffer memory B2.
  • Step S1 is omitted. Only steps S2.1, S2.2 and S3 have to be carried out in sliding window W2. The same applies to all other sliding windows W3, W4, ... for the same reason.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

Eine kombinierte Ver- und Entschachtelungsschaltung (IDL1) weist einen ersten Datenspeicher (RAM) zum temporären Speichern der zu ver- bzw. entschachtelnden Daten auf. Ein erster Adressgenerator erzeugt eine Sequenz fortlaufender Adressen und ein zweiter Adressgenerator (AG) erzeugt eine die Verschachtelungsvorschrift (a(i)) repräsentierende Sequenz von Adressen. Ein Logikmittel (XOR, MUX) bewirkt, dass der Datenspeicher (RAM) im Verschachtelungsmodus bei einem Lesevorgang und im Entschachtelungsmodus bei einem Schreibvorgang von dem zweiten Adressgenerator (AG) adressiert wird.

Description

Beschreibung
Kombinierter Ver- und Entschachteier sowie Turbo-Decodierer mit kombiniertem Ver- und Entschachteier
Die Erfindung betrifft Schaltungen, welche in Abhängigkeit von einem gewählten Modus eine Ver- oder Entschachtelung eines Datenstroms vornehmen, sowie Turbo-Decodierer, welche eine derartige Schaltung umfassen. Ferner betrifft die Erfindung Verfahren zur Durchführung von Ver- und
Entschachtelungsprozeduren sowie Verfahren zum Turbo- Decodieren eines mit einem Turbo-Code kanalcodierten Datenstroms .
In Kommunikationssystemen, beispielsweise Mobilfunksystemen, wird das zu übertragende Signal nach einer Aufbereitung in einem Quellencodierer einer Kanalcodierung und einer Verschachtelung (interleaving) unterzogen. Beide Maßnahmen verleihen dem zu übertragenden Signal eine gewisse Robustheit. Bei der Kanalcodierung wird durch gezieltes
Einbringen von Redundanz in das zu übertragende Signal ein effektiver Fehlerschutz geschaffen. Durch die Verschachtelung wird erreicht, dass KanalStörungen, die ohne eine Verschachtelung Gruppenbitfehler (sogenannte Bündelfehler) bewirken würden, zeitlich verteilte Daten des zu sendenden
Signals betreffen und damit eher tolerierbare Einzelbitfehler hervorrufen.
Die im Sender erfolgende Verschachtelung des auszusendenden Datenstroms erfolgt datenblockweise, d.h. die Datenbits eines jeden Datenblocks werden nach der gleichen
Verschachtelungsvorschrift vom senderseitigen Verschachteler permutiert. Die Rücktransformation, mit der die Datenbits wieder in ihre ursprüngliche Reihenfolge gebracht werden, erfolgt im Empfänger mittels eines Entschachtelers nach der inversen Entschachtelungsvorschrift . Binäre, parallel verkettete rekursive Faltungscodes werden als sogenannte "Turbo-Codes" bezeichnet. Die Turbo-Codierung kombiniert das Hinzufügen von Redundanz mit dem Verschachteln des zu sendenden Datenstroms. Turbo-Codes stellen insbesondere bei der Übertragung großer Datenblöcke eine leistungsfähige Form der Fehlerschutzcodierung dar.
Der UMTS- (Universal Mobile Telecommunications System-) Standard sieht die Verwendung eines Turbo-Codes zur Kanalcodierung vor. Die Ver- bzw. Entschachtelungvorschrift ist im UMTS-Standard abhängig von der (variablen) Blocklänge, welche zwischen 40 und 5114 Bits beträgt, vorgegeben. Die Berechnung der Verschachtelungsvorschrift (d.h. der Adressen für die Permutation der Bits des Datenblocks) ist in der Technischen Spezifikation 3GPP TS 25.212 V3.5.0 (2000-12) in den Kapiteln 4.2.3.2.3.1. bis 4.2.3.2.3.3. angegeben.
In der Schrift U.S. 5,659,850 ist ein Verschachteler (Inter- leaver) beschrieben, welcher die in dem Standard IS95 definierte Verschachtelungsvorschrift ausführt. Der
Verschachteler weist einen Datenspeicher zum Speichern der zu verschachtelnden Daten, einen kontinuierlichen Adressenzähler und einen Adressenvertauscher auf. Der kontinuierliche Adressenzähler erzeugt die Adressen für das Laden des Datenspeichers, während der Adressenvertauscher die Adressen für das Auslesen des Datenspeichers entsprechend der vorgegebenen Verschachtelungsvorschrift liefert.
Konventionelle Entschachteier (Deinterleaver) weisen zumeist den gleichen strukturellen Aufbau wie ein Verschachteler auf. Die Entschachtelung wird dadurch erreicht, dass das Auslesen der Daten aus dem Datenspeicher gemäß der inversen Entschachtelungsvorschrift erfolgt .
In manchen Schaltungen werden sowohl Verschachteler als auch Entschachteier benötigt . Ein herausragend wichtiger Vertreter eines solchen Schaltungstyps ist ein Turbo-Decodierer, welcher in Funkempfängern dazu verwendet wird, die bei der Turbo-Codierung hinzugefügte Redundanz aus dem empfangenen Datenstrom wieder zu entfernen.
Die Decodierung eines Turbo-codierten Datenstroms ist relativ rechenaufwändig. Der hohe Rechenaufwand wird einerseits dadurch bewirkt, dass bei der Turbo-Decodierung ein iteratives Verfahren zur Anwendung kommt, bei welchem die einzelnen Daten infolge des mehrfachen Durchlaufens einer Rekursionsschleife mehrfach decodiert werden müssen. Hinzu kommt, dass infolge der inhärenten Verschachtelungsprozedur bei der Erzeugung des Turbo-Codes in jeder Iterationsschleife jeweils eine Verschachtelungs- und eine Entschachtelungsprozedur durchzuführen sind.
Herkömmliche Turbo-Decodierer enthalten daher einen Verschachteler und einen Entschachteier. Der Verschachteler und der Entschachteier sind unabhängig voneinander implementiert, d.h. sowohl dem Verschachteler als auch dem ' Entschachteler ist ein RAM-Bereich der Größe K*Q zugeteilt, wobei K die Blocklänge und Q die Wortbreite der zu ver- bzw. entschachtelnden Daten (sog. Soft-Bits) bezeichnen. Der Verschachteler arbeitet dabei nach der Verschachtelungsvorschrift und der Entschachteier nach der (inversen) Entschachtelungsvorschrift .
Bei einer Änderung der Blocklänge K oder bei einer Initialisierung des Turbo-Decodierers im Rahmen eines Systemstarts muss zunächst die Verschachtelungsvorschrift gemäß den UMTS-Spezifikationen berechnet werden. Diese Vorschrift ist im UMTS-Standard in Form einer Koordinatentransformationsmatrix definiert. Zu der Vorschrift wird dann durch Invertieren der Koordinatentransformationsmatrix die EntSchachtelungsvorschrift gewonnen. Der Erfindung liegt die Aufgabe zugrunde, eine Schaltung anzugeben, welche sowohl eine Ver- als auch eine Entschachtelung durchzuführen vermag und einen geringen Implementierungsaufwand aufweist. Ferner zielt die Erfindung darauf ab, ein aufwandsgünstig zu implementierendes Ver- und Entschachtelungsverfahren anzugeben. Insbesondere soll die erfindungsgemäße Schaltung bzw. das erfindungsgemäße Verfahren bei Verwendung in einem Turbo-Decodierer dessen Implementierungsaufwand verringern.
Die der Erfindung zugrunde liegende Aufgabenstellung wird durch die Merkmale der unabhängigen Ansprüche gelöst . Vorteilhafte Weiterbildungen und Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
Gemäß Anspruch 1 umfasst ein erster Schaltungstyp einen Datenspeicher zum temporären Speichern der Daten eines Datenstroms. Des Weiteren umfasst die Schaltung einen ersten Adressgenerator, welcher eine Sequenz fortlaufender Adressen zur Adressierung des Datenspeichers bereitstellt, und einen zweiten Adressgenerator, welcher eine die Verschachtelungsvorschrift repräsentierende Sequenz von Adressen zur Adressierung des Datenspeichers bereitstellt. Ein Logikmittel bewirkt, dass der Datenspeicher im Verschachtelungsmodus bei einem Lesevorgang und im
Entschachtelungsmodus bei einem Schreibvorgang von dem zweiten Adressgenerator adressiert wird und im Verschachtelungsmodus bei einem Schreibvorgang und im Entschachtelungsmodus bei einem Lesevorgang von dem ersten Adressgenerator adressiert wird.
Die erfindungsgemäße kombinierte Ver- und Entschachtelungsschaltung weist den Vorteil auf, dass sie lediglich einen Speicherbereich zur Durchführung der beiden Betriebsmodi (Verschachtelung/Entschachtelung) benötigt. Ein weiterer wesentlicher Vorteil besteht darin, dass sowohl für den Verschachtelungsvorgang als auch für den Entschachtelungsvorgang dieselbe (von dem zweiten Adressgenerator erzeugte) Adressensequenz verwendet wird. Eine Umrechnung dieser "Verschachtelungs-Adressensequenz" in die entsprechende "Entschachtelungs-Adressensequenz" entfällt.
Die Schaltung gemäß den zweiten Aspekt der Erfindung (Anspruch 2) entspricht strukturell der Schaltung nach Anspruch 1, jedoch ist die Funktion des zweiten Logikmittels unterschiedlich zu der Funktion des ersten Logikmittels. Der wesentliche Unterschied besteht darin, dass für das Laden des Datenspeichers im Rahmen einer Verschachtelungsprozedur bei der Schaltung nach dem zweiten Aspekt der Erfindung die Adressensequenz von dem zweiten Adressgenerator verwendet und diese folglich bereits vorliegen muss, während dies bei der Schaltung nach dem ersten Aspekt der Erfindung nicht erforderlich ist. Ansonsten weist die Schaltung nach dem zweiten Aspekt der Erfindung ebenfalls die bereits genannten Vorteile auf.
Grundsätzlich können der erste Adressgenerator, der zweite Adressgenerator sowie auch das erste und/oder zweite Logikmittel sowohl in Hardware also auch in Software realisiert sein. "In Software realisiert" bedeutet, dass zur Berechnung der jeweiligen Ergebnisse (Adressensequenzen bzw. Logikwerte) ein Programm in Maschinencode ausgeführt wird. Im Gegensatz dazu umfasst eine Hardware-Realisierung Logik- und Arithmetikelemente, die keinen Maschinencode verarbeiten. Eine besonders vorteilhafte Ausgestaltung der erfindungsgemäßen Schaltungen kennzeichnet sich dadurch, dass das erste und/oder zweite Logikmittel ein XOR-Gatter umfasst, dessen Eingänge mit dem Schreib-/Lesesignal für den Datenspeicher und einem den Modus angebenden Modussignal verbunden sind. Ferner enthält es einen Multiplexer, dessen Steuereingang mit dem Ausgang des XOR-Gatters verbunden ist, und dessen Multiplexer-Eingänge mit dem ersten und dem zweiten Adressgenerator in Verbindung stehen. Auf diese Weise wird eine einfache Hardware-Implementierung des Logikmittels geschaffen.
Die Erfindung betrifft ferner einen Turbo-Decodierer, welcher einen Kanaldecodierer und eine Schaltung zum Ver- und Entschachteln eines Datenstroms gemäß einem der vorhergehenden Ansprüche umfasst . Mittels dieser Schaltung können die im Rahmen der Turbo-Decodierung durchzuführenden Ver- und Entschachtelungsprozeduren mit nur einem gemeinsamen Datenspeicher und ohne Berechnung inverser Ver- bzw. Entschachtelungsvorschriften ausgeführt werden.
Eine besonders vorteilhafte Ausführungsform des erfindungsgemäßen Turbo-Decodierers kennzeichnet sich dadurch, dass dieser eine Schaltung zum Ver- und
Entschachteln eines Datenstroms nach Anspruch 1 umfasst . Der Grund dafür, dass ein Turbo-Decodierer mit einer Schaltung zum Ver- und Entschachteln nach Anspruch 1 spezifische Vorteile gegenüber einem Turbo-Decodierer mit einer Schaltung zum Ver- und Entschachteln nach Anspruch 2 aufweist, besteht darin, dass einerseits die Berechnung der
Verschachtelungsadressen beim UMTS-Standard mit einem relativ hohen rechnerischen Aufwand verbunden ist, und andererseits im ersten Schleifendurchlauf der Turbo-Decodierung die Verschachtelungsprozedur zeitlich vor der
Entschachtelungsprozedur erfolgt. Aufgrund dieser Gegebenheiten ist es möglich, die Initialisierung des Verschachtelungsschrittes (d.h. die Adressenberechnung in dem zweiten Adressgenerator) parallel mit der ersten Decodierung durchzuführen, wodurch ein erheblicher Zeitgewinn erzielbar ist (der Kanaldecodierer muss nicht auf die Fertigstellung der Adressenberechnung im zweiten Adressgenerator warten) . Ein weiterer Vorteil dieser Ausführungsform besteht darin, dass im UMTS-Standard der Algorithmus zur Berechnung der Verschachtelungsadressen angegeben ist, weshalb deren
Berechnung (zwar rechenauf ändig aber) in bekannter Weise möglich ist. Demgegenüber wäre eine direkte Berechnung der Entschachtelungsadressen (ohne vorhergehende Berechnung der Verschachtelungsadressen) aus dem UMTS-Standard mit weiteren Überlegungen und Schwierigkeiten verbunden.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Turbo-Decodierers kennzeichnet sich dadurch, dass der Turbo- Decodierer zur Durchführung einer Decodierung nach der Gleitfenstertechnik ausgelegt ist und als verfügbaren wieder beschreibbaren Speicherbereich lediglich den gemeinsamen Datenspeicher der Schaltung zum Ver- und Entschachteln und einen Pufferspeicher zum Zwischenspeichern von aus dem Datenspeicher ausgelesenen ver- und entschachtelten Daten, dessen Speichergrδße an die Länge des Gleitfensters angepasst ist, umfasst. Da die Speichergröße des Pufferspeichers wesentlich kleiner als die Speichergröße des gemeinsamen Datenspeichers der Schaltung zum Ver- und Entschachteln ausgelegt werden kann, ergibt sich nahezu eine Halbierung des Gesamtspeicherbedarfs im Vergleich zu konventionellen Lösungen mit jeweils eigenen Speicherbereichen für den Verschachteler und den Entschachteier.
Nachfolgend wird die Erfindung anhand von Beispielen unter Bezugnahme auf die Zeichnung erläutert; in dieser zeigen:
Fig. 1 eine Prinzipdarstellung eines Verschachtelers;
Fig. 2 eine erste Architektur eines Verschachtelers;
Fig. 3 eine zweite Architektur eines Verschachtelers;
Fig. 4 eine Prinzipdarstellung eines Entschachtelers;
Fig. 5 eine erste Architektur eines Entschachtelers;
Fig. 6 eine zweite Architektur eines Entschachtelers; Fig. 7 ein erstes Ausführungsbeispiel eines erfindungsgemäßen kombinierten Ver- und Entschachtelers;
Fig. 8 ein zweites Ausführungsbeispiel eines erfindungsgemäßen kombinierten Ver- und Entschachtelers ;
Fig. 9 ein Blockschaltbild eines bekannten Turbo-Codierers zur Erzeugung eines Turbo-Codes;
Fig. 10 ein Blockschaltbild eines bekannten Turbo-Decodierers zur Decodierung eines Turbo-codierten Datenstroms;
Fig. 11 eine Darstellung einer Architektur eines erfindungsgemäßen Turbo-Decodierers mit internem kombinierten Ver- und Entschachteler;
Fig. 12 ein Timing-Diagramm der in Fig. 11 gezeigten
Architektur zur Erläuterung der Gleitfenstertechnik bei Verwendung eines Pufferspeichers; und
Fig. 13 ein Timing-Diagramm der in Fig. 11 gezeigten
Architektur zur Erläuterung der Gleitfenstertechnik bei Verwendung von zwei Pufferspeichern.
Die Fig. 1 verdeutlicht das generelle Prinzip einer Verschachtelung. Ein Verschachteler (Interleaver) IL nimmt eine nicht-verschachtelte, Datensequenz X = {x0,Xι,x2, ... ,xK-ι} entgegen, sortiert die einzelnen Daten xi, i = 0,1,..., K-l, um und gibt eine verschachtelte Datensequenz γ = {Yor Yι, Y2 r ■ ■ ■ , Yκ-ι} aus. K bezeichnet die der Verschachtelung zugrunde liegende Sequenzlänge, die im folgenden auch als Blocklänge bezeichnet wir. Da die Verschachtelung blockweise erfolgt, wird der Verschachteler IL auch als Blockverschachteler bezeichnet. Fig. 1 zeigt ein Beispiel für K = 8. Es wird deutlich, dass das Verschachteln ein Umsortieren der Daten der Eingangsdatensequenz X in ihrer zeitlichen Aufeinanderfolge ist. Die Vorschrift, gemäß welcher die Umsortierung vorgenommen wird, lässt sich direkt an der verschachtelten Datensequenz Y ablesen.
Diese Vorschrift lässt sich als eine Funktion (i) ausdrücken, wobei α(i) den Zeitschrittindex im Eingangsdatenstrom angibt, von welchem ein auf den Zeitschrittindex i im Ausgangsdatenstrom zu positionierendes Datum xα(i) bezogen werden soll. D.h., die Vorschrift α(i) lautet:
"Bilde das Datum des Eingangsdatenstroms mit Zeitschrittindex α(i) auf den Zeitschrittindex i des Ausgangsdatenstroms ab:
Xα(i)=yi"
Fig. 2 zeigt ein Implementierungsbeispiel des Verschachtelers IL aus Fig. 1. Der Verschachteler IL umfasst einen Datenspeicher RAM, einen Zwei-Wege-Multiplexer MUX und einen Adressgenerator AG, welcher die Verschachtelungsvorschrift α(i) umsetzt.
Der Verschachteler IL weist einen ersten Eingang 1 auf, an welchem ein Schreib-/Lesesignal rw anliegt. Ein zweiter Eingang 2 nimmt ein Adresssignal i entgegen, das dem Zeitschrittindex i der Eingangsdatensequenz X entspricht und z.B. durch einen Zähler erzeugt werden kann. An einem dritten Eingang 3 liegt die Eingangsdatensequenz X an.
Das Schreib-/Lesesignal rw wird der Schreib-Lese-Umschaltung R/W des Datenspeichers RAM und ferner dem Steuereingang des
Multiplexers MUX zugeführt . Es kann die Werte rw = 0 (Schreiben) und rw = 1 (Lesen) annehmen. Das Adresssignal i liegt an dem Eingang des Adressgenerators AG sowie an dem dem
Wert rw = 0 zugeordneten Eingang des Multiplexers MUX an. Das Ausgangssignal des Adressgenerators AG ist dem anderen
Eingang (rw = 1) des Multiplexers MUX zugeführt. Der Ausgang des Multiplexers MUX ist mit einem Adresseingang A des Datenspeichers RAM verbunden.
Der Datenspeicher RAM weist ferner einen Schreib-Dateneingang WD und einen Lese-Datenausgang RD auf. Dem Schreib-Dateneingang WD ist die über den Eingang 3 erhaltene Datensequenz X zugeführt, der Schreib-Datenausgang RD gibt über einen Ausgang 4 des Verschachtelers IL die verschachtelte Datensequenz Y aus .
Im unteren Teil der Fig. 2 ist die Arbeitsweise des Verschachtelers IL veranschaulicht:
In einem ersten Schritt wird die Datensequenz X der Länge K in den Datenspeicher RAM geschrieben (rw = 0; i = 0,1,2...,K-1). Die am Adresseingang A anliegende Schreibadressierung entspricht direkt dem Eingangs-Zeitschrittindex i .
In einem zweiten Schritt werden Daten aus dem Datenspeicher
RAM ausgelesen (rw = 1, i = 0,1,2,...,K-1), wobei zur Adressierung des Datenspeichers RAM die Funktion α(i) eingesetzt wird. α(i) zeigt auf diejenige Adresse des Datenspeichers RAM, von wo ein Datum genommen und zum Ausgangs-Zeitschrittindex i ausgegeben werden soll.
Die in Fig. 2 erläuterte Adressierung wird als nicht-verschachtelt bezeichnet, da sie sich an dem Zeitschrittindex der nicht verschachtelten Datensequenz X orientiert. Eine alternative Architektur eines Verschachtelers IL' ist in Fig.
3 dargestellt. Diese Architektur unterscheidet sich dadurch von der in Fig. 2 dargestellten Anordnung, dass ein Adressgenerator AG', der die inverse Funktion α_:L(i) ausführt, mit dem dem Wert rw = 0 zugeordneten Eingang des Multiplexers MUX verbunden ist. In diesem Fall wird von einer verschachtelten internen Adressierung gesprochen, da diese sich an dem Zeitschrittindex der verschachtelten Datensequenz Y orientiert. Dies bewirkt, dass die Adressgenerierung vom Adressgenerator AG' beim Schreibvorgang (rw = 0) und nicht beim Lesevorgang rw = 1 (wie bei dem Verschachteler IL der Fig. 2) durchgeführt wird.
Mit wr-addr werden in den Fig. 2 und 3 die Schreibadressen und mit rd-addr die Leseadressen für die Speicheradressierung bezeichnet. Für die in Fig. 2 dargestellte Architektur gilt wr-addr = i (Schreibvorgang) und rd-addr = α(i) (Lesevor- gang) . Für die in Fig. 3 dargestellte Architektur gilt wr- addr = α"1(i) (Schreibvorgang) und rd-addr = i (Lesevorgang).
In Bezug auf das logische Eingangs-/Ausgangsverhaiten sind die beiden Verschachteler IL und IL' identisch.
Fig. 4 zeigt das Prinzip eines Entschachtelers DIL (Deinter- leaver) . Der Entschachteier DIL nimmt eingangseitig die verschachtelte Datensequenz Y entgegen und gibt ausgangsseitig die ursprüngliche, entschachtelte Datensequenz X aus. Mit anderen Worten macht der Entschachteler DIL die vom Verschachteler IL, IL' vorgenommene Umsortierung des Datenstroms wieder rückgängig.
Da das Entschachteln der inverse Vorgang des Verschachtelns ist, kann der Entschachteier DIL (siehe Fig. 5) basierend auf der in Fig. 2 dargestellten Architektur des Verschachtelers IL aufgebaut werden. Der einzige Unterschied besteht darin, dass beim Lesen der Daten die inverse Adressenfunktion α~1(i) statt α(i) ausgeführt werden muss. Analog hierzu ist der in Fig. 6 dargestellte Entschachteier DIL' basierend auf der in
Fig. 3 dargestellten Architektur des Verschachtelers IL ' gebildet. Beim Schreiben der Daten kommt hier anstelle der Funktion α-1(i) die Funktion α(i) zur Anwendung. Die Entschachteler DIL und DIL' sind (zwar nicht funktionstechnisch aber) hinsichtlich ihrem logischen Eingangs-/Ausgangsverhalten äquivalent . Fig. 7 zeigt ein erstes Ausführungsbeispiel eines erfindungsgemäßen kombinierten Ver- und Entschachtelers IDLl. Gleiche Funktionselemente wie in den vorhergehenden Figuren werden mit den gleichen Bezugszeichen bezeichnet . Der erfindungsgemäße Ver- und Entschachteier IDLl unterscheidet sich von dem Verschachteler IL der Fig. 2 zunächst dadurch, dass er einen weiteren Eingang 5 sowie ein XOR-Gatter XOR aufweist. Der Eingang 5 ist mit dem einen Eingang des XOR- Gatters XOR verbunden, der andere Eingang des XOR-Gatters XOR steht mit dem Eingang 1 in Verbindung. Der Ausgang des XOR- Gatters XOR steuert den Multiplexer MUX. Darüber hinaus besteht ein weiterer Unterschied darin, dass die Multiplexereingänge im Vergleich zu dem in Fig. 2 dargestellten Verschachteler IL vertauscht sind, d.h. der Adressgenerator AG ist mit dem Multiplexereingang "0" verbunden und der Index-Zähler (nicht dargestellt) steht mit dem Multiplexereingang "1" in Verbindung.
Über den Eingang 5 wird ein Modus-Signal il/dil angelegt, welches angibt, ob eine Verschachtelung (il/dil = 1) oder eine Entschachtelung (il/dil = 0) vorgenommen werden soll. Dieses Modus-Signal il/dil bewirkt in Verbindung mit der Logik des XOR-Gatters, dass der kombinierte Ver- und Entschachteier IDLl im Verschachtelungsmodus entsprechend dem in Fig. 2 dargestellten Verschachteler IL arbeitet (siehe Fig. 7, unterer Teil) und im Entschachtelungsmodus entsprechend dem in Fig. 6 dargestellten Entschachteier DIL' arbeitet (siehe Fig. 7, oberer Teil) . Mit anderen Worten führt der kombinierte Ver- und Entschachteier IDLl in beiden Modi il/dil = 0,1 eine an der Sequenz X orientierte, nichtverschachtelte Adressierung mit dem Adressgenerator AG durch. Es wird somit in dem kombinierten Ver- und Entschachteier IDLl nur die eine (Adressen-Abbildungs-) Funktion α(i) benötigt . Ferner werden für die beiden Betriebsmodi der gleiche Speicherbereich RAM verwendet. Ein zweites Ausführungsbeispiel eines erfindungsgemäßen kombinierten Ver- und Entschachtelers IDL2 ist in Fig. 8 dargestellt . Seine Struktur entspricht der Bauweise des in Fig. 7 gezeigten kombinierten Ver- und Entschachtelers IDLl, jedoch wird anstelle des Adressgenerators AG mit der Abbi1dün sfunktion α(i) der Adressgenerator AG' mit der Abbildungsfunktion α_1(i) verwendet und die Eingänge des Multiplexers MUX vertauscht. Der in Fig. 8 dargestellte Ver- und Entschachteier IDL2 führt in beiden Modi eine an die Sequenz Y anknüpfende, verschachtelte Adressierung durch.
Den beiden kombinierten Ver- und Entschachteiern IDLl und IDL2 ist gemeinsam, dass sie (bis auf den zusätzlichen Eingang 5 und das XOR-Gatter XOR) lediglich die Komplexität eines einzelnen Verschachtelers (bzw. Entschachtelers) aufweisen. Ferner zeigen sie dasselbe logische Eingangs- /Ausgangs-verhalten. Sowohl IDLl als auch IDL2 benötigen nur einen single-ported Speicherbereich RAM.
Zum besseren Verständnis eines Turbo-Decodierers wird anhand
Fig. 9 zunächst beispielhaft der bekannte Aufbau eines Turbo- Codierers TCOD erläutert .
Der hier dargestellte Turbo-Codierer TCOD weist einen Turbo- Verschachteler T_IL, zwei identische, rekursive, systematische Faltungscodierer RSCl und RSC2 (z.B. 8- Zustands-Faltungscodierer) , zwei optionale Punktierer PKT1 und PKT2 und einen Multiplexer MUXC auf. Das Eingabesignal ist eine zu codierende Bitsequenz U, bei der es sich beispielsweise um ein quellencodiertes Sprach- oder
Videosignal handeln kann.
Der Turbo-Codierer TCOD erzeugt ein digitales Ausgabesignal D, das durch Multiplexen des Eingabesignals U (sogenanntes systematisches Signal), eines von RSCl codierten und ggf. von PKT1 punktierten Signals Cl und eines von T IL verschachtelten, von RSC2 codierten und ggf. von PKT2 punktierten Signals C2 erzeugt wird.
Im UMTS-Standard ist die Blocklänge K variabel und liegt zwischen 40 und 5114 Bits. Für jede Datenblocklänge K ist im Standard eine spezielle Verschachtelungsvorschrift vorgeschrieben, nach welcher der Turbo-Verschachteler T_IL arbeitet.
Das fehlerschutzcodierte Datensignals D wird dann in geeigneter Weise auf einen Träger moduliert und über einen Übertragungskanal übertragen.
Die Decodierung eines Turbo-codierten Empfangssignals in einem Empfänger wird nachfolgend unter Bezugnahme auf den in Fig. 10 gezeigten, bekannten Turbo-Decodierer TDEC erläutert.
Der Turbo-Decodierer TDEC umfaßt einen ersten und einen zweiten Demultiplexer DMUX1 und DMUX2 , einen ersten und zweiten Faltungsdecodierer DEC1 und DEC2 , einen Turbo-
Verschachteler IL1, einen ersten und einen zweiten Turbo- Entschachteler DIL1 und DIL2 sowie eine Entscheidungslogik (Schwellenwertentscheider) TL.
Von einem Demodulator (nicht dargestellt) des Empfängers wird eine entzerrte Datensequenz D bereitgestellt, die die im Empfänger rekonstruierte codierte Datensequenz D ist.
Die Funktionsweise des in Fig. 10 gezeigten Turbo-Decodierers TDEC wird im folgenden kurz erläutert.
Der erste Demultiplexer DMUX1 spaltet das entzerrte Datensignal D in das entzerrte systematische Datensignal Ü (rekonstruierte Version des Eingabesignals U) und ein entzerrtes RedundanzSignal C auf. Letzteres wird von dem zweiten
Demultiplexer DMUX2 in Abhängigkeit von der im Turbo-Codierer TCOD verwendeten Multiplexier- und Punktierungsvorschrift in die beiden entzerrten Redundanz-Teilsignale Cl und C2 (das sind die rekonstruierten Versionen der Redundanz-TeilSignale Cl und C2) aufgespalten.
Die beiden Faltungsdecodierer DECl und DEC2 können z.B. MAP- SymbolSchätzer sein. Der erste Faltungsdecodierer DECl berechnet ausgehend von den Datensignalen U und Cl und einem Rückkoppelsignal Z (sogenannte extrinsische Information) erste logarithmische Zuverlässigkeitsdaten Λl in Form von LLRs (Log-Likelihood Ratios) .
Die ersten Zuverlässigkeitsdaten Λl, die auch die systematischen Daten des Datensignals Ü enthalten, werden von dem Turbo-Verschachteler IL1 verschachtelt und die verschachtelten Zuverlässigkeitsdaten Λli werden dem zweiten Faltungsdecodierer DEC2 zugeführt . Die Arbeitsweisen der Turbo-Verschachteler T_IL und IL1 sind identisch (jedoch verschachtelt T_IL einen Bitstrom und IL1 einen Datenstrom mit Wortbreiten größer 1) . Der zweite Faltungsdecodierer DEC2 berechnet aus den verschachtelten Zuverlässigkeitsdaten Λlj und aus den rekonstruierten Redundanz-Teilsignaldaten C2 ein verschachteltes Rückkoppelsignal Zi und verschachtelte zweite logarithmische Zuverlässigkeitsdaten Λ2ι, ebenfalls in Form von LLRs .
Das verschachtelte Rückkoppelsignal 7>τ wird von dem ersten Turbo-Entschachteler DIL1 entschachtelt und ergibt das Rückkoppelsignal Z.
Die dargestellte Rekursionsschleife wird mehrmals durchlaufen. Jedem Durchlauf liegen die Daten desselben Datenblocks zugrunde . Pro Durchlauf werden zwei Decodierschritte (in DECl und DEC2) durchgeführt. Die beim letzten Durchlauf erhaltenen verschachtelten zweiten Zuverlässigkeitsdaten I\2τ werden von dem zweiten
Entschachteier DIL2 entschachtelt und als entschachtelte Zuverlässigkeitsdaten Λ2 der Entscheidungslogik TL zugeführt. Diese bestimmt daraufhin ein binäres Datensignal E (U) , welches eine Sequenz von Schätzwerten für die Bits des Eingabesignals U ist .
Nach der Turbo-Decodierung eines Datenblocks und Ausgabe der entsprechenden Sequenz von Schätzwerten E (U) wird der nächste Datenblock Turbo-decodiert .
Wie an dem beispielhaft in Fig. 10 dargestellten Turbo-De- codierer TDEC ersichtlich, umfaßt eine Turbo-Decodierung bei jedem Schleifendurchlauf eine Turbo-Verschachtelungsprozedur (IL1) und eine Turbo-EntSchachtelungsprozedur (DIL1) . Bei der herkömmlichen Implementierung eines Turbo-Decodierers werden hierfür zwei eigenständige Schaltungen (Verschachteler und Entschachteier) eingesetzt. Mithin werden zwei Datenspeicher der Größe eines Datenblockes eingesetzt und es werden Generatoren zur Bereitstellung der Verschachtelungsvorschrift und der invertierten Verschachtelungsvorschrift benötigt.
Fig. 11 zeigt die Architektur eines Ausführungsbeispiels eines erfindungsgemäßen Turbo-Decodierers (die in Fig. 10 eingangsseitige Signalaufspaltung mittels der Demultiplexer DMUX1 und DMUX2 ist in der Fig. 11 fortgelassen) .
Die Schaltung umfasst einen Turbo-Decodierer-Kern TD_K, welcher die Faltungsdecodierung vornimmt und damit die Aufgaben der beiden Schaltungsblöcke DECl und DEC2 in Fig. 10 wahrnimmt. Der Turbo-Decodierer-Kern TD_K steht mit einer ersten Steuereinheit CON1 in Verbindung, die über eine Steuerverbindung 10 eine Ablaufsteuerung des Turbo-
Decodierer-Kerns TD_K durchführt und über eine bidirektionale Datenverbindung 11 einen Datenaustausch (insbesondere die Datensequenzen Ü, Cl, C2 ) gestattet .
Ferner umfasst die Schaltung eine zweite Steuereinheit CON2 , zwei Multiplexer MUX0 und MUX1, den kombinierten Ver- und Entschachteier IDLl und einen Pufferspeicher Bl . Die erste Steuereinheit CON1 ist über eine Steuerverbindung 12 mit dem Steuereingang des ersten Multiplexers MUXO verbunden. Die Eingänge des Multiplexers MUXO werden von zwei Ausgängen 32 und 33 des Turbo-Decodierer-Kerns TD_K gespeist. Der erste Ausgang 32 gibt die ersten (nicht-verschachtelten) Zuverlässigkeitsdaten Λl und die (verschachtelten) extrinsischen Informationen Zτ aus. Da sowohl Λl als auch Zτ stets Eingangsinformationen für eine folgende Decodierung bilden, werden sie im folgenden gemäß üblichem Sprachgebrauch beide als (neue) Apriori-Informationen bezeichnet. Der zweite Ausgang 33 gibt die zweiten (verschachtelten) Zuverlässigkeitsdaten J 2τ aus. Diese werden im folgenden als (verschachtelte) LLRs bezeichnet.
Die zweite Steuereinheit CON2 überwacht und steuert den kombinierten Ver- und Entschachteier IDLl, den zweiten Multiplexer MUXl sowie den Pufferspeicher Bl . Zu diesem Zweck ist sie über Steuerverbindungen 13 (Schreib-Lese-Umschaltung) und 14 (Modus-Signal) mit den Eingängen 1 und 5 des kombinierten Ver- und Entschachtelers IDLl verbunden. Über eine Steuerverbindung 15 kann ein Signal en_Bl zur Aktivierung des Pufferspeichers Bl angelegt werden, während eine Steuerverbindung 16 dem Steuereingang des zweiten Multiplexers MUXl zugeführt ist.
Eine zwischen der zweiten Steuereinheit CON2 und dem kombinierten Ver- und Entschachteier IDLl verlaufende Datenverbindung 17 speist den Adresseingang 2 des kombinierten Ver- und Entschachtelers IDLl.
Ein bidirektionaler Datenaustausch zwischen der zweiten Steuereinheit CON2 und dem kombinierten Ver- und Entschachteier IDLl ist über eine Datenverbindung 18 möglich. Die beiden Steuereinheiten CON1 und CON2 sind über bidirektionale Datenverbindungen 19 und 20 an eine Busstruktur BU angebunden. Die Busstruktur BU steht über eine bidirektionale Datenverbindung 21 mit einem Prozessor (nicht dargestellt) in Datenaustausch.
Es wird darauf hingewiesen, dass der kombinierte Ver- und Entschachteier IDLl ferner einen kleinen Buffer PB (Pipeline- Buffer, gestrichelt eingezeichnet) zwischen dem Eingang 3 und dem Schreib-Dateneingang WD aufweisen kann, welcher bei einer Pipeline-Verarbeitung Pipeline-Verzögerungen kompensiert. Seine Größe entspricht in diesem Fall der Anzahl von Pipeline-Stufen.
Die in Fig. 11 gezeigte Architektur wird für eine iterative Turbo-Decodierung unter Verwendung der Gleitfenstertechnik eingesetzt. Die Gleitfenstertechnik als solche ist bekannt und beispielsweise in der deutschen Patentanmeldung DE 100 01 856 AI oder in dem Artikel "Saving memory in turbo-decoders using the Max-Log-MAP algorithm" , von F. Raouafi, et al . , IEE (Institution of Electrical Engineers) , Seiten 14/1 - 14/4, beschrieben. Diese beiden Schriften werden in diesem Zusammenhang durch Bezugnahme dem Offenbarungsgehalt der vorliegenden Anmeldung hinzugefügt.
Die Gleitfenstertechnik beruht auf Folgendem: Bei der SymbolSchätzung in dem Turbo-Decodierer-Kern TD_K müssen zur Berechnung der Apriori-Information bzw. der LLRs eine
Vorwärtsrekursion und eine Rückwärtsrekursion durchgeführt werden. Zumindest die bei der Vorwärtsrekursion erhaltenen Ergebnisdaten müssen zwischengespeichert werden, um sie später mit den bei der Rückwärtsrekursion gewonnen Ergebnisdaten zu der Apriori-Information (bzw. den LLRs) kombinieren zu können. Ohne Verwendung der Gleitfenstertechnik müssten beide Rekursionen über die gesamte Blocklänge K laufen. Demzufolge wird ein Speicherbedarf entsprechend K*Q benötigt, wobei Q die Wortbreite der abzuspeichernden Daten bezeichnet. Die Gleitfenstertechnik besteht in einer segmentweisen Durchführung der Rekursionsläufe innerhalb eines gewissen Fensters. Die Lage des Fensters wird dabei schrittweise über die gesamte Blocklänge K verschoben.
Bei der Gleitfenstertechnik muss die Größe des Pufferspeichers Bl lediglich WS*Q betragen, wobei WS die Länge des Überlappungsbereichs der Vorwärts- und der Rückwärtsrekursion bezeichnet (welche üblicherweise identisch mit der Länge der Vorwärtsrekursion ist) . WS kann, insbesondere bei großen Datenblöcken, um Größenordnungen kleiner als K gewählt werden.
Nachfolgend wird die Funktionsweise der in Fig. 11 dargestellten Architektur erläutert:
- Zunächst übergibt der Prozessor (nicht dargestellt) über die Busstruktur BU sämtlich benötigten Parameter und Daten an die Steuereinheiten C0N1 und C0N2. Für den Turbo-Decodierer- Kern TD_K sind dies unter anderem die Eingangsdaten U, Cl, C2.
Der kombinierte Ver- und Entschachteier IDLl muss über eine geeignete Information in die Lage versetzt werden, die für die Blocklänge K vorgesehene Ver- und Entschachtelung durchzuführen. Entweder kann zu diesem Zweck die Funktion α(i) in dem Prozessor berechnet und an den Adressgenerator AG übergeben werden (in diesem Fall ist der Adressgenerator AG in Form eines Tabellenspeichers konzipiert) , oder es werden dem Adressgenerator AG lediglich Parameter (im Extremfall allein die Blocklänge K) mitgeteilt, auf deren Basis dieser die Berechnung der Funktion α(i) selbsttätig in Hardware durchführt .
- Der Turbo-Decodierer-Kern TD_K wartet die Initialisierung des kombinierten Ver- und Entschachtelers IDLl nicht ab, sondern beginnt sofort mit der Decodierung der Eingangsdaten. Der erste Rechenlauf des Turbo-Decodierer-Kerns TD_K und die Initialisierung des kombinierten Ver- und Entschachtelers IDLl erfolgen also zeitgleich. Dieser Simultanbetrieb ist möglich, da in der ersten Iterationsschleife die "alten" Apriori-Informationen (d.h. die extrinsischen Informationen Z (siehe Fig. 10) ) , die dem Turbo-Decodierer-Kern TD_K über einen Eingang 30 von dem zweiten Multiplexer MUXl zugeführt werden, konstant sind (es sind keine Informationen verfügbar) , und da die von dem Turbo-Decodierer-Kern TD_K erzeugten neuen Apriori-Informationen direkt in den Datenspeicher RAM des kombinierten Ver- und Entschachtelers IDLl geschrieben werden können. Letzteres ist möglich, weil für das Schreiben der Daten in den Single-Port-Datenspeicher RAM die auf der Funktion (i) basierende Adressberechnung nicht benötigt wird (siehe Fig. 7) .
Es wird darauf hingewiesen, dass dieser Vorteil nicht erreicht wird, wenn anstelle des Ver- und Entschachtelers IDLl der Ver- und Entschachteier IDL2 eingesetzt wird.
- Zu einem bestimmten Zeitpunkt ist sowohl der erste Rechenlauf des Turbo-Decodierer-Kerns TD_K beendet als auch die Initialisierung des kombinierten Ver- und Entschachtelers IDLl abgeschlossen.
- Nun startet der zweite Rechenlauf (entspricht in Fig. 10 der Berechnung durch DEC2) . Der Turbo-Decodierer-Kern TD_K benötigt hierfür verschachtelte (alte) Apriori-Informationen
(Λli) , welche über den Ausgang 4 des kombinierten Ver- und
Entschachtelers IDLl und den zweiten Multiplexer MUXl dem
Turbo-Decodierer-Kern TD_K über den Eingang 30 zugeleitet werden. (Der kombinierte Ver- und Entschachteier IDLl wird zu diesem Zweck über die Signalleitungen 13 und 14 mit rw = 1 und il / dil = 1 angesteuert . ) Die Berechnung neuer verschachtelter Apriori-Informationen (das sind die verschachtelten extrinsischen Informationen Zi) erfolgt nun nach der "regulären" Prozessierung, welche sich bei
Verwendung der Gleitfenstertechnik in vier Schritte zerlegen lässt : 1. Es werden die Vorwärtsmetriken für WS Zeitschritte berechnet; hierfür benötigt der Turbo-Decodierer-Kern TD_K WS verschachtelte Apriori-Informationen, die mittels α(i), i = 0, ... , WS-1 am Ausgang 4 des kombinierten Ver- und
Entschachtelers IDLl bereitgestellt werden. Diese WS Werte werden darüber hinaus in dem Pufferspeicher Bl zur weiteren Verwendung zwischengespeichert.
2. Anschließend werden die Rückwärtsmetriken für X
Zeitschritte berechnet (X ist von dem speziell gewählten Turbo-Decodier-Algorithmus abhängig) . Zu diesem Zweck benötigt der Turbo-Decodierer-Kern TD_K X verschachtelte Apriori-Informationen, die mittels α(i), i = X-1,...,WS über den Ausgang 4 aus dem kombinierten Ver- und
Entschachteier IDLl ausgelesen werden. Die ebenfalls benötigten verschachtelten Apriori-Informationen zwischen i = WS-1,...,0 werden aus dem Pufferspeicher Bl bezogen (hierfür wird eine entsprechende Umschaltung des Multiplexers MUXl über die Steuerverbindung 16 vorgenommen) .
3. Anschließend erfolgt die Berechnung der neuen Apriori- Informationen "on-the-fly" im Bereich des überlappenden Abschnitts der Vorwärts- und Rückwärtsrekursionen. Im Zuge dieser Berechnung werden die alten Apriori-Informationen aus dem Pufferspeicher Bl ausgelesen und der Turbo-Decodierer-Kern TD_K generiert (mit einer gewissen Verarbeitungslatenz) neue verschachtelte Apriori- Informationen. Da zu diesem Zeitpunkt der Lesezugriff auf den Datenspeicher RAM bereits beendet ist, können diese neuen verschachtelten Apriori-Informationen direkt ohne Zwischenspeicherung (d.h. "on-the-fly") über den Eingang 3 des kombinierten Ver- und Entschachtelers IDLl mit α(i), i = 19,..., 0 in den Datenspeicher RAM geschrieben werden. Die Ansteuerung adressiert zu diesem Zeitpunkt den Schreibmodus (rw = 0) über die Signalverbindung 13. Über die Signalverbindung 14 ist der Entschachtelungs-Modus il/dil = 0 eingestellt, die Entschachtelung erfolgt ebenfalls "on-the-fly".
4. Das Gleitfenster (d.h. die Intervallgrenzen für die Vorwärts- und Rückwärts-Rekursionen) wird um WS Zeitschritte nach rechts verschoben und der Vorgang startet bei Schritt 1 von neuem. Die Schritte 1 - 4 werden solange fortgesetzt, bis das Blockende erreicht ist. Sofern die Blocklänge K kein Vielfaches der Fenstergröße ist, ist der letzte Rechenschritt geeignet anzupassen.
Nach Durchführung des zweiten Rechenlaufs (gemäß den gerade beschriebenen Schritten 1 - 4) ist die erste Turbo-Itera- tionsschleife (siehe Fig. 10) beendet. Mit dem dritten
Rechenlauf des Turbo-Decodierer-Kerns TD_K beginnt die zweite Turbo-Iterationsschleife des Turbo-Decodier-Algorithmus . Dieser Rechenlauf erfolgt ebenfalls in den vorstehend beschriebenen vier Schritten, jetzt jedoch nicht mit einer Adressierung durch α(i), sondern stattdessen direkt mit i.
- Nachfolgend werden die vorstehend beschriebenen zweiten und dritten Rechenläufe solange wiederholt, bis eine Iterationsgrenze (z.B. eine vorgegebene Anzahl von Turbo- Iterationsschleifen) erreicht ist. Beim letzten Rechenlauf in der letzten Turbo-Interationsschleife werden statt der verschachtelten Apriori-Informationen (entspricht Zτ) die verschachtelten LLRs aus dem Turbo-Decodierer-Kern TD_K gelesen. Hierfür wird der erste Multiplexer MUXO über die Steuerverbindung 12 umgeschaltet. Die verschachtelten LLRs werden in dem kombinierten Ver- und Entschachteier IDLl letztmalig entschachtelt und als entschachtelte Zuverlässigkeitsinformationen (entspricht Λ2) über die Datenverbindungen 18, 20 und die Busstruktur BU vom Prozessor (nicht dargestellt) ausgelesen. Fig. 12 verdeutlicht die Gleitfenstertechnik anhand eines Beispiels. Dargestellt sind Lesezugriffe auf den Datenspeicher RAM (RAM RD) , der Inhalt des Pufferspeichers Bl (Bl) , die Lieferung alter Apriori-Informationen über den Eingang 30 an den Turbo-Decodierer-Kern TD_K (april0ιd) , die Abgabe neuer Apriori-Informationen aus dem Turbo-Decodierer- Kern TD_K (aprinew) sowie das Schreib-Lesesignal (rw) . Das Beispiel betrifft den Fall WS = 20, X = 40.
Im Schritt Sl werden die Vorwärtsmetriken der Zeitschritte 0 - 19 aus dem Datenspeicher RAM ausgelesen, in Bl gespeichert und gleichzeitig den Turbo-Decodierer-Kern TD__K eingegeben. Im Schritt 2 (Berechnung der Rückwärtsmetriken) werden zunächst die Apriori-Informationen für die Zeit- schritte 39 - 20 aus dem Datenspeicher RAM ausgelesen und als Daten april0ιa dem Turbo-Decodierer-Kern TD_K zugeleitet (S2.1) . Anschließend werden die restlichen Apriori- Informationen für die Zeitschritte 19 - 0 aus dem ersten Pufferspeicher Bl ausgelesen und ebenfalls als Daten april0ιd dem Turbo-Decodierer-Kern TD_K zugeführt (S2.2) . Die
Berechnung der neuen Apriori-Informationen aprinew erfolgt im dritten Schritt S3 zeitgleich mit dem Schritt S2.2. Da die berechneten Apriori-Informationen aprine sogleich in den Datenspeicher RAM geschrieben werden, muss dieser davor in den Lese-Modus geschaltet werden, was durch das Bezugszeichen 40 angedeutet wird. Der vierte Schritt S4 besteht in dem Vergleiten des Fensters Wl in die Position W2. Danach wiederholen sich die Schritte Sl - S4.
Zurückkommend auf Fig. 11 besteht eine Variante darin, zusätzlich zu dem Pufferspeicher Bl in Parallelschaltung einen weiteren Pufferspeicher B2 vorzusehen. Die entsprechenden Datenverbindungen sowie ein zusätzlich erforderlicher Multiplexer MUX2 mit Aktivierungs-Signal en_B2 sind in Fig. 11 gestrichelt dargestellt. Die ausgangsseitig des Multiplexers MUX2 verfügbaren Apriori-Informationen sind mit apri20id bezeichnet und werden dem Turbo-Decodierer-Kern TD_K über einen weiteren Eingang 31 zugeleitet.
Fig. 13 zeigt eine der Fig. 12 entsprechende Darstellung für die Architektur mit zwei Pufferspeichern Bl und B2.
Dargestellt sind hier zusätzlich der Speicherinhalt des zweiten Pufferspeichers B2 (B2) und die Lieferung alter Apriori-Informationen apri20ιd aus dem zweiten Pufferspeicher B2 an den Turbo-Decodierer-Kern TD_K. Zunächst wird im Schritt Sl der erste Pufferspeicher Bl gefüllt. Im Schritt S2.1 wird der zweite Pufferspeicher B2 mit den Apriori- Informationen für die Zeitschritte 39 - 30 gefüllt. Die Schritte S2.2 und S3 sind identisch mit dem in Fig. 12 dargestellten Schritten S2.2 und S3.
Beim Übergang in das nächste Gleitfenster W2 im Schritt S4 ergibt sich der Vorteil, dass die Apriori-Informationen für die Zeitschritte 20 - 39 bereits im zweiten Pufferspeicher B2 verfügbar sind. Der Schritt Sl entfällt. Es müssen in dem Gleitfenster W2 lediglich die Schritte S2.1, S2.2 und S3 ausgeführt werden. Gleiches gilt für alle weiteren Gleitfenster W3, W4, ... aus dem gleichen Grund.
Nachfolgend werden die wesentlichen Vorteile der Erfindung zusammengefasst :
- Sowohl die Verschachtelung als auch die Entschachtelung sämtlicher Apriori-Informationen und LLRs kann unter Verwendung lediglich eines einzigen Single-Port- Datenspeichers RAM "on-the-fly" bewerkstelligt werden.
- Es muss nur die Verschachtelungs-Funktion α(i) (oder alternativ die inverse Entschachtelungs-Funktion α-1(i)) implementiert werden, nicht jedoch beide Funktionen: dies spart nahezu 50 % Speicherfläche auf dem Chip. - Bei Implementierung des kombinierten Ver- und Entschachtelers IDLl wird keine zusätzliche Latenz für die Initialisierung von IDLl benötigt, da der Turbo-Decodierer- Kern TD_K bereits während der Initialisierung von IDLl seine Arbeit aufnehmen kann.
- Bei der Implementierung des kombinierten Ver- und Entschachtelers IDLl besteht ein weiterer Vorteil darin, dass der Prozessor die LLRs unabhängig von dem letzten Iterationsschritt stets nicht-verschachtelt auslesen kann.

Claims

Patentansprüche
1. Schaltung, welche in Abhängigkeit von einem gewählten Modus eine Ver- oder eine Entschachtelung eines Datenstroms vornimmt, mit
- einem Datenspeicher (RAM) zum temporären Speichern der Daten des Datenstromes,
- einem ersten Adressgenerator, welcher eine Sequenz fortlaufender Adressen zur Adressierung des Datenspeichers (RAM) bereitstellt,
- einem zweiten Adressgenerator (AG) , welcher eine die Verschachtelungsvorschrift (α(i)) repräsentierende Sequenz von Adressen zur Adressierung des Datenspeichers (RAM) bereitstellt, und - einem ersten Logikmittel (XOR, MUX) , welches bewirkt, dass der Datenspeicher (RAM) im Verschachtelungsmodus bei einem Lesevorgang und im Entschachtelungsmodus bei einem Schreibvorgang von dem zweiten Adressgenerator (AG) adressiert wird und im Verschachtelungsmodus bei einem Schreibvorgang und im Entschachtelungsmodus bei einem Lesevorgang von dem ersten Adressgenerator adressiert wird.
2. Schaltung, welche in Abhängigkeit von einem gewählten Modus eine Ver- oder eine Entschachtelung eines Datenstroms vornimmt, mit
- einem Datenspeicher (RAM) zum temporären Speichern der Daten des Datenstromes,
- einem ersten Adressgenerator, welcher eine Sequenz fortlaufender Adressen zur Adressierung des Datenspeichers bereitstellt,
- einem zweiten Adressgenerator (AG'), welcher eine die inverse Verschachtelungsvorschrift (α_1(i)) repräsentierende Sequenz von Adressen zur Adressierung des Datenspeichers (RAM) bereitstellt, und - einem zweiten Logikmittel (MUX, XOR) , welches bewirkt, dass der Datenspeicher (RAM) im Verschachtelungsmodus bei einem Schreibvorgang und im Entschachtelungsmodus bei einem Lesevorgang von dem zweiten Adressgenerator (AG') adressiert und im Verschachtelungsmodus bei einem Lesevorgang und im Entschachtelungsmodus bei einem Schreibvorgang von dem ersten Adressgenerator adressiert wird.
3. Schaltung nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, dass das Logikmittel (MUX, XOR) umfasst: - ein XOR-Gatter (XOR) , dessen Eingänge mit dem Schreib-/Le- sesignal für den Datenspeicher (RAM) und einem den Modus angebenden Modussignal verbunden sind, und - einen Multiplexer (MUX) , dessen Steuereingang mit dem
Ausgang des XOR-Gatters (XOR) verbunden ist und dessen Multiplexer-Eingänge mit dem ersten und dem zweiten
Adressgenerator in Verbindung stehen.
4. Schaltung nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, dass der Datenspeicher ein Single-Port-Datenspeicher ist.
5. Turbo-Decodierer, mit einem Kanaldecodierer (TD_K) und einer Schaltung (IDLl, IDL2) zum Ver- und Entschachteln eines Datenstroms nach einem der vorhergehenden Ansprüche .
6. Turbo-Decodierer nach Anspruch 5, g e k e n n z e i c h n e t d u r c h eine Schaltung (IDLl) zum Ver- und Entschachteln eines Datenstroms nach Anspruch 1.
7. Turbo-Decodierer nach Anspruch 5 oder 6, d a d u r c h g e k e n n z e i c h n e t,
- dass der Turbo-Decodierer zur Durchführung einer
Decodierung nach der Gleitfenstertechnik ausgelegt ist und als verfügbaren wiederbeschreibbaren Speicherbereich umfasst : - den gemeinsamen Datenspeicher (RAM) der Schaltung (IDLl, IDL2) zum Ver- und Entschachteln, und
- einen Pufferspeicher (Bl) zum Zwischenspeichern von aus dem Datenspeicher (RAM) ausgelesenen ver- oder entschachtelten Daten, dessen Speichergröße an die Länge (WS) des Gleitfensters angepasst ist.
8 . Turbo-Decodierer nach Anspruch 7 , d a d u r c h g e k e n n z e i c h n e t , - dass der verfügbare wiederbeschreibbare Speicherbereich ferner einen weiteren Pufferspeicher (B2) zum Zwischenspeichern von aus dem Datenspeicher (RAM) ausgelesenen ver- oder entschachtelten Daten umfasst, dessen Speichergröße ebenfalls an die Länge des Gleitfensters (WS) angepasst ist.
9. Verfahren zur Durchführung von Ver- und Entschachtelungsprozeduren an einem Datenstrom unter Verwendung einer die Verschachtelungsvorschrift (α(i)) repräsentierenden Sequenz von Adressen für einen
Datenspeicher (RAM) , mit den Schritten:
- Durchführen einer Verschachtelungsprozedur, indem der Datenstrom mit fortlaufender Adresse in den Datenspeicher
(RAM) geschrieben und mit der die Verschachtelungsvorschrift (α(i)) repräsentierenden Adressensequenz ausgelesen wird; und
- Durchführen einer EntSchachtelungsprozedur, indem ein Datenstrom mit der die Verschachtelungsvorschrift (α(i)) repräsentierenden Adressensequenz in denselben Datenspeicher (RAM) geschrieben und mit fortlaufender
Adresse aus dem Datenspeicher (RAM) ausgelesen wird.
10. Verfahren zur Durchführung von Ver- und Entschachtelungsprozeduren an einem Datenstrom unter Verwendung einer die inverse Verschachtelungsvorschrift (of ^(i)) repräsentierenden Sequenz von Adressen für einen Datenspeicher (RAM) , mit den Schritten: - Durchführen einer Verschachtelungprozedur, indem der Datenstrom mit der die inverse Verschachtelungsvorschrift
"1(i)) repräsentierenden Adressensequenz in den Datenspeicher (RAM) geschrieben und mit fortlaufender Adresse aus dem Datenspeicher (RAM) ausgelesen wird; und
- Durchführen einer Entschachtelungsprozedur, indem ein Datenstrom mit fortlaufender Adresse in denselben Datenspeicher (RAM) geschrieben und mit der die inverse Verschachtelungsvorschrift (α_1(i)) repräsentierenden Adressensequenz aus dem Datenspeicher (RAM) ausgelesen wird.
11. Verfahren zum Turbo-Decodieren eines mit einem Turbo-Code kanalcodierten Datenstroms, mit den in einer Rekursionsschleife durchgeführten Schritten:
(a) Durchführen eine ersten Kanaldecodierung unter Verwendung von extrinsischen Informationen zur Berechnung von Zuverlässigkeitsinformationen;
(b) Verschachteln der Zuverlässigkeitsinformationen zur Berechnung verschachtelter Zuverlässigkeitsinformationen;
(c) Durchführen eine zweiten Kanaldecodierung unter Verwendung der verschachtelten Zuverlässigkeitsinformationen zur Berechnung verschachtelter extrinsischer Informationen; und (d) Entschachteln der verschachtelten extrinsischen Informationen zur Berechnung der extrinsischen Informationen; d a d u r c h g e k e n n z e i c h n e t,
- dass die Ver- und Entschachtelungsschritte (b) und (d) gemäß dem Verfahren nach Anspruch 8 oder 9 ausgeführt werden .
12. Verfahren nach Anspruch 11, g e k e n n z e i c h n e t durch die Schritte: - Erzeugung der die Verschachtelungsvorschrift (α(i)) repräsentierenden Sequenz von Adressen für den Datenspeicher (RAM) während der erstmaligen Ausführung der Kanaldekodierung (Schritt (a) ) , und
- Durchführen der Ver- und Entschachtelungsprozeduren
(Schritte (b) und (d) ) nach dem Verfahren des Anspruchs 8.
13. Verfahren nach einem der Ansprüche 9 bis 12, d a d u r c h g e k e n n z e i c h n e t,
- dass die Turbo-Decodiererung nach der Gleitfenstertechnik ausgeführt wird.
PCT/DE2003/000145 2002-02-18 2003-01-20 Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler WO2003071689A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/920,902 US20050034046A1 (en) 2002-02-18 2004-08-18 Combined interleaver and deinterleaver, and turbo decoder comprising a combined interleaver and deinterleaver

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10206727.9 2002-02-18
DE10206727A DE10206727A1 (de) 2002-02-18 2002-02-18 Kombinierter Ver-und Entschachteler sowie Turbo-Decodierer mit kombiniertem Ver-und Entschachteler

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/920,902 Continuation US20050034046A1 (en) 2002-02-18 2004-08-18 Combined interleaver and deinterleaver, and turbo decoder comprising a combined interleaver and deinterleaver

Publications (2)

Publication Number Publication Date
WO2003071689A2 true WO2003071689A2 (de) 2003-08-28
WO2003071689A3 WO2003071689A3 (de) 2003-12-31

Family

ID=27635101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2003/000145 WO2003071689A2 (de) 2002-02-18 2003-01-20 Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler

Country Status (4)

Country Link
US (1) US20050034046A1 (de)
CN (1) CN1633750A (de)
DE (1) DE10206727A1 (de)
WO (1) WO2003071689A2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050097046A1 (en) 2003-10-30 2005-05-05 Singfield Joy S. Wireless electronic check deposit scanning and cashing machine with web-based online account cash management computer application system
AU2005296086A1 (en) 2004-10-12 2006-04-27 Aware, Inc. Resource sharing in a telecommunications environment
US7502982B2 (en) * 2005-05-18 2009-03-10 Seagate Technology Llc Iterative detector with ECC in channel domain
US7360147B2 (en) * 2005-05-18 2008-04-15 Seagate Technology Llc Second stage SOVA detector
US7395461B2 (en) * 2005-05-18 2008-07-01 Seagate Technology Llc Low complexity pseudo-random interleaver
CN101512933A (zh) * 2005-11-30 2009-08-19 费穆托接入有限公司 新的分布式基站体系结构
BRPI0709871B1 (pt) 2006-04-12 2019-10-15 Tq Delta, Llc. Retransmissão de pacote e compartilhamento de memória
EP2067258A2 (de) 2006-09-12 2009-06-10 Nxp B.V. Entschachteler für ein mehrstufiges verschachtelungsschema mit bitpaar-verarbeitung
US8708227B1 (en) 2006-10-31 2014-04-29 United Services Automobile Association (Usaa) Systems and methods for remote deposit of checks
US7873200B1 (en) 2006-10-31 2011-01-18 United Services Automobile Association (Usaa) Systems and methods for remote deposit of checks
US9058512B1 (en) 2007-09-28 2015-06-16 United Services Automobile Association (Usaa) Systems and methods for digital signature detection
US9159101B1 (en) * 2007-10-23 2015-10-13 United Services Automobile Association (Usaa) Image processing
US10380562B1 (en) 2008-02-07 2019-08-13 United Services Automobile Association (Usaa) Systems and methods for mobile deposit of negotiable instruments
US10504185B1 (en) 2008-09-08 2019-12-10 United Services Automobile Association (Usaa) Systems and methods for live video financial deposit
US8452689B1 (en) 2009-02-18 2013-05-28 United Services Automobile Association (Usaa) Systems and methods of check detection
US10956728B1 (en) 2009-03-04 2021-03-23 United Services Automobile Association (Usaa) Systems and methods of check processing with background removal
US8432961B2 (en) * 2009-06-11 2013-04-30 Lg Electronics Inc. Transmitting/receiving system and method of processing broadcast signal in transmitting/receiving system
US9779392B1 (en) 2009-08-19 2017-10-03 United Services Automobile Association (Usaa) Apparatuses, methods and systems for a publishing and subscribing platform of depositing negotiable instruments
US8977571B1 (en) 2009-08-21 2015-03-10 United Services Automobile Association (Usaa) Systems and methods for image monitoring of check during mobile deposit
US9129340B1 (en) 2010-06-08 2015-09-08 United Services Automobile Association (Usaa) Apparatuses, methods and systems for remote deposit capture with enhanced image detection
US20130142057A1 (en) * 2011-12-01 2013-06-06 Broadcom Corporation Control Channel Acquisition
US10380565B1 (en) 2012-01-05 2019-08-13 United Services Automobile Association (Usaa) System and method for storefront bank deposits
US9286514B1 (en) 2013-10-17 2016-03-15 United Services Automobile Association (Usaa) Character count determination for a digital image
CN105812089B (zh) * 2014-12-31 2018-12-18 晨星半导体股份有限公司 适用于第二代地面数字视频广播系统的解交错程序的数据处理电路及方法
US10506281B1 (en) 2015-12-22 2019-12-10 United Services Automobile Association (Usaa) System and method for capturing audio or video data
US11030752B1 (en) 2018-04-27 2021-06-08 United Services Automobile Association (Usaa) System, computing device, and method for document detection
US11900755B1 (en) 2020-11-30 2024-02-13 United Services Automobile Association (Usaa) System, computing device, and method for document detection and deposit processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010014962A1 (en) * 1999-02-26 2001-08-16 Kazuhisa Obuchi Turbo decoding apparatus and interleave-deinterleave apparatus

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912898A (en) * 1997-02-27 1999-06-15 Integrated Device Technology, Inc. Convolutional interleaver/de-interleaver
US6353900B1 (en) * 1998-09-22 2002-03-05 Qualcomm Incorporated Coding system having state machine based interleaver
US6304985B1 (en) * 1998-09-22 2001-10-16 Qualcomm Incorporated Coding system having state machine based interleaver
JP3445525B2 (ja) * 1999-04-02 2003-09-08 松下電器産業株式会社 演算処理装置及び方法
KR100762612B1 (ko) * 2001-12-07 2007-10-01 삼성전자주식회사 터보 복호화 장치에서 인터리버와 디인터리버간 메모리공유 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010014962A1 (en) * 1999-02-26 2001-08-16 Kazuhisa Obuchi Turbo decoding apparatus and interleave-deinterleave apparatus

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
HONG S ET AL: "DESIGN AND IMPLEMENTATION OF A LOW COMPLEXITY VLSI TURBO-CODE DECODER ARCHITECTURE FOR LOW ENERGY MOBILE WIRELESS COMMUNICATIONS" JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL. IMAGE, AND VIDEO TECHNOLOGY, KLUWER ACADEMIC PUBLISHERS, DORDRECHT, NL, Bd. 24, Nr. 1, Februar 2000 (2000-02), Seiten 43-56, XP000920089 ISSN: 0922-5773 *
IN SAN JEON ET AL: "An efficient turbo decoder architecture for IMT2000" VLSI AND CAD, 1999. ICVC '99. 6TH INTERNATIONAL CONFERENCE VLSI AND CAD IN SEOUL, SOUTH KOREA 26-27 OCT. 1999, PISCATAWAY, NJ, USA,IEEE, US, 26. Oktober 1999 (1999-10-26), Seiten 301-304, XP010370101 ISBN: 0-7803-5727-2 *
WORM A ET AL: "VLSI architectures for high-speed MAP decoders" PROCEEDINGS OF 14TH INTERNATIONAL CONFERENCE ON VLSI DESIGN IN BENGALORE (INDIA), IEEE, 3. - 7. Januar 2001, Seiten 446-453, XP010531492 *
WU P H-Y ET AL: "IMPLEMENTATION OF A LOW COMPLEXITY, LOW POWER, INTEGER-BASED TURBO DECODER" GLOBECOM'01. 2001 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE. SAN ANTONIO, TX, NOV. 25 - 29, 2001, IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, NEW YORK, NY: IEEE, US, Bd. 2 OF 6, 25. November 2001 (2001-11-25), Seiten 946-951, XP001099245 ISBN: 0-7803-7206-9 *

Also Published As

Publication number Publication date
DE10206727A1 (de) 2003-08-28
WO2003071689A3 (de) 2003-12-31
US20050034046A1 (en) 2005-02-10
CN1633750A (zh) 2005-06-29

Similar Documents

Publication Publication Date Title
WO2003071689A2 (de) Kombinierter ver- und entschachteler sowie turbo-decodierer mit kombiniertem ver- und entschachteler
DE69736881T2 (de) Parallel verketteter tail-biting-faltungskode und dekoder dafür
DE69838451T2 (de) Verfahren und schaltung zur adaptiven kanalkodierung
DE102005010006B4 (de) Verfahren und Vorrichtung zum Terminieren einer iterativen Turbo-Dekodierung
DE60001988T2 (de) Turbo Dekodierung mit variabler Anzahl von Iterationen
DE112004002008B4 (de) Vereinheitlichter Viterbi/Turbo-Decoder für mobile Telekommunikationssysteme
DE69925151T2 (de) Effiziente normalisierung vom trelliszustandsmetrischem wert
DE3910739A1 (de) Verfahren zur verallgemeinerung des viterbi-algorithmus
DE60125686T2 (de) Falterprozessor zur Telekommunikation
DE60111974T2 (de) Abbruchkriterium für einen Turbodekoder
DE112010003449T9 (de) Iterative Decodierung von Signalen, die über einen verrauschten Kanal empfangen werden, unter Verwendung von Vorwärts- und Rückwärts-Rekursionen mit einer Hochfahrinitialisierung
DE10196688B3 (de) Ein Decodierer für eine trellis-basierte Kanalcodierung
DE10310812B4 (de) Dekodiervorrichtung, Trellis-Prozessor und Verfahren
DE60007956T2 (de) Vorrichtung und Verfahren zur SISO Dekodierung
DE69908629T2 (de) Hybrid verschachteler für turbo-kodierer
WO2002030073A2 (de) Abschnittsweise entschachtelung
EP1269633B1 (de) Optimierter turbo-decodierer
DE19934646C2 (de) Verfahren und Vorrichtung zur iterativen Decodierung von verketteten Codes
DE10214393A1 (de) Verfahren zur iterativen Decodierung von verketteten Codes
EP1269632B1 (de) Turbo-decodierer und turbo-decodierverfahren
DE60118716T2 (de) Log-MAP Dekodierung
DE60209196T2 (de) Verfahren und Vorrichtung zur Optimierung, unter Leistungsgebundenheiten, der Grösse von kodierten Datenblöcken
DE19520987A1 (de) Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes
EP1593201B1 (de) Verfahren und schaltung zur adressgenerierung von pseudo-zufalls-interleavern oder -deinterleavern
DE60224862T2 (de) Ver- und Entschachtellungsapparat und Verfahren

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): DE FR GB

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 20038040638

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 10920902

Country of ref document: US

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP