GB2369274A  Interleaving by data permutation without a matrix  Google Patents
Interleaving by data permutation without a matrix Download PDFInfo
 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
Links
Classifications

 H—ELECTRICITY
 H03—BASIC ELECTRONIC CIRCUITRY
 H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
 H03M13/00—Coding, 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/27—Coding, 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/2703—Coding, 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/271—Rowcolumn interleaver with permutations, e.g. block interleaving with interrow, intercolumn, intrarow or intracolumn permutations
Abstract
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="02418055000010001" />
<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> (Kl) <tb> (represented <SEP> generically <SEP> as <SEP> x <SEP> (k), <SEP> where <SEP> k=0 <SEP> to <SEP> K1) <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> (Kl) <SEP> (represented <SEP> generically <SEP> as <SEP> y <SEP> (z), <tb> where <SEP> z=0 <SEP> to <SEP> K1) <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 R1 and j =0 to C1. 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=Rl, R2,.....) 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 interrow 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 intrarow 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 intrarow permutation function applicable to the rIb row of M2, where r=0 to R1. 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 columnbycolumn 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=Rl, m=0 and then to n=0, m=l, and so on until the task is completed by reading out the entry at n=R1, m=C1. 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 bitrate 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="02418055000040001" />
<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 = C1. Within each column, the entries are read from m=O to R1. 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 pseudocode listing: 1) z=O 2) loop for m = 0 to Cl 3) loop for n = 0 to Rl 4) let k = C P1(n) + Qn1(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)
 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. 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. 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. 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. A program for performing the method of any one of claims 1 to 4.
 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. 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. 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. 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. Apparatus for interleaving a data sequence, substantially as hereinbefore described.
 11. Apparatus for deinterleaving a data sequence, substantially as hereinbefore described.
 12. A method of interleaving a data sequence, substantially as hereinbefore described.
 13. A method of deinterleaving a data sequence, substantially as hereinbefore described.
Priority Applications (1)
Application Number  Priority Date  Filing Date  Title 

GB0028099A GB0028099D0 (en)  20001117  20001117  Data permutation 
Applications Claiming Priority (2)
Application Number  Priority Date  Filing Date  Title 

GB0028099A GB0028099D0 (en)  20001117  20001117  Data permutation 
PCT/GB2001/005088 WO2002041501A1 (en)  20001117  20011119  Data permutation 
Publications (2)
Publication Number  Publication Date 

GB0028099D0 GB0028099D0 (en)  20010103 
GB2369274A true true GB2369274A (en)  20020522 
Family
ID=9903377
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

GB0028099A Withdrawn GB0028099D0 (en)  20001117  20001117  Data permutation 
Country Status (2)
Country  Link 

GB (1)  GB0028099D0 (en) 
WO (1)  WO2002041501A1 (en) 
Citations (5)
Publication number  Priority date  Publication date  Assignee  Title 

US4547887A (en) *  19831130  19851015  The United States Of America As Represented By The Secretary Of The Army  Pseudorandom convolutional interleaving 
EP0715432A2 (en) *  19941129  19960605  AT&T Corp.  Interleaver and address generator for mobile communication systems 
WO1996024196A1 (en) *  19950201  19960808  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) *  19930602  19980421  Alcatel Radiotelephone  Method and device for interleaving a sequence of data elements 
US5912898A (en) *  19970227  19990615  Integrated Device Technology, Inc.  Convolutional interleaver/deinterleaver 
Family Cites Families (3)
Publication number  Priority date  Publication date  Assignee  Title 

EP0856949B1 (en) *  19970131  20050330  Alcatel Alsthom Compagnie Generale D'electricite  Interleaving and deinterleaving method for digital data, interleaving and deinterleaving devices, and communication system 
GB9715239D0 (en) *  19970718  19970924  Nokia Mobile Phones Ltd  Convolutional interleaver and convolutional interleaving method 
US6553517B1 (en) *  19990409  20030422  Sony Corporation  Interleavers and deinterleavers 
Patent Citations (5)
Publication number  Priority date  Publication date  Assignee  Title 

US4547887A (en) *  19831130  19851015  The United States Of America As Represented By The Secretary Of The Army  Pseudorandom convolutional interleaving 
US5742612A (en) *  19930602  19980421  Alcatel Radiotelephone  Method and device for interleaving a sequence of data elements 
EP0715432A2 (en) *  19941129  19960605  AT&T Corp.  Interleaver and address generator for mobile communication systems 
WO1996024196A1 (en) *  19950201  19960808  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) *  19970227  19990615  Integrated Device Technology, Inc.  Convolutional interleaver/deinterleaver 
Also Published As
Publication number  Publication date  Type 

WO2002041501A1 (en)  20020523  application 
GB0028099D0 (en)  20010103  grant 
Similar Documents
Publication  Publication Date  Title 

US6871303B2 (en)  Randomaccess multidirectional 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 deinterleaving 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.  Highperformance lowmemory interleaver banks for turbocodes  
US20030097621A1 (en)  Efficient address generation for interleaver and deinterleaver  
US20070139428A1 (en)  Address generator for an interleaver memory and a deinterleaver memory  
US4547887A (en)  Pseudorandom convolutional interleaving  
US6304995B1 (en)  Pipelined architecture to decode parallel and serial concatenated codes  
US6427214B1 (en)  Interleaver using coset partitioning  
US6766489B1 (en)  Device and method of adapting turbocoders and the associated decoders to sequences of variable length  
US5745497A (en)  Convolutional interleaving/DEinterleaving method and apparatus for data transmission  
US4394642A (en)  Apparatus for interleaving and deinterleaving 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 highspread highdistance interleaving for turbocodes  
US6839870B2 (en)  Errorcorrecting 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 interleavedeinterleave apparatus 
Legal Events
Date  Code  Title  Description 

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