[go: up one dir, main page]

HK1038448B - Interleavers and interleaving method for turbo code - Google Patents

Interleavers and interleaving method for turbo code Download PDF

Info

Publication number
HK1038448B
HK1038448B HK01109223.9A HK01109223A HK1038448B HK 1038448 B HK1038448 B HK 1038448B HK 01109223 A HK01109223 A HK 01109223A HK 1038448 B HK1038448 B HK 1038448B
Authority
HK
Hong Kong
Prior art keywords
predetermined
size
portions
data frame
permuting
Prior art date
Application number
HK01109223.9A
Other languages
Chinese (zh)
Other versions
HK1038448A1 (en
Inventor
崔健
童文
汪瑞
M‧巴库林
A‧克洛玛
V‧克赖因德林
Y‧夏那科夫
Original Assignee
Blackberry Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/196,461 external-priority patent/US6347385B1/en
Application filed by Blackberry Limited filed Critical Blackberry Limited
Publication of HK1038448A1 publication Critical patent/HK1038448A1/en
Publication of HK1038448B publication Critical patent/HK1038448B/en

Links

Description

Interleaver and interleaving method for Turbo coding
Technical Field
The present invention relates to electronic communication systems, and in particular to interleavers for performing coded modulation.
Background
Techniques for encoding a communication channel, known as code modulation, have been found to improve the Bit Error Rate (BER) of electronic communication systems, such as modems and wireless communication systems. An example of transmitting encoded information is shown in EP0235477, which discloses a method and apparatus for transmitting encoded information that is anti-mixed, according to the law xk=xo+kpN interleaving Bn symbols and B codewords encoded with n symbols, where x is given by the order of module BoIs the starting point in the sequence Bn symbols and p is the first number of Bn, k taking a value between 0 and Bn-1. Consecutive sequences of B.n symbols can be linked in different orders, produced by the same law, but with different starting points xoAnd different step sizes P.
Turbo (Turbo) coded modulation has proven to be a practical, power-efficient and bandwidth-efficient modulation method for "random error" channels characterized by Additive White Gaussian Noise (AWGN) or fading. These random error channels have been found, for example, in a Code Division Multiple Access (CDMA) environment.
The main novelty of Turbo coding is the interleaver, which permutes the originally received or transmitted data frames before inputting them to the second encoder. The permutation is done by a processor executing a randomization algorithm, the structure of which is well known. Combining the permuted data frames with the original data frames has shown to achieve low error rates in AWGN and fading channels. The interleaving process increases the data diversity in this way so that if the modulated symbols in the transmission are distorted, the error can be recovered in the decoder using an error correction algorithm.
Conventional interleavers aggregate or frame signal points to be transmitted into a matrix, where one row of the matrix is sequentially filled at a time. After a predetermined number of signal points have been framed, the interleaver is emptied by sequentially reading out the columns of the matrix to be transmitted. As a result, those signal points in the same matrix row that are immediately adjacent to each other in the original stream of signal points are separated by a number of signal points equal to the number of rows in the matrix. Ideally, the number of rows and columns is chosen so that after transmission, the correlated signal points are separated by burst errors for the channel that are greater than the expected length. However, this is not practical. As the number of lines increases, the signal delay increases due to the framing of the signal points. As a result, there is a systematic constraint on the interleaver size to keep the signal delay within an acceptable range. On the other hand, limiting the size of the interleaver limits the separation of time-different (time-reverse) correlated signal points, thus limiting the improvement in the error performance obtained by the interleaver.
There are two conventional interleaving methods: uniform interleaving (i.e., a regular interleaving method); and non-uniform interleaving (i.e., pseudo-irregular interleaving method). In the case of uniform interleaving, a higher-weight Finite Codeword (FC) may be constructed from a lower-weight FC. Thus, a certain "repetitive pattern" of low weight FC output sequences can occur in the output stream of a uniformly interleaved turbo encoder. However, uniform interleaving does not effectively decorrelate the outputs of the two encoders, and therefore, the minimum distance of the resulting turbo code cannot be increased as desired.
On the other hand, non-uniform interleaving results in better "maximum dispersion (scattering)" of data and "maximum irregularity" of the output sequence, which means that the redundancy introduced by the two convolutional codes is more uniformly spread in the output sequence of the turbo encoder. The minimum distance is increased to a value greater than that required for uniform interleaving. One permanent problem with non-uniform interleaving is how to obtain an effective "non-uniformity" because the interleaving algorithm can only be based on a pseudo-irregular approach. In addition to these, the means employed to implement this embodiment should be useful in practical applications. Furthermore, the conventional interleaver requires a large amount of memory space in the encoder. Conventional interleaving matrices also require delay compensation, which limits their use in applications with real-time requirements.
Therefore, there is a need for a system and method of interleaving codes that minimizes the required delay compensation.
It is an object of the present invention to provide a system and method for improving non-uniform interleaving coding.
It is another object of the present invention to provide a system and method for interleaving codes that minimizes the required delay compensation.
Summary of The Invention
These and other objects are achieved in accordance with the teachings of the present invention by the present invention of interleaving a data frame, wherein the data frame has a predetermined size and is comprised of portions. Embodiments of the present invention include a memory configured to receive and store a data frame. Once received, the data frame is indexed by a plurality of rows having a predetermined row size and a plurality of columns having a predetermined column size. The product of the predetermined row size and the predetermined column size is equal to the predetermined size of the data frame.
A processor is coupled to the memory and is configured to divide the frame of data into a plurality of portions. The processor is further configured to generate a permuted sequence that the plurality of portions have, wherein i is based on1(n1)=α1^(n1)mod(P1) Indexing multiple parts by multiple rows, where P1Is a prime number greater than a predetermined row size, n1Is an exampleEnclose from 1 to P1-1 (including P)1-1) integer, and a1Is P1The root of (2). The algorithm is such that i1(n1) Is a unique number between 1 and a predetermined line size.
The processor is further configured to generate a plurality of partial permutation sequences, wherein i is based on2(n2)=α2^(n2)mod(P2) Indexing multiple parts by multiple columns, where P2Is a prime number, n, of days in a predetermined column size2Is in the range of 1 to P2-1 (including P)2-1) integer, and a2Is P2The root of (2). The algorithm is such that i2(n2) Is a unique number between 1 and a predetermined column size. The result is an interleaved portion of the data frame.
Brief Description of Drawings
The present invention will be more clearly understood from the detailed description of exemplary embodiments taken in conjunction with the accompanying drawings, in which:
fig. 1 is a diagram of a typical turbo encoder.
Fig. 2a and 2b are flowcharts illustrating the operation of an improved turbo code interleaver according to the present invention.
Fig. 3 is a flow chart illustrating another embodiment of an improved turbo code interleaver according to the present invention.
Detailed description of the invention
The present invention is an apparatus and method for interleaving codes. The interleaver takes input data frames of every N data bits and rearranges them in a pseudo-random manner before encoding by the second encoder. The present invention may be used in satellite communication systems, wireless telephone systems, modems, computers, and the like.
The interleaver orders the bits in a way that lacks any apparent ordering. The present invention may perform better than a conventional interleaver even in the case where the data frame is small (i.e., where N is on the order of thousands). This is done by obtaining a more diverse "dispersion" than a conventional interleaver. Figure 1 shows a standard turbo encoder. It comprises two encoders 10 and 20 and an interleaver 30. The encoders 10 and 20 are connected in parallel such that the interleaver 30 is concatenated before the second encoder 20. The output of the first encoder 10 is a low weight encoding 50 and the output of the second encoder 20 is a high weight encoding 60. These outputs may be to a device such as an encoding shortening mechanism (not shown) to periodically delete selected bits to reduce encoding overhead. Further, the output of the interleaver 70 may also be sent directly to the shortening mechanism, although this is not required. Furthermore, the present invention may also be used with other non-turbo coding systems that require code interleaving.
The present invention discloses two embodiments of an interleaver that can improve the performance of conventional turbo coding. The first embodiment is referred to as Galya interleaver and the second embodiment is referred to as Frequency Hopping (FH) interleaver. Both embodiments are based on the principles of number theory and both embodiments may be implemented in software or hardware (i.e., Application Specific Integrated Circuits (ASICs), Programmable Logic Arrays (PLAs), or any other suitable logic devices, the structure of which is known).
In a first embodiment, the Galya interleaver, the matrix of information bits has N1Row and N2Column, thereby N1*N2N. In addition, prime numbers P are also present1And P2Each of which is greater than N1And N2(i.e., P)1>N1And P2>N2). Preferably, the prime numbers should be greater than N, respectively1And N2The lowest prime number of (a) is not required. Initial root (initial root) alpha can be determined for these prime numbers using conventional methods1And alpha2. With the above parameters, the bit sequence for the Galya interleaver is defined by the following equation:
i1(n1)=α1^(n1)mod(P1) Wherein n is1=1,2,…,P1-1; and i1(n1)≤N1(ii) a And
i2(n2)=α2^(n2)mod(P2) Wherein n is2=1,2,…,P2-1; and i2(n2)≤N2。
For N256, N1=N2=16,P1=P2=17,α1=α2=3。
Fig. 2a and 2b show the implementation of the above embodiments in software or hardware. The above equations may be implemented in a parallel or serial approach. In FIG. 2a, step 200 defines the representation block length N1The parameter (c) of (c). Array i to be used for storing a bit sequence1(n1) Is defined as a dimension N1And initialized (step 210). Next, define prime number P1Greater than N1(step 220). Step 230 defines N1Is called alpha1. Defining a counter n1And initializes it to 1 (step 240) and increments each pass through the loop (step 270). As shown in step 260, the counter determines when to break (break out of) a loop (step 250) for the bit sequence, i, of each symbol in the data frame1(n1) And counting. The loop is conditionally broken when the entire data frame has been replaced. The loop may also be adjusted to interleave portions of received or transmitted data frames.
In step 2b, step 400 defines the representation block length N2The parameter (c) of (c). Defining an array storing a sequence of bits to be of size N2And initializes it (step 410). Next, define prime number P2Greater than N2(step 420). Step 430 defines N2Initial root of, a2. Defining a counter n2And it is initialized to 1 (step 440) and incremented each pass through the loop (step 470). The counter determines when to break the loop for the bit sequence, i, of each symbol in the data frame, as shown in step 4602(n2) And counted (step 450). The loop is conditionally broken when the entire data frame has been replaced. The loop may also be adjusted to interleave portions of received or transmitted data frames.
In a second embodiment, the FH interleaver assumes a block length (or data frame size) of N. Furthermore, there is a prime number P greater than N. Preferably, the prime number should be the lowest prime number greater than N, but this is not required. For a given prime number, the initial root α can be found using conventional methods. Thus, for example, if N is 256, then P is 257 and α is 3. With the above parameters, the bit sequence for the FH interleaver is defined by the following equation:
i (N) ═ α (N) mod (P), where N ═ 1, 2, …, P-1, i (N) ≦ N.
Fig. 3 shows a method for implementing the above-described embodiments in software or hardware. Step 300 defines a parameter representing the block length N. The array for storing the bit sequence is defined to size N and initialized (step 310). Next, a prime number P is defined to be greater than N (step 320). Step 330 defines the initial root of N, α. A counter n is defined and initialized to 1 (step 340) and is incremented each time a loop is passed (step 370). The counter determines when to break the loop, shown as step 360, which counts the bit sequence i (n) for each symbol in the data frame (step 350). The loop is conditionally broken when the entire data frame is permuted. The loop may be adjusted to interleave portions of received or transmitted data frames.
One skilled in the art recognizes that any initial value i for array i (n) may be used1(n1) Or i2(n2) And are within the scope of the present invention. For example, the initial values may include 0, 1, 2, etc., or a template may be generated with different initialization data. Furthermore, it is common to use indices of different starting values during programming. Thus, n1And n2Can be any integer and the cycle off condition n ≦ N, n can be adjusted accordingly1≤N1、n2≤N2And fall within the scope of the present invention.
The disclosed interleaver is compatible with existing turbo coding structures and is compatible with current decoding algorithms. These interleavers provide superior performance without increasing system complexity.
In addition, those skilled in the art will recognize that a deinterleaver may be used to decode the interleaved data frame. The structure of a deinterleaver for decoding turbo codes is known in the art. They are not further described here. Therefore, the deinterleaver corresponding to the first embodiment can be constructed using the following permutation sequence for deinterleaving:
i1(n1)=α1^(n1)mod(P1) Wherein n is1=1,2,…,P1-1; and i1(n1)≤N1(ii) a And
i2(n2)=α2^(n2)mod(P2) Wherein n is2=1,2,…,P2-1; and i2(n2)≤N2
Then, the deinterleaver corresponding to the second embodiment can also be constructed with the following permutation sequence for deinterleaving:
(n) α ^ (n) mod (P), where n is 1, 2, …, P-1; and i is less than or equal to N (N).
It will thus be seen that the invention effectively achieves the objects set forth above, among those made apparent from the preceding description. In particular, the present invention provides a system and method of interleaving codes.
It is to be understood that variations may be made in the above constructions and in the sequence of operations described above without departing from the scope of the invention. Accordingly, the foregoing description and drawings are by way of example only, and not limitation.
It is to be understood that the appended claims are intended to cover all of the generic and specific features of the invention herein described and all statements of the scope of the invention which, as a matter of language, might be said to fall therebetween.

Claims (34)

1. An apparatus for interleaving a plurality of portions of a data frame having a predetermined size, comprising:
means for receiving and storing the data frame;
means for dividing the data frame into the plurality of portions; and
for according to i (n) ═ αnmod (P) means for permuting said portions, wherein P is a prime number greater than said predetermined size of said data frame, n is an integer in the range 1 to P-1 and including P-1, and α is the root of P, such that i (n) becomes1 and said predetermined size.
2. The apparatus of claim 1, wherein the plurality of portions have a predetermined size, wherein the predetermined size is at least 1 bit.
3. The apparatus of claim 1, wherein the means for permuting is implemented with an Application Specific Integrated Circuit (ASIC).
4. The apparatus of claim 1, wherein said means for permuting is implemented for a microprocessor.
5. The apparatus of claim 1, wherein the permutation is implemented in software.
6. The apparatus of claim 1, further comprising means for column interleaving the plurality of portions according to a permutation sequence.
7. The apparatus of claim 1, wherein:
the apparatus for receiving and storing the data frame includes a memory configured to receive and store the data frame indexed by a plurality of rows having a predetermined row size and a plurality of columns having a predetermined column size, wherein a product of the predetermined row size and the predetermined column size is equal to the predetermined size of the data frame;
the apparatus for separating the data frames includes a processor coupled to the memory for separating the plurality of portions and according to i1(n1)=α1^(n1)mod(P1) Generating a permutated sequence of the plurality of portions indexed by rows, where P1Is a prime number, n, greater than the predetermined row size1Is from 1 to P1-1 and comprising P1-1 and alpha1Is P1Root of (a) which is1(n1) Becomes a unique number between 1 and the predetermined row size; and
the processor is configured to operate according to i2(n2)=α2^(n2)mod(P2) Generating a permutated sequence of the plurality of portions indexed by the plurality of columns, wherein P2Is a prime number, n, greater than the predetermined column size2Is in the range of 1 to P2-1 and comprising P2Integer in the range of-1 and a2Is P2Of which is such that i2(n2) Becomes a unique number between 1 and the predetermined column size, thereby interleaving the data frame portion.
8. The apparatus of claim 7, wherein the plurality of portions have a predetermined size, wherein the predetermined size is at least 1 bit.
9. The apparatus of claim 7, wherein the processor is an Application Specific Integrated Circuit (ASIC).
10. The apparatus of claim 7, further comprising a deinterleaver, wherein the deinterleaver is based on the permutated sequence i1(n1)=α1^(n1)mod(P1) Deinterleaving the plurality of portions indexed by the plurality of rows.
11. The apparatus of claim 7, further comprising a deinterleaver, wherein the deinterleaver is based on the permutation sequence i2(n2)=α2^(n2)mod(P2) Deinterleaving the plurality of portions indexed by the plurality of columns.
12. The apparatus of claim 1, wherein the means for receiving and storing the data frame comprises a memory configured to receive and store the data frame; and
the means for dividing the data frame includes a processor coupled to the memory for dividing the data frame into the plurality of portions and based on i (n) - αnmod (P) generating said permutated sequences of said portions, wherein P is a prime number greater than said predetermined size of said data frame, n is an integer ranging from 1 to P-1 inclusive P-1, and α is the root of P, such that i (n) becomes a unique number between 1 and said predetermined size of said data frame, thereby interleaving said data frame portions.
13. The apparatus of claim 12, wherein the plurality of portions have a predetermined size, the predetermined size being at least one bit.
14. The apparatus of claim 12, wherein the processor is an Application Specific Integrated Circuit (ASIC).
15. The apparatus of claim 12, further comprising a deinterleaver, wherein the deinterleaver deinterleaves the plurality of portions according to the permute sequence.
16. The apparatus of claim 1, further comprising:
means for indexing said data frame with a plurality of rows having a predetermined row size and a plurality of columns having a predetermined column size, wherein the product of said predetermined row size and said predetermined column size is equal to said predetermined size of said data frame;
for according to i1(n1)=α1^(n1)mod(P1) Means for permuting the plurality of portions indexed by the plurality of rows, where P1Is a prime number larger than the predetermined row size, n1Is in the range of 1 to P1-1 and comprising P1An integer in the range of-1, and a1Is P1Of which is such that i1(n1) Becomes unique between 1 and the predetermined line sizeCounting; and
according to i2(n2)=α2^(n2)mod(P2) Means for permuting said plurality of portions indexed by said plurality of columns, wherein P2Is a prime number larger than the predetermined column size, n2Is in the range of 1 to P2-1 and comprising P2Integer in the range of-1 and a2Is P2Of which is such that i2(n2) Becomes a unique number between 1 and the predetermined column size.
17. The apparatus of claim 16, wherein the plurality of portions have a predetermined size, wherein the predetermined size is at least one bit.
18. The apparatus of claim 16, wherein the means for permuting is implemented using an Application Specific Integrated Circuit (ASIC).
19. The apparatus of claim 16, wherein said means for permuting is implemented using a microprocessor.
20. The apparatus of claim 16, wherein the means for permuting is implemented by using software.
21. The apparatus of claim 16, further comprising means for i according to the permutation sequence1(n1)=α1^(n1)mod(P1) Deinterleaving means for deinterleaving the plurality of portions indexed by the plurality of rows.
22. The apparatus of claim 16, further comprising means for i according to the permutation sequence2(n2)=α2^(n2)mod(P2) Deinterleaving means for deinterleaving the plurality of sections indexed by the plurality of columns.
23. A method for interleaving portions of a data frame having a predetermined size, comprising:
receiving and storing the data frame;
dividing said data frame into said plurality of portions; and
according to i (n) ═ alphanmod (P) permutes the portions, where P is a prime number greater than the predetermined size of the data frame, n is an integer in the range 1 to P-1 and including P-1, and α is the root of P, such that i (n) becomes a unique number between 1 and the predetermined size of the data frame.
24. The method of claim 23, wherein the plurality of portions have a predetermined size, wherein the predetermined size is at least one bit.
25. The method of claim 23, wherein the permuting is accomplished by employing an Application Specific Integrated Circuit (ASIC).
26. The method of claim 23, wherein the permuting is accomplished by using a microprocessor.
27. The method of claim 23, wherein the permuting is accomplished by using software.
28. The method of claim 23, comprising:
indexing the data frame with a plurality of rows having a predetermined row size and a plurality of columns having a predetermined column size, wherein a product of the predetermined row size and the predetermined column size is equal to the predetermined size of the data frame;
according to i1(n1)=α1^(n1)mod(P1) Permuting the plurality of portions indexed by the plurality of rows, whichMiddle P1Is a prime number greater than a predetermined row size, n1Is from 1 to P1-1 and comprising P1An integer in the range of-1, and a1Is P1Of which is such that i1(n1) Is a unique number between 1 and the predetermined row size; and
according to i2(n2)=α2^(n2)mod(P2) Permuting the plurality of portions indexed by the plurality of columns, wherein P2Is a prime number greater than a predetermined row size, n2Is from 1 to P2-1 and comprising P2An integer in the range of-1, and a2Is P2Of which is such that i2(n2) Is a unique number between 1 and the predetermined column size, thereby interleaving the data frame portion.
29. The method of claim 28, wherein the plurality of portions have a predetermined size, wherein the predetermined size is at least one bit.
30. The method of claim 28, wherein the permuting is implemented by an Application Specific Integrated Circuit (ASIC).
31. The method of claim 28, wherein the permuting is accomplished by a microprocessor.
32. The method of claim 28, wherein the permuting is accomplished by using software.
33. The method of claim 28, further comprising permuting sequence i according to1(n1)=α1^(n1)mod(P1) Deinterleaving the plurality of portions indexed by the plurality of rows.
34. The method of claim 28, wherein the method is performed in a batch processCharacterized in that it further comprises a permutation sequence i2(n2)=α2^(n2)mod(P2) Deinterleaving the plurality of portions indexed by the plurality of columns.
HK01109223.9A 1998-08-03 1999-08-02 Interleavers and interleaving method for turbo code HK1038448B (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US9508598P 1998-08-03 1998-08-03
US60/095,085 1998-08-03
US09/196,461 US6347385B1 (en) 1998-08-03 1998-11-19 Interleavers for turbo code
US09/196,461 1998-11-19
PCT/IB1999/001369 WO2000008770A1 (en) 1998-08-03 1999-08-02 Improved interleavers for turbo code

Publications (2)

Publication Number Publication Date
HK1038448A1 HK1038448A1 (en) 2002-03-15
HK1038448B true HK1038448B (en) 2004-12-24

Family

ID=

Similar Documents

Publication Publication Date Title
US6347385B1 (en) Interleavers for turbo code
EP1046236B1 (en) Turbo code interleaver with near optimal performance
US6728927B2 (en) Method and system for high-spread high-distance interleaving for turbo-codes
AU763873B2 (en) Turbo code interleaver using linear congruential sequences
RU2193276C2 (en) Method and device for adaptive channel coding
US6857087B2 (en) High-performance low-memory interleaver banks for turbo-codes
WO2002013449A2 (en) Apparatus and method for providing turbo code interleaving in a communications system
HK1043885A1 (en) Generalized address generation for bit reversed random interleaving
US20020124221A1 (en) Interleaver for variable block size
CN1393054A (en) Apparatus and method for generating (n,3) code and (n,4) code using simplex codes
HK1038448B (en) Interleavers and interleaving method for turbo code
EP1926215B1 (en) Parallel concatenated zigzag codes with UMTS turbo interleavers
Encoder 3.1 Recursive Systematic Convolutional (RSC) Encoder
HK1095673A1 (en) Method and system for turbo code
HK1095673B (en) Method and system for turbo code