GB2373149A - Coding - Google Patents

Coding Download PDF

Info

Publication number
GB2373149A
GB2373149A GB0105526A GB0105526A GB2373149A GB 2373149 A GB2373149 A GB 2373149A GB 0105526 A GB0105526 A GB 0105526A GB 0105526 A GB0105526 A GB 0105526A GB 2373149 A GB2373149 A GB 2373149A
Authority
GB
United Kingdom
Prior art keywords
stream
sequence
bit
encoding
bit stream
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.)
Granted
Application number
GB0105526A
Other versions
GB2373149B (en
GB0105526D0 (en
Inventor
Timothy Fisher-Jeffes
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.)
Aeroflex Cambridge 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 GB0105526A priority Critical patent/GB2373149B/en
Publication of GB0105526D0 publication Critical patent/GB0105526D0/en
Priority to AT02701437T priority patent/ATE335310T1/en
Priority to JP2002570415A priority patent/JP2004529542A/en
Priority to DE60213574T priority patent/DE60213574D1/en
Priority to US10/469,749 priority patent/US7051266B2/en
Priority to EP02701437A priority patent/EP1374416B1/en
Priority to PCT/GB2002/000871 priority patent/WO2002071624A1/en
Priority to KR10-2003-7011666A priority patent/KR20030080071A/en
Priority to CNA028058747A priority patent/CN1494768A/en
Publication of GB2373149A publication Critical patent/GB2373149A/en
Application granted granted Critical
Publication of GB2373149B publication Critical patent/GB2373149B/en
Anticipated expiration legal-status Critical
Revoked legal-status Critical Current

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • H03M13/235Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Abstract

A stream of recursive systematic convolutional codes P<SB>n</SB> is generated by XORing each bit of an input bit stream I<SB>n</SB> with a predetermined bit of the content of a cyclic shift element 22. The content of the shift element 22 is updated by adder 24 under the control of the input bit stream I<SB>n</SB>.

Description

CODING The invention relates to encoding bit streams. In particular, the invention relates to encoding a bit stream to generate error checking information which can be transmitted along side the bit stream. Such error checking information enables transmission errors in the bit stream to be corrected at its destination.
Figure 1 is a block diagram of a part of a turbo encoder in a UMTS transmitter. A bit stream I, representing information to be transmitted, is supplied, ultimately, to an antenna 10 for transmission, but is also used to generate two streams of parity information PI and P2. The parity information streams PI and P2 are used to produce error checking information which is transmitted with the bit stream 1. To generate the parity stream PI, the bit stream I is supplied to a RSC (recursive systematic convolutional) component encoder 12 which, in response, outputs parity stream Pl. To produce parity stream P2, the bit stream I is supplied to an interleaver 14 which outputs an interleaved bit stream I'. The
interleaved bit stream I'is supplied to a second RSC component encoder 16 which, in response, outputs parity stream P2. The RSC component encoders 12 and 16 have the same constitution and operate on their input bit streams in the same manner.
One aim of the invention is to provide an efficient way of encoding signals such as can be used within, for example, a turbo encoder.
The invention consists in a method of encoding a bit stream, the method comprising encoding each stream bit by XORing it with a bit from a predetermined position within a first M-sequence and updating the first M-sequence between encoding successive stream bits.
The invention also consists in encoding apparatus for encoding a bit stream, the apparatus comprising encoding means arranged to produce an encoding bit for each stream bit by XORing each stream bit with a bit from a predetermined position within a first M-sequence and updating means arranged to update the first M-sequence between encoding successive stream bits.
Hence, the invention provides an efficient way of encoding bit streams into a format suitable for use in a turbo encoder.
As is well known, a binary word can be cyclically shifted by transferring a number of bits from one end of the word to the other end. In the context of the invention, an M-sequence is a binary word which has the property that if it is combined using modulo 2 addition with a version of itself that has been cyclically shifted by a first amount, then the result is a version of the original M-sequence that has been cyclically shifted by a second amount.
The word 0111001 is an example of an M-sequence. If this word is combined using modulo 2 addition with 1100101 (which is a version of the original M-sequence with two bits cycled from its left end to its right end) then the result is 1011100 (which is a version of the original M-sequence with 6 bits transferred from its left end to its right end). It will be apparent that a string of zeros is also an M-sequence according to the above definition.
In one embodiment, the first M-sequence is updated between encoding successive bits of the stream by rotating the first M-sequence and then, subject to the level of the later of the two successive stream bits between which the updating occurs, adding a second M-sequence into the first M-sequence. The rotation of the first M-sequence preferably comprises transferring a number of bits from one end of the first M-sequence to the other. In one implementation, the second M-sequence is the impulse response of an encoder, for example a RSC component encoder.
In one embodiment, the invention is used to generate a first stream of error checking information by encoding a bit stream destined for transmission, and also to generate a second stream of error checking information by encoding an interleaved version of the bit stream that is destined for transmission.
The invention also extends to a program for causing data processing apparatus to perform the encoding process of the invention. The invention also consists in a computer readable data carrier bearing such a program. By way of example only, an embodiment of the invention will now be described with reference to the accompanying figures, in which: Figure 1 is a block diagram of part of a turbo encoder according to the prior art; and Figure 2 is a block diagram of a RSC component encoder according to the invention.
The RSC component encoder 20 of Figure 2 acts on an input bit stream In to produce a stream of parity information Pn. The RSC component encoder 20 could be used as encoder 12 or 16 of Figure I with, as appropriate, In being I or I'and Pn being PI or P2.
Encoder 20 comprises a shift element 22, a storage element 24, an adder 26 and an XOR gate 28.
Shift element 22 is capable of storing a binary word and is capable of being triggered to transfer the left-most bit of the word that it contains to the right hand end of the word. The shift element 22 is triggered to perform this cyclical shift operation by the input bit stream In. The shift element 22 and a storage element 24 each provide their contents as inputs to adder 26. Adder 26 performs modulo 2 addition of its inputs subject to a control signal in the form of the input bit stream In. Adder 26 can be regarded as performing a bitwise XOR operation on its input words. The result provided by adder 26 is stored into shift element 22. The XOR gate 28 performs an exclusive OR operation on the input bit stream In and a predetermined bit of shift element 22. The predetermined bit is the bit at position f within the shift element, whose bits are numbered from its left hand end, commencing with position zero. The output of XOR gate 28 is the parity stream Pn.
In operation, the encoder 20 manipulates an M-sequence to produce the parity stream Pn.
The nature of the M-sequence used will now be discussed.
Given an impulse input stream of In = 1, 0. O. 0.......... the output of a RSC encoder with a
constraint length of K shall be a repeating sequence of length 2''-1 given by On = 1 (Bh (O), h (l), h (2)............ h (2KO'-2), h (O), h (l),....... In mathematical terms, the output generated from such an input is given by On = H (k) 0ln, where the s operator represents a modulo-2 convolution. The first output bit On (0) of 1 (Dh (O) comes about from the fact that the input has a direct influence on the output, making it non-strictly casual. The sequence h (O), h (l),...... h (2K''-2) that is repeated is an M-sequence and shall henceforth be referred to as the impulse response word. Thus, in the embodiment shown in Figure 2, the M-sequence used in encoder 20 is the impulse response word of a RSC encoder.
At initialisation, shift element 22 is filled with zeros and the impulse response word is put in the storage element 24, positioned so that its earliest (in terms of time) bit, which would be h (O) in the above example, is located at bit position f of element 24. The succeeding bits of the impulse response word are stored at positions M, M, etc. , until the end of element 24 is reached, whereupon the remaining bits of the impulse response word are wrapped around to the beginning of element 24 and stored in sequence by placing the earliest remaining bit of the impulse response word at position zero of element 24 and the latest bit of the impulse response word at position f-1.
When a bit bn of the bit stream In arrives at the encoder 20 it triggers the shift element 22 to rotate the M-sequence that it contains by transferring one bit from the left end of the M-sequence to the right end of the M-sequence. The content of shift element 22 is then output to provide an input to adder 26. Adder 26 then operates under the control of bit bn.
If bn is level 1, then adder 26 performs modulo 2 addition of its inputs, the words stored in elements 22 and 24. The content of shift element 22 is then updated with the output of adder 26. If bn is level 0, then adder 26 does not operate and the content of shift element 22 is not updated.
XOR gate 28 then operates on the bit bn of the input bit stream In and the bit f of shift element 22, whose content may have been updated by the adder 26 (depending on the level ofbn). The resulting output of XOR gate 28 is the parity bit of parity stream Pn for bit bn of input bit stream In. When bit ben+) of input bit stream In arrives at encoder 20, the operations of the shift element 22, the storage element 24, the adder 26 and the XOR gate 28 are repeated in order to generate the next bit of the parity stream Pn. It is within the capabilities of a person skilled in this art to arrange the timing of the operation of the components of encoder 20 to generate parity stream Pn but, nevertheless, the timing of the operations performed by the encoder 20 will be apparent from the following pseudo-code listing which represents a software implementation of the encoder 20 which could be run on a digital signal processor (DSP): 1) initialise x = 0 2) loop for all i 3) ROTATE x LEFT by 1 4) if (i==l) 5) x = x BITWISE XOR m 6) end if 7) o=iXORx (f) 8) end loop Wherein: x represents the content of shift element 22 and is an M-sequence whose bits are indexed from its left-hand end, beginning with bit 0. i denotes the input bit stream In, which comprises input bits bn.), bn, bn+l, etc. Lines 2 and 8 of the listing demarcate a loop which is performed for each of the input bits arriving at the encoder 20.
Line 3 is the cyclic single-bit shift performed by shift element 22 upon arrival of each bit of stream In. The bits in x are shifted to the left by one bit and the displaced left-most bit is appended to the right-hand end ofx.
Lines 4,5 and 6 indicate the conditional, modulo 2 addition performed by adder 26. The constant m is the content of storage element 24. Bit f of m is the first bit of the impulse response word of the RSC encoder and bit f- of m is the last bit of the impulse response word. Variable o indicates the output parity stream Po created by performing the exclusive OR function on the input stream bit and the bit f of x. The value f is a constant which can conveniently be set to 0, both in the pseudo code listing and the circuit of Figure 2.

Claims (13)

  1. CLAIMS 1. A method of encoding a bit stream, the method comprising encoding each stream bit by XORing it with a bit from a predetermined position within a first M-sequence and updating the first M-sequence between encoding successive stream bits.
  2. 2. A method according to claim 1, wherein updating the first M-sequence comprises rotating the first M-sequence and then, subject to the level of the later of the two successive stream bits between which the updating occurs, adding a second M-sequence into the first M-sequence.
  3. 3. A method according to claim 2, wherein rotating the first M-sequence comprises transferring a number of bits from one end of the first M-sequence to the other.
  4. 4. A method according to any one of claims 1 to 3, wherein the second M-sequence is an impulse response word or a rotated version thereof.
  5. 5. A method of producing error checking information for a bit stream destined for transmission, the method comprising generating a first stream of error checking information by encoding the bit stream by a method according to any one of claims 1 to 4, interleaving the bit stream and generating a second stream of error checking information by encoding the interleaved bit stream by a method according to any one of claims 1 to 4.
  6. 6. A program for causing data processing apparatus to perform the method of any one of claims 1 to 5.
  7. 7. Encoding apparatus for encoding a bit stream, the apparatus comprising encoding means arranged to produce an encoded bit for each stream bit by XORing each stream bit with a bit from a predetermined position within a first M-sequence and updating means arranged to update the first M-sequence between encoding successive stream bits.
  8. 8. Encoding apparatus according to claim 7, wherein the updating means comprises rotating means for rotating the first M-sequence and adding means for adding, subject to the level of the later of the two successive stream bits between which the updating occurs, a second M-sequence into the first M-sequence after rotation.
  9. 9. Encoding apparatus according to claim 8, wherein the rotating means is arranged to rotate the first M-sequence by transferring a number of bits from one end of the first M-sequence to the other.
  10. 10. Encoding apparatus according to any one of claims 7 to 9, wherein the second M-sequence is an impulse response word or a rotated version thereof.
  11. 11. An encoder for producing error checking information for a bit stream destined for transmission, the encoder comprising a first encoding apparatus according to any one of claims 7 to 10 arranged to operate on the bit stream to produce a first stream of error checking information, an interleaver arranged to interleave the bit stream into an interleaved bit stream and a second encoding apparatus according to any one of claims 7 to 10 arranged to operate on the interleaved bit stream to produce a second stream of error checking information.
  12. 12. A method of encoding a bit stream, substantially as hereinbefore described with reference to the accompanying figures.
  13. 13. Encoding apparatus for encoding a bit stream, substantially as hereinbefore described with reference to the accompanying figures.
GB0105526A 2001-03-06 2001-03-06 Coding Revoked GB2373149B (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
GB0105526A GB2373149B (en) 2001-03-06 2001-03-06 Coding
PCT/GB2002/000871 WO2002071624A1 (en) 2001-03-06 2002-02-28 Recursive convolutional encoding
JP2002570415A JP2004529542A (en) 2001-03-06 2002-02-28 Method and apparatus for encoding a bitstream
DE60213574T DE60213574D1 (en) 2001-03-06 2002-02-28 RECURSIVE FOLDING CODING
US10/469,749 US7051266B2 (en) 2001-03-06 2002-02-28 Methods of, and apparatus for, encoding a bit-stream
EP02701437A EP1374416B1 (en) 2001-03-06 2002-02-28 Recursive convolutional encoding
AT02701437T ATE335310T1 (en) 2001-03-06 2002-02-28 RECURSIVE CONVERSIONAL ENCODING
KR10-2003-7011666A KR20030080071A (en) 2001-03-06 2002-02-28 Recursive convolutional encoding
CNA028058747A CN1494768A (en) 2001-03-06 2002-02-28 Recursive convolutional encoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0105526A GB2373149B (en) 2001-03-06 2001-03-06 Coding

Publications (3)

Publication Number Publication Date
GB0105526D0 GB0105526D0 (en) 2001-04-25
GB2373149A true GB2373149A (en) 2002-09-11
GB2373149B GB2373149B (en) 2004-07-07

Family

ID=9910080

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0105526A Revoked GB2373149B (en) 2001-03-06 2001-03-06 Coding

Country Status (9)

Country Link
US (1) US7051266B2 (en)
EP (1) EP1374416B1 (en)
JP (1) JP2004529542A (en)
KR (1) KR20030080071A (en)
CN (1) CN1494768A (en)
AT (1) ATE335310T1 (en)
DE (1) DE60213574D1 (en)
GB (1) GB2373149B (en)
WO (1) WO2002071624A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381425A (en) * 1992-03-27 1995-01-10 North Carolina State University System for encoding and decoding of convolutionally encoded data
EP0986182A2 (en) * 1998-09-08 2000-03-15 Sony Corporation Encoding apparatus and method, decoding apparatus and method and providing medium
GB2361608A (en) * 1999-12-18 2001-10-24 Samsung Electronics Co Ltd XOR based block encoding serially concatenated with convolutional encoding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4055832A (en) * 1975-09-24 1977-10-25 Motorola, Inc. One-error correction convolutional coding system
US5511082A (en) * 1994-05-10 1996-04-23 General Instrument Corporation Of Delaware Punctured convolutional encoder
US5960040A (en) * 1996-12-05 1999-09-28 Raytheon Company Communication signal processors and methods
KR100248379B1 (en) * 1997-06-16 2000-03-15 정선종 Communication apparatus using single concatenated coder and communication method using this
US5954836A (en) * 1998-01-15 1999-09-21 Lucent Technologies, Inc. Method and apparatus for pipelined encoding
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
CN1133278C (en) * 2000-07-26 2003-12-31 信息产业部电信传输研究所 Channel convolutional coding method of digital communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381425A (en) * 1992-03-27 1995-01-10 North Carolina State University System for encoding and decoding of convolutionally encoded data
EP0986182A2 (en) * 1998-09-08 2000-03-15 Sony Corporation Encoding apparatus and method, decoding apparatus and method and providing medium
GB2361608A (en) * 1999-12-18 2001-10-24 Samsung Electronics Co Ltd XOR based block encoding serially concatenated with convolutional encoding

Also Published As

Publication number Publication date
CN1494768A (en) 2004-05-05
EP1374416A1 (en) 2004-01-02
GB2373149B (en) 2004-07-07
GB0105526D0 (en) 2001-04-25
US20040083416A1 (en) 2004-04-29
EP1374416B1 (en) 2006-08-02
DE60213574D1 (en) 2006-09-14
JP2004529542A (en) 2004-09-24
KR20030080071A (en) 2003-10-10
US7051266B2 (en) 2006-05-23
WO2002071624A1 (en) 2002-09-12
ATE335310T1 (en) 2006-08-15

Similar Documents

Publication Publication Date Title
Be'ery et al. Optimal soft decision block decoders based on fast Hadamard transform
EP2264924A1 (en) Error-correcting encoding apparatus
JP4377407B2 (en) Error correction code interleaver
JP2001511963A (en) Method and apparatus for transmitting and receiving concatenated code data
WO2004068715A2 (en) Systems and processes for fast encoding of hamming codes
JP2003523682A (en) Method, apparatus, and product for use in generating CRC and other remainder-based codes
JP5126230B2 (en) Error detection method
WO2005015809A1 (en) Method, encoder and communication device for encoding parallel concatenated data
US8631307B2 (en) Method for encoding and/or decoding multimensional and a system comprising such method
US6751773B2 (en) Coding apparatus capable of high speed operation
EP1427109A2 (en) Apparatus and method of calculating a cyclic redundancy check value for a multi bit input data word
KR100628201B1 (en) Method for Turbo Decoding
US5359610A (en) Error detection encoding system
US7394755B2 (en) Semi-fixed circuit
EP1374416B1 (en) Recursive convolutional encoding
JPH0998093A (en) Error correction code decoding method
JP3628013B2 (en) Signal transmitting apparatus and encoding apparatus
JP4308226B2 (en) Error correction coding device
WO2021044765A1 (en) Communication system and communication method
Bhoyar Design of encoder and decoder for Golay code
KR100396827B1 (en) Parallel convolutional encoder in data transmission system
KR0137354B1 (en) Error detection and correction in radio data communications
Hamasuna et al. Hardware implementation of the high-dimensional discrete torus knot code
CN102687443A (en) Parity control system and method, and communication system and method
Kishore Efficient decoding of binary shortened cyclic fire code

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20070306

773K Patent revoked under sect. 73(2)/1977

Free format text: PATENT REVOKED ON 20071217