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
Grant status
Application
Patent type
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

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 Data permutation Withdrawn GB0028099D0 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0028099A GB0028099D0 (en) 2000-11-17 2000-11-17 Data permutation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0028099A GB0028099D0 (en) 2000-11-17 2000-11-17 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 true GB2369274A (en) 2002-05-22

Family

ID=9903377

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0028099A Withdrawn GB0028099D0 (en) 2000-11-17 2000-11-17 Data permutation

Country Status (2)

Country Link
GB (1) GB0028099D0 (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
GB9715239D0 (en) * 1997-07-18 1997-09-24 Nokia Mobile Phones Ltd Convolutional interleaver and convolutional interleaving method
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 Type
WO2002041501A1 (en) 2002-05-23 application
GB0028099D0 (en) 2001-01-03 grant

Similar Documents

Publication Publication Date Title
US6871303B2 (en) Random-access multi-directional CDMA2000 turbo code interleaver
US6658605B1 (en) Multiple coding method and apparatus, multiple decoding method and apparatus, and information transmission system
US5771239A (en) Method and apparatus for modifying a transport packet stream to provide concatenated synchronization bytes at interleaver output
US5991857A (en) Interleaving and de-interleaving of data in telecommunications
US6334197B1 (en) Turbo code interleaver with near optimal performance
US6625762B1 (en) Interleaving device and method for turbocoding and turbodecoding
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
US6314534B1 (en) Generalized address generation for bit reversed random interleaving
US6339834B1 (en) Interleaving with golden section increments
Crozier et al. High-performance low-memory interleaver banks for turbo-codes
US20030097621A1 (en) Efficient address generation for interleaver and de-interleaver
US20070139428A1 (en) Address generator for an interleaver memory and a deinterleaver memory
US4547887A (en) Pseudo-random convolutional interleaving
US6304995B1 (en) Pipelined architecture to decode parallel and serial concatenated codes
US6427214B1 (en) Interleaver using co-set partitioning
US6766489B1 (en) Device and method of adapting turbocoders and the associated decoders to sequences of variable length
US5745497A (en) Convolutional interleaving/DE-interleaving method and apparatus for data transmission
US4394642A (en) Apparatus for interleaving and de-interleaving data
US6732316B1 (en) Data interleaver and method of interleaving data
US20030014715A1 (en) Method for adapting the data blocks to be supplied to a turbo coder and corresponding communications apparatus
US6728927B2 (en) Method and system for high-spread high-distance interleaving for turbo-codes
US6839870B2 (en) Error-correcting code interleaver
EP0748058A2 (en) Implied interleaving, a family of systematic interleavers and deinterleavers
US7050410B1 (en) Apparatus and method for controlling a demultiplexer and a multiplexer used for rate matching in a mobile communication system
US6574766B2 (en) Turbo decoding apparatus and interleave-deinterleave apparatus

Legal Events

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