WO2007034870A1 - 復号装置および受信装置 - Google Patents

復号装置および受信装置 Download PDF

Info

Publication number
WO2007034870A1
WO2007034870A1 PCT/JP2006/318728 JP2006318728W WO2007034870A1 WO 2007034870 A1 WO2007034870 A1 WO 2007034870A1 JP 2006318728 W JP2006318728 W JP 2006318728W WO 2007034870 A1 WO2007034870 A1 WO 2007034870A1
Authority
WO
WIPO (PCT)
Prior art keywords
check
variable
register
message
data
Prior art date
Application number
PCT/JP2006/318728
Other languages
English (en)
French (fr)
Inventor
Norifumi Kamiya
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to EP06810388.6A priority Critical patent/EP1940032B1/en
Priority to CN2006800354137A priority patent/CN101273532B/zh
Priority to US12/088,142 priority patent/US8074142B2/en
Publication of WO2007034870A1 publication Critical patent/WO2007034870A1/ja

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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Definitions

  • the present invention relates to a block error correction decoding apparatus and a receiving apparatus including a decoding apparatus that divides a received data sequence into fixed-length blocks and adds a redundant sequence independently for each block.
  • the present invention relates to a check (LDPC) code decoding device and a receiving device including the decoding device.
  • LDPC check
  • error correction code technology with large coding gain is introduced. Has been done.
  • the low density parity check code is known as an error correction code having a very large coding gain, and is being introduced into various communication systems and storage devices such as magnetic recording.
  • the low-density parity check code has a sparse check matrix that does not simply indicate one error correction coding method (most of the components in the matrix are 0, and the number of components that are 1 is very large). It is a general term for error correction codes with a small number of features.
  • the decoding device for the low-density parity check code alternately performs update of the variable check message by the variable node processing device and update of the check-one-variable message by the check node processing device, and updates each message a predetermined number of times. Then, the estimation result of the transmission data is obtained from the check single variable message and the received data (see, for example, Non-Patent Document 2 and Non-Patent Document 3).
  • Non-Patent Document 1 Robert G. Gallager, “Kuchiichi” Density Low—Density Parity -Check Codes ”(USA), MIT Press, 1963, p. 39—56
  • Non-Patent Document 2 David JC MacKay, “Doll Era ⁇ ⁇ Collecting Cause Based on Very Sparse Matrices” (USA), Punorei Transactions on Information Theory (Vol. 45, No2, March 1999, p399—431
  • Non-Patent Document 3 Jinghu Chen, Mark Fossoria (Marc PC
  • Fossorier “Near Optimun Universal Beliei Propagation Based Decoding of Low—Density Parity Check Codes” (USA), IEEE Transactions on Communications, Vol. 50, No. 3, March 2002, p. 406 -414
  • the decoding process of the low-density parity check code consists of message updating by two types of processing devices, and a storage device for temporarily storing the messages is indispensable.
  • a storage device for temporarily storing the messages is indispensable.
  • the present invention performs a low-density parity check code decoding process at high speed, and has a simple configuration.
  • a decoding apparatus is a decoding apparatus that decodes a pseudo cyclic low-density parity check code in an error correction coding system and outputs an estimated transmission bit string that is a decoding result, and has a predetermined number of stages having a plurality of registers.
  • Variable feedback that includes a plurality of feedback shift registers, inputs a received data string, generates a variable-check message that is the data including the sum of the log-likelihood ratio and the prior value, and an estimated transmission bit string
  • a variable check message output from the variable check message generator is input, it is generated according to the input variable check message.
  • Check-one-variable message that outputs a check-one-variable message containing Generating means, and normalization calculating means for multiplying predetermined data included in the check variable message output from the check variable message generation means by a predetermined constant and inputting it to the variable check message generation means,
  • the variable check message generation unit adds data corresponding to the output of the check-one-variable message generation unit to predetermined data among the data stored in the register of the feedback shift register included in the variable check message generation unit.
  • Variable check message that is stored in the register of the next stage, and outputs the variable check message and the estimated transmission bit string that is the data stored in the register at a predetermined timing.
  • Check-variable message generation means includes Among the data stored in the register of the feedback shift register and the data output by the variable check message generation means, select the data with the smallest value and the second smallest data to select the next data It includes a check variable operation means that outputs the data stored in the register as a check variable message at a predetermined timing, and the variable check operation means includes a variable-check message generation means.
  • the check-variable operation means is installed between the registers of the feedback shift register included in the check-variable message generation means. It is characterized by being placed.
  • the variable check message generation means includes a first clock counter synchronized with the operation clock of the feedback shift register included in the variable check message generation means, and the check single variable message generation means generates the check single variable message generation.
  • the variable check operation means includes a second clock counter synchronized with the operation clock of the feedback shift register included in the means, and the variable check operation means adds data to be added to a part of the data stored in the register included in the variable check message generation means.
  • the register of the check-one-variable message generation means stores the value counted by the second clock counter, and the check-one-variable calculation means outputs to the output of the variable check message generation means.
  • the corresponding data is the smallest! /, By now, the when, register stores! /, Ru and the second clock counter outputs a value corresponding to a value obtained by counting, it may be stored in the register of the next stage.
  • the variable check message generation means includes a first clock counter synchronized with the operation clock of the feedback shift register included in the variable check message generation means, and the check single variable message generation means generates the check single variable message generation. Includes a second clock counter synchronized with the operation clock of the feedback shift register included in the means, and the variable check calculation means adds to a part of the data stored in the register of the feedback shift register included in the variable check message generation means.
  • the data to be checked is selected according to the value of the first clock counter and the numerical value assigned to the register of the variable check message generation means.
  • the register of the check variable message generation means is counted by the second clock counter.
  • the storage-check-variable operation means stores the value counted by the second clock counter stored in the register and the variable when the data corresponding to the output of the variable-check message generation means is the smallest value.
  • a pair with a numerical value assigned to the register of one check message generation means may be output and stored in the register at the next stage.
  • variable check message generation means and the check single variable message generation means repeat the generation and output of the variable check message and the generation and output of the check single variable message, respectively, by a predetermined number of times. Is Output the estimated transmission bit string after repeatedly generating the variable check message.
  • the variable check message generation means includes a register having the same number as the size of the cyclic matrix constituting the check matrix of the pseudo cyclic low-density parity check code and variable check calculation means, respectively, and generates a check variable message.
  • the means may include a register having the same number as the size of the cyclic matrix constituting the check matrix of the quasi-cyclic low-density parity check code, and a check-one-variable calculation means.
  • a receiving apparatus is a receiving apparatus including a decoding apparatus that decodes a pseudo cyclic low-density parity check code in an error correction coding system and outputs an estimated transmission bit string, and receives received information.
  • a demodulator that demodulates and outputs, and a synchronization control data converter that converts the output data of the demodulator into input data in a format corresponding to the decoding device and outputs the data to the decoding device with frame synchronization.
  • variable-check message generation means Includes a plurality of feedback shift registers with a predetermined number of stages, inputs a received data string, a variable check message that is data including the sum of log likelihood ratio and a priori value, and an estimated transmission bit string A variable that generates and outputs and a check message generation means, and a plurality of feedback shift registers of a predetermined number of stages having a plurality of registers, Variable output by check message generation means
  • a check-one-variable message generation means that outputs a check-one-variable message including data generated according to the input variable-check message, and a check-one variable
  • the variable-check message generating means includes a normal-rich calculation means that multiplies predetermined data included in the check variable message output from the message generating means by a predetermined constant and inputs the data to the variable check message generating means.
  • the check-one-variable message generation means has the feedback shift register included in the check-one-variable message generation means.
  • the second smallest data is selected and saved in the next stage register, and at a predetermined timing, the register saves and outputs the data to be checked as a variable message.
  • the check calculation means is installed between the registers of the feedback shift register included in the variable-tic message generation means, and the check-variable calculation means is included in the feedback shift register included in the check-variable message generation means. It is characterized by being installed between registers.
  • RAM storage device
  • the check-variable computing means counts the second clock counter stored in the register. Configured to output a numerical value corresponding to the value! In that case, the scale of the entire decoding device can be reduced.
  • the check-variable computing means counts the second clock counter stored in the register. If it is configured to output a set of the measured value and the numerical value assigned to the register of the variable check message generating means, a highly accurate check single variable message can be generated.
  • FIG. 1 is a block diagram showing a configuration example of a first embodiment of a decoding apparatus according to the present invention.
  • FIG. 2 is a block diagram illustrating a configuration example of a variable check message generation unit.
  • FIG. 3 is a block diagram illustrating a configuration example of a variable check register block.
  • FIG. 4 is a block diagram showing a configuration example of a variable-check arithmetic unit block.
  • FIG. 5 is a block diagram illustrating a configuration example of a check variable variable message generation unit.
  • FIG. 6 is a block diagram illustrating a configuration example of a check-one-variable register block.
  • FIG. 7 is a block diagram showing a configuration example of a check-variable calculator block.
  • FIG. 9 is a block diagram illustrating a configuration example of a low-density parity check code decoding device using a RAM.
  • FIG. 10 is a block diagram showing an example of the configuration of a simplified variable check operator block
  • FIG. 11 A block diagram showing an example of the configuration of a check-one-variable calculator block that has been simplified.
  • Variable node processing unit 82 Address generation controller
  • FIG. 1 is a block diagram showing a configuration example of the first embodiment of the decoding apparatus according to the present invention.
  • the decoding device includes a variable check message generation unit (variable check message generation unit) 11, a check one variable message generation unit (check one variable message generation unit) 12, and a normalization operation unit (normalization). (Calculation means) 13 is included.
  • a received data sequence is input to the variable-check message generator 11 from a communication line to which a decoding device is connected.
  • the decoding apparatus estimates a transmission bit string and outputs an estimated transmission bit string that is an estimated transmission bit string.
  • the quasi-cyclic low-density parity check code is characterized by the shape of the check matrix.
  • the parity check matrix of the pseudo cyclic low-density parity check code is an m X n block matrix whose components are a X a cyclic matrices as shown in (Equation 1) (a, m, n represent positive integers). ing).
  • Hi, j in (Expression 1) represents the a X a circulant matrix described in (Expression 2) below! (I is 0 to m
  • n— represents an integer between 1 and! /
  • the cyclic matrix is a row vector of the second row that circulates the row vector of the first row one bit to the left.
  • the column vector of the kth row (k represents an integer between 2 and n) is the row vector of the first row rotated to the left by k-1 bits.
  • variable check message generation unit 11 receives the received data sequence input from the communication line and the output of the check variable message generation unit 12 via the normalization calculation unit 13. It is powered.
  • the output of the check-one-variable message generation unit 12 is also a data series power classified into the same number of types as the number of row blocks m of the check matrix. The output of the check-one-variable message generator 12 will be described later.
  • FIG. 2 is a block diagram illustrating a configuration example of the variable-check message generating unit 11.
  • the variable check message generator 11 is synchronized with the clock of the register 31 included in the variable check register block 21, the calorie calculator 23, and the variable one check register block 21, which is the same as the total number n of check matrix column blocks. It includes a counter block (first clock counter) 22 that is a counter.
  • Each variable check register block 21 receives an output of a check-one-variable message generation unit 12 to be described later via a normalization calculation unit 13. Then, the output of each variable one check register block 21 is added to a part of each received data column corresponding to the column block of the check matrix corresponding to the variable one check register block 21 by the adder 23. The result of addition is the output of the variable check message generator 11.
  • the variable check register block 21 has the same number n as the total number of column blocks of the check matrix, and the output of the variable check message generation unit 11 is composed of n systems corresponding to the outputs of the variable check register blocks 21.
  • FIG. 3 is a block diagram showing a configuration example of the variable-check register block 21.
  • the variable—check register block 21 is composed of a number of registers 31 equal to the size of the cyclic matrix constituting the check matrix, and a variable—check operator block (variable—check operation means) 32 arranged between the registers 31. , A connection switch 33 and an output switch 34.
  • the size of the circulant matrix means the number of rows or columns of the circulant matrix.
  • the circulant matrix is a square matrix, the number of rows and the number of columns are the same.
  • Each register 31 is connected in series via each variable-check arithmetic unit block 32.
  • An output switch 34 is connected to the last register 31. The output switch 34 switches the output of the register 31 at the last stage to the input of the register 31 at the front stage, and outputs it to the adder 23 when fed back a predetermined number of times.
  • variable check register block 21 receives m data strings as many as the number of row blocks of the check matrix. When all the data is input, the output switch 34 is switched, and a number of registers 31 are set. Output part of stored data sequentially.
  • connection switch 33 indicates whether or not the input to the variable check register block 21 is input to the variable check calculator block 32.
  • the connection switch 33 is a bit string composed of m power bits predetermined by a check matrix. hh ⁇ , h (i) (i is from 0 to m— 1
  • connection switch 33 is connected to the variable check register block 21 depending on whether or not to connect between the input terminal (not shown) of the variable one check register block 21 and each variable check arithmetic unit block 32. Determines whether or not the input is input to the variable check calculator block 32.
  • variable one check register block 21 includes the same number of variable check calculator blocks 32 as the number of connections. This m number of a bit strings h (i ), h ⁇ , ... , h (i) (
  • FIG. 4 is a block diagram showing a configuration example of the variable-check computing unit block 32.
  • the variable check computing unit includes an adder 41, a comparator 44, a selector 43, a positive / negative inverting device 42, and an XOR gate 45. The operation of the variable check calculator block 32 will be described later.
  • FIG. 5 is a block diagram illustrating a configuration example of the check-variable message generation unit 12.
  • the check-one-variable message generator 12 has a counter block (counter block) that is synchronized with the clocks of the check variable register block 51 and the register 61 included in the check variable register block 51 as many as the total number m of check matrix row blocks. 2 clock counter).
  • each check-one-variable register block 51 The input of each check-one-variable register block 51 is the output of the variable check message generator 11. That is, the output of each check-variable register block 21 of the variable-check message generator 11 is checked via the adder 23-variable message generator 11 Is input.
  • the check variable register block 51 has the same number m as the number of row blocks of the check matrix, and the output of the check variable message generator 11 is m system cards corresponding to the output of each check variable register block 51. It becomes.
  • FIG. 6 is a block diagram showing a configuration example of the check-variable register block 51.
  • the check variable register block 51 is composed of a number of registers 61 having the same number as the size of the cyclic matrix constituting the check matrix, and a check one-variable calculator block (check-variable calculation means) installed between the registers 61. And a connection switch 63 and an output switch 64.
  • Each register 61 is connected in series via each check-variable calculator block 62.
  • An output switch 64 is connected to the last register 61. The output switch 64 feeds back the output of the last-stage register 61 to the input of the foremost-stage register 61, and when it is fed back a predetermined number of times, switches the output to the normalization operation unit 13.
  • connection switch 63 is composed of n power bits, each of which is predetermined by a check matrix to determine whether or not to input the input to the check-one-variable register block 51 to the check-one-variable calculator block 62.
  • Bit sequence gg (j) , ..., g ⁇ ) (j is between 0 and ⁇ — 1
  • connection switch 63 has an input to the check variable register block 51 depending on whether or not a connection is made between the input terminal (not shown) of the check variable register block 51 and each check variable calculator block 62. Check whether variable operator block 62 is input.
  • g ⁇ when is 1, in FIG. 6, the g ⁇ ) and the portion indicated
  • FIG. 7 is a block diagram showing a configuration example of the check single variable arithmetic unit block 62. Choi
  • the clock-variable calculator block 62 includes comparators 71 and 72, selectors 73 and 74, and an XOR gate 75. The operation of the check single variable calculator block 62 will be described later.
  • the decoding device of the present invention inputs the output of the variable—check message generator 11 to the check univariate message generator 12 and inputs the output of the check variable message generator 12 to the variable—check message generator 11. .
  • a bit sequence obtained by making a hard decision on the output of the variable check message generation unit 11 is assumed to be an output of the decoding device as an estimated transmission bit string.
  • One iteration requires 2 X a clocks (a is the size of the cyclic matrix that constitutes the parity check matrix), and the decoding process is completed in 2XaX iterations.
  • the number of variable check register blocks 21 is the same as the total number n of check matrix column blocks, and each of them corresponds to a check matrix column block.
  • the j-th column block (j represents an integer between 0 and n ⁇ 1) has m aX a circulant matrices H 1, H 2,. , H force, and each row vector of these circulant matrices is (f
  • connection in the n variable check register block 21 depends on the column block of the check matrix to which it corresponds. In the following, these are distinguished and the connection corresponding to the j-th block of the check matrix (j represents an integer between 0 and n ⁇ 1) is denoted as h.
  • each variable check register block 21 stores and updates the register 31.
  • Explain information (data) The information stored and updated in register 31 consists of a message part and one other bit.
  • the message part is data equivalent to a variable—check message (VC message), and the other 1-bit part represents the sign of the message part data calculated by the variable check calculator block 32 in the previous iteration. . Details of these data will be described later.
  • the check-variable register block 51 has the same number m as the total number of row blocks of the check matrix, and each of them corresponds to the row block of the check matrix.
  • the i-th row block (i represents an integer between 0 and m ⁇ 1) consists of n a X a cyclic matrices H 1, H 2 , ..., H _ force, and each row of these cyclic matrices is (f (i ' 0) , f (i ' 0) ,..., f (i ' 0) ), (f (i) , F ("), ..., f (I)), ...
  • connection in the n check univariate register blocks 51 depends on the row block of the parity check matrix to which it corresponds. In the following, these are distinguished, and the connection corresponding to the i-th block of the parity check matrix (i represents an integer between 0 and m ⁇ 1) is denoted as g.
  • the information stored and updated in the register 61 consists of a message part, a clock counter value, and one other bit.
  • the message part is data corresponding to the check variable message (CV message).
  • the other 1-bit part is a syndrome for the hard decision result (quantized by 1 bit) of the message calculated by the variable-check message generator 11 and input to the check variable message generator 12. When these values are all 0, the hard decision result of the message calculated by the variable check message generation unit 11 is a code word, and is an estimated transmission bit string output by the decoding device. Details of these data will be described later.
  • variable-check message generator 11 the input and output of the check variable message generator 12 will be described.
  • the output data of the check-one-variable message generation unit 12 is input to the variable-check message generation unit 11 via the normalization calculation unit 13.
  • the output data of this check-one-variable message generator 12 is roughly divided into four types, which are classified into L ( s ), L ⁇ , P (s, t), and (s, t), respectively. . Where s is from 0 to t, 1 t, 2 2
  • L ( S) and L (s) are data corresponding to t, 1 t, 2 check univariate messages.
  • P (s, t) is a check variable variable message.
  • ⁇ (s, t) is selectively used according to the accuracy of calculation. Specifically, when the highest calculation accuracy is required, ⁇ (s, t) is data representing a set of two integers, and when coarser calculation accuracy is sufficient, ⁇ (s , t) is data representing one integer. If coarser calculation accuracy is sufficient, ⁇ (s, t) data is not used. As the calculation accuracy becomes coarser, the amount of data in ⁇ (s, t) decreases, so there is a relationship that the device scale becomes smaller.
  • the normality calculation unit 13 includes the output data L (s) , L t, 1 of the check-variable message generation unit 12.
  • the regularity ⁇ operation unit 13 uses P (s, t) and t, 2 2 2
  • the output data L ( s) , L (s) , P (s, t), and (s, t) of the check-one-variable message generator 12 Is the variable check message t, 1 t, 2 2
  • the normality ⁇ operation unit 13 is used to input L (s ⁇ a L (s) , t, 1 t, 2
  • the input data of the variable check message generation unit 11 includes the output of the check variable message generation unit 12 and the output F of the communication path (where i represents an integer between 0 and na-1). is there.
  • the check-one-variable message generation unit 12 includes the check-one-variable register blocks 51 as many as the total number m of row blocks of the check matrix (Equation 1), and includes the s-th check-one-variable register block. 51 outputs at time t are L ( s ), L ( s ), P (s, t), and (st, 1 t, 2 2
  • the output of the variable—check message generator 11 becomes the input data of the check—variable message generator 12.
  • This input data is denoted as Z (1) .
  • 1 represents an integer between 0 and n ⁇ 1
  • r represents an integer between 0 and a ⁇ 1.
  • the variable-check message generation unit 11 includes the variable check register block 21 as many as the total number n of column blocks of the check matrix (Equation 1) as described above.
  • the r-th output is Z (1) (1 represents an integer between 0 and n—1, r represents an integer between 0 and a—1,) Z (1) and 1 described below
  • Bit information P is the data stored in each variable 31 in the variable—check register block 21 when output!
  • variable-check message generator 11 includes L ( s ), L ⁇ , P (s, t), ⁇ (s, t), and The output F of the channel (i represents an integer between 0 and na—1, s represents an integer between 0 and m—1, and t represents an integer between 0 and a—1) Entered. Then, the variable-check message generator 11 calculates Z (1) using the following (Equation 5) (1 represents an integer between 0 and n—1, r is 0 to a — Represents an integer between 1).
  • each P is 1-bit data, and is stored in advance in each register 31 of the variable—check register block 21 in the variable—check message generating unit 11.
  • the variable—check message generator 11 calculates the variable—check message data ⁇ (1) using (Equation 5) (1 represents an integer between 0 and ⁇ —1, r is 0 to a— 1 Using the calculated ⁇ (1) , P ( "is updated by the following (Equation 6).
  • variable-check register block 21 The operation of the variable—check register block 21 will be described.
  • the variable-check message generator 11 has the same number of variable check registers as the total number n of column blocks in the check matrix (Equation 1).
  • Each variable-check register block 21 has a number of registers 31 equal to the size of the cyclic matrix constituting the check matrix.
  • the initial state (value at time 0) of the message data stored in the r-th register 31 in the first variable check register block 21 is denoted as Z (1) (a)
  • variable—check message generator 11 of the first variable—check register block 21 the data stored in the r-th register 31 at time aj is Z (1) (j) and a and P (1 'r), apparatus for performing the process of updating them every time and (equation 7) by (equation 8)
  • variable-check operator block 32 This is the variable-check operator block 32 shown in FIG.
  • variable-check calculator block 32 will be described. Variable—Check Calculator Block 32 is populated with cnt,, L, L, P, P, and Z. Specifically, comparison
  • the device 44 receives cnt and.
  • the selector 43 includes L, L, and the output of the comparator 44. Force is input. P and P are input to the XOR gate 45. Positive / negative reversing device
  • the adder 41 receives the output of the positive / negative inversion device 42 and Z.
  • the selector 43 selects the clock counter value cnt input to the comparator 44 according to the comparison result of the integer between 0 and n ⁇ 1 assigned to the register 31.
  • Adder 41 adds L or L to Z.
  • the value to be added to Z is selected according to the value of the clock counter and the integer between 0 and n ⁇ 1 assigned to the register 31.
  • L, L, and P are (i, j), L ⁇ , L ( s ), and (Equation 7), respectively.
  • cnt is a predetermined variable 0 for each variable check register block 21.
  • Variable-check calculator block 32 Represents the set of integers between 0 and a-1 corresponding to the counter value synchronized with the clock.
  • Variable-check calculator block 32 also has inputs Z and in
  • variable check arithmetic unit block 32 is connected between the r-th register 31 and the r + 1-th register 31 in the first variable check register block 21 with ⁇ h, h, h (2, 1), ⁇ ⁇ ⁇ , 1 "-1, (1 by installing the same number as the number of 1s included in the 1 represents an integer from 0 to n-1, r is from 0 a- 1 of Represents the integer between) and the processing shown in (Equation 7) Can be realized.
  • variable check message generation unit 11 stores the data in the r-th register 31 in the first variable—check register block 21.
  • the data is Z (1) (0) and P (1 ' r) . And then Z (1) (0)
  • variable one check register block 21 shifts the data stored in the j + 1st register 31 to the jth register 31 (j changes from 0 to a-2). Output in sequence through the 0th register 31. Then, the variable-check register block 21 initializes the message part of the a-first register 31 and the other 1-bit data part is derived from the output message data Z (1) by (Equation 6). By inputting the 1-bit data, each register 31 is initialized when all outputs are completed.
  • variable check message generation process requires a clock for input and accompanying processing, and a clock for output, respectively. These operations are performed by the variable-check message generation unit 11 respectively. This is called input processing mode and output mode of variable check message generator 11.
  • variable check message Z (1) is set between the register 31 and the register 31 without using the RAM by the components shown in FIGS. 2, 3, and 4. It is mainly calculated by a variable-check operator block 32 consisting of an adder 41. Next, the operation of the check-variable message generator 12 will be described.
  • the check-one-variable message generation unit 12 has the same number of check-variable register blocks 51 as the total number m of column blocks of the check matrix (Equation 1), and the s-th variable-ch A—1—tth output force L ( s ), L ( s ), P (s, t), t, 1 t, 2 2 and (s, t) Represents an integer between 0 and m—1, and t represents an integer between 0 and a—1).
  • L ( s ), L ( s ), P (s, t), t, 1 t, 2 2 and (s, t) Represents an integer between 0 and m—1, and t represents an integer between 0 and a—1).
  • the check-one-variable message generator 12 receives the output Z (1) of the variable check message generator 11 (1 represents an integer between 0 and n—1, r is 0. From a—1
  • W has the smallest value among the elements of (s)
  • L has the value 2 tt, 2 t among the elements of the set W
  • Second / J it will be a dice.
  • I ⁇ ⁇ I represents the absolute value of ⁇ ⁇ .
  • P (s, t) is calculated by the following (Equation 15) jj 2
  • each P in (Equation 15) is 1 bit representing the positive or negative of Z (i) as shown in (Equation 6).
  • variable - output z alpha check message generator 11 is inputted to the switch Eck-variable message generator 12, the internal check-variable message generator 12, one bit representing the sign of the Zeta alpha) ( Most significant bit) and other data representing the absolute value are processed.
  • ⁇ (s, t) is IZ t with the smallest value among the elements of set W ( s) in (Equation 14).
  • Check—Operation of the variable register block 51 will be described.
  • the check—variable message generator 12 has the same number of check variable register blocks 51 as the total number of row blocks m of the check matrix shown in (Equation 1), and each check—variable register block 51 has a check matrix.
  • the number of registers 61 is the same as the size of the circulant matrix to be configured.
  • the initial state (value at time 0) of the message data part stored in the t-th register 61 in the s-th check one-variable register block 51 is expressed as L (s) (0), L (s) (0) and the initial state of data corresponding to 1-bit information P (s, t) is P (s, t) And the data at time j of each data is expressed as L (s) (j), L ( s ) (j), P (s, t)
  • L (s) (0) tL (s) (0) is the maximum number that can be represented by the register 61, and t, 1 t, 2
  • L t ⁇ (j) in (Equation 17) has the smallest value among the elements of W ( s) (j— 1).
  • L (s) (j) is the second smallest value among the elements of W (s) (j— 1) t, 2 t-1
  • the data stored in the t-th register 61 at time j is L (s) (j), L (
  • the block that performs the update process according to 9) and (Equation 21) is the check single variable calculator block 62.
  • Check The variable calculator block 62 will be described.
  • Check Variable calculator block 62 is populated with Z, cnt, P,, L, and L.
  • the XOR gate 75 has information indicating the sign of P and Z (the most significant bit of Z) and
  • Comparator 71 receives the absolute values of L and Z (bits other than the most significant bit of Z)
  • the comparator 72 receives L and the absolute value of Z.
  • Selector 73 has Z
  • the selector 74 receives cnt, ⁇ , and the output of the comparator 72.
  • the output is switched according to the output result of the comparator 72.
  • the white diamond indicates that Z is divided into the most significant bit (information indicating the sign of Z) and the non-most significant bit (the absolute value of Z).
  • the upper bits are input to 75 bits of the XOR gate, and bits other than the most significant bit of Z are input to the comparators 71 and 72 and the selector 73.
  • Z corresponds to Z (i) in (Equation 20), cnt is an integer between 0 and n ⁇ 1, and clock
  • the univariate computing unit block 62 receives the following (Equation 22) for the inputs L, L, P and
  • the check-variable calculator block 62 sets the smallest value of Z calculated so far as L and checks the next stage via the register 61.
  • the check one-variable computing unit 62 is connected between the t-th register 61 and the t + 1-th register 61 in the s-th check one-variable register block 51 with ( g (s, 0) , ggt ( s,, ... 11-By installing as many as i included in " ⁇ ( s represents an integer between o and m — i, t is from 0 to a— 1 (Expression 17), (Expression 17), (Expression 18), (Expression 19) and (Expression 21) can be realized.
  • Check—Variable message generator 12 shifts the data stored in the jth register 61 to the j + 1st register 61 at the same time as the output (j is an integer between 0 and a—2).
  • a ⁇ sequentially output through the first register 61.
  • each register 61 is initialized when all outputs are completed.
  • the check-one-variable message generation process requires a clock for input and accompanying processing, and a clock for output, and checks each of these operations. This is called the output mode of the variable message generator 12.
  • the check-one-variable message generation processing is performed mainly by the adder power arranged between the shift register and the shift register without using the RAM. This is realized by the variable calculator block 62.
  • variable check message generation unit 11, the check-one-variable message generation unit 12, and the normalization calculation unit 13 are each realized by a semiconductor device such as an IC (Integrated Circuit). Therefore, each block included in the variable check message generation unit 11 and each block included in the check single variable message generation unit 12 are realized by a semiconductor device such as an IC.
  • FIG. 8 is an explanatory diagram showing the operation of the entire decoding apparatus.
  • Processing by the decoding apparatus starts so that the variable check message generation unit 11 is in the output mode and the check-variable message generation unit 12 is in the input processing mode.
  • R represents an integer between 0 and a—1).
  • the input processing mode and the output mode are switched every a clock.
  • the message data output from the check-one-variable message generator 12 to the variable check message generator 11 and the message data output from the variable-check message generator 11 to the check variable message generator 12 are alternately performed. .
  • variable check message generation unit 12 and the variable check message generation unit 11 in each mode repeat the above process for a preset number of times. Finally, the variable check message generation unit 11 is set to the output mode, the check variable message generation unit 12 is set to the input processing mode, and the variable check message generation unit 11 outputs 1 bit representing the positive / negative of the output data to the output of the decoding device. Are output sequentially.
  • variable check message and the estimated transmission bit are divided into the registers 31 that do not use the RAM, and the main registers installed between the registers 31. It is possible to perform processing to be calculated by the variable-check computing unit block 32 that also has an adder power.
  • the check univariate message uses RAM.
  • the calculation can be performed by a plurality of registers 61 and a check—variable calculator block 62 which is also provided between the registers 61 and mainly has a comparator power.
  • the decoding apparatus decodes the input received data sequence and outputs an estimated transmission bit string. That is, a decoding device with a simple configuration that does not use RAM can decode an input received data sequence and output an estimated transmission bit sequence at a high speed without being limited by the RAM access speed.
  • the error included in the received data can be corrected for the data P (s, t) processed in the check variable variable message generator 12.
  • It can be used as data for determining whether or not the power is weak.
  • FIG. 9 is a block diagram showing an example of the configuration of a low-density notity detection code decoding device using RAM.
  • This decoding device includes a RAM (not shown) as a storage device that holds received data that is subject to error correction, and a RAM as a storage device that holds data generated during the decoding process called a message. Includes a message memory block 84, an address generation control device 82 that generates and controls a RAM address, a variable node processing device 81 for updating a message, and a check node processing device 83.
  • variable check messages There are two types of messages: variable check messages and check single variable messages. Each of these messages is further subdivided. If the number of rows of the check matrix H is M and the number of columns is N (M and N represent positive integers respectively), the variable check message is classified as Zi, j, and a check variable Messages are classified as Li, j.
  • variable node processing device 81 performs processing for updating the variable check message from the check one variable message and the received data.
  • Equation 30 The details of variable node processing are expressed by the following (Equation 30).
  • the check node processing device 83 performs processing for updating the check one variable message from the variable check message.
  • the details of the check node processing are expressed by the following (Equation 31).
  • j represents an integer between 0 and N—1
  • i represents an integer between 0 and M—1
  • Pi j represents either 0 or 1.
  • j ′ is an integer between 0 and N ⁇ 1 that does not match j, and covers all the components corresponding to i in the column vector of the corresponding check matrix.
  • the data (s, t) consists of two integers, an integer between 0 and n—1, and an integer between 0 and a—1, as described above.
  • Variable shown Check message generator 1 The processing performed by 1 and the two data L ⁇ output from the check variable message generator 12
  • L (s) and L (s) are the elements of the set W (s) in (Equation 14), as described above.
  • FIG. 10 is a block diagram showing a configuration example of the variable check computing unit block 32 that has been simplified.
  • the simplified variable-check calculator block 32 includes a positive / negative inverter 102, a calorie calculator 101, and an XOR gate 103.
  • XOR gate 103 has P and P
  • the output of L2 and the XOR gate 103 is input to the positive / negative inverter 102.
  • the adder 101 receives Z and the output of the positive / negative inverter 102. In addition, as shown in FIG.
  • variable check computing unit block 32 that has been simplified does not require the input ⁇ and, and thus is compared with the variable check computing unit 32 of the first embodiment shown in FIG.
  • the configuration is simplified and the bit width of the register 31 in the corresponding variable-one check register block 21 can be reduced.
  • FIG. 11 is a block diagram showing an example of the configuration of the check-variable calculator block 62 that has been simplified.
  • the simplified check single variable arithmetic unit block 62 includes a selector 113 and comparators 111 and 112.
  • the XOR gate 114 receives information indicating the sign of ⁇ (the most significant bit of ⁇ ) and ⁇ .
  • the absolute value of ⁇ (bits other than the most significant bit of ⁇ ) and L are input to the comparator 111.
  • the absolute value of Z and L are input to the comparator 112.
  • the selector 113 receives the absolute value of Z, L and L, the output of the comparator 111, and the output of the comparator 112.
  • Figure 11 shows that the division of Z into the most significant bits (information indicating the sign of Z) and the absolute values of the bits other than the most significant bits is indicated by white rhombuses. Bits are input to the XOR gate 75, and bits other than the most significant bit of Z are input to the comparators 111 and 112 and the selector 113.
  • the check variable calculation unit block 62 that has been simplified does not require the input ⁇ , and therefore, compared with the check variable calculation unit block 62 of the first embodiment shown in FIG. Therefore, the bit width of the register 61 in the corresponding check variable register block 51 can be reduced.
  • the apparatus scale of the entire decoding apparatus is reduced, and the processing is simplified. can do.
  • ⁇ '(i, j) in (Expression 33) represents an integer between 0 and a ⁇ 1.
  • the variable calculator block 62 calculates ⁇ , (i, j) at the same timing as in the first embodiment (when the value of the previous stage input as L is the smallest). Output.
  • ⁇ , (i, j) is
  • a set of ⁇ (i, j) is an integer between 0 and n ⁇ 1 and an integer between 0 and a ⁇ 1. The amount of information has been reduced compared to what was expressed, and the calculation accuracy of the variable check message data is reduced accordingly.
  • the basic configuration of the check single variable arithmetic unit block 62 and the variable check arithmetic unit block 32 is the same as that in FIGS. 7 and 4 shown in the first embodiment, respectively.
  • the bit width of each register 61 in the block 51 can be reduced, and the device scale of the entire decoding device can be reduced.
  • FIG. 12 is a block diagram showing a configuration example of a data communication (storage) device using the decoding device 128 of the present invention.
  • the data communication (storage) device includes a data transmission device 121 and a data reception device (reception device) 12. Including 5. Then, the data transmission device 121 includes a pseudo cyclic low-density parity check code encoding device 122, a control for obtaining frame synchronization, and a synchronization control / data conversion device (for data conversion suitable for the modulator 124). Synchronization control data conversion device) 123, and modulator 124. The modulator 124 outputs information to a communication path or a storage device.
  • the data receiving device 125 is a communication path or storage device power demodulator 126 that demodulates the received information, and converts the output data of the demodulator 126 into input data of the decoding device 126, and performs frame synchronization processing.
  • a synchronization control / data conversion device 127 that performs the decoding, and a decoding device 128 of the present invention.
  • the bit length is 095 bits. It can be.
  • Is less than or equal to 1 i represents an integer between 0 and 7
  • j represents an integer between 0 and 64
  • 65 variables each of which is included in check register block 21 Of these registers 31, the number of variable-check operator blocks 32 installed between a pair of registers 31 is set to 2 or less.
  • the number of check-variable operator blocks 62 installed between a pair of registers 61 is set to 2 or less.
  • the present invention can be used as an error correction technique for satisfying system configuration requirements such as reduction of required power in satellite communication, mobile communication system, etc., and downsizing of an antenna. It can also be used as an error correction technique for improving the reliability of storage devices such as magnetic recording.

Abstract

 検査行列中の1の配置に対応したレジスタ31間に、加算器41を含む変数-チェック演算器ブロック32が設置された変数-チェックメッセージ生成部11と、検査行列中の1の配置に対応したレジスタ61間に、比較器を含むチェック-変数演算ブロック62が設置されたチェック-変数メッセージ生成部12とを有する構成にすると、RAMを使用せず、複雑な制御を必要としない、構成が簡単で高速処理が可能な低密度パリティ検査符号の復号装置を提供することができる。

Description

明 細 書
復号装置および受信装置
技術分野
[0001] 本発明は、受信データ系列を一定長のブロックに分割し、各ブロック毎独立に冗長 系列を付加するブロック誤り訂正の復号装置および復号装置を含む受信装置であつ て、特に低密度パリティ検査 (LDPC)符号の復号装置および復号装置を含む受信 装置に関する。
背景技術
[0002] 衛星通信システムや移動体通信システム等では、所要電力の低減やアンテナの小 型化などのシステム構成上の要件を満たすため、大きな符号化利得を有する誤り訂 正符号ィ匕技術の導入が行われている。低密度パリティ検査符号は、非常に大きな符 号化利得を有する誤り訂正符号として知られており、各種の通信システムや、磁気記 録などの記憶装置への導入が進んで 、る。
[0003] 低密度パリティ検査符号は、単に一つの誤り訂正符号化方式を示すのではなぐ検 查行列が疎である(行列中の成分のほとんどが 0であり、 1である成分の数が非常に 少な 、) 、う特徴をもった誤り訂正符号の総称である。
[0004] そして、疎な検査行列の選択によって、サム'プロダクト (sum -product)アルゴリ ズムや、ミン ·サム(min— sum)アルゴリズムなどの繰り返し復号方式を用 、ることに より、理論限界に近い非常に大きな符号化利得を持つ誤り訂正符号ィ匕方式を構成 することが可能であるという特徴をもっている(例えば、非特許文献 1、および非特許 文献 2参照。)。
[0005] 低密度パリティ検査符号の復号装置は、変数ノード処理装置による変数 チェック メッセージの更新と、チェックノード処理装置によるチェック一変数メッセージの更新と を交互に行い、一定回数各メッセージを更新した後、チェック一変数メッセージと受 信データとから送信データの推定結果を得る(例えば、非特許文献 2および非特許 文献 3参照。)。
[0006] 非特許文献 1 :ロバート 'ギャラガ (Robert G. Gallager)著、「口一'デンシティ ノ リティ'チェック コーズ(Low— Density Parity -Check Codes)」、(米国)、ェム アイティ^ ~ ·プレス(MIT Press)、 1963年、 p. 39— 56
非特許文献 2 :デビッド 'マッカイ(David J. C. MacKay)著、「ダット エラ^ ~ ·コ レクティング コーズ ベースト オン ベリー スパース メトリシイーズ(Good Error — Correcting し odes Based on Very sparse Matrices)、 (米国)、 ,ィトリ プノレイ一 トランザクションズ オン インフォメーション セオリー(IEEE Transactio ns on formation Theory;)、 Vol. 45、 No2、 1999年 3月、 p399— 431 非特許文献 3 :ジング 'チェン (Jinghu Chen)、マーク'フォッソリア(Marc P. C.
Fossorier)著、「-ァ ォプティマム ュ-ヴアーサルビリーフ プロパゲーション ベースト デコーディング ォブ ローデンシティ ノ リティチェック コーズ(Near Op timun Universal Beliei Propagation Based Decoding of Low— Densi ty Parity Check Codes)」、(米国)、アイトリプルィー トランザクションズ オン コ^ュニケーションス (IEEE Transactions on Communications)、 Vol. 50、 N o. 3、 2002年 3月、 p. 406 -414
発明の開示
発明が解決しょうとする課題
[0007] 低密度パリティ検査符号の復号方式の技術的な問題点として、復号処理の過程で 生じるデータの記憶用に多くのランダムアクセスメモリ(RAM)を必要とする点や、 RA Mのアクセス速度によって復号処理全体の速度が制限される点などがある。
[0008] 具体的には、低密度パリティ検査符号の復号処理は、 2種類の処理装置によるメッ セージの更新からなり、メッセージを一時的に蓄えておく記憶装置は必要不可欠で ある。そして、検査行列中の 1の数に比例した個数のメッセージがあり、これを記憶装 置としての RAMが保持した場合、多くの RAMが必要になり、復号処理のスループッ トが RAMへのアクセス速度で制限されるという問題がある。
[0009] また、 RAMの個数を削減するためには同時アクセス可能なメッセージの制限を伴う ため、メッセージ更新のスケジュールや、アドレス生成を細力べ調整する必要があり、 装置構成が複雑となるという問題がある。
[0010] そこで、本発明は、低密度パリティ検査符号の復号処理を高速に行い、構成が単 純で小規模な復号装置および復号装置を含む受信装置を提供することを目的とする 課題を解決するための手段
本発明による復号装置は、誤り訂正符号化方式における疑似巡回型低密度パリテ ィ検査符号を復号し、復号結果である推定送信ビット列を出力する復号装置であつ て、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み 、受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数ーチ エックメッセージと、推定送信ビット列とを生成して出力する変数 チェックメッセージ 生成手段と、複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複 数個含み、変数 チェックメッセージ生成手段が出力した変数 チェックメッセージ が入力されると、入力された変数 チェックメッセージに応じて生成したデータを含む チェック一変数メッセージを出力するチェック一変数メッセージ生成手段と、チェック 一変数メッセージ生成手段が出力したチェック一変数メッセージが含む所定のデー タに、予め決められた定数を乗じて変数 チェックメッセージ生成手段に入力する正 規化演算手段とを備え、変数 チェックメッセージ生成手段は、当該変数 チェック メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに保存され たデータのうち、所定のデータに、チェック一変数メッセージ生成手段の出力に対応 するデータを加算して次の段のレジスタに保存し、所定のタイミングで、レジスタが保 存しているデータである変数 チェックメッセージおよび推定送信ビット列を出力する 変数 チェック演算手段を含み、チェック一変数メッセージ生成手段は、当該チェッ ク一変数メッセージ生成手段が含むフィードバックシフトレジスタが有するレジスタに 保存されたデータのうちの 2つと、変数 チェックメッセージ生成手段が出力したデー タとのうち、値が最も小さいデータと、 2番目に小さいデータとを選択して次の段のレ ジスタに保存し、所定のタイミングで、レジスタが保存しているデータをチェック一変 数メッセージとして出力するチェック 変数演算手段を含み、変数 チェック演算手 段は、変数—チェックメッセージ生成手段が含むフィードバックシフトレジスタが有す るレジスタ間にそれぞれ設置され、チェック—変数演算手段は、チェック—変数メッセ ージ生成手段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設 置されることを特徴とする。
[0012] 変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手段が 含むフィードバックシフトレジスタの動作クロックに同期した第 1のクロックカウンタを含 み、チェック一変数メッセージ生成手段は、当該チェック一変数メッセージ生成手段 が含むフィードバックシフトレジスタの動作クロックに同期した第 2のクロックカウンタを 含み、変数 チェック演算手段は、変数 チェックメッセージ生成手段が含むレジス タに保存されたデータの一部に加算するデータを、第 1のクロックカウンタの値に応じ て選択し、チェック一変数メッセージ生成手段のレジスタは、第 2のクロックカウンタが カウントした値を記憶し、チェック一変数演算手段は、変数 チェックメッセージ生成 手段の出力に対応するデータが最も小さ!/、値となった時に、レジスタが記憶して!/、る 第 2のクロックカウンタがカウントした値に対応する数値を出力して、次の段のレジスタ に保存してもよい。
[0013] 変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手段が 含むフィードバックシフトレジスタの動作クロックに同期した第 1のクロックカウンタを含 み、チェック一変数メッセージ生成手段は、当該チェック一変数メッセージ生成手段 が含むフィードバックシフトレジスタの動作クロックに同期した第 2のクロックカウンタを 含み、変数 チェック演算手段は、変数 チェックメッセージ生成手段が含むフィー ドバックシフトレジスタが有するレジスタに保存されたデータの一部に加算するデータ を第 1のクロックカウンタの値と、変数 チェックメッセージ生成手段のレジスタに割り 当てられた数値とに応じて選択し、チェック一変数メッセージ生成手段のレジスタは、 第 2のクロックカウンタがカウントした値を記憶し、チェック—変数演算手段は、変数— チェックメッセージ生成手段の出力に対応するデータが最も小さい値となった時に、 レジスタが記憶している第 2のクロックカウンタがカウントした値と、変数一チェックメッ セージ生成手段のレジスタに割り当てられた数値との組を出力して、次の段のレジス タに保存してもよい。
[0014] 変数 チェックメッセージ生成手段、およびチェック一変数メッセージ生成手段は、 変数 チェックメッセージの生成および出力と、チェック一変数メッセージの生成およ び出力とをそれぞれ所定の回数繰り返し、変数 チェックメッセージ生成手段は、所 定の回数変数 チェックメッセージの生成を繰り返してから、推定送信ビット列を出 力してちょい。
[0015] 変数 チェックメッセージ生成手段は、疑似巡回型低密度パリティ検査符号の検査 行列を構成する巡回行列のサイズと同数のレジスタと変数 チェック演算手段とをそ れぞれ含み、チェック一変数メッセージ生成手段は、疑似巡回型低密度パリティ検査 符号の検査行列を構成する巡回行列のサイズと同数のレジスタとチェック一変数演 算手段とそれぞれを含んでもょ ヽ。
[0016] 本発明による受信装置は、誤り訂正符号化方式における疑似巡回型低密度パリテ ィ検査符号を復号し、推定送信ビット列を出力する復号装置を備えた受信装置であ つて、受信した情報を復調して出力する復調器と、復調器の出力データを復号装置 に応じた形式の入力データに変換し、フレーム同期をとつて復号装置に出力する同 期制御 データ変換装置とを備え、復号装置は、複数のレジスタを有する所定の段 数のフィードバックシフトレジスタを複数個含み、受信データ列を入力し、対数尤度比 と事前値との和を含むデータである変数 チェックメッセージと、推定送信ビット列と を生成して出力する変数 チェックメッセージ生成手段と、複数のレジスタを有する 所定の段数のフィードバックシフトレジスタを複数個含み、変数—チェックメッセージ 生成手段が出力した変数 チェックメッセージが入力されると、入力された変数ーチ エックメッセージに応じて生成したデータを含むチェック一変数メッセージを出力する チェック一変数メッセージ生成手段と、チェック一変数メッセージ生成手段が出力し たチェック 変数メッセージが含む所定のデータに、予め決められた定数を乗じて変 数 チェックメッセージ生成手段に入力する正規ィヒ演算手段とを含み、変数ーチエツ クメッセージ生成手段は、当該変数—チェックメッセージ生成手段が含むフィードバ ックシフトレジスタが有するレジスタに保存されたデータのうち、所定のデータに、チェ ック 変数メッセージ生成手段の出力に対応するデータを加算して次の段のレジス タに保存し、所定のタイミングで、レジスタが保存しているデータである変数ーチエツ クメッセージおよび推定送信ビット列を出力する変数 チェック演算手段を含み、チ エック一変数メッセージ生成手段は、当該チェック一変数メッセージ生成手段が含む フィードバックシフトレジスタが有するレジスタに保存されたデータのうちの 2つと、変 数 チェックメッセージ生成手段が出力したデータとのうち、値が最も小さいデータと
、 2番目に小さいデータとを選択して次の段のレジスタに保存し、所定のタイミングで 、レジスタが保存して 、るデータをチェック 変数メッセージとして出力するチェック 変数演算手段を含み、変数ーチ ック演算手段は、変数ーチ ックメッセージ生成手 段が含むフィードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、チェ ック—変数演算手段は、チェック—変数メッセージ生成手段が含むフィードバックシ フトレジスタが有するレジスタ間にそれぞれ設置されることを特徴とする。
発明の効果
[0017] 本発明によれば、メッセージを一時的に蓄えておくための記憶装置 (RAM)を使用 しない構成としたため、高速で低密度ノ リティ検査符号の復号処理を行うことができ る。また RAMのアドレス生成制御等が不要とされ、制御、構成を簡易化している。
[0018] また、チェック—変数演算手段が、変数—チェックメッセージ生成手段の出力に対 応するデータが最も小さ 、値となった時に、レジスタが記憶して ヽる第 2のクロックカウ ンタがカウントした値に対応する数値を出力するように構成されて!ヽる場合には、復 号装置全体の装置規模を縮小することができる。
[0019] また、チェック—変数演算手段が、変数—チェックメッセージ生成手段の出力に対 応するデータが最も小さ 、値となった時に、レジスタが記憶して ヽる第 2のクロックカウ ンタがカウントした値と、変数 チェックメッセージ生成手段のレジスタに割り当てられ た数値との組を出力するのように構成されている場合には、高精度なチェック一変数 メッセージを生成することができる。
図面の簡単な説明
[0020] [図 1]本発明による復号装置の第 1の実施の形態の一構成例を示すブロック図である
[図 2]変数 チェックメッセージ生成部の一構成例を示すブロック図である。
[図 3]変数 チェックレジスタブロックの一構成例を示すブロック図である。
[図 4]変数—チェック演算器ブロックの一構成例を示すブロック図である。
[図 5]チェック一変数メッセージ生成部の一構成例を示すブロック図である。
[図 6]チェック一変数レジスタブロックの一構成例を示すブロック図である。 [図 7]チェック—変数演算器ブロックの一構成例を示すブロック図である。
圆 8]復号装置全体の動作を示す説明図である。
[図 9]RAMを用いた低密度パリティ検査符号の復号装置の一構成例を示すブロック 図である。
[図 10]簡単ィ匕した変数 チェック演算器ブロックの一構成例を示すブロック図である
[図 11]簡単ィ匕したチェック一変数演算器ブロックの一構成例を示すブロック図である 圆 12]本発明の復号装置を使用したデータ通信 (蓄積)装置の一構成例を示すプロ ック図である。
符号の説明
変数ーテエックメッセ、ージ生成部
12 チェック一変数メッセ、ージ生成部
13 正規化演算部
21 変数 チェックレジスタブロック
22、 52 カウンタブロック
23、 41、 101 加算器
31、 61 レジスタ
32 変数 チェック演算器ブロック
33、 63 結線スィッチ
34、 64 出力スィッチ
42、 102 正負反転装置
43、 73、 74、 113 セレクタ
44、 71、 72、 111、 112 比較器
45、 75、 103、 114 XORゲート
51 チェック一変数レジスタブロック
62 チェック 変数演算器ブロック
81 変数ノード処理装置 82 アドレス生成制御装置
83 チ ックノード処理装置
84 メッセージメモリブロック
121 データ送信装置
122 符号化装置
123、 127 同期制御 'データ変換装置
124 変調器
125 データ受信装置
126 復調器
128 復号装置
発明を実施するための最良の形態
[0022] 実施の形態 1.
本発明の復号装置の第 1の実施の形態について、図面を参照して説明する。図 1 は、本発明による復号装置の第 1の実施の形態の一構成例を示すブロック図である。
[0023] 本発明による復号装置は、変数 チェックメッセージ生成部(変数 チェックメッセ ージ生成手段) 11、チェック一変数メッセージ生成部(チェック一変数メッセージ生成 手段) 12、および正規化演算部 (正規化演算手段) 13を含む。
[0024] 変数—チェックメッセージ生成部 11には、復号装置が接続されている通信回線か ら、受信データ系列が入力される。一般に、受信データには雑音などによる誤りが生 じているため、復号装置は、送信ビット列を推定し、推定した送信ビット列である推定 送信ビット列を出力する。
[0025] 擬似巡回型低密度パリティ検査符号は検査行列の形によって特徴づけられる。擬 似巡回型低密度パリティ検査符号の検査行列は、(式 1)に示すように a X a巡回行列 を成分とする m X nブロック行列となる(a, m, nは正の整数を表している)。
[0026] [数 1]
Figure imgf000011_0001
[0027] ここで(式 1)の Hi, jは次の(式 2)に記した a X a巡回行列を表して!/、る。(iは 0から m
— 1の間の整数を表し、 jは 0力 n— 1の間の整数を表して!/、る)。
[0028] [数 2]
Figure imgf000011_0002
[0029] 巡回行列は、(式 2)に示したように、第 2行目の行ベクトルが第 1行目の行ベクトル を 1ビット左に巡回したものである。以下、第 k行目の列ベクトルは(kは 2から nの間の 整数を表している)、第 1行目の行ベクトルを k— 1ビット左に巡回したものである。
[0030] 以下、検査行列が (式 1)の行列となる擬似巡回型の低密度パリティ検査符号の復 号装置について説明する。
[0031] 変数 チェックメッセージ生成部 11には、通信回線から入力される受信データ系 列、および正規化演算部 13を介してチェック 変数メッセージ生成部 12の出力が入 力される。チェック一変数メッセージ生成部 12の出力は、検査行列の行ブロック数 m と同数の種類に分類されたデータ系列力もなる。なお、チェック一変数メッセージ生 成部 12の出力については後述する。
[0032] 図 2は、変数—チェックメッセージ生成部 11の一構成例を示すブロック図である。変 数 チェックメッセージ生成部 11は、検査行列の列ブロックの総数 nと同数の変数 チェックレジスタブロック 21と、カロ算器 23と、変数一チェックレジスタブロック 21が含 むレジスタ 31のクロックに同期したカウンタであるカウンタブロック(第 1のクロックカウ ンタ) 22を含む。
[0033] 各変数 チェックレジスタブロック 21へは、正規化演算部 13を介して、後述するチ エック一変数メッセージ生成部 12の出力が入力される。そして、各変数一チェックレ ジスタブロック 21の出力は、その変数一チェックレジスタブロック 21に対応する検査 行列の列ブロックに相当する、各受信データ列の一部分に加算器 23で加算され、そ の加算結果が変数 チェックメッセージ生成部 11の出力になる。変数 チェックレジ スタブロック 21は、検査行列の列ブロックの総数 nと同数あり、変数 チェックメッセ一 ジ生成部 11の出力は、各変数 チェックレジスタブロック 21の出力に対応した n個の 系統からなる。
[0034] 図 3は、変数—チェックレジスタブロック 21の一構成例を示すブロック図である。変 数—チェックレジスタブロック 21は、検査行列を構成する巡回行列のサイズと同数の a個のレジスタ 31と、レジスタ 31間に配置された変数—チェック演算器ブロック(変数 —チェック演算手段) 32と、結線スィッチ 33と、出力スィッチ 34とを含む。なお、巡回 行列のサイズとは巡回行列の行数または列数をいう。ここで、巡回行列は正方行列 なので行数と列数とは同じである。
[0035] 各レジスタ 31は、各変数—チェック演算器ブロック 32を介して直列に接続されてい る。そして、最後段のレジスタ 31に出力スィッチ 34が接続されている。出力スィッチ 3 4は、最後段のレジスタ 31の出力を、最前段のレジスタ 31の入力にフィードバックし、 所定の回数フィードバックすると加算器 23に出力するように切り替える。
[0036] なお、レジスタの出力が後段のレジスタに入力されるように直列に接続され、最後段 のレジスタの出力を最前段のレジスタの入力にフィードバックするように接続されて!ヽ るブロックを、フィードバックシフトレジスタと 、う。
[0037] 変数 チェックレジスタブロック 21には、検査行列の行ブロック数と同数の m系統の データ列が入力され、すべてのデータが入力されると、出力スィッチ 34が切り替わり 、 a個のレジスタ 31が保存しているデータの一部を順次出力する。
[0038] 結線スィッチ 33は、変数 チェックレジスタブロック 21への入力を変数 チェック演 算器ブロック 32に入力する力否かを、検査行列によって予め定められた m個のそれ ぞれ力 ビットからなるビット列 h h · · · , h (i)によって定める(iは 0から m— 1
0 1 a- 1
の間の整数を表している)。すなわち、結線スィッチ 33は、変数一チェックレジスタブ ロック 21の入力端(図示せず)と、各変数 チェック演算器ブロック 32との間を結線 するか否かによって、変数 チェックレジスタブロック 21への入力を変数 チェック演 算器ブロック 32に入力する力否かを定める。
[0039] 具体的には、例えば、 h (i)が 1であった時は、図 3において、 h (i)と記された部分を
k k
結線し、 0であった時は h (i)と記された部分を結線しない (kは、 0から a— 1の間の整
k
数を表している)。変数一チェックレジスタブロック 21は、結線数と同じ数の変数ーチ エック演算器ブロック 32を含む。この m個の aビットのビット列 h (i)、 h ω、 · · ·、 h (i) (
0 1 a- 1 i=0, 1, · · · , m—l)の選択方法については後述する。
[0040] 図 4は、変数—チェック演算器ブロック 32の一構成例を示すブロック図である。変数 チェック演算器は、加算器 41、比較器 44、セレクタ 43、正負反転装置 42、および XORゲート 45を含む。変数 チェック演算器ブロック 32の動作については後述する
[0041] 図 5は、チェック—変数メッセージ生成部 12の一構成例を示すブロック図である。チ エック一変数メッセージ生成部 12は、検査行列の行ブロックの総数 mと同数のチエツ ク 変数レジスタブロック 51と、チェック 変数レジスタブロック 51が含むレジスタ 61 のクロックに同期したカウンタであるカウンタブロック(第 2のクロックカウンタ) 52を含 む。
[0042] 各チェック一変数レジスタブロック 51の入力は、変数 チェックメッセージ生成部 1 1の出力である。すなわち、変数—チェックメッセージ生成部 11の各チェック—変数 レジスタブロック 21の出力は、加算器 23を介してチェック―変数メッセージ生成部 11 に入力される。
[0043] チェック一変数レジスタブロック 51は、検査行列の行ブロック数 mと同数あり、チエツ ク 変数メッセージ生成部 11の出力は、各チェック 変数レジスタブロック 51の出力 に対応した m個の系統カゝらなる。
[0044] 図 6は、チェック—変数レジスタブロック 51の一構成例を示すブロック図である。チ エック 変数レジスタブロック 51は、検査行列を構成する巡回行列のサイズと同数の a個のレジスタ 61と、レジスタ 61間に設置されたチェック一変数演算器ブロック (チェ ック—変数演算手段) 62と、結線スィッチ 63と、出力スィッチ 64とを含む。
[0045] 各レジスタ 61は、各チェック—変数演算器ブロック 62を介して直列に接続されてい る。そして、最後段のレジスタ 61に出力スィッチ 64が接続されている。出力スィッチ 6 4は、最後段のレジスタ 61の出力を、最前段のレジスタ 61の入力にフィードバックし、 所定の回数フィードバックすると、正規化演算部 13に出力するように切り替える。
[0046] チェック一変数レジスタブロック 51には、検査行列の行ブロック数と同数の m系統の データ列が入力され、すべてのデータが入力されると、出力スィッチ 64が切り替わり 、 a個のレジスタ 61が保存しているデータを順次出力する。
[0047] 結線スィッチ 63は、チェック一変数レジスタブロック 51への入力をチェック一変数演 算器ブロック 62に入力する力否かを、検査行列によって予め定められた、 n個の各々 力 ビットからなるビット列 g g (j) , · · · , g α)によって定める (jは 0から η— 1の間
0 1 a- 1
の整数を表している)。すなわち、結線スィッチ 63は、チェック一変数レジスタブロック 51の入力端(図示せず)と、各チェック一変数演算器ブロック 62との間を結線するか 否かによって、チェック 変数レジスタブロック 51への入力をチェック 変数演算器 ブロック 62に入力するか否かを定める。
[0048] 具体的には、例えば、 g ϋ)が 1であった時は、図 6において、 g ϋ)と記された部分を
k k
結線し、 0であった時は g G)と記された部分を結線しない (kは、 0から a— 1間の整数
k
を表している)。チェック—変数演算器ブロック 62は、結線数と同じ数のチェック—変 数演算器を含む。この n個の aビットのビット列 g g α) , · · · , g a) (j = 0, 1, · · · ,
0 1 a- 1
n- 1)の選択方法につ!、ては後述する。
[0049] 図 7は、チェック一変数演算器ブロック 62の一構成例を示すブロック図である。チェ ック—変数演算器ブロック 62は、比較器 71および 72と、セレクタ 73および 74と、 XO Rゲート 75とを含む。チェック一変数演算器ブロック 62の動作については後述する。
[0050] 本発明の復号装置は、変数—チェックメッセージ生成部 11の出力をチェック一変 数メッセージ生成部 12に入力し、チェック 変数メッセージ生成部 12の出力を変数 —チェックメッセージ生成部 11に入力する。以下、この処理を所定の回数繰り返した 後、変数 チェックメッセージ生成部 11の出力を硬判定して得られるビット系列を、 推定送信ビット列として復号装置の出力とする。一回の繰り返し処理には 2 X aクロッ クを要し (aは検査行列を構成する巡回行列のサイズ)、 2XaX繰り返し回数分のクロ ックで復号処理を終える。
[0051] 前述した変数 チェックレジスタブロック 21の結線を定める m個の aビット列の選択 について説明する。
[0052] 前述したように、変数 チェックレジスタブロック 21は、検査行列の列ブロックの総 数 nと同数あり、その各々は検査行列の列ブロックに対応している。 (式 1)および (式 2)に示すように、第 j列ブロック (jは 0から n—1の間の整数を表している)は m個の aX a巡回行列 H , H , ···, H 力 なり、これらの巡回行列の各行ベクトルは、(f
0, ] 1, ] m-1, ]
(0, j) f (0,j) ··· f (0,j)、 (f (1, j) f (l,j) ··· f (1, j)\ ··· (f (m-1, j) f (m-1, j)
0 , 1 , , a-1 , 0 , 1 , , a-1 , , 0 , 1
, ···, f (m_1'j))を巡回シフトしたものに一致する。変数一チェックレジスタブロック a— 1
21の結線を定める m個の aビット列 h (i), h (i), ···, h (i)(i=0, 1, ···, m— 1)は
0 1 a-1
、上記の行ベクトルを用いて、次の(式 3)によって決定される。
[0053] [数 3]
Figure imgf000015_0001
0J,--,a-1; i = 0,U— ,m-1; --(3)
[0054] 以上のように、 n個の変数 チェックレジスタブロック 21における結線は、それが対 応する検査行列の列ブロックに依存している。以下ではこれらを区別し、検査行列の 第 j列ブロック (jは 0から n—1の間の整数を表している)に対応する結線を h と記
k
す。
[0055] 次に、各変数 チェックレジスタブロック 21において、レジスタ 31に保存、更新され る情報 (データ)について説明する。レジスタ 31に保存、更新される情報は、メッセ一 ジ部分、およびその他の 1ビットによって構成される。メッセージ部分は、変数—チェ ックメッセージ (VCメッセージ)に相当するデータであり、その他の 1ビット部分は、前 回の繰り返し処理において変数 チェック演算器ブロック 32が計算したメッセージ部 分のデータの正負を表す。これらのデータの詳細については後述する。
[0056] 前述したチェック一変数レジスタブロック 51の結線を定める n個の aビット列の選択 について説明する。前述したように、チェック—変数レジスタブロック 51は、検査行列 の行ブロックの総数 mと同数あり、それらはそれぞれ検査行列の行ブロックに対応し ている。
[0057] (式 1)および (式 2)に示すように、第 i行ブロック (iは 0から m— 1の間の整数を表し ている)は n個の a X a巡回行列 H , H , ···, H _ 力 なり、これらの巡回行列 の各行べ外ルは (f (i'0), f (i'0),…, f (i'0)), (f (い), f ("), ···, f (い)), ...
0 1 a-1 0 1 a-1
, (f α,η-υ, f (i.n-D) f -")を巡回シフトしたものに一致する。
0 1 a-1
[0058] 前述したチェック一変数レジスタブロック 51の結線を定める n個の aビット列 g G), g (j
O 1
) , ···, g (i)(j = 0, 1, ···, n— 1)は、上記の行ベクトルを用いて、次の(式 4)によ a— 1
つて決定される。
[0059] 画
^ " 。 , k二 0,1,…,。一 1; j=〇,い-, n— 1; -(4)
[0060] 以上のように、 n個のチェック一変数レジスタブロック 51における結線は、それが対 応する検査行列の行ブロックに依存している。以下ではこれらを区別し、検査行列の 第 i列ブロック (iは 0から m—1の間の整数を表している)に対応する結線を g と記 k す。
[0061] 次に、各チェック一変数レジスタブロック 51において、レジスタ 61に保存、更新され る情報 (データ)について説明する。レジスタ 61に保存、更新される情報はメッセージ 部分、クロックカウンタの値、およびその他の 1ビットによって構成される。メッセージ部 分は、チェック一変数メッセージ (CVメッセージ)に相当するデータである。 [0062] また、その他の 1ビット部分は変数—チェックメッセージ生成部 11によって算出され 、チェック 変数メッセージ生成部 12に入力されたメッセージの硬判定結果( 1ビット で量子化したもの)に対するシンドロームであり、これらの値がすべて 0であった場合 、変数 チェックメッセージ生成部 11で算出されたメッセージの硬判定結果は符号 語となり、復号装置が出力する推定送信ビット列になる。これらのデータの詳細につ いては後述する。
[0063] 次に、本発明の第 1の実施の形態の動作について説明する。まず、変数—チェック メッセージ生成部 11の入力および出力と、チェック 変数メッセージ生成部 12の入 力および出力とについて説明する。チェック一変数メッセージ生成部 12の出力デー タは、正規化演算部 13を介して、変数—チェックメッセージ生成部 11に入力される。
[0064] このチェック一変数メッセージ生成部 12の出力データは 4つの種類に大別され、こ れらをそれぞれ、 L (s)、 L ω、 P (s, t)、および (s, t)と記す。ここで、 sは 0から t, 1 t, 2 2
m—1の間の整数を表し、 tは 0から a— 1の間の整数を表している。 L (S)、L (s)は、 t, 1 t, 2 チェック一変数メッセージに相当するデータである。 P (s, t)は、チェック一変数メッ
2
セージ生成部 12の入力データ(変数 チェックメッセージ生成部 11の出力データ) の硬判定結果 (例えば、最上位ビット)と、(式 1)の検査行列との積を示す 1ビットのデ ータである。
[0065] μ (s, t)は、計算の精度に応じて使い分ける。具体的には、最も高い計算精度を要 求する場合には、 μ (s, t)は 2つの整数の組を表すデータとし、それよりも粗い計算 精度で十分な場合には、 μ (s, t)は 1つの整数を表すデータとする。さらに粗い計算 精度で十分な場合には、 μ (s, t)のデータを使用しない。計算精度が粗くなるに従つ て、 μ (s, t)のデータ量が少なくなるため、装置規模は小さくなるという関係にある。
[0066] 以下、; z (s, t)が 2つの整数の組を表す、最も精度が高!、場合にっ 、て説明する。
μ (s, t)については後述する。
[0067] 正規ィ匕演算部 13には、チェック—変数メッセージ生成部 12の出力データ L (s)、 L t, 1
(s\ P (s, t)、および (s, t)が入力される。正規ィ匕演算部 13は、 P (s, t)および t, 2 2 2
μ (s, t)については、入力と全く同じデータをそのまま出力し、 L ωおよび L (s)に t, 1 t, 2 ついては、予め定められた定数 αを乗じた a L ω、および a L )を出力する。
t, 1 t, 2 [0068] 従って、実際には図 1に示すように、チェック一変数メッセージ生成部 12の出力デ ータ L (s)、 L (s)、 P (s, t)、および (s, t)は、そのまま変数 チェックメッセージ t, 1 t, 2 2
生成装置に入力されるのではなぐ正規ィ匕演算部 13を介して、 ひ L (s\ a L (s)、 t, 1 t, 2
P (s, t)、および (s, t)が変数一チェックメッセージ生成部 1 1に入力されることに
2
なる。
[0069] なお、以下の説明にお 、ては、記号の乱用を防ぐため、この記述(定数 aを乗じた 記述)を省略し、変数—チェックメッセージ生成部 11に入力されるデータを、チェック 一変数メッセージ生成部 12の出力データの記法である L (S)、L (s)、P (s, t)、お t, 1 t, 2 2 よび (s, t)で表記する。
[0070] 変数 チェックメッセージ生成部 11の入力データは、チェック一変数メッセージ生 成部 12の出力と、通信路の出力 F (iは 0から na— 1の間の整数を表している)とであ る。
[0071] チェック一変数メッセージ生成部 12は、前述のように、検査行列(式 1)の行ブロック の総数 mと同数のチェック一変数レジスタブロック 51を含み、第 s番目のチェック一変 数レジスタブロック 51の時刻 tにおける出力は、 L (s)、 L (s)、 P (s, t)、および (s t, 1 t, 2 2
, t)になる(sは 0から m—lの間の整数を表し、 tは 0から a— 1の間の整数を表してい る)。これらは、出力時にチェック一変数レジスタブロック 51において、各レジスタ 61 が保存して 、るデータである。
[0072] 変数—チェックメッセージ生成部 11の出力は、チェック—変数メッセージ生成部 12 の入力データになる。この入力データを Z (1)と記す。ここで 1は 0から n— 1の間の整数 を表し、 rは 0から a— 1の間の整数を表している。変数—チェックメッセージ生成部 11 は、前述のように、検査行列(式 1)の列ブロックの総数 nと同数の変数 チェックレジ スタブロック 21を含み、第 1番目の変数一チェックレジスタブロック 21における r番目の 出力が Z (1)となり(1は 0から n— 1の間の整数を表し、 rは 0から a— 1の間の整数を表し ている)、 Z (1)および後述する 1ビットの情報 P が、出力時に変数—チェックレジス タブロック 21にお!/、て各レジスタ 31が保存して!/、るデータである。
[0073] 変数—チェックメッセージ生成部 11の動作について説明する。変数—チェックメッ セージ生成部 11には、前述のように、 L (s)、 L ω、 P (s, t)、 μ (s, t)、および通 信路の出力 F (iは 0から na— 1の間の整数を表し、 sは 0から m— 1の間の整数表し、 t は 0から a— 1の間の整数を表している)が入力される。そして、変数—チェックメッセ ージ生成部 11は、次の(式 5)を用いて、 Z (1)を算出する (1は 0から n— 1の間の整数 を表し、 rは 0から a— 1の間の整数を表している)。
[0074] [数 5]
,(0
Zr
Figure imgf000019_0001
[0075] なお、(式 5)において、第 1項が、対数尤度比を示し、第 2項が事前値を示している 。ここで、各 P は 1ビットのデータであり、変数—チェックメッセージ生成部 11にお ける変数—チェックレジスタブロック 21の各レジスタ 31が予め保存している。変数— チェックメッセージ生成部 11は、(式 5)を用いて変数—チェックメッセージデータ Ζ (1) を算出する(1は 0から η—1の間の整数を表し、 rは 0から a— 1の間の整数を表してい る)とともに、算出した^ (1)を用いて、 P ("を、次の(式 6)によって更新する。
[0076] [数 6]
Figure imgf000019_0002
[0077] すなわち、 P (l r) i Z (1)の最上位ビットに相当する 1ビットのデータであり、このデ 一タの列 (ビット列)が、推定送信ビット列として、復号装置から出力される。
[0078] 変数—チェックレジスタブロック 21の動作について説明する。変数—チェックメッセ ージ生成部 11は、検査行列(式 1)の列ブロックの総数 nと同数の変数 チヱックレジ スタブロック 21を有し、各変数—チェックレジスタブロック 21は、検査行列を構成する 巡回行列のサイズと同数の a個のレジスタ 31を有する。
[0079] ここで、第 1番目の変数 チェックレジスタブロック 21における第 r番目のレジスタ 31 に保存されて 、るメッセージデータの初期状態(時刻 0における値)を Z (1) (a)と記し、 時刻 a— jにおけるメッセージデータを Z (1) (j)と記すことにする(1は 0から n— 1の間の 整数を表し、 rは 0から a— 1の間の整数を表し、 jは 0力も a— 1の間の整数を表してい る)。初期状態を、 Z (1) (a) =0とすると、時刻 a-jにおけるメッセージデータは、時刻 a j— 1におけるメッセージデータから、次の(式 7)によって計算される。
[0080] [数 7]
(j)-Zrl(j + 1)+ (― ' (し ' 」) hr (i
i=0
( r-j)+ (i.j)
— 一 1 )P, (し r+1)j+,®P2(U) ") I 0),
'2 ——(7)
Figure imgf000020_0001
[0081] ここで、(式 7)の記号 P ("は、初期状態 (時刻 0における値)を P (1'r) =P ("とし
1 ] 1 1
、時刻 a-jにおいて、次の(式 8)によって更新される。
[0082] [数 8]
Ρ ί, Γ^-Ρ^ί, Γ )^ -―- (8)
[0083] 変数—チェックメッセージ生成部 11の、第 1番目の変数—チェックレジスタブロック 2 1において、時刻 a-jに第 r番目のレジスタ 31に保存されているデータは、 Z (1) (j)と P (1' r)とであり、これらを各時刻毎に (式 7)と (式 8)によって更新する処理を行う装置が
1 ]
、図 4に示した変数―チェック演算器ブロック 32である。
[0084] 変数—チェック演算器ブロック 32について説明する。変数—チェック演算器ブロッ ク 32には、 cnt、 、 L、 L、 P、 P 、および Z が入力される。具体的には、比較
1 2 2 1-in in
器 44には、 cntと とが入力される。セレクタ 43には、 L、 L、および比較器 44の出 力が入力される。 XORゲート 45には、 P、および P が入力される。正負反転装置
2 1 -in
42には、セレクタ 43の出力と、 XORゲート 45の出力とが入力される。加算器 41には 、正負反転装置 42の出力と、 Z とが入力される。
m
[0085] 従って、比較器 44に入力されたクロックカウンタの値である cntと、レジスタ 31に割り 当てられた 0から n— 1の間の整数との比較結果に応じて、セレクタ 43が選択した L または Lを、加算器 41が、 Z に加算する。
2 in
[0086] すなわち、クロックカウンタの値と、レジスタ 31に割り当てられた 0から n—1の間の整 数とに応じて、 Z に加算される値が選択される。
m
[0087] そして、 、 L、 L、および Pは、それぞれ(式 7)の (i, j)、 L ω、 L (s)、および
1 2 2 j, 1 j, 2
P (i, j)に対応し、 cntは、変数一チェックレジスタブロック 21毎に予め定められた 0
2
から n— 1の間の整数 1とクロックとに同期したカウンタの値に対応する 0から a— 1の間 の整数の組を表している。また、変数—チェック演算器ブロック 32は、入力 Z および in
P に対し、次の(式 9)、(式 10)に示す Z および P を出力する。
1—in 1— out 1― out
[0088] [数 9]
■1—- iinn + (— ι)ρ,—具 I cnt /の時
- (9 )
1一 out
ー in + し 2 cnt二/の時
[0089] [数 10]
Pト out— 1 1— in ( 〇)
[0090] そして、出力された Z および P は、レジスタ 31を介して次の段の変数一チェ
1― out 1― out
ック演算器ブロック 32に、 Z および P としてそれぞれ入力される。
m 1— m
[0091] この変数 チェック演算器ブロック 32を、第 1番目の変数 チェックレジスタブロック 21における第 r番目のレジスタ 31と第 r+ 1番目のレジスタ 31との間に、 {h , h , h (2,1), · · · , 1"-11 に含まれる 1の数と同じ数だけ設置することで (1は 0から n— 1 の間の整数を表し、 rは 0から a— 1の間の整数を表している)、(式 7)に示した演算処 理を実現することができる。
[0092] (式 7)と (式 8)との計算によって、時刻 aにおいて第 1番目の変数 チェックレジスタ ブロック 21における第 r番目のレジスタ 31に保存されているメッセージデータ Z (1) (0) と通信路出力 F との算術和が、次の(式 11)に示すように、(式 5)における Z (1)と一 la+r r 致する。
[0093] [数 11]
Z;° =Fla+r + Z;i) (0 ) -- 01)
[0094] すべての入力データを入力し終えた時点(時刻 a)で、変数 チェックメッセージ生 成部 11の、第 1番目の変数—チェックレジスタブロック 21における、第 r番目のレジス タ 31に保存されているデータは、 Z (1) (0)と P (1' r)とである。そして、その後、 Z (1) (0)
r 1 0 r は、(式 11)を用いて加算され、チェック一変数メッセージ生成部 12に、各変数ーチ エックレジスタブロック 21の第 0番目のレジスタ 31に保存されたデータが出力される。
[0095] 変数一チェックレジスタブロック 21は、出力と同時に、第 j + 1番目のレジスタ 31に 保存されたデータを、第 j番目のレジスタ 31へシフトして (jは 0から a— 2の間の整数を 表している)、第 0番目のレジスタ 31を通して順次出力する。そして、変数—チェック レジスタブロック 21は、第 a— 1番目のレジスタ 31のメッセージ部分を初期化し、他の 1ビットのデータ部分には、出力したメッセージデータ Z (1)から (式 6)によって導かれ た 1ビットデータを入力することで、すべての出力が完了した時点で各レジスタ 31は 初期化される。
[0096] このように、変数 チェックメッセージ生成処理には、入力とそれに伴う処理に aクロ ック、出力に aクロックをそれぞれ要し、これらの動作を、それぞれ変数—チェックメッ セージ生成部 11の入力処理モード、変数 チェックメッセージ生成部 11の出力モー ドという。
[0097] 以上の処理により、図 2、図 3、図 4に示した各構成部によって、変数 チェックメッ セージ Z (1)は、 RAMを使用することなぐレジスタ 31とレジスタ 31間に設置された主 に加算器 41からなる変数—チェック演算器ブロック 32によって算出される。 [0098] 次に、チェック—変数メッセージ生成部 12の動作について説明する。チェック—変 数メッセージ生成部 12の出力は、正規化演算部 13を介して変数 チェックメッセ一
(s)
ジ生成部 11に入力される。前述したように、これらのデータを L (S)
1 、L
t, 2 、P (s, t 2
)、および (s, t)と記す(sは 0から m— 1の間の整数を表し、 tは 0から a— 1の間の整 数を表している)。
[0099] チェック一変数メッセージ生成部 12は、前述したように、検査行列(式 1)の列ブロッ クの総数 mと同数のチェック—変数レジスタブロック 51を有し、第 s番目の変数—チヱ ックレジスタブロック 51における a— 1—t番目の出力力 L (s)、 L (s)、 P (s, t)、お t, 1 t, 2 2 よび (s, t)となる(sは 0から m— 1の間の整数を表し、 tは 0から a— 1の間の整数を 表している)。そして、これらが、出力時にチェック一変数レジスタブロック 12において 、各レジスタ 61に保存されているデータになる。
[0100] チェック一変数メッセージ生成部 12は、前述したように、変数 チェックメッセージ 生成部 11の出力 Z (1)が入力され (1は 0から n— 1の間の整数を表し、 rは 0から a— 1の
(s)
間の整数を表している)、次の(式 12)および(式 13)によって L および L (s)を算
1 t, 2 出する。
[0101] [数 12]
I (S) (s)
(12)
[0102] [数 13]
I (s) (s) I (s)
(13)
Lt, 2 L t,l
(s)
[0103] で、 W ωは次の (式 14)に示す集合を表す。すなわち、 L wは (式 14)の集合
(s) (s)
W (s)の要素の中で値が最小のものとなり、 L は集合 W の要素の中で、値が 2 t t, 2 t
番目に/ J、さいものとなる。
[0104] [数 14] W 二 {| Z | : ft( =1,0≤:ί <η,0≤Κα}…- (14)
[0105] なお、 I Ζ ω I は Ζ ωの絶対値を表す。また、 P (s, t)を次の (式 15)によって算出 j j 2
する。
[0106] [数 15]
P2(s, t )
Figure imgf000024_0001
f 」) p u ) -… - (
j=O i=o
[0107] ここで、(式 15)の各 P は、前述した (式 6)で示したように、 Z (i)の正負を表す 1ビ
1 j
ットのデータである。このように、変数—チェックメッセージ生成部 11の出力 z α)はチ エック 変数メッセージ生成部 12に入力されるが、チェック 変数メッセージ生成部 12の内部では、 Ζ α)の正負を表す 1ビット (最上位ビット)と、それ以外の絶対値を表 すデータとに分割された形で処理される。
[0108] また、 μ (s, t)は、(式 14)の集合 W (s)の要素の中で、その値が最小のものが I Z t
α) Iである時 (すなわち、 L (s) = I z U) Iである時)、次の(式 16)を満たす。
[0109] [数 16]
S,t )二(え, ) —06)
[0110] チェック—変数レジスタブロック 51の動作について説明する。チェック—変数メッセ ージ生成部 12は、(式 1)に示した検査行列の行ブロックの総数 mと同数のチェック 変数レジスタブロック 51を有し、各チェック—変数レジスタブロック 51は、検査行列を 構成する巡回行列のサイズと同数の a個のレジスタ 61を有する。
[0111] ここで、第 s番目のチェック一変数レジスタブロック 51における第 t番目のレジスタ 61 に保存されているメッセージデータ部分の初期状態(時刻 0における値)を、 L (s) (0 ) , L (s) (0)と記し、 1ビットの情報 P (s, t)に相当するデータの初期状態を P (s, t) と記し、各データの時刻 jにおけるデータを、それぞれ L (s) (j)、 L (s) (j)、 P (s, t)
0 t, 1 t, 2 2 と記す(sは 0から m— 1の間の整数を表し、 tは 0から a— 1の間の整数を表し、 jは 1か ら aの間の整数を表して!/、る)。
[0112] 初期状態として、 L (s) (0)tL (s)(0)とをレジスタ 61が表現できる最大の数とし、 t, 1 t, 2
P (s, t) =0とすると、時刻 jにおける各データは、時刻 j—1における各データから、
2 0
次の(式 17)、(式 18)および (式 19)によって計算される。
[0113] [数 17]
Figure imgf000025_0001
[0114] [数 18] : 2(」) inW
Figure imgf000025_0002
」)}— )
[0115] [数 19]
Figure imgf000025_0003
i=0
[0116] ここで、(式 17)および (式 18)の W (s)(j— l)は、次の(式 20)に示した集合を表 している。
[0117] [数 20]
W
Figure imgf000025_0004
{|Z; : g(t s'二 l,0≤K:n
u(Ls t)— j— D'Li .j— 1)}… 。)
[0118] すなわち、(式 17)の Lt ^ (j)は W (s)(j— 1)の要素の中で値が最小のものであり 、(式 18)の L (s) (j)は W (s) (j— 1)の要素の中で、値が 2番目に小さいものである t, 2 t- 1
。すなわち、 W (s) (j— l)の要素の中で、値が最小のものと、値が 2番目に小さいも のとが選択され、次の段のレジスタ 61に保存される。
[0119] (式 16)の (s, t)についても、同様に、時刻 0における初期状態を (s, t) 0とす ると、時刻 jにおけるデータ (s, t)は、次の(式 21)によって算出される。
[0120] [数 21]
I (S )
Lt, 1 : | Z Iぐ , 」ー1 )の時 (s,t ) Cs)
( s , t j-i じ:, 1 ,(j— の時
(21)
[0121] チェック一変数メッセージ生成部 12の、第 s番目のチェック一変数レジスタブロック 5 1において、時刻 jに第 t番目のレジスタ 61に保存されているデータは L (s) (j)、 L (
t, 1 t, 2 s) (j)、 P (s, t)、および (s, t)であり、これらを各時刻毎に (式 17)、(式 18)、(式 1
2 j j
9)および (式 21)によって更新する処理を行うブロックがチェック一変数演算器ブロッ ク 62である。
[0122] チェック—変数演算器ブロック 62について説明する。チェック—変数演算器ブロッ ク 62には、 Z、 cnt、 P 、 、 L 、および L が入力される。
2— in m 1— in 2— in
[0123] 具体的には、 XORゲート 75には、 P と Zの正負を示す情報 (Zの最上位ビット)と
2— in
が入力される。比較器 71には、 L と Zの絶対値 (Zの最上位以外のビット)とが入力
2— in
される。比較器 72には、 L と Zの絶対値とが入力される。セレクタ 73には、 Zの絶
1— m
対値、 L 、L 、および比較器 71の出力が入力され、比較器 71の出力結果に応
1—in 2— m
じて出力を切り替える。セレクタ 74には、 cnt、 μ 、および比較器 72の出力が入力さ
m
れ、比較器 72の出力結果に応じて出力を切り替える。
[0124] なお、図 7では、 Zを最上位ビット (Zの正負を示す情報)と、最上位以外のビット (Z の絶対値)とに分割することを白の菱形で示し、 Zの最上位ビットを XORゲート 75〖こ 入力し、 Zの最上位以外のビットを比較器 71、 72、セレクタ 73に入力している。
[0125] そして、 Zは、(式 20)の Z (i)に対応し、 cntは、 0から n— 1の間の整数と、クロック
j- i
に同期したカウンタ値に対応する 0から a— 1の間の整数との組を表している。チェック 一変数演算器ブロック 62は、入力 L 、 L 、P および に対し、次の(式 22)
1—in : 2— in
、(式 23)、(式 24)および(式 25)に示す L 、L 、P および を出力す
t 2— out 2— out out
る。
[0126] [数 22]
し1— out―
Figure imgf000027_0001
[0127] [数 23]
Figure imgf000027_0002
inの時
し 2— out I Z I し1 - in ≤| Z |く L2inの時 (23) し 2— in "~.2-—, inく I Z Iの時
[0128] [数 24]
Ρ2_ίη Θ 1 | Ζ |〉0の時
P 2— out (24)
し Ρ2_ίη ζ≤οの時
[0129] [数 25] の時 (25)
Figure imgf000027_0003
時 すなわち、チェック—変数演算器ブロック 62は、(式 24)で示したように、これまでに 算出した Zのうち、最も小さい値を L として、レジスタ 61を介して次の段のチェック
1— out
—変数演算器ブロック 62に出力する。そして、次の段のチェック—変数演算器ブロッ ク 62は、(式 25)で示したように、 L として入力された前の段の L の値が、最も
1— in 1— out
小さくなつたときに、 outとして、 cntである 0から n— 1の間の整数と、クロックに同期 したカウンタ値に対応する 0から a— 1の間の整数との組を出力する。
[0131] チェック一変数演算器ブロック 62を、第 s番目のチェック一変数レジスタブロック 51 における第 t番目のレジスタ 61と第 t+1番目のレジスタ 61との間に、 {g (s,0), g g t(s, , ... 11- "}に含まれる iの数と同じ数だけ設置することで (sは oから m— iの 間の整数を表し、 tは 0から a— 1の間の整数を表している)、(式 17)、(式 18)、(式 1 9)および (式 21)に示した演算処理を実現することができる。
[0132] (式 17)、(式 18)、(式 19)および(式 21)の計算によって、時刻 aにおいて第 s番目 のチェック一変数レジスタブロック 51における第 t番目のレジスタ 61に保存されている データ L ( (a)、 L ω (a)、 P (s, t) 、および μ (s, t) が、次の (式 26)、 (式 27)、 t, 1 t, 2 2 a a
(式 28)および(式 29)に示すように、(式 12)における L ω、(式 13)における L (s) t, 1 t, 2
、(式 15)における P (s, t)、および (式 16)における (s, t)に一致する。
2
[0133] [数 26]
L(s =L 】(α) …- -(26)
[0134] [数 27]
Lt2 = L( t s;2(a) 一… (
[0135] [数 28]
P2(S,t) = P2(S,t)Q -— (28)
[0136] [数 29] S,t) = (S,t)a --… (29) [0137] すべての入力データを入力し終えた時点(時刻 a)で、チェック一変数メッセージ生 成部 12の、第 s番目のチェック—変数レジスタブロック 51における、第 t番目のレジス タ 61に保存されているデータは、 L (s) (a)、 L (s) (a)、 P (s, t) 、および (s, t) t, 1 t, 2 2 a a であり、これらは、各チェック一変数レジスタブロック 51の第 a— 1番目のレジスタ 61か ら、変数—チェックメッセージ生成部 11に出力される。チェック—変数メッセージ生成 部 12は、出力と同時に、第 j番目のレジスタ 61に保存されたデータを、第 j + 1番目の レジスタ 61へシフトして (jは 0から a— 2の間の整数を表している)、第 a— 1番目のレ ジスタ 61を通して順次出力する。
[0138] 第 0番目のレジスタ 61を初期化することで、すべての出力が完了した時点で各レジ スタ 61は初期化される。このように、チェック一変数メッセージ生成処理には、入力と それに伴う処理に aクロック、出力に aクロックをそれぞれ要し、これらの動作をそれぞ れチェック 変数メッセージ生成部 12の入力処理モード、チェック 変数メッセージ 生成部 12の出力モードと呼ぶ。以上により、図 5、図 6、図 7に示したブロックによって 、チェック一変数メッセージ生成処理は、 RAMを使用することなぐシフトレジスタとシ フトレジスタ間に配置された主に加算器力もなるチェック一変数演算器ブロック 62に よって実現される。
[0139] なお、変数 チェックメッセージ生成部 11、チェック一変数メッセージ生成部 12、 および正規化演算部 13は、それぞれ IC (Integrated Circuit)等の半導体デバイ スによって実現される。従って、変数 チェックメッセージ生成部 11が含む各ブロック や、チェック一変数メッセージ生成部 12が含む各ブロックは、それぞれ IC等の半導 体デバイスによって実現される。
[0140] 次に、図 1に示した本発明の復号装置全体の動作について説明する。図 8は、復号 装置全体の動作を示す説明図である。
[0141] 復号装置による処理は、変数 チェックメッセージ生成部 11が出力モードであり、 チェック―変数メッセージ生成部 12が入力処理モードであるようにスタートする。
[0142] 復号処理スタート時には、変数 チェックレジスタブロック 21におけるレジスタ 31が 保存しているデータをすベて 0に初期化しておき、チェック一変数レジスタブロック 51 におけるレジスタ 61が保存して!/、るデータを初期化しておく。 [0143] スタート時から aクロック経過するまでの間、変数一チェックメッセージ生成部 11がチ エック一変数メッセージ生成部 12に出力するメッセージデータは、スタート時に変数 -チェックレジスタブロック 21におけるレジスタ 31が保存して!/、るデータをすベて 0に 初期化したことにより、受信データ F と一致する(1は 0から n— 1の間の整数を表し
la+r
、 rは 0から a— 1の間の整数を表している)。
[0144] スタート時力も aクロック経過すると、変数一チェックメッセージ生成部 11による、チェ ック 変数メッセージ生成部 12へのメッセージデータの出力は終了する。この時点で 、変数 チェックレジスタブロック 21におけるレジスタ 31には、前述のように F の正
la+r 負を表す 1ビットがセット (保存)されており、チェック一変数レジスタブロック 51におけ るレジスタ 61には、次に変数 チェックメッセージ生成部 12に出力するデータが保 存されている。
[0145] 以下、図 8に示すように、 aクロック毎に入力処理モードと、出力モードとを切り替える 。すなわち、チェック一変数メッセージ生成部 12による変数 チェックメッセージ生成 部 11へのメッセージデータの出力と、変数―チェックメッセージ生成部 11からチェッ ク 変数メッセージ生成 12へのメッセージデータの出力とが交互に行われる。
[0146] 各モードにおけるチェック 変数メッセージ生成部 12と変数 チェックメッセージ生 成部 11とは、予め設定した回数分だけ上記処理を繰り返す。そして、最後に、変数 チェックメッセージ生成部 11を出力モード、チェック 変数メッセージ生成部 12を 入力処理モードにし、変数 チェックメッセージ生成部 11は、出力のデータの正負を 表す 1ビットを、復号装置の出力として順次出力する。
[0147] なお、チェック一変数メッセージ生成部 12において処理されているデータ P (s, t)
2 は、上記復号処理の結果、受信データ中に含まれたエラーを訂正することができた か否かを判定するためのデータとして使用することができる。
[0148] 以上に述べたように、この実施の形態によれば、変数 チェックメッセージと推定送 信ビットとを、 RAMを使用することなぐ複数のレジスタ 31と、各レジスタ 31間に設置 された主に加算器力もなる変数—チェック演算器ブロック 32によって算出する処理を 行うことができる。
[0149] また、この実施の形態によれば、チェック一変数メッセージを、 RAMを使用すること なぐ複数のレジスタ 61と、各レジスタ 61間に設置された主に比較器力もなるチェック —変数演算器ブロック 62によって算出する処理を行うことができる。
[0150] そして、上記の処理を繰り返して、復号装置は、入力された受信データ系列を復号 し、推定送信ビット列を出力する。すなわち、 RAMを用いない簡単な構成の復号装 置が、 RAMのアクセス速度に制限されることなぐ高速で、入力された受信データ系 列を復号し、推定送信ビット列を出力することができる。
[0151] また、この実施の形態によれば、チェック一変数メッセージ生成部 12において処理 されているデータ P (s, t)を、受信データ中に含まれたエラーを訂正することができ
2
た力否かを判定するためのデータとして使用することができる。
[0152] なお、記憶装置としての RAMを用いた低密度パリティ検査符号の復号装置の一構 成例について、図面を参照して説明する。図 9は、 RAMを用いた低密度ノ^ティ検 查符号の復号装置の一構成例を示すブロック図である。この復号装置は、誤り訂正 の対象となる受信データを保持する記憶装置しての RAM (図示せず)と、メッセージ と呼ばれる復号処理の過程で生じるデータを保持するための記憶装置としての RA Mによって実現されるメッセージメモリブロック 84と、 RAMのアドレスを生成して制御 するアドレス生成制御装置 82と、メッセージを更新するための変数ノード処理装置 8 1と、チェックノード処理装置 83とを含む。
[0153] メッセージは変数 チェックメッセージと、チェック一変数メッセージとの 2種類に大 別される。これらのメッセージは、各々さらに細力べ分類される。検査行列 Hの行数が M、列数が Nである場合 (Mと Nとは正の整数をそれぞれ表している)、変数一チエツ クメッセージは、 Zi, jに分類され、チェック一変数メッセージは Li, jに分類される。
[0154] 添え字である iと jとはそれぞれ 0から M— 1の間の整数を表し、および 0から N— 1の 間の整数を表して!/、る。 iは検査行列の行ベクトルまたは列ベクトルの成分に対応し、 jは検査行列の列ベクトルの成分または行ベクトルの成分に対応する。変数ノード処 理装置 81は、チェック一変数メッセージおよび受信データから、変数 チェックメッセ ージを更新する処理を行う。変数ノード処理の詳細は次の(式 30)で表される。
[0155] [数 30] ニ (30)
[0156] ここで、 jは 0から N— 1の間の整数を表し、 iは 0から M— 1の間の整数を表し、 Fjは 対応する受信データを示し、 i'は iと一致しない 0から M—1の間の整数であって、対 応する検査行列の行ベクトルの jに対応する成分が 1であるものすべてにわたる。チェ ックノード処理装置 83は変数 チェックメッセージからチェック一変数メッセージを更 新する処理を行う。チェックノード処理の詳細は次の(式 31)で表される。
[0157] [数 31]
Lu = ( - 1 ) j m i n | Zu- - --… (31)
[0158] ここで、 jは 0から N— 1の間の整数を表し、 iは 0から M— 1の間の整数を表し、 Pi, j は 0または 1のいずれかを表している。また、 j 'は jと一致しない 0から N— 1の間の整 数であって、対応する検査行列の列ベクトルの iに対応する成分が 1であるものすベ てにわたる。
[0159] なお、検査行列が巡回行列のブロックからなる低密度パリティ検査符号 (擬似巡回 型低密度パリティ検査符号)の場合、検査行列の規則性を利用すれば、(式 30)にお ける加算部分と、(式 31)における最小値算出処理部分のインデックスとをパターン 化することができ、 RAMアクセスのためのアドレス生成処理が簡単化できる。
[0160] 実施の形態 2.
次に、本発明の第 2の実施の形態について説明する。まず、第 1の実施の形態の 説明で前述したチェック 変数メッセージ生成部 12が算出する 4種類のデータの内 の 1つである (s, t)の役割について説明する(sは 0から m—1の間の整数を表し、 t は 0から a— 1の間の整数を表して!/、る)。
[0161] データ (s, t)は、前述したように、 0から n— 1の間の整数、および 0から a— 1の間 の整数の 2つの整数の組からなり、(式 7)で示した変数 チェックメッセージ生成部 1 1が行う処理で、チェック一変数メッセージ生成部 12が出力した 2つのデータ L ω
t, 1
L (s)とのどちらを加算するか決定するために必要になる。
t, 2
[0162] L (s)と L (s)とは、前述したように、(式 14)における集合 W (s)の要素の中で、その
t, 1 t, 2 t
値が最も小さいものと、 2番目に小さいものとをそれぞれ表すが、ここで (式 7)で示し た変数—チェックメッセージ生成部 11での処理を、次の(式 32)に置き換えると、この 演算で計算される値は、検査行列 (式 1)および (式 2)の選択に依存するものの、(式 7)が算出する値に比較的よく近似する。
[0163] [数 32]
(, )· ノ 、P,(l,r) ©P2( ) (i ) (i)
Z( r = Fla+r+X h「や 一- (32)
j=0 i=0
[0164] すなわち、(式 14)における集合 W (s)の要素の中でその値が最も小さいものと、 2番 目に小さいものとを両方使用するのではなぐ 2番目に小さいもののみを使用すること により、チェック一変数メッセージ生成部 12において、 μ (s, t)を算出する必要がなく なる。
[0165] そのため、チェック一変数レジスタブロック 51における各レジスタ 61のビット幅の肖 IJ 減や、チヱックー変数演算器ブロック 62の構成の簡単化、および変数 チヱック演算 器ブロック 32の構成の簡単ィ匕を実現することができ、復号装置全体の装置規模を削 減し、処理を簡単ィ匕することができる。
[0166] 図 10は、簡単ィ匕した変数 チェック演算器ブロック 32の一構成例を示すブロック図 である。
[0167] 図 10に示すように、簡単ィ匕した変数—チェック演算器ブロック 32は、正負反転装置 102と、カロ算機 101と、 XORゲート 103を含む。 XORゲート 103には、 Pと P とが
2 1 -in 入力される。正負反転装置 102には、 L2と XORゲート 103の出力が入力される。加 算器 101には、 Z と正負反転装置 102の出力とが入力される。なお、図 10に示した
in
入出力データは、図 4において、同記号 (P 等)で示したデータと同様なため、説
1— m
明を省略する。 [0168] 以上のように、簡単ィ匕した変数 チェック演算器ブロック 32は、入力 μ、および を必要としないため、図 4に示した第 1の実施の形態の変数 チェック演算器 32と比 較して構成が簡単ィ匕されており、対応する変数一チェックレジスタブロック 21におけ るレジスタ 31のビット幅を削減することができる。
[0169] 図 11は、簡単ィ匕したチェック—変数演算器ブロック 62の一構成例を示すブロック図 である。
[0170] 図 11に示すように、簡単ィ匕したチェック一変数演算器ブロック 62は、セレクタ 113、 比較器 111および 112を含む。 XORゲート 114には、 Ζの正負を示す情報 (Ζの最上 位ビット)と Ρ とが入力される。比較器 111には、 Ζの絶対値 (Ζの最上位以外のビ ット)と L とが入力される。比較器 112には、 Zの絶対値と L とが入力される。セ レクタ 113には、 Zの絶対値、 L 、L 、比較器 111の出力、および比較器 112の 出力が入力される。
[0171] なお、図 11は、 Zを最上位ビット (Zの正負を示す情報)と、最上位以外のビット の 絶対値)とに分割することを、白の菱形で示し、 Zの最上位ビットを XORゲート 75に入 力し、 Zの最上位以外のビットを比較器 111、 112、セレクタ 113に入力している。
[0172] なお、図 11に示した入出力データは、図 7において、同記号 (P 等)で示したデ ータとそれぞれ同様なため、説明を省略する。
[0173] 以上のように、簡単ィ匕したチェック一変数演算器ブロック 62は、入力 μを必要としな いため、図 7に示した第 1の実施の形態のチェック 変数演算器ブロック 62と比較し て構成が簡単ィ匕されており、対応するチェック一変数レジスタブロック 51におけるレ ジスタ 61のビット幅を削減することができる。
[0174] 以上に述べたように、この実施の形態によれば、チェック一変数レジスタブロック 51 におけるレジスタ 61のビット幅を削減するため、復号装置全体の装置規模を削減し、 処理を簡単ィ匕することができる。
[0175] なお、次の (式 33)によって計算を行うことにより、(式 32)よりも計算精度が高ぐ ( 式 7)よりも簡単な処理でメッセージデータを算出することができる。
[0176] [数 33] , (ΙΓ
Figure imgf000035_0001
[0177] (式 33)における μ ' (i, j)は、 0から a— 1の間の整数を表す。チェック—変数演算 器ブロック 62は、第 1の実施の形態と同様なタイミング (L として入力された前の段 のし の値が、最も小さくなつたとき)で、 μ, (i, j)を出力する。ここで、 μ,(i, j)は
、第 1の実施の形態の(式 7)および (式 25)において、 μ (i, j)が 0から n— 1の間の整 数と、 0から a— 1の間の整数との組を表していたのと比較して、情報量を減らしており 、その分変数 チェックメッセージデータの計算精度が下がる。
[0178] チェック一変数演算器ブロック 62、および変数 チェック演算器ブロック 32の基本 的な構成はそれぞれ第 1の実施の形態で示した図 7および図 4とそれぞれ同様であ るが、チェック 変数レジスタブロック 51における各レジスタ 61のビット幅を削減し、 復号装置全体の装置規模を削減することができる。
[0179] 以上に述べたように、(式 33)を採用すれば、 μ (s, t)の選択によって、計算精度と 装置規模とのトレードオフにおいて、計算精度と装置規模とのバランスを、 3種類 (第 1の実施の形態のように (s, t)を用いる力 第 2の実施の形態のように , (i, j)を 用いるか、または、 μを用いないか)から選択することができる。
実施例 1
[0180] 図 12は、本発明の復号装置 128を使用したデータ通信 (蓄積)装置の一構成例を 示すブロック図である。
[0181] データ通信 (蓄積)装置は、データ送信装置 121とデータ受信装置 (受信装置) 12 5とを含む。そして、データ送信装置 121は、擬似巡回型低密度パリティ検査符号の 符号化装置 122、フレーム同期をとるための制御と、変調器 124に合わせたデータ へ変換するための同期制御 ·データ変換装置(同期制御 データ変換装置) 123、 および変調器 124を含む。変調器 124は、通信路、または記憶装置に情報を出力す る。
[0182] データ受信装置 125は、通信路、または記憶装置力 受信した情報を復調する復 調器 126、復調器 126の出力データを復号装置 126の入力データに変換し、フレー ム同期をとる処理を行う同期制御 ·データ変換装置 127、および本発明の復号装置 1 28を含む。
[0183] 数値例として検査行列の列ブロックの総数 nを 65、検査行列の行ブロックの総数 m を 8、巡回行列のサイズ aを 63とした時、フレーム長力 095ビットのビット列をフレー ム単位とすることができる。
[0184] そして、(式 2)で示した検査行列中の各ブロックの行ベクトル (f f · · · , f
0 1 a
)の重みが 1以下であって(iは 0から 7の間の整数を表し、 jは 0から 64の間の 整数を表している)、 65個の変数—チェックレジスタブロック 21がそれぞれ含む複数 のレジスタ 31のうち、 1組のレジスタ 31間に設置される変数—チェック演算器ブロック 32の数を 2以下とする。そして、 8個のチェック一変数レジスタブロック 51がそれぞれ 含む複数のレジスタ 61のうち、 1組のレジスタ 61間に設置されるチェック—変数演算 器ブロック 62の数を 2以下とするように設定する。
[0185] すると、数百キロゲートの装置規模で、数百メガビット毎秒の処理を実現することが できる。
産業上の利用可能性
[0186] 本発明は、衛星通信や移動体通信システム等における所要電力の低減や、アンテ ナの小型化などのシステム構成上の要件を満たすための誤り訂正技術として利用す ることができる。また、磁気記録などの記憶装置に関する信頼性向上のための誤り訂 正技術として利用することができる。

Claims

請求の範囲
誤り訂正符号ィヒ方式における疑似巡回型低密度パリティ検査符号を復号し、復号 結果である推定送信ビット列を出力する復号装置において、
複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、 受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数 チェ ックメッセージと、推定送信ビット列とを生成して出力する変数 チェックメッセージ生 成手段と、
複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、 前記変数 チェックメッセージ生成手段が出力した変数 チェックメッセージが入力 されると、入力された前記変数 チェックメッセージに応じて生成したデータを含むチ エック一変数メッセージを出力するチェック一変数メッセージ生成手段と、
前記チェック 変数メッセージ生成手段が出力したチェック 変数メッセージが含 む所定のデータに、予め決められた定数を乗じて前記変数 チェックメッセージ生成 手段に入力する正規化演算手段とを備え、
前記変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手 段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所 定のデータに、前記チェック一変数メッセージ生成手段の出力に対応するデータを 加算して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存してい るデータである変数 チェックメッセージおよび推定送信ビット列を出力する変数 チェック演算手段を含み、
前記チェック 変数メッセージ生成手段は、当該チェック 変数メッセージ生成手 段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの 2 つと、前記変数 チェックメッセージ生成手段が出力したデータとのうち、値が最も小 さいデータと、 2番目に小さいデータとを選択して次の段のレジスタに保存し、所定の タイミングで、前記レジスタが保存しているデータをチェック一変数メッセージとして出 力するチェック 変数演算手段を含み、
前記変数 チェック演算手段は、前記変数 チェックメッセージ生成手段が含むフ イードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、 前記チェック 変数演算手段は、前記チェック 変数メッセージ生成手段が含むフ イードバックシフトレジスタが有するレジスタ間にそれぞれ設置される
ことを特徴とする復号装置。
[2] 前記変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手 段が含むフィードバックシフトレジスタの動作クロックに同期した第 1のクロックカウンタ を含み、
前記チェック 変数メッセージ生成手段は、当該チェック 変数メッセージ生成手 段が含むフィードバックシフトレジスタの動作クロックに同期した第 2のクロックカウンタ を含み、
前記変数 チェック演算手段は、前記変数 チェックメッセージ生成手段が含むレ ジスタに保存されたデータの一部に加算するデータを、前記第 1のクロックカウンタの 値に応じて選択し、
前記チェック一変数メッセージ生成手段のレジスタは、前記第 2のクロックカウンタが カウントした値を記'隐し、
前記チェック 変数演算手段は、前記変数 チェックメッセージ生成手段の出力に 対応するデータが最も小さ 、値となった時に、前記レジスタが記憶して ヽる前記第 2 のクロックカウンタがカウントした値に対応する数値を出力して、次の段のレジスタに 保存する
請求項 1記載の復号装置。
[3] 前記変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手 段が含むフィードバックシフトレジスタの動作クロックに同期した第 1のクロックカウンタ を含み、
前記チェック 変数メッセージ生成手段は、当該チェック 変数メッセージ生成手 段が含むフィードバックシフトレジスタの動作クロックに同期した第 2のクロックカウンタ を含み、
前記変数 チェック演算手段は、前記変数 チェックメッセージ生成手段が含むフ イードバックシフトレジスタが有するレジスタに保存されたデータの一部に加算するデ ータを前記第 1のクロックカウンタの値と、前記変数 チェックメッセージ生成手段の レジスタに割り当てられた数値とに応じて選択し、
前記チェック一変数メッセージ生成手段のレジスタは、前記第 2のクロックカウンタが カウントした値を記'隐し、
前記チェック 変数演算手段は、前記変数 チェックメッセージ生成手段の出力に 対応するデータが最も小さ 、値となった時に、前記レジスタが記憶して ヽる前記第 2 のクロックカウンタがカウントした値と、前記変数 チェックメッセージ生成手段のレジ スタに割り当てられた数値との組を出力して、次の段の前記レジスタに保存する 請求項 1記載の復号装置。
[4] 前記変数 チェックメッセージ生成手段、および前記チェック一変数メッセージ生 成手段は、前記変数 チェックメッセージの生成および出力と、前記チェック一変数 メッセージの生成および出力とをそれぞれ所定の回数繰り返し、
前記変数 チェックメッセージ生成手段は、前記所定の回数変数 チェックメッセ ージの生成を繰り返してから、推定送信ビット列を出力する
請求項 1から請求項 3のうちいずれか 1項記載の復号装置。
[5] 前記変数 チェックメッセージ生成手段は、疑似巡回型低密度パリティ検査符号の 検査行列を構成する巡回行列のサイズと同数の前記レジスタと、前記変数 チェック 演算手段とをそれぞれ含み、
前記チェック一変数メッセージ生成手段は、疑似巡回型低密度パリティ検査符号の 検査行列を構成する巡回行列のサイズと同数の前記レジスタと前記チェック一変数 演算手段とそれぞれを含む
請求項 1から請求項 4のうちいずれか 1項記載の復号装置。
[6] 誤り訂正符号ィヒ方式における疑似巡回型低密度パリティ検査符号を復号し、推定 送信ビット列を出力する復号装置を備えた受信装置において、
受信した情報を復調して出力する復調器と、
前記復調器の出力データを前記復号装置に応じた形式の入力データに変換し、フ レーム同期をとつて前記復号装置に出力する同期制御 データ変換装置とを備え、 前記復号装置は、
複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、 受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数 チェ ックメッセージと、推定送信ビット列とを生成して出力する変数 チェックメッセージ生 成手段と、
複数のレジスタを有する所定の段数のフィードバックシフトレジスタを複数個含み、 前記変数 チェックメッセージ生成手段が出力した変数 チェックメッセージが入力 されると、入力された前記変数 チェックメッセージに応じて生成したデータを含むチ エック一変数メッセージを出力するチェック一変数メッセージ生成手段と、
前記チェック 変数メッセージ生成手段が出力したチェック 変数メッセージが含 む所定のデータに、予め決められた定数を乗じて前記変数 チェックメッセージ生成 手段に入力する正規化演算手段とを含み、
前記変数 チェックメッセージ生成手段は、当該変数 チェックメッセージ生成手 段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうち、所 定のデータに、前記チェック一変数メッセージ生成手段の出力に対応するデータを 加算して次の段のレジスタに保存し、所定のタイミングで、前記レジスタが保存してい るデータである変数 チェックメッセージおよび推定送信ビット列を出力する変数 チェック演算手段を含み、
前記チェック 変数メッセージ生成手段は、当該チェック 変数メッセージ生成手 段が含むフィードバックシフトレジスタが有するレジスタに保存されたデータのうちの 2 つと、前記変数 チェックメッセージ生成手段が出力したデータとのうち、値が最も小 さいデータと、 2番目に小さいデータとを選択して次の段のレジスタに保存し、所定の タイミングで、前記レジスタが保存しているデータをチェック一変数メッセージとして出 力するチェック 変数演算手段を含み、
前記変数 チェック演算手段は、前記変数 チェックメッセージ生成手段が含むフ イードバックシフトレジスタが有するレジスタ間にそれぞれ設置され、
前記チェック 変数演算手段は、前記チェック 変数メッセージ生成手段が含むフ イードバックシフトレジスタが有するレジスタ間にそれぞれ設置される
ことを特徴とする受信装置。
前記変数 チェックメッセージ生成手段は、 検査行列の列ブロックの総数 nと同数の変数 チェックレジスタブロックと、 加算器と、
前記変数 チェックレジスタブロックが含むレジスタのクロックに同期した第 1のクロ ックカウンタと、
を備え、
前記変数 チェックレジスタブロックの出力は、前記変数 チェックレジスタブロック に対応する検査行列の列ブロックに相当する、受信データ列の一部分に、前記加算 器にて加算され、加算結果が出力とされ、
前記変数 チェックレジスタブロックは、
前記検査行列を構成する巡回行列のサイズ aと同数の段数のレジスタと、 前記レジスタ間にそれぞれ配置される複数の変数 チヱック演算手段と、 最後段のレジスタの出力を入力し、前記最後段のレジスタの出力を、初段のレジ スタの入力に接続するか、前記加算器の入力に供給するか切り替える出力スィッチと を備え、前記変数 チェックレジスタブロックには、検査行列の行ブロック数 mと同 数の系統のデータ列が入力され、
前記変数 チェックレジスタブロックへの入力を、前記変数 チェック演算手段に 入力するか否かを、前記検査行列によって予め定められた m個のそれぞれ力 ビット 力 なるビット列によって定める結線スィッチを
さらに備え、
前記変数 チェック演算手段は、前記第 1のカウンタのカウント値に基づき、入力し たメッセージデータに加算するデータを選択し、前記変数 チェック演算手段より前 記レジスタに保存、更新される情報は、変数—チェックメッセージ (VCメッセージ)に 相当するデータと、前記変数ーチ ック演算手段が計算したメッセージ部分のデータ の正負を表す情報を含む請求項 1記載の復号装置。
前記チェック一変数メッセージ生成手段は、
検査行列の行ブロックの総数 mと同数のチヱックー変数レジスタブロックと、 前記チェック一変数レジスタブロックが含むレジスタのクロックに同期したカウンタで ある第 2のクロックカウンタと、
を備え、
前記チェック 変数レジスタブロックは、
検査行列を構成する巡回行列のサイズと同数の段数のレジスタと、
前記レジスタ間にそれぞれ設置されるチェック一変数演算手段と、
前記チェック 変数レジスタブロックへの入力を、前記チェック 変数演算手段に 入力するか否かを、検査行列によって予め定められた、 n個の各々が aビットからなる ビット列によって定める結線スィッチと、
最後段のレジスタの出力を、初段のレジスタの入力に接続するか、前記正規化演 算手段に出力する力切り替える出力スィッチと、
を含み、
前記チェック 変数レジスタブロックにお 、て、前記チェック 変数演算手段より前 記レジスタに保存、更新される情報は、チェック—変数メッセージ (CVメッセージ)に 相当するデータ、前記第 2のクロックカウンタの値、および、前記変数 チェックメッセ ージ生成手段によって算出され、前記チェック一変数メッセージ生成手段に入力さ れたメッセージの硬判定結果に対するシンドロームをなす情報を含む、請求項 1記載 の記載の復号装置。
受信データ列を入力し、対数尤度比と事前値との和を含むデータである変数ーチ エックメッセージ (VCメッセージ)と、推定送信ビット列とを生成して出力する変数ーチ エックメッセージ生成手段と、
前記変数 チェックメッセージに応じて生成したデータを含むチェック 変数メッセ ージ (CVメッセージ)を出力するチェック一変数メッセージ生成手段と、
を少なくとも含み、
誤り訂正符号ィヒ方式における疑似巡回型低密度パリティ検査符号を復号し、復号 結果である推定送信ビット列を出力する復号装置において、
前記変数 チェックメッセージ生成手段は、
検査行列の列ブロックの総数 nと同数の変数 チェックレジスタブロックと、 加算器と、 前記変数 チェックレジスタブロックが含むレジスタのクロックに同期した第 1のクロ ックカウンタと、
を備え、
前記変数 チェックレジスタブロックの出力は、前記変数 チェックレジスタブロック に対応する検査行列の列ブロックに相当する、受信データ列の一部分に、前記加算 器にて加算され、加算結果が出力とされ、
前記変数 チェックレジスタブロックは、
前記検査行列を構成する巡回行列のサイズ aと同数の段数のレジスタと、 前記レジスタ間にそれぞれ配置される複数の変数 チヱック演算手段と、 最後段のレジスタの出力を入力し、前記最後段のレジスタの出力を、初段のレジ スタの入力に接続するか、前記加算器の入力に供給するか切り替える出力スィッチと を備え、前記変数 チェックレジスタブロックには、検査行列の行ブロック数 mと同 数の系統のデータ列が入力され、
前記変数 チェックレジスタブロックへの入力を、前記変数 チェック演算手段に 入力するか否かを、前記検査行列によって予め定められた m個のそれぞれ力 ビット 力 なるビット列によって定める結線スィッチ
をさらに備え、
前記変数 チェック演算手段は、前記第 1のカウンタのカウント値に基づき、入力し たメッセージデータに加算するデータを選択し、
前記変数 チェック演算手段より前記レジスタに保存、更新される情報は、変数 チェックメッセージに相当するデータと、前記変数 チェック演算手段が計算したメッ セージ部分のデータの正負を表す情報を含み、
前記チェック一変数メッセージ生成手段は、
検査行列の行ブロックの総数 mと同数のチヱックー変数レジスタブロックと、 前記チェック一変数レジスタブロックが含むレジスタのクロックに同期したカウンタで ある第 2のクロックカウンタと、
を備え、 前記チェック 変数レジスタブロックは、
前記検査行列を構成する巡回行列のサイズと同数の段数のレジスタと、 前記レジスタ間にそれぞれ設置されるチェック一変数演算手段と、
前記チェック 変数レジスタブロックへの入力を、前記チェック 変数演算手段に 入力するか否かを、検査行列によって予め定められた、 n個の各々が aビットからなる ビット列によって定める結線スィッチと、
最後段のレジスタの出力を、初段のレジスタの入力にフィードバック接続するか、 出力として出力する力切り替える出力スィッチと、
を含み、
前記チェック 変数レジスタブロックにお 、て、前記チェック 変数演算手段より前 記レジスタに保存、更新される情報は、チェック—変数メッセージ (CVメッセージ)に 相当するデータ、前記第 2のクロックカウンタの値、および、前記変数 チェックメッセ ージ生成手段によって算出され、前記チェック一変数メッセージ生成手段に入力さ れたメッセージの硬判定結果に対するシンドロームをなす情報を含む、復号装置。
[10] 前記変数 チェック演算手段が、第 1番目の変数 チェックレジスタブロックにおけ る第 r番目のレジスタと第 r+ 1番目のレジスタとの間に、検査行列 {h (0,1), h (1,1), h (2,1 · · · , 中に含まれる 1の数と同じ数だけ設置されている(ただし、 1は 0から n 1の間の整数を表し、 rは 0から a— 1の間の整数を表す)、請求項 7又は 9記載の復 号装置。
[11] 前記チェック一変数演算手段が、第 s番目のチェック一変数レジスタブロックにおけ る第 t番目のレジスタと第 t+ 1番目のレジスタとの間に、行列 G (検査行列 Hに関して GTH = 0、ただし、 GTは Gの転置行列)の {g (s'0), g g (s'2), · · · , g (s'n_1) }に含ま れる 1の数と同じ数だけ設置されている(ただし、 sは 0から m— 1の間の整数を表し、 t は 0から a— 1の間の整数を表す)、請求項 8又は 9記載の復号装置。
[12] 前記変数 チェック演算手段は、
cnt、 μと、チェック—変数メッセージに相当する第 1、第 2のデータ L、 L、 Ρ、 Ρ
1 2 2 1 -
、および Ζ を入力とし、
m m
(ただし、 、 L、 L、および Pは、第 r番目のレジスタに保存されているメッセージ データの初期状態(時刻 0における値)を (a)と表した場合の、時刻 a—jにおける メッセージデータ Z (1) (j)を与える式 1 ) ι (i )
Figure imgf000045_0001
における μ (i, j)、 L (s)、 L (s)、および P (i, j)に対応し、 cntは、変数一チェック j, 1 j, 2 2
レジスタブロック毎に予め定められた 0から n—1の間の整数 1とクロックとに同期した力 ゥンタの値に対応する 0力 a— 1の間の整数の組を表している。 )
cnt、 μを入力する比較器と、
L、Lを入力とし前記比較器の出力を選択制御信号として一方を出力するセレクタ
1 2
と、
P、 P
2 1 -inを入力する排他的論理和回路と、
前記セレクタの出力を受け、前記排他的論理和論理回路の出力に基づき前記セレ クタの出力の極性を反転する正負反転装置と、
Z と前記正負反転回路の出力を加算し、加算結果を Z として出力する加算器 m 1— out
と、
を備え、
入力 Z および P に対し、次式
[_! cnt の時
Z in + (— 1 ) :し 2 cn t二 の時
Pl-out ~ ' 1-ίη で与えられる、 Z および P を出力し、前記レジスタを介して次の段の変数
1― out 1― out
チェック演算手段に、 Z および P としてそれぞれ供給する、請求項 7、 9、 10のうち
m 1— m
いずれか 1項に記載の記載の復号装置。
前記チェック—変数演算手段は、 Z、 cnt、 P 、 μ 、L 、および L を入力し
2— m in 1— in 2— m
P と Zの正負を示す情報とを入力する排他的論理和回路と、
2— in
L と Zの絶対値とを入力する第 1の比較器と、
2— in
L と Zの絶対値とを入力する第 2の比較器と、
1—in
Zの絶対値、 L 、 L を入力し、前記第 1の比較器の出力を選択制御信号として
1— m 2— in
入力し、前記第 1の比較器の出力結果に応じて出力を切り替え、 L 、 L を出
丄一out 2— out 力する第 1のセレクタと、
cnt、 μ を入力し、前記第 2の比較器の出力を選択制御信号として入力され、第 2 m
の比較器の出力結果に応じて出力を切り替え、 μ を出力する第 2のセレクタと、
out
を備え、
zは、 z ωに対応し、
]- 1
cntは、 0から n— 1の間の整数と、クロックに同期したカウンタ値に対応する 0から a 1の間の整数との組を表し、
チェック—変数演算器ブロックは、入力 L 、L 、P および に対し、以下
1— m 2— in 2— in m
の式で与えられる L 、L 、P および を出力する、 ίηの時
ίη
Figure imgf000046_0001
L!-in I Z Iく の時
Figure imgf000046_0002
I Z I — in≤| Z K L2inの時
lL2 in L2in≤| Z |の時 P2ίη Θ 1 | Z |〉0の時
out
P2-in Z≤0の時
inの時
inの時
Figure imgf000047_0001
請求項 8、 9、 11のうちいずれか 1項に記載の記載の復号装置。
[14] 請求項 12記載の記載の復号装置において、
前記変数 チヱック演算手段において、前記比較器と前記セレクタは削除され、 前記排他的論理和回路、前記正負反転装置、前記加算器を備え、
L、 P、 P 、および Z を入力とし、 Z および P を出力する復号装置。
2 2 1— m in 1— out 1― out
[15] 請求項 13記載の記載の復号装置において、
前記チェック 変数演算手段にお 、て、
前記第 2のセレクタは削除され、
前記排他的論理和回路、前記第 1、第 2の比較器、前記第 1のセレクタを備え、 Z、P 、L 、および L を入力し、 L 、L 、および P を出力する復
[16] 請求項 1乃至 5、および、請求項 7乃至 15のうちいずれか 1項記載の復号装置を備 えた受信装置。
PCT/JP2006/318728 2005-09-26 2006-09-21 復号装置および受信装置 WO2007034870A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP06810388.6A EP1940032B1 (en) 2005-09-26 2006-09-21 Decoding apparatus for pseudo cyclic ldpc codes
CN2006800354137A CN101273532B (zh) 2005-09-26 2006-09-21 解码装置及接收装置
US12/088,142 US8074142B2 (en) 2005-09-26 2006-09-21 Decoding device and receiving device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-278429 2005-09-26
JP2005278429A JP4320418B2 (ja) 2005-09-26 2005-09-26 復号装置および受信装置

Publications (1)

Publication Number Publication Date
WO2007034870A1 true WO2007034870A1 (ja) 2007-03-29

Family

ID=37888913

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/318728 WO2007034870A1 (ja) 2005-09-26 2006-09-21 復号装置および受信装置

Country Status (6)

Country Link
US (1) US8074142B2 (ja)
EP (1) EP1940032B1 (ja)
JP (1) JP4320418B2 (ja)
CN (1) CN101273532B (ja)
RU (1) RU2391774C2 (ja)
WO (1) WO2007034870A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020072B2 (en) * 2006-10-25 2011-09-13 International Business Machines Corporation Method and apparatus for correcting data errors
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
WO2009075143A1 (ja) 2007-12-13 2009-06-18 Nec Corporation 復号装置、データ蓄積装置、データ通信システム、および復号方法
US8261166B2 (en) * 2008-09-17 2012-09-04 Seagate Technology Llc Node processor for use with low density parity check decoder using multiple variable node degree distribution codes
WO2010053152A1 (ja) * 2008-11-07 2010-05-14 日本電気株式会社 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
CN101807928B (zh) * 2009-02-13 2013-06-05 瑞昱半导体股份有限公司 记录控制器及奇偶校验码译码器
US8627168B2 (en) 2009-03-13 2014-01-07 Nec Corporation Decoding device and decoding method
JP5445829B2 (ja) * 2009-05-29 2014-03-19 ソニー株式会社 受信装置、受信方法、およびプログラム、並びに受信システム
CN101699770B (zh) * 2009-10-23 2013-03-06 山东大学 一种高速ldpc码编码器及其编码方法
JP2012080283A (ja) * 2010-09-30 2012-04-19 Jvc Kenwood Corp 復号装置および復号方法
US9048867B2 (en) * 2013-05-21 2015-06-02 Lsi Corporation Shift register-based layered low density parity check decoder
US9543984B2 (en) * 2014-04-25 2017-01-10 Infinera Corporation Efficient storage architecture for low-density parity-check decoding
US20160020783A1 (en) * 2014-07-17 2016-01-21 Lsi Corporation Low Density Parity Check Decoder With Relative Indexing
RU2586338C2 (ru) * 2014-10-08 2016-06-10 Общество с ограниченной ответственностью НПО "Квантрон" Способ установки стойки в грунт и стойка, установленная в грунт
US10110249B2 (en) * 2016-08-23 2018-10-23 Sandisk Technologies Llc Column-layered message-passing LDPC decoder
JP2023037446A (ja) * 2021-09-03 2023-03-15 日本電気株式会社 無線受信装置及びその方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004343170A (ja) * 2003-05-13 2004-12-02 Sony Corp 復号方法および復号装置、並びにプログラム
JP2005045735A (ja) * 2003-07-25 2005-02-17 Sony Corp 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
US7484158B2 (en) * 2003-12-03 2009-01-27 Infineon Technologies Ag Method for decoding a low-density parity check (LDPC) codeword
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
JP4595650B2 (ja) * 2005-04-25 2010-12-08 ソニー株式会社 復号装置および復号方法
US20070089019A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US20090049357A1 (en) * 2007-08-16 2009-02-19 Yeong-Luh Ueng Decoding Method for Quasi-Cyclic Low-Density Parity-Check Codes and Decoder for The Same
US8181083B2 (en) * 2007-08-27 2012-05-15 Stmicroelectronics S.R.L. Methods and architectures for layered decoding of LDPC codes with minimum latency
WO2009075143A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 復号装置、データ蓄積装置、データ通信システム、および復号方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004343170A (ja) * 2003-05-13 2004-12-02 Sony Corp 復号方法および復号装置、並びにプログラム
JP2005045735A (ja) * 2003-07-25 2005-02-17 Sony Corp 符号検出装置及び方法、復号装置及び方法、並びに情報処理装置及び方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SPAGNOL C., MARNANE W., POPOVICI E.: "Reduced complexity, FPGA implementation of quasi-cyclic LDPC decoder", PROCEEDINGS OF THE 2005 EUROPEAN CONFERENCE ON CIRCUIT THEORY AND DESIGN, vol. 1, 28 August 2005 (2005-08-28), pages 1/289 - 1/292, XP010845180 *
ZHONGFENG WANG AND JIA Q.-W.: "Low complexity, high speed decoder architecture for quasi-cyclic LDPC codes", IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, 2005. ISCAS 2005, vol. 6, 23 May 2005 (2005-05-23), pages 5786 - 5789, XP010816849 *

Also Published As

Publication number Publication date
EP1940032A4 (en) 2015-03-04
RU2008116679A (ru) 2009-11-10
CN101273532B (zh) 2011-11-16
EP1940032A1 (en) 2008-07-02
JP4320418B2 (ja) 2009-08-26
JP2007089064A (ja) 2007-04-05
CN101273532A (zh) 2008-09-24
RU2391774C2 (ru) 2010-06-10
US20100153810A1 (en) 2010-06-17
US8074142B2 (en) 2011-12-06
EP1940032B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
WO2007034870A1 (ja) 復号装置および受信装置
US7343548B2 (en) Method and apparatus for encoding and decoding data
US7373581B2 (en) Device, program, and method for decoding LDPC codes
US8352847B2 (en) Matrix vector multiplication for error-correction encoding and the like
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
US7181676B2 (en) Layered decoding approach for low density parity check (LDPC) codes
JP5199463B2 (ja) ターボldpc復号
US8359522B2 (en) Low density parity check decoder for regular LDPC codes
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
JP5483875B2 (ja) Ldpc符号のブロックおよびレートに独立な復号の方法および装置
US20070089017A1 (en) Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes with reduced memory requirements
US8869003B2 (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
US20070089019A1 (en) Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages
US10727874B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
US7934147B2 (en) Turbo LDPC decoding
WO2011109084A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
JP5523064B2 (ja) 復号装置及び方法
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
Khan et al. A real time programmable encoder for low density parity check code as specified in the IEEE P802. 16E/D7 standard and its efficient implementation on a DSP processor
Radosavljevic et al. Tradeoff analysis and architecture design of high throughput irregular LDPC decoders
Lakshmi et al. Area efficient implementation of short length QC-LDPC codes for Ultra-Reliable Low-Latency Communication (URLLC) application
KR101267654B1 (ko) 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101221062B1 (ko) 가변 usc 부호를 이용한 부호화 및 복호화 방법
KR20230029168A (ko) 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템
CN112470406A (zh) 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680035413.7

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 12088142

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2006810388

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008116679

Country of ref document: RU