GB2512131A - Method and apparatus for decoding data transmitted using a low density parity check code - Google Patents

Method and apparatus for decoding data transmitted using a low density parity check code Download PDF

Info

Publication number
GB2512131A
GB2512131A GB1305244.4A GB201305244A GB2512131A GB 2512131 A GB2512131 A GB 2512131A GB 201305244 A GB201305244 A GB 201305244A GB 2512131 A GB2512131 A GB 2512131A
Authority
GB
United Kingdom
Prior art keywords
parity check
check matrix
global
code
codeword
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
GB1305244.4A
Other versions
GB2512131B (en
GB201305244D0 (en
Inventor
Mounir Achir
Philippe Le Bars
Alain Caillerie
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to GB1305244.4A priority Critical patent/GB2512131B/en
Publication of GB201305244D0 publication Critical patent/GB201305244D0/en
Publication of GB2512131A publication Critical patent/GB2512131A/en
Application granted granted Critical
Publication of GB2512131B publication Critical patent/GB2512131B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • H04L1/0051Stopping criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • H04L1/0618Space-time coding
    • H04L1/0631Receiver arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • H04L1/0618Space-time coding
    • H04L1/0637Properties of the code
    • H04L1/0643Properties of the code block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

A decoder receives in parallel plural copies of a transmitted codeword sent along different communication channels in a space diversity scheme, and encoded as LDPC codewords. The received copies are concatenated into a global LDPC codeword, which is decoded using a global parity check matrix built based on the LDPC parity check matrix of the code used for encoding. The global matrix has the corresponding LDPC parity check matrix on its diagonal and null elements elsewhere. Decoding may be done in a single iteration of the belief propagation algorithm, and selecting a decoded codeword according to a lowest value of a criterion applied to each decoded codeword.

Description

METHOD AND APPARATUS FOR DECODING DATA TRANSMITTED USING
A LOW DENSITY PARITY CHECK CODE
The present invention concerns a method and a device for decoding data transmitted using a low density parity check (LDPC) code. More particularly it concerns the decoding of an encoded word received by a plurality of receivers in a space diversity scheme.
A low density parity check code is a linear error correcting code. It is used for transmitting a message over a noisy transmission channel. An information word of data w is multiplied by a generation matrix G to generate a codeword c to be transmitted over the transmission channel. Upon reception, a received codeword c' is obtained, possibly containing some errors. Decoding is carried on based on a parity check matrix H. Valid codewords c fulfil the constraint H.cT = 0. Decoding is the process of retrieving the sent codeword c and therefore the information word of data w, knowing the received codeword c' and the LDPC matrix H. LDPC codes have the requirement that H is low density, meaning that the vast majority of matrix elements are zeros. A parity-check matrix is regular if each code bit is included in a fixed number of parity checks, noted Nc, and each parity-check equation contains a fixed number of code bits, noted Nv. If an LDPC code is described by a regular parity-check matrix it is called a (Nc,Nv)-regular LDPC code otherwise it is an irregular LDPC code.
Figure I illustrates a LDF'C code based on the LDF'C matrix H represented on figure Ic. An LDPC code can be seen as a variable set that satisfies a set of constraints.
The binary linear code C defined by the matrix H is the set of all 8-tuples x = [x13x2,x33x4,x5,x6,x7,x3] that satisfy H.xT = 0. Verifying that x belongs to C is equivalent to verifying the conditions: (xi + x2 + x3 = 0 Jr4 + r5 + x6 = 0 1 r + X4 + X7 = 0 1⁄4X2 + X5 + X8 = 0 The constraint here is to satisfy several parities. The function associated to the constraint is the sum in the Galois Field GF(2).
A graph can be constructed to represent the relationship between the variables and the constraints. Variables will be represented by a square and constraints by a circle. The circles represents sum in GF(2). Figure Ia illustrates a first popular way of representing the code in a graph where c1 represents the bits of the received codeword and fj the constraints corresponding to each line of the LDPC matrix H. Figure lb illustrates another popular way of representing the code, this representation being called a Tanner graph.
The optimal decoding aims at estimating the probability that a given received sample bit is equal to 1 or 0 depending on its own value and the values of the different check nodes related to this sample. Decoding is typically performed using the belief propagation decoding algorithm (BPA), also called the sum-product decoding, a description of this algorithm may be found in "An introduction to Low Density Parity Check (LDPC) Codes", Jian Sun, WCRL Seminar Series, 3 June 2003. This algorithm consists in an iterative process to estimate the sent codeword from the received one and the LDPC matrix H. Each iteration step improves the estimation of the sent codeword obtained. By virtue of the low density property of H, the algorithm converges to the best estimation.
When applied in a wireless system using, for example, the millimeter wave frequency band, namely the 60 GHz band, this code may prove itself to behave poorly in some situation due to its high sensibility to the shadowing phenomenon.
The present invention has been devised to address one or more of the foregoing concerns. It is proposed a communication system in which a plurality of receivers is used in parallel. A copy of the emitted codeword is received by each receiver. A single decoder gets all these copies and creates a global received codeword by concatenating all the received copy. This global codeword is decoded using a global parity check matrix built based on the LDPC matrix of the code used for encoding.
According to a first aspect of the invention there is provided a method of decoding a plurality of copies of a same encoded codeword, said encoded codeword being encoded with a code, each copy being obtained via a different communication channel, the method comprising concatenating the plurality of copies to form a global encoded codeword; obtaining a global parity check matrix of a code corresponding to the global encoded codeword based on the parity check matrix corresponding to the code used to encode said encoded codeword; decoding said global encoded codeword using said global parity check matrix thereby obtaining a plurality of decoded codewords and selecting one word among said plurality of decoded codewords. Accordingly, decoding is efficient and sparse in computing resources.
In an embodiment, said obtained global parity check matrix is built with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere.
In an embodiment, said obtained global parity check matrix is built with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere with additional lines to express constraints related to the fact that all the copies of the encoded codeword should be identical.
In an embodiment, the number of communication channels being even, the additional lines are formed by a line of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code.
In an embodiment, the number of communication channels being odd, the additional lines are formed by two lines of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code, one identity matrix on each line being replaced by a null matrix, the two null matrices being on different columns.
In an embodiment, the method further comprises a step of computing a criterion on each of the plurality of decoded codewords counting the number of 1 in the vector resulting of the multiplication of the parity check matrix corresponding to the code and said decoded codeword and where the selection step consists in selecting the decoded word among the plurality having the lowest value of said criterion.
In an embodiment, the decoding step consists in a single iteration step of the believe propagation algorithm.
According to another aspect of the invention there is provided a device for decoding a plurality of copies of a same encoded codeword, said encoded codeword being encoded with a code, each copy being obtained via different communication channels, the device comprising a concatenating module for concatenating the plurality of copies to form a global encoded codeword; a matrix obtaining module for obtaining a global parity check matrix of a code corresponding to the global encoded codeword based on the parity check matrix corresponding to the code used to encode said encoded codeword; a decoder for decoding said global encoded codeword using said global parity check matrix thereby obtaining a plurality of decoded codewords and a selector for selecting one word among said plurality of decoded codewords.
In an embodiment, said matrix obtaining module is adapted to build the global parity check matrix with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere.
In an embodiment, said matrix obtaining module is adapted to build the global parity check matrix with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere with additional lines to express constraints related to the fact that all the copies of the encoded codeword should be identical.
In an embodiment, the number of communication channels being even, the additional lines are formed by a line of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code.
In an embodiment, the number of communication channels being odd, the additional lines are formed by two lines of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code, one identity matrix on each line being replaced by a null matrix, the two null matrices being on different columns.
In an embodiment, the device further comprises a criterion computing module for computing a criterion on each of the plurality of decoded codewords counting the number of 1 in the vector resulting of the multiplication of the parity check matrix corresponding to the code and said decoded codeword and where the selector is selecting the decoded word among the plurality having the lowest value of said criterion.
In an embodiment, the decoder is adapted to make a single iteration step of the believe propagation algorithm.
According to another aspect of the invention there is provided a computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to the invention, when loaded into and executed by the programmable apparatus.
According to another aspect of the invention there is provided a computer-readable storage medium storing instructions of a computer program for implementing a method according to the invention.
At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit", "module" or "system". Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 illustrates a LDPC code based on the LDPC matrix I-I; Figure 2 illustrates the architecture of transmission system implementing an embodiment of the invention; Figure 3a illustrates the architecture of the emitter in an embodiment of the invention; Figure 3b illustrates the architecture of the receiver in an embodiment of the invention; Figure 3c illustrates the architecture of the controller in an embodiment of the invention; Figure 4a illustrates the steps of the method by the receivers in the embodiment of the invention; Figure 4b illustrates the steps of the method by the controller in an embodiment of the invention.
The invention is based to introducing spatial diversity in the wireless transmission. Several receivers are set up for the reception of data transmitted by a single emitter using a LDPC code. Each receiver receives a copy of the emitted codeword. All the copies are used to contribute to the decoding of the emitted word of data according to an innovative decoding method.
The embodiment of the invention has been made in the context of wireless transmission of uncompressed high definition (HD) image data for applications requiring low bit error rate and low latency transmission. The system of this embodiment is a 60 GHz wireless system using one moving emitter and several fixed receivers. The receivers are connected, typically by wire, to a system controller device. The system controller device uses a decoding technique based on low density parity check codes to retrieve the HD video or image data. A wireless network system using the millimeter wave frequency band (60GHz) is well adapted to the transmission of uncompressed HD video or image data. This is mainly due to the large available bandwidth which allows very high data rate transmission, typically greater than 3 Gbps.
Unfortunately, such wireless transmission systems in this frequency band are very sensitive to the shadowing phenomenon. Some static or moving obstacles such as furniture, objects, human being can cut or disturb the communication path and cause transmission errors.
Figure 2 illustrates the architecture of transmission system 10 implementing an embodiment of the invention. The emitter node 12 is connected to an HD video or image data source device 11 through a wire interface 128. The source device 11 can be for example an HD digital camera or an HD digital camcorder. The wireless emitter node 12 processes the HD video or image data; in particular it performs an LDPC encoding on portions of video or image data, and sends the processed data wirelessly through its antenna 12a. The emitter node 12 can send the processed data from several different positions within the area 20.
The data sent by the emitter node 12 are received by the receiver nodes 13, 14 and 15 respectively through their antennae 13a, 14a and 15a. The receiver nodes 13, 14 and 15 are located in different positions to create space diversity. In this embodiment, three receiver nodes are used but other configurations could be used also, for example configurations with 2, 4, 5 or 6 receiver nodes may be used.
The grey boxes 18 and 19 represent some obstacles that can be positioned between emitter node 12 and receiver nodes 13, 14 and 15. These obstacles can be physical objects, human being, furniture, etc. Depending on the position of the emitter 12 within the area 20 and depending on the position of the obstacles 18 and 19, one or more line of sight communication path between the emitter node 12 and the receiver nodes 13, 14 and 15 can be disturbed or cut. As a result, the receiver nodes 13, 14 and 15 may have different reception quality, i.e. different bit error rates (BER).
Then the receiver nodes 13, 14 and 15 process the data received from the emitter node 12 and sends the processed data to the system controller 16 respectively through the wire interfaces 137, 147 and 157.
The system controller 16 receives the 3 copies of the same original data from the receiver nodes 13, 14 and 15. All these copies are received by different communication channels. Then these 3 copies are presented at the inputs of the LDPC multi-rx decoding module 165 located within the system controller 16. The LDPC multi-rx decoding module 165 is in charge of the decoding of the codeword based on the three copies. This module 165 uses a decoding technique based on LDPC to retrieve the HD video or image data from the 3 received copies.
Next, the system controller 16 sends the decoded HD video or image data to the sink device 17 through a wire interface 168. The sink device 17 may be an HD video/image display, a Personal Computer or else.
Figure 3a illustrates the architecture of the emitter 12 figure 2 in an embodiment of the invention. The emitter receives image data from an image data source not shown through the wire interface 128. The wire interface may typically be an HDMI interface, a camera link interface or any other suitable interface. Image data are received by an application layer module 127 in the emitter. This module retrieves the HD video or image content received from the image data source. It formats these HD video or image data to be processed by the MAC layer module 126.
The MAC layer module 126 receives the formatted data sent by the application layer module 127. It builds the MAC data packets with this data. A MAC data packet consists of several data blocks. The MAC data packets are sent to the Channel Coding and modulation module 125.
The channel coding and modulation module 125 receives the MAC data packets and performs channel encoding function and the modulation function.
For example, the module 125 may encode the MAC data packets using an LDPC (256,288) encoder and uses the BPSK modulation to generate the in-phase and quadrature signals. The output of the channel coding and modulation module 125 is connected to the RF transceiver module 124.
The RF transceiver 124 receives the MAC data packets after the channel encoding and the modulation. Next, the RE transceiver 124 builds the radio packets by modulating the received data and by adding a preamble pattern. The RF transceiver 124 undertakes the remaining functions needed for the transmission of radio packets on the 60GHz radio channel through the antenna 12a.
These modules are implemented by software programs stored in a ROM memory 120. These programs, when executed by the processor 122, controlling the whole emitter, using the RAM memory 121 realize the functions of the different modules. They interact with other hardware modules like the RE part of the emitter. The CPU 122 is connected to the modules 127, 126, 125 and 124 via a bi-directional address / data bus 123. Amongst other things, this connection permits to the CPU 122 to initialize and configure the modules 127, 126, 125 and 124 at system start-up.
Figure 3b illustrates the architecture of a receiver such as receivers 13, 14 or 15 in the system embodiment of figure 2. The receiver receives the radio packets sent by the emitter through its antenna 13a. The RF transceiver 134 fulfills the function needed for the reception of radio packets on the 60 GHz radio channel through the antenna 13a.
After the reception of radio packets, the RF transceiver 134 removes the preamble pattern from the radio packet and demodulates the received data. The demodulated data are then sent to demodulation module 135. The demodulation module applies the demodulation algorithm in order to generate the binary sequence corresponding to the received I and 0 signals.
The cable interface module 136 receives the MAC data packets from the demodulation module 135. The cable interface module 136 formats the MAC data packets to transmit them to the system controller 16 figure 2 via the wire link 137. The wire link 137 is typically a serial wire link able to support data rates up to several Giga bits per second (Gbps).
The receiver operates under control of a processor 132 connected to a ROM memory 130 and a RAM memory 131. The ROM 130 contains a software program which can be used, when executed by the CPU 132 (using the RAM 131), to implement the functions realized by the described modules of the receiver. The RAM 131 is used for the execution by the CPU 132 of the above-mentioned software program and for the processing of the different tasks performed by the CPU 132.
The CPU 132 is connected to other part of the receiver via a bi-directional address I data bus 133. Amongst other things, this connection permits to the CPU 132 to initialize and configure the modules 136, 135 and 134 at system start-up.
Figure 3c illustrates the architecture of the controller 16 of figure 2. The controller receives data from each receiver in the system via the cable interface modules 164a, 164b and 164c. The number of receivers is at least two, it may differ according to the embodiment. By these cable interface modules the controller receives N copies of the original MAC data packet sent by the emitter, where N is the number of receivers. Each MAC data packet consists of several LDPC encoded data blocks with their respective additional parity bits.
The LDPC Multi-Rx decoding module performs the LDPC decoding of the received data. This decoding will be described in detail below in relation with Figures 4a and 4b. Finally, the module 165 presents a decoded data block at the output and provides it to the MAC module 166.
The MAC module 166 receives the combined data blocks outputted by the module 165 and re-constructs each MAC data packet. Then the MAC module 166 retrieves the HD video or image data by removing the header information attached to the MAC data packets. Next, the MAC module 166 provides the HD video or image data to the application layer module 167.
The application layer module 167 receives the HD video or image data from the MAC layer 166 and re-builds the HD video or image content. The HD video or image content is then sent to the sink device 17 of figure 2 through the wire interface 168. The wire interface 168 can be an HDMI interface, a camera link interface or any other interface.
The controller operates under control of a processor 162 connected to a ROM memory 160 and a RAM memory 161.
The ROM memory 160 contains a software program which can be used, when executed by the processor 162 using the RAM memory 161, to implement the functions of the different modules of the controller. The RAM memory 161 is used for the execution by the processor 162 of the above-mentioned software program and for the processing of the different tasks performed by the processor 162.
The processor 162 is connected to the other part of the controller via a bi-directional address I data bus 163. Amongst other things, this connection permits to the processor 162 to initialize and configure the modules 167, 166, 165, 164a, 164b, 164c at system start-up.
The central processing unit 162 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 162 is capable of executing instructions from main RAM memory 161 relating to a software application after those instructions have been loaded from the program ROM 160. Such a software application, when executed by the CPU 162, causes the steps of the flowcharts shown in Figures 4b to be performed.
In some embodiment of the invention, the controller may be implemented in one of the receiver device. Alternatively, all the receiving system may be implemented in one device with several antennae and RE modules.
One of the key points of the invention is that no separate LDPC decoding is undertaken on the individual encoded codewords received by the receiver.
Instead, each encoded codeword received is sent to the controller. There, the LDPC multi-rx decoding module undertakes a global LDPC decoding based on all the encoded codewords received. By doing so, the invention takes advantage of the spatial diversity introduced by using several receivers to improve the efficiency of the decoding.
This global decoding is based on the building of a global LDPC encoded codeword from the multiple copies of the received encoded codewords.
Typically this global encoded codeword is built by concatenating all the received copies. The obtained global codeword is itself an encoded LDPC codeword and may undergo a global LDPC decoding at once. This decoding is made using a global LDPC matrix built from the LDPC matrix of the LDPC code used for the encoding of the original data. The decoding process results in a global decoded word composed by the concatenation of copies of the decoded data. If the decoding is successful, all the copies are identical and correspond to the original data that have been transmitted. Any of these copies may be selected as the output of the decoding process.
Figure 4a illustrates the different process steps by the receivers of the system. After an initialization step 400, the receiver receives a wireless data packet sent by the emitter in a step 410. In a step 420, the receiver demodulates the BFSK mapping done by the transmitter and generates encoded codewords. These encoded codewords corresponds to the emitted codeword encoded by the LDPC encoding process of the emitter with possible transmission errors. Next, on step 430 the received encoded codewords are sent to the controller without undergoing any LDPC decoding. Next, the control loops back to step 410 to receive further wireless data packets in an iterative process.
Figure 4b illustrates the steps of the process by the controller. In a first step 440, the controller must determine or obtain the global LDPC matrix. The aim of this global LDF'C matrix is to be able to decode a global encoded codeword composed by the concatenation of N encoded codewords, where N is the number of receivers. The LDFC matrix of an LDPC code represents a set of constraints on the bits of the encoded word. If H is the LDPC matrix and c the encoded codeword, the decoding is based on the resolution of the equation H. c = 0. A global LDPC matrix for the decoding of the global codeword should at least represent the same set of constraints applied to all the copies of the codewords. In a first embodiment, the global LDPC H9 matrix is built according to the following equation where is the matrix having n -Ic rows and it columns with null elements, it is the number of columns of the H matrix and k is the length of the data words before encoding, it -Ic is the number of rows of the H matrix: H °n-k,n °n-Jc,n -°n-kit H... °n-k,n Hg-o.
n-lc,n 0n-icn H Hg is a matrix with only zeros but having matrices H on its diagonal. For example, if the number of receiver is two, H9 is given by: H1 H -[0fl_k,fl H Advantageously, the global matrix is improved to add new constraints taking advantage that all the copies should be identical. This may be done by adding some lines constituted by identity matrix i of size n to the end of the global matrix. For example, it the number of receivers is even, one line of identity matrix may be added. For example, the global LDPC matrix for 4 receivers may be: H °n-lc,n °n-çn °n-lçn °n-mn H °n-lc,n °n-Ic,n = °n-kn °n-k,n H °n-k,n 0n-ic,n °n-lc,n °n-çn H it it it it Where I is the identity matrix of size ii.
If the number of receivers is odd, advantageously a second line of identity matrices is added, with one on each line replaced by a null matrix. For example if the number of receiver is 5, the H9 matrix may be: H °n-Jcn °n-c,n 0n-jc,n °n-c,n °n-ic,n H °n-lc,n °n-c,n °ii-k,n 0jcn H °tikM °itk,ii H9 = °n-kit °n-k,n °n-k,n H °n-kn °n-lc,n °n-ic,n °n-Içn H in In in n nn °n,n it it it it The man skilled in the art understands that the global LDPC matrix H9 may take other forms. In particular when the number of receivers is odd, the null matrix added in the lines of identity matrix may be inserted in other columns.
The supplementary lines express some constraints based on the fact that all the copies of the encoded codeword should be identical.
The controller receives N copies of the encoded codeword in a step 450, where N is the number of receivers in the system. Each copy corresponds to the same emitted codeword being the result of the encoding of the original data word by the LDPC encoder. All the copies should be identical but the transmission errors. Next, in a step 460, a global encoded codeword is built by concatenating all the received copies.
In a step 470, the controller undertakes the LDPC decoding of the global encoded codeword based on the global LDPC matrix H9 determined in step 440. It results in a decoded global codeword. By virtue of the constitution of the global encoded codeword being the concatenation of the copies of the encoded codeword, the decoded global codeword is constituted by copies of the decoded codeword. If the decoding is successful all these copies are identical and computed at once in a single LDPC decoding.
Step 480 is optional and will be described later in relation with a particular embodiment of the invention.
As the result of the LDPC decoding is typically formed by several identical copies of the decoded codeword, a step 490 of selection of one of these copies should be done. In a first embodiment, one of these copies is chosen randomly as the result of decoding.
According to this invention, a single LDPC decoding allows to take advantage of the space diversity brought by the use of a plurality of receivers.
Inventors have noticed that the spatial diversity allow to reduce the number of iteration steps in the LDPC decoding relatively to the number normally needed. By reducing the number of iteration steps, it may remain some errors in the global decoded codeword. But by virtue of the spatial diversity, some of the copies of the decoded codeword are likely to be successfully decoded. By introducing a further step where a criterion is computed in the different copies of the decoded codeword forming the global decoded codeword, it is possible to select such a successfully decoded one as the result of the decoding while saving the iteration steps that would have been needed to successfully decoding the whole global encoded codeword. It is not needed to iterate until the full convergence of the LDPC decoding process to obtain a successful decoded copy of the original emitted codeword.
In an alternate embodiment of the invention, a criterion is computed in step 480 on all the copies of the decoded codeword forming the global decoded codeword. Let's consider the global decoded codeword b = [b1b2...,bNI, where b1 is the ith copy of the decoded codeword forming b. Let's consider the criterion C defined by Cr1 = E2:1mod((H.b1),2) and computed for each copy of the decoded codeword. This criterion corresponds to counting the number of 1 in the vector H.b, knowing that this vector should be zero in case of successful decoding. In this embodiment, the selection step 490 consists in selecting the copy of the decoded codeword having the lowest value of the criterion as the result of the decoding.
In a particular embodiment, the LDPC decoding step 470 is adapted to undertake a single iteration step of the believe propagation algorithm. It has been noticed that having a single iteration step followed by the computation of said criterion and selection of the copy of the decoded codeword with the lowest value of the criterion gives similar results in term of BER as the typical LDPC decoding with all the iteration steps needed for convergence. Accordingly, decoding is efficient and sparse in computing resources.
Any step of the algorithm shown in Figure 4 may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC ("Personal Computer"), a DSP ("Digital Signal Processor") or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA ("Field-Programmable Gate Array") or an ASIC ("Application-Specific Integrated Circuit").
Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.

Claims (17)

  1. CLAIMS1. A method of decoding a plurality of copies of a same encoded codeword, said encoded codeword being encoded with a code, each copy being obtained via a different communication channel, the method comprising: -concatenating the plurality of copies to form a global encoded codeword; -obtaining a global parity check matrix of a code corresponding to the global encoded codeword based on the parity check matrix corresponding to the code used to encode said encoded codeword; -decoding said global encoded codeword using said global parity check matrix thereby obtaining a plurality of decoded codewords; and selecting one word among said plurality of decoded codewords.
  2. 2. A method according to claim 1, wherein said obtained global parity check matrix is built with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere.
  3. 3. A method according to claim 1, wherein said obtained global parity check matrix is built with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere with additional lines to express constraints related to the fact that all the copies of the encoded codeword should be identical.
  4. 4. A method according to claim 3, wherein the number of communication channels being even, the additional lines are formed by a line of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code.
  5. 5. A method according to claim 3, wherein the number of communication channels being odd, the additional lines are formed by two lines of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code, one identity matrix on each line being replaced by a null matrix, the two null matrices being on different columns.
  6. 6. A method according to any one of claims 1 to 5, wherein the method further comprises: -a step of computing a criterion on each of the plurality of decoded codewords counting the number of 1 in the vector resulting of the multiplication of the parity check matrix corresponding to the code and said decoded codeword; and -where the selection step consists in selecting the decoded word among the plurality having the lowest value of said criterion.
  7. 7. A method according to claim 6, wherein the decoding step consists in a single iteration step of the believe propagation algorithm.
  8. 8. A device for decoding a plurality of copies of a same encoded codeword, said encoded codeword being encoded with a code, each copy being obtained via a different communication channel, the device comprising: -a concatenating module for concatenating the plurality of copies to form a global encoded codeword; -a matrix obtaining module for obtaining a global parity check matrix of a code corresponding to the global encoded codeword based on the parity check matrix corresponding to the code used to encode said encoded codeword; -a decoder for decoding said global encoded codeword using said global parity check matrix thereby obtaining a plurality of decoded codewords; and -a selector for selecting one word among said plurality of decoded codewords.
  9. 9. A device according to claim 1, wherein said matrix obtaining module is adapted to build the global parity check matrix with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere.
  10. 10.A device according to claim 1, wherein said matrix obtaining module is adapted to build the global parity check matrix with the parity check matrix corresponding to the code on its diagonal and null elements elsewhere with additional lines to express constraints related to the fact that all the copies of the encoded codeword should be identical.
  11. 11.A device according to claim 3, wherein the number of communication channels being even, the additional lines are formed by a line of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code.
  12. 12.A device according to claim 3, wherein the number of communication channels being odd, the additional lines are formed by two lines of identity matrices having a size corresponding to the number of columns of the parity check matrix corresponding to the code, one identity matrix on each line being replaced by a null matrix, the two null matrices being on different columns.
  13. 13.A device according to any one of claims 1 to 5, wherein the device further comprises: -a criterion computing module for computing a criterion on each of the plurality of decoded codewords counting the number of 1 in the vector resulting of the multiplication of the parity check matrix corresponding to the code and said decoded codeword; and -where the selector is selecting the decoded word among the plurality having the lowest value of said criterion.
  14. 14.A device according to claim 6, wherein the decoder is adapted to make a single iteration step of the believe propagation algorithm.
  15. 15.A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims 1 to 7, when loaded into and executed by the programmable apparatus.
  16. 16.A computer-readable storage medium storing instructions of a computer program for implementing a method according to any one of claims 1 to 7.
  17. 17.A method of decoding substantially as hereinbefore described with reference to, and as shown in Figure 4a and 4b.
GB1305244.4A 2013-03-22 2013-03-22 Method and apparatus for decoding data transmitted using a low density parity check code Active GB2512131B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1305244.4A GB2512131B (en) 2013-03-22 2013-03-22 Method and apparatus for decoding data transmitted using a low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1305244.4A GB2512131B (en) 2013-03-22 2013-03-22 Method and apparatus for decoding data transmitted using a low density parity check code

Publications (3)

Publication Number Publication Date
GB201305244D0 GB201305244D0 (en) 2013-05-01
GB2512131A true GB2512131A (en) 2014-09-24
GB2512131B GB2512131B (en) 2018-02-14

Family

ID=48226849

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1305244.4A Active GB2512131B (en) 2013-03-22 2013-03-22 Method and apparatus for decoding data transmitted using a low density parity check code

Country Status (1)

Country Link
GB (1) GB2512131B (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
5th International Symposium on Turbo Codes and Related Topics, Sep 2008, CH, pub. IEEE, US, pp. 373 - 378, Ogiwara H et al, "Sum-product decoding of BCH codes" *
Proceedings, 14th International Symposium on Wireless Personal Multimedia Communications, Oct 2011, FR, pub. IEEE, US, Yizhi Yin et al, "Multi-source cooperative communications using low-density parity-check product codes" *

Also Published As

Publication number Publication date
GB2512131B (en) 2018-02-14
GB201305244D0 (en) 2013-05-01

Similar Documents

Publication Publication Date Title
EP3371890B1 (en) Signature-enabled polar encoder and decoder
US11637653B2 (en) Method and apparatus of rate-matching for communication and broadcasting systems
US10742350B2 (en) Method and apparatus of rate-matching for communication and broadcasting systems
CN109314524B (en) System and method for rate matching through heterogeneous kernels using common polar codes
US11646818B2 (en) Method and apparatus for encoding/decoding channel in communication or broadcasting system
WO2010035501A1 (en) Method for constructing an ldpc code, transmitter, and receiver
JP7279779B2 (en) Method and Apparatus for Construction of Polar Codes
CA2881538C (en) Modulator and modulation method using non-uniform 16-symbol signal constellation for low-density parity check codeword having 2/15 code rate
US11271591B2 (en) SC-LDPC code encoding method and device therefor
JP6291296B2 (en) Transmitting apparatus and receiving apparatus using concatenated codes
US11206042B2 (en) Layered decoding method for LDPC code and device therefor
US10944506B2 (en) Method and apparatus for transmitting and receiving signal by using polar coding
US20140040675A1 (en) Data processing method and apparatus
WO2015039759A1 (en) Encoding of low-density parity check for different low-density parity check (ldpc) codes sharing common hardware resources
CN115885478A (en) Method and communication device for constructing LDPC code
GB2509073A (en) Low Density Parity Checking using Interleaver Address Mappings
US9281842B2 (en) Method and device for improving decoding of data received from one source by several receivers
KR102396814B1 (en) Apparatus and method for channel encoding/decoding in communication or broadcasting system
GB2512131A (en) Method and apparatus for decoding data transmitted using a low density parity check code
Venkatesh et al. A High-Throughput Reconfigurable LDPC Codec for Wide Band Digital Communications.
WO2019137523A1 (en) Encoding method, encoding device, and system
MX2014012121A (en) Low density parity check encoder having length of 64800 and code rate of 7/15, and low density parity check encoding method using the same.
WO2022089293A1 (en) Encoding method and device
GB2500625A (en) Diversity receiver using bit reliability indications when processing three or more copies of a packet
Sasikala Cross layered adaptive rate optimized irregular LDPC for WSN