JP4832447B2 - Decoding apparatus and method using channel code - Google Patents

Decoding apparatus and method using channel code Download PDF

Info

Publication number
JP4832447B2
JP4832447B2 JP2007548082A JP2007548082A JP4832447B2 JP 4832447 B2 JP4832447 B2 JP 4832447B2 JP 2007548082 A JP2007548082 A JP 2007548082A JP 2007548082 A JP2007548082 A JP 2007548082A JP 4832447 B2 JP4832447 B2 JP 4832447B2
Authority
JP
Japan
Prior art keywords
matrix
basic
layer
decoding
parity check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007548082A
Other languages
Japanese (ja)
Other versions
JP2008526086A (en
Inventor
キ ヒョン チョー,
ミン ソク オー,
キュ ヒュク チョン,
ヤン ソブ リー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Priority claimed from PCT/KR2005/004466 external-priority patent/WO2006068435A2/en
Publication of JP2008526086A publication Critical patent/JP2008526086A/en
Application granted granted Critical
Publication of JP4832447B2 publication Critical patent/JP4832447B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、符号化及び復号化方法に関するものである。一層具体的には、メモリ容量を多く占めずにも性能を向上できるとともに、具現時におけるハードウェアの複雑度を減少させて符号化及び復号化の性能を向上できる低密度パリティ検査(Low Density Parity Check:以下、LDPCという)コードを用いた符号化、復号化方法及びその装置に関するものである。   The present invention relates to an encoding and decoding method. More specifically, the low density parity check (Low Density Parity) can improve the performance without occupying a large memory capacity, and can improve the encoding and decoding performance by reducing the complexity of hardware at the time of implementation. The present invention relates to an encoding / decoding method and apparatus using a code (hereinafter referred to as LDPC) code.

最近、LDPCコードを用いた符号化方法が浮き彫りになっている。LDPCコードは、パリティ検査行列Hのほとんどの元素が0であるので、低密度の線形ブロック符号として1962年にGallagerによって提案された。LDPC符号は、非常に複雑であって、提案当時の技術では具現不可能であったが、1995年に再び発見され、非常に優れた性能が立証されて以来、最近まで活発に研究されている。(参考文献:[1]非特許文献1(Robert G.Gallager、”Low―Density Parity―Check Codes”、The MIT Press、September 15、1963);[2]非特許文献2(D.J.C.Mackay、Good error―correcting codes based on very sparse matrices、IEEE Trans.Inform.Theory、IT―45、pp.399―431(1999)))。   Recently, an encoding method using an LDPC code has been highlighted. The LDPC code was proposed by Gallager in 1962 as a low density linear block code because most elements of the parity check matrix H are zero. The LDPC code is very complex and could not be implemented with the technology at the time of the proposal, but has been actively researched until recently since it was discovered again in 1995 and proved to have excellent performance. . (Reference: [1] Non-Patent Document 1 (Robert G. Gallager, “Low-Density Parity-Check Codes”, The MIT Press, September 15, 1963); [2] Non-Patent Document 2 (DJC) Mackay, Good error-correcting codes based on very sparse matrix, IEEE Trans. Inform. Theory, IT-45, pp. 399-431 (1999)).

LDPCコードのパリティ検査行列は、1の個数が非常に少ないので、非常に大きいブロック大きさでも反復復号を通して復号可能であり、ブロック大きさが非常に大きくなると、ターボコードのようにShannonのチャネル容量限界に近接する性能を示す。前記パリティ検査行列において、行または列に含まれた1の個数を重み(weight)という。   Since the parity check matrix of the LDPC code has a very small number of ones, even a very large block size can be decoded through iterative decoding. When the block size becomes very large, the channel capacity of Shannon like a turbo code is increased. Shows performance close to the limit. In the parity check matrix, the number of 1 included in a row or column is referred to as a weight.

LDPCコードは、(n−k)×nパリティ検査行列Hによって説明される。前記パリティ検査行列Hに対応する生成行列Gは、次の数学式1によって求められる。
[数学式1]
H・G=0
LDPCコードを用いた符号化及び復号化方法において、送信側では、前記パリティ検査行列Hと数学式1の関係にある前記生成行列Gを用いた数学式2によって入力データを符号化することができる。
[数学式2]
c=G・x(ここで、cは、コードワードで、xは、情報ビットである)
以下、従来技術に係る前記H行列を用いる復号化方法を説明する。
The LDPC code is described by an (n−k) × n parity check matrix H. A generator matrix G corresponding to the parity check matrix H is obtained by the following mathematical formula 1.
[Mathematical Formula 1]
H ・ G = 0
In the encoding and decoding method using the LDPC code, on the transmission side, input data can be encoded by the mathematical formula 2 using the generation matrix G having the relationship of the parity check matrix H and the mathematical formula 1. .
[Mathematical formula 2]
c = G · x (where c is a code word and x is an information bit)
Hereinafter, a decoding method using the H matrix according to the related art will be described.

受信側のデコーダーは、送信側の符号化結果であるコードワードcから情報ビットxを求めるべきであるが、Hc=0の条件を用いて情報ビットを決定する。すなわち、受信されたコードワードをc’としたとき、Hc’の値を計算し、Hc’の計算結果が0である場合、c’の前にあるk個のビットを、デコーディングされた情報ビットと決定する。Hc’の値が0でない場合、グラフを通したsum−productアルゴリズム、信頼度伝播(belief propagation)アルゴリズムなどを用いて、Hc’=0を満足するc’を探してxを復旧する。前記検査式Hc’=0は、前記情報ビットと前記G行列との関係によってc’H=0に変わり得るので、前記検査式は、前記情報ビットと前記G行列との関係によって変わる。 The decoder on the reception side should obtain the information bit x from the code word c that is the encoding result on the transmission side, but determines the information bit using the condition of Hc = 0. That is, when the received code word is c ′, the value of Hc ′ is calculated. When the calculation result of Hc ′ is 0, the k bits before c ′ are decoded information. Decide with a bit. If the value of Hc ′ is not 0, x is recovered by searching for c ′ that satisfies Hc ′ = 0 using a sum-product algorithm, a belief propagation algorithm or the like through a graph. Since the check equation Hc ′ = 0 can be changed to c′H T = 0 depending on the relationship between the information bits and the G matrix, the check equation varies depending on the relationship between the information bits and the G matrix.

図1は、パリティ検査行列Hを二部グラフ(Bipartite graph)を通して示した図である。図1において、CNU(Check Node unit)は、検査ノードユニットを示し、VNU(variable node unit)は、ビットノードユニットを示す。二部グラフにアルゴリズムを適用して復号化する過程は、大きく三つの過程に分けられる。
1.検査ノードからビットノードへの確率値更新
2.ビットノードから検査ノードへの確率値更新
3.ビットノードの確率を通した復号値決定
まず、前記第1過程を行うために、チャネルから受信された確率値が入力される初期化段階を経て、前記検査ノードの更新を行う。前記第1過程を終了した後、前記ビットノードから検査ノードへの確率値が更新されると、第2過程を行う。前記第1及び第2過程を終了した後、前記チャネルから受信された確率値と、前記第1及び第2過程を通して更新された確率値を用いて復号値を決定する。
FIG. 1 is a diagram illustrating a parity check matrix H through a bipartite graph. In FIG. 1, CNU (Check Node unit) indicates a check node unit, and VNU (variable node unit) indicates a bit node unit. The process of decoding by applying an algorithm to a bipartite graph can be roughly divided into three processes.
1. 1. Update probability value from check node to bit node 2. Update probability value from bit node to check node Decoding Value Determination Through Bit Node Probability First, in order to perform the first process, the check node is updated through an initialization step in which a probability value received from a channel is input. When the probability value from the bit node to the check node is updated after finishing the first process, the second process is performed. After the first and second processes are finished, a decoding value is determined using the probability value received from the channel and the probability value updated through the first and second processes.

復号化過程は、第1及び第2過程を経た後、第3過程で前記決定された復号値c’が検査式Hc’=0を満足する場合、前記値c’を正確に受信された復号値と決定し、そうでないと、前記検査式を満足するまで前記第1及び第2過程を所定回数だけ繰り返す。前記第1及び第2過程で行われる確率値の更新過程では、パリティ検査行列の各行または列に属する非ゼロ(nonzero)成分の個数、すなわち、1の個数だけ各更新過程を繰り返す。すなわち、前記パリティ検査行列Hの重みに該当する位置で、前記第1過程の更新及び前記第2過程の更新が行われる。前記第1及び第2過程を繰り返すほど、検査ノードとビットノードとの間の確率値の信頼度が高くなり、その結果、求めようとするコードワードの真値に近接するようになる。   In the decoding process, after the first and second processes, if the decoded value c ′ determined in the third process satisfies the check expression Hc ′ = 0, the value c ′ is correctly received. Otherwise, the first and second processes are repeated a predetermined number of times until the inspection formula is satisfied. In the update process of probability values performed in the first and second processes, each update process is repeated by the number of non-zero components belonging to each row or column of the parity check matrix, that is, by one. That is, at the position corresponding to the weight of the parity check matrix H, the update of the first process and the update of the second process are performed. As the first and second processes are repeated, the reliability of the probability value between the check node and the bit node increases, and as a result, the reliability of the codeword to be obtained becomes closer.

最近は、LDPC符号化において、前記生成行列Gによらず、前記パリティ検査行列Hを用いて入力データを符号化する方法が一般的に用いられている。したがって、上述したように、LDPCコードを用いた符号化方法では、前記パリティ検査行列Hが最も重要な要素と言える。前記パリティ検査行列Hは、約1000×2000以上の大きさを有するので、符号化及び復号化過程で多くの演算が要求され、具現が非常に複雑であり、多くの保存空間が要求されるという問題点がある。
Robert G.Gallager、”Low―Density Parity―Check Codes”、The MIT Press、September 15、1963. D.J.C.Mackay、Good error―correcting codes based on very sparse matrices、IEEE Trans.Inform.Theory、IT―45、pp.399―431(1999)
Recently, in LDPC encoding, a method of encoding input data using the parity check matrix H regardless of the generation matrix G is generally used. Therefore, as described above, the parity check matrix H is the most important element in the encoding method using the LDPC code. Since the parity check matrix H has a size of about 1000 × 2000 or more, many operations are required in the encoding and decoding processes, the implementation is very complicated, and a lot of storage space is required. There is a problem.
Robert G. Gallager, “Low-Density Parity-Check Codes”, The MIT Press, September 15, 1963. D. J. et al. C. McCay, Good error-correcting codes based on very sparse metrics, IEEE Trans. Inform. Theory, IT-45, pp. 399-431 (1999)

本発明は、上記の問題点を解決するためのもので、その目的は、送信または受信側でデータを符号化または復号化するときに性能を向上できるLPDCコードを用いた符号化及び復号化方法を提供することにある。   An object of the present invention is to solve the above problems, and an object of the present invention is to provide an encoding and decoding method using an LPDC code capable of improving performance when data is encoded or decoded on a transmission or reception side. Is to provide.

本発明の実施例に係る復号化方法は、送信側からパリティ検査行列を用いて符号化された信号を受信する段階と、前記受信信号を前記パリティ検査行列を用いて復号化する段階と、を含み、前記パリティ検査行列は、複数のレイヤーからなり、前記各レイヤー間には、列方向に非ゼロ構成要素が互いに重畳しないことを特徴とし、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。   A decoding method according to an embodiment of the present invention includes a step of receiving a signal encoded using a parity check matrix from a transmission side, and a step of decoding the received signal using the parity check matrix. The parity check matrix includes a plurality of layers, and non-zero components do not overlap each other in the column direction between the layers, and one layer includes at least one or more rows. It is characterized by that.

本発明の実施例に係る復号化方法の他の一例は、パリティ検査行列を用いて符号化された信号を受信する段階と、複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列を用いて、互いに重畳しない特定個数のレイヤー単位で前記受信信号を復号化する段階と、を含み、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。   Another example of a decoding method according to an embodiment of the present invention includes a step of receiving a signal encoded using a parity check matrix, and a plurality of layers, and a non-zero configuration in a column direction between the layers Decoding the received signal in units of a specific number of layers that do not overlap each other using a parity check matrix configured such that elements do not overlap each other, and each layer includes at least one or more rows It is characterized by including.

本発明の実施例に係る復号化装置は、パリティ検査行列を用いて符号化された信号を受信する受信モジュールと、複数のレイヤーを含み、前記各レイヤー間の列方向に非ゼロ構成要素が互いに重畳しないように構成されたパリティ検査行列の情報を保存するメモリと、前記メモリから得た前記パリティ検査行列の情報を用いて、互いに重畳しない特定個数のレイヤー単位で受信信号を復号化する復号化モジュールと、を含み、一つのレイヤーは、少なくとも一つ以上の行を含むことを特徴とする。   A decoding apparatus according to an embodiment of the present invention includes a reception module that receives a signal encoded using a parity check matrix and a plurality of layers, and non-zero components are arranged in a column direction between the layers. Decoding a received signal in units of a specific number of layers that do not overlap each other using a memory that stores information of a parity check matrix configured not to be superposed and information of the parity check matrix obtained from the memory A module, wherein one layer includes at least one or more rows.

本発明は、符号化及び復号化を必要とする通信システムに適用されるとともに、符号化及び復号化が必要な多様な装置に適用される。   The present invention is applied to a communication system that requires encoding and decoding, as well as various devices that require encoding and decoding.

本発明に係るLPDCコードを用いた符号化及び復号化方法によると、送信または受信側でデータを符号化または復号化するときに性能を向上できるという効果がある。   According to the encoding and decoding method using the LPDC code according to the present invention, there is an effect that the performance can be improved when data is encoded or decoded on the transmission or reception side.

以下、本発明に係るLDPCコードを用いた符号化方法の好適な実施例を、添付の図面に基づいて説明する。図2Aは、本発明の好適な一実施例を説明するための図で、本発明の技術的特徴が無線通信システムに適用された一例である。以下で説明される実施例は、本発明の特徴を説明するための例示に過ぎなく、当業者であれば、本発明の技術的特徴を符号化が必要な全ての分野に適用可能であることを理解できるだろう。   Hereinafter, preferred embodiments of an encoding method using an LDPC code according to the present invention will be described with reference to the accompanying drawings. FIG. 2A is a diagram for explaining a preferred embodiment of the present invention, and is an example in which the technical features of the present invention are applied to a wireless communication system. The embodiments described below are merely examples for explaining the features of the present invention, and those skilled in the art can apply the technical features of the present invention to all fields that require encoding. Will understand.

図2Aに示すように、送信機10と受信機30は、無線チャネル20を介して通信を行う。前記送信機10では、データソース11から出力されたkビットのソースデータuが、LDPC符号化モジュール13でLDPC符号化されてnビットのコードワードcになる。コードワードcは、変調モジュール15によって無線変調されてアンテナ17を通して送信され、無線チャネル20を通して前記受信機30のアンテナ31に受信される。前記受信機30では、前記送信機10で起きた過程の逆過程を経る。すなわち、受信されたデータが復調モジュール33によって復調され、LDPC復号化モジュール35によって復号されることで、最終的にソースデータuを得られる。上述したデータ送受信過程は、本発明の特徴を説明するために必要な最小限の範囲内で説明されたもので、当業者であれば、この他にもデータ伝送のために必要な多くの過程があることを理解できるだろう。   As shown in FIG. 2A, the transmitter 10 and the receiver 30 communicate via the radio channel 20. In the transmitter 10, the k-bit source data u output from the data source 11 is LDPC-encoded by the LDPC encoding module 13 into an n-bit code word c. The codeword c is wirelessly modulated by the modulation module 15, transmitted through the antenna 17, and received by the antenna 31 of the receiver 30 through the wireless channel 20. The receiver 30 goes through the reverse process of the process that occurred in the transmitter 10. That is, the received data is demodulated by the demodulation module 33 and decoded by the LDPC decoding module 35, whereby the source data u is finally obtained. The above-described data transmission / reception process has been described within the minimum range necessary for explaining the features of the present invention, and a person skilled in the art can perform many other processes necessary for data transmission. You will understand that there is.

前記LDPC符号化モジュールで入力ソースデータを符号化するために用いられる前記パリティ検査行列Hは、(n−k)×n次元を有する。前記kは、前記LDPC符号化モジュール13に入力されるソースデータの長さ(ビット単位)を意味し、前記nは、符号化されたコードワードcの長さ(ビット単位)を意味する。前記パリティ検査行列Hは、図3に示すように、z×z次元の多数のパーミュテーション行列またはゼロ行列によって構成される。すなわち、図3において、Pi,jは、z×z次元のパーミュテーション行列またはゼロ行列を意味する。 The parity check matrix H used to encode input source data in the LDPC encoding module has (n−k) × n dimensions. The k means the length (bit unit) of the source data input to the LDPC encoding module 13, and the n means the length (bit unit) of the encoded code word c. As shown in FIG. 3, the parity check matrix H includes a plurality of z × z permutation matrices or zero matrices. That is, in FIG. 3, P i, j means a z × z-dimensional permutation matrix or a zero matrix.

前記多数のパーミュテーション行列は、少なくとも一つ以上の基本パーミュテーション行列から所定規則によって変形して形成されたものである。前記基本パーミュテーション行列は、単位行列であることが好ましい。また、前記一つ以上の基本パーミュテーション行列を含む前記多数のパーミュテーション行列は、行と列の重みが1であることが好ましい。すなわち、前記多数のパーミュテーション行列の全ての行及び全ての列の元素のうち、一つの元素のみが1で、残りの元素は0であることが好ましい。   The plurality of permutation matrices are formed by transforming at least one basic permutation matrix according to a predetermined rule. The basic permutation matrix is preferably a unit matrix. The plurality of permutation matrices including the one or more basic permutation matrices preferably have a row and column weight of 1. That is, it is preferable that only one element is 1 and the remaining elements are 0 among all the rows and all the columns of the permutation matrix.

本発明において、前記少なくとも一つ以上の基本パーミュテーション行列を所定規則で変形し、前記多数のパーミュテーション行列を形成する方法は、前記基本パーミュテーション行列の全ての行(または列)を所定間隔だけシフトさせる方法を含む。図4A及び図4Bは、その一例を説明するための図である。すなわち、図4Aの基本パーミュテーション行列の全ての行を下方に5行だけ(n=5)(または全ての列を右側に3列だけ)シフトさせ、図4Bのパーミュテーション行列を形成した。この方法によると、z×z次元の基本パーミュテーション行列に対してシフトされる行(または列)の間隔によって(z−1)個のパーミュテーション行列を形成することができる。したがって、基本パーミュテーション行列を含むz個のパーミュテーション行列が形成される。前記基本パーミュテーション行列が与えられると、前記基本パーミュテーション行列を含む前記z個のパーミュテーション行列は、それぞれ一つの整数で表現される。例えば、基本パーミュテーション行列を0で表現し、前記基本パーミュテーション行列の全ての行を1行だけシフトさせたパーミュテーション行列を1で表現し、前記基本パーミュテーション行列の全ての行を2行だけシフトさせたパーミュテーション行列を2で表現する方法によって全てのパーミュテーション行列を一つの整数で表現する。 In the present invention, the method of deforming at least one or more basic permutation matrices according to a predetermined rule to form a plurality of permutation matrices may include all rows (or columns) of the basic permutation matrix. Including a method of shifting by a predetermined interval. 4A and 4B are diagrams for explaining an example thereof. That is, all the rows of the basic permutation matrix of FIG. 4A are shifted downward by 5 rows (n s = 5) (or all the columns are shifted to the right by 3 columns) to form the permutation matrix of FIG. 4B. did. According to this method, (z−1) permutation matrices can be formed by the row (or column) spacing shifted with respect to the basic permutation matrix of z × z dimensions. Accordingly, z permutation matrices including the basic permutation matrix are formed. When the basic permutation matrix is given, the z permutation matrices including the basic permutation matrix are each expressed by one integer. For example, a basic permutation matrix is represented by 0, a permutation matrix obtained by shifting all the rows of the basic permutation matrix by one row is represented by 1, and all rows of the basic permutation matrix are represented. All permutation matrices are expressed by one integer by a method of expressing 2 by shifting the permutation matrix by 2 lines.

上述したように、前記基本パーミュテーション行列から形成された多数のパーミュテーション行列のタイプは、シフトされた行(または列)の個数によって一つの整数で単純に表現される。前記多数のパーミュテーション行列のタイプを一つの整数で表現する方法は、例示的なものに過ぎなく、前記多数のパーミュテーション行列のタイプを他の方法によって表現することもできる。   As described above, a plurality of permutation matrix types formed from the basic permutation matrix are simply expressed by one integer according to the number of shifted rows (or columns). The method of expressing the multiple permutation matrix types with one integer is merely an example, and the multiple permutation matrix types may be expressed by other methods.

本発明は、パリティ検査行列Hを用いて符号化または復号化を行うにおいて、前記少なくとも一つ以上の基本パーミュテーション行列と、前記少なくとも一つ以上の基本パーミュテーション行列の各行(または列)を所定間隔だけシフトさせて形成された多数のパーミュテーション行列のタイプを基本行列Hに保存した状態で、前記送信側または受信側で符号化または復号化が必要な時ごとに、前記少なくとも一つ以上の基本パーミュテーション行列及び前記基本行列Hを用いてパリティ検査行列Hを生成し、前記生成されたパリティ検査行列を用いて符号化または復号化を行うことを基本的な特徴とする。図2Bに示すように、本発明に係るLDPCコードを用いた符号化装置の好適な一実施例は、メモリモジュール131、パリティ検査行列生成モジュール132及び符号化モジュール134を含んで構成される。前記メモリモジュール131は、前記基本パーミュテーション行列及び前記基本行列を保存する。前記基本行列生成モジュール132は、前記メモリモジュール131に保存された前記基本パーミュテーション行列及び前記基本行列を用いて前記パリティ検査行列を生成する。前記符号化モジュール134は、前記パリティ検査行列生成モジュール132によって生成された前記パリティ検査行列を用いて入力ソースデータを符号化する。前記パリティ検査行列生成モジュール132及び前記符号化モジュール134が各機能によってソフトウェアまたはハードウェアで具現されることは、当業者にとって自明な事項である。 In the present invention, when encoding or decoding is performed using a parity check matrix H, each row (or column) of the at least one basic permutation matrix and the at least one basic permutation matrix. Each time when encoding or decoding is required on the transmitting side or the receiving side in a state where a large number of permutation matrix types formed by shifting by a predetermined interval are stored in the basic matrix Hb , the at least A basic feature is that a parity check matrix H is generated using at least one basic permutation matrix and the basic matrix Hb , and encoding or decoding is performed using the generated parity check matrix. To do. As shown in FIG. 2B, a preferred embodiment of an encoding apparatus using an LDPC code according to the present invention includes a memory module 131, a parity check matrix generation module 132, and an encoding module 134. The memory module 131 stores the basic permutation matrix and the basic matrix. The basic matrix generation module 132 generates the parity check matrix using the basic permutation matrix and the basic matrix stored in the memory module 131. The encoding module 134 encodes input source data using the parity check matrix generated by the parity check matrix generation module 132. It is obvious to those skilled in the art that the parity check matrix generation module 132 and the encoding module 134 are implemented by software or hardware according to each function.

前記基本行列Hを[H|H]の構造を有するH及びHの二つの部分に分割して考慮すると、前記H部分には、一般的にブロック二重対角行列を用いることが好ましいが、これに限定されることはない。ブロック二重対角行列は、主対角及びこの主対角の真下または上側の対角が全て単位行列であり、残りが全てゼロ行列であることを意味する。前記H部分をブロック二重対角行列の形態にする場合、前記H部分には列重みが1である列が発生するが、これを避けるために、一つまたは二つ程度のゼロ行列を単位行列に取り替えることが好ましい。 The base matrix H b | Considering divided into two parts of H d and H p having the structure [H d H p], the said H p portion, generally block double diagonal matrix Although it is preferable to use, it is not limited to this. A block double diagonal matrix means that the main diagonal and the diagonals directly below or above the main diagonal are all unit matrices, and the rest are all zero matrices. When the H p portion is in the form of a block double diagonal matrix, a column having a column weight of 1 is generated in the H p portion. To avoid this, one or two zero matrices are generated. Is preferably replaced with a unit matrix.

前記基本行列HのH部分は、前記基本パーミュテーション行列と、前記基本パーミュテーション行列の各行を所定間隔だけシフトさせて形成した多数のパーミュテーション行列と、ゼロ行列の組み合わせによって構成されるが、前記三つの種類の行列を組み合わせて前記基本行列Hを構成するとき、次のような事項を考慮すると符号化または復号化の性能面で好ましい。 The H d portion of the basic matrix H b is composed of a combination of the basic permutation matrix, a number of permutation matrices formed by shifting each row of the basic permutation matrix by a predetermined interval, and a zero matrix. However, when the basic matrix Hb is configured by combining the three types of matrices, the following matters are preferable in terms of encoding or decoding performance.

第一に、前記基本行列H全体に対して前記多数のパーミュテーション行列のタイプのうち任意の何れか二つのタイプが占める個数の差は、既に設定された第1臨界値以下でなければならない。すなわち、前記基本行列H全体に対して、各パーミュテーション行列の個数を同一にまたは類似にすることが好ましい。前記第1臨界値は、少ないほど好ましいが、3〜7範囲までは許容される。 First, the difference in the number occupied by any two of the multiple permutation matrix types with respect to the entire basic matrix Hb is not less than or equal to an already set first critical value. Don't be. That is, it is preferable that the number of each permutation matrix is the same or similar to the entire basic matrix Hb . The first critical value is preferably as small as possible, but is allowed in the range of 3 to 7.

第二に、前記パリティ検査行列H全体において、4−サイクルや6−サイクルを発生させないか、4−サイクルや6−サイクルの数を最小化することが好ましい。特に、前記パリティ検査行列は、4−サイクルを持たないことが好ましい。また、前記パリティ検査行列Hは、既に設定された第2臨界値CmaX以下の6−サイクルを有することが好ましい。4−サイクルとは、パリティ検査行列Hの任意の二つの行が二つの地点に同時に1を有する場合を意味する。6−サイクルとは、前記パリティ検査行列Hの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一の地点に1を有する場合を意味する。 Second, it is preferable not to generate 4-cycles or 6-cycles in the entire parity check matrix H or to minimize the number of 4-cycles or 6-cycles. In particular, the parity check matrix preferably has no 4-cycle. In addition, the parity check matrix H preferably has 6 cycles less than or equal to the second critical value C maX that has already been set. 4-cycle means a case where any two rows of the parity check matrix H have 1 at two points simultaneously. The 6-cycle means a case where all two combinable rows selected from any three rows of the parity check matrix H have 1 at the same point.

第三に、前記パリティ検査行列H全体に対して、列重み及び/または行重みが規則性を有するべきである。前記基本パーミュテーション行列としてz×zの単位行列を用いると、前記パリティ検査行列H全体に対して列重み及び/または行重みが規則性を有するようになる。   Third, for the entire parity check matrix H, column weights and / or row weights should have regularity. When a z × z unit matrix is used as the basic permutation matrix, column weights and / or row weights have regularity for the entire parity check matrix H.

第四に、全てのコードレート及び全てのコードワード大きさに対して良好な符号化または復号化性能を有するように、前記三つの種類の行列を組み合わせて前記基本行列Hを構成すべきである。最近、移動通信システムでは、可変的なコードレート及びコードワード大きさが適用されるので、前記基本行列Hを前記基本パーミュテーション行列と、前記基本パーミュテーション行列の各行を所定間隔だけシフトさせて形成した多数のパーミュテーション行列と、ゼロ行列の組み合わせによって構成するとき、全てのコードレート及び全てのコードワード大きさに対して良好な性能を有するように最適化されるべきである。 Fourth, the basic matrix Hb should be configured by combining the three kinds of matrices so as to have good encoding or decoding performance for all code rates and all codeword sizes. is there. Recently, in the mobile communication system, since the variable code rate and codeword size is applied, the base matrix H b and the base permutation matrix, each row of the base permutation matrix by a predetermined distance shift When configured by a combination of a large number of permutation matrices and zero matrices formed, it should be optimized to have good performance for all code rates and all codeword sizes.

図5A乃至図5Fは、上記のような特性を有する前記基本行列Hの好適な実施例を示した図である。図5A乃至図5Fに示した例は、コードレートが3/4である場合の基本行列で、‘0’はz×z次元の単位行列を意味し、‘−1’はz×z次元のゼロ行列を意味し、1以上の整数は、前記z×z次元の単位行列の各行を前記整数だけシフトさせて形成したパーミュテーション行列を意味する。 FIGS. 5A to 5F are diagrams showing a preferred embodiment of the basic matrix Hb having the above characteristics. The example shown in FIGS. 5A to 5F is a basic matrix when the code rate is 3/4, where “0” means a z × z-dimensional unit matrix, and “−1” indicates a z × z-dimensional unit matrix. Zero matrix means an integer of 1 or more means a permutation matrix formed by shifting each row of the z × z-dimensional unit matrix by the integer.

コードレートが1/2である場合の基本行列Hは、図6に示すように、前記コードレートが3/4である場合の基本行列の大きさを減少させて形成することができる。 As shown in FIG. 6, the basic matrix Hb when the code rate is 1/2 can be formed by reducing the size of the basic matrix when the code rate is 3/4.

図7は、上記のような特性を有する前記基本行列Hの他の例を示した図である。図7に示した例は、コードレートが2/3である場合の基本行列で、‘0’、‘−1’及びその他の1以上の整数の意味は、図5A乃至図5Fに示した例と同一である。 FIG. 7 is a diagram showing another example of the basic matrix Hb having the above characteristics. The example shown in FIG. 7 is a basic matrix when the code rate is 2/3. The meanings of '0', '-1' and other integers of 1 or more are the examples shown in FIGS. 5A to 5F. Is the same.

前記基本パーミュテーション行列は、コードワード長さの変動によって異なった次元(すなわち、z値)を有するべきであるが、全ての次元の基本パーミュテーション行列に対して基本行列を設け、これら全てを保存して符号化に用いることはメモリ節約側面で好ましくない。そのため、最も大きい次元zmaXを有する第1基本パーミュテーション行列に対する第1基本行列のみを保存し、他の次元zを有する第2基本パーミュテーション行列に対する基本行列は、符号化または復号化に必要な時ごとに前記第1基本行列を用いて生成することが好ましい。 The basic permutation matrix should have different dimensions (i.e., z values) depending on the codeword length variation. However, the basic permutation matrix is provided for the basic permutation matrix of all dimensions, It is not preferable in terms of memory saving to save and use for encoding. Therefore, only the first basic matrix for the first basic permutation matrix having the largest dimension z maX is stored, and the basic matrix for the second basic permutation matrix having the other dimension z is used for encoding or decoding. It is preferable to generate using the first basic matrix whenever necessary.

この場合、前記第1基本行列は、その元素として二つ以上のパーミュテーション行列のタイプを有する。すなわち、変動される前記基本パーミュテーション行列の次元zの全体範囲を二つ以上の範囲に分割し、各範囲に最適化されたパーミュテーション行列のタイプを設定する。例えば、変動されるzの全体範囲が10〜96である場合、前記全体範囲を10〜53までの範囲と54〜96までの範囲とに分け、各範囲に最適化された第1基本行列を構成する。このように構成すると、前記第1基本行列が二つになるが、それぞれを別途に保存せずに一つの第1基本行列の各元素として二つの値を保存することで、符号化または復号化性能を高めると同時に、メモリを節約することができる。   In this case, the first basic matrix has two or more permutation matrix types as its elements. That is, the entire range of the dimension z of the basic permutation matrix to be changed is divided into two or more ranges, and the type of permutation matrix optimized for each range is set. For example, when the entire range of z to be varied is 10 to 96, the entire range is divided into a range of 10 to 53 and a range of 54 to 96, and the first basic matrix optimized for each range is obtained. Constitute. With this configuration, the first basic matrix becomes two, but by storing two values as each element of one first basic matrix without storing each separately, encoding or decoding is performed. Memory can be saved while improving performance.

図8は、コードレートが3/4である場合の前記基本行列の他の実施例である。図8に示した基本行列は、4サイクル及び6サイクルの数を最小化し、各列の重みに規則性を持たせ、前記基本行列の各元素が全てのコードレート及びコードワード大きさに対して良好な性能を有するように、前記基本パーミュテーション行列をシフトさせることに特徴がある。図8に示した例は、図5A乃至図5Fに示した例と比較するとき、シミュレーション結果、その大きさが図5A乃至図5Fに示した例の1/4に減少しながらも、同一の性能を発揮した。   FIG. 8 shows another embodiment of the basic matrix when the code rate is 3/4. The basic matrix shown in FIG. 8 minimizes the number of 4 cycles and 6 cycles, makes the weight of each column regular, and each element of the basic matrix has the same code rate and code word size. The basic permutation matrix is shifted so as to have good performance. When the example shown in FIG. 8 is compared with the example shown in FIGS. 5A to 5F, the simulation result shows that the size is the same as that of the example shown in FIGS. Demonstrated performance.

以下、上記のような基本行列Hを用いてLDPC符号を復号化する方法を説明する。従来のLDPC符号の復号は、主にパリティ検査行列の他の表現である二部グラフ上で、検査ノードとビットノードとの間の確率値更新で信頼度を高める過程を繰り返して行われる。パリティ検査行列の他の表現である二部グラフを用いて復号化する方法は、更新された確率値を通してコードワードを決定するので、コードワードを決定する確率値の更新過程が復号器の性能に直接的な影響を及ぼす。 Hereinafter, a method for decoding an LDPC code using the basic matrix Hb as described above will be described. Conventional decoding of an LDPC code is mainly performed by repeating a process of increasing reliability by updating a probability value between a check node and a bit node on a bipartite graph which is another expression of a parity check matrix. Since the decoding method using the bipartite graph, which is another representation of the parity check matrix, determines the codeword through the updated probability value, the update process of the probability value that determines the codeword affects the performance of the decoder. Direct impact.

信頼度の更新過程は、検査ノードからビットノードへの確率値更新過程と、ビットノードから検査ノードへの確率値更新過程とに分けられる。前記検査ノードからビットノードへの確率値更新過程や、前記ビットノードから検査ノードへの確率値更新過程を行うとき、更新される自身の確率値を除いた同一列の確率値や同一行の確率値を用いて、自身の確率値を更新する。このときに用いる確率値は、多く更新されるほど、一層信頼度の高い結果(一層肯定的な影響)を復号器に与えるようになる。   The reliability update process is divided into a probability value update process from the check node to the bit node and a probability value update process from the bit node to the check node. When performing a probability value update process from the check node to the bit node or a probability value update process from the bit node to the check node, the probability value of the same column or the same row excluding its own probability value to be updated Update its own probability value with the value. As the probability value used at this time is updated more, a more reliable result (a more positive influence) is given to the decoder.

以下、復号化方法に一層肯定的な影響を及ぼすLDPC復号化方法を説明する。本発明の一実施例は、LDPC符号化された受信信号を前記パリティ検査行列を用いて復号する場合、前記パリティ検査行列の行のグループであるレイヤー単位で受信信号を復号化する方法(以下、レイヤードデコーディング(Layered decoding)と称する)を用いる。前記レイヤードデコーディングは、ビットノードから検査ノードへの確率値を更新する場合、パリティ検査行列の同一列に既に更新された値があるとき、その更新された値を用いて確率値を更新するという特徴がある。   Hereinafter, an LDPC decoding method that has a more positive influence on the decoding method will be described. According to an embodiment of the present invention, when an LDPC-encoded received signal is decoded using the parity check matrix, a method of decoding the received signal in units of layers that are groups of rows of the parity check matrix (hereinafter, Layered decoding is used. In the layered decoding, when updating a probability value from a bit node to a check node, if there is an updated value in the same column of the parity check matrix, the probability value is updated using the updated value. There are features.

前記レイヤードデコーディングは、LDPC符号の符号化及び復号化に用いるパリティ検査行列の行を複数のレイヤー単位で分けて反復復号する方法である。前記レイヤーは、前記パリティ検査行列の行をグループ化して区分する場合、各行のグループを示す。すなわち、パリティ検査行列の行を幾つかのグループに分けたとき、一つのグループがレイヤーになる。前記レイヤーは、一つの行でもある。   The layered decoding is a method of iterative decoding by dividing a row of a parity check matrix used for encoding and decoding of an LDPC code into a plurality of layers. The layer indicates a group of rows when the rows of the parity check matrix are grouped and divided. That is, when the rows of the parity check matrix are divided into several groups, one group becomes a layer. The layer is also a row.

図9は、レイヤー単位で区分された基本行列を示す図である。図9に示した基本行列は、前記レイヤードデコーディング方法を説明するための一つの例で、ここに示した数字は、前記基本パーミュテーション行列から形成された多数のパーミュテーション行列のタイプをシフト数で示したものである。   FIG. 9 is a diagram illustrating a basic matrix partitioned in units of layers. The basic matrix shown in FIG. 9 is an example for explaining the layered decoding method, and the numbers shown here indicate the types of multiple permutation matrices formed from the basic permutation matrix. This is indicated by the number of shifts.

前記レイヤードデコーディングは、パリティ検査行列Hの同一行での信頼度更新において、全ての同じ程度の更新過程を経た確率値を用いて信頼度を更新する。すなわち、従来のLDPC復号方法と同様に、二部グラフ上で検査ノードとビットノードとの間の確率値更新を行う。しかし、ビットノードから検査ノードへの確率値更新過程(すなわち、前記パリティ検査行列Hの列の確率値更新過程)においては、レイヤー単位で確率値が更新され、特定のレイヤーに含まれた確率値を更新する場合、既に更新されたレイヤーに含まれた確率値を用いるという特徴がある。前記レイヤードデコーディングは、レイヤー単位で復号化を行い、前記パリティ検査行列に含まれたレイヤー全部に対して確率値が更新されると、LDPC復号化のための一回の反復を行う。前記レイヤードデコーディングは、既に一つのレイヤーに対して確率値更新のための演算を行い、次のレイヤーに対して確率値更新のための演算を行う場合、前記一つのレイヤーで演算された結果、すなわち、信頼度の更新されたメッセージ結果を前記次のレイヤーの演算に用いることで、一層信頼度の高いメッセージを復号過程(すなわち、確率値更新過程)に用いる。その結果、上記のような確率値更新が繰り返される場合、一層信頼度の高いメッセージが確率値更新に用いられるので、検査ノードとビットノードとの間の確率値の信頼度が高くなり、復号器の性能が良好になる。図9に示した行列は、一般的な基本行列である。図9に示した行列は、レイヤードデコーディング方法によって各レイヤーを順次復号することができ、例えば、Layer1→Layer2→Layer3→Layer4→Layer5→Layer6→Layer7→Layer8の順に復号を行う。   In the layered decoding, in the reliability update in the same row of the parity check matrix H, the reliability is updated using probability values that have undergone all the same level update processes. That is, similar to the conventional LDPC decoding method, the probability value is updated between the check node and the bit node on the bipartite graph. However, in the probability value update process from the bit node to the check node (that is, the probability value update process of the column of the parity check matrix H), the probability value is updated in units of layers, and the probability value included in a specific layer Is updated, the probability value included in the already updated layer is used. In the layered decoding, decoding is performed in units of layers, and once the probability values are updated for all layers included in the parity check matrix, one iteration for LDPC decoding is performed. The layered decoding has already been performed for the update of the probability value for one layer, and when the operation for the update of the probability value is performed for the next layer, the result of the calculation for the one layer, That is, by using the message result with the updated reliability in the calculation of the next layer, a message with higher reliability is used in the decoding process (that is, the probability value updating process). As a result, when the update of the probability value as described above is repeated, since a message with higher reliability is used for the update of the probability value, the reliability of the probability value between the check node and the bit node is increased, and the decoder The performance of becomes better. The matrix shown in FIG. 9 is a general basic matrix. The matrix shown in FIG. 9 can be sequentially decoded by a layered decoding method. For example, decoding is performed in the order of Layer 1 → Layer 2 → Layer 3 → Layer 4 → Layer 5 → Layer 6 → Layer 7 → Layer 8.

以下、本発明で用いる並列処理の基本概念と、レイヤードデコーディングを並列処理方式で行うための前提条件を説明する。   The basic concept of parallel processing used in the present invention and preconditions for performing layered decoding by the parallel processing method will be described below.

図10Aは、並列処理の概念を図式化して示した図である。並列処理は、一つの作業を行うにおいて、一つの演算装置が処理していた作業を複数の演算装置が分けて処理することを意味する。並列処理の結果、一つの作業を行うために必要な時間が、並列処理に用いた演算ブロックの数に比例して減少するという肯定的な効果が発生する。ただし、並列処理を行う場合、メモリ衝突及び並列処理されるデータ間の依存性などの問題が発生し、本発明によってレイヤードデコーディングを並列処理するためには、上記のような問題を解決しなければならない。   FIG. 10A is a diagram schematically illustrating the concept of parallel processing. Parallel processing means that when a single operation is performed, a plurality of arithmetic devices divide and process the work processed by one arithmetic device. As a result of the parallel processing, a positive effect that the time required to perform one work decreases in proportion to the number of operation blocks used for the parallel processing occurs. However, when parallel processing is performed, problems such as memory collision and dependency between data to be processed in parallel occur. In order to perform layered decoding in parallel according to the present invention, the above problems must be solved. I must.

以下、上述したレイヤードデコーディングの並列処理によって生じる問題点と、本発明による問題点の解決方法を説明する。   Hereinafter, a problem caused by the parallel processing of the layered decoding described above and a method for solving the problem according to the present invention will be described.

図10Bは、並列処理によるメモリ衝突の概念を示す図である。直列処理方法の場合、一つの演算ユニットがメモリブロックを用いるので、演算する値を読み出すか、演算結果を保存するにおいて問題が発生しない。しかし、多数個の演算ユニットが同時に作動する並列処理方法においては、二つ以上の演算ユニットが同時に同一位置のメモリブロックに接近する場合、メモリ衝突が起きる。LDPC復号のための確率値更新ユニットが同時に同一位置のメモリに接近する場合、前記メモリ衝突が発生しうる。   FIG. 10B is a diagram illustrating the concept of memory collision by parallel processing. In the case of the serial processing method, since one arithmetic unit uses a memory block, there is no problem in reading a value to be calculated or storing a calculation result. However, in a parallel processing method in which a large number of arithmetic units operate simultaneously, a memory collision occurs when two or more arithmetic units simultaneously approach a memory block at the same position. If the probability value update units for LDPC decoding simultaneously approach the memory at the same position, the memory collision may occur.

LDPC復号化に並列処理方法を適用するためには、メモリブロックに対する同時接近のみならず、同時に処理しようとするデータ間の依存性などの問題をなくすべきである。すなわち、複数個の演算ブロックのうち何れか一つの演算ブロックの出力値が、同時に他の演算ブロックの入力値になるべきであれば、同時に処理せずに、その依存性によって順次演算しなければならない。   In order to apply the parallel processing method to the LDPC decoding, problems such as not only simultaneous access to the memory block but also dependency between data to be processed simultaneously should be eliminated. That is, if the output value of any one of a plurality of calculation blocks should be the input value of another calculation block at the same time, it must be sequentially calculated according to its dependence without processing at the same time. Don't be.

本発明に係るLDPC復号化方法の一実施例は、前記パリティ検査行列をレイヤー単位で区分して各レイヤーを特定の順に処理し、特定のレイヤーに対しては、上述したメモリ衝突及び並列処理するデータ間の依存性などの問題を解決して前記特定のレイヤーを並列処理方式で復号するという特徴がある。本発明の一実施例は、前記特定のレイヤーに対して並列処理方式でデータ処理を行うために、特定のレイヤー間に重畳部分のないパリティ検査行列を提供する。本発明の一実施例に係るパリティ検査行列において、前記パリティ検査行列の特定のレイヤーの非ゼロ元素は、列方向に互いに異なる位置に存在する。すなわち、特定のレイヤーに対しては、前記パリティ検査行列の重みの存在する位置が列方向に互いに異なっている。   In one embodiment of the LDPC decoding method according to the present invention, the parity check matrix is divided in units of layers and each layer is processed in a specific order, and the above-described memory collision and parallel processing are performed for a specific layer. There is a feature that the specific layer is decoded by a parallel processing method by solving a problem such as dependency between data. An embodiment of the present invention provides a parity check matrix having no overlapping portion between specific layers in order to perform data processing on the specific layers in a parallel processing manner. In the parity check matrix according to an embodiment of the present invention, the non-zero elements in a specific layer of the parity check matrix exist at different positions in the column direction. That is, for a specific layer, the positions where the parity check matrix weights are different from each other in the column direction.

上述したように、一般的なLDPC符号の復号方法では、H行列の全ての行内での確率値更新が行われ、引き続いて、全ての列に対して確率値更新が行われる。その反面、前記レイヤードデコーディングは、各行の確率値を更新するとき、予め分けておいたグループ単位(すなわち、レイヤー単位)で確率値を更新する。この復号方法は、二番目以後のグループに該当する確率値を更新するとき、以前のグループで既に更新された一層信頼度の高い確率値を用いて計算することで、復号性能が良好になる。前記レイヤードデコーディングには上記のような利点があるが、従来のパリティ検査行列を特定のレイヤー単位で区分し、前記特定のレイヤーに対して並列処理方式でデータを処理すると、前記特定のレイヤーの並列処理過程で上述したメモリ衝突及び並列処理するデータ間の依存性などの問題点などを避けるために、同時に一つのレイヤーのみを処理すべきであって、復号に遅延が発生する。しかし、本実施例で提案するように、特定のレイヤー間に列重みの存在する位置が重畳しないように前記パリティ検査行列を設計する場合、同時に多数個のレイヤーに対する並列処理を行える。   As described above, in a general LDPC code decoding method, probability values are updated in all rows of the H matrix, and subsequently, probability values are updated for all columns. On the other hand, in the layered decoding, when updating the probability value of each row, the probability value is updated in a group unit (that is, a layer unit) divided in advance. In this decoding method, when the probability values corresponding to the second and subsequent groups are updated, the decoding performance is improved by calculating using the probability values with higher reliability already updated in the previous group. The layered decoding has the advantages as described above. However, when the conventional parity check matrix is partitioned in a specific layer unit and data is processed in parallel processing for the specific layer, the layered decoding is performed. In order to avoid the above-described problems such as memory collision and dependency between data to be processed in parallel in the parallel processing process, only one layer should be processed at the same time, which causes a delay in decoding. However, as proposed in the present embodiment, when the parity check matrix is designed so that the positions where column weights do not overlap between specific layers, parallel processing for a large number of layers can be performed simultaneously.

以下、本発明の一実施例によって、特定のレイヤーに対して重畳されないパリティ検査行列を用いてレイヤードデコーディングを並列処理する方法を説明する。   Hereinafter, a method of parallel processing layered decoding using a parity check matrix that is not superimposed on a specific layer according to an embodiment of the present invention will be described.

図11は、コードレートが1/2である場合の前記基本行列の他の実施例である。前記実施例は、図11の基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、前記実施例は、図11に示した基本行列と前記基本パーミュテーションを用いて生成されるパリティ検査行列のレイヤーが、前記基本パーミュテーション行列の行の個数だけの行からなる場合の一例である。結果的に、図11において一つのレイヤーに含まれる行の個数は、図11に示した基本行列による基本パーミュテーション行列の行の個数と同一である。図11に示した基本行列は、効果的な並列処理のために提案されたものである。レイヤードデコーディングにおいて、図11に示した基本行列の行の順序を1→7→2→8→3→9→4→10→5→11→6→12と決定した場合、前記基本行列の任意の二つの行(例えば、1番目行と7番目行)に対して、非ゼロ成分は任意の列方向に互いに重畳しない。前記基本行列では、任意の二つの行(例えば、1番目行と7番目行)に対して、0以上のシフト数を有する成分が列方向に重畳しない。例えば、8番目行は、2番目行または3番目行と比較したとき、任意の列方向に0以上のシフト数を有する成分が互いに重畳しないことが分かる。また、図11に示した基本行列によって生成されるパリティ検査行列を基準にして説明すると、前記基本行列の一つの行は、前記生成されたパリティ検査行列の一つのレイヤーを示すが、前記生成されたパリティ検査行列の各レイヤー間の重みの存在する位置は列方向に重畳しない。   FIG. 11 shows another embodiment of the basic matrix when the code rate is ½. In the embodiment, the rows of the parity check matrix generated by the basic matrix of FIG. 11 are grouped into one layer according to the size of the basic permutation matrix with respect to the basic matrix. That is, in the embodiment, the layer of the parity check matrix generated using the basic matrix and the basic permutation shown in FIG. 11 is composed of the number of rows of the basic permutation matrix. It is an example. As a result, the number of rows included in one layer in FIG. 11 is the same as the number of rows of the basic permutation matrix based on the basic matrix shown in FIG. The basic matrix shown in FIG. 11 has been proposed for effective parallel processing. In the layered decoding, when the order of the rows of the basic matrix shown in FIG. 11 is determined as 1 → 7 → 2 → 8 → 3 → 9 → 4 → 10 → 5 → 11 → 6 → 12 For the two rows (for example, the first row and the seventh row), the non-zero components do not overlap each other in an arbitrary column direction. In the basic matrix, components having a shift number of 0 or more are not superimposed in the column direction for any two rows (for example, the first row and the seventh row). For example, when the eighth row is compared with the second or third row, it can be seen that components having a shift number of 0 or more in any column direction do not overlap each other. In addition, a description will be given with reference to a parity check matrix generated by the basic matrix shown in FIG. 11. One row of the basic matrix indicates one layer of the generated parity check matrix. The position where the weight between each layer of the parity check matrix exists is not superimposed in the column direction.

図12は、コードレートが1/2である場合の前記基本行列の他の実施例である。図12に示した基本行列は、一層効果的な並列処理のために提案されたものである。図12に示した基本行列は、次のような二つの行のペア(1,7)、(2,8)、(3,9)、(4,10)、(5,11)、(6,12)に対して、0以上のシフト数を有する成分が任意の列方向に重畳しないようにデザインされた。図11及び図12の実施例によると、レイヤードデコーディングのための具現過程で、効率的な並列処理が可能であるという特徴を有する。   FIG. 12 shows another embodiment of the basic matrix when the code rate is ½. The basic matrix shown in FIG. 12 is proposed for more effective parallel processing. The basic matrix shown in FIG. 12 has the following two row pairs (1, 7), (2, 8), (3, 9), (4, 10), (5, 11), (6 , 12), a component having a shift number of 0 or more is designed not to be superimposed in an arbitrary column direction. 11 and 12 has a feature that efficient parallel processing is possible in an implementation process for layered decoding.

以下、本発明の他の一実施例によって、特定のレイヤー間に重畳部分のない基本行列のレイヤーの順序を調整し、前記調整された基本行列によって生成されるパリティ検査行列を用いてレイヤードデコーディングを並列処理する方法を説明する。   Hereinafter, according to another embodiment of the present invention, the order of layers of a base matrix having no overlapping portion between specific layers is adjusted, and layered decoding is performed using a parity check matrix generated by the adjusted base matrix. A method of parallel processing will be described.

図13Aは、本発明の一実施例に係るレイヤードデコーディングのための基本行列の一実施例を示す図である。前記基本行列において、‘−1’は、ゼロ行列を示し、‘#’は、基本パーミュテーション行列を0以上の任意の整数だけ行または列方向にシフトさせて形成する任意のパーミュテーション行列を示す。前記実施例は、図13Aに示した基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、各レイヤーに含まれる行の個数は、図13Aに示した基本行列による基本パーミュテーション行列の行の個数と同一である。したがって、前記基本行列によって生成されるパリティ検査行列の一つのレイヤーは、前記基本行列の一つの行に対応する。以下、パリティ検査行列の隣接したレイヤー間の重みの存在する位置が重畳しないように、前記基本行列の行の順序を調整して新しいパリティ検査行列を設計する方法を説明する。前記基本行列には二重対角部分が存在するので、LDPC復号性能に影響を与えない行の順序を変え、本発明の一実施例に係るパリティ検査行列を設計することができる。図13Bは、図13Aの特定の行間に0以上のシフト数を有する成分が互いに重畳しないように、すなわち、特定の行に対して列重みが1以下になるように行の順序を調整した基本行列の一例である。図13Bの場合、Layer0とLayer3は、如何なる列に対しても列重みの存在する位置が重畳しない。図13Cは、図13Bに示した基本行列を、並列処理可能なレイヤー単位で表示した図である。図13Bも、図13Cに示した基本行列によって生成されるパリティ検査行列を用いてLDPC復号化を行う場合、2個のレイヤー(例えば、Layer0とLayer3)に対して同時に演算を行える。すなわち、図13Dに示すように、Layer0、6、4、2とLayer3、1、7、5を互いに並列処理して各レイヤーを同時に処理することができる。その結果、本発明の一実施例に係るパリティ検査行列を用いてLDPC復号化を行う場合、二つの演算ユニットを通して二つのLDPC符号を一度に復号化するときと同一の効果を得られ、復号時間が最大50%にまで減少するという効果を得られる。   FIG. 13A is a diagram illustrating an example of a basic matrix for layered decoding according to an embodiment of the present invention. In the basic matrix, “−1” indicates a zero matrix, and “#” indicates an arbitrary permutation matrix formed by shifting the basic permutation matrix by an arbitrary integer of 0 or more in the row or column direction. Indicates. In the embodiment, the rows of the parity check matrix generated by the basic matrix shown in FIG. 13A are grouped into one layer according to the size of the basic permutation matrix with respect to the basic matrix. That is, the number of rows included in each layer is the same as the number of rows of the basic permutation matrix by the basic matrix shown in FIG. 13A. Accordingly, one layer of the parity check matrix generated by the basic matrix corresponds to one row of the basic matrix. Hereinafter, a method for designing a new parity check matrix by adjusting the row order of the basic matrix so that positions where weights between adjacent layers of the parity check matrix do not overlap will be described. Since the base matrix has a double diagonal portion, it is possible to change the order of the rows without affecting the LDPC decoding performance and to design the parity check matrix according to an embodiment of the present invention. FIG. 13B is a basic diagram in which the order of the rows is adjusted so that components having a shift number of 0 or more do not overlap each other between the specific rows in FIG. 13A, that is, the column weight is 1 or less for a specific row. It is an example of a matrix. In the case of FIG. 13B, in Layer 0 and Layer 3, the position where the column weight exists is not superimposed on any column. FIG. 13C is a diagram showing the basic matrix shown in FIG. 13B in units of layers that can be processed in parallel. In FIG. 13B, when LDPC decoding is performed using the parity check matrix generated by the basic matrix shown in FIG. 13C, the calculation can be performed simultaneously on two layers (for example, Layer 0 and Layer 3). That is, as shown in FIG. 13D, Layers 0, 6, 4, and 2 and Layers 3, 1, 7, and 5 can be processed in parallel to process each layer simultaneously. As a result, when performing LDPC decoding using a parity check matrix according to an embodiment of the present invention, the same effect as when decoding two LDPC codes at once through two arithmetic units can be obtained, and decoding time can be increased. Can be reduced to a maximum of 50%.

図14は、コードレートが2/3である場合の前記基本行列の他の実施例を示した図である。前記基本行列において、‘−1’は、ゼロ行列を示し、任意の整数は、基本パーミュテーション行列を0以上の任意の整数だけ行または列方向にシフトさせて形成する任意のパーミュテーション行列を示す。図14に示した基本行列において、‘X’は、0から95までの任意の整数を意味する値で、86、89、95のうち何れか一つの値にすることが好ましい。最も好ましくは、X=95である。図14に示した基本行列は、並列処理特徴を有し、高い性能を有するように提案された。前記並列処理特徴は、本願発明によってレイヤードデコーディングを並列処理する復号化方法が適用されることを意味する。前記実施例は、図14に示した基本行列によって生成されるパリティ検査行列の行を、前記基本行列に対する基本パーミュテーション行列の大きさによって一つのレイヤーにグループ化する。すなわち、図14において各レイヤーに含まれる行の個数は、図14に示した基本行列による基本パーミュテーション行列の行の個数と同一である。前記基本行列の行を1、2、3、4、5、6、7、8のインデックスによって区分する場合、前記各行を互いに交換して生成される基本行列は、互いに隣接する行間に0以上のシフト数を有する成分が互いに重畳しない。例えば、最初の行は、4番目行と比較したとき、任意の列方向にも0以上のシフト数を有する成分が互いに重畳しないことが分かる。また、図14に示した基本行列によって生成されるパリティ検査行列を基準にして説明すると、前記基本行列の一つの行は、前記生成されたパリティ検査行列の一つのレイヤーを示すが、前記生成されたパリティ検査行列の各レイヤー間の重みの存在する位置が列方向に重畳しない。   FIG. 14 is a diagram showing another embodiment of the basic matrix when the code rate is 2/3. In the basic matrix, “−1” indicates a zero matrix, and an arbitrary integer is an arbitrary permutation matrix formed by shifting the basic permutation matrix by an arbitrary integer of 0 or more in the row or column direction. Indicates. In the basic matrix shown in FIG. 14, “X” is a value that represents an arbitrary integer from 0 to 95, and is preferably any one of 86, 89, and 95. Most preferably, X = 95. The basic matrix shown in FIG. 14 has been proposed to have parallel processing characteristics and high performance. The parallel processing feature means that a decoding method for parallel processing layered decoding is applied according to the present invention. In the embodiment, the rows of the parity check matrix generated by the basic matrix shown in FIG. 14 are grouped into one layer according to the size of the basic permutation matrix for the basic matrix. That is, in FIG. 14, the number of rows included in each layer is the same as the number of rows of the basic permutation matrix based on the basic matrix shown in FIG. When the rows of the basic matrix are divided by the indices 1, 2, 3, 4, 5, 6, 7, and 8, the basic matrix generated by exchanging the rows with each other is zero or more between adjacent rows. Components having shift numbers do not overlap each other. For example, when the first row is compared with the fourth row, it can be seen that components having a shift number of 0 or more in any column direction do not overlap each other. Also, referring to the parity check matrix generated by the basic matrix shown in FIG. 14, one row of the basic matrix indicates one layer of the generated parity check matrix, but the generated The position where the weight between each layer of the parity check matrix exists does not overlap in the column direction.

図15は、図14に示した前記基本行列において、上述した条件を満足する行の交換によって設けられる基本行列の多様な例の一つである。図15に示した基本行列は、図14に示した基本行列のインデックスを1−4−7−2−5−8−3−6の順に交換した一例である。図15は、1−4−7−2−5−8−3−6のインデックス順序からなる基本行列の最後の行と最初の行を容易に比較するために、前記最初の行を追加(すなわち、1−4−7−2−5−8−3−6−(1))して示した。   FIG. 15 is one of various examples of the basic matrix provided by exchanging rows satisfying the above-described conditions in the basic matrix shown in FIG. The basic matrix shown in FIG. 15 is an example in which the indexes of the basic matrix shown in FIG. 14 are exchanged in the order of 1-4-7-2-5-8-3-6. FIG. 15 adds the first row (i.e., to easily compare the first row with the last row of the basic matrix consisting of the index order 1-4-4-2-5-8-3-6). 1-4-7-2-5-8-3-6- (1)).

図15に示した基本行列の行を互いに交換して発生する全ての基本行列は、図14に示した基本行列が定義するLDPCコードと同一のLDPCコードを定義する。したがって、デコーディングびエンコーディングにおいて行が互いに交換された基本行列を用いる場合も、図8に示した基本行列と同一の性能を発揮するデコーディング及びエンコーディングを行える。   All the basic matrices generated by exchanging the rows of the basic matrix shown in FIG. 15 define the same LDPC code as the LDPC code defined by the basic matrix shown in FIG. Therefore, even when a basic matrix whose rows are exchanged in decoding and encoding is used, decoding and encoding that exhibit the same performance as the basic matrix shown in FIG. 8 can be performed.

以上の説明において高い性能を発揮することは、例えば、フレームエラー率(Frame Error Rate:FER)が良好であることを意味する。また、同一の性能を発揮するデコーディングは、同一の復号化性能を示すデコーディング方法を意味し、同一の性能を発揮するエンコーディングは、同一のコードワードを生成することを意味する。   In the above description, exhibiting high performance means that, for example, a frame error rate (FER) is good. In addition, decoding that exhibits the same performance means a decoding method that exhibits the same decoding performance, and encoding that exhibits the same performance means that the same codeword is generated.

以下、本発明で提案した多様な基本行列を用いてLDPC復号化作業を行うLDPC復号器を説明する。図16は、本発明に係るLDPC復号器の一実施例を示すブロック図である。前記LDPC復号器1000は、CNU(Check Node Update Unit)ブロック1100、制御ブロック1200、VNU(Variable Node Update Unit)ブロック1300及びメモリブロック1400を含んで構成される。前記CNUブロック1100は、検査ノードの確率値更新を行い、少なくとも一つ以上のCNU1110を備える。前記CNU1110は、前記検査ノードの確率値更新を行う演算ユニットである。前記制御ブロック1200は、前記復号器1000の各ユニットに対する動作を制御する制御ユニット1210と、パリティ検査行列の構造によって前記CNUブロック1100及び前記メモリブロック1400を制御するCNUルーティングネットワーク1220と、前記VNUブロック1300と前記メモリブロック1400を制御するVNUルーティングネットワーク1230と、パリティ検査行列の構造に関する情報などを保存するパリティ検査行列インデックス保存部1240と、更新された確率値を用いて復号値を決定し、決定された復号値を検査する硬判定部(Hard decision unit)1250と、を含む。前記VNUブロック1100は、ビットノードの確率値更新を行い、少なくとも一つ以上のVNU1310を備える。前記VNU1310は、前記検査ノードの確率値更新を行う演算ユニットである。前記制御ブロック1200によって制御されるCNU1110とVNU1310は、前記H行列の非ゼロ成分に対して確率値を計算して更新するが、前記計算された確率値は、前記メモリ部1400に保存される。前記メモリ部1400は、検査ノードからビットノードへの確率値更新のために計算された確率値を保存するR−メモリ1410と、ビットノードから検査ノードへの確率値更新のために計算された確率値(例えば、無線チャネルから受信されるLog Likelihood Ratio値)を保存する受信LLRメモリ1420と、ビットノードから検査ノードへの確率値更新のために計算された確率値を保存するQ−メモリ1430と、を含む。   Hereinafter, an LDPC decoder that performs LDPC decoding using various basic matrices proposed in the present invention will be described. FIG. 16 is a block diagram showing an embodiment of the LDPC decoder according to the present invention. The LDPC decoder 1000 includes a CNU (Check Node Update Unit) block 1100, a control block 1200, a VNU (Variable Node Update Unit) block 1300, and a memory block 1400. The CNU block 1100 updates the probability value of the check node and includes at least one CNU 1110. The CNU 1110 is an arithmetic unit that updates the probability value of the check node. The control block 1200 includes a control unit 1210 that controls the operation of each unit of the decoder 1000, a CNU routing network 1220 that controls the CNU block 1100 and the memory block 1400 according to a parity check matrix structure, and the VNU block. 1300, a VNU routing network 1230 that controls the memory block 1400, a parity check matrix index storage unit 1240 that stores information on the structure of the parity check matrix, and the like, and a decoded value is determined using the updated probability value. A hard decision unit 1250 that inspects the decoded value. The VNU block 1100 updates probability values of bit nodes and includes at least one VNU 1310. The VNU 1310 is an arithmetic unit that updates the probability value of the check node. The CNU 1110 and VNU 1310 controlled by the control block 1200 calculate and update the probability value for the non-zero component of the H matrix, and the calculated probability value is stored in the memory unit 1400. The memory unit 1400 stores an R-memory 1410 that stores a probability value calculated for updating a probability value from a check node to a bit node, and a probability calculated for updating a probability value from the bit node to the check node. A receive LLR memory 1420 that stores values (eg, Log Likelihood Ratio values received from a radio channel), and a Q-memory 1430 that stores probability values calculated for updating probability values from bit nodes to check nodes. ,including.

以下、前記各ユニットを説明する。前記受信LLRメモリ1420は、復号すべき受信信号に対する確率値、例えば、受信信号のコードワードに対するLLR値を保存するためのメモリである。また、前記R−メモリ1410は、特定の検査ノードでの確率値更新の結果Rmjを保存し、前記Q−メモリ1430は、特定のビットノードでの確率値更新の結果L(qmj)を保存する。前記制御ユニット1210は、各ユニットの動作順序及び各ユニットの動作タイミングを制御し、前記パリティ検査行列インデックス保存部1240は、前記パリティ検査行列の重みの位置などに関する情報を保存する。また、前記CNUルーティングネットワーク1220は、前記パリティ検査行列インデックス保存部1240から前記パリティ検査行列に関する情報を獲得し、前記CNU1110と前記メモリ部1400のメモリとを適切に連結する。また、前記VNUルーティングネットワーク1230は、前記パリティ検査行列インデックス保存部1240から前記パリティ検査行列に関する情報を獲得し、前記VNU1310と前記メモリ部1400のメモリとを適切に連結する。前記硬判定部1250は、前記Q−メモリ1430を用いて復号値を決定し、前記決定された復号値c’を検査するユニットで、前記復号値c’がHc’=0の検査式を満足する場合、前記復号値c’を真値として出力し、前記検査式を満足しない場合、所定の最大反復復号回数以内で復号を反復する。 Hereinafter, each unit will be described. The reception LLR memory 1420 is a memory for storing a probability value for a received signal to be decoded, for example, an LLR value for a codeword of the received signal. The R-memory 1410 stores a result R mj of a probability value update at a specific check node, and the Q-memory 1430 stores a result L (q mj ) of a probability value update at a specific bit node. save. The control unit 1210 controls the operation order of each unit and the operation timing of each unit, and the parity check matrix index storage unit 1240 stores information on the positions of weights of the parity check matrix. In addition, the CNU routing network 1220 acquires information on the parity check matrix from the parity check matrix index storage unit 1240, and appropriately connects the CNU 1110 and the memory of the memory unit 1400. In addition, the VNU routing network 1230 acquires information on the parity check matrix from the parity check matrix index storage unit 1240, and appropriately connects the VNU 1310 and the memory of the memory unit 1400. The hard decision unit 1250 is a unit that determines a decoded value using the Q-memory 1430 and inspects the determined decoded value c ′, and the decoded value c ′ satisfies a check expression of Hc ′ = 0. In this case, the decoded value c ′ is output as a true value, and when the check expression is not satisfied, decoding is repeated within a predetermined maximum number of iterative decoding.

図16に示した復号器1000は、別途のメモリ(図示せず)または前記パリティ検査行列インデックス保存部1240に保存されたパリティ検査行列を用いて受信信号を復号化するか、基本行列及び基本パーミュテーション行列を通して生成されたパリティ検査行列を用いて受信信号を復号化することができる。前記基本行列及び基本パーミュテーション行列を通してパリティ検査行列を生成する場合、前記復号器1000は、前記基本行列と基本パーミュテーション行列を保存する保存部(図示せず)と、前記基本行列及び基本パーミュテーション行列を用いて前記パリティ検査行列を生成するパリティ検査行列生成部(図示せず)を含むことが好ましい。また、図16に示した復号器1000は、パリティ検査行列の行の順序(例えば、レイヤーの順序)を調整し、新しいパリティ検査行列を生成することができる。この場合、前記復号器1000は、パリティ検査行列の行の順序を調整するパリティ検査行列調整部(図示せず)を含むことが好ましい。   16 may decode the received signal using a parity check matrix stored in a separate memory (not shown) or the parity check matrix index storage unit 1240, or may generate a base matrix and a base par. The received signal can be decoded using a parity check matrix generated through a mutation matrix. When generating a parity check matrix through the basic matrix and the basic permutation matrix, the decoder 1000 includes a storage unit (not shown) that stores the basic matrix and the basic permutation matrix, and the basic matrix and the basic matrix. It is preferable to include a parity check matrix generation unit (not shown) that generates the parity check matrix using a permutation matrix. In addition, the decoder 1000 illustrated in FIG. 16 can adjust the row order (for example, layer order) of the parity check matrix and generate a new parity check matrix. In this case, the decoder 1000 preferably includes a parity check matrix adjustment unit (not shown) that adjusts the order of the rows of the parity check matrix.

以下、前記LDPC復号器1000の動作を説明する。前記LDPC復号器1000は、LDPC復号アルゴリズムの一つであるLog BP(Log Belief Propagation)アルゴリズムを用いて復号を行える。前記復号器1000は、初期化段階、検査ノード更新段階、ビットノード更新段階及び硬判定段階によって動作を行う。前記初期化段階は、送信側から伝送される受信信号に対する確率値を前記受信LLRメモリ1420に保存し、前記受信LLRメモリ1420に保存された確率値を、前記パリティ検査行列インデックス保存部1240に保存されたパリティ検査行列の重みに関する情報を用いて前記Q−メモリ1430の特定位置に保存する段階を含む。前記検査ノード更新段階は、前記Q−メモリ1430に保存された確率値を用いて検査ノード更新、すなわち、検査ノードからビットノードへの更新を行い、その結果を前記R−メモリ1410に保存する段階を含む。前記ビットノード更新段階は、前記R−メモリ1410に保存された確率値を用いてビットノード更新、すなわち、ビットノードから検査ノードへの更新を行い、その結果を前記Q−メモリ1430に保存する段階を含む。前記硬判定段階は、前記Q−メモリ1430に保存された確率値を用いて臨時的に復号値c’を決定し、前記決定された復号値c’を検査し、検査結果によって前記復号値c’が真値である場合に前記真値を出力し、前記復号値c’が真値でない場合、特定の反復復号回数以内で前記検査ノード更新段階及びビットノード更新段階を反復する段階を含む。
[数学式3]
Hereinafter, the operation of the LDPC decoder 1000 will be described. The LDPC decoder 1000 can perform decoding using a Log BP (Log Belief Propagation) algorithm which is one of LDPC decoding algorithms. The decoder 1000 operates in an initialization stage, a check node update stage, a bit node update stage, and a hard decision stage. In the initialization step, the probability value for the received signal transmitted from the transmission side is stored in the reception LLR memory 1420, and the probability value stored in the reception LLR memory 1420 is stored in the parity check matrix index storage unit 1240. And storing information at a specific position of the Q-memory 1430 using information on the weight of the parity check matrix. In the check node update step, check node update using the probability value stored in the Q-memory 1430, that is, update from check node to bit node, and storing the result in the R-memory 1410 is performed. including. The bit node updating step updates the bit node using the probability value stored in the R-memory 1410, that is, updates the bit node to the check node, and stores the result in the Q-memory 1430. including. The hard decision step temporarily determines a decoded value c ′ using a probability value stored in the Q-memory 1430, checks the determined decoded value c ′, and determines the decoded value c ′ according to a check result. If 'is a true value, the true value is output, and if the decoded value c ′ is not a true value, the check node update step and the bit node update step are repeated within a specific number of iterations.
[Formula 3]

Figure 0004832447
前記復号器1000で用いるパリティ検査行列Hが前記数学式3と同一であるとき、前記R−メモリ1410と前記Q−メモリ1430は、前記パリティ検査行列の非ゼロ成分、すなわち、1が存在する成分の位置の値を保存する役割をする。したがって、前記R−メモリ1410と前記Q−メモリ1430は、次のような位置の値を保存する役割をする。
Figure 0004832447
When the parity check matrix H used in the decoder 1000 is the same as the mathematical formula 3, the R-memory 1410 and the Q-memory 1430 have a non-zero component of the parity check matrix, that is, a component in which 1 exists. It serves to store the position value of. Accordingly, the R-memory 1410 and the Q-memory 1430 serve to store the following position values.

Figure 0004832447
ただし、前記R−メモリ1410及び前記Q−メモリ1430は、前記非ゼロ成分の位置に該当する値のみを保存すればよいので、図17のような構造で前記確率値更新のための演算結果を保存することができる。したがって、LDPC復号化のために必要なメモリは、H行列の重みに比例する。図17に示したパリティ検査行列の重みに関する位置情報は、前記パリティ検査行列インデックス保存部1240に保存される。上述したように、前記復号器1000は、基本行列及び基本パーミュテーション行列を用いてパリティ検査行列を生成して復号化作業を行うか、特定のメモリに保存されたパリティ検査行列を用いて復号化作業を行うか、任意の方法によって生成されたパリティ検査行列を用いて復号化作業を行う。以下で説明されるパリティ検査行列は、基本行列でない実際のパリティ検査行列を意味する。前記パリティ検査行列は、基本行列及び基本パーミュテーション行列を用いて生成されるか、特定のメモリや外部装置に保存されたパリティ検査行列を獲得して生成されるが、これらに限定されることはない。
Figure 0004832447
However, since the R-memory 1410 and the Q-memory 1430 need only store the value corresponding to the position of the non-zero component, the calculation result for updating the probability value in the structure as shown in FIG. Can be saved. Therefore, the memory required for LDPC decoding is proportional to the weight of the H matrix. The location information on the parity check matrix weight shown in FIG. 17 is stored in the parity check matrix index storage 1240. As described above, the decoder 1000 generates a parity check matrix using a basic matrix and a basic permutation matrix, and performs a decoding operation or decodes using a parity check matrix stored in a specific memory. Or a decoding operation is performed using a parity check matrix generated by an arbitrary method. The parity check matrix described below means an actual parity check matrix that is not a basic matrix. The parity check matrix may be generated using a basic matrix and a basic permutation matrix, or may be generated by acquiring a parity check matrix stored in a specific memory or an external device, but is not limited thereto. There is no.

図18は、前記数学式3のH行列を用いて復号化を行う復号器のCNU、VNU及びメモリの連結形態の一例を示す図である。図18に示した復号器は、4個のCNUと、8個のVNUとを備えた場合の一例である。図19A乃至図19Hは、図18に示した復号器を用いて復号化を行う場合、受信信号に対する確率値が入力される初期化過程から、一回の反復復号を行う過程までを示す図である。図19A乃至図19Hの前記R−メモリ1410及び前記Q−メモリ1430に表示された座標は、前記メモリを図17に示した形態にしたときのメモリアドレスを示す。   FIG. 18 is a diagram illustrating an example of a connection form of a CNU, a VNU, and a memory of a decoder that performs decoding using the H matrix of the mathematical formula 3. The decoder shown in FIG. 18 is an example in the case of including 4 CNUs and 8 VNUs. 19A to 19H are diagrams illustrating a process from an initialization process in which a probability value for a received signal is input to a process of performing one iteration decoding when decoding is performed using the decoder illustrated in FIG. is there. The coordinates displayed in the R-memory 1410 and the Q-memory 1430 in FIGS. 19A to 19H indicate memory addresses when the memory is configured as shown in FIG.

図19Aは、LDPC復号において初期化段階を示す図である。図19Aに示した成分は、H行列の非ゼロ成分を示すが、送信側から受信された確率値が前記非ゼロ成分に該当するメモリアドレスに入力される。   FIG. 19A is a diagram illustrating an initialization stage in LDPC decoding. The component shown in FIG. 19A indicates a non-zero component of the H matrix, and the probability value received from the transmission side is input to the memory address corresponding to the non-zero component.

図19A乃至図19Eは、検査ノードからビットノードへの確率値更新を示す図である。前記特定位置の確率値更新は、特定の行において自身の成分を除いた残りの成分を用いて自身の成分を更新する作業である。図19F乃至19Hは、ビットノードから検査ノードへの確率値更新を示す図である。前記特定位置の確率値更新は、特定の列において自身の成分を除いた残りの成分を用いて自身の成分を更新する作業である。   19A to 19E are diagrams illustrating probability value update from a check node to a bit node. The update of the probability value at the specific position is an operation of updating the own component using the remaining components excluding the own component in a specific row. 19F to 19H are diagrams illustrating probability value update from a bit node to a check node. The update of the probability value at the specific position is an operation of updating the own component using the remaining components excluding the own component in the specific column.

図19Hまでの過程を行った後、前記Q−メモリ1430を参照してコードワードを臨時的に決定し、臨時的に決定されたコードワードc’が検査式Hc’=0を満足するかどうかを確認する。前記検査式を満足しない場合、図19B乃至図19Hの過程を反復するようになる。既に設定された回数だけの反復があるか、前記検査式を満足するコードワードを得た場合、前記過程が終了される。   After performing the process up to FIG. 19H, the code word is temporarily determined with reference to the Q-memory 1430, and whether or not the temporarily determined code word c ′ satisfies the check expression Hc ′ = 0. Confirm. If the inspection formula is not satisfied, the processes of FIGS. 19B to 19H are repeated. If there has been a set number of iterations or a codeword satisfying the check equation is obtained, the process is terminated.

以下、並列処理が適用されたレイヤードデコーディングを並列処理するLDPC復号器1000の動作を説明する。   Hereinafter, the operation of the LDPC decoder 1000 that performs parallel processing on layered decoding to which parallel processing is applied will be described.

本発明の一実施例によって、前記LDPC復号器1000のCNU1110及びVNU1310は、下記の数学式4のような演算を通して確率値を更新する。下記の数学式4は、一回の反復復号を行うときに用いられる数式である。
[数学式4]
According to an embodiment of the present invention, the CNU 1110 and VNU 1310 of the LDPC decoder 1000 update the probability value through an operation such as Equation 4 below. The following mathematical formula 4 is a mathematical formula used when performing iterative decoding once.
[Formula 4]

Figure 0004832447
上記の数学式で用いられる変数は、次の通りである。
Figure 0004832447
The variables used in the above mathematical formula are as follows.

Figure 0004832447
L(qmj):m番目のビットノードからj番目の検査ノードに連結されたLLR(Log Likelihood Ratio)値
L(q):j番目のビットノードの事後LLR値(a posterior LLR value)
mj:j番目の検査ノードからm番目のビットノードに連結されたLLR値
mj:j番目の検査ノードからm番目のビットノードに連結されたLLR値を計算するための中間変数(dummy variable)
mj:j番目の検査ノードからm番目のビットノードに連結されたLLR値の符号を計算するための中間変数。
Figure 0004832447
L (q mj ): LLR (Log Likelihood Ratio) value concatenated from the mth bit node to the jth check node L (q j ): a posteriori LLR value of the jth bit node (a positive LLR value)
R mj : LLR value concatenated from the jth check node to the mth bit node A mj : Intermediate variable for calculating the LLR value concatenated from the jth check node to the mth bit node (dummy variable) )
S mj : An intermediate variable for calculating the sign of the LLR value connected from the jth check node to the mth bit node.

m:パリティ検査行列の検査ノードインデックス
j:パリティ検査行列のビットノードインデックス
下記の数学式5は、受信信号のLLRの一例で、下記の数学式6は、本発明の一実施例に係る復号器1000が用いるパリティ検査行列の一例である。
[数学式5]
m: Check node index of parity check matrix j: Bit node index of parity check matrix Equation 5 below is an example of an LLR of a received signal, and Equation 6 below is a decoder according to an embodiment of the present invention. 1000 is an example of a parity check matrix used by 1000.
[Mathematical formula 5]

Figure 0004832447
[数学式6]
Figure 0004832447
[Formula 6]

Figure 0004832447
上記の数学式6の行列は、本発明の一実施例による復号器1000で用いるパリティ検査行列の一例である。前記行列において、前記パリティ検査行列の一つの行は、一つのレイヤーを示す。前記各レイヤーは、互いに隣接するレイヤーと重畳しない。前記復号器1000のCNU1110及びVNU1310の個数は、前記パリティ検査行列の構造によって決定することが好ましい。また、重畳しないレイヤーは、並列処理されるが、前記CNU1110の個数は、並列処理されるレイヤーに含まれる行の個数であることが一層好ましく、前記VNU1310の個数は、前記パリティ検査行列の列の個数であることが一層好ましい。したがって、上記の数学式6を用いる前記復号器1000のCNU1110は、2個であることが好ましく、VNU1310は、24個であることが好ましい。
Figure 0004832447
The matrix of Equation 6 is an example of a parity check matrix used in the decoder 1000 according to an embodiment of the present invention. In the matrix, one row of the parity check matrix indicates one layer. The layers do not overlap with adjacent layers. The number of CNU 1110 and VNU 1310 in the decoder 1000 is preferably determined according to the structure of the parity check matrix. The non-overlapping layers are processed in parallel, but the number of CNUs 1110 is more preferably the number of rows included in the parallel processed layers, and the number of VNUs 1310 is the number of columns of the parity check matrix. More preferably, it is the number. Therefore, the number of CNUs 1110 of the decoder 1000 using the mathematical formula 6 is preferably two and the number of VNUs 1310 is preferably 24.

図20A乃至図20Iは、本発明のLDPC復号方法で復号化を行う場合、一回の反復復号を行う過程を示す図である。前記図20A乃至図20IのQとRは、上記の数学式4のqmj、Rmj値を保存するメモリの状態を示し、‘###’は、未だに特定の値に設定されていない任意の値を示す。図20A乃至図20IのQ−メモリ1430及びR−メモリ1410は、図17に示した形態のように、非ゼロ成分の位置に該当する演算値のみを保存することができる。 20A to 20I are diagrams illustrating a process of performing iterative decoding once when decoding is performed by the LDPC decoding method of the present invention. 20A to 20I, Q and R in FIG. 20 indicate the state of the memory that stores the q mj and R mj values of Equation 4, and “##” is an arbitrary value that has not yet been set to a specific value. Indicates the value of. The Q-memory 1430 and the R-memory 1410 in FIGS. 20A to 20I can store only the operation value corresponding to the position of the non-zero component, as shown in FIG.

図20Aは、本発明の一実施例に係るLDPC復号において初期化段階を示す図である。チャネルから受信された確率値(例えば、LLR値)は、前記受信LLRメモリ1420に保存され、前記受信された確率値は、前記パリティ検査行列インデックス保存部1240に保存されたパリティ検査行列の重みに関する位置情報によって、前記Q−メモリ1430に入力される。図20Aは、前記初期化段階を通してQ−メモリに入力された確率値を示す。   FIG. 20A is a diagram illustrating an initialization stage in LDPC decoding according to an embodiment of the present invention. A probability value (eg, LLR value) received from a channel is stored in the reception LLR memory 1420, and the received probability value is related to a weight of a parity check matrix stored in the parity check matrix index storage unit 1240. The position information is input to the Q-memory 1430. FIG. 20A shows a probability value input to the Q-memory through the initialization step.

図20Bは、前記H行列のLayer0及びLayer3に対する検査ノードからビットノードへの確率値更新過程を示す。前記CNU1110は、前記H行列のLayer0及びLayer3に対して検査ノードからビットノードへの確率値を更新する演算を行う。上述したように、前記CNU1110は、2個備わって動作するが、2個のCNU1110は、前記Layer0及び3に対する検査ノード更新過程を行う。前記演算結果は、前記R−メモリ1410に保存される。   FIG. 20B shows a probability value update process from a check node to a bit node for Layer 0 and Layer 3 of the H matrix. The CNU 1110 performs an operation of updating the probability value from the check node to the bit node for Layer 0 and Layer 3 of the H matrix. As described above, two CNUs 1110 operate with two CNUs 1110, and the two CNUs 1110 perform a check node update process for Layers 0 and 3. The calculation result is stored in the R-memory 1410.

図20Cは、前記H行列のLayer0及びLayer3に対するビットノードから検査ノードへの確率値更新過程を示す。前記ビットノードから検査ノードへの確率値更新過程は、従来のLDPC復号化過程と異なって、同一の反復段階で既に更新されたレイヤーの確率値を用いて現在のレイヤーの確率値を更新する。前記Layer0及びLayer3は互いに重畳しないので、並列処理によるメモリ衝突や並列処理するデータ間の依存性などの問題が発生しない。したがって、前記Layer0に対するビットノードから検査ノードへの確率値更新過程と、Layer3に対するビットノードから検査ノードへの確率値更新過程とが並列処理される。上述したように、前記復号器は、24個のVNU1310を用いて前記Layer0及びLayer3に対する演算を行う。図20Cは、前記Layer0及びLayer3に対してビットノードから検査ノードへの確率値更新が行われた結果と、Layer6及びLayer1に対する検査ノードからビットノードへの確率値更新のための確率値が入力される設定段階が行われた結果を示す。   FIG. 20C shows a probability value update process from the bit node to the check node for Layer 0 and Layer 3 of the H matrix. Unlike the conventional LDPC decoding process, the process of updating the probability value from the bit node to the check node updates the probability value of the current layer using the probability value of the layer already updated in the same iteration stage. Since Layer 0 and Layer 3 do not overlap each other, problems such as memory collision due to parallel processing and dependency between parallel processed data do not occur. Therefore, the process of updating the probability value from the bit node to the check node for Layer 0 and the process of updating the probability value from the bit node to the check node for Layer 3 are performed in parallel. As described above, the decoder performs calculations on Layer 0 and Layer 3 using 24 VNUs 1310. In FIG. 20C, the result of the probability value update from the bit node to the check node for Layer 0 and Layer 3 and the probability value for the update of the probability value from the check node to the bit node for Layer 6 and Layer 1 are input. The result of the setting stage is shown.

図20Dは、前記H行列のLayer6及びLayer1に対する検査ノードからビットノードへの確率値更新過程を示し、図20Eは、前記H行列のLayer6及びLayer1に対するビットノードから検査ノードへの確率値更新過程を示し、図20Fは、前記H行列のLayer4及びLayer7に対する検査ノードからビットノードへの確率値更新過程を示し、図20Gは、前記H行列のLayer4及びLayer7に対するビットノードから検査ノードへの確率値更新過程を示し、図20Hは、前記H行列のLayer2及びLayer5に対する検査ノードからビットノードへの確率値更新過程を示し、図20Iは、前記H行列のLayer2及びLayer5に対するビットノードから検査ノードへの確率値更新過程を示す。前記Q−メモリ1430に保存された値は、1回の反復を通して得た演算値である。前記硬判定部1250は、図20Iまでの過程を行った後、前記Q−メモリ1430を参照して臨時的にコードワードc’を決定し、前記コードワードc’が検査式Hc’=0を満足するかどうかを確認する。前記検査式を満足しない場合、前記復号器は、図20B乃至図20Iの過程を反復するようになる。最大反復回数だけの反復があるか、前記検査式を満足するコードワードを得た場合、前記過程が終了され、前記コードワードc’が外部に出力される。   FIG. 20D illustrates a probability value updating process from the check node to the bit node for Layer 6 and Layer 1 of the H matrix, and FIG. 20E illustrates a probability value updating process from the bit node to the check node for Layer 6 and Layer 1 of the H matrix. 20F shows a probability value update process from check nodes to bit nodes for Layer 4 and Layer 7 of the H matrix, and FIG. 20G shows a probability value update process from bit nodes to check nodes for Layer 4 and Layer 7 of the H matrix. FIG. 20H shows a probability value update process from the check node to the bit node for Layer2 and Layer5 of the H matrix, and FIG. 20I shows the probability from the bit node to the check node for Layer2 and Layer5 of the H matrix. Value update process It is. The value stored in the Q-memory 1430 is an operation value obtained through one iteration. After performing the process up to FIG. 20I, the hard decision unit 1250 temporarily determines the code word c ′ with reference to the Q-memory 1430, and the code word c ′ satisfies the check expression Hc ′ = 0. Check if you are satisfied. If the check equation is not satisfied, the decoder repeats the processes of FIGS. 20B to 20I. If there is a repetition of the maximum number of repetitions or if a code word satisfying the check equation is obtained, the process is terminated and the code word c 'is output to the outside.

図20に示した復号化方法は、図19に示した復号化方法と比べたとき、次のような差がある。すなわち、図19に示した復号化方法は、パリティ検査行列の大きさによって最大限のCNU及びVNUを用いて一回の検査ノード更新及びビットノード更新を行うが、図20に示した復号化方法は、データ依存性のないレイヤーの数、すなわち、パリティ検査行列で互いに重畳しないレイヤーの個数だけのCNUを備えて、前記データ依存性のないレイヤーの個数によって前記検査ノード更新過程を並列処理することができる。   The decoding method shown in FIG. 20 has the following differences when compared with the decoding method shown in FIG. That is, the decoding method shown in FIG. 19 performs one check node update and bit node update using the maximum number of CNUs and VNUs according to the size of the parity check matrix, but the decoding method shown in FIG. Includes CNUs corresponding to the number of layers having no data dependency, that is, the number of layers not overlapping each other in the parity check matrix, and performing parallel processing of the check node update process according to the number of layers having no data dependency. Can do.

また、図19に示した復号化方法は、受信信号に対する確率値を用いてQ−メモリ1430の全領域を初期化する反面、図20に示した復号化方法は、同時に並列処理可能なレイヤーに対する初期化を行い、これらレイヤーに対する結果値を次のレイヤーに対する初期値として用いる。   Further, the decoding method shown in FIG. 19 initializes the entire area of the Q-memory 1430 using the probability value for the received signal, whereas the decoding method shown in FIG. Initialization is performed, and the result values for these layers are used as initial values for the next layer.

本発明の精神及び必須的な特徴を逸脱しない範囲で、本発明が他の特定の形態で具体化されることは、当業者にとって自明である。したがって、上記の詳細な説明は、全ての面で制約的に解析されてはならなく、例示的なものとして考慮されるべきである。本発明の範囲は、添付の特許請求の範囲の合理的な解析によって決定されるべきであり、本発明の等価的範囲内での全ての変更は、本発明の範囲に含まれるものである。   It will be apparent to those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit and essential characteristics of the invention. Accordingly, the above detailed description should not be construed as restrictive in all respects but should be considered as exemplary. The scope of the invention should be determined by reasonable analysis of the appended claims, and all changes that come within the equivalent scope of the invention are intended to be embraced within the scope of the invention.

パリティ検査行列Hを二部グラフを通して示した図である。6 is a diagram illustrating a parity check matrix H through a bipartite graph. FIG. 本発明の技術的特徴が無線通信システムに適用された一例である。1 is an example in which the technical features of the present invention are applied to a wireless communication system. 本発明の技術的特徴が符号化装置に適用された一例である。This is an example in which the technical features of the present invention are applied to an encoding apparatus. 基本行列がz×z次元の多数のパーミュテーション行列またはゼロ行列によって構成されることを示す図である。It is a figure which shows that a basic matrix is comprised by many permutation matrices or zero matrix of zxz dimension. 本発明によって基本パーミュテーション行列の全ての行(または列)を所定間隔だけシフトさせる方法を示す図である。FIG. 6 is a diagram illustrating a method of shifting all rows (or columns) of a basic permutation matrix by a predetermined interval according to the present invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. 本発明の一実施例に係る基本行列を示す図である。It is a figure which shows the basic matrix based on one Example of this invention. コードレートが3/4である場合の基本行列の大きさを減少させて形成した、コードレートが1/2である場合の基本行列を示す図である。It is a figure which shows the basic matrix in case the code rate is 1/2 formed by reducing the magnitude | size of the basic matrix in case the code rate is 3/4. 本発明の一実施例に係る他の基本行列を示す図である。It is a figure which shows the other basic matrix which concerns on one Example of this invention. コードレートが3/4である場合の前記基本行列の他の実施例である。It is another Example of the said basic matrix in case a code rate is 3/4. レイヤー単位で区分されたパリティ検査行列の例を示す図である。It is a figure which shows the example of the parity check matrix divided | segmented per layer. 並列処理の概念を示す図である。It is a figure which shows the concept of parallel processing. 並列処理によるメモリ衝突の概念を示す図である。It is a figure which shows the concept of the memory collision by parallel processing. コードレートが1/2である場合の基本行列の他の実施例である。It is another Example of a basic matrix in case a code rate is 1/2. コードレートが1/2である場合の前記基本行列の他の実施例である。It is another Example of the said basic matrix in case a code rate is 1/2. 本発明によって並列処理可能なパリティ検査行列の一例を示す図である。It is a figure which shows an example of the parity check matrix which can be processed in parallel by this invention. 本発明によって並列処理可能なパリティ検査行列の一例を示す図である。It is a figure which shows an example of the parity check matrix which can be processed in parallel by this invention. 本発明によって並列処理可能なパリティ検査行列の一例を示す図である。It is a figure which shows an example of the parity check matrix which can be processed in parallel by this invention. 本発明によって並列処理可能なパリティ検査行列の一例を示す図である。It is a figure which shows an example of the parity check matrix which can be processed in parallel by this invention. コードレートが2/3である場合の前記基本行列の他の実施例を示す図である。It is a figure which shows the other Example of the said basic matrix in case a code rate is 2/3. 本発明で提案された基本行列の行を交換して得た基本行列を示す図である。It is a figure which shows the basic matrix obtained by exchanging the row | line | column of the basic matrix proposed by this invention. 本発明の一実施例に係るLDPC復号器の一実施例を示すブロック図である。It is a block diagram which shows one Example of the LDPC decoder based on one Example of this invention. 本発明の一実施例に係るLDPC復号器のメモリ構造を示す図である。3 is a diagram illustrating a memory structure of an LDPC decoder according to an embodiment of the present invention. FIG. 本発明の一実施例に係るLDPC復号器のハードウェア間の連結形態を示す図である。It is a figure which shows the connection form between the hardware of the LDPC decoder which concerns on one Example of this invention. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. LDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding, it is a figure which shows the process of performing iterative decoding once in the initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process. 並列処理を適用したLDPC復号化を行う場合、初期化過程で一回の反復復号を行う過程を示す図である。When performing LDPC decoding to which parallel processing is applied, it is a diagram illustrating a process of performing iterative decoding once in an initialization process.

符号の説明Explanation of symbols

10 送信機
11 データソース
13 LDPC符号化モジュール
15 変調モジュール
17,31 アンテナ
20 無線チャネル
30 受信機
33 復調モジュール
35 LDPC復号化モジュール
DESCRIPTION OF SYMBOLS 10 Transmitter 11 Data source 13 LDPC encoding module 15 Modulation module 17, 31 Antenna 20 Radio channel 30 Receiver 33 Demodulation module 35 LDPC decoding module

Claims (13)

チャネルコードを用いた復号化方法であって、A decoding method using a channel code,
前記方法は、The method
パリティ検査行列Hを用いて符号化された信号を受信するステップと、Receiving a signal encoded using a parity check matrix H;
前記パリティ検査行列Hに対応する基本行列HA basic matrix H corresponding to the parity check matrix H b と、z×zの基本パーミュテーション行列と、z×zのゼロ行列とを用いて前記受信された信号を復号化するステップとDecoding the received signal using a z × z basic permutation matrix and a z × z zero matrix;
を含み、Including
zは、1よりも大きく、z is greater than 1,
前記基本行列HThe basic matrix H b は、Is
Figure 0004832447
Figure 0004832447
であり、“−1”は、前記z×zのゼロ行列を表わし、“非負整数”は、シフト数を表わし、前記z×zの基本パーミュテーション行列の各行または各列を前記シフト数だけシフトさせてz×zのパーミュテーション行列が生成され、“X”は、0〜95の範囲内の整数を表わし、“−1” represents the z × z zero matrix, “non-negative integer” represents the number of shifts, and each row or each column of the basic permutation matrix of z × z is the number of shifts. A z × z permutation matrix is generated by shifting, where “X” represents an integer in the range of 0-95,
前記基本行列HThe basic matrix H b のレイヤーがLayer of
Figure 0004832447
Figure 0004832447
のインデックス1、2、3、4、5、6、7および8により識別される場合、Identified by indices 1, 2, 3, 4, 5, 6, 7 and 8 of
前記受信された信号の復号化において、レイヤー1およびレイヤー4が並列処理され、レイヤー7およびレイヤー2が並列処理され、レイヤー5およびレイヤー8が並列処理され、レイヤー3およびレイヤー6が並列処理される、方法。In decoding the received signal, layers 1 and 4 are processed in parallel, layers 7 and 2 are processed in parallel, layers 5 and 8 are processed in parallel, and layers 3 and 6 are processed in parallel. ,Method.
前記z×zの基本パーミュテーション行列は、z×zの単位行列である、請求項1に記載の方法。The method of claim 1, wherein the z × z basic permutation matrix is a z × z identity matrix. 前記復号化するステップは、The decoding step includes:
前記基本行列HThe basic matrix H b の“−1”を前記z×zのゼロ行列に交換することと、前記基本行列H“−1” of the above is replaced with the z × z zero matrix, and the basic matrix H b の“非負整数”を前記非負整数により表わされるz×zのパーミュテーション行列に交換することとにより、前記基本行列HBy exchanging the “non-negative integer” of z with a z × z permutation matrix represented by the non-negative integer. b から前記パリティ検査行列Hを生成することと、Generating the parity check matrix H from:
前記パリティ検査行列Hを用いて前記受信された信号を復号化することとDecoding the received signal using the parity check matrix H;
を含む、請求項1または2に記載の方法。The method according to claim 1, comprising:
前記復号化するステップは、The decoding step includes:
前記受信された信号に対応するデータを、レイヤー1およびレイヤー4、レイヤー7およびレイヤー2、レイヤー5およびレイヤー8またはレイヤー3およびレイヤー6に入力することと、Inputting data corresponding to the received signal into layer 1 and layer 4, layer 7 and layer 2, layer 5 and layer 8 or layer 3 and layer 6;
対応する2つのレイヤーに入力された前記データを更新することとUpdating the data entered in the corresponding two layers;
を含む、請求項3に記載の方法。The method of claim 3 comprising:
前記対応する2つのレイヤーに入力されたデータを更新することは、Updating the data input to the two corresponding layers is as follows:
前記対応する2つのレイヤーに対して検査−変数ノードデータ更新過程を実行することと、Performing a check-variable node data update process on the corresponding two layers;
前記対応する2つのレイヤーに対して変数−検査ノードデータ更新過程を実行することとPerforming a variable-check node data update process for the two corresponding layers;
を含む、請求項4に記載の方法。The method of claim 4 comprising:
前記入力されたデータは、前記データ更新過程を介して更新されたデータである、請求項4に記載の方法。The method of claim 4, wherein the input data is data updated through the data update process. 前記復号化するステップは、The decoding step includes:
Figure 0004832447
Figure 0004832447
のように、調節された基本行列の2つの隣接するレイヤーの列方向に最大1つのパーミュテーション行列が存在するように、前記基本行列HThe basic matrix H so that there is at most one permutation matrix in the column direction of two adjacent layers of the adjusted basic matrix b のレイヤーの順序を調節することと、Adjusting the layer order of
隣接する2つのレイヤー1およびレイヤー4を並列処理し、隣接する2つのレイヤー7およびレイヤー2を並列処理し、隣接する2つのレイヤー5およびレイヤー8を並列処理し、隣接する2つのレイヤー3およびレイヤー6を並列処理することとTwo adjacent layers 1 and 4 are processed in parallel, two adjacent layers 7 and 2 are processed in parallel, two adjacent layers 5 and 8 are processed in parallel, two adjacent layers 3 and layer Parallel processing 6
を含む、請求項1または2に記載の方法。The method according to claim 1, comprising:
チャネルコードを用いた復号化装置であって、A decoding device using a channel code,
前記装置は、The device is
パリティ検査行列Hを用いて符号化された信号を受信する受信モジュールと、A receiving module for receiving a signal encoded using a parity check matrix H;
前記パリティ検査行列Hに対応する基本行列HA basic matrix H corresponding to the parity check matrix H b と、z×zの基本パーミュテーション行列と、z×zのゼロ行列とを保存するメモリと、And a memory for storing a z × z basic permutation matrix and a z × z zero matrix,
前記メモリから取得される前記基本行列HThe basic matrix H obtained from the memory b と前記z×zの基本パーミュテーション行列と前記z×zのゼロ行列とを用いて前記受信された信号を復号化する復号化モジュールとAnd a decoding module for decoding the received signal using the z × z basic permutation matrix and the z × z zero matrix.
を含み、Including
zは、1よりも大きく、z is greater than 1,
前記基本行列HThe basic matrix H b は、Is
Figure 0004832447
Figure 0004832447
であり、“−1”は、前記z×zのゼロ行列を表わし、“非負整数”は、シフト数を表わし、前記z×zの基本パーミュテーション行列の各行または各列を前記シフト数だけシフトさせてz×zのパーミュテーション行列が生成され、“X”は、0〜95の範囲内の整数を表わし、“−1” represents the z × z zero matrix, “non-negative integer” represents the number of shifts, and each row or each column of the basic permutation matrix of z × z is the number of shifts. A z × z permutation matrix is generated by shifting, where “X” represents an integer in the range of 0-95,
前記基本行列HThe basic matrix H b のレイヤーがLayer of
Figure 0004832447
Figure 0004832447
のインデックス1、2、3、4、5、6、7および8により識別される場合、Identified by indices 1, 2, 3, 4, 5, 6, 7 and 8 of
前記復号化モジュールは、レイヤー1およびレイヤー4を並列処理し、レイヤー7およびレイヤー2を並列処理し、レイヤー5およびレイヤー8を並列処理し、レイヤー3およびレイヤー6を並列処理するように構成されている、装置。The decoding module is configured to process layer 1 and layer 4 in parallel, layer 7 and layer 2 in parallel, layer 5 and layer 8 in parallel, and layer 3 and layer 6 in parallel. The equipment.
前記z×zの基本パーミュテーション行列は、z×zの単位行列である、請求項8に記載の装置。9. The apparatus of claim 8, wherein the z × z basic permutation matrix is a z × z identity matrix. 前記復号化モジュールは、The decryption module is
前記基本行列HThe basic matrix H b の“−1”を前記z×zのゼロ行列に交換することと、前記基本行列H“−1” of the above is replaced with the z × z zero matrix, and the basic matrix H b の“非負整数”を前記非負整数により表わされるz×zのパーミュテーション行列に交換することとにより、前記基本行列HBy exchanging the “non-negative integer” of z with a z × z permutation matrix represented by the non-negative integer. b から前記パリティ検査行列Hを生成することと、Generating the parity check matrix H from:
前記パリティ検査行列Hを用いて前記受信された信号を復号化することとDecoding the received signal using the parity check matrix H;
を実行するように構成されている、請求項8または9に記載の装置。10. An apparatus according to claim 8 or 9, wherein the apparatus is configured to perform:
前記復号化モジュールは、The decryption module is
並列処理される対応する2つのレイヤーに入力されたデータを更新し、前記受信された信号に対応するデータの検査−変数ノード更新を実行する少なくとも1つの検査ノード更新ユニットと、At least one check node update unit for updating data input to two corresponding layers to be processed in parallel and performing a check-variable node update of the data corresponding to the received signal;
並列処理される対応する2つのレイヤーに入力された前記受信された信号に対応するデータの変数−検査ノード更新を実行する少なくとも1つの変数ノード更新ユニットとAt least one variable node update unit for performing a variable-check node update of data corresponding to the received signals input to two corresponding layers to be processed in parallel;
を含む、請求項10に記載の装置。The apparatus of claim 10, comprising:
前記入力されたデータは、前記検査ノード更新ユニットまたは前記変数ノード更新ユニットを介して既に更新されたデータである、請求項11に記載の装置。The apparatus according to claim 11, wherein the input data is data already updated via the check node update unit or the variable node update unit. 前記復号化モジュールは、The decryption module is
Figure 0004832447
Figure 0004832447
のように、調節された基本行列の2つの隣接するレイヤーの列方向に最大1つのパーミュテーション行列が存在するように、前記基本行列HThe basic matrix H so that there is at most one permutation matrix in the column direction of two adjacent layers of the adjusted basic matrix b のレイヤーの順序を調節すること、Adjusting the layer order,
隣接する2つのレイヤー1およびレイヤー4を並列処理し、隣接する2つのレイヤー7およびレイヤー2を並列処理し、隣接する2つのレイヤー5およびレイヤー8を並列処理し、隣接する2つのレイヤー3およびレイヤー6を並列処理することとTwo adjacent layers 1 and 4 are processed in parallel, two adjacent layers 7 and 2 are processed in parallel, two adjacent layers 5 and 8 are processed in parallel, two adjacent layers 3 and layer Parallel processing 6
を実行するようにさらに構成されている、請求項8または9に記載の装置。10. An apparatus according to claim 8 or 9, further configured to perform:
JP2007548082A 2004-12-22 2005-12-22 Decoding apparatus and method using channel code Expired - Fee Related JP4832447B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
KR20040110678 2004-12-22
KR10-2004-0110678 2004-12-22
KR20050003296 2005-01-13
KR10-2005-0003296 2005-01-13
KR1020050101898A KR101216075B1 (en) 2004-12-22 2005-10-27 Apparatus and method for decoding using channel code
KR10-2005-0101898 2005-10-27
PCT/KR2005/004466 WO2006068435A2 (en) 2004-12-22 2005-12-22 Apparatus and method for decoding using channel code

Publications (2)

Publication Number Publication Date
JP2008526086A JP2008526086A (en) 2008-07-17
JP4832447B2 true JP4832447B2 (en) 2011-12-07

Family

ID=37165213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007548082A Expired - Fee Related JP4832447B2 (en) 2004-12-22 2005-12-22 Decoding apparatus and method using channel code

Country Status (3)

Country Link
JP (1) JP4832447B2 (en)
KR (1) KR101216075B1 (en)
CN (1) CN101764620B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607065B2 (en) * 2005-07-27 2009-10-20 Agere Systems Inc. Method and apparatus for block and rate independent decoding of LDPC codes
KR101405962B1 (en) * 2008-02-28 2014-06-12 엘지전자 주식회사 Method of performing decoding using LDPC code
US8296640B2 (en) 2008-06-20 2012-10-23 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing multimode LDPC decoder
US8335979B2 (en) 2008-12-08 2012-12-18 Samsung Electronics Co., Ltd. Contention-free parallel processing multimode LDPC decoder
JP5434454B2 (en) * 2009-10-08 2014-03-05 富士通株式会社 Decryption device
CN104868925B (en) * 2014-02-21 2019-01-22 中兴通讯股份有限公司 Coding method, interpretation method, code device and the code translator of structured LDPC code
US10312937B2 (en) * 2016-11-02 2019-06-04 Qualcomm Incorporated Early termination technique for LDPC decoder architecture
CN111010195B (en) * 2019-12-11 2023-06-02 北京华力创通科技股份有限公司 Codeword checking method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040057575A1 (en) * 2002-09-25 2004-03-25 Tong Zhang LDPC code and encoder/decoder regarding same
US20040194007A1 (en) * 2003-03-24 2004-09-30 Texas Instruments Incorporated Layered low density parity check decoding for digital communications

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
KR100936022B1 (en) * 2002-12-21 2010-01-11 삼성전자주식회사 Method of generating parity information for error-correction and apparatus thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040057575A1 (en) * 2002-09-25 2004-03-25 Tong Zhang LDPC code and encoder/decoder regarding same
US20040194007A1 (en) * 2003-03-24 2004-09-30 Texas Instruments Incorporated Layered low density parity check decoding for digital communications

Also Published As

Publication number Publication date
JP2008526086A (en) 2008-07-17
KR101216075B1 (en) 2012-12-26
CN101764620A (en) 2010-06-30
KR20060071856A (en) 2006-06-27
CN101764620B (en) 2014-04-09

Similar Documents

Publication Publication Date Title
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
US8438459B2 (en) Apparatus and method for decoding using channel code
US7992066B2 (en) Method of encoding and decoding using low density parity check matrix
US10320419B2 (en) Encoding method, decoding method, encoding device and decoding device for structured LDPC
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
JP4168055B2 (en) Method and apparatus for generating low density parity check code
JP4516602B2 (en) Data encoding and decoding method and apparatus
KR101227264B1 (en) Method and apparatus for block and rate independent decoding of ldpc codes
JP4820368B2 (en) Encoding and decoding method using LDPC code
JP4062435B2 (en) Error correction code decoding apparatus
CN107370490B (en) Method and device for encoding and decoding structured LDPC (Low Density parity check)
JP4832447B2 (en) Decoding apparatus and method using channel code
US7814403B2 (en) Method of encoding and decoding using low density parity check code
KR101147768B1 (en) Apparatus and method for decoding using channel code
US8214717B2 (en) Apparatus and method for decoding LDPC code based on prototype parity check matrixes
JP2019525638A (en) Polar code encoding and decoding extended to non-power-of-two lengths
US8190977B2 (en) Decoder of error correction codes
KR101405961B1 (en) Method of encoding/decoding data using LDPC code
KR101221062B1 (en) Encoding and decoding method using variable length usc code
KR20130037523A (en) Method and apparatus for encoing using state-check code

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110920

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees