JP2011072020A - Decoding device - Google Patents

Decoding device Download PDF

Info

Publication number
JP2011072020A
JP2011072020A JP2010265293A JP2010265293A JP2011072020A JP 2011072020 A JP2011072020 A JP 2011072020A JP 2010265293 A JP2010265293 A JP 2010265293A JP 2010265293 A JP2010265293 A JP 2010265293A JP 2011072020 A JP2011072020 A JP 2011072020A
Authority
JP
Japan
Prior art keywords
check matrix
parity check
row
line
column
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010265293A
Other languages
Japanese (ja)
Other versions
JP4985843B2 (en
Inventor
Takashi Maebatake
貴 前畠
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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2010265293A priority Critical patent/JP4985843B2/en
Publication of JP2011072020A publication Critical patent/JP2011072020A/en
Application granted granted Critical
Publication of JP4985843B2 publication Critical patent/JP4985843B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide a decoding device corresponding to multirate. <P>SOLUTION: The decoding device can separately use a plurality of low-density parity-check codes having different encoding rates. In a plurality of check matrices H, corresponding to the plurality of the low-density parity-check codes, code length N of the low-density parity-check code and weight column wc of the check matrix H are common. Moreover, a set of numbers expressing the column position of a non-zero element, included in the check matrix H, is common among the plurality of the check matrices. However, the difference of weight row wr between the plurality of the check matrices H causes the encoding rate R of the plurality of the check matrices H to be different. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、低密度パリティ検査符号の復号装置に関するものである。   The present invention relates to a low-density parity check code decoding apparatus.

近年、誤り訂正技術の一つとして、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号と、その復号法であるsum−product復号法とが注目されている(非特許文献1及び特許文献1参照)。   In recent years, low-density parity check (LDPC) codes and sum-product decoding methods, which are decoding methods thereof, have attracted attention as one of error correction techniques (Non-patent Document 1 and Patents). Reference 1).

LDPC符号は、非常に疎な検査行列により定義される線形符号であり、Gallagerによって発明されたものである。このLDPC符号では、白色ガウス通信路のシャノン(Shannon)限界まで、0.004dBという復号特性が得られることが知られている。また、sum-product復号法は、並列処理による復号処理を実行するため、符号長を長くすることができるとともに処理能力を向上させることができる。   The LDPC code is a linear code defined by a very sparse check matrix, and was invented by Gallager. With this LDPC code, it is known that a decoding characteristic of 0.004 dB can be obtained up to the Shannon limit of the white Gaussian channel. In addition, since the sum-product decoding method performs decoding processing by parallel processing, the code length can be increased and the processing capability can be improved.

LDPC符号においては、より良い訂正能力を得るには、検査行列として適切なものを定義する必要がある。ここで、Gallagerによって提案された検査行列の生成法は、次の通りである。
まず、生成対象の検査行列Hは、列重み(列のハミング重み;各列の1(非零要素)の個数)がwc、行重み(行のハミング重み;各行の1(非零要素)の個数)がwrであるものとする。この場合、検査行列Hを、図22に示すように、検査行列Hの行方向にwc=3個のブロックに分ける。
In an LDPC code, in order to obtain better correction capability, it is necessary to define an appropriate check matrix. Here, a method for generating a parity check matrix proposed by Gallager is as follows.
First, the parity check matrix H to be generated has a column weight (hamming weight of the column; the number of 1 (non-zero elements) in each column) is wc, a row weight (hamming weight of the row; 1 (non-zero element) in each row) It is assumed that (number) is wr. In this case, the parity check matrix H is divided into wc = 3 blocks in the row direction of the parity check matrix H as shown in FIG.

また、ここでは行重みwr=6とし、第1ブロック(H1)において、第1行目の第1列目〜第6列目に「1」(非零要素)が配置され、第2行目の第7〜第12列目に「1」(非零要素)が配置され、以下同様に、第1ブロック内の以下の行についても「1」(非零要素)が配置される。ここでは、第1ブロック(H1)における各列の列重みが1となるように配置される。   Here, the row weight wr = 6, and in the first block (H1), “1” (non-zero element) is arranged in the first column to the sixth column of the first row, and the second row In the seventh to twelfth columns, “1” (non-zero element) is arranged, and similarly, “1” (non-zero element) is also arranged for the following rows in the first block. Here, they are arranged so that the column weight of each column in the first block (H1) is 1.

そして、第1ブロック内の任意の列を、乱数を用いて再配置(入れ替え)し、これを適当な回数繰り返したものを第1ブロックとする。第1ブロックの各列の重みは1であるので、列を入れ替えても列の重みは1のままである。
第2ブロック以降についても、第1ブロックと同様に乱数(他のブロックとは別の乱数)を用いて列の入れ替え処理を行い、非零要素の配置が各ブロックで異なるようにする。
以上の処理をwc=3個のブロックについて行えば、列重みがwcのパリティ検査行列が生成される。
Then, an arbitrary column in the first block is rearranged (replaced) using random numbers, and this is repeated a suitable number of times as the first block. Since the weight of each column of the first block is 1, the column weight remains 1 even if the columns are replaced.
For the second and subsequent blocks as well, similar to the first block, column replacement processing is performed using random numbers (random numbers different from other blocks) so that the arrangement of non-zero elements is different for each block.
If the above processing is performed for wc = 3 blocks, a parity check matrix having a column weight of wc is generated.

LDPC符号では、上記のように乱数を用いて検査行列を決定するのが一般的である。つまり、乱数を用いることで検査行列における「1」(非零要素)の配置に規則性が無くなり訂正能力を確保することができる。   In the LDPC code, the parity check matrix is generally determined using random numbers as described above. That is, by using random numbers, the arrangement of “1” (non-zero element) in the parity check matrix has no regularity, and the correction capability can be ensured.

また、近年、通信エラーの状態に応じて、通信の場所ごとに検査行列を変化させることが望まれている。つまり、通信社間で複数の符号を使い分けることで、効率のよい通信を実現できる。例えば、WiMAXでは、114通りの符号が規定され、IEEE802.11nでは、12通りの符号が規定されている。   In recent years, it has been desired to change the check matrix for each communication location according to the state of communication error. That is, efficient communication can be realized by properly using a plurality of codes between communication companies. For example, 114 codes are defined in WiMAX, and 12 codes are defined in IEEE 802.11n.

ここで、非特許文献2には、マルチレートに対応したLCPD符号の復号器が開示されている。非特許文献2の復号器では、ハードウェアで実装することを考慮して、検査行列の構造としてブロック分割形を採用しており、検査行列を符号化率に応じて分割するものとなっている。検査行列を符号化率に応じて分割することで、複数の検査行列があってもハードウェア構成が膨大にならない復号器を構成することができる。
そして、S/N比が劣悪な時は符号化率の低い検査行列の構成をとり、S/N比が良好な時は符号化率を高めることで復号スループットを高めることができる。
Here, Non-Patent Document 2 discloses an LCPD code decoder that supports multi-rate. In consideration of implementation in hardware, the decoder of Non-Patent Document 2 adopts a block division type as a parity check matrix structure, and divides the parity check matrix according to the coding rate. . By dividing the parity check matrix according to the coding rate, it is possible to configure a decoder whose hardware configuration does not become enormous even if there are a plurality of parity check matrices.
When the S / N ratio is inferior, it is possible to increase the decoding throughput by adopting a parity check matrix configuration with a low coding rate, and when the S / N ratio is good, increasing the coding rate.

特開2005−269535号公報JP 2005-269535 A

和田山正、「低密度パリティ検査符号とその復号法について」、信学技報、MR2001−83、2001年12月Wadayama Tadashi, “About Low Density Parity Check Codes and Decoding Methods”, IEICE Technical Report, MR2001-83, December 2001 今井優太(他4名)、「動的再構成可能なマルチレート対応LDPC符号復号器の実装」、信学技報、RECONF2006−43、2006年11月Yuta Imai (4 others), “Implementation of dynamically reconfigurable multi-rate LDPC code decoder”, IEICE Technical Report, RECONF 2006-43, November 2006

非特許文献2の復号器では、符号化率として「0.5」、「0.625」、「0.75」
の3つの場合が示されており、符号化率に応じて検査行列を分割することにより、各符号化率での符号長Nは、それぞれ、1536ビット、2048ビット、3072ビットになることが示されている。
In the decoder of Non-Patent Document 2, the coding rate is “0.5”, “0.625”, “0.75”.
The code length N at each coding rate becomes 1536 bits, 2048 bits, and 3072 bits, respectively, by dividing the parity check matrix according to the coding rate. Has been.

上記のように非特許文献2の復号器では、符号化率Rが高くなるほど符号長Nが長くなり、符号化率が低いほど符号長が短くなっている。特許文献2では、ハードウェアでの実装を優先してブロック分割形という構成を採用したため、符号化率を下げるほど符号長が短くなるという結果が生じているものと推察される。   As described above, in the decoder of Non-Patent Document 2, the code length N increases as the encoding rate R increases, and the code length decreases as the encoding rate decreases. In Patent Document 2, it is presumed that the result that the code length is shortened as the coding rate is lowered because the configuration of the block division type is adopted in preference to the hardware implementation.

しかし、低S/N比など通信環境が劣悪な時は、符号化率Rを低くして誤り訂正能力を高めるために、情報ビットに付加される冗長ビットを多くして符号長Nを長くするのが、一般的な考え方である。なお、ここで、符号長Nは、情報ビット数Kと冗長ビット数Mとの和であり、符号化率Rは、「情報ビット数K/符号長N」で表される。   However, when the communication environment is poor such as a low S / N ratio, the code length N is increased by increasing the number of redundant bits added to the information bits in order to reduce the coding rate R and increase the error correction capability. This is the general idea. Here, the code length N is the sum of the number of information bits K and the number of redundant bits M, and the coding rate R is represented by “number of information bits K / code length N”.

したがって、符号化率Rを低くしたい場合に、符号長Nが短くなると、十分な数の冗長ビットを付加できなくなるおそれがあり、非特許文献2のように符号化率を下げるほど符号長が短くなるという点は、一般的な冗長ビットの付加の仕方と整合せず、不利な制約となる。
よって、符号化率(訂正能力)は、符号長が連動して変化することなく変更できるのが望ましい。
Therefore, when it is desired to reduce the coding rate R, if the code length N is shortened, a sufficient number of redundant bits may not be added, and the code length becomes shorter as the coding rate is lowered as in Non-Patent Document 2. This is inconsistent with the general method of adding redundant bits and is a disadvantageous restriction.
Therefore, it is desirable that the coding rate (correction capability) can be changed without the code length changing in conjunction.

一方、ハードウェア実装の観点からは、複数の符号化率に対応した複数の検査行列それぞれの回路が全く別のものになると、回路規模が膨大となる。したがって、回路規模が膨大になるのを避けようとすると、従来は、非特許文献2のように、符号化率を下げるほど符号長が短くなるという不利な制約を受けざるを得なかった。   On the other hand, from the viewpoint of hardware implementation, if the circuits of a plurality of parity check matrices corresponding to a plurality of coding rates are completely different, the circuit scale becomes enormous. Therefore, in order to avoid enlarging the circuit scale, conventionally, as in Non-Patent Document 2, there has been a disadvantage that the code length is shortened as the coding rate is lowered.

そこで、本発明の目的は、符号化率を下げるほど符号長が短くなるという不利な制約を受けることなく、異なる符号化率に対応した複数の検査行列を用いることができるが、ハードウェア実装された場合であっても、回路規模の膨大化の抑制を可能とすることにある。
また、本発明の他の目的は、ルールに基づいて表現できる検査行列を提供することである。
Therefore, an object of the present invention is to use a plurality of parity check matrices corresponding to different coding rates without suffering from the disadvantageous restriction that the code length becomes shorter as the coding rate is lowered. Even in this case, it is possible to suppress an increase in circuit scale.
Another object of the present invention is to provide a check matrix that can be expressed based on a rule.

本発明は、符号化率の異なる複数の低密度パリティ検査符号を使い分けることができる復号装置であって、前記複数の低密度パリティ検査符号に対応する複数の検査行列は、低密度パリティ検査符号の符号長及び検査行列の列重みが共通しているとともに、検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しており、行重みが複数の検査行列間で異なることで複数の検査行列の符号化率が異なっているものを含むことを特徴とする復号装置である。   The present invention is a decoding apparatus that can selectively use a plurality of low density parity check codes having different coding rates, and the plurality of check matrices corresponding to the plurality of low density parity check codes are low density parity check codes. The code length and the column weight of the check matrix are common, and a set of numbers indicating the column positions of the non-zero elements included in the check matrix is common among the plurality of check matrices, and the row weight is a plurality of checks. The decoding apparatus includes a plurality of parity check matrixes having different coding rates by being different between matrices.

ここで、列重みとは、検査行列の各列に含まれる非零要素の数であり、行重みとは、検査行列の各行に含まれる非零要素の数である。なお、低密度パリティ検査符号の正則な検査行列においては、「検査行列における非零要素の総数」=「列重み×検査行列の列数」=「行重み×検査行列の行数」が成り立つ。   Here, the column weight is the number of non-zero elements included in each column of the parity check matrix, and the row weight is the number of non-zero elements included in each row of the parity check matrix. In the regular check matrix of the low-density parity check code, “total number of non-zero elements in the check matrix” = “column weight × number of columns of the check matrix” = “row weight × number of rows of the check matrix” holds.

本発明によれば、複数の符号化率に対応した複数の検査行列において、符号長が共通しているため、符号化率によって符号長が変化することはない。
そして、本発明では、複数の検査行列において列重みも共通しているため、「検査行列における非零要素の総数」=「列重み×検査行列の列数(符号長)」という関係式より、符号化率の異なる複数の検査行列間でも、非零要素の総数は共通する。つまり、検査行列に含まれる非零要素の列位置を示す数の集合の要素数が、複数の検査行列間で共通する。
According to the present invention, since the code length is common in a plurality of parity check matrices corresponding to a plurality of coding rates, the code length does not change depending on the coding rate.
In the present invention, since the column weights are also common to the plurality of parity check matrices, the relational expression “total number of non-zero elements in the parity check matrix” = “column weight × number of columns of the parity check matrix (code length)” The total number of non-zero elements is common among a plurality of parity check matrices with different coding rates. That is, the number of elements in a set of numbers indicating the column positions of non-zero elements included in the parity check matrix is common among the plurality of parity check matrices.

すると、「検査行列における非零要素の総数」=「行重み×検査行列の行数(冗長ビット数)」という関係式より、行重みが複数の検査行列間で異なることで符号化率を異ならせると、複数の検査行列間で、符号長が共通しつつ、行数(冗長ビット)が異なることになる。
このように、符号化率を変えるために、共通した符号長において行重みを変えると、検査行列の行数が変化し、これは冗長ビットを増減することになる。つまり、行重みの変更は、ある符号長において情報ビットの占める割合を変更することになり、符号化率を変更する際の一般的な考え方に準拠したものとなる。
Then, from the relational expression “total number of non-zero elements in the parity check matrix” = “row weight × number of rows in the parity check matrix (number of redundant bits)”, the coding rate is different because the row weight is different among a plurality of parity check matrices. In other words, the number of rows (redundant bits) is different among the plurality of parity check matrices while the code length is common.
Thus, if the row weight is changed at a common code length in order to change the coding rate, the number of rows in the parity check matrix changes, which increases or decreases redundant bits. That is, changing the row weight changes the proportion of information bits in a certain code length, and is based on the general idea when changing the coding rate.

しかも、本発明では、複数の検査行列の符号長及列重みが共通しているとともに、検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しているため、検査行列を用いた処理を回路実装する場合には、共通点に関する回路を複数の検査行列で共用でき、回路規模の膨大化を防止することができる。
そして、上記本発明では、非零要素の列位置を示す数の集合の要素である「列位置を示す数」それぞれが、検査行列のどの行に配置されるかを、行重みに応じて変更すればよい。
Moreover, in the present invention, the code lengths and column weights of the plurality of parity check matrices are common, and a set of numbers indicating the column positions of the non-zero elements included in the parity check matrix is common among the plurality of parity check matrices. Therefore, when the circuit using the processing using the check matrix is implemented, a circuit related to the common point can be shared by a plurality of check matrices, and the circuit scale can be prevented from increasing.
In the present invention, the number of columns indicating the column positions of the non-zero elements is changed according to the row weights in each row of the parity check matrix. do it.

なお、本発明において、複数の検査行列間の上記のような関係は、復号装置が使い分ける複数の検査行列すべてにおいて満たされている必要はなく、復号装置が使い分ける複数の検査行列のうちの「一部の複数の検査行列」が、上記のような関係を満たしていればよい。   In the present invention, the above relationship between a plurality of parity check matrices does not have to be satisfied in all of the plurality of parity check matrices used by the decoding device. It is only necessary that the “partial check matrix” satisfies the above relationship.

前記符号長をNとし、前記検査行列の列重みをwcとし、前記検査行列の行重みをwrとし、前記Nに対して互いに素である少なくともwc個の数をA1,・・,Aj(ただし、jは、wc以上の数であり、A1,・・・,Ajはそれぞれ異なる数)としたときに、前記検査行列のそれぞれの行には、当該検査行列の行数に応じた個数の数列であって、それぞれが以下の条件(A)〜(B)を満たす数列に含まれる各数に対応した列位置に非零要素が配置されているのが好ましい。
(A)検査行列の行数に応じた数の数列それぞれは、以下の条件(C)〜(D)を満たす基礎数列を、wr個の数ごとに分割した部分数列である。
(B)検査行列の行数に応じた個数の部分数列は、それぞれ、検査行列のいずれか一の行に割り当てられている。
(C)前記基礎数列に含まれる数は、1〜Nの自然数である。
(D)前記基礎数列において、1〜Nの自然数それぞれの出現回数は、列重みの値wcと同じである。
(E)前記基礎数列は、公差がA1,・・,AjのいずれかであるX個の等差数列(ただし、当該数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)を連結したものである。
The code length is N, the column weight of the parity check matrix is wc, the row weight of the parity check matrix is wr, and at least wc numbers that are relatively prime to N are A1,. , J is a number greater than or equal to wc, and A1,..., Aj are different numbers), each row of the parity check matrix includes a number sequence corresponding to the number of rows of the parity check matrix. And it is preferable that the non-zero element is arrange | positioned in the column position corresponding to each number contained in the number sequence which respectively satisfy | fills the following conditions (A)-(B).
(A) Each number sequence corresponding to the number of rows of the parity check matrix is a partial number sequence obtained by dividing a basic number sequence satisfying the following conditions (C) to (D) into wr numbers.
(B) Each number of partial sequences corresponding to the number of rows of the parity check matrix is assigned to any one row of the parity check matrix.
(C) The numbers included in the basic number sequence are natural numbers of 1 to N.
(D) In the basic number sequence, the number of appearances of each of the natural numbers 1 to N is the same as the column weight value wc.
(E) the basic sequence, the tolerances A1, · ·, X-number of arithmetic progression is either Aj (However, the number adjacent to any number y A and the number y A included in the sequence y Even if the difference from B is not A, if the difference between y A and (y B + N) is A, the difference between y A and y B is considered to be A). .

上記検査行列は、上記条件に従っているものの、乱数で生成したものと同様な良好な訂正能力を有することを、本発明者は見出した。
なお、検査行列の各行に存在する非零要素の位置を示す「数」からなる数列には、1つの行について、複数パターンをとり得る。例えば、上記(A)〜(E)の条件を満たす検査行列であっても、当該検査行列のある一つの行に存在する非零要素の位置を示す「数」を小さい順に並べた数列は、上記(E)の条件(等差数列)を満たすとは限らない。
しかし、本発明では、「等差数列に含まれる各数に対応した列位置に非零要素が配置されて」いればよく、検査行列における非零要素の並びを基準に考えた数列が、条件(E)を満たすか否かは考慮しなくともよい。つまり、検査行列の各行が、条件(E)を満たす数列を持ち得るものであれば足りる。
The present inventor has found that the check matrix has a good correction capability similar to that generated by random numbers, although it conforms to the above conditions.
It should be noted that a plurality of patterns can be taken for one row in a sequence of “numbers” indicating the positions of non-zero elements present in each row of the parity check matrix. For example, even if the parity check matrix satisfies the above conditions (A) to (E), a numerical sequence in which “numbers” indicating the positions of non-zero elements existing in one row of the parity check matrix are arranged in ascending order is as follows: It does not necessarily satisfy the condition (Equation Sequence) of (E) above.
However, in the present invention, it is only necessary that the non-zero elements are arranged at the column positions corresponding to the numbers included in the arithmetic sequence, and the sequence considered based on the arrangement of the non-zero elements in the parity check matrix is a condition. It is not necessary to consider whether or not (E) is satisfied. That is, it is sufficient if each row of the check matrix can have a number sequence that satisfies the condition (E).

前記基礎数列における複数の部分数列の並び順と、前記部分数列が割り当てられている検査行列の各行の並び順とが一致するように、複数の部分数列が検査行列の各行に割り当てられているのが好ましい。   A plurality of partial sequences are assigned to each row of the parity check matrix so that the order of arrangement of the plurality of partial sequences in the basic number sequence matches the order of the rows of the parity check matrix to which the partial number sequence is assigned. Is preferred.

また、通信レートに応じて検査行列の行重みを変更することでマルチレートに対応するのが好ましい。   In addition, it is preferable to support multirate by changing the row weight of the check matrix according to the communication rate.

また、検査行列の生成方法に係る本発明は、低密度パリティ検査符号の符号長Nと、前記Nに対して互いに素である数値Aと、検査行列の行重みwrを用いて、低密度パリティ検査符号の検査行列を生成する方法であって、通信レートに応じて前記wrを変更する行重み変更ステップと、検査行列に含まれるP個(Pは2以上の自然数)の行それぞれが有する非零要素の位置を算出する位置算出ステップと、前記位置算出ステップによって算出された位置に、非零要素を配置する配置ステップと、を含み、前記位置算出ステップでは、変数xを、初期値xから(x+(N−1))まで増加させつつ、(A×x)をNで割ったときの剰余を求める演算を行って、N個の演算結果を取得し、前記配置ステップでは、N個の演算結果からなる数列を、wr個の数からなるP個の部分数列に分割し、P個の部分数列に含まれる数を非零要素の列位置として、対応するP個の行に非零要素を配置し、ことを特徴とする検査行列生成方法である。 In addition, the present invention relating to a parity check matrix generation method uses a code length N of a low density parity check code, a numerical value A that is relatively prime to N, and a row weight wr of the parity check matrix to generate a low density parity check code. A method for generating a parity check matrix of a parity check code, wherein the row weight changing step changes wr according to a communication rate, and each of P rows (P is a natural number of 2 or more) included in the parity check matrix A position calculating step for calculating the position of the zero element; and an arranging step for arranging a non-zero element at the position calculated by the position calculating step. In the position calculating step, the variable x is set to the initial value x 1. To (x 1 + (N−1)) while calculating (A × x) by N to obtain a remainder to obtain N calculation results. In the arrangement step, Consists of N calculation results Dividing the column into P partial sequences of wr numbers, with the numbers contained in the P partial sequences as the column positions of the nonzero elements, and placing the nonzero elements in the corresponding P rows, This is a parity check matrix generation method.

本発明によれば、符号化率を下げるほど符号長が短くなるという制約を受けることなく、異なる符号化率に対応した複数の検査行列を用いることができるものの、ハードウェア実装された場合であっても、回路規模の膨大化の抑制が可能である。   According to the present invention, it is possible to use a plurality of parity check matrices corresponding to different coding rates without being restricted by the fact that the code length becomes shorter as the coding rate is lowered, but this is a case where hardware is implemented. However, the increase in circuit scale can be suppressed.

通信システムの構成を概略的に示す図である。1 is a diagram schematically showing a configuration of a communication system. 送信データと復調データの対応の一例を示す図である。It is a figure which shows an example of a response | compatibility with transmission data and demodulation data. 復号化器の構成を概略的に示す図である。It is a figure which shows the structure of a decoder roughly. 参考的に示す検査行列(本発明の実施形態ではない)の一例である。It is an example of a check matrix (not an embodiment of the present invention) shown for reference. 図4に示す検査行列のタナーグラフである。5 is a Tanner graph of the parity check matrix shown in FIG. 一次推定語生成部のブロック図である。It is a block diagram of a primary estimated word production | generation part. 実施形態に係る検査行列の1例を示す図である。It is a figure which shows one example of the check matrix which concerns on embodiment. 比較例に係る検査行列を示す図である。It is a figure which shows the test matrix which concerns on a comparative example. 検査行列の生成の仕方に関する説明図である。It is explanatory drawing regarding the method of the production | generation of a check matrix. 基礎数列の説明図である。It is explanatory drawing of a basic number sequence. 列重み及び行重みと符号化率の関係図である。It is a relationship figure of column weight and row weight, and a coding rate. 符号化率R=1/2の検査行列である。This is a parity check matrix with a coding rate R = 1/2. 符号化率R=2/3の検査行列である。This is a parity check matrix with a coding rate R = 2/3. 符号化率R=3/4の検査行列である。This is a parity check matrix with a coding rate R = 3/4. 符号化率R=13/16の検査行列である。This is a parity check matrix with a coding rate R = 13/16. BER特性図である。It is a BER characteristic view. 外部値対数比算出部の構成図である。It is a block diagram of an external value logarithm ratio calculation part. 行処理部の構成図である。It is a block diagram of a line processing part. 最小値探索部の構成図である。It is a block diagram of the minimum value search part. 最小値探索部の構成図である。It is a block diagram of the minimum value search part. 最小値探索部の構成図である。It is a block diagram of the minimum value search part. 従来の検査行列の生成方法の説明図である。It is explanatory drawing of the production | generation method of the conventional test matrix.

以下、本発明の実施形態を、図面を参照して説明する。
図1は、本発明の実施形態に係る復号装置(復号器)5を有する通信システムの構成の一例を示す図である。図1において、通信システムの送信側通信装置は、送信情報に誤り訂正用の冗長ビットを付加して送信符号を生成する符号化器1と、この符号化器1からの(K+M)ビットの符号を所定の方式に従って変調して通信路3へ出力する変調器2とを含む。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram illustrating an example of a configuration of a communication system having a decoding device (decoder) 5 according to an embodiment of the present invention. In FIG. 1, a transmission side communication apparatus of a communication system includes an encoder 1 that generates a transmission code by adding redundant bits for error correction to transmission information, and a code of (K + M) bits from the encoder 1. And a modulator 2 that modulates the signal according to a predetermined method and outputs the result to the communication path 3.

符号化器1は、Kビットの情報に対し、パリティ計算用の冗長ビットMビットを付加して、(K+M)=NビットのLDPC符号(低密度パリティ検査符号)を生成する。   The encoder 1 adds M bits of redundant bits for parity calculation to the information of K bits, and generates an LDPC code (low density parity check code) of (K + M) = N bits.

変調器2は、この通信路3の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直交周波数分割多重変調などの変調を行なう。たとえば、通信路3が、光ファイバの場合、変調器2においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調(一種の振幅変調)を行なっている。たとえば、送信データビットが“0”の場合には、”+1”に変換して、レーザダイオードの発光強度を強くして送信し、また送信データビットが“1”の場合、”−1”に変換して、レーザダイオードの発光強度を弱くして送信する。   The modulator 2 performs modulation such as amplitude modulation, phase modulation, code modulation, frequency modulation or orthogonal frequency division multiplexing modulation according to the configuration of the communication path 3. For example, when the communication path 3 is an optical fiber, the modulator 2 performs light intensity modulation (a kind of amplitude modulation) by changing the luminance of the laser diode according to the transmission information bit value. For example, when the transmission data bit is “0”, it is converted to “+1”, and the laser diode is transmitted with an increased emission intensity. When the transmission data bit is “1”, it is changed to “−1”. After conversion, the emission intensity of the laser diode is weakened and transmitted.

通信システムの受信側通信装置は、通信路3を介して送信された変調信号に復調処理を施して、(K+M)ビットのデジタル符号を復調する復調器4と、この復調器4からの(K+M)ビットの符号にパリティ検査行列に基づく復号処理を施して元のKビットの情報を再生する復号器(復号装置)5が設けられる。   The receiving-side communication device of the communication system performs demodulation processing on the modulated signal transmitted via the communication path 3 to demodulate the (K + M) -bit digital code, and (K + M) from the demodulator 4. ) A decoder (decoding device) 5 is provided that performs decoding processing based on a parity check matrix on a bit code to reproduce the original K-bit information.

復調器4は、この通信路3における送信形態に応じて復調処理を行なう。たとえば、振幅変調、位相変調、コード変調、周波数変調および直交周波数分割多重変調等の場合、復調器4において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。   The demodulator 4 performs demodulation processing according to the transmission form in the communication path 3. For example, in the case of amplitude modulation, phase modulation, code modulation, frequency modulation, orthogonal frequency division multiplexing modulation, etc., the demodulator 4 performs processing such as amplitude demodulation, phase demodulation, code demodulation, and frequency demodulation.

図2は、通信路3が光ファイバの場合の変調器2および復調器4の出力データの対応関係を一覧にして示す図である。図2において、上述のように、通信路3が光ファイバの場合、変調器2においては、送信データが“0”のときには、”1”に変換され、送信用のレーザダイオード(発光ダイオード)の発光強度が強くなり、また送信データビットが“1”のときには、”−1”に変換され、レーザダイオードの発光強度を弱くして送信する。   FIG. 2 is a diagram showing a list of correspondence relationships between the output data of the modulator 2 and the demodulator 4 when the communication path 3 is an optical fiber. In FIG. 2, as described above, when the communication path 3 is an optical fiber, the modulator 2 converts the transmission data to “1” when the transmission data is “0”, and the transmission laser diode (light emitting diode) When the emission intensity increases and the transmission data bit is “1”, it is converted to “−1”, and the emission intensity of the laser diode is reduced to transmit.

この通信路3における伝送損失等により、復調器4に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器4においては、この入力された光信号に量子化処理(アナログ/デジタル変換)を行なって、この受光レベルを検出する。
図2においては、8段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“7”のときには、発光強度がかなり強く、受光レベルが“0”のときには、光強度がかなり弱い状態である。各受光レベルは、符号付きデータに対応づけられ、復調器4から出力される。この復調器4の出力は、受光レベルが“7”のときにはデータ“3”が出力され、受光レベルが“0”のときには、データ“−4”が出力される。したがってこの復調器4からは、1ビットの受信信号に対し、多値量子化された信号が出力される。
The light intensity transmitted to the demodulator 4 due to transmission loss in the communication path 3 has an analog intensity distribution from the strongest intensity to the weakest intensity. The demodulator 4 performs a quantization process (analog / digital conversion) on the input optical signal to detect the received light level.
FIG. 2 shows the received signal intensity when the light reception level is quantized in eight steps. That is, when the light reception level is data “7”, the light emission intensity is considerably high, and when the light reception level is “0”, the light intensity is considerably low. Each light reception level is associated with signed data and output from the demodulator 4. The output of the demodulator 4 is data “3” when the light reception level is “7”, and data “−4” when the light reception level is “0”. Therefore, the demodulator 4 outputs a signal subjected to multilevel quantization with respect to a 1-bit received signal.

復号化器5は、この復調器4から与えられた(K+M)ビットの受信情報(各ビットは、多値情報を含む)を入力し、sum-product復号法又はmin-sum復号法に従って低密度パリティ検査行列を適用して、元のKビットの情報を復元する。   The decoder 5 receives (K + M) -bit received information (each bit includes multi-value information) given from the demodulator 4 and has low density according to the sum-product decoding method or the min-sum decoding method. A parity check matrix is applied to restore the original K-bit information.

なお、この図2においては、復調器4において、8レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器4においては、L値(L≧2)に量子化されたビットを用いて復号処理を行なうことができる。   In FIG. 2, the demodulator 4 generates bits quantized to 8 levels. However, in general, the demodulator 4 can perform decoding using bits quantized to L values (L ≧ 2).

また、図2においては、比較器を用いて、あるしきい値を使って受信信号のレベルを判定し、2値信号を生成してもよい。   In FIG. 2, a binary signal may be generated by using a comparator to determine the level of the received signal using a certain threshold value.

図3は、復号器5の構成を概略的に示す図である。この図3においては、復調器4および通信路3も併せて示す。復調器4は、通信路3から与えられた信号を復調する復調回路4aと、この復調回路4aにより生成されたアナログ復調信号をデジタル信号に変換するアナログ/デジタル変換回路4bを含む。
このアナログ/デジタル変換回路4bの出力データXnが復号器5へ与えられる。この復号器5へ与えられるデータXnは、L値(L≧2)のデータである。以下、データXnは、多値量子化データであるため、シンボルと称す。復号化器5は、この入力シンボルXn系列に対しsum-product復号法又はmin-sum復号法などの復号法に従って復号処理を行なって符号ビットCnを生成する。
FIG. 3 is a diagram schematically showing the configuration of the decoder 5. In FIG. 3, the demodulator 4 and the communication path 3 are also shown. The demodulator 4 includes a demodulation circuit 4a that demodulates a signal applied from the communication path 3, and an analog / digital conversion circuit 4b that converts an analog demodulated signal generated by the demodulation circuit 4a into a digital signal.
Output data Xn of the analog / digital conversion circuit 4b is applied to the decoder 5. The data Xn given to the decoder 5 is data of L value (L ≧ 2). Hereinafter, since the data Xn is multilevel quantized data, it is referred to as a symbol. The decoder 5 performs a decoding process on the input symbol Xn sequence according to a decoding method such as a sum-product decoding method or a min-sum decoding method to generate a code bit Cn.

復号器5は、復調器4からの復調シンボルXnの対数尤度比λnを生成する対数尤度比算出部6と、対数尤度比λn及びパリティ検査行列に基づく繰り返し演算によって復号演算処理を行う外部値対数比算出部(復号処理部)7と、外部値対数比算出部7によって算出された外部値対数比αmn及び対数尤度比λnに基づいて復号語を生成する復号語生成部199と、を含む。   The decoder 5 performs a decoding operation process by a logarithmic likelihood ratio calculation unit 6 that generates the log likelihood ratio λn of the demodulated symbol Xn from the demodulator 4 and an iterative operation based on the log likelihood ratio λn and the parity check matrix. An external value log ratio calculation unit (decoding processing unit) 7, a decoded word generation unit 199 that generates a decoded word based on the external value log ratio α mn and the log likelihood ratio λ n calculated by the external value log ratio calculation unit 7; ,including.

対数尤度比算出部6は、この受信信号のノイズ情報と独立に、対数尤度比λnを生成する。通常、ノイズ情報を考慮した場合、この対数尤度比λnは、Xn/(2・σ・σ)で与えられる。ここで、σは、ノイズの分散を示す。
しかしながら、本実施の形態においては、この対数尤度比算出部6は、バッファ回路または定数乗算回路で形成され、対数尤度比λnは、Xn・fで与えられる。ここで、fは非ゼロの正の数である。また、min-sum復号方法においては、検査行列に基づく復号処理(行処理)において、最小値を利用して演算を行なうため、信号処理において線形性が維持される。このため、ノイズ情報に従って出力データを正規化するなどの処理は不要である。この場合ノイズ情報を利用せずに、対数尤度比を算出することにより、回路構成が簡略化され、また計算処理も簡略化される。
The log likelihood ratio calculation unit 6 generates a log likelihood ratio λn independently of the noise information of the received signal. Normally, when noise information is taken into consideration, this log likelihood ratio λn is given by Xn / (2 · σ · σ). Here, σ represents noise variance.
However, in the present embodiment, the log likelihood ratio calculation unit 6 is formed of a buffer circuit or a constant multiplier circuit, and the log likelihood ratio λn is given by Xn · f. Here, f is a non-zero positive number. Further, in the min-sum decoding method, since the calculation is performed using the minimum value in the decoding process (row process) based on the parity check matrix, linearity is maintained in the signal processing. For this reason, processing such as normalization of output data according to noise information is unnecessary. In this case, by calculating the log-likelihood ratio without using noise information, the circuit configuration is simplified and the calculation process is also simplified.

ここでの外部値対数比算出部7は、min-sum復号方法によって復号処理を行うものとする。なお、復号法は、sum-product復号法でもよい。
外部値対数比算出部7は、次式(1)及び(2)に従って演算処理を行い、パリティ検査行列の行の各要素(非零要素:1)についての処理(行処理)、及び列についての各要素(非零要素:1)についての処理(列処理)を繰り返し実行する。
Here, the external value log ratio calculation unit 7 performs a decoding process by a min-sum decoding method. Note that the decoding method may be a sum-product decoding method.
The external value log ratio calculation unit 7 performs arithmetic processing according to the following equations (1) and (2), and processes (row processing) and columns for each element (non-zero element: 1) in the row of the parity check matrix. The processing (column processing) for each element (non-zero element: 1) is repeatedly executed.

ここで、上式(1)および(2)それぞれにおいて、n’∈A(m)\nおよびm’∈B(n)\mは、自身を除く要素を意味する。
外部値対数比αmnについては、n’≠nであり、事前値対数比βmnについては、m’≠mである。また、αおよびβの行列内の位置を示す添え字“mn”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
Here, in each of the above formulas (1) and (2), n′εA (m) \ n and m′εB (n) \ m mean elements other than themselves.
For the external value log ratio αmn, n ′ ≠ n, and for the prior value log ratio βmn, m ′ ≠ m. Further, the subscript “mn” indicating the position in the matrix of α and β is usually indicated by a subscript, but in this specification, it is indicated by “horizontal characters” for the sake of readability.

また、関数sign(x)は、次式(3)で定義される。
The function sign (x) is defined by the following equation (3).

また、集合A(m)およびB(n)は、2元M・N行列H=[Hmn]を復号対象のLDPC符号の検査行列とした場合、集合[1,N]={1,2,…,N}の部分集合である。
A(m)={n:Hmn=1} …(4)
B(n)={m:Hmn=1} …(5)
In addition, the sets A (m) and B (n) have a set [1, N] = {1, 2, when the binary M · N matrix H = [Hmn] is a parity check matrix of the LDPC code to be decoded. .., N}.
A (m) = {n: Hmn = 1} (4)
B (n) = {m: Hmn = 1} (5)

すなわち、上記部分集合A(m)は、検査行列Hの第m行目において1(非零要素)が立っている列インデックスの集合を意味し、部分集合B(n)は、検査行列Hの第n列目において1(非零要素)が立っている行インデックスの集合を示す。   That is, the subset A (m) means a set of column indexes where 1 (non-zero element) stands in the m-th row of the parity check matrix H, and the subset B (n) A set of row indexes where 1 (non-zero element) stands in the n-th column is shown.

具体的に、今、図4に示す検査行列Hを考える。この図4に示す検査行列Hにおいては、第1行の第1列から第3列に“1”が立ち、また第2行の第3列および第4列に“1”が立ち、また第3行の第4列から第6列に、“1”が立つ。したがって、この場合、部分集合A(m)は以下のようになる。   Specifically, consider the parity check matrix H shown in FIG. In the parity check matrix H shown in FIG. 4, “1” stands in the first to third columns of the first row, “1” stands for the third and fourth columns of the second row, and “1” stands in the fourth column to the sixth column of the three rows. Therefore, in this case, the subset A (m) is as follows.

A(1)={1,2,3}
A(2)={3,4}
A(3)={4,5,6}
A (1) = {1, 2, 3}
A (2) = {3,4}
A (3) = {4, 5, 6}

同様に、部分集合B(n)については、以下のようになる。
B(1)=B(2)={1}
B(3)={1,2}
B(4)={2,3}
B(5)=B(6)={3}
Similarly, the subset B (n) is as follows.
B (1) = B (2) = {1}
B (3) = {1, 2}
B (4) = {2,3}
B (5) = B (6) = {3}

この検査行列Hにおいて、タナー(Tanner)グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この“1”により示される。これを、本明細書においては「“1”が立つ」と称している。すなわち、図5に示すように、変数ノード1,2,3は、チェックノードX(第1行)に接続され、変数ノード3,4が、チェックノードY(第2行)に接続される。変数ノード4,5,6が、チェックノードZ(第3行)に接続される。この変数ノードが検査行列Hの列に対応し、チェックノードX,YおよびZが、この検査行列Hの各行に対応する。従って、図4に示す検査行列は、情報ビットが3ビット、冗長ビットが3ビットの合計6ビットの符号長の符号に対して適用される。   In the parity check matrix H, when a Tanner graph is used, the connection relationship between a variable node corresponding to a column and a check node corresponding to a row is indicated by “1”. This is referred to as “1” stands ”in this specification. That is, as shown in FIG. 5, the variable nodes 1, 2, and 3 are connected to the check node X (first row), and the variable nodes 3 and 4 are connected to the check node Y (second row). The variable nodes 4, 5, and 6 are connected to the check node Z (third row). This variable node corresponds to a column of the check matrix H, and check nodes X, Y, and Z correspond to each row of the check matrix H. Therefore, the parity check matrix shown in FIG. 4 is applied to a code having a code length of 6 bits in total including 3 information bits and 3 redundant bits.

LDPCの検査行列Hでは、“1”の数は少なく、低密度の検査行列であり、これにより、計算量を低減できる。   In the LDPC parity check matrix H, the number of “1” s is small, and the parity check matrix is a low density, thereby reducing the amount of calculation.

この変数ノードとチェックノードの間で各条件確率P(Xi|Yi)を伝播させ、MAPアルゴリズムに従って、もっともらしい符号を各変数ノードについて決定する。ここで、条件付確率P(Xi|Yi)は、Yiの条件下でXiとなる確率を示す。   Each condition probability P (Xi | Yi) is propagated between the variable node and the check node, and a plausible code is determined for each variable node according to the MAP algorithm. Here, the conditional probability P (Xi | Yi) indicates the probability of being Xi under the condition of Yi.

再び、図3を参照して、外部値対数比αmn及び対数尤度比λnに基づいて復号語を生成する復号語生成部199は、一次推定語生成部180と、復号語決定部190とを含む。   Referring to FIG. 3 again, decoded word generating section 199 that generates a decoded word based on external value log ratio αmn and log likelihood ratio λn includes primary estimated word generating section 180 and decoded word determining section 190. Including.

図6は、一次推定語生成部180の構成を表す図である。
図6を参照して、一次推定語生成部180は、Qn算出部140と、Cn算出部141とを含む。
FIG. 6 is a diagram illustrating the configuration of the primary estimated word generation unit 180.
Referring to FIG. 6, primary estimated word generation unit 180 includes a Qn calculation unit 140 and a Cn calculation unit 141.

Qn算出部140は、対数尤度比算出部6からの対数尤度比λと、外部対数比算出部7からの外部値対数比αmnとを用いて、次式(6)に従って、推定受信語(Q,Q,・・・,Q)を算出する。
The Qn calculation unit 140 uses the log likelihood ratio λ from the log likelihood ratio calculation unit 6 and the external value log ratio α mn from the external log ratio calculation unit 7 according to the following equation (6) to estimate the received word (Q 1 , Q 2 ,..., Q N ) are calculated.

Cn算出部141は、次式(7)に従って、一次推定語(C,C,・・・,C)を算出する。ここで、(C,C,・・・,C)の標記は、Nビットの一次推定語の第1ビット(LSB:Least Significant Bit)がCであり、第2ビットがCであり、第Nビット(MSN)がCであることを表す。 The Cn calculation unit 141 calculates primary estimated words (C 1 , C 2 ,..., C N ) according to the following equation (7). Here, the notation of (C 1 , C 2 ,..., C N ) indicates that the first bit (LSB: Least Significant Bit) of the N-bit primary estimation word is C 1 and the second bit is C 2. , and the indicating that the N bits (MSN) is a C N.

再び、図3を参照して、復号語決定部190は、一次推定語生成部180から一次推定語(C,C,・・・,C)が符号語を構成しているかどうかを検査する。復号語決定部190は、次式(8)が成立する場合、つまり、シンドロームが“0”となる場合には、外部値対数比算出部7の繰り返し演算を終了させて、一次推定語(C,C,・・・,C)のうちのKビットの情報ビット部分、すなわち、(C,C,・・・,C)を復号語として復号器5の外部に出力する。また、復号語決定部190は、ループの回数、つまり外部値対数比算出部7の演算の繰り返し回数が所定値を超えたときにも、外部値対数比算出部7の繰り返し演算を終了させて、一次推定語(C,C,・・・,C)のうちのKビットの情報ビット部分、すなわち、(C,C,・・・,C)を復号語として復号器5の外部に出力する。
(C,C,・・・,C)・H=0(ただし、Hは、Hの転置を表す・・・(8)
Referring to FIG. 3 again, decoded word determining section 190 determines whether or not primary estimated words (C 1 , C 2 ,..., C N ) form code words from primary estimated word generation section 180. inspect. When the following equation (8) is satisfied, that is, when the syndrome becomes “0”, the decoded word determining unit 190 ends the iterative calculation of the external value logarithmic ratio calculating unit 7 and the primary estimated word (C 1 , C 2 ,..., C N ), that is, the information bits of K bits, that is, (C 1 , C 2 ,..., C K ) are output to the outside of the decoder 5 as decoded words. . The decoded word determination unit 190 also terminates the iterative operation of the external value log ratio calculation unit 7 even when the number of loops, that is, the number of repetitions of the operation of the external value log ratio calculation unit 7 exceeds a predetermined value. , The K bit information bit portion of the primary estimation word (C 1 , C 2 ,..., C N ), ie, (C 1 , C 2 ,..., C K ) as a decoding word. 5 is output to the outside.
(C 1 , C 2 ,..., C N ) · H t = 0 (where H t represents transposition of H (8))

以上のような本実施形態の復号器5は、複数の検査行列を使い分けて、複数の符号に対応することができる。本実施形態では、復号装置4は、符号化率の異なる複数の低密度パリティ検査符号を使い分けることができる。符号化率は、マルチレートに対応可能な通信装置における通信レートに応じて決定でき、高速のレートであれば符号化率を小さくし、低速のレートであれば符号化率を大きくする。なお、通信レートは、通信装置が検出したSN比又はCIN比等の通信路品質に応じて決定され、復号装置は、決定された符号化率に対応する検査行列を用いて復号を行う。本実施形態では、異なる符号化率に対応するため、検査行列の行重みを変更する。   The decoder 5 of the present embodiment as described above can cope with a plurality of codes by properly using a plurality of check matrices. In the present embodiment, the decoding device 4 can selectively use a plurality of low density parity check codes having different coding rates. The coding rate can be determined according to the communication rate in a communication apparatus that can handle multi-rates. The coding rate is decreased at a high rate, and the coding rate is increased at a low rate. The communication rate is determined according to the channel quality such as the SN ratio or CIN ratio detected by the communication apparatus, and the decoding apparatus performs decoding using a check matrix corresponding to the determined coding rate. In the present embodiment, the row weight of the parity check matrix is changed in order to cope with different coding rates.

[検査行列について]
さて、図7は、本実施形態の復号器5において用いられるLDPC符号の検査行列H96の具体例を示している。図7の検査行列H96は、符号長N=96、行重みwr=6、列重みwc=3の正則な検査行列(行列サイズ=48×96)を示している。図7においては、検査行列の「1」(非零要素)のあるところは、点で示されている。図7の検査行列H96において、非零要素を示す点は288個ある。
[Check matrix]
FIG. 7 shows a specific example of LDPC code parity check matrix H 96 used in decoder 5 of the present embodiment. Check matrix H 96 in FIG. 7, the code length N = 96, row weight wr = 6, shows column weight wc = 3 for regular inspection matrix (matrix size = 48 × 96). In FIG. 7, a place where “1” (nonzero element) of the parity check matrix exists is indicated by a point. In the parity check matrix H 96 in FIG. 7, there are 288 points indicating non-zero elements.

また、比較例として、図8に、図22に示すGallagerの方法(乱数ベースの方法)で生成した同サイズの正則検査行列を示した。なお、図8の検査行列は、行重みwr及び列重みwcも、図7のものと同様である。
図8の検査行列は、規則性がないため、この検査行列を表現するための情報としては、少なくとも2016ビットが必要である。つまり、図8の検査行列を表現するためには、各行における点の位置(列番号;列インデックス)を列挙しておき、1行当たりの点数が6個であることを利用して、各行内で列挙された点の位置を記録すれば各行を再現することができる。したがって、この方式では、それぞれの点が、1〜96の数値をとり、1点あたり7ビット必要であるため、288点で、7×288×=2016が必要である。
As a comparative example, FIG. 8 shows a regular check matrix of the same size generated by the Gallager method (random number based method) shown in FIG. In the parity check matrix of FIG. 8, the row weight wr and the column weight wc are the same as those in FIG.
Since the parity check matrix of FIG. 8 has no regularity, at least 2016 bits are required as information for expressing the parity check matrix. That is, in order to express the parity check matrix of FIG. 8, the positions (column numbers; column indexes) of the points in each row are listed, and the fact that the number of points per row is 6 is used. Each row can be reproduced by recording the positions of the points listed in. Therefore, in this system, each point takes a numerical value of 1 to 96, and 7 bits are required for each point. Therefore, 288 points and 7 × 288 × = 2016 are required.

一方、本実施形態に係る図7の検査行列H96では、符号長Nに対して互いに素である3つの数値A1,A2,A3で表現することができる。ここで、数値A1,A2,A3は、符号長Nよりも小さい値をとるものとすると、一つの数値は7ビットで表現できるため、7×3=21ビットで足り、Nを加えても、7×4=28ビットで足りることになる。なお、本実施形態において、数値A1〜A3は、列重みwcに対応した個数が用意される。
なお、Nに対して互いに素である複数の数値A1,A2,A3を区別せずに総称する場合は、単に「数値A」という。
On the other hand, the parity check matrix H 96 in FIG. 7 according to the present embodiment can be expressed by three numerical values A1, A2, and A3 that are relatively prime to the code length N. Here, if the numerical values A1, A2 and A3 are smaller than the code length N, one numerical value can be expressed by 7 bits, so 7 × 3 = 21 bits is sufficient, and even if N is added, 7 × 4 = 28 bits is sufficient. In the present embodiment, the numbers A1 to A3 are prepared in numbers corresponding to the column weights wc.
Note that when a plurality of numerical values A1, A2, and A3 that are relatively prime to N are collectively referred to without distinction, they are simply referred to as “numerical value A”.

図7の検査行列H96は列重みwcが3であることに対応して、検査行列H96を行方向に3つに分割した部分行列(ブロック)H1〜H3としてみた場合に、図9に示すように、第1ブロックH1は数値A1によって、第2ブロックH2は数値A2によって、第3ブロックは数値A3によって生成される。つまり、それぞれのブロックは、数値Aが与えられることで構成できる。また、Nに対して互いに素である数値AをA1〜A3のように異ならせることで、非零要素の配置が異なる複数のブロックH1〜H3を生成できる。 The parity check matrix H 96 in FIG. 7 corresponds to the column weight wc being 3, and when the parity check matrix H 96 is viewed as partial matrices (blocks) H1 to H3 divided into three in the row direction, FIG. As shown, the first block H1 is generated by the numerical value A1, the second block H2 is generated by the numerical value A2, and the third block is generated by the numerical value A3. That is, each block can be configured by being given a numerical value A. Also, by making the numerical value A that is relatively prime with respect to N, such as A1 to A3, it is possible to generate a plurality of blocks H1 to H3 with different arrangements of non-zero elements.

図7の検査行列H96において、各ブロックH1〜H3は、列重みが1であり、行重みが6の部分行列となっており、これらのブロックH1〜H3を結合することで、図7の検査行列H96が得られる。
図7の各ブロックH1〜H3では、斜め方向を向く点(非零要素)の列が、略一定間隔をおいて略規則正しく並んでいる。点の列の傾きや点の列の間隔はブロックH1〜H3ごとに異なる。
In the check matrix H 96 of FIG. 7, each of the blocks H1 to H3 is a partial matrix having a column weight of 1 and a row weight of 6. By combining these blocks H1 to H3, the blocks of FIG. A check matrix H 96 is obtained.
In each of the blocks H1 to H3 in FIG. 7, a row of points (non-zero elements) facing in an oblique direction are arranged approximately regularly with a substantially constant interval. The slope of the point row and the interval between the point rows are different for each of the blocks H1 to H3.

図7の各ブロックH1〜H3では、一見すると(マクロ的にみると)、斜め方向を向く点の列が、直線的に並んでいるようにみえる。しかし、図7の点の列は、厳密にみると(ミクロ的にみると)、直線的に点(非零要素)が並んでいるのではなく、やや蛇行しながら並んでいる。前述のように各ブロックH1〜H3の列重みは、それぞれ1であり、各ブロックH1〜H3において一つの列位置には一つの点(非零要素)しか存在しないようにするため、点の列がやや蛇行したり、点の列を構成する点の間隔が異なっていたりする。   In each of the blocks H1 to H3 in FIG. 7, at first glance (when viewed macroscopically), it appears that the rows of points facing diagonally are arranged in a straight line. However, when viewed strictly (when viewed microscopically), the sequence of dots in FIG. 7 is not linearly arranged with points (non-zero elements), but rather is arranged in a meandering manner. As described above, the column weight of each of the blocks H1 to H3 is 1, and in order to ensure that only one point (non-zero element) exists at one column position in each of the blocks H1 to H3, However, the meandering of the points may be slightly different, or the intervals between the points constituting the row of points may be different.

図7の検査行列H96では、点の列が略等間隔であり、しかも、点(非零要素)の分布が検査行列全体で一様な疎行列となっているため、訂正能力に悪影響を与える短いサイクルが発生しにくく、良好な訂正能力が得られる。 In the parity check matrix H 96 of FIG. 7, the sequence of points is substantially equally spaced, and the distribution of the points (non-zero elements) is a uniform sparse matrix throughout the parity check matrix, which adversely affects the correction capability. A short cycle is hardly generated, and a good correction capability is obtained.

[本実施形態に係る検査行列の生成規則]
本実施形態の復号器5は、上記のような特性を持つ検査行列H96を用いて復号を行う。この検査行列H96の第1ブロックH1の生成規則は、次のとおりである。なお、各ブロックH1〜H3に含まれる行数Pは、P=行長さM/列重みwr=48/3=16である。
[Check matrix generation rule according to this embodiment]
The decoder 5 of the present embodiment performs decoding using the check matrix H 96 having the above characteristics. The generation rule of the first block H1 of this check matrix H 96 is as follows. The number of rows P included in each of the blocks H1 to H3 is P = row length M / column weight wr = 48/3 = 16.

(0:行重み変更ステップ)通信レートに応じて行重みwrを決定する。
(1)符号長(検査行列の列方向長さ)をNとする。
(2)Nと互いに素である数値をA1とする。
(3)変数xが、初期値xから(x+(N−1))になるまで下記(3−1)(3−2)の処理を繰り返す(N回の繰り返し処理)。なお、ここでは、初期値x=1とする。
(3−1:位置算出ステップ)mod(A1×x,N)を計算し、その結果に1を加える。つまり、“mod(A1×x,N)+1”を計算する。なお、mod(A1×x,N)は、(A1×x)をNで割ったときの剰余を求める関数である。
(3−2:配置ステップ)第1ブロックH1中の、“mod(A1×x,N)+1”の結果(列インデックス)が示す列位置に非零要素「1」を配置する。例えば、“mod(A1×x,N)+1”の演算結果が「10」であれば、指定された行の10列目に「1」を立てる。「1」が配置される行は、第1ブロックH1の1行目からP行目まで順次切り替わる。各行には、行重みwrに対応した数の「1」が順次配置され、一つの行に、行重み分の数の「1」を立てたら、次の行に移って、同様に行重み分の数の「1」を立てる。
(0: Row weight change step) The row weight wr is determined according to the communication rate.
(1) Let N be the code length (length in the column direction of the check matrix).
(2) A1 is a value that is relatively prime to N.
(3) variable x, initial values x 1 from (x 1 + (N-1)) to until the following (3-1) (3-2) repeated processing of (N times iteration). Here, it is assumed that the initial value x 1 = 1.
(3-1: Position Calculation Step) Mod (A1 × x, N) is calculated, and 1 is added to the result. That is, “mod (A1 × x, N) +1” is calculated. Note that mod (A1 × x, N) is a function for obtaining a remainder when (A1 × x) is divided by N.
(3-2: Arrangement Step) The non-zero element “1” is arranged at the column position indicated by the result (column index) of “mod (A1 × x, N) +1” in the first block H1. For example, if the calculation result of “mod (A1 × x, N) +1” is “10”, “1” is set in the 10th column of the designated row. The row where “1” is arranged is sequentially switched from the first row to the P-th row of the first block H1. Each row is sequentially arranged with the number “1” corresponding to the row weight wr, and when one row is set with the number “1” corresponding to the row weight, the operation proceeds to the next row and similarly the row weight amount is set. Set the number of "1".

ここで、“mod(A1×x,N)+1”によって算出された数は、検査行列において「1」が配置されるべき列位置(列インデックス)を示しており、“mod(A1×x,N)+1”の値が示す列位置に「1」が立てられる。   Here, the number calculated by “mod (A1 × x, N) +1” indicates the column position (column index) where “1” should be placed in the parity check matrix, and “mod (A1 × x, N) “1” is set at the column position indicated by the value of +1 ″.

A1とNとは互いに素な数であるため、xが1〜(N−1)までの数値をとる場合、A1×xがNによって割り切れることはない。つまり、xが1〜(N−1)までの数値をとる場合、“mod(A1×x,N)+1”は、2〜Nまでの数値を唯一1回のみ発生することになる。そして、x=Nになると、A1×xがNによって割り切れ、“mod(A1×x,N)+1”の演算結果が1となる。   Since A1 and N are relatively prime numbers, when x takes a numerical value from 1 to (N−1), A1 × x is not divisible by N. That is, when x takes a numerical value from 1 to (N−1), “mod (A1 × x, N) +1” generates the numerical value from 2 to N only once. When x = N, A1 × x is divisible by N, and the calculation result of “mod (A1 × x, N) +1” is 1.

このように、xが1〜Nまでの数値をとると、“mod(A1×x,N)+1”は、1〜Nまでの数値を唯一1回のみ発生する。
つまり、N回の計算結果として、1〜Nまでの数値を重複させることなく、全ての値を生成でき、このため、この計算結果を基に、検査行列(の各ブロックH1〜H3)に非零要素「1」を配置すれば、それぞれのブロックには、全ての列に対して、それぞれ1点のみ非零要素「1」を配置することができる。
Thus, when x takes a numerical value from 1 to N, “mod (A1 × x, N) +1” generates the numerical value from 1 to N only once.
In other words, all values can be generated as N calculation results without duplicating numerical values from 1 to N. For this reason, based on this calculation result, the check matrix (each block H1 to H3) is non-existent. If the zero element “1” is arranged, the non-zero element “1” can be arranged in each block at only one point for all the columns.

なお、“mod(A1×x,N)+1”の式において、本質的な演算は、“mod(A1×x,N)”である。“+1”は、“mod(A1×x,N)”の演算結果(0〜N−1の範囲をとる)を、検査行列の列インデックス(1〜Nの範囲をとる)に対応させるための変換処理である。したがって、例えば、検査行列の列インデックスの範囲を(0〜N−1)にするのであれば、“+1”の演算は不要である。   Note that in the equation “mod (A1 × x, N) +1”, the essential operation is “mod (A1 × x, N)”. “+1” is used to correspond the calculation result of “mod (A1 × x, N)” (with a range of 0 to N−1) to the column index of the parity check matrix (with a range of 1 to N). It is a conversion process. Therefore, for example, if the range of the column index of the parity check matrix is (0 to N−1), the operation of “+1” is not necessary.

また、上記生成規則では、xの初期値xを1としたが、例えば、その他の数値としてもよい。例えば、xを0〜N−1の範囲で繰り返しても良い。xの初期値を調整すると、“mod(A1×x,N)+1”の計算で生成される数値がずれるが、1〜Nまでの数値を唯一1回のみ発生することには変わりなく、xの初期値を調整しても同様な性質の検査行列が得られる。 Further, in the above productions, it has been one of the initial value x 1 of x, for example, may be other values. For example, x may be repeated in the range of 0 to N-1. When the initial value of x is adjusted, the numerical value generated by the calculation of “mod (A1 × x, N) +1” shifts, but the numerical values from 1 to N are generated only once, and x A parity check matrix having similar properties can be obtained by adjusting the initial value of.

さて、以下では、前記位置算出ステップ3−1及び前記配置ステップ3−2をより具体的に説明する。なお、ここでは、N=96,A1=29とする。また、N=96とA1=29とは互いに素である。
前記位置算出ステップ3−1を初期値xから6回(行重みの値)まで繰り返すと、下記のように{30,59,88,21,50,79}の計6個の数が求まる。
mod(29×1,96)+1=30
mod(29×2,96)+1=59
mod(29×3,96)+1=88
mod(29×4,96)+1=21
mod(29×5,96)+1=50
mod(29×6,96)+1=79
Now, the position calculation step 3-1 and the arrangement step 3-2 will be described in more detail below. Here, N = 96 and A1 = 29. N = 96 and A1 = 29 are relatively prime.
Repeating the position calculating step 3-1 to the initial value x 1 to 6 times (the value of the row weight), it is obtained a total of six numbers of the {30,59,88,21,50,79} as follows .
mod (29 × 1,96) + 1 = 30
mod (29 × 2,96) + 1 = 59
mod (29 × 3, 96) + 1 = 88
mod (29 × 4, 96) + 1 = 21
mod (29 × 5, 96) + 1 = 50
mod (29 × 6, 96) + 1 = 79

配置ステップ3−2では、“mod(A1×x,N)+1”が求まると、順次、検査行列(の第1ブロックH1)中に「1」を立てていく。つまり、第1ブロックH1の1行目から開始し、当該1行目の30列目、59列目、88列目、21列目、50列目、79列目に、「1」を立てる。ここでは、行重みwr=6であるから、6回の繰り返しで、1行目に「1」を配置できたことになる。   In arrangement step 3-2, when “mod (A1 × x, N) +1” is obtained, “1” is sequentially set in the check matrix (first block H1 thereof). That is, starting from the first row of the first block H1, “1” is set in the 30th, 59th, 88th, 21st, 50th, and 79th columns of the first row. Here, since the row weight wr = 6, “1” can be arranged in the first row by repeating 6 times.

1行目への「1」の配置が完了すると、次の行に「1」を配置する。つまり、7回目(x=7)〜12回目(x=12)の繰り返しでは、2行目について、“mod(A1×x,N)+1”が示す列位置に「1」を立てていく。
同様に、13回目〜18回目の繰り返しでは、3行目に「1」を立て、以下、これを繰り返していき、第1ブロックH1を構成する1行目〜P行目(16行目)までにN個の「1」を立てることができる。
When the arrangement of “1” in the first line is completed, “1” is arranged in the next line. That is, in the repetition of the seventh time (x = 7) to the twelfth time (x = 12), “1” is set at the column position indicated by “mod (A1 × x, N) +1” for the second row.
Similarly, in the 13th to 18th repetition, “1” is set in the 3rd line, and this is repeated thereafter until the 1st line to the Pth line (16th line) constituting the first block H1. N "1" s can be set in

上記生成規則は、数値A2によって生成される第2ブロックH2、数値A3によって生成される第3ブロックにも適用される。この場合、上記生成規則の「A1」を「A2」乃至「A3」に置きかえれば良い。また、上記生成規則の「A1」を「A1」に限定しないように抽象化するには、上記生成規則の「A1」を「A」とすればよい。   The generation rule is also applied to the second block H2 generated by the numerical value A2 and the third block generated by the numerical value A3. In this case, “A1” in the generation rule may be replaced with “A2” to “A3”. In order to abstract the generation rule “A1” so as not to be limited to “A1”, the generation rule “A1” may be set to “A”.

したがって、検査行列H96の第2ブロックH2を構成する(P+1)行目〜(2×P)行目には、変数A2を用いた位置算出ステップの演算結果に基づき、N個の「1」が立てられる。また、検査行列H96の第3ブロックH3の(2×P+1)行目〜(3×P)行目には、変数A3を用いた位置算出ステップの演算結果に基づき、N個の「1」が立てられる。 Therefore, in the (P + 1) -th to (2 × P) -th lines constituting the second block H2 of the check matrix H 96 , N “1” s are based on the calculation result of the position calculation step using the variable A2. Is established. In the (2 × P + 1) -th to (3 × P) -th rows of the third block H3 of the check matrix H 96 , N “1” s are based on the calculation result of the position calculation step using the variable A3. Is established.

以下は、検査行列H96の第1ブロックH1を数値A1=29で、第2ブロックH2を数値A2=31で、第3ブロックH3を数値A3=37で、位置算出ステップを実行した場合の演算結果を示している。 The following is a calculation when the position calculation step is executed with the first block H1 of the parity check matrix H 96 being a numerical value A1 = 29, the second block H2 being a numerical value A2 = 31, and the third block H3 being a numerical value A3 = 37. Results are shown.

第1ブロックH1
1行目:30,59,88,21,50,79
2行目:12,41,70, 3,32,61
3行目:90,23,52,81,14,43
4行目:72, 5 34,63,92,25
5行目:54,83,16,45,74, 7
6行目:36,65,94,27,56,85
7行目:18,47,76, 9,38,67
8行目:96,29,58,87,20,49
9行目:78,11,40,69, 2,31
10行目:60,89,22,51,80,13
11行目:42,71, 4,33,62,91
12行目:24,53,82,15,44,73
13行目: 6,35,64,93,26,55
14行目:84,17,46,75, 8,37
15行目:66,95,28,57,86,19
16行目:48,77,10,39,68, 1
1st block H1
1st line: 30, 59, 88, 21, 50, 79
2nd line: 12, 41, 70, 3, 32, 61
3rd line: 90, 23, 52, 81, 14, 43
4th line: 72, 5 34, 63, 92, 25
5th line: 54, 83, 16, 45, 74, 7
6th line: 36, 65, 94, 27, 56, 85
7th line: 18, 47, 76, 9, 38, 67
8th line: 96, 29, 58, 87, 20, 49
9th line: 78, 11, 40, 69, 2, 31
10th line: 60, 89, 22, 51, 80, 13
11th line: 42, 71, 4, 33, 62, 91
12th line: 24, 53, 82, 15, 44, 73
13th line: 6, 35, 64, 93, 26, 55
14th line: 84, 17, 46, 75, 8, 37
15th line: 66, 95, 28, 57, 86, 19
16th line: 48, 77, 10, 39, 68, 1

第2ブロックH2
17行目:32,63,94,29,60,91
18行目:26,57,88,23,54,85
19行目:20,51,82,17,48,79
20行目:14,45,76,11,42,73
21行目: 8,39,70, 5,36,67
22行目: 2,33,64,95,30,61
23行目:92,27,58,89,24,55
24行目:86,21,52,83,18,49
25行目:80,15,46,77,12,43
26行目:74, 9,40,71, 6,37
27行目:68, 3,34,65,96,31
28行目:62,93,28,59,90,25
29行目:56,87,22,53,84,19
30行目:50,81,16,47,78,13
31行目:44,75,10,41,72, 7
32行目:38,69, 4,35,66, 1
Second block H2
17th line: 32, 63, 94, 29, 60, 91
18th line: 26, 57, 88, 23, 54, 85
19th line: 20, 51, 82, 17, 48, 79
20th line: 14, 45, 76, 11, 42, 73
21st line: 8, 39, 70, 5, 36, 67
22nd line: 2, 33, 64, 95, 30, 61
23rd line: 92, 27, 58, 89, 24, 55
24th line: 86, 21, 52, 83, 18, 49
25th line: 80, 15, 46, 77, 12, 43
26th line: 74, 9, 40, 71, 6, 37
27th line: 68, 3, 34, 65, 96, 31
28th line: 62, 93, 28, 59, 90, 25
29th line: 56, 87, 22, 53, 84, 19
30th line: 50, 81, 16, 47, 78, 13
31st line: 44, 75, 10, 41, 72, 7
32nd line: 38, 69, 4, 35, 66, 1

第3ブロックH3
33行目:38,75,16,53,90,31
34行目:68, 9,46,83,24,61
35行目: 2,39,76,17,54,91
36行目:32,69,10,47,84,25
37行目:62, 3,40,77,18,55
38行目:92,33,70,11,48,85
39行目:26,63, 4,41,78,19
40行目:56,93,34,71,12,49
41行目:86,27,64, 5,42,79
42行目:20,57,94,35,72,13
43行目:50,87,28,65, 6,43
44行目:80,21,58,95,36,73
45行目:14,51,88,29,66, 7
46行目:44,81,22,59,96,37
47行目:74,15,52,89,30,67
48行目: 8,45,82,23,60, 1
3rd block H3
33rd line: 38, 75, 16, 53, 90, 31
34th line: 68, 9, 46, 83, 24, 61
35th line: 2, 39, 76, 17, 54, 91
36th line: 32, 69, 10, 47, 84, 25
37th line: 62, 3, 40, 77, 18, 55
38th line: 92, 33, 70, 11, 48, 85
39th line: 26, 63, 4, 41, 78, 19
40th line: 56, 93, 34, 71, 12, 49
41st line: 86, 27, 64, 5, 42, 79
42nd line: 20, 57, 94, 35, 72, 13
43rd line: 50, 87, 28, 65, 6, 43
44th line: 80, 21, 58, 95, 36, 73
45th line: 14, 51, 88, 29, 66, 7
46th line: 44, 81, 22, 59, 96, 37
47th line: 74, 15, 52, 89, 30, 67
48th line: 8, 45, 82, 23, 60, 1

このようにして得られた(N×3)個の数値(列位置)に「1」(図7の点)を配置したものが、図7に示す検査行列H96である。
上記からも明かであるように、上記生成規則の配置ステップ3−2は、N個(=96個)
N個の演算結果からなる数列を、検査行列H96の行重wrの数(=6)からなるP個(=16個)の部分数列S〜Sに分割し、P個の部分数列S〜Sに含まれる数を非零要素の列位置として、対応するP個の行(1行目〜P行目)に非零要素を配置して各ブロックH1〜H3を生成するものということができる。
A parity check matrix H 96 shown in FIG. 7 is obtained by arranging “1” (points in FIG. 7) on the (N × 3) numerical values (column positions) thus obtained.
As is clear from the above, the generation rule placement step 3-2 is N (= 96).
A sequence of N computation results is divided into P (= 16) partial sequence S 1 to SP consisting of the number of row weights wr (= 6) of parity check matrix H 96 , and P partial sequences S 1 the number contained in the to S P as a column position of the non-zero elements, by arranging the non-zero elements in the corresponding P rows (first row ~P line) which generates each block H1~H3 It can be said.

なお、算出された(N×3)個の列位置を示す数値と図7の点との対応を容易にするため、各行の数値(列位置)を、左から小さい順に並び替えたものを下記に示す。
第1ブロックH1
1行目:21,30,50,59,79,88
2行目: 3,12,32,41,61,70
3行目:14,23,43,52,81,90
4行目: 5,25,34,63,72,92
5行目: 7,16,45,54,74,83
6行目:27,36,56,65,85,94
7行目: 9,18,38,47,67,76
8行目:20,29,49,58,87,96
9行目: 2,11,31,40,69,78
10行目:13,22,51,60,80,89
11行目: 4,33,42,62,71,91
12行目:15,24,44,53,73,82
13行目: 6,26,35,55,64,93
14行目: 8,17,37,46,75,84
15行目:19,28,57,66,86,95
16行目: 1,10,39,48,68,77
In order to facilitate the correspondence between the calculated numerical values indicating (N × 3) column positions and the points in FIG. 7, numerical values (column positions) in each row are rearranged in ascending order from the left. Shown in
1st block H1
1st line: 21, 30, 50, 59, 79, 88
2nd line: 3, 12, 32, 41, 61, 70
3rd line: 14, 23, 43, 52, 81, 90
4th line: 5, 25, 34, 63, 72, 92
5th line: 7, 16, 45, 54, 74, 83
6th line: 27, 36, 56, 65, 85, 94
7th line: 9, 18, 38, 47, 67, 76
8th line: 20, 29, 49, 58, 87, 96
9th line: 2, 11, 31, 40, 69, 78
10th line: 13, 22, 51, 60, 80, 89
11th line: 4, 33, 42, 62, 71, 91
12th line: 15, 24, 44, 53, 73, 82
13th line: 6, 26, 35, 55, 64, 93
14th line: 8, 17, 37, 46, 75, 84
15th line: 19, 28, 57, 66, 86, 95
16th line: 1,10,39,48,68,77

第2ブロックH2
17行目:29,32,60,63,91,94
18行目:23,26,54,57,85,88
19行目:17,20,48,51,79,82
20行目:11,14,42,45,73,76
21行目: 5, 8,36,39,67,70
22行目: 2,30,33,61,64,95
23行目:24,27,55,58,89,92
24行目:18,21,49,52,83,86
25行目:12,15,43,46,77,80
26行目: 6, 9,37,40,71,74
27行目: 3,31,34,65,68,96
28行目:25,28,59,62,90,93
29行目:19,22,53,56,84,87
30行目:13,16,47,50,78,81
31行目: 7,10,41,44,72,75
32行目: 1, 4,35,38,66,69
Second block H2
17th line: 29, 32, 60, 63, 91, 94
18th line: 23, 26, 54, 57, 85, 88
19th line: 17, 20, 48, 51, 79, 82
20th line: 11, 14, 42, 45, 73, 76
21st line: 5, 8, 36, 39, 67, 70
22nd line: 2, 30, 33, 61, 64, 95
23rd line: 24, 27, 55, 58, 89, 92
24th line: 18, 21, 49, 52, 83, 86
25th line: 12, 15, 43, 46, 77, 80
26th line: 6, 9, 37, 40, 71, 74
27th line: 3, 31, 34, 65, 68, 96
28th line: 25, 28, 59, 62, 90, 93
29th line: 19, 22, 53, 56, 84, 87
30th line: 13, 16, 47, 50, 78, 81
31st line: 7, 10, 41, 44, 72, 75
32nd line: 1, 4, 35, 38, 66, 69

第3ブロックH3
33行目:16,31,38,53,75,90
34行目: 9,24,46,61,68,83
35行目: 2,17,39,54,76,91
36行目:10,25,32,47,69,84
37行目: 3,18,40,55,62,77
38行目:11,33,48,70,85,92
39行目: 4,19,26,41,63,78
40行目:12,34,49,56,71,93
41行目: 5,27,42,64,79,86
42行目:13,20,35,57,72,94
43行目: 6,28,43,50,65,87
44行目:21,36,58,73,80,95
45行目: 7,14,29,51,66,88
46行目:22,37,44,59,81,96
47行目:15,30,52,67,74,89
48行目: 1, 8,23,45,60,82
3rd block H3
33rd line: 16, 31, 38, 53, 75, 90
34th line: 9, 24, 46, 61, 68, 83
35th line: 2, 17, 39, 54, 76, 91
36th line: 10, 25, 32, 47, 69, 84
37th line: 3, 18, 40, 55, 62, 77
38th line: 11, 33, 48, 70, 85, 92
39th line: 4, 19, 26, 41, 63, 78
40th line: 12, 34, 49, 56, 71, 93
41st line: 5, 27, 42, 64, 79, 86
42nd line: 13, 20, 35, 57, 72, 94
43rd line: 6, 28, 43, 50, 65, 87
44th line: 21, 36, 58, 73, 80, 95
45th line: 7, 14, 29, 51, 66, 88
46th line: 22, 37, 44, 59, 81, 96
47th line: 15, 30, 52, 67, 74, 89
48th line: 1, 8, 23, 45, 60, 82

各行に対応する部分数列S〜S48に含まれる数を小さい順に置きかえた上記結果から明らかなように、第1ブロックH1においては、数を小さい順に置きかえた数列の隣り合う数の差が、9前後の値又は20前後の値となっている。このため、図7に示すように、第1ブロックH1では、斜め方向の「点の列」の間隔が、列方向に約10となっている。
また、第2ブロックH2においては、数を小さい順に置きかえた数列の隣り合う数の差が、3前後の値又は28前後の値となっている。このため、図7に示すように、第2ブロックH2では、斜め方向の「点の列」の間隔が、列方向に約30となっている。
さらに、第3ブロックH3においては、数を小さい順に置きかえた数列の隣り合う数の差が、7前後の値、15前後の値、又は22前後の値となっている。このため、図7に示すように、第3ブロックH3では、斜め方向の「点の列」の間隔が、列方向に約7となっている。
なお、第1〜第3ブロックH1,H2,H3では、数値A1,A2,A3がそれぞれ異なることから、「点の列」の傾きも、それぞれ異なる。
As is apparent from the above result in which the numbers included in the partial sequence S 1 to S 48 corresponding to each row are replaced in ascending order, in the first block H1, the difference between adjacent numbers in the sequence in which the numbers are replaced in ascending order is The value is around 9 or around 20. For this reason, as shown in FIG. 7, in the first block H <b> 1, the interval between the “dot rows” in the diagonal direction is about 10 in the row direction.
Further, in the second block H2, the difference between adjacent numbers in the sequence in which the numbers are replaced in ascending order is a value of around 3 or a value of around 28. For this reason, as shown in FIG. 7, in the second block H <b> 2, the interval between the “dot rows” in the diagonal direction is about 30 in the row direction.
Further, in the third block H3, the difference between adjacent numbers in the sequence in which the numbers are changed in ascending order is a value of around 7, a value of around 15, or a value of around 22. For this reason, as shown in FIG. 7, in the third block H <b> 3, the interval between the “dot rows” in the diagonal direction is about 7 in the row direction.
In the first to third blocks H1, H2, and H3, since the numerical values A1, A2, and A3 are different from each other, the slopes of the “sequence of points” are also different from each other.

[本実施形態に係る検査行列の性質]
本実施形態に係る検査行列H96の性質は、以下の通りである。
ここで、上記のように“mod(A1×x,N)+1”をx=1〜NまでN回繰り返して得られた演算結果を、その算出順に並べた数列Sとして考え、下記のように表現する。なお、以下では、{}を、数列を囲む記号として用いる。
数列S:{y,y,・・・,y
[Characteristic matrix properties according to this embodiment]
The properties of the check matrix H 96 according to this embodiment are as follows.
Here, the calculation result obtained by repeating “mod (A1 × x, N) +1” N times from x = 1 to N as described above is considered as a sequence S arranged in the calculation order, and is as follows: Express. In the following, {} is used as a symbol surrounding a sequence of numbers.
Sequence S: {y 1 , y 2 ,..., Y N }

また、第1ブロックH1を構成する1行目〜P行目までの各行における非零要素の列位置を示す部分数列S〜Sを、下記のように表現する。
1行目に対応する部分数列 S:{y,y,・・・,y
2行目に対応する部分数列 S:{y,y,・・・,y12
・ ・
・ ・
・ ・
P−1行目に対応する部分数列SP−1:{yN−11,yN―10,・・・,yN−6
P行目に対応する部分数列 S:{yN−5,yN−4,・・・,y
Further, the partial sequence S 1 to S P indicating the column position of the non-zero elements in each row to the first row ~P row constituting the first block H1, expressed as follows.
Partial sequence corresponding to the first row S 1 : {y 1 , y 2 ,..., Y 6 }
Partial sequence corresponding to the second row S 2 : {y 7 , y 8 ,..., Y 12 }
・ ・
・ ・
・ ・
Partial sequence S P-1 corresponding to the P-1 line: {y N-11 , y N-10 ,..., Y N-6 }
Partial sequence corresponding to the P-th row S P : {y N-5 , y N-4 ,..., Y N }

前記数列Sは、部分数列S〜Sを用いると、部分数列S〜Sの連結数列として表現でき、具体的には下記のとおりである。
数列S={y,y,・・・,y}={S,S,・・・,SP−1,S
The sequence S is the use of partial sequence S 1 to S P, it can be expressed as a concatenation sequence of partial sequences S 1 to S P, and specifically as follows.
Sequence S = {y 1 , y 2 ,..., Y N } = {S 1 , S 2 ,..., S P−1 , S P }

上記の部分数列S〜Sは、位置算出ステップにおける演算処理内容から明らかなように、次の性質(1)(2)を有する。
(性質1)前記部分数列S〜Sは、行ごとに異なるものである。
(性質2)前記部分数列S〜Sに含まれる数は、1〜Nの自然数である。
The partial sequences S 1 to S P have the following properties (1) and (2), as is apparent from the contents of the arithmetic processing in the position calculation step.
(Property 1) The partial sequences S 1 to S P is different for each row.
(Property 2) the number included in the partial sequence S 1 to S P is a natural number of 1 to N.

さらに、部分数列S〜Sは、公差がA1である等差数列となっている(性質3)。
これは、mod(A1×x,N)の演算で、xを1つずつ増加させると、A1×xは、A1(=29)ずつ大きくなり、mod(A1×x,N)によって算出される剰余もA1(=29)ずつ大きくなるからである。
Moreover, partial sequences S 1 to S P is tolerance has become a arithmetic progression is A1 (Property 3).
This is an operation of mod (A1 × x, N). When x is increased by one, A1 × x increases by A1 (= 29) and is calculated by mod (A1 × x, N). This is because the remainder also increases by A1 (= 29).

例えば、第1行目に対応する第1部分数列Sは、前述のように{30,59,88,21,50,79}である。この場合、第1部分数列Sの第1項の「30」と、これと隣り合う第2項の「59」との間の差は、A1=29である。
他の項についても同様に差が29であるが、第4項の「88」と第5項の「21」との間の差は、「−67」であり、「29」ではない。
これは、mod(A1×x,N)という剰余を求める演算の性質上、mod(A1×x,N)の演算結果がNを超えず、xを順次増加させると、mod(A1×x,N)も増加するものの、1〜Nの間で循環的に増加するからである。
For example, the first partial sequence S 1 corresponding to the first row is {30, 59, 88, 21, 50, 79} as described above. In this case, the difference between the first term “30” of the first partial sequence S 1 and the adjacent second term “59” is A1 = 29.
Similarly, the difference between the other terms is 29, but the difference between “88” in the fourth term and “21” in the fifth term is “−67”, not “29”.
This is because the calculation result of mod (A1 × x, N) does not exceed N due to the nature of the calculation for calculating the remainder mod (A1 × x, N), and mod (A1 × x, N) This is because N) also increases, but increases cyclically between 1 and N.

mod(A1×x,N)が1〜Nの間で循環的に増加するという前提の下では、数列中の隣り合う数の差がA1でなくても、当該差(第1部分数列Sの第4項の「88」と第5項の「21」との間の差の場合「−67」)にN=96を加えた値が、A1であれば、差はA1とみなしてよい。
このような例外は、他の部分数列S〜Sにおいても存在するが、このような例外について数値間の差を、A1であるとみなすことで、全ての部分数列S〜Sは、「公差A1の等差数列である」ということができる。
Under the assumption that mod (A1 × x, N) increases cyclically between 1 and N, even if the difference between adjacent numbers in the sequence is not A1, the difference (first partial sequence S 1) If the difference between the fourth term “88” and the fifth term “21” is “−67” plus N = 96), the difference may be regarded as A1. .
These exceptions, but also present in other partial sequence S 2 to S P, a difference between numerical values such exceptions, it regarded as A1, all partial sequences S 1 to S P is , “It is an arithmetic sequence of tolerance A1”.

つまり、上記(性質3)を言い換えると次の通りである。
(性質3)部分数列S〜Sは公差がA1である等差数列である(ただし、当該部分数列S〜Sに含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)。
In other words, the above (Property 3) can be rephrased as follows.
(Property 3) is a partial sequence S 1 to S P is arithmetic progression tolerance is A1 (However, the number adjacent to any number y A and the number y A included in the partial sequence S 1 to S P Even if the difference from y B is not A, if the difference between y A and (y B + N) is A, the difference between y A and y B is regarded as A).

さらに、A1とNが互いに素であるという条件から、部分数列S〜Sは、次の性質も有する。
(性質4)同一の公差Aを持つ複数の等差数列(部分数列S〜S)において、1〜Nの自然数それぞれの出現回数は、1回以内である。
Moreover, the condition that A1 and N are relatively prime, partial sequences S 1 to S P also has the following properties.
(Characteristic 4) In a plurality of equality sequences having the same tolerance A (partial number sequences S 1 to S P ), the number of appearances of each of natural numbers 1 to N is within one.

また、上記生成規則に従って生成した検査行列H96の部分数列S〜Sは、次の性質も有する。
(性質5)P個の部分数列S〜Sは、連結数列SをP分割したものである。
(性質6)P個の部分数列S〜Sは、前記連結数列SにおけるP個の前記部分数列S〜Sの並び順と、P個の連続する行(1行目〜P行目)の並び順と、が一致するように、前記検査行列H96に含まれるP個の連続する行(1行目〜P行目)に、それぞれ割り当てられている。
Moreover, partial sequences S 1 to S P of the check matrix H 96 produced according to the above generated rule also has the following properties.
(Property 5) P partial number sequences S 1 to S P are obtained by dividing the connected number sequence S into P parts.
(Property 6) P number of partial sequences S 1 to S P is the order of the P of the partial sequence S 1 to S P in the connection sequence S, P consecutive rows (first row ~P line Are assigned to P consecutive rows (1st row to Pth row) included in the parity check matrix H 96 so that the order of the eye) matches.

また、上記生成規則に従って生成した連結数列Sは、次の性質を有する。
(性質7)前記連結数列Sは、P個の連続する行(1行目〜P行目)に含まれる非零要素の総数に対応した個数の「数」を有する。
(性質8)前記連結数列Sに含まれる数は、1〜Nの自然数である。
(性質9)前記連結数列Sにおいて、1〜Nの自然数それぞれの出現回数は、1回以内である。
(性質10)前記連結数列Sは、公差がA1である等差数列である(ただし、当該連結数列に含まれる任意の数yと当該数yに隣り合う数yとの差がA1でない場合があっても、yと(y+N)との差がA1であれば、yとyの差はA1であるとみなす)。
Further, the connected sequence S generated according to the generation rule has the following property.
(Characteristic 7) The concatenated number sequence S has “number” corresponding to the total number of non-zero elements included in P consecutive rows (1st to Pth rows).
(Property 8) The numbers included in the connected number sequence S are natural numbers of 1 to N.
(Nature 9) In the connected number sequence S, the number of appearances of each of the natural numbers 1 to N is within one.
(Property 10) The connected number sequence S is an even number sequence having a tolerance of A1 (however, a difference between an arbitrary number y A included in the connected number sequence and a number y B adjacent to the number y A is A1. If the difference between y A and (y B + N) is A1, the difference between y A and y B is regarded as A1.

上記(性質10)に示すように、数列S:{y,y,・・・,y}も公差がA1である等差数列である。これは、(性質3)同様、mod(A1×x,N)という剰余を求める演算の性質上、明かである。 As shown in the above (Property 10), the sequence S: {y 1 , y 2 ,..., Y N } is also an equidistant sequence with a tolerance of A1. This is obvious from the nature of the operation for calculating the remainder mod (A1 × x, N), as in (Property 3).

なお、(性質6)は、生成規則の配置ステップ3−2において、当該(性質6)を満たすように、「1」が配置される行を、第1ブロックH1の1行目からP行目まで順次切り替えることによって成立する性質であるため、例えば、まず、1行目からP行目までの奇数行に順次切り替えて「1」を配置し、その後、1行目からP行目までの偶数行に順次切り替えて「1」を配置するといった切り替えルールを採用した場合には、(性質6)は成立しない。
また、性質1〜10を満たす検査行列を生成した後、検査行列に含まれる行(列)同士の行置換(列置換)を行った場合も、(性質6)が失われる。
ただし、このような特殊な切り替えルールを採用しても、数値A1から、性質1〜4を満たすブロックが生成されることに変わりはない。
また、上記のような場合、上記(性質6)を下記のように言い換えることで、行置換等を行って上記(性質5)を満たさなくなった場合も、性質5〜10を満たすということができる。
Note that (property 6) indicates that the line where “1” is arranged in the generation rule arrangement step 3-2 so as to satisfy the (property 6) is changed from the first line to the P-th line of the first block H1. Therefore, for example, first, the odd-numbered lines from the first line to the P-th line are sequentially switched to place “1”, and then the even-numbered lines from the first line to the P-th line. When the switching rule of sequentially switching to rows and arranging “1” is adopted, (Property 6) does not hold.
In addition, after generating a parity check matrix satisfying the properties 1 to 10, (Property 6) is lost when row replacement (column replacement) between rows (columns) included in the parity check matrix is performed.
However, even if such a special switching rule is adopted, blocks that satisfy the properties 1 to 4 are still generated from the numerical value A1.
In the above case, the above (property 6) can be rephrased as follows, and even when row substitution or the like is performed and the above (property 5) is not satisfied, the properties 5 to 10 can be satisfied. .

(性質6)P個の数列は、前記検査行列に含まれるP個の行又はP個の列に、それぞれ割り当てられている。 (Property 6) P number sequences are respectively assigned to P rows or P columns included in the parity check matrix.

なお、上記性質1〜10は、第1ブロックH1の数列群S〜Sについて説明したが、他のブロックH2,H3の数列群についても同様に成り立つ。つまり、他のブロックH2,H3は、Nと互いに素である数値が、第1ブロックH1と異なるだけであり、その他の点は、第1ブロックH1と同様に生成されたものだからである。
したがって、性質1〜10は、検査行列H96全体で成り立つ。また、性質1〜10は、符号長Nに関係なく成立するため、性質1〜10は、任意の符号長(列長さ)の検査行列Hに、一般化できる。
The above properties 1-10 has been described sequence group S 1 to S P of the first block H1, similarly holds for sequences groups other block H2, H3. That is, the other blocks H2 and H3 are different from the first block H1 in the numerical value that is relatively prime to N, and the other points are generated in the same manner as the first block H1.
Thus, the nature 1-10, holds the entire check matrix H 96. In addition, since the properties 1 to 10 are established regardless of the code length N, the properties 1 to 10 can be generalized to a check matrix H having an arbitrary code length (column length).

[数値A1,A2,A2の決定方法]
検査行列H96を生成するための生成情報である数値A1,A2,A3の決定手順は、例えば、下記の通りである。ここで、数値A1,A2,A3は、それぞれ、Nと互いに素な数値である。また、数値A1,A2,A3は、それぞれ異なる数値である。なお、ここでは、数値A1,A2,A3<Nとする。
[Method of determining numerical values A1, A2, A2]
Numerical A1, A2, A3 determination procedure is the generation information for generating the check matrix H 96 is, for example, as follows. Here, the numerical values A1, A2, and A3 are numerical values that are relatively prime to N, respectively. The numerical values A1, A2, and A3 are different numerical values. Here, it is assumed that numerical values A1, A2, and A3 <N.

(決定手順1)集合1を作成する。
Nを因数分解することで得られた数の集合を集合1とする。Nが96の場合、集合1は、(2,2,2,2,2,3)である。
(Determination Procedure 1) Set 1 is created.
A set of numbers obtained by factoring N is defined as set 1. When N is 96, the set 1 is (2, 2, 2, 2, 2, 3).

(決定手順2)集合2を作成する。
Nまでの素数を集合2とする。Nが96の場合、集合2は、(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47)である。
(Determination Procedure 2) Set 2 is created.
Let prime numbers up to N be set 2. When N is 96, the set 2 is (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47).

(決定手順3)集合3を作成する。
集合2より集合1の要素を取り除いたものを集合3とする、Nが96の場合、集合2は、(5,7,11,13,17,19,23,29,31,37,41,43,47)である。
(Determination Procedure 3) Set 3 is created.
A set 3 is obtained by removing the elements of set 1 from set 2. If N is 96, set 2 is (5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47).

(決定手順4)数値A1,A2,A3の候補の組の集合を作る。
集合3より、列重みwc(=3)に相当する数の要素を取りし、それらの3つの数値A1,A2,A3の組を候補の一つとする。候補は、集合3の要素数が13個あることから、13C3=286通りできる。286通りの候補を集合4とする。
(Determination Procedure 4) A set of candidate sets of numerical values A1, A2, and A3 is created.
The number of elements corresponding to the column weight wc (= 3) is taken from the set 3, and the set of these three numerical values A1, A2, A3 is taken as one candidate. Since there are 13 elements in the set 3, there are 13C3 = 286 candidates. Let 286 candidates be set 4.

(決定手順5)集合4より、候補の組(A1,A2,A3)を一つ取り出し、上記生成規則に従って、検査行列を生成する。 (Decision Procedure 5) One candidate set (A1, A2, A3) is taken out from the set 4, and a check matrix is generated according to the generation rule.

(決定手順6)決定手順5で生成された検査行列の評価を行う。評価は、サイクルの有無、行列のランクの計算、行列の重み分布の評価、Stoppinng Setの分布などによって行うことができる。 (Determination Procedure 6) The parity check matrix generated in the determination procedure 5 is evaluated. The evaluation can be performed by the presence / absence of a cycle, the calculation of the rank of the matrix, the evaluation of the weight distribution of the matrix, the distribution of Stopping Set, and the like.

(決定手順6)決定手順5,6を286個の候補すべてについて行い、優れた訂正能力を有する検査行列を生成できる候補の組(A1,A2,A3)を決定する。 (Decision Procedure 6) The determination procedures 5 and 6 are performed for all 286 candidates, and a candidate set (A1, A2, A3) that can generate a check matrix having an excellent correction capability is determined.

Nと互いに素である数値Aを使って検査行列を生成する本実施形態の方法においては、決定手順5のような評価を行わなくても、ある程度の訂正能力が得られるが、決定手順5のように評価を介在させることで、特に優れた検査行列を選択することができる。
また、Nと互いに素である数値Aを使って検査行列を生成する本実施形態の方法においては、上記の決定手順に従うことで、大量の候補の組(A1,A2,A3)をコンピュータ演算によって自動的に生成することができる。よって、多数の候補について評価を行うことができ、当該評価を経て決定された数値(A1,A2,A3)は、訂正能力が非常に優れた検査行列を生成するものとなることが期待できる。
In the method of this embodiment in which a parity check matrix is generated using a numerical value A that is relatively prime to N, a certain level of correction capability can be obtained without performing the evaluation as in the decision procedure 5. Thus, by interposing evaluation, a particularly excellent check matrix can be selected.
Further, in the method of this embodiment in which a parity check matrix is generated using a numerical value A that is relatively prime to N, a large number of candidate sets (A1, A2, A3) are obtained by computer computation by following the above-described determination procedure. It can be generated automatically. Therefore, it is possible to evaluate a large number of candidates, and the numerical values (A1, A2, A3) determined through the evaluation can be expected to generate a check matrix with very excellent correction capability.

なお、上記決定手順では、A(A1,A2,A3)として、素数が選ばれるが、Aとしては、複数の素数の積となる数であってもよく、Nと互いに素である数は、素数に限定されるものではない。   In the above determination procedure, a prime number is selected as A (A1, A2, A3), but A may be a number that is a product of a plurality of prime numbers. It is not limited to prime numbers.

[検査行列の生成情報について]
本実施形態の検査行列の上記生成規則によれば、復号器5が、当該生成規則に従って検査行列を生成するには、少なくとも列重みwcに対応した数の数値A1,A2,A3が検査行列の生成情報としてあれば良い。従って、復号器5は、検査行列に含まれる全ての「1」の位置を示す情報を記憶していなくとも、より少ない数の数値A1,A2,A3を記憶しておくことで、前記生成規則を実行する生成部(図示省略)によって、当該数値A1,A2,A3を用いて、動的に検査行列を生成することができる。
[Check matrix generation information]
According to the generation rule of the parity check matrix of the present embodiment, in order for the decoder 5 to generate a parity check matrix according to the generation rule, at least the numbers A1, A2, and A3 corresponding to the column weight wc are It only has to be generated information. Therefore, the decoder 5 stores a smaller number of numerical values A1, A2 and A3 even if it does not store information indicating the positions of all “1” included in the parity check matrix. By using the numerical values A1, A2, and A3, a check matrix can be dynamically generated by a generation unit (not shown) that executes.

また、復号器5が、生成規則に従って検査行列を生成するには、数値A1,A2,A3のほか、検査行列の符号長(検査行列の列方向長さ)Nが、検査行列の生成情報として必要である。
また、上記生成規則に従って、検査行列に「1」を立てるには、1つの行に含まれる「1」の個数(行重み)wrも、検査行列の生成情報として必要である。この行重みwrの情報を用いることで、異なる符号化率に対応する複数の検査行列を生成することができる。
In addition, in order for the decoder 5 to generate a parity check matrix according to the generation rule, in addition to the numerical values A1, A2, and A3, the code length of the parity check matrix (column length in the column direction of the parity check matrix) N is used as generation information of the parity check matrix. is necessary.
Further, in order to set “1” in the parity check matrix according to the generation rule, the number (row weight) wr of “1” included in one row is also necessary as the generation information of the parity check matrix. By using the information of the row weight wr, a plurality of parity check matrices corresponding to different coding rates can be generated.

以下、Nのように検査行列のサイズに関するパラメータや、wrのように「1」の数に関するパラメータについて、考察する。
まず、正則検査行列において、列方向長さ(符号長)をN、行方向長さをM、1行当たりの「1」の個数(行重み)をwr、1列当たりの「1」の個数(列重み)をwcとする。この検査行列に含まれる「1」の全数は、次のように表現される。
(1の全数)=wr×M=wc×N
上記式より、M/N=wc/wrが成り立つ。
Hereinafter, parameters related to the size of the parity check matrix such as N and parameters related to the number of “1” such as wr will be considered.
First, in the regular check matrix, the column direction length (code length) is N, the row direction length is M, the number of “1” per row (row weight) is wr, and the number of “1” per column. Let (column weight) be wc. The total number of “1” included in this check matrix is expressed as follows.
(Total number of 1) = wr × M = wc × N
From the above formula, M / N = wc / wr holds.

また、符号化率をRとし、情報記号数をKとすると、
符号化率R=K/N
=(N−M)/N
=1−M/N
=1−wc/wr
となる。
上記式において、M/Nは、検査行列のサイズを示しており、wc/wrは「1」を立てる割合を示している。
If the coding rate is R and the number of information symbols is K,
Coding rate R = K / N
= (NM) / N
= 1-M / N
= 1-wc / wr
It becomes.
In the above equation, M / N indicates the size of the parity check matrix, and wc / wr indicates the rate at which “1” is set.

ここで、復号器5を有する通信装置が、符号化率R及び符号長Nを、固定の値で通信を行うことを前提とした場合、復号器5は、数値A1,A2,A3を取得するだけで、様々な検査行列を生成することができる(Nやwrは復号器5にとって既知であるから)。
つまり、前述のように、復号器5は、復号器5(通信装置)が備えている記憶部(図示省略)に記憶された数値A1,A2,A3を、当該記憶部から取得し、前記生成規則に従って検査行列を生成して復号を行うことができる。この場合、復号器5が、複数種類の検査行列を記憶しておく場合でも、検査行列を記憶するためのメモリの大きさを小さくできる。
特に、WiMAXなどの規格(通信方式)では、複数の異なる検査行列を使い分けることが要求されており、このようなシステムにおいて、上記検査行列を活用する事は、複数の検査行列を記憶するメモリを削減する上でメリットは大である。
Here, when it is assumed that the communication apparatus having the decoder 5 performs communication with the coding rate R and the code length N being fixed values, the decoder 5 acquires numerical values A1, A2, and A3. As a result, various check matrices can be generated (N and wr are known to the decoder 5).
That is, as described above, the decoder 5 acquires the numerical values A1, A2, and A3 stored in the storage unit (not shown) included in the decoder 5 (communication device) from the storage unit, and generates the data. A parity check matrix can be generated and decoded according to a rule. In this case, even when the decoder 5 stores a plurality of types of parity check matrices, the size of the memory for storing the parity check matrix can be reduced.
In particular, a standard (communication method) such as WiMAX requires that a plurality of different check matrices be used properly. In such a system, using the check matrix requires a memory for storing a plurality of check matrices. The merit in reducing is great.

また、復号器5の外部から数値A1,A2,A3を取得(例えば、他の復号器から通信路を介して受信)し、前記生成規則に従って検査行列を生成して復号を行うこともできる。この場合、検査行列の情報を、復号器(通信装置)間で、通信によってやりとりすることで、エラー状況などの通信状況に応じて検査行列を通信中に変更することができる。しかも、検査行列の情報を他の復号装置に送っても、検査行列を少ない情報で表現できるため、通信負荷の増大を防止できる。   It is also possible to obtain numerical values A1, A2, and A3 from the outside of the decoder 5 (for example, receive from other decoders via a communication channel), generate a check matrix according to the generation rule, and perform decoding. In this case, by exchanging information on the check matrix between the decoders (communication devices) by communication, the check matrix can be changed during communication according to a communication status such as an error status. In addition, even if the parity check matrix information is sent to another decoding apparatus, the parity check matrix can be expressed with a small amount of information, so that an increase in communication load can be prevented.

一方、復号器5を有する通信装置が、符号化率Rを通信状況に応じて変化させる場合、例えば、Nやwcを固定値とした場合、上記式によれば、wrを復号器(通信装置)間で通信によって通知し合うことで、実現できる。つまり、wrを変更することで、符号化率を変更できる。そして、1行当たりの「1」の数をwrに応じて決定して、検査行列を生成すればよい。
つまり、本実施形態の復号器5(通信装置)には、通信品質状況(エラー状況)に応じて変動する符号化率に応じてwrを決定し、それを他の復号器5(通信装置)へ送信する機能を具備させることができる。そして、wrを受信した復号器5(通信装置)は、数値Aのほか、受信したwrを用いて、検査行列を生成することができる。
On the other hand, when the communication apparatus having the decoder 5 changes the coding rate R according to the communication status, for example, when N or wc is a fixed value, according to the above equation, wr is the decoder (communication apparatus). ) Can be realized by communicating with each other. That is, the coding rate can be changed by changing wr. Then, the number of “1” per line is determined according to wr, and a check matrix may be generated.
That is, the decoder 5 (communication device) of the present embodiment determines wr according to the coding rate that varies according to the communication quality status (error status), and uses it to determine the other decoder 5 (communication device). The function to transmit to can be provided. The decoder 5 (communication device) that has received wr can generate a check matrix using the received wr in addition to the numerical value A.

[符号化率Rと行重みwrの関係]
図10は、符号化率Rと行重みの関係を示す図である。まず、検査行列全体に含まれる“1”の列位置を示す数列を「基礎数列」というものとすると、基礎数列は、前述の検査行列H96は、数値A1によって生成される第1の連結数列(公差がA1の等差数列)S、数値A2によって生成される第2の連結数列(公差がA2の等差数列)S、及び数値A3によって生成される第3の連結数列(公差がA3の等差数列)Sを連結したものである。
[Relationship between coding rate R and row weight wr]
FIG. 10 is a diagram illustrating the relationship between the coding rate R and the row weight. First, if a number sequence indicating a column position of “1” included in the entire check matrix is referred to as a “basic number sequence”, the above-described check matrix H 96 is the first connected number sequence generated by the numerical value A1. (Tolerance sequence A1) S, second connected number sequence generated by numerical value A2 (tolerance sequence A2 differential sequence) S, and third connected number sequence generated by numerical value A3 (tolerance is A3) An arithmetic sequence (S) is connected.

ここで、基礎数列を構成する連結数列Sの個数jは、列重みwc以上である。つまり、連結数列Sに含まれる数の個数がN個である場合、連結数列Sの個数jは列重みwcに等しい。また、連結数列Sに含まれる数の個数が、N個未満である場合、連結数列Sの個数jは列重みwcよりも多く必要である。   Here, the number j of the connected number sequences S constituting the basic number sequence is equal to or greater than the column weight wc. That is, when the number of numbers included in the connected number sequence S is N, the number j of the connected number sequences S is equal to the column weight wc. When the number of numbers included in the connected number sequence S is less than N, the number j of the connected number sequences S is required to be larger than the column weight wc.

そして、前述のように、j個の連結数列S,S,Sは、それぞれ、P個の部分数列S〜Sから構成されている。各部分数列S〜Sは、検査行列の各行に対応し、部分数列の総数P×jと検査行列の行数は同じであるから、検査行列の行数Mは、P×jとなる。
また、部分数列の個数Pは、連結数列の長さNを、1個の部分数列の長さwrで割った数に等しい。したがって、M=N・j/wrである。
Then, as described above, connecting sequence S, S, S of the j, respectively, and a P-number of partial sequences S 1 to S P. Each partial sequence S 1 to S P corresponds to each row of the check matrix, since the number of rows check matrix to the total number P × j partial sequence is the same, the number of rows M of the check matrix becomes P × j .
Further, the number P of the partial sequence is equal to the number obtained by dividing the length N of the connected sequence by the length wr of one partial sequence. Therefore, M = N · j / wr.

したがって、1個の部分数列の長さ(行重み;1行あたりの“1”の個数)wrを変えると、検査行列の行数Mが変わる。つまり、検査行列の列数(符号長)Nを変えずに、行数(冗長ビット数)Mを変えることができる。
ここで、符号化率R=1−M/Nであるから、Mを変えることで、符号化率Rを変更することにある。
このように、本実施形態では、符号化率が異なる検査行列が、共通の基礎数列に基づいて、行重みを変更することで得られる。したがって、異なる符号化率に対応した複数の検査行列が必要であっても、基礎行列は共通のものを用いることができる。
Therefore, if the length (row weight; the number of “1” per row) wr of one partial sequence is changed, the number of rows M of the check matrix changes. That is, the number of rows (number of redundant bits) M can be changed without changing the number of columns (code length) N of the parity check matrix.
Here, since the coding rate R = 1−M / N, the coding rate R is changed by changing M.
As described above, in the present embodiment, check matrices having different coding rates are obtained by changing the row weights based on the common basic number sequence. Therefore, even if a plurality of parity check matrices corresponding to different coding rates are required, a common basic matrix can be used.

符号化率は、列重みwc及び行重みwrを用いて、図12に示すように決定できる。図12に示すように、列重みwcが3である場合、行重みwrを6,9,12,15にすることで、符号化率Rは、1/2,2/3,3/4,4/5となる。また、列重みwcが4である場合、行重みwrを8,12にすることで、符号化率は1/2,2/3になる。   The coding rate can be determined as shown in FIG. 12 using the column weight wc and the row weight wr. As shown in FIG. 12, when the column weight wc is 3, the coding rate R is 1/2, 2/3, 3/4, by setting the row weight wr to 6, 9, 12, 15. 4/5. In addition, when the column weight wc is 4, by setting the row weight wr to 8, 12, the coding rate becomes 1/2, 2/3.

上記のように、符号長Nと列重みwcが決まれば、行重みwcを変更することで符号化率Rを変更することが可能である。なお、当然であるが、符号長Nや列重みwcを調整することでも符号化率を変更することができる。   As described above, if the code length N and the column weight wc are determined, the coding rate R can be changed by changing the row weight wc. Of course, the coding rate can be changed by adjusting the code length N and the column weight wc.

前記基礎数列の考え方を導入すると、本実施形態の検査行列は、次の性質A〜Eを有するということができる。
(性質A)検査行列の行数に応じた数の数列それぞれは、以下の条件(C)〜(D)を満たす基礎数列を、wr個の数ごとに分割した部分数列である。
(性質B)検査行列の行数に応じた個数の部分数列は、それぞれ、検査行列のいずれか一の行に割り当てられている。
(性質C)前記基礎数列に含まれる数は、1〜Nの自然数である。
(性質D)前記基礎数列において、1〜Nの自然数それぞれの出現回数は、列重みの値wcと同じである。
(性質E)前記基礎数列は、公差がA1,・・,AjのいずれかであるX個の等差数列(ただし、当該数列に含まれる任意の数yと当該数yに隣り合う数yとの差がAでない場合があっても、yと(y+N)との差がAであれば、yとyの差はAであるとみなす)を連結したものである。
If the concept of the basic number sequence is introduced, it can be said that the parity check matrix of the present embodiment has the following properties A to E.
(Property A) Each number sequence corresponding to the number of rows of the parity check matrix is a partial number sequence obtained by dividing a basic number sequence satisfying the following conditions (C) to (D) into wr numbers.
(Property B) Each number of partial sequences corresponding to the number of rows of the parity check matrix is assigned to one row of the parity check matrix.
(Property C) The numbers included in the basic number sequence are natural numbers of 1 to N.
(Property D) In the basic number sequence, the number of appearances of each of the natural numbers 1 to N is the same as the column weight value wc.
(Characteristic E) The basic number sequence is an X number of difference number sequences whose tolerance is any of A1,..., Aj (however, an arbitrary number y A included in the number sequence and a number adjacent to the number y A) Even if the difference from y B may not be A, if the difference between y A and (y B + N) is A, the difference between y A and y B is considered to be A). is there.

なお、本実施形態では、上記性質Bに関し、基礎数列における複数の部分数列の並び順と、部分数列が割り当てられている検査行列の各行の並び順とが一致するように、複数の部分数列が検査行列の各行に割り当てられている。ただし、前述のように行置換などを行った場合のように並び順が一致しなくてもよく、行置換などを行っても誤り訂正能力には差が生じない。   In the present embodiment, regarding the property B, a plurality of partial sequences are arranged so that the arrangement order of the plurality of partial sequences in the basic number sequence matches the arrangement order of each row of the parity check matrix to which the partial sequences are assigned. It is assigned to each row of the check matrix. However, the order of arrangement does not have to be the same as in the case where line replacement is performed as described above, and there is no difference in error correction capability even if line replacement is performed.

図12〜図15は、共通の基礎行列から行重みwrを変更することで生成された複数の検査行列を示している。図12〜図15の検査行列は、いずれも、符号長N=576、列重みwc=3(=j)、Nと互いに素である数値(A1〜Aj)=(A1,A2,A3)=(5,61,557)である。基礎数列は、A1,A2,A3を用いて“mod(A×x、N)+1”の式によって生成されたものであるため、図12〜図15の各検査行列において基礎数列は共通している。なお、ここでは、xの初期値xを0とした。 12 to 15 show a plurality of parity check matrices generated by changing the row weight wr from the common base matrix. 12 to 15, all have a code length N = 576, a column weight wc = 3 (= j), and numerical values (A1 to Aj) = (A1, A2, A3) = N that are relatively prime to N. (5, 61, 557). Since the basic number sequence is generated by the expression “mod (A × x, N) +1” using A1, A2, and A3, the basic number sequence is common in each check matrix of FIGS. Yes. Here, the initial value x 1 to 0 x.

図12の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,6,5,61,557)の“1”の総数nzは1728である(図13〜図14の検査行列も同様)。また、行数Mは288であり、符号化率R=1−wc/wr=1−3/6=1/2である。   The total number nz of “1” in the parity check matrix of FIG. 12 (code length N, row weight wr, numerical value A1, numerical value A2, numerical value A3) = (576, 6, 5, 61, 557) is 1728 (FIG. 13 to FIG. 13). The same applies to the parity check matrix in FIG. 14). The number of rows M is 288, and the coding rate R = 1−wc / wr = 1−3 / 6 = 1/2.

図12(b)の拡大図に示すように、行重みwrが6であることに対応して、1つの行には、6個の点(“1”)が配置されている。   As shown in the enlarged view of FIG. 12B, corresponding to the row weight wr being 6, six points (“1”) are arranged in one row.

図13の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,9,5,61,557)の“1”の行数Mは192であり、符号化率R=1−wc/wr=1−3/9=2/3である。図13(b)の拡大図に示すように、行重みwrが9であることに対応して、1つの行には、9個の点(“1”)が配置されている。   In the parity check matrix of FIG. 13 (code length N, row weight wr, numerical value A1, numerical value A2, numerical value A3) = (576, 9, 5, 61, 557), the number of rows M of “1” is 192, and encoding is performed. The rate R = 1−wc / wr = 1−3 / 9 = 2/3. As shown in the enlarged view of FIG. 13B, nine points (“1”) are arranged in one row corresponding to the row weight wr being nine.

図14の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,12,5,61,557)の“1”の行数Mは144であり、符号化率R=1−wc/wr=1−3/12=3/4である。図14(b)の拡大図に示すように、行重みwrが12であることに対応して、1つの行には、12個の点(“1”)が配置されている。     The number of rows M of “1” in the parity check matrix (code length N, row weight wr, numerical value A1, numerical value A2, numerical value A3) = (576, 12, 5, 61, 557) in FIG. The rate R = 1−wc / wr = 1−3 / 12 = 3/4. As shown in the enlarged view of FIG. 14B, in correspondence with the row weight wr being 12, twelve points (“1”) are arranged in one row.

図15の検査行列(符号長N,行重みwr、数値A1,数値A2,数値A3)=(576,16,5,61,557)の“1”の行数Mは108であり、符号化率R=1−wc/wr=1−3/16=13/16である。図15(b)の拡大図に示すように、行重みwrが16であることに対応して、1つの行には、16個の点(“1”)が配置されている。     The number of rows M of “1” in the parity check matrix (code length N, row weight wr, numerical value A1, numerical value A2, numerical value A3) = (576, 16, 5, 61, 557) in FIG. The rate R = 1−wc / wr = 1−3 / 16 = 13/16. As shown in the enlarged view of FIG. 15B, 16 points (“1”) are arranged in one row corresponding to the row weight wr being 16.

上記のように図12〜図15の検査行列は、すべて共通の基礎数列を有している。換言すると、検査行列に含まれる非零要素の列位置を示す数の集合が図12〜図15に示す複数の検査行列間で共通しているといえる。ただし、本実施形態では、単に「非零要素の列位置を示す数の集合」が共通しているだけでなく、等差数列を連結した基礎数列が共通している。   As described above, the check matrices in FIGS. 12 to 15 all have a common basic number sequence. In other words, it can be said that a set of numbers indicating the column positions of the non-zero elements included in the parity check matrix is common among the plurality of parity check matrices shown in FIGS. However, in the present embodiment, not only “the set of numbers indicating the column positions of the non-zero elements” is common, but also the basic number sequence obtained by concatenating the arithmetic sequence is common.

図16は、図12〜図15の検査行列を用いて復号した場合のBER(Bit Error Rate)特性を示している。なお、図16には、誤り訂正を行わなかった場合のBER特性の、参考のため「訂正なし」として表している。
図16に示すように、図12〜図15の検査行列は、符号化率Rに応じた訂正能力を有している。また、図12〜図15の検査行列を用いると、エラーフロアーを引かず良好な特性になることを示している。
FIG. 16 shows BER (Bit Error Rate) characteristics when decoding is performed using the parity check matrix of FIGS. In FIG. 16, the BER characteristic when no error correction is performed is represented as “no correction” for reference.
As shown in FIG. 16, the check matrices in FIGS. 12 to 15 have a correction capability according to the coding rate R. Further, it is shown that the use of the parity check matrix of FIGS. 12 to 15 provides good characteristics without drawing an error floor.

[復号器の回路構成]
図17は、図3に示した復号器5における外部値対数比算出部7のブロック図を示している。外部値対数比算出部7は、min−sum復号法による場合、前述の式(1)の行処理及び式(2)の列処理の繰り返しによって復号が行われる。したがって、外部値対数比算出部7は、図17に示すように行処理を行う行処理部7aと列処理を行う列処理部7bを備えている。
[Decoder circuit configuration]
FIG. 17 shows a block diagram of the external value log ratio calculation unit 7 in the decoder 5 shown in FIG. In the case of the min-sum decoding method, the external value logarithmic ratio calculation unit 7 performs decoding by repeating the row processing of Equation (1) and the column processing of Equation (2). Therefore, the external value log ratio calculation unit 7 includes a row processing unit 7a that performs row processing and a column processing unit 7b that performs column processing, as shown in FIG.

ここで、行処理は、式(1)のsignで示す符号決定のための演算と、式(1)のminで示す最小値を探索するための演算に大別される。なお、符号決定と最小値探索とはλn+βmnに対して行われるため、λnとβmnを加算する処理も必要である。
したがって、行処理部7aは、図18に示すように、λnとβmnの加算を行う加算部7a−1、式(1)のsing演算を行う符号処理部7a−2、式(1)の最小値探索を行う最小値探索部7aを備えている。そして、符号処理部7a−2と最小値探索部7a−3の結果は符号乗算部7a−4によって乗算され、式(1)に示すαmnが求められる。
Here, the row processing is roughly divided into an operation for determining a sign indicated by “sign” in Equation (1) and an operation for searching for the minimum value indicated by “min” in Equation (1). Since the code determination and the minimum value search are performed on λn + βmn, processing for adding λn and βmn is also necessary.
Therefore, as shown in FIG. 18, the row processing unit 7a includes an addition unit 7a-1 that performs addition of λn and βmn, a code processing unit 7a-2 that performs a sing operation of Expression (1), and a minimum of Expression (1). A minimum value search unit 7a for performing a value search is provided. Then, the results of the code processing unit 7a-2 and the minimum value search unit 7a-3 are multiplied by the code multiplication unit 7a-4, and αmn shown in Expression (1) is obtained.

図19は行重みwr=6の場合(図12の検査行列)の最小値探索部7a−3の回路構成を示し、図20は行重みwr=9の場合(図13の検査行列)の最小値探索部7a−3の回路構成を示している。ここでの最小値探索部は、ある行mにおけるλn+βmnの最小値を求めるためにトーナメント方式を採用している。つまり、2つの値うちの小さい値を出力する比較器200を複数備え、比較を順次行っていくことで、最小値を求める。なお、式(1)では、自身を除く要素についての最小値であるから、実際には、自身の要素を除いたλn’+βmn’の最小値を算出するため、自身の要素は最小値探索部に入力されない。例えば、1行1列目の要素α11を求めるための最小値探索では、対応する(λ+β11)は、最小値探索部への入力から除外され、1行目の他の要素の中から最小値が探索される。 FIG. 19 shows a circuit configuration of the minimum value search unit 7a-3 when the row weight wr = 6 (check matrix in FIG. 12), and FIG. 20 shows the minimum when the row weight wr = 9 (check matrix in FIG. 13). The circuit structure of the value search part 7a-3 is shown. The minimum value search unit here employs a tournament method in order to obtain the minimum value of λn + βmn in a certain row m. That is, the minimum value is obtained by providing a plurality of comparators 200 that output a smaller value of the two values and sequentially performing the comparison. In Formula (1), since it is the minimum value for the elements other than itself, in practice, the minimum value search unit for calculating the minimum value of λn ′ + βmn ′ excluding the element itself is used. Is not entered. For example, in the minimum value search for obtaining the element α 11 in the first row and the first column, the corresponding (λ 1 + β 11 ) is excluded from the input to the minimum value search unit, and is included in the other elements in the first row. The minimum value is searched from.

図19及び図20の最小値探索部7a−3では、行ごとに最小値を求めるための処理回路300,301が設けられており、1行あたりの非零要素の数だけ最小値探索の処理が繰り返し行われる。各処理回路300,301では、検査行列の1行あたりの非零要素の数(行重み)−1の比較器200が設けられており、行毎に最小値を求めるためのトーナメント方式での演算が行われる。
したがって、図19及び図20では、各処理回路300,301内の比較器200の数が異なり、処理回路300,301の総数も異なる。つまり、図19及び図20では、最小値探索部7a−3の回路構成が異なる。
In the minimum value search unit 7a-3 of FIGS. 19 and 20, processing circuits 300 and 301 for obtaining the minimum value for each row are provided, and the minimum value search processing is performed by the number of non-zero elements per row. Is repeated. Each processing circuit 300, 301 is provided with a comparator 200 having the number of non-zero elements per row (row weight) -1 of the check matrix, and performing a tournament-type operation for obtaining a minimum value for each row. Is done.
Accordingly, in FIGS. 19 and 20, the number of comparators 200 in each processing circuit 300, 301 is different, and the total number of processing circuits 300, 301 is also different. That is, in FIG. 19 and FIG. 20, the circuit configuration of the minimum value search unit 7a-3 is different.

ただし、図19及び図20に示すように、最小値探索部7a−3への入力内容は、全体としてみれば、共通している。つまり、本実施形態では、複数の検査行列間で、非零要素の列位置を示す基礎数列が共通しているため、λn+βmnも(行位置mは別として)共通する。そして、図19及び図20においては、各λn+βmnが、どの行mの処理回路300に与えられるかという点が異なるだけである。   However, as shown in FIGS. 19 and 20, the input contents to the minimum value search unit 7a-3 are common as a whole. That is, in this embodiment, the basic number sequence indicating the column position of the non-zero element is common among the plurality of parity check matrices, and thus λn + βmn is also common (aside from the row position m). In FIG. 19 and FIG. 20, the only difference is in which row m of processing circuit 300 each λn + βmn is given.

したがって、図19及び図20の回路では、最小値探索部7a−3自体の構成と、各λn+βmnがどの行の処理回路300に割り当てられるか(βmnのmを何にするか)という点は、異ならせる必要があるものの、λn+βmnの演算を行う加算部7a−1は共通化することができる。これにより回路規模の膨大化を抑制できる。   Accordingly, in the circuits of FIG. 19 and FIG. 20, the configuration of the minimum value search unit 7a-3 itself, and which row of processing circuit 300 each λn + βmn is assigned to (what m of βmn) is, Although different, it is possible to share the adder 7a-1 that performs the calculation of λn + βmn. As a result, an increase in circuit scale can be suppressed.

図21は、最小値探索部7a−3の他の例を示している。図21は、行重みが異なる検査行列について最小値探索部7a−3を共通化したものである。ここでは最小値を探索するための処理回路302は、行単位ではなく、複数の行重みの最小公倍数単位で設けられている。例えば、図19のように行重み=6であり、図20のように行重み=9である場合について、両者を共通化するには、6と9の最小公倍数である18個の入力(λn’+βmn’)から最小値を求める回路が一つの処理回路302としてあればよい。なお、実際には自身の要素は除かれるため、処理回路302を用いた実際の演算では17個の入力から最小値が求められる。 FIG. 21 shows another example of the minimum value search unit 7a-3. FIG. 21 shows a common minimum value search unit 7a-3 for a parity check matrix having different row weights. Here, the processing circuit 302 for searching for the minimum value is provided not in units of rows but in units of least common multiples of a plurality of row weights. For example, in the case where the row weight = 6 as shown in FIG. 19 and the row weight = 9 as shown in FIG. 20, in order to make both common, 18 inputs (λn) which are the least common multiples of 6 and 9 are used. A circuit for obtaining the minimum value from “+ βmn”) may be a single processing circuit 302. Actually, since its own elements are removed, in the actual calculation using the processing circuit 302, the minimum value is obtained from 17 inputs.

図21において実線で示す比較器200は、行重み6の場合の、各行(3行分)の最小値を求めるためのものである。また、図21において、点線で示す比較器200は、行重み6の場合の比較結果を一部利用して、行重み9の場合の各行(2行分)の最小値をもめるためのものである。
図21の処理回路302では、複数の行重みについての出力を共に出力できるため、処理回路302を行重みごとに設ける必要がない。しかも、比較器200は、異なる行重み間で共用されているため、素子数の増加が抑えられている。
A comparator 200 indicated by a solid line in FIG. 21 is used to obtain the minimum value of each row (for three rows) when the row weight is 6. In FIG. 21, a comparator 200 indicated by a dotted line is used to obtain a minimum value for each row (for two rows) in the case of row weight 9 by partially using the comparison result in the case of row weight 6. is there.
Since the processing circuit 302 in FIG. 21 can output outputs for a plurality of row weights, it is not necessary to provide the processing circuit 302 for each row weight. Moreover, since the comparator 200 is shared between different row weights, an increase in the number of elements is suppressed.

そして、図21の最小値探索部7a−3では、処理回路302から出力される各行重みの出力から、選択された行重みについての出力(最小値)を選択して出力するためのセレクタ304が設けられている。セレクタは、選択された行重み情報wrによって、どの最小値を出力するかを決定することができる。なお、行重みは、通信装置の通信レートに応じて決定される。   In the minimum value search unit 7a-3 of FIG. 21, a selector 304 for selecting and outputting an output (minimum value) for the selected row weight from the output of each row weight output from the processing circuit 302. Is provided. The selector can determine which minimum value to output according to the selected row weight information wr. The row weight is determined according to the communication rate of the communication device.

本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である
例えば、本実施形態の検査行列に基づく処理(行処理又は列処理)は、ハードウェアによって実行される必要はなく、コンピュータプログラムによって実行されてもよい。また、基礎数列は、等差数列を連結したものに限られず、どのような数列であってもよい。さらに、最小値を求める処理回路は、トーナメント方式に限られず、分布数えソートをベースとした方式であってもよい。なお、分布数えソートをベースとした方式は、例えば、“前畠貴、「FUMP−APP復号法によるLDPC復号器の実装」、電子情報通信学会、信学技報、CAS2006、pp.8−20 2006年6月”に開示されている。
The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist thereof. For example, the processing (row processing or column processing) based on the check matrix of this embodiment is hardware. It is not necessary to be executed by hardware, and may be executed by a computer program. Further, the basic number sequence is not limited to the concatenation of the arithmetic number sequences, and may be any number sequence. Further, the processing circuit for obtaining the minimum value is not limited to the tournament method, and may be a method based on a distribution counting sort. A method based on the distribution counting sort is, for example, “Takae Mae,“ Implementation of LDPC decoder by FUMP-APP decoding method ”, IEICE, IEICE Technical Report, CAS 2006, pp. 8-20 June 2006 ".

1 符号化器
2 変調器
3 通信路
4 復調器
5 復号器
H 検査行列
N 符号長
wc 列重み
wr 行重み
R 符号化率
DESCRIPTION OF SYMBOLS 1 Encoder 2 Modulator 3 Communication path 4 Demodulator 5 Decoder H Check matrix N Code length wc Column weight wr Row weight R Coding rate

Claims (1)

符号化率の異なる複数の低密度パリティ検査符号を使い分けることができる復号装置であって、
前記複数の低密度パリティ検査符号に対応する複数の検査行列は、
低密度パリティ検査符号の符号長及び検査行列の列重みが共通しているとともに、
検査行列に含まれる非零要素の列位置を示す数の集合が前記複数の検査行列間で共通しており、
行重みが複数の検査行列間で異なることで複数の検査行列の符号化率が異なっている
ものを含むことを特徴とする復号装置。
A decoding apparatus capable of properly using a plurality of low density parity check codes having different coding rates,
A plurality of parity check matrices corresponding to the plurality of low density parity check codes are:
The code length of the low density parity check code and the column weight of the check matrix are common,
A set of numbers indicating column positions of non-zero elements included in the check matrix is common among the plurality of check matrices,
What is claimed is: 1. A decoding apparatus comprising: a plurality of parity check matrixes having different coding rates due to different row weights among the plurality of parity check matrices.
JP2010265293A 2010-11-29 2010-11-29 Decoding device Expired - Fee Related JP4985843B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010265293A JP4985843B2 (en) 2010-11-29 2010-11-29 Decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010265293A JP4985843B2 (en) 2010-11-29 2010-11-29 Decoding device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007340090A Division JP4645645B2 (en) 2007-12-28 2007-12-28 Decoding device and check matrix generation method

Publications (2)

Publication Number Publication Date
JP2011072020A true JP2011072020A (en) 2011-04-07
JP4985843B2 JP4985843B2 (en) 2012-07-25

Family

ID=44016759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010265293A Expired - Fee Related JP4985843B2 (en) 2010-11-29 2010-11-29 Decoding device

Country Status (1)

Country Link
JP (1) JP4985843B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015128331A (en) * 2015-04-09 2015-07-09 日本電信電話株式会社 Error correction encoding method and system
JP2016062463A (en) * 2014-09-19 2016-04-25 株式会社東芝 Memory system, error correction unit and error correction method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007215089A (en) * 2006-02-13 2007-08-23 Fujitsu Ltd Decoding apparatus and decoding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007215089A (en) * 2006-02-13 2007-08-23 Fujitsu Ltd Decoding apparatus and decoding method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016062463A (en) * 2014-09-19 2016-04-25 株式会社東芝 Memory system, error correction unit and error correction method
US10078550B2 (en) 2014-09-19 2018-09-18 Kabushiki Kaisha Toshiba Memory system, error correction device, and error correction method
JP2015128331A (en) * 2015-04-09 2015-07-09 日本電信電話株式会社 Error correction encoding method and system

Also Published As

Publication number Publication date
JP4985843B2 (en) 2012-07-25

Similar Documents

Publication Publication Date Title
KR102513437B1 (en) Transmitting apparatus and interleaving method thereof
JP4296949B2 (en) Decoding apparatus and method, and information processing apparatus and method
KR101944526B1 (en) Transmitting apparatus and interleaving method thereof
KR100808664B1 (en) Parity check matrix storing method, block ldpc coding method and the apparatus using parity check matrix storing method
KR101405962B1 (en) Method of performing decoding using LDPC code
KR101227264B1 (en) Method and apparatus for block and rate independent decoding of ldpc codes
JP5312484B2 (en) Encoding method, encoder and decoder
WO2014122772A1 (en) Data structure for check matrix of error correction code, and coding-rate adjustment device and method for error correction code
EP1798861A1 (en) LDPC encoding through decoding algorithm
JP4591371B2 (en) QC code encoding method
JP4832447B2 (en) Decoding apparatus and method using channel code
JP4645645B2 (en) Decoding device and check matrix generation method
KR102059002B1 (en) Method for performing encoding based on parity check matrix of LDPC code in wireless communication system and terminal using same
JP4985843B2 (en) Decoding device
JP4618293B2 (en) Decoding device and check matrix generation method
JP2009182421A (en) Decoding method and decoding device
JP5385944B2 (en) Decoder
JP4341646B2 (en) Decoding device
JP4645640B2 (en) Decoder, receiving device, and decoding method of encoded data
JP5500357B2 (en) Encoding device and encoding method
KR101405961B1 (en) Method of encoding/decoding data using LDPC code
JP4755238B2 (en) Decoder
JP5811212B2 (en) Error correction decoding device
JP4341643B2 (en) Decoding device
JP4650485B2 (en) Decoding device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120110

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: 20120403

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: 20120416

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4985843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

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

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