GB2369274A - Interleaving by data permutation without a matrix - Google Patents

Interleaving by data permutation without a matrix Download PDF

Info

Publication number
GB2369274A
GB2369274A GB0028099A GB0028099A GB2369274A GB 2369274 A GB2369274 A GB 2369274A GB 0028099 A GB0028099 A GB 0028099A GB 0028099 A GB0028099 A GB 0028099A GB 2369274 A GB2369274 A GB 2369274A
Authority
GB
United Kingdom
Prior art keywords
lt
gt
sep
data
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0028099A
Other versions
GB0028099D0 (en
Inventor
Paul Cook
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UbiNetics Ltd
Original Assignee
UbiNetics Ltd
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 UbiNetics Ltd filed Critical UbiNetics Ltd
Priority to GB0028099A priority Critical patent/GB2369274A/en
Publication of GB0028099D0 publication Critical patent/GB0028099D0/en
Publication of GB2369274A publication Critical patent/GB2369274A/en
Application status is Withdrawn legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03BASIC ELECTRONIC 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

Abstract

Prior art de/interleavers load data into a matrix permute the rows and/or columns of the matrix and then read out the contents of the matrix as the de/interleaved data stream. The invention implements an interleaver or a deinterleaver that reorders an input data sequence into an de/interleaved output data sequence by reading out the data items of the input data sequence in the requisite order to produce the output data sequence, without recourse to loading the data into a matrix for manipulation therein. The order in which the data is output may emulate the prior art matrix based systems.

Description

DATA PERMUTATION The invention relates to data permutation and, in particular, to data interleaving and deinterleaving in communications systems.

Interleaving is used to provide enhanced error recovery. In a transmitter, a stream of data bits to be transmitted are interleaved, i. e. permuted from their original order. The interleaved data is then transmitted to a receiver, which deinterleaves the received stream of data bits by applying a permutation which is the inverse of the permutation applied by the transmitter. If the received data stream contains an error of several bits in length, then after deinterleaving into the original order, the error bits are dispersed through the <img class="EMIRef" id="024180550-00010001" />

<tb> datastream, <SEP> and <SEP> these <SEP> isolated <SEP> errors <SEP> can <SEP> be <SEP> corrected <SEP> more <SEP> easily. <tb>

Generally <SEP> speaking, <SEP> an <SEP> interleaver <SEP> takes <SEP> a <SEP> block <SEP> of <SEP> K <SEP> data <SEP> elements <SEP> x <SEP> (0), <SEP> x <SEP> (l),...... <SEP> x <SEP> (K-l) <tb> (represented <SEP> generically <SEP> as <SEP> x <SEP> (k), <SEP> where <SEP> k=0 <SEP> to <SEP> K-1) <SEP> and <SEP> permutes <SEP> them <SEP> resulting <SEP> in <SEP> an <tb> interleaved <SEP> set <SEP> of <SEP> data <SEP> elements <SEP> y <SEP> (O), <SEP> y <SEP> (l),........ <SEP> y <SEP> (K-l) <SEP> (represented <SEP> generically <SEP> as <SEP> y <SEP> (z), <tb> where <SEP> z=0 <SEP> to <SEP> K-1) <SEP> which <SEP> contain <SEP> the <SEP> same <SEP> set <SEP> of <SEP> data <SEP> values <SEP> but <SEP> in <SEP> a <SEP> different <SEP> order. <SEP> In <SEP> a <tb> known <SEP> interleaver, <SEP> the <SEP> permutation <SEP> is <SEP> achieved <SEP> in <SEP> the <SEP> following <SEP> way. <tb>

The <SEP> data <SEP> x <SEP> (k) <SEP> is <SEP> written <SEP> into <SEP> a <SEP> rectangular <SEP> matrix <SEP> Ml. <SEP> Ml <SEP> has <SEP> elements <SEP> MIl), <SEP> where <SEP> i <SEP> and <SEP> j <tb> denote, <SEP> respectively, <SEP> the <SEP> row <SEP> and <SEP> column <SEP> of <SEP> an <SEP> element. <SEP> Where <SEP> MI <SEP> has <SEP> R <SEP> rows <SEP> and <SEP> C <tb> columns, i=O to R-1 and j =0 to C-1. The data is written into Ml beginning with entry Mloo, then Mlol, M102, and working from left to right until row zero is full and then proceeding to store data elements into row 1 beginning at Mlio. This process continues from row to row until all of the K data elements have been placed into Ml. It will be apparent that there is a possibility that K will be less than, as opposed to equal to, RC (the number of elements in M1), meaning that some of the final rows (i=R-l, R-2,.....) of Ml will be incomplete. If this is the case, then the empty entries at the end of the final row are packed with blanks.

MI then undergoes an inter-row permutation function, P, to produce a new matrix M2 having entries M2ab where a and b denote, respectively, the row and column of an element. The permutation function P has the effect that the entry Ml, j is transferred to M2ab such that a=P (i) and j=b (the entry remains in the same column).

M2 is then subjected to a series of intra-row permutation functions Qr to produce a matrix M3 having elements M3nm, where n and m denote, respectively, the row and column of the elements. The index r indicates the intra-row permutation function applicable to the rIb row of M2, where r=0 to R-1. Each of the permutation functions Qr reorders the elements within its corresponding row. The permutation function Qr has the effect that the entry M2ab is transferred to M3mn such that n=a=P (i) (the entry remains in the same row) and m=Qa (b) = Qp (J).

The interleaved data sequence y (z) is then read column-by-column out of M3, beginning with the leftmost column and reading down each column, i. e. starting at n=0, ni=0, then n=l, m=O, progressing to n=R-l, m=0 and then to n=0, m=l, and so on until the task is completed by reading out the entry at n=R-1, m=C-1. Note that where the size of the matrix RC is larger than the length K of the input data sequence x (k), the process of reading out y (z) from M3 must skip over the blanks inserted in the final rows of Mi, meaning that the interleaver must keep track of the positions to which the added blanks have migrated in M3.

The invention seeks to provide improved methods and apparatus for data permutation.

According to one aspect, the invention provides a method of interleaving the data values of a data sequence, comprising reading out data items from a first data sequence in an interleaved order as an interleaved data sequence.

According to another, and related, aspect, the invention also provides apparatus for interleaving the data values of a data sequence, comprising means for reading out data items from a first data sequence in an interleaved order as an interleaved data sequence. According to a further aspect, the invention provides a method of deinterleaving the data values of a data sequence, comprising reading out data items from an interleaved first data sequence in a deinterleaved order as a deinterleaved data sequence.

According to another, and related, aspect, the invention also provides apparatus for deinterleaving the data values of a data sequence, comprising means for reading out data items from an interleaved first data sequence in a deinterleaved order as a deinterleaved data sequence.

Hence, the invention provides the output data sequence directly from the first data sequence. This means that the invention does not need to employ the memory intensive and time consuming techniques of known interleavers and deinterleavers, e. g. loading the first data sequence into a matrix, and creating and storing modified matrices.

The invention also extends to a program for implementing the data sequence permutation methods of the invention.

In a preferred embodiment, the inventive data sequence permutation methods and apparatus are used in a communications systems for processing received and transmitted signals. For example, the deinterleaving and interleaving techniques can be applied to received and transmitted signals, respectively, in a Turbo code interleaver used for channel coding in 3G mobile telephones. A Turbo code interleaver operates on data sequences of up to around 5000 bits in length and may be used to interleave/deinterleave bit-rate data for uplink and downlink channels respectively.

By way of example only, an embodiment of the invention will now be described.

The interleaver of the embodiment can be implemented either as dedicated hardware in the form of an integrated circuit or in the form of software that can be executed using data processing and data storage resources. The interleaver achieves the conversion of an input data sequence x (k) into an output sequence y (z) as performed by the described prior art without creating the matrices Ml, M2 and M3. The interleaver reads the data elements in the order y (z) directly from the order x (k).

In the prior art interleaving process, the input data sequence x (k) was loaded into matrix MI. The position of an element x (k) in Ml was Mol,, where i = k div C and j = k mod C, where div and mod denote standard integer division and remainder, respectively, and C <img class="EMIRef" id="024180550-00040001" />

<tb> denotes <SEP> the <SEP> number <SEP> of <SEP> columns <SEP> in <SEP> Ml. <SEP> From <SEP> these <SEP> equations, <SEP> one <SEP> obtains <SEP> k <SEP> = <SEP> iC <SEP> + <SEP> j. <tb> Given <SEP> that, <SEP> in <SEP> the <SEP> prior <SEP> art <SEP> approach, <SEP> the <SEP> position <SEP> of <SEP> j <SEP> in <SEP> M3 <SEP> is <SEP> M3mn <SEP> where <SEP> n <SEP> = <SEP> P <SEP> (i) <SEP> and <tb> m <SEP> = <SEP> Q <SEP> p <SEP> (,) <SEP> (j) <SEP> n <SEP> then <SEP> i <SEP> = <SEP> polen) <SEP> and <SEP> j <SEP> = <SEP> Qn-' <SEP> (m). <SEP> P''is <SEP> the <SEP> inverse <SEP> function <SEP> of <SEP> P <SEP> and <SEP> Qn'is <SEP> the <tb> inverse <SEP> function <SEP> of <SEP> Qn <SEP> This <SEP> gives <SEP> the <SEP> result <SEP> that <SEP> : <tb> k <SEP> = <SEP> iC <SEP> + <SEP> j <SEP> = <SEP> C <SEP> P-' <SEP> (n) <SEP> + <SEP> Qn-' <SEP> (m) <SEP> (Eq. <SEP> 1) <tb> I <tb> In the prior art interleaver, the sequence y (z) was produced by reading down each of the columns of M3, commencing with column n==0 and finishing with column n = C-1. Within each column, the entries are read from m=O to R-1. By incrementing n and m in the same way, the interleaver of the embodiment uses equation 1 to produce a value of k for each pair of n, m values. Provided that k < K, the corresponding value of the input sequence x (k) is provided as the next value of y (z). This step is equivalent to reading out the values in M3 in the prior art and skipping over values which correspond to blanks packed into the final entries of MI. Thus, the interleaver of the embodiment produces the sequence y (z) directly from the sequence x (k).

The process of generating y (z) from x (k) is best illustrated by the following pseudo-code listing: 1) z=O 2) loop for m = 0 to C-l 3) loop for n = 0 to R-l 4) let k = C P-1(n) + Qn-1(m) 5) if k < K 6) copy x (k) to y (z) 7) z=z+1 8) end if 9) loop n 10) loop m The invention can also carry out deinterleaving. In the exemplary embodiment, deinterleaving can be performed simply by swapping k and z in line (6).

Claims (13)

  1. CLAIMS 1. A method of interleaving the data values of a data sequence, comprising reading out data items from a first data sequence in an interleaved order as an interleaved data sequence.
  2. 2. A method of deinterleaving the data values of a data sequence, comprising reading out data items from an interleaved first data sequence in a deinterleaved order as a deinterleaved data sequence.
  3. 3. A method according to claim 1 or 2, wherein the order in which the data items are read out from the first sequence is equivalent to loading the data items of the first sequence into a matrix in a first manner and reading the data items out of the matrix in a second manner.
  4. 4. A method according to any one of claims 1 to 3, wherein the order in which the data items are read out from the first sequence is equivalent to loading the data items of the first sequence into a matrix, permuting at least some of the rows and/or at least some of the columns of the matrix, and reading the data values out of the matrix.
  5. 5. A program for performing the method of any one of claims 1 to 4.
  6. 6. Apparatus for interleaving the data values of a data sequence, comprising means for reading out data items from a first data sequence in an interleaved order as an interleaved data sequence.
  7. 7. Apparatus for deinterleaving the data values of a data sequence, comprising means for reading out data items from an interleaved first data sequence in a deinterleaved order as a deinterleaved data sequence.
  8. 8. Apparatus according to claim 6 or 7, wherein the means for reading out data items is arranged to read out data items from the first sequence in an order equivalent to loading the data items of the first sequence into a matrix in a first manner and reading the data items out of the matrix in a second manner.
  9. 9. Apparatus according to any one of claims 6 to 8, wherein the means for reading out data items is arranged to read out data items from the first sequence in an order equivalent to loading the data items of the first sequence into a matrix, permuting at least some of the rows and/or least some of the columns of the matrix and reading the data values out of the matrix.
  10. 10. Apparatus for interleaving a data sequence, substantially as hereinbefore described.
  11. 11. Apparatus for deinterleaving a data sequence, substantially as hereinbefore described.
  12. 12. A method of interleaving a data sequence, substantially as hereinbefore described.
  13. 13. A method of deinterleaving a data sequence, substantially as hereinbefore described.
GB0028099A 2000-11-17 2000-11-17 Interleaving by data permutation without a matrix Withdrawn GB2369274A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0028099A GB2369274A (en) 2000-11-17 2000-11-17 Interleaving by data permutation without a matrix

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0028099A GB2369274A (en) 2000-11-17 2000-11-17 Interleaving by data permutation without a matrix
AU2382802A AU2382802A (en) 2000-11-17 2001-11-19 Data permutation
PCT/GB2001/005088 WO2002041501A1 (en) 2000-11-17 2001-11-19 Data permutation

Publications (2)

Publication Number Publication Date
GB0028099D0 GB0028099D0 (en) 2001-01-03
GB2369274A true GB2369274A (en) 2002-05-22

Family

ID=9903377

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0028099A Withdrawn GB2369274A (en) 2000-11-17 2000-11-17 Interleaving by data permutation without a matrix

Country Status (3)

Country Link
AU (1) AU2382802A (en)
GB (1) GB2369274A (en)
WO (1) WO2002041501A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547887A (en) * 1983-11-30 1985-10-15 The United States Of America As Represented By The Secretary Of The Army Pseudo-random convolutional interleaving
EP0715432A2 (en) * 1994-11-29 1996-06-05 AT&amp;T Corp. Interleaver and address generator for mobile communication systems
WO1996024196A1 (en) * 1995-02-01 1996-08-08 Philips Electronics N.V. Method of error protected transmission, method of error protected reception of data and transmission system for transmission of data
US5742612A (en) * 1993-06-02 1998-04-21 Alcatel Radiotelephone Method and device for interleaving a sequence of data elements
US5912898A (en) * 1997-02-27 1999-06-15 Integrated Device Technology, Inc. Convolutional interleaver/de-interleaver

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0856949B1 (en) * 1997-01-31 2005-03-30 Alcatel Alsthom Compagnie Generale D'electricite Interleaving and de-interleaving method for digital data, interleaving and de-interleaving devices, and communication system
GB2327578A (en) * 1997-07-18 1999-01-27 Nokia Mobile Phones Ltd Convolutional interleaver for preventing the transmission of unwanted data
US6553517B1 (en) * 1999-04-09 2003-04-22 Sony Corporation Interleavers and de-interleavers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547887A (en) * 1983-11-30 1985-10-15 The United States Of America As Represented By The Secretary Of The Army Pseudo-random convolutional interleaving
US5742612A (en) * 1993-06-02 1998-04-21 Alcatel Radiotelephone Method and device for interleaving a sequence of data elements
EP0715432A2 (en) * 1994-11-29 1996-06-05 AT&amp;T Corp. Interleaver and address generator for mobile communication systems
WO1996024196A1 (en) * 1995-02-01 1996-08-08 Philips Electronics N.V. Method of error protected transmission, method of error protected reception of data and transmission system for transmission of data
US5912898A (en) * 1997-02-27 1999-06-15 Integrated Device Technology, Inc. Convolutional interleaver/de-interleaver

Also Published As

Publication number Publication date
AU2382802A (en) 2002-05-27
WO2002041501A1 (en) 2002-05-23
GB0028099D0 (en) 2001-01-03

Similar Documents

Publication Publication Date Title
CA2261696C (en) Data de-rotator and de-interleaver
ES2243203T3 (en) Rate matching and interleaving cables for a communications system.
US6353900B1 (en) Coding system having state machine based interleaver
EP0981218B1 (en) Error-correcting encoding apparatus
ES2275508T3 (en) Apparatus and method turbo interleaving.
US20020046371A1 (en) Random-access multi-directional CDMA2000 turbo code interleaver
US5991857A (en) Interleaving and de-interleaving of data in telecommunications
US6658605B1 (en) Multiple coding method and apparatus, multiple decoding method and apparatus, and information transmission system
US6334197B1 (en) Turbo code interleaver with near optimal performance
EP0748058A2 (en) Implied interleaving, a family of systematic interleavers and deinterleavers
US5771239A (en) Method and apparatus for modifying a transport packet stream to provide concatenated synchronization bytes at interleaver output
US6728927B2 (en) Method and system for high-spread high-distance interleaving for turbo-codes
CN1235343C (en) Interleaving method, interleaving apparatus, and recording medium in which interleave pattern generating program is recorded
US6857087B2 (en) High-performance low-memory interleaver banks for turbo-codes
Crozier et al. High-performance low-memory interleaver banks for turbo-codes
US6339834B1 (en) Interleaving with golden section increments
US6233711B1 (en) Turbo coding, decoding devices and turbo coding, decoding methods
US8140932B2 (en) Data interleaving circuit and method for vectorized turbo decoder
US6314534B1 (en) Generalized address generation for bit reversed random interleaving
EP1030455B1 (en) Interleaving method, interleaving apparatus, turbo encoding method, and turbo encoder
EP1175014A2 (en) Pipelined architecture to decode parallel and serial concatenated codes
CN1381095B (en) Efficient implementation of proposed TURBO code interleavers for third generation code division multiple access
US4547887A (en) Pseudo-random convolutional interleaving
AU763873B2 (en) Turbo code interleaver using linear congruential sequences
JP4377407B2 (en) Error correction code interleaver

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)