WO2004030226A1 - Method of calculating an intra-row permutation pattern for an interleaver - Google Patents

Method of calculating an intra-row permutation pattern for an interleaver Download PDF

Info

Publication number
WO2004030226A1
WO2004030226A1 PCT/IB2003/004058 IB0304058W WO2004030226A1 WO 2004030226 A1 WO2004030226 A1 WO 2004030226A1 IB 0304058 W IB0304058 W IB 0304058W WO 2004030226 A1 WO2004030226 A1 WO 2004030226A1
Authority
WO
WIPO (PCT)
Prior art keywords
intra
row
calculating
modulo
row permutation
Prior art date
Application number
PCT/IB2003/004058
Other languages
French (fr)
Inventor
Sébastien CHARPENTIER
Yordan Tabakov
Original Assignee
Koninklijke Philips Electronics N.V.
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 Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Priority to AU2003263448A priority Critical patent/AU2003263448A1/en
Publication of WO2004030226A1 publication Critical patent/WO2004030226A1/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/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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic

Definitions

  • the present invention relates to a method of calculating an intra-row permutation pattern for an interleaver, said intra-row permutation pattern comprising intra-row permutation elements which are intended to be stored in a matrix comprising rows and columns, the method comprising the steps of calculating the numbers of rows and columns, a prime number and a primitive root, as a function of a length of a data block to be interleaved and calculating a prime integer sequence.
  • the present invention also relates to a circuit for implementing this method, a decoding circuit comprising an interleaver implementing this method, an electronic device and a telecommunication network comprising such a decoding circuit and a computer program for implementing this method.
  • the present invention is particularly relevant for a system for communicating data by satellite, or a system implementing the UMTS standard (UMTS stands for Universal Mobile Telecommunication System).
  • UMTS Universal Mobile Telecommunication System
  • a third generation mobile phone might implement such a method.
  • Interleavers are used in many coding and decoding circuits.
  • a turbo decoding circuit compliant with the UMTS standard uses an interleaver for mixing the positions of received data in order to randomise the error positions so that consecutive error accumulation due to Raleigh channel fading is avoided.
  • Such an interleaver is described in the "3GPP TS 25.212 V3.9.0 (2002-03)" specification.
  • An object of this interleaver is to mix the positions of data bits in a data block comprising K bits, K being a variable integer varying from 40 to 5114.
  • the interleaver transforms the data block into an interleaved data block, thanks to an interleaving pattern defined by an interleaving matrix comprising R rows and C columns.
  • Fig. 1 illustrates how the interleaving matrix is defined and how the bits of the data block are mixed thanks to this interleaving matrix.
  • a data block B comprising 25 bits is interleaved and an interleaved data block B' is obtained.
  • This example aims at showing, in a simple way, how the interleaved data block B' is obtained, and does not correspond to any real example.
  • this example is not relevant for the "3GPP TS 25.212 V3.9.0 (2002-03)" specification, where the block length K is between 40 and 5114.
  • each bit of the data block B is identified by an identifier, from 0 to 24.
  • the identifiers are first written in a first matrix Ml row by row. Then, an intra-row permutation is effected on the matrix Ml, according to an intra-row permutation pattern, and a matrix M2 is obtained. An inter-row permutation is then effected on the matrix M2, according to an inter-row permutation pattern, and a matrix M3 is then obtained. This matrix M3 is the interleaving matrix.
  • the identifiers of the bits of the interleaved data block B' are then obtained by reading the identifiers from the interleaving matrix, column by column.
  • the bit having the identifier "0”, which is in the first position in block B, is in the twenty-fourth position in block B'.
  • the bit having the identifier "5" in block B is on the second position in bloc B', and so on. For each value of K, a different interleaving pattern has to be determined.
  • Determining an interleaving pattern requires determining an intra-row permutation pattern and an inter-row permutation pattern.
  • the above-mentioned specification specifies only four inter-row permutation patterns, which are defined in table 1. For example, the inter-row permutation pattern having the number "1" puts the twentieth row of the matrix M2, which is denoted as "19”, instead of the first row of the matrix M2, which is denoted as "0", the tenth row instead of the second row and so on.
  • the number of rows in the interleaving matrix and the inter-row permutation pattern directly depend on the block length K, as described in table 2.
  • This table is stored in a memory and, knowing the block length K, the interleaver determines the number of rows R and the inter-row permutation pattern which have to be used. Therefore, when a data block with a given length K has to be interleaved, the interleaver does not have to calculate the number of rows of the matrix and the inter-row permutation pattern, as these parameters are predetermined.
  • the number of columns C can adopt any integer value between 2 and 256, storing intra-row permutation patterns for each possible number of columns C would require a large memory. That is why the intra-row permutation pattern is calculated by the interleaver each time a data block with a new length K has to be interleaved.
  • a prime number p is determined, which is the minimum prime so that : (p-l) - K/R > 0
  • the number of columns C is determined, which is the minimum of (p-1), p or (p+l) so that K ⁇ R*C
  • a primitive root v is determined as a function of p, as described in table 3.
  • a minimum prime integer sequence g is calculated, which is composed of R values and is constructed as follows:
  • a base sequence s for intra-row permutation is calculated, which is composed of p-1 values and is constructed as follows:
  • calculating the intra-row permutation pattern requires calculating a base sequence s for intra-row permutation and quantities (i*r[j])mod(p-l). This requires to perform a "modulo-p” operation in order to calculate the base sequence s and a "modulo-(p-l)” operation in order to calculate the Quantities (i iDmodCu-l .
  • modulo ooerations consume a lot of resources in a circuit carrying out such operations. The calculation of the intra-row permutation pattern is therefore resource and power consuming.
  • a circuit for calculating the intra-row permutation pattern is complicated and requires a large silicon area.
  • Fig.2 illustrates a circuit, which might be used to carry out the calculation of the intra-row permutation pattern as described hereinbefore.
  • Such a circuit comprises a first register 20 for storing the permuted prime integer sequence, a multiplier modulo-(p-l) 21, an address decoder 22 and a second register 23.
  • the permuted prime integer is fetched from the first register 20 and multiplied by the value i by the multiplier 21, this multiplication being effected modulo-(p-l).
  • the quantity (i*r[j])mod(p-l) is thus obtained, and the address decoder 22 checks the value s[(i*r[j])mod(p-l)] in the second register 23.
  • This circuit thus requires an address decoder, which is resource, power and area consuming.
  • the second register is large, because it has to store 257 values, as p can adopt the value 257. Such a register is therefore also area consuming.
  • the address decoder 22 has to access the second register 23 in a random way, the second register is a random access register, which is complicated and power consuming.
  • a method of calculating an intra-row permutation pattern is characterised in that it comprises the steps of calculating a new primitive root for each row of the matrix, said new primitive root depending on a power of the primitive root, said power depending on the prime integer sequence and , for each row of the matrix, defining the intra-row permutation element corresponding to the first column and recursively calculating the permutation elements corresponding to the other columns by multiplying the permutation element corresponding to the preceding column by the new primitive root, said multiplication being carried out modulo the prime integer.
  • the invention only one operation "modulo-p" is performed to calculate an intra-row permutation element. Furthermore, the calculation of an intra-row permutation element only requires multiplications, which are effected recursively. A circuit implementing this method thus does not need any address decoder. Moreover, as only C new primitive roots have to be calculated, a small register is required to store these new primitive roots, and this small register does not need to be a random access register, as the data might be accessed in a predetermined order. The method according to the invention might thus be implemented by a circuit, which is less resource, area and power consuming. The invention also relates to a circuit for implementing such a method. This circuit comprises a first circular register for storing the new primitive roots of each row, a modulo-p multiplier for calculating the permutation elements and a second circular register for temporarily storing the results of the calculations carried out by the modulo-p multiplier.
  • This circuit only requires two small circular registers, which have to store at most 20 values in the case of a circuit according to the "3GPP TS 25.212 V3.9.0 (2002-03)" specification.
  • the modulo-p multiplier is pipelined. This means that new values to be multiplied modulo-p enters the modulo-p multiplier at each clock cycle and that a result of a modulo-p multiplication exits the modulo-p multiplier at each clock cycle.
  • the circuit thus allows calculating an intra-row permutation element at each clock cycle.
  • Fig. 1 illustrates the calculation of an interleaving matrix and an interleaved block
  • - Fig. 2 is a block diagram illustrating a circuit for calculating an intra-row permutation pattern according to the prior art
  • Fig. 3 is a diagram illustrating a method of calculating an intra- row permutation pattern in accordance with the invention
  • Fig. 4 is a block diagram illustrating a circuit for implementing the method of Fig.3;
  • Fig.5 is a block diagram illustrating a modulo-p multiplier, which might be used in the circuit of Fig.4.
  • the number of rows is calculated, as it has been described hereinbefore.
  • the prime number p and the primitive root v are calculated i and at step 32 the number of columns is calculated. All these quantities depend on the block length K.
  • a prime integer sequence is calculated. This prime integer sequence is, for example, the minimum prime integer sequence g , or the permuted prime integer sequence r.
  • a new primitive root v'[j] is calculated for each row j.
  • This J) new primitive root depends on a power of the primitive root v, said power depending on the prime integer sequence.
  • other primitive roots might be used for implementing the 5 method according to the invention.
  • the following primitive roots might be used :
  • the intra-row permutation element U j [0] corresponding to the first row is defined at step 36.
  • Uj[0] 1 for each row. It is important to notice that this step 36 might be performed at any stage of the method in accordance with the invention.
  • the intra-row permutation elements Uj[0] might be
  • the other intra-row permutation elements corresponding to the given row j are calculated at step 37. It is important to notice that the intra-row permutation elements might be calculated column by column, instead of row by row. 0
  • a column-by-column calculation is described in the description of Fig.4.
  • a row-by- row calculation is detailed hereinafter.
  • This expression might also be used in order to calculate the intra-row permutation elements corresponding to the row T[j].
  • the intra-row permutation elements of a given row 0 might easily be calculated by implementing the method in accordance with the invention. Knowing the first intra-row permutation element of this given row and the new primitive root for this given row, the second intra-row permutation element is calculated by multiplying the first intra-row permutation element by the new primitive root, this multiplication being carried out modulo-p. The third intra-row permutation element is calculated by multiplying the second intra-row permutation element by the new primitive root, this multiplication being carried out modulo-p, and so on.
  • Fig. 4 illustrates a circuit for implementing the method in accordance with the invention.
  • Such a circuit comprises a first circular register 41, a second circular register 42 and a modulo-p multiplier 43.
  • the new primitive roots of each row are stored in the first circular register 41, which can store 20 values in order to be able to store the new primitive roots for any block length K, as R new primitive roots are calculated in accordance with the invention, and R has at most the value 20.
  • the intra-row permutation elements U j [0] corresponding to the first column are stored in the second circular register 42.
  • the intra-row permutation element U 0 [l] corresponding to the second column of the first row is calculated.
  • the new primitive root v'[0] is fetched from the first circular register 41 and the intra-row permutation element U 0 [0] is fetched from the second circular register 42.
  • the new primitive root v'[0] is then recopied at the end of the first circular register 41.
  • These two values are multiplied by the modulo-p multiplier 43, this multiplication being carried out modulo-p.
  • the result U 0 [l] is sent to the interleaving matrix M3, and recopied at the end of the second circular register 42.
  • the intra-row permutation element U ⁇ [l] is calculated.
  • the new primitive root v'[l] is fetched from the first circular register 41 and the intra-row permutation element U ⁇ [0] is fetched from the second circular register 42.
  • the new primitive root v'[l] is then recopied at the end of the first circular register 41.
  • These two values are multiplied by the modulo-p multiplier 43, this multiplication being carried out modulo-p.
  • the result U ⁇ [l] is sent to the interleaving matrix M3, and recopied at the end of the second circular register 42.
  • the intra-row permutation elements Uj[l] are calculated the same way for each row j.
  • the intra-row permutation element U 0 [2] can thus be calculated by fetching the value v'[0] from the first circular register 41 and the value U 0 [l] from the second circular register 42. Then the intra-row permutation element U ⁇ [2] is calculated, and so on.
  • the circuit of Fig.4 thus allows easy calculation of the intra-row permutation pattern. Only two circular registers are required, which have to store only a few values. This circuit thus does not take up a lot of resources, power and area.
  • Fig. 5 illustrates a modulo-p multiplier, which might be used in the ) circuit of Fig.4, to decrease the time required to calculate the intra-row permutation pattern.
  • an intra-row permutation element Uj + ⁇ [i] is not fetched from the second circular register 42 until the calculation of the intra-row permutation element Uj [i+1] is effected.
  • the operation carried out by the modulo-p multiplier might require a few clock cycles. The time required to calculate the intra-row permutation pattern is therefore quite large.
  • the modulo-p multiplier is pipelined, as explained hereinafter.
  • the circuit of Fig. 5 comprises four modulo-p shifters 501 to 504, four modulo-p adders 511 to 514, five multiplexers 521 to 525 and twelve registers 531 to 542.
  • Multiplying two values x and y modulo-p with the circuit of Fig.5, wherein x and y are smaller than p, might be effected in the following way, when x and y are written in binary language.
  • the length of x and y is 5 bits, which are written x(0), x(l), x(2), x(3) and x(4) from the least significant bit to the most significant bit, and y(0), y(l), y(2), y(3) and y(4).
  • the value x is sent to the modulo-p shifter 501 and to the multiplexer 521, and the value y is sent to the register 531. If the bit y(0) is equal to 1, the value x is copied in the register 539.
  • the value 0 is copied in the register 539.
  • the modulo-p shifter shifts the value x to the left, and compares the result of the shift with p. This result is written x(l) x(2) x(3) x(4) 0. If this result is greater than p, a modulo-p operation is performed on this result and the new result is written in the register 535. Otherwise, this result is copied in the register 535.
  • the value stored in the register 535 is sent to the modulo-p shifter 502 and to the multiplexer 522, and the value y is sent to the register 532.
  • Each step requires one clock cycle to fetch the values from the registers. If the second bit y(l) of the value y is equal to 1, the value stored in the register 535 is sent to the modulo-p adder 511. Otherwise, the value 0 is sent to the modulo-p adder 511. The value stored in the register 539 is also sent to the modulo-p adder 511. The modulo-p adder 511 thus performs a modulo-p addition with these two values, and sends the result to the register 540.
  • Fig. 5 might be pipelined. Such a pipelined circuit might be used in order to implement the method in accordance with the invention, as described hereinafter.
  • step 51 the new primitive root v'[0] is sent at step 51 to the register 531, and the intra-row permutation element U 0 [0] is sent to the modulo-p shifter 501 and to the multiplexer 521.
  • step 52 is performed during a second clock cycle.
  • the new primitive root v'[l] is sent to the register 531, and the intra-row permutation element U ⁇ O] is sent to the modulo-p shifter 501 and to the multiplexer 521, in order to perform the first step of the modulo-p multiplication between v'[l] and
  • Fig. 5 illustrates the calculations performed during a fifth clock cycle.
  • the fifth step of the modulo-p multiplication is performed between v'[0] and U 0 [0], where the multiplexer 525 checks if the fifth bit v'[0](4) of the new primitive root v'[0] is equal to 1.
  • the fourth step of the modulo-p multiplication is performed between v'[l] and U ⁇ [0], where the multiplexer 524 checks if the fourth bit v'[l](3) of the new primitive root v'[l] is equal to 1, and so on.
  • the first step of the modulo- p multiplication is performed between v'[4] and U 4 [0], where the multiplexer 521 checks if the first bit v'[4](0) of the new primitive root v'[4] is equal to 1.
  • the intra-row permutation element U 0 [l] is sent to the interleaving matrix.
  • the intra-row permutation element U ⁇ [l] is sent to the interleaving matrix, and so on.
  • the pipelined circuit of Fig. 5 thus allows calculating an intra-row permutation element at each clock cycle, after a predetermined number of clock cycles, depending on the bit length of the intra-row permutation elements, which depends on the block length K. Using such a pipelined circuit thus allows to reduce the time required for calculating the intra-row permutation pattern.
  • An interleaver implementing the method in accordance with the invention may be implemented in a decoding circuit, which may be implemented in an electronic device, such as a mobile phone.
  • a decoding circuit may form part of a telecommunication network comprising a transmitter for sending encoding signals, a transmission channel and a receiver for receiving said signal.
  • the method for calculating an intra-row permutation pattern according to the invention might be implemented in an integrated circuit, which is intended to be integrated in a decoding circuit.
  • a set of instructions that is loaded into a program memory causes the integrated circuit to carry out the method for calculating an intra-row permutation pattern.
  • the set of instructions may be stored on a data carrier such as, for example, a disk.
  • the set of instructions can be read from the data carrier so as to load it into the program memory of the integrated circuit, which will then fulfil its role.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

The invention relates to a method of calculating an intra-row permutation pattern for an interleaver. The intra-row permutation pattern comprises intra-row permutation elements stored in a matrix comprising rows and columns. The method comprises the steps (31, 32, 33) of calculating the numbers of rows and columns, a prime number and a primitive root and calculating a prime integer sequence (34). The method further comprises the steps of calculating (35) a new primitive root for each row of the matrix and, for each row of the matrix, defining (36) the intra-row permutation element corresponding to the first column and recursively calculating (37) the permutation elements corresponding to the other columns by multiplying modulo-p the permutation element corresponding to the preceding column with the new primitive root.

Description

Method of calculating an intra-row permutation pattern for an interleaver.
FIELD OF THE INVENTION
The present invention relates to a method of calculating an intra-row permutation pattern for an interleaver, said intra-row permutation pattern comprising intra-row permutation elements which are intended to be stored in a matrix comprising rows and columns, the method comprising the steps of calculating the numbers of rows and columns, a prime number and a primitive root, as a function of a length of a data block to be interleaved and calculating a prime integer sequence.
The present invention also relates to a circuit for implementing this method, a decoding circuit comprising an interleaver implementing this method, an electronic device and a telecommunication network comprising such a decoding circuit and a computer program for implementing this method.
The present invention is particularly relevant for a system for communicating data by satellite, or a system implementing the UMTS standard (UMTS stands for Universal Mobile Telecommunication System). For example, a third generation mobile phone might implement such a method.
BACKGROUND OF THE INVENTION
Interleavers are used in many coding and decoding circuits. For example, a turbo decoding circuit compliant with the UMTS standard uses an interleaver for mixing the positions of received data in order to randomise the error positions so that consecutive error accumulation due to Raleigh channel fading is avoided. Such an interleaver is described in the "3GPP TS 25.212 V3.9.0 (2002-03)" specification.
An object of this interleaver is to mix the positions of data bits in a data block comprising K bits, K being a variable integer varying from 40 to 5114. The interleaver transforms the data block into an interleaved data block, thanks to an interleaving pattern defined by an interleaving matrix comprising R rows and C columns.
Fig. 1 illustrates how the interleaving matrix is defined and how the bits of the data block are mixed thanks to this interleaving matrix. In this example, a data block B comprising 25 bits is interleaved and an interleaved data block B' is obtained. This example aims at showing, in a simple way, how the interleaved data block B' is obtained, and does not correspond to any real example. In particular, this example is not relevant for the "3GPP TS 25.212 V3.9.0 (2002-03)" specification, where the block length K is between 40 and 5114.
In this example, each bit of the data block B is identified by an identifier, from 0 to 24. The identifiers are first written in a first matrix Ml row by row. Then, an intra-row permutation is effected on the matrix Ml, according to an intra-row permutation pattern, and a matrix M2 is obtained. An inter-row permutation is then effected on the matrix M2, according to an inter-row permutation pattern, and a matrix M3 is then obtained. This matrix M3 is the interleaving matrix. The identifiers of the bits of the interleaved data block B' are then obtained by reading the identifiers from the interleaving matrix, column by column. In this example, the bit having the identifier "0", which is in the first position in block B, is in the twenty-fourth position in block B'. The bit having the identifier "5" in block B is on the second position in bloc B', and so on. For each value of K, a different interleaving pattern has to be determined.
Determining an interleaving pattern requires determining an intra-row permutation pattern and an inter-row permutation pattern. The above-mentioned specification specifies only four inter-row permutation patterns, which are defined in table 1. For example, the inter-row permutation pattern having the number "1" puts the twentieth row of the matrix M2, which is denoted as "19", instead of the first row of the matrix M2, which is denoted as "0", the tenth row instead of the second row and so on.
Figure imgf000003_0001
Table 1 : inter-row permutation patterns
The number of rows in the interleaving matrix and the inter-row permutation pattern directly depend on the block length K, as described in table 2. This table is stored in a memory and, knowing the block length K, the interleaver determines the number of rows R and the inter-row permutation pattern which have to be used. Therefore, when a data block with a given length K has to be interleaved, the interleaver does not have to calculate the number of rows of the matrix and the inter-row permutation pattern, as these parameters are predetermined. Conversely, as the number of columns C can adopt any integer value between 2 and 256, storing intra-row permutation patterns for each possible number of columns C would require a large memory. That is why the intra-row permutation pattern is calculated by the interleaver each time a data block with a new length K has to be interleaved.
Figure imgf000004_0001
Table 2: inter-row permutation patterns and R as function of K
Calculating the intra-row permutation pattern for a given block length K requires calculation of many parameters, which are described hereinafter.
First, a prime number p is determined, which is the minimum prime so that : (p-l) - K/R > 0
Then, the number of columns C is determined, which is the minimum of (p-1), p or (p+l) so that K≤ R*C
Then a primitive root v is determined as a function of p, as described in table 3.
Figure imgf000004_0002
Figure imgf000005_0001
Table 3: primitive root v as a function of prime number p
Then, a minimum prime integer sequence g is calculated, which is composed of R values and is constructed as follows:
- q[0] = 1 for j>0, q[j] is the smallest primary number so that :
• the greatest common divisor between q[j] and (p-1) is 1
• qϋ]>6
q[j]> q-j-i]
Then a permuted prime integer sequence r is calculated, which is a permuted version of g, using the inter-row permutation pattern T : r[T[j]] = q[j]
Then a base sequence s for intra-row permutation is calculated, which is composed of p-1 values and is constructed as follows:
- s[0] = 1
- s[i] = (v*s[i-l])mod p, where "mod p" indicates that the multiplication is effected modulo-p.
Finally, the intra-row permutation pattern is calculated for each column j. For a given column j, C intra-row permutation pattern elements Uj are calculated according to the following scheme, which is given for C=p :
- Uj[i] = s[(i*rD'])mod(p-l)] for i = 0, 1, , p-2
- Uj[p-1] = 0
As a consequence, calculating the intra-row permutation pattern requires calculating a base sequence s for intra-row permutation and quantities (i*r[j])mod(p-l). This requires to perform a "modulo-p" operation in order to calculate the base sequence s and a "modulo-(p-l)" operation in order to calculate the Quantities (i iDmodCu-l . However, "modulo" ooerations consume a lot of resources in a circuit carrying out such operations. The calculation of the intra-row permutation pattern is therefore resource and power consuming.
Furthermore, a circuit for calculating the intra-row permutation pattern is complicated and requires a large silicon area. Fig.2 illustrates a circuit, which might be used to carry out the calculation of the intra-row permutation pattern as described hereinbefore. Such a circuit comprises a first register 20 for storing the permuted prime integer sequence, a multiplier modulo-(p-l) 21, an address decoder 22 and a second register 23. In order to calculate an intra-row permutation element Uj[i], the permuted prime integer is fetched from the first register 20 and multiplied by the value i by the multiplier 21, this multiplication being effected modulo-(p-l). The quantity (i*r[j])mod(p-l) is thus obtained, and the address decoder 22 checks the value s[(i*r[j])mod(p-l)] in the second register 23.
This circuit thus requires an address decoder, which is resource, power and area consuming. Moreover, the second register is large, because it has to store 257 values, as p can adopt the value 257. Such a register is therefore also area consuming. Furthermore, as the address decoder 22 has to access the second register 23 in a random way, the second register is a random access register, which is complicated and power consuming.
SUMMARY OF THE INVENTION
It is an object of the invention to provide a method of calculating an intra-row permutation pattern, which might be implemented by a circuit, which is less resource, area and power consuming.
To this end, a method of calculating an intra-row permutation pattern according to the invention, as described in the opening paragraph, is characterised in that it comprises the steps of calculating a new primitive root for each row of the matrix, said new primitive root depending on a power of the primitive root, said power depending on the prime integer sequence and , for each row of the matrix, defining the intra-row permutation element corresponding to the first column and recursively calculating the permutation elements corresponding to the other columns by multiplying the permutation element corresponding to the preceding column by the new primitive root, said multiplication being carried out modulo the prime integer.
According to the invention, only one operation "modulo-p" is performed to calculate an intra-row permutation element. Furthermore, the calculation of an intra-row permutation element only requires multiplications, which are effected recursively. A circuit implementing this method thus does not need any address decoder. Moreover, as only C new primitive roots have to be calculated, a small register is required to store these new primitive roots, and this small register does not need to be a random access register, as the data might be accessed in a predetermined order. The method according to the invention might thus be implemented by a circuit, which is less resource, area and power consuming. The invention also relates to a circuit for implementing such a method. This circuit comprises a first circular register for storing the new primitive roots of each row, a modulo-p multiplier for calculating the permutation elements and a second circular register for temporarily storing the results of the calculations carried out by the modulo-p multiplier.
This circuit only requires two small circular registers, which have to store at most 20 values in the case of a circuit according to the "3GPP TS 25.212 V3.9.0 (2002-03)" specification.
Advantageously, as the modulo-p multiplication requires many clock cycles to be performed, the modulo-p multiplier is pipelined. This means that new values to be multiplied modulo-p enters the modulo-p multiplier at each clock cycle and that a result of a modulo-p multiplication exits the modulo-p multiplier at each clock cycle. The circuit thus allows calculating an intra-row permutation element at each clock cycle.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be described in more detail, by way of example, with reference to the accompanying drawings, in which:
Fig. 1 illustrates the calculation of an interleaving matrix and an interleaved block; - Fig. 2 is a block diagram illustrating a circuit for calculating an intra-row permutation pattern according to the prior art;
Fig. 3 is a diagram illustrating a method of calculating an intra- row permutation pattern in accordance with the invention;
Fig. 4 is a block diagram illustrating a circuit for implementing the method of Fig.3;
Fig.5 is a block diagram illustrating a modulo-p multiplier, which might be used in the circuit of Fig.4.
DETAILED DESCRIPTION OF THE INVENTION A method of calculating an intra-row permutation pattern according to the invention is depicted in Fig.3.
At step 31, the number of rows is calculated, as it has been described hereinbefore. At step 32, the prime number p and the primitive root v are calculated i and at step 32 the number of columns is calculated. All these quantities depend on the block length K. At step 34, a prime integer sequence is calculated. This prime integer sequence is, for example, the minimum prime integer sequence g, or the permuted prime integer sequence r.
At step 35, a new primitive root v'[j] is calculated for each row j. This J) new primitive root depends on a power of the primitive root v, said power depending on the prime integer sequence. In the following, the new primitive root v'[j] is defined by : v'[j] = vr[j] Of course, other primitive roots might be used for implementing the 5 method according to the invention. For example, the following primitive roots might be used :
v'[j] = vrϋ:ιmod p
v'[j] = vq[j]
■ v'[j] = vq[j]modp
,0 Once the new primitive root for a given row j has been calculated, the intra-row permutation element Uj[0] corresponding to the first row is defined at step 36. For example, it is possible to define Uj[0] = 1 for each row. It is important to notice that this step 36 might be performed at any stage of the method in accordance with the invention. For example, the intra-row permutation elements Uj[0] might be
>5 predetermined before performing the other steps of the method in accordance with the invention.
Then, the other intra-row permutation elements corresponding to the given row j are calculated at step 37. It is important to notice that the intra-row permutation elements might be calculated column by column, instead of row by row. 0 A column-by-column calculation is described in the description of Fig.4. A row-by- row calculation is detailed hereinafter.
The intra-row permutation elements corresponding to the given row j are calculated according to the expression: Uj[i+1] = (v'[j]* Uj[i])mod p It is easy to show that this expression corresponds to the calculation of the intra-row permutation elements according to the prior art. Actually:
- The expression s[i] = (v*s[i-l])mod p is equivalent to the expression s[i] = (v'*s[0])mod p = v'mod p. i - As a consequence, the expression Uj[i] = s[(i*r[j])mod(p-l)] is equivalent to the expression Uj[i] = v^'^^^^^mod p.
- Furthermore, let us write a = v and i*r[j] = b, then:
- abmod p = [an(p-1)][a mod ( "1}]mod p, where n is such that b = n(p-l) + bmod
(P-1). ) - Thus, abmod p = [an(p-1}mod ρ][abmod (p"1}]mod p
= [(a^^mod p][abmod (p-υ]mod p = [a^-^mod p]n[abmod (p'1}]mod p
- A well-known theorem indicates that, if p is a primary number and the greatest common divisor between a and p is 1, then a(p_1)mod p = 1. In this example,
5 a = v and v is never equal to p, which implies that the greatest common divisor between a and p is 1. Thus, [a(p_1)mod p]n = 1. As a consequence: abmod p = abmod (p-1)mod
- Then, replacing a by v and b by i*r[j] in this expression leads to the following expression: v^ od p = v^^^mod p = Uj[i]
:0 - This expression is equivalent to the expression: Uj[i] = (v'[j])Imod p, where v'[j] = vr[j]
- Applying this expression recursively leads to the following expression:
Uj[i+l] = (v'ϋ]* Uj[i])mod p
Suppose another new primitive root is used for implementing this method, for 5 example v' [j] = vq[j]. Then it is easy to show that; Uτrj][i+l] = (v'[j]* Uτ[j][i])mod p
This expression might also be used in order to calculate the intra-row permutation elements corresponding to the row T[j].
As a consequence, the intra-row permutation elements of a given row 0 might easily be calculated by implementing the method in accordance with the invention. Knowing the first intra-row permutation element of this given row and the new primitive root for this given row, the second intra-row permutation element is calculated by multiplying the first intra-row permutation element by the new primitive root, this multiplication being carried out modulo-p. The third intra-row permutation element is calculated by multiplying the second intra-row permutation element by the new primitive root, this multiplication being carried out modulo-p, and so on.
Fig. 4 illustrates a circuit for implementing the method in accordance with the invention. Such a circuit comprises a first circular register 41, a second circular register 42 and a modulo-p multiplier 43. The new primitive roots of each row are stored in the first circular register 41, which can store 20 values in order to be able to store the new primitive roots for any block length K, as R new primitive roots are calculated in accordance with the invention, and R has at most the value 20.
First, the intra-row permutation elements Uj[0] corresponding to the first column are stored in the second circular register 42. Then, the intra-row permutation element U0[l] corresponding to the second column of the first row is calculated. In order to carry out this calculation, the new primitive root v'[0] is fetched from the first circular register 41 and the intra-row permutation element U0[0] is fetched from the second circular register 42. The new primitive root v'[0] is then recopied at the end of the first circular register 41. These two values are multiplied by the modulo-p multiplier 43, this multiplication being carried out modulo-p. The result U0[l] is sent to the interleaving matrix M3, and recopied at the end of the second circular register 42.
Then, the intra-row permutation element Uι [l] is calculated. In order to carry out this calculation, the new primitive root v'[l] is fetched from the first circular register 41 and the intra-row permutation element Uι [0] is fetched from the second circular register 42. The new primitive root v'[l] is then recopied at the end of the first circular register 41. These two values are multiplied by the modulo-p multiplier 43, this multiplication being carried out modulo-p. The result Uι [l] is sent to the interleaving matrix M3, and recopied at the end of the second circular register 42. The intra-row permutation elements Uj[l] are calculated the same way for each row j.
Once the intra-row permutation element corresponding to the second column of the last row has been calculated, i.e. U19[l] in the example of Fig.4, the value at the beginning of the first circular register 41 is v'[0] and the value at the beginning of the second circular register 42 is U0[l]. The intra-row permutation element U0[2] can thus be calculated by fetching the value v'[0] from the first circular register 41 and the value U0[l] from the second circular register 42. Then the intra-row permutation element Uι[2] is calculated, and so on.
The circuit of Fig.4 thus allows easy calculation of the intra-row permutation pattern. Only two circular registers are required, which have to store only a few values. This circuit thus does not take up a lot of resources, power and area.
Fig. 5 illustrates a modulo-p multiplier, which might be used in the ) circuit of Fig.4, to decrease the time required to calculate the intra-row permutation pattern. Actually, in the description hereinbefore, it was supposed that an intra-row permutation element Uj+ι [i] is not fetched from the second circular register 42 until the calculation of the intra-row permutation element Uj [i+1] is effected. However, the operation carried out by the modulo-p multiplier might require a few clock cycles. The time required to calculate the intra-row permutation pattern is therefore quite large. In order to remedy this drawback, the modulo-p multiplier is pipelined, as explained hereinafter.
The circuit of Fig. 5 comprises four modulo-p shifters 501 to 504, four modulo-p adders 511 to 514, five multiplexers 521 to 525 and twelve registers 531 to 542.
Multiplying two values x and y modulo-p with the circuit of Fig.5, wherein x and y are smaller than p, might be effected in the following way, when x and y are written in binary language. Suppose the length of x and y is 5 bits, which are written x(0), x(l), x(2), x(3) and x(4) from the least significant bit to the most significant bit, and y(0), y(l), y(2), y(3) and y(4). At step 51, the value x is sent to the modulo-p shifter 501 and to the multiplexer 521, and the value y is sent to the register 531. If the bit y(0) is equal to 1, the value x is copied in the register 539. Otherwise, the value 0 is copied in the register 539. The modulo-p shifter shifts the value x to the left, and compares the result of the shift with p. This result is written x(l) x(2) x(3) x(4) 0. If this result is greater than p, a modulo-p operation is performed on this result and the new result is written in the register 535. Otherwise, this result is copied in the register 535.
At step 52, the value stored in the register 535 is sent to the modulo-p shifter 502 and to the multiplexer 522, and the value y is sent to the register 532. Each step requires one clock cycle to fetch the values from the registers. If the second bit y(l) of the value y is equal to 1, the value stored in the register 535 is sent to the modulo-p adder 511. Otherwise, the value 0 is sent to the modulo-p adder 511. The value stored in the register 539 is also sent to the modulo-p adder 511. The modulo-p adder 511 thus performs a modulo-p addition with these two values, and sends the result to the register 540.
Similar operations are carried out at steps 53, 54 and 55, and the result of the modulo-p multiplication between x and y is obtained at the output of the modulo-p adder 514. As the steps 51 to 55 are performed one after the other, the circuit of
Fig. 5 might be pipelined. Such a pipelined circuit might be used in order to implement the method in accordance with the invention, as described hereinafter.
Suppose the length of the new primitive roots and of the intra-row permutation elements is 5 bits. Then, a modulo-p multiplication between a new primitive root and an intra-row permutation element requires 5 clock cycles. In order to calculate the intra-row permutation element U0[l], the new primitive root v'[0] is sent at step 51 to the register 531, and the intra-row permutation element U0[0] is sent to the modulo-p shifter 501 and to the multiplexer 521. After a first clock cycle, step 52 is performed during a second clock cycle. During this second clock cycle, the new primitive root v'[l] is sent to the register 531, and the intra-row permutation element U^O] is sent to the modulo-p shifter 501 and to the multiplexer 521, in order to perform the first step of the modulo-p multiplication between v'[l] and
Uι [0], while the second step of the modulo-p multiplication is performed between v'[0] and U0[0]. Then, during a third clock cycle, the second step of the modulo-p multiplication is performed between v'[l] and Uι [0] and the third step of the modulo-p multiplication is performed between v'[0] and Uo[0]. During this third clock cycle, the new primitive root v'[2] is sent to the register 531, and the intra-row permutation element U2[0] is sent to the modulo-p shifter 501 and to the multiplexer
521, in order to perform the first step of the modulo-p multiplication between v'[2] and U2[0].
Fig. 5 illustrates the calculations performed during a fifth clock cycle. The fifth step of the modulo-p multiplication is performed between v'[0] and U0[0], where the multiplexer 525 checks if the fifth bit v'[0](4) of the new primitive root v'[0] is equal to 1. The fourth step of the modulo-p multiplication is performed between v'[l] and Uι [0], where the multiplexer 524 checks if the fourth bit v'[l](3) of the new primitive root v'[l] is equal to 1, and so on. The first step of the modulo- p multiplication is performed between v'[4] and U4[0], where the multiplexer 521 checks if the first bit v'[4](0) of the new primitive root v'[4] is equal to 1. After this fifth clock cycle, the intra-row permutation element U0[l] is sent to the interleaving matrix. After a sixth clock cycle, the intra-row permutation element Uι [l] is sent to the interleaving matrix, and so on. The pipelined circuit of Fig. 5 thus allows calculating an intra-row permutation element at each clock cycle, after a predetermined number of clock cycles, depending on the bit length of the intra-row permutation elements, which depends on the block length K. Using such a pipelined circuit thus allows to reduce the time required for calculating the intra-row permutation pattern.
An interleaver implementing the method in accordance with the invention may be implemented in a decoding circuit, which may be implemented in an electronic device, such as a mobile phone. Such a decoding circuit may form part of a telecommunication network comprising a transmitter for sending encoding signals, a transmission channel and a receiver for receiving said signal.
The method for calculating an intra-row permutation pattern according to the invention might be implemented in an integrated circuit, which is intended to be integrated in a decoding circuit. A set of instructions that is loaded into a program memory causes the integrated circuit to carry out the method for calculating an intra-row permutation pattern. The set of instructions may be stored on a data carrier such as, for example, a disk. The set of instructions can be read from the data carrier so as to load it into the program memory of the integrated circuit, which will then fulfil its role.
Any reference sign in the following claims should not be construed as limiting the claim. It will be obvious that the use of the verb "to comprise" and its conjugations does not exclude the presence of any other elements or steps besides those defined in any claim. The word "a" or "an" preceding an element or a step does not exclude the presence of a plurality of such elements.

Claims

Claims
1. A method of calculating an intra-row permutation pattern for an interleaver, 5 said intra-row permutation pattern comprising intra-row permutation elements which are intended to be stored in a matrix comprising rows and columns, the method comprising the steps (31, 32, 33) of calculating the numbers of rows and columns, a prime number and a primitive root, as a function of a length of a data block to be interleaved and calculating (34) a prime integer sequence, the method further being characterized in that it comprises the
L0 steps of calculating (35) a new primitive root for each row of the matrix, said new primitive root depending on a power of the primitive root, said power depending on the prime integer sequence and, for each row of the matrix, defining (36) the intra-row permutation element corresponding to the first column and recursively calculating (37) the permutation elements corresponding to the other columns by multiplying the permutation element corresponding to
15 the preceding column by the new primitive root, said multiplication being carried out modulo the prime integer.
2. A circuit for implementing the method as claimed in claim 1, said circuit comprising a first circular register (41) for storing the new primitive roots of each row, a 0 modulo-p multiplier (43) for calculating the permutation elements and a second circular register (42) for temporarily storing the results of the calculations carried out by the modulo-
P-
3. A circuit as claimed in claim 2, wherein the modulo-p multiplier is pipelined. 5
4. A decoding circuit comprising an interleaver implementing the method as claimed in claim 1.
5. An electronic device comprising a decoding circuit as claimed in claim 4. 0
6. A telecommunication network comprising a transmitter for sending encoding signals, a transmission channel, a receiver for receiving said signal and a decoding circuit as claimed in claim 4.
7. A computer program comprising a set of instructions which, when loaded into a processor or a computer, causes the processor or the computer to carry out the method as claimed in claim 1.
PCT/IB2003/004058 2002-09-25 2003-09-15 Method of calculating an intra-row permutation pattern for an interleaver WO2004030226A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003263448A AU2003263448A1 (en) 2002-09-25 2003-09-15 Method of calculating an intra-row permutation pattern for an interleaver

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02292352 2002-09-25
EP02292352.8 2002-09-25

Publications (1)

Publication Number Publication Date
WO2004030226A1 true WO2004030226A1 (en) 2004-04-08

Family

ID=32039224

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2003/004058 WO2004030226A1 (en) 2002-09-25 2003-09-15 Method of calculating an intra-row permutation pattern for an interleaver

Country Status (2)

Country Link
AU (1) AU2003263448A1 (en)
WO (1) WO2004030226A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1508972A1 (en) * 2003-08-22 2005-02-23 Nec Corporation Mobile telephone, apparatus, method, and program for calculating an interleave parameter
EP1768276A1 (en) * 2004-07-27 2007-03-28 Huawei Technologies Co., Ltd. Interleaving and deinterleaving method for preventing periodic position interference
DE102008029623A1 (en) * 2008-06-23 2009-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver e.g. intra-row almost rectangular interleaver, for use in e.g. turbo encoder for scrambling information word, has interleaver stage for reading columns, and for arranging digits of row to one another without gap
US7667628B2 (en) 2008-06-23 2010-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Interleaver for scrambling and information word
RU2448358C1 (en) * 2010-11-26 2012-04-20 Государственное образовательное учреждение высшего профессионального образования "Саратовский государственный университет им. Н.Г. Чернышевского" Involutive permutation generator matrix

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1169777A1 (en) * 1999-04-14 2002-01-09 Nortel Networks Limited Intra-row permutation for turbocode
US6356636B1 (en) * 1998-07-22 2002-03-12 Motorola, Inc. Circuit and method for fast modular multiplication
WO2002030073A2 (en) * 2000-10-02 2002-04-11 Infineon Technologies Ag Segmental deinterlacing
WO2002069504A2 (en) * 2001-02-28 2002-09-06 Qualcomm Incorporated Interleaver for turbo decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356636B1 (en) * 1998-07-22 2002-03-12 Motorola, Inc. Circuit and method for fast modular multiplication
EP1169777A1 (en) * 1999-04-14 2002-01-09 Nortel Networks Limited Intra-row permutation for turbocode
WO2002030073A2 (en) * 2000-10-02 2002-04-11 Infineon Technologies Ag Segmental deinterlacing
WO2002069504A2 (en) * 2001-02-28 2002-09-06 Qualcomm Incorporated Interleaver for turbo decoder

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Prime Interleaver Complexity Analysis", TSG-RAN WG-1 MEETING #4, TSG R1#4(99)513, 18 April 1999 (1999-04-18) - 20 April 1999 (1999-04-20), Yokohama, Japan, pages 1 - 9, XP002263149 *
ISE M ET AL: "System-on-a-chip architecture for W-CDMA baseband modem LSI", ASIC, 2001. PROCEEDINGS. 4TH INTERNATIONAL CONFERENCE, 23 October 2001 (2001-10-23), pages 364 - 369, XP010576786 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1508972A1 (en) * 2003-08-22 2005-02-23 Nec Corporation Mobile telephone, apparatus, method, and program for calculating an interleave parameter
US7318184B2 (en) 2003-08-22 2008-01-08 Nec Corporation Mobile telephone, apparatus, method, and program for calculating an interleave parameter
EP1768276A1 (en) * 2004-07-27 2007-03-28 Huawei Technologies Co., Ltd. Interleaving and deinterleaving method for preventing periodic position interference
EP1768276A4 (en) * 2004-07-27 2007-08-08 Huawei Tech Co Ltd Interleaving and deinterleaving method for preventing periodic position interference
US7684448B2 (en) 2004-07-27 2010-03-23 Huawei Technologies Co., Ltd. Method and apparatus for data interleaving and data de-interleaving against periodical position interference
DE102008029623A1 (en) * 2008-06-23 2009-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver e.g. intra-row almost rectangular interleaver, for use in e.g. turbo encoder for scrambling information word, has interleaver stage for reading columns, and for arranging digits of row to one another without gap
US7667628B2 (en) 2008-06-23 2010-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Interleaver for scrambling and information word
RU2448358C1 (en) * 2010-11-26 2012-04-20 Государственное образовательное учреждение высшего профессионального образования "Саратовский государственный университет им. Н.Г. Чернышевского" Involutive permutation generator matrix

Also Published As

Publication number Publication date
AU2003263448A1 (en) 2004-04-19

Similar Documents

Publication Publication Date Title
US6209114B1 (en) Efficient hardware implementation of chien search polynomial reduction in reed-solomon decoding
US6385751B1 (en) Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder
EP2226726A2 (en) Programmable processor and method with wide operations
US5951677A (en) Efficient hardware implementation of euclidean array processing in reed-solomon decoding
US20050273676A1 (en) Third generation FDD modem interleaver
US6785862B1 (en) Convolutional interleaver employing an efficient memory scheme
US7170432B2 (en) Addresses generation for interleavers in turbo encoders and decoders
US8462614B2 (en) Buffer-based generation of OVSF code sequences
KR101017530B1 (en) A method and apparatus for generating an interleaved address
EP1203452A1 (en) Address generating device for use in multi-stage channel interleaver/deinterleaver
WO2004030226A1 (en) Method of calculating an intra-row permutation pattern for an interleaver
US7395293B1 (en) Memory segmentation for fast fourier transform
US7398446B2 (en) Low power operation of an address interleaver
US7552377B1 (en) Method of and circuit for interleaving data in a data coder
US7318184B2 (en) Mobile telephone, apparatus, method, and program for calculating an interleave parameter
JP3607116B2 (en) Arithmetic processing unit
US7765456B1 (en) Optimal multi-user orthogonal variable spreading factor (OVSF) code generator
US7904761B1 (en) Method and apparatus for a discrete power series generator
KR100549870B1 (en) Method for finding a last state in tail-biting and turbo encoder using the same
JPH06230991A (en) Method and apparatus for computation of inverse number of arbitrary element in finite field
US20060090111A1 (en) Circuit for recursively calculating data
US8200733B1 (en) Device having interleaving capabilities and a method for applying an interleaving function
KR100943612B1 (en) Turbo interleaving apparatus and method in mobile communication system having turbo code
US6681236B2 (en) Method of performing operations with a variable arithmetic
Park et al. A 2048 complex point FFT processor for DAB systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
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