JP4821684B2 - Encoding device and encoding program - Google Patents

Encoding device and encoding program Download PDF

Info

Publication number
JP4821684B2
JP4821684B2 JP2007096691A JP2007096691A JP4821684B2 JP 4821684 B2 JP4821684 B2 JP 4821684B2 JP 2007096691 A JP2007096691 A JP 2007096691A JP 2007096691 A JP2007096691 A JP 2007096691A JP 4821684 B2 JP4821684 B2 JP 4821684B2
Authority
JP
Japan
Prior art keywords
matrix
storage unit
data representing
intermediate result
parity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007096691A
Other languages
Japanese (ja)
Other versions
JP2008258774A (en
Inventor
貴 前畠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007096691A priority Critical patent/JP4821684B2/en
Publication of JP2008258774A publication Critical patent/JP2008258774A/en
Application granted granted Critical
Publication of JP4821684B2 publication Critical patent/JP4821684B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、符号化装置および符号化プログラムに関し、特に低密度パリティ検査符号を生成する符号化装置および符号化プログラムに関する。   The present invention relates to an encoding device and an encoding program, and more particularly to an encoding device and an encoding program that generate a low density parity check code.

データの通信システムを構築する場合には、高速通信、低消費電力、高通信品質(低ビット誤り率)等が要求される。受信符号の誤りを検出して訂正する誤り訂正技術は、これらの要求を満たす1つの技術として、無線、有線および記録システム等において幅広く利用されている。   When constructing a data communication system, high-speed communication, low power consumption, high communication quality (low bit error rate), and the like are required. An error correction technique for detecting and correcting an error in a received code is widely used in wireless, wired and recording systems as one technique that satisfies these requirements.

近年、この誤り訂正技術の1つとして、低密度パリティ検査(LDPC:Low-Density Parity-Check)符号と、sum-product復号法とが注目されている。このLDPC符号を利用する復号操作は、非特許文献1において議論されている。この非特許文献1においては、符号化率1/2のイレギュラーLDPC符号を利用して白色ガウス通信路のシャノン(Shannon)限界まで0.004dBという復号特性が得られることが示されている。イレギュラーLDPC符号は、パリティ検査行列の行重み(行において1が立つ数)および列重み(列において1が立つ数)が、一定ではない符号を示す。行重みおよび列重みが各行および各列において一定のLDPC符号は、レギュラーLDPC符号と呼ばれる。   In recent years, low density parity check (LDPC) codes and sum-product decoding methods have attracted attention as one of the error correction techniques. Decoding operation using this LDPC code is discussed in Non-Patent Document 1. This Non-Patent Document 1 shows that a decoding characteristic of 0.004 dB can be obtained up to the Shannon limit of a white Gaussian channel using an irregular LDPC code with a coding rate of 1/2. The irregular LDPC code indicates a code in which the row weight (number where 1 stands in a row) and the column weight (number where 1 stands in a column) of the parity check matrix are not constant. An LDPC code whose row weights and column weights are constant in each row and each column is called a regular LDPC code.

このLDPCの符号化処理、つまりパリティを計算する処理の処理負荷を軽減するための手法が検討されている。たとえば、非特許文献2には、近似三角行列を利用したエンコード手法が開示されている。また、非特許文献3には、三角分解を用いたエンコード手法が開示されている。これらのエンコード手法では、下三角行列および上三角行列を含む方程式を解くことによって、パリティを得ることができる。
S. Y. Chung et al.,“On the Design of Low-Density Parity-Check Codes within 0.0045dB of the Shannon Limit”, IEEE COMUNICATIONS LETTERS, VOL.5, No.2, Feb. 2001, pp.58-60 Thomas J. Richardson et al.,“Efficient Encoding of Low-Density Parity-Check Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, VOL.47, No.2, Feb. 2001, pp.638-656 楫勇一、「三角分解を用いたLDPC符号化法の計算量について」、The 27th Symposium on Information Theory and Its Applications (SITA2004) Gero, Gifu, Japan, Dec 14-17, 2004
A technique for reducing the processing load of the LDPC encoding process, that is, the process of calculating the parity has been studied. For example, Non-Patent Document 2 discloses an encoding method using an approximate triangular matrix. Non-Patent Document 3 discloses an encoding method using triangulation. In these encoding methods, parity can be obtained by solving an equation including a lower triangular matrix and an upper triangular matrix.
SY Chung et al., “On the Design of Low-Density Parity-Check Codes within 0.0045dB of the Shannon Limit”, IEEE COMUNICATIONS LETTERS, VOL.5, No.2, Feb. 2001, pp.58-60 Thomas J. Richardson et al., “Efficient Encoding of Low-Density Parity-Check Codes”, IEEE TRANSACTIONS ON INFORMATION THEORY, VOL.47, No.2, Feb. 2001, pp.638-656 Yuichi Tsuji, “Computational Complexity of LDPC Coding Using Triangular Decomposition”, The 27th Symposium on Information Theory and Its Applications (SITA2004) Gero, Gifu, Japan, Dec 14-17, 2004

しかしながら、非特許文献2および非特許文献3のエンコード手法では、方程式の解法に後退代入などが用いられているため、計算量が多くなる。   However, in the encoding methods of Non-Patent Document 2 and Non-Patent Document 3, since the backward substitution or the like is used for solving the equations, the amount of calculation increases.

それゆえに、本発明の目的は、従来よりも少ない計算量でパリティを計算することができる符号化装置および符号化プログラムを提供することである。   Therefore, an object of the present invention is to provide an encoding apparatus and an encoding program capable of calculating parity with a smaller amount of calculation than conventional.

本発明のある局面に係る符号化装置は、要素数kの情報ベクトルXから式(A1)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A1)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
An encoding apparatus according to an aspect of the present invention performs an operation modulo 2 from an information vector X having the number of elements k according to a parity generation expression represented by the formula (A1), whereby the parity vector Y having the number of elements m. An encoding device for generating
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A1)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The parity check matrix H includes the first to k-th columns, and the matrix B includes the (k + 1) -th to n-th columns of the parity check matrix H, where n = k + m, and the matrix L i (I = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B. The i-th column matches the i-th column of the lower triangular matrix L, and the other columns are A matrix whose off-diagonal term is 0 and whose diagonal term is 1, and the matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and The i-th row coincides with the i-th row of the upper triangular matrix U, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1, and the encoding device is included in the parity generation formula. In order to calculate a parity vector Y, a matrix storage unit that stores data representing a plurality of matrices, an intermediate result storage unit that stores data representing intermediate results of a plurality of matrix multiplications included in the parity generation formula, A matrix product calculation unit that executes a plurality of matrix multiplications included in the parity generation formula, and the matrix product calculation unit receives the information vector X, data representing a matrix in the matrix storage unit, or an intermediate result in the intermediate result storage unit The data representing the calculation result is represented as an intermediate result until each matrix multiplication included in the parity generation formula is executed using the data to be represented and a plurality of matrix multiplications included in the parity generation formula is completed. When data is stored in the intermediate result storage unit and multiple matrix multiplications included in the parity generation formula are completed, after multiple matrix multiplications included in the parity generation formula are completed The obtained vector is output as a parity vector Y.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bとに分解して、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、行列Bを下三角行列Lと上三角行列Uの積にLU分解して、下三角行列Lを表わすデータおよび上三角行列Uを表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列Uおよび下三角行列Lを表わすデータを読み出して、上三角行列Uをm個の基本上三角行列Ui(i=1〜m)の積に分解し、下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを行列記憶部に記憶させる基本行列分解部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B, and stores the data representing the matrix A in the matrix storage unit An LU decomposition unit for LU-decomposing the matrix B into a product of a lower triangular matrix L and an upper triangular matrix U and storing data representing the lower triangular matrix L and data representing the upper triangular matrix U in the intermediate result storage unit And reading data representing the upper triangular matrix U and the lower triangular matrix L from the intermediate result storage unit, and decomposing the upper triangular matrix U into a product of m basic upper triangular matrices U i (i = 1 to m), M lower triangular matrix L Decomposing the product of the basic lower triangular matrix L i (i = 1~m), decomposed matrix U i (i = 1~m) and matrix L i (i = 1~m) matrix storage unit data representing a And a basic matrix decomposition unit to be stored.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから式(A2)で表わされるパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(A2)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li -1(i=1〜m)は行列Liの逆行列であり、行列Liは行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui -1(i=1〜m)は行列Uiの逆行列であり、行列Uiは、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
An encoding apparatus according to another aspect of the present invention generates a parity vector Y having m elements by performing a real number operation from an information vector X having k elements in accordance with a parity generation expression represented by Expression (A2). An encoding device comprising:
Y = −U 1 −1 U 2 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX. A2)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The parity check matrix H includes the first to k-th columns, and the matrix B includes the (k + 1) -th to n-th columns of the parity check matrix H, where n = k + m, and the matrix L i -1 (i = 1 to m) is the inverse matrix of the matrix L i, the matrix L i is a matrix B a fundamental lower triangular matrix of the lower triangular matrix L obtained by the LU decomposition, the i-th column is lower triangular matrix The other columns correspond to the i-th column of L, the off-diagonal term is 0, and the diagonal term is 1, and the matrix U i -1 (i = 1 to m) is the inverse of the matrix U i . The matrix U i is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B. The i-th row matches the i-th row of the upper triangular matrix U, and the other rows are Off-diagonal term is 0 , A matrix whose diagonal term is 1, and the encoding device includes: a matrix storage unit that stores data representing a plurality of matrices included in the parity generation formula; and a plurality of matrix multiplications included in the parity generation formula. An intermediate result storage unit that stores data representing the intermediate result, a matrix product calculation unit that executes matrix multiplication of a plurality of times included in the parity generation formula to calculate the parity vector Y, and a matrix product calculation unit are output. A matrix inversion unit that inverts the sign of the vector to output as a parity vector Y, and the matrix product calculation unit represents the information vector X, the data representing the matrix in the matrix storage unit, or the intermediate result in the intermediate result storage unit Data is used to represent the calculation result until each matrix multiplication included in the parity generation formula is executed and a plurality of matrix multiplications included in the parity generation formula are completed. Is stored in the intermediate result storage unit as data representing the intermediate result, and when the multiple matrix multiplications included in the parity generation formula are completed, the vector obtained after the multiple matrix multiplications included in the parity generation formula is inverted. To the output.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bとに分解して、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、行列Bを下三角行列Lと上三角行列Uの積にLU分解して、下三角行列Lを表わすデータおよび上三角行列Uを表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列Uおよび下三角行列Lを表わすデータを読み出して、上三角行列Uをm個の基本上三角行列Ui(i=1〜m)の積に分解し、下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、中間結果記憶部から行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを読み出して、行列Ui(i=1〜m)および行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を表わすデータを行列記憶部に記憶させる逆行列計算部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B, and stores the data representing the matrix A in the matrix storage unit An LU decomposition unit for LU-decomposing the matrix B into a product of a lower triangular matrix L and an upper triangular matrix U and storing data representing the lower triangular matrix L and data representing the upper triangular matrix U in the intermediate result storage unit And reading data representing the upper triangular matrix U and the lower triangular matrix L from the intermediate result storage unit, and decomposing the upper triangular matrix U into a product of m basic upper triangular matrices U i (i = 1 to m), M lower triangular matrix L Decomposing the product of the basic lower triangular matrix L i (i = 1~m), decomposed matrix U i (i = 1~m) and matrix L i (i = 1~m) intermediate result storing data representing the a base matrix decomposition unit to be stored in the part, reads the data representative of the matrix from the intermediate result storage unit U i (i = 1~m) and matrix L i (i = 1~m), matrix U i (i = 1 ˜m) and the matrix L i (i = 1 to m) by inverting the signs of the elements of the non-diagonal terms, the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 ( i = 1 to m) and inverse matrix calculation for storing data representing the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 (i = 1 to m) in the matrix storage unit. A part.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A3−1)、u≧1かつv=0のときには式(A3−2)、u=0かつv≧1のときには式(A3−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A3−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A3−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
The encoding apparatus according to another aspect of the present invention is based on an information vector X having k elements, and when u ≧ 1 and v ≧ 1, Expression (A3-1), and when u ≧ 1 and v = 0, Expression (A3) -2) Coding for generating a parity vector Y having m elements by performing an operation modulo 2 in accordance with the parity generation expression represented by Expression (A3-3) when u = 0 and v ≧ 1 A device,
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A3 -1)
Y≡U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A3-2)
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX (A3-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, n = k + m, and u ≧ 1 When v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement with respect to the matrix B, and the matrix A (u) is the matrix A On the other hand, the same replacement as the u-time replacement of the matrix B is performed, and the matrix E (v) is the same as the v-time replacement of the matrix B with respect to the unit matrix E. If u ≧ 1 and v = 0, the matrix B ′ is replaced u times with respect to the matrix B when u ≧ 1 and v = 0. The matrix A (u) is obtained by performing the same replacement as the u-time replacement of the matrix B with respect to the matrix A when u = 0 and v ≧ 1. The matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained by performing v times of column replacement for the matrix B with respect to the unit matrix E. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′, and the i-th column is the lower one. The other columns correspond to the i-th column of the triangular matrix L ′, the off-diagonal term is 0, and the diagonal term is 1. The matrix U ′ i (i = 1 to m) is the matrix B Is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of ′, the i-th row coincides with the i-th row of the upper triangular matrix U ′, and the off-diagonal term is 0 in the other rows. A matrix whose diagonal term is 1, the encoding device includes: a matrix storage unit that stores data representing a plurality of matrices included in the parity generation formula; and an intermediate between a plurality of matrix multiplications included in the parity generation formula An intermediate result storage unit that stores data representing the result, and a matrix product calculation unit that executes a plurality of matrix multiplications included in the parity generation formula in order to calculate the parity vector Y, Using the information vector X, the data representing the matrix in the matrix storage unit, or the data representing the intermediate result in the intermediate result storage unit, each matrix multiplication included in the parity generation formula is executed, and multiple times included in the parity generation formula Until the matrix multiplication is completed, the data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and multiple times of matrix multiplication included in the parity generation formula are performed. When the calculation is completed, a vector obtained after the completion of a plurality of matrix multiplications included in the parity generation formula is output as a parity vector Y.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、u=0かつv≧1のときには、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、u≧1かつv≧1の場合、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して行列記憶部に記憶させ、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して行列記憶部に記憶させ、u≧1かつv=0の場合、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して行列記憶部に記憶させ、u=0かつv≧1の場合、行列Bのオーダリングを行ない、行列Bに対してv回の列の入れ替えを行なった行列B′を生成し、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して行列記憶部に記憶させるオーダリング部と、行列B′を下三角行列L′と上三角行列U′の積にLU分解して、下三角行列L′を表わすデータおよび上三角行列U′を表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列U′および下三角行列L′を表わすデータを読み出して、上三角行列U′をm個の基本上三角行列U′i(i=1〜m)の積に分解し、下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを行列記憶部に記憶させる基本行列分解部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B, and when u = 0 and v ≧ 1, data representing the matrix A And a parity check matrix decomposition unit that stores the matrix storage unit, and when u ≧ 1 and v ≧ 1, the matrix B is ordered, and u rows are exchanged and v columns are exchanged for the matrix B. A matrix B ′ is generated, and a matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated and stored in the matrix storage unit. V times for matrix B A matrix E (v) having the same replacement as the column replacement is generated and stored in the matrix storage unit. When u ≧ 1 and v = 0, the matrix B is ordered, and u times for the matrix B Matrix B ′ is generated, and a matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated and stored in the matrix storage unit. , U = 0 and v ≧ 1, the matrix B is ordered to generate a matrix B ′ in which the columns B are exchanged v times, and the unit matrix E is v times with respect to the matrix B. An LU decomposition into an ordering unit that generates a matrix E (v) that is exchanged in the same manner as the column exchange and stores the matrix E (v) in the matrix storage unit, and a matrix B ′ that is a product of the lower triangular matrix L ′ and the upper triangular matrix U ′ The data representing the lower triangular matrix L ′ and the upper triangular matrix U ′ are represented as LU decomposition unit for storing the data in the intermediate result storage unit, and data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ are read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into m basic upper triangles. The matrix U ′ i (i = 1 to m) is decomposed into products, the lower triangular matrix L ′ is decomposed into the products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix A basic matrix decomposing unit that stores data representing U ′ i (i = 1 to m) and matrix′L i (i = 1 to m) in the matrix storage unit.

本発明のある局面に係る符号化装置は、要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A4−1)、u≧1かつv=0のときには式(A4−2)、u=0かつv≧1のときには式(A4−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(A4−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(A4−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A4−3)
ただし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i -1(i=1〜m)は行列L′iの逆行列であり、行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i -1(i=1〜m)は行列U′iの逆行列であり、行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
The encoding apparatus according to an aspect of the present invention is based on an information vector X having k elements, and when u ≧ 1 and v ≧ 1, Expression (A4-1), and when u ≧ 1 and v = 0, Expression (A4- 2) When u = 0 and v ≧ 1, an encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 in accordance with the parity generation expression represented by the expression (A4-3) Because
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (A4-1)
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (A4-2)
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (A4-3)
However, the parity check matrix H is a matrix of m rows and n columns satisfying H (X, Y) T = 0, and the matrix A is composed of the first to kth columns of the parity check matrix H. B consists of the (k + 1) th column to the nth column of the parity check matrix H, and n = k + m. When u ≧ 1 and v ≧ 1, the matrix B ′ , U times of row replacement, and v times of column replacement, and the matrix A (u) performs the same replacement for the matrix A as u times of row replacement for the matrix B. The matrix E (v) is obtained by performing the same replacement as the unit matrix E with v column replacements for the matrix B. When u ≧ 1 and v = 0, , the matrix B ', to the matrix B, and which was subjected to replacement of u times the line, the matrix a (u), to the matrix a This is the same as the u-th row replacement for the matrix B. When u = 0 and v ≧ 1, the matrix B ′ replaces the matrix B with v columns. The matrix E (v) is obtained by performing the same permutation of the unit matrix E as the v-th permutation of the matrix B and the matrix L ′ i −1 (i = 1). ~m) is 'is the inverse matrix of i, the matrix L' matrix L i is the matrix B a fundamental lower triangular matrix of 'the lower triangular matrix L obtained by the LU decomposition', the i-th column lower triangular matrix L 'And the other column is a matrix whose off-diagonal term is 0 and whose diagonal term is 1, and the matrix U' i -1 (i = 1 to m) is the matrix U ' i of an inverse matrix, the matrix U 'i is a matrix B' to 'a basic upper triangular matrix, the i-th row upper triangular matrix U' upper triangular matrix U obtained by the LU decomposition coincides with the i-th row , And the other rows are matrices having off-diagonal terms of 0 and diagonal terms of 1, and the encoding device includes a matrix storage unit that stores data representing a plurality of matrices included in the parity generation formula, and a parity An intermediate result storage unit for storing data representing an intermediate result of a plurality of matrix multiplications included in the generation formula, and a matrix product for performing a plurality of matrix multiplications included in the parity generation formula to calculate a parity vector Y A calculation unit, and a code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs the inverted vector as a parity vector Y. The matrix product calculation unit includes information vector X and data representing a matrix in the matrix storage unit. Or, each matrix multiplication included in the parity generation formula is executed using the data representing the intermediate result in the intermediate result storage unit, and a plurality of matrix multiplications included in the parity generation formula are completed. Stores the data representing the calculation result in the intermediate result storage unit as data representing the intermediate result, and when the matrix multiplication of a plurality of times included in the parity generation formula is completed, the matrix multiplication of the plurality of times included in the parity generation formula is performed. The vector obtained after the completion is output to the sign inverting unit. The vector obtained after the completion of the multiple matrix multiplications included is output to the sign inverting unit.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、u=0かつv≧1のときには、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、u≧1かつv≧1の場合、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して行列記憶部に記憶させ、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して行列記憶部に記憶させ、u≧1かつv=0の場合、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して行列記憶部に記憶させ、u=0かつv≧1の場合、行列Bのオーダリングを行ない、行列Bに対してv回の列の入れ替えを行なった行列B′を生成し、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して行列記憶部に記憶させるオーダリング部と、行列B′を下三角行列L′と上三角行列U′の積にLU分解して、下三角行列L′を表わすデータおよび上三角行列U′を表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列U′および下三角行列L′を表わすデータを読み出して、上三角行列U′をm個の基本上三角行列U′i(i=1〜m)の積に分解し、下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、中間結果記憶部から行列U′i(i=1〜m)および行列L′i(i=1〜m)を表わすデータを読み出して、行列U′i(i=1〜m)および行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を表わすデータを行列記憶部に記憶させる逆行列計算部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B, and when u = 0 and v ≧ 1, data representing the matrix A And a parity check matrix decomposition unit that stores the matrix storage unit, and when u ≧ 1 and v ≧ 1, the matrix B is ordered, and u rows are exchanged and v columns are exchanged for the matrix B. A matrix B ′ is generated, and a matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated and stored in the matrix storage unit. V times for matrix B A matrix E (v) having the same replacement as the column replacement is generated and stored in the matrix storage unit. When u ≧ 1 and v = 0, the matrix B is ordered, and u times for the matrix B Matrix B ′ is generated, and a matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated and stored in the matrix storage unit. , U = 0 and v ≧ 1, the matrix B is ordered to generate a matrix B ′ in which the columns B are exchanged v times, and the unit matrix E is v times with respect to the matrix B. An LU decomposition into an ordering unit that generates a matrix E (v) that is exchanged in the same manner as the column exchange and stores the matrix E (v) in the matrix storage unit, and a matrix B ′ that is a product of the lower triangular matrix L ′ and the upper triangular matrix U ′ The data representing the lower triangular matrix L ′ and the upper triangular matrix U ′ are represented as An LU decomposition unit for storing the data in the intermediate result storage unit, and data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ are read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into m basic upper triangles. The matrix U ′ i (i = 1 to m) is decomposed into products, the lower triangular matrix L ′ is decomposed into the products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix A basic matrix decomposition unit that stores data representing U ′ i (i = 1 to m) and matrix ′ L i (i = 1 to m) in the intermediate result storage unit, and a matrix U ′ i (i = 1 to m) and the data representing the matrix L ′ i (i = 1 to m) are read, and the matrix U ′ i (i = 1 to m) and the matrix L ′ i (i = 1 to m) are unpaired. by reversing the sign of the elements of Sumiko calculates the inverse matrix U 'i -1 (i = 1~m ) and the inverse matrix L' i -1 (i = 1~m ) And an inverse matrix U 'i -1 (i = 1~m ) and the inverse matrix L' i -1 (i = 1~m ) inverse matrix calculating unit for storing data in the matrix storage unit representing the.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから、式(A5)に含まれる少なくとも1セットの隣接する2個以上の行列が、2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A5)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
An encoding apparatus according to another aspect of the present invention provides a multiplication result of two or more matrices obtained by multiplying at least one set of adjacent matrices included in Equation (A5) from information vector X having k elements. An encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 in accordance with a parity generation expression replaced by a matrix C,
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A5)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The parity check matrix H includes the first to k-th columns, and the matrix B includes the (k + 1) -th to n-th columns of the parity check matrix H, where n = k + m, and the matrix L i (I = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B. The i-th column matches the i-th column of the lower triangular matrix L, and the other columns are A matrix whose off-diagonal term is 0 and whose diagonal term is 1, and the matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and The i-th row coincides with the i-th row of the upper triangular matrix U, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1, and the encoding device is included in the parity generation formula. In order to calculate a parity vector Y, a matrix storage unit that stores data representing a plurality of matrices, an intermediate result storage unit that stores data representing intermediate results of a plurality of matrix multiplications included in the parity generation formula, A matrix product calculation unit that executes a plurality of matrix multiplications included in the parity generation formula, and the matrix product calculation unit receives the information vector X, data representing a matrix in the matrix storage unit, or an intermediate result in the intermediate result storage unit The data representing the calculation result is represented as an intermediate result until each matrix multiplication included in the parity generation formula is executed using the data to be represented and a plurality of matrix multiplications included in the parity generation formula is completed. When data is stored in the intermediate result storage unit and multiple matrix multiplications included in the parity generation formula are completed, after multiple matrix multiplications included in the parity generation formula are completed The obtained vector is output as a parity vector Y.

好ましくは、パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である。   Preferably, the sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in the parity generation formula is less than or equal to the sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in Formula (A5). is there.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、行列積計算部は、さらに、式(A5)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、行列Bを下三角行列Lと上三角行列Uの積にLU分解して、下三角行列Lを表わすデータおよび上三角行列Uを表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列Uおよび下三角行列Lを表わすデータを読み出して、上三角行列Uをm個の基本上三角行列Ui(i=1〜m)の積に分解し、下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、乗算結果である行列Cの非零要素数と式(A5)に含まれる行列のうち隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、中間結果記憶部に記憶されている式(A5)に含まれる行列のうち隣接する2個以上の行列を除いた行列を表わすデータと、行列Cを表わすデータとを行列記憶部に記憶する行列乗算数削減部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the matrix product calculation unit further performs multiplication of two or more adjacent matrices included in Expression (A5) to represent matrix C as a multiplication result. The encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B and stores the data representing the matrix A in the matrix storage unit, and the matrix B as a lower triangle. LU decomposition into a product of the matrix L and the upper triangular matrix U and LU decomposition unit for storing data representing the lower triangular matrix L and data representing the upper triangular matrix U in the intermediate result storage unit; Matrix U and Reads the data representing the lower triangular matrix L, and the upper triangular matrix U was decomposed into a product of m elementary upper triangular matrix U i (i = 1~m), the lower triangular matrix L m-number of basic lower triangular matrix L i (i = 1 to m) is decomposed into products, and data representing the decomposed matrix U i (i = 1 to m) and the matrix L i (i = 1 to m) is stored in the intermediate result storage unit. The basic matrix decomposition unit, the number of non-zero elements of the matrix C as a multiplication result, and the number of non-zero elements of the non-diagonal terms of the matrix excluding two or more adjacent matrices among the matrices included in the formula (A5) Of the matrices included in the equation (A5) stored in the intermediate result storage unit when the sum is less than or equal to the sum of the number of nonzero elements in the non-diagonal terms of all the matrices included in the equation (A5) Matrix multiplication factor reduction storing data representing a matrix excluding two or more adjacent matrices and data representing a matrix C in a matrix storage unit. And a part.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから、式(A6)に含まれる少なくとも1セットの隣接する2個以上の行列が、2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(A6)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li -1(i=1〜m)は行列Liの逆行列であり、行列Liは行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui -1(i=1〜m)は行列Uiの逆行列であり、行列Uiは、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
An encoding apparatus according to another aspect of the present invention provides a multiplication result of two or more matrices obtained by multiplying at least one set of adjacent matrices included in Equation (A6) from information vector X having k elements. An encoding device that generates a parity vector Y having m elements by performing a real number operation according to a parity generation expression replaced by a matrix C,
Y = −U 1 −1 U 2 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX. A6)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The parity check matrix H includes the first to k-th columns, and the matrix B includes the (k + 1) -th to n-th columns of the parity check matrix H, where n = k + m, and the matrix L i -1 (i = 1 to m) is the inverse matrix of the matrix L i, the matrix L i is a matrix B a fundamental lower triangular matrix of the lower triangular matrix L obtained by the LU decomposition, the i-th column is lower triangular matrix The other columns correspond to the i-th column of L, the off-diagonal term is 0, and the diagonal term is 1, and the matrix U i -1 (i = 1 to m) is the inverse of the matrix U i . The matrix U i is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B. The i-th row matches the i-th row of the upper triangular matrix U, and the other rows are Off-diagonal term is 0 , A matrix whose diagonal term is 1, and the encoding device includes: a matrix storage unit that stores data representing a plurality of matrices included in the parity generation formula; and a plurality of matrix multiplications included in the parity generation formula. An intermediate result storage unit that stores data representing the intermediate result, a matrix product calculation unit that executes matrix multiplication of a plurality of times included in the parity generation formula to calculate the parity vector Y, and a matrix product calculation unit are output. A matrix inversion unit that inverts the sign of the vector to output as a parity vector Y, and the matrix product calculation unit represents the information vector X, the data representing the matrix in the matrix storage unit, or the intermediate result in the intermediate result storage unit Data is used to represent the calculation result until each matrix multiplication included in the parity generation formula is executed and a plurality of matrix multiplications included in the parity generation formula are completed. Is stored in the intermediate result storage unit as data representing the intermediate result, and when the multiple matrix multiplications included in the parity generation formula are completed, the vector obtained after the multiple matrix multiplications included in the parity generation formula is inverted. To the output.

好ましくは、パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である。   Preferably, the sum of the non-zero element numbers of the non-diagonal terms of all the matrices included in the parity generation equation is equal to or less than the sum of the non-zero element numbers of the non-diagonal terms of all the matrices included in the equation (A6). is there.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、行列積計算部は、さらに、式(A6)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、行列Bを下三角行列Lと上三角行列Uの積にLU分解して、下三角行列Lを表わすデータおよび上三角行列Uを表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列Uおよび下三角行列Lを表わすデータを読み出して、上三角行列Uをm個の基本上三角行列Ui(i=1〜m)の積に分解し、下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、中間結果記憶部から行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを読み出して、行列Ui(i=1〜m)および行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を表わすデータを中間結果記憶部に記憶させる逆行列計算部と、乗算結果である行列Cの非零要素数と式(A6)に含まれる行列のうち隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、中間結果記憶部に記憶されている式(A6)に含まれる行列のうち隣接する2個以上の行列を除いた行列を表わすデータと、行列Cを表わすデータとを行列記憶部に記憶する行列乗算数削減部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the matrix product calculation unit further performs multiplication of two or more adjacent matrices included in Expression (A6) to represent a matrix C that is a multiplication result. The encoding apparatus further decomposes the parity check matrix H into a matrix A and a matrix B and stores the data representing the matrix A in the matrix storage unit, and the matrix B as a lower triangle. LU decomposition into a product of the matrix L and the upper triangular matrix U and LU decomposition unit for storing data representing the lower triangular matrix L and data representing the upper triangular matrix U in the intermediate result storage unit; Matrix U and Reads the data representing the lower triangular matrix L, and the upper triangular matrix U was decomposed into a product of m elementary upper triangular matrix U i (i = 1~m), the lower triangular matrix L m-number of basic lower triangular matrix L i (i = 1 to m) is decomposed into products, and data representing the decomposed matrix U i (i = 1 to m) and the matrix L i (i = 1 to m) is stored in the intermediate result storage unit. Data representing the matrix U i (i = 1 to m) and the matrix L i (i = 1 to m) are read from the basic matrix decomposition unit and the intermediate result storage unit, and the matrix U i (i = 1 to m) and by reversing the sign of the non-diagonal terms elements of the matrix L i (i = 1~m), inverse matrix U i -1 (i = 1~m) and the inverse matrix L i -1 (i = 1~ m) calculating the inverse matrix U i -1 (i = 1~m) and the inverse matrix L i -1 (i = 1~m) inverse matrix calculating unit for storing data in the intermediate result storage unit representing the , The sum of the number of non-zero elements of the matrix C, which is the multiplication result, and the number of non-zero elements of the non-diagonal terms of the matrix excluding two or more adjacent matrices among the matrices included in the expression (A6), Two or more adjacent matrices among the matrices included in the expression (A6) stored in the intermediate result storage unit when the number of non-zero elements of the non-diagonal terms of all the matrices included in A6) is less than or equal to A matrix multiplication number reduction unit that stores data representing the matrix excluding the matrix and data representing the matrix C in the matrix storage unit.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A7−1)、u≧1かつv=0のときには式(A7−2)、u=0かつv≧1のときには式(A7−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A7−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A7−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
The encoding device according to another aspect of the present invention is based on an information vector X having k elements, and when u ≧ 1 and v ≧ 1, Expression (A7-1), and when u ≧ 1 and v = 0, Expression (A7) -2) When u = 0 and v ≧ 1, at least one set of two or more adjacent matrices included in the formula (A7-3) is replaced with a matrix C which is a multiplication result of two or more matrices. An encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 according to the parity generation equation,
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A7 -1)
Y≡U ′ 1 U ′ 2 ... U ′ m-1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A7-2)
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX (A7-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, n = k + m, and u ≧ 1 When v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement with respect to the matrix B, and the matrix A (u) is the matrix A On the other hand, the same replacement as the u-time replacement of the matrix B is performed, and the matrix E (v) is the same as the v-time replacement of the matrix B with respect to the unit matrix E. If u ≧ 1 and v = 0, the matrix B ′ is replaced u times with respect to the matrix B when u ≧ 1 and v = 0. The matrix A (u) is obtained by performing the same replacement as the u-time replacement of the matrix B with respect to the matrix A when u = 0 and v ≧ 1. The matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained by performing v times of column replacement for the matrix B with respect to the unit matrix E. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′, and the i-th column is the lower one. The other columns correspond to the i-th column of the triangular matrix L ′, the off-diagonal term is 0, and the diagonal term is 1. The matrix U ′ i (i = 1 to m) is the matrix B Is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of ′, the i-th row coincides with the i-th row of the upper triangular matrix U ′, and the off-diagonal term is 0 in the other rows. A matrix whose diagonal term is 1, the encoding device includes: a matrix storage unit that stores data representing a plurality of matrices included in the parity generation formula; and an intermediate between a plurality of matrix multiplications included in the parity generation formula An intermediate result storage unit that stores data representing the result, and a matrix product calculation unit that executes a plurality of matrix multiplications included in the parity generation formula in order to calculate the parity vector Y, Using the information vector X, the data representing the matrix in the matrix storage unit, or the data representing the intermediate result in the intermediate result storage unit, each matrix multiplication included in the parity generation formula is executed, and multiple times included in the parity generation formula Until the matrix multiplication is completed, the data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and multiple times of matrix multiplication included in the parity generation formula are performed. When the calculation is completed, a vector obtained after the completion of a plurality of matrix multiplications included in the parity generation formula is output as a parity vector Y.

好ましくは、パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である。   Preferably, the sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in the parity generation formula is the sum of all the numbers included in the formula (A7-1), (A7-2), or (A7-3). Is less than or equal to the sum of the number of nonzero elements in the off-diagonal terms of the matrix.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、行列積計算部は、さらに、式(A7−1)、(A7−2)、または(A7−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、行列Aおよび行列Bを表わすデータを中間結果記憶部に記憶させる検査行列分解部と、u≧1かつv≧1の場合、中間結果記憶部から行列Aおよび行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して中間結果記憶部に記憶させ、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して中間結果記憶部に記憶させ、u≧1かつv=0の場合、中間結果記憶部から行列Aおよび行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して中間結果記憶部に記憶させ、u=0かつv≧1の場合、中間結果記憶部から行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してv回の列の入れ替えを行なった行列B′を生成し、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して中間結果記憶部に記憶させるオーダリング部と、行列B′を下三角行列L′と上三角行列U′の積にLU分解して、下三角行列L′を表わすデータおよび上三角行列U′を表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列U′および下三角行列L′を表わすデータを読み出して、上三角行列U′をm個の基本上三角行列U′i(i=1〜m)の積に分解し、下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、乗算結果である行列Cの非零要素数と式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、中間結果記憶部に記憶されている式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち隣接する2個以上の行列を除いた行列を表わすデータと、行列Cを表わすデータとを行列記憶部に記憶する行列乗算数削減部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the matrix product calculation unit further includes two or more adjacent matrices included in the formula (A7-1), (A7-2), or (A7-3) And the data representing the matrix C as the multiplication result is output, and the encoding apparatus further decomposes the parity check matrix H into the matrix A and the matrix B, and the data representing the matrix A and the matrix B Is stored in the intermediate result storage unit, and when u ≧ 1 and v ≧ 1, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B Against u Permutations and v times to generate a matrix B 'was subjected to replacement column of the row, to generate a matrix A (u), which was carried out in the same manner as the replacement and swapping of u times the line for the matrix B for matrices A Are stored in the intermediate result storage unit, a matrix E (v) in which the same replacement as the column replacement for the matrix B is performed on the unit matrix E is generated and stored in the intermediate result storage unit, and u ≧ When 1 and v = 0, data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B ′ in which u rows are replaced with respect to the matrix B is obtained. When the matrix A (u) is generated and the matrix A (u) is exchanged in the same manner as the matrix B with respect to the matrix B, and stored in the intermediate result storage unit, and u = 0 and v ≧ 1 Read data representing matrix B from the intermediate result storage Then, the matrix B is ordered to generate a matrix B ′ in which the columns B are exchanged v times for the matrix B, and the unit matrix E is exchanged similarly to the v times column exchange for the matrix B. An ordering unit that generates the matrix E (v) and stores the result in the intermediate result storage unit, and LU-decomposes the matrix B ′ into the product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and lower matrix L Data representing ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result storage unit, and data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ are read from the intermediate result storage unit. The triangular matrix U ′ is decomposed into a product of m basic upper triangular matrices U ′ i (i = 1 to m), and the lower triangular matrix L ′ is converted to m basic lower triangular matrices L ′ i (i = 1 to m). decomposing the product of), decomposed matrix U 'i (i = 1~m) and matrix L i (i = 1~m) and the base matrix decomposition unit for storing data in the intermediate result storage unit representing a non-zero number of elements and expressions of the matrix C is a multiplication result (A7-1), (A7-2) Or the sum of the number of non-zero elements in the non-diagonal terms of the matrix excluding two or more adjacent matrices among the matrices included in (A7-3) is expressed by equations (A7-1) and (A7-2). , Or (A7-3), the formulas (A7-1) and (A7−) stored in the intermediate result storage unit are equal to or less than the sum of the number of nonzero elements of the off-diagonal terms of all the matrices. 2) or a matrix multiplication number reduction unit that stores data representing a matrix excluding two or more adjacent matrices in the matrix included in (A7-3) and data representing a matrix C in a matrix storage unit; Is provided.

本発明の別の局面に係る符号化装置は、要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A8−1)、u≧1かつv=0のときには式(A8−2)、u=0かつv≧1のときには式(A8−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(A8−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(A8−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A8−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i -1(i=1〜m)は行列L′iの逆行列であり、行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i -1(i=1〜m)は行列U′iの逆行列であり、行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
The encoding apparatus according to another aspect of the present invention is based on an information vector X having k elements, and is expressed by equation (A8-1) when u ≧ 1 and v ≧ 1, and equation (A8) when u ≧ 1 and v = 0. -2) When u = 0 and v ≧ 1, at least one set of two or more adjacent matrices included in equation (A8-3) is replaced with a matrix C that is the result of multiplication of two or more matrices. An encoding device that generates a parity vector Y having m elements by performing a real number operation according to the parity generation equation,
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (A8-1)
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (A8-2)
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (A8-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, n = k + m, and u ≧ 1 When v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement with respect to the matrix B, and the matrix A (u) is the matrix A On the other hand, the same replacement as the u-time replacement of the matrix B is performed, and the matrix E (v) is the same as the v-time replacement of the matrix B with respect to the unit matrix E. If u ≧ 1 and v = 0, the matrix B ′ is replaced u times with respect to the matrix B when u ≧ 1 and v = 0. The matrix A (u) is obtained by performing the same replacement as the u-time replacement of the matrix B with respect to the matrix A when u = 0 and v ≧ 1. The matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained by performing v times of column replacement for the matrix B with respect to the unit matrix E. are those conducted similar replacement, the matrix L 'i -1 (i = 1~m ) is a matrix L' is the inverse matrix of i, the matrix L 'i is a matrix B' lower triangular matrix obtained by the LU decomposition of A basic lower triangular matrix of L ′, in which the i-th column coincides with the i-th column of the lower triangular matrix L ′, and the other columns are matrices whose off-diagonal terms are 0 and whose diagonal terms are 1. There, the matrix U 'i -1 (i = 1~m ) is a matrix U' is the inverse matrix of i, the matrix U 'i is a matrix B' of the basic upper triangular matrix of the upper triangular matrix U 'was LU decomposition The i-th row matches the i-th row of the upper triangular matrix U ′, and the other rows are matrices whose off-diagonal terms are 0 and diagonal terms are 1. A matrix storage unit for storing data representing a plurality of matrices included in the generation formula, an intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation formula, and a parity vector Y In order to calculate, a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation equation, a code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs the result as a parity vector Y; The matrix product calculation unit executes each matrix multiplication included in the parity generation formula using the information vector X, the data representing the matrix in the matrix storage unit, or the data representing the intermediate result in the intermediate result storage unit. ,parity Until the multiple matrix multiplications included in the formula are completed, the data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate results, and the multiple matrix multiplications included in the parity generation formula are performed. Is completed, a vector obtained after the completion of the multiple matrix multiplications included in the parity generation equation is output to the sign inversion unit.

好ましくは、パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である。   Preferably, the sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in the parity generation equation is calculated by adding all the numbers included in the equation (A8-1), (A8-2), or (A8-3). Is less than or equal to the sum of the number of nonzero elements in the off-diagonal terms of the matrix.

好ましくは、符号化装置は、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化装置であって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、行列積計算部は、さらに、式(A8−1)、(A8−2)、または(A8−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、符号化装置は、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、行列Aおよび行列Bを表わすデータを中間結果記憶部に記憶させる検査行列分解部と、u≧1かつv≧1の場合、中間結果記憶部から行列Aおよび行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して中間結果記憶部に記憶させ、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して中間結果記憶部に記憶させ、u≧1かつv=0の場合、中間結果記憶部から行列Aおよび行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えを行なった行列B′を生成し、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して中間結果記憶部に記憶させ、u=0かつv≧1の場合、中間結果記憶部から行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してv回の列の入れ替えを行なった行列B′を生成し、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して中間結果記憶部に記憶させるオーダリング部と、行列B′を下三角行列L′と上三角行列U′の積にLU分解して、下三角行列L′を表わすデータおよび上三角行列U′を表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列U′および下三角行列L′を表わすデータを読み出して、上三角行列U′をm個の基本上三角行列U′i(i=1〜m)の積に分解し、下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを中間結果記憶部に記憶させる基本行列分解部と、中間結果記憶部から行列U′i(i=1〜m)および行列L′i(i=1〜m)を表わすデータを読み出して、行列U′i(i=1〜m)および行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を表わすデータを中間結果記憶部に記憶させる逆行列計算部と、乗算結果である行列Cの非零要素数と式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、中間結果記憶部に記憶されている式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち隣接する2個以上の行列を除いた行列を表わすデータと、行列Cを表わすデータとを行列記憶部に記憶する行列乗算数削減部とを備える。 Preferably, the encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the matrix product calculation unit further includes two or more adjacent matrices included in the formula (A8-1), (A8-2), or (A8-3) And the data representing the matrix C as the multiplication result is output, and the encoding apparatus further decomposes the parity check matrix H into the matrix A and the matrix B, and the data representing the matrix A and the matrix B Is stored in the intermediate result storage unit, and when u ≧ 1 and v ≧ 1, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B Against u Permutations and v times to generate a matrix B 'was subjected to replacement column of the row, to generate a matrix A (u), which was carried out in the same manner as the replacement and swapping of u times the line for the matrix B for matrices A Are stored in the intermediate result storage unit, a matrix E (v) in which the same replacement as the column replacement for the matrix B is performed on the unit matrix E is generated and stored in the intermediate result storage unit, and u ≧ When 1 and v = 0, data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B ′ in which u rows are replaced with respect to the matrix B is obtained. When the matrix A (u) is generated and the matrix A (u) is exchanged in the same manner as the matrix B with respect to the matrix B, and stored in the intermediate result storage unit, and u = 0 and v ≧ 1 Read data representing matrix B from the intermediate result storage Then, the matrix B is ordered to generate a matrix B ′ in which the columns B are exchanged v times for the matrix B, and the unit matrix E is exchanged similarly to the v times column exchange for the matrix B. An ordering unit that generates the matrix E (v) and stores the result in the intermediate result storage unit, and LU-decomposes the matrix B ′ into the product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and lower matrix L Data representing ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result storage unit, and data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ are read from the intermediate result storage unit. The triangular matrix U ′ is decomposed into a product of m basic upper triangular matrices U ′ i (i = 1 to m), and the lower triangular matrix L ′ is converted to m basic lower triangular matrices L ′ i (i = 1 to m). decomposing the product of), decomposed matrix U 'i (i = 1~m) and matrix L i (i = 1~m) and the base matrix decomposition unit for storing data in the intermediate result storage unit representing the matrix from the intermediate result storage unit U 'i (i = 1~m) and matrix L' i (i = 1-m) is read out and inverted by inverting the signs of the elements of the off-diagonal terms of the matrix U ′ i (i = 1-m) and the matrix L ′ i (i = 1-m). The matrix U ′ i −1 (i = 1 to m) and the inverse matrix L ′ i −1 (i = 1 to m) are calculated, and the inverse matrix U ′ i −1 (i = 1 to m) and the inverse matrix L An inverse matrix calculation unit that stores data representing ′ i −1 (i = 1 to m) in the intermediate result storage unit, the number of non-zero elements of the matrix C that is the multiplication result, and equations (A8-1) and (A8− 2) or the sum of the number of non-zero elements in the non-diagonal terms of the matrix excluding two or more adjacent matrices among the matrices included in (A8-3) is expressed by equations (A8-1), (A8- 2), Or, when it is equal to or less than the sum of the number of non-zero elements of non-diagonal terms of all the matrices included in (A8-3), the expressions (A8-1) and (A8-2) stored in the intermediate result storage ) Or (A8-3), a matrix multiplication number reduction unit for storing data representing a matrix excluding two or more adjacent matrices and data representing a matrix C in a matrix storage unit Prepare.

好ましくは、行列積計算部は、パリティ生成式に含まれる複数回の行列乗算のうち、パリティ生成式の右側にある行列乗算から順次実行する。   Preferably, the matrix product calculation unit sequentially executes the matrix multiplication on the right side of the parity generation formula among a plurality of matrix multiplications included in the parity generation formula.

好ましくは、行列積計算部は、パリティ生成式に含まれる複数回の行列乗算のうち2個以上の行列乗算を並行して実行する。   Preferably, the matrix product calculation unit executes two or more matrix multiplications in parallel among a plurality of matrix multiplications included in the parity generation formula.

本発明の別の局面に係る符号化プログラムは、要素数kの情報ベクトルXから式(A9)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化プログラムであって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A9)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化プログラムは、コンピュータを、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部として機能させ、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
An encoding program according to another aspect of the present invention performs an operation modulo 2 from an information vector X having the number of elements k according to a parity generation expression represented by the formula (A9), thereby generating a parity vector having the number of elements m. An encoding program for generating Y,
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A9)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The parity check matrix H includes the first to k-th columns, and the matrix B includes the (k + 1) -th to n-th columns of the parity check matrix H, where n = k + m, and the matrix L i (I = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B. The i-th column matches the i-th column of the lower triangular matrix L, and the other columns are A matrix whose off-diagonal term is 0 and whose diagonal term is 1, and the matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and The i-th row coincides with the i-th row of the upper triangular matrix U, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1, and the encoding program A matrix storage unit that stores data representing a plurality of matrices included in the parity generation equation, an intermediate result storage unit that stores data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation, and a parity vector Y To calculate a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation formula, and the matrix product calculation unit is an information vector X, data representing a matrix in the matrix storage unit, or an intermediate result The data representing the intermediate result in the storage unit is used to execute each matrix multiplication included in the parity generation formula, and the calculation result is expressed until a plurality of matrix multiplications included in the parity generation formula are completed. When data is stored in the intermediate result storage unit as data representing the intermediate result, and multiple matrix multiplications included in the parity generation formula are completed, the data is included in the parity generation formula. A vector obtained after completion of multiple matrix multiplications is output as a parity vector Y.

好ましくは、 符号化プログラムは、パリティベクトルYを生成する前に、パリティ生成式に含まれる行列を生成する符号化プログラムであって、中間結果記憶部は、さらに、パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、符号化プログラムは、コンピュータを、さらに、パリティ検査行列Hを行列Aと行列Bに分解して、行列Aを表わすデータを行列記憶部に記憶させる検査行列分解部と、行列Bを下三角行列Lと上三角行列Uの積にLU分解して、下三角行列Lを表わすデータおよび上三角行列Uを表わすデータを中間結果記憶部に記憶させるLU分解部と、中間結果記憶部から上三角行列Uおよび下三角行列Lを表わすデータを読み出して、上三角行列Uをm個の基本上三角行列Ui(i=1〜m)の積に分解し、下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを行列記憶部に記憶させる基本行列分解部として機能させる。 Preferably, the encoding program is an encoding program for generating a matrix included in the parity generation equation before generating the parity vector Y, and the intermediate result storage unit further converts the matrix included in the parity generation equation. Data representing an intermediate result of the process to be generated is stored, and the encoding program further decomposes the parity check matrix H into matrix A and matrix B, and stores the data representing matrix A in the matrix storage unit. LU that causes a parity check matrix decomposition unit to LU-decompose matrix B into a product of lower triangular matrix L and upper triangular matrix U, and store data representing lower triangular matrix L and data representing upper triangular matrix U in the intermediate result storage unit Data representing the upper triangular matrix U and the lower triangular matrix L are read from the decomposition unit and the intermediate result storage unit, and the upper triangular matrix U is converted into m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into products of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i are decomposed. It is made to function as a basic matrix decomposition unit for storing data representing (i = 1 to m) in the matrix storage unit.

本発明によれば、従来よりも少ない計算量でパリティを計算することができる。   According to the present invention, parity can be calculated with a smaller amount of calculation than in the prior art.

(全体構成)
以下、本発明に係る実施の形態について図面を参照して説明する。
(overall structure)
Hereinafter, embodiments according to the present invention will be described with reference to the drawings.

図1は、本発明の実施形態の通信システムの構成の一例を示す図である。
図1の通信システムにおいて、送信装置1は、符号化器2と変調器3とを備え、受信装置4は、復調器6と誤り訂正復号化器7とを備える。
FIG. 1 is a diagram illustrating an example of a configuration of a communication system according to an embodiment of this invention.
In the communication system of FIG. 1, the transmission device 1 includes an encoder 2 and a modulator 3, and the reception device 4 includes a demodulator 6 and an error correction decoder 7.

符号化器2は、kビットの情報ビットからなる情報ベクトルXに対し、mビットのパリティビットからなるパリティベクトルYを付加して、n(=(k+m))ビットのLDPC符号(低密度パリティ検査符号)Zを生成する。パリティベクトルYの生成のために用いられるパリティ検査行列H(m行、n列)においては、行数mが冗長ビット数に対応し、列数nが符号ビット数に対応する。   The encoder 2 adds a parity vector Y consisting of m-bit parity bits to an information vector X consisting of k-bit information bits, and an n (= (k + m))-bit LDPC code (low density parity check) A code Z is generated. In the parity check matrix H (m rows and n columns) used for generating the parity vector Y, the number of rows m corresponds to the number of redundant bits, and the number of columns n corresponds to the number of code bits.

変調器3は、通信路7の構成に応じて、LDPC符号Zに対して、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。   The modulator 3 performs modulation such as amplitude modulation, phase modulation, code modulation, frequency modulation, or direct frequency division multiplexing modulation on the LDPC code Z according to the configuration of the communication path 7.

復調器6は、通信路7を介して受信した変調信号に対して、この通信路7における送信形態に応じて復調処理を行なうことによって、nビットの多値量子化(Lを多値数とすると、L≧2)されたデジタル符号を出力する。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。   The demodulator 6 performs a demodulation process on the modulated signal received via the communication path 7 according to the transmission form on the communication path 7, thereby performing n-bit multilevel quantization (L is expressed as a multilevel number). Then, the digital code with L ≧ 2) is output. For example, in the case of amplitude modulation, phase modulation, code modulation, frequency modulation, and orthogonal frequency division multiplexing modulation, the demodulator performs processing such as amplitude demodulation, phase demodulation, code demodulation, and frequency demodulation.

誤り訂正復号化器5は、復調器から出力されるnビットの符号にパリティ検査行列Hを適用して、kビットの情報ビットからなる情報ベクトルXを復元する。   The error correction decoder 5 applies the parity check matrix H to the n-bit code output from the demodulator to restore the information vector X composed of k-bit information bits.

[第1の実施形態]
第1の実施形態の符号化器は、2を法とする演算を行なう。
[First Embodiment]
The encoder of the first embodiment performs an operation modulo 2.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(B1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X consisting of k information bits x1, x2,..., Xk and performs an operation modulo 2 so as to satisfy m A parity vector Y composed of bits y1, y2,.
H (X, Y) T ≡0 (B1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(B1)は、2を法とする演算の場合には、次のように変形される。
BY≡AX ・・・(B2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (B1) is modified as follows in the case of an operation modulo 2.
BY≡AX (B2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列BをLU分解すると、式(B2)は以下の式に変形される。
LUY≡AX ・・・(B3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(B3)より、列ベクトルYは、以下の式で表わされる。
Y≡U-1-1AX ・・・(B4)
When the matrix B is subjected to LU decomposition, the equation (B2) is transformed into the following equation.
LUY≡AX (B3)
Here, L is a lower triangular matrix and U is an upper triangular matrix.
From the equation (B3), the column vector Y is expressed by the following equation.
Y≡U -1 L -1 AX (B4)

上三角行列Uは、以下の式のように、基本上三角行列Ui(i=1〜m)の積に分解される。
U≡Umm-1・・・U21 ・・・(B5)
式(B5)より、逆行列U-1は、以下の式で表わされる。
-1≡U1 -12 -1・・・Um-1 -1m -1 ・・・(B6)
The upper triangular matrix U is decomposed into products of basic upper triangular matrices U i (i = 1 to m) as in the following equation.
U≡U m U m-1 ... U 2 U 1 ... (B5)
From Equation (B5), the inverse matrix U −1 is represented by the following equation.
U -1 ≡ U 1 -1 U 2 -1 ... U m-1 -1 U m -1 (B6)

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L≡L12・・・Lm-1m ・・・(B7)
式(B7)より、逆行列L-1は、以下の式で表わされる。
-1≡Lm -1m-1 -1・・・L2 -11 -1 ・・・(B8)
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L≡L 1 L 2 ... L m-1 L m (B7)
From the equation (B7), the inverse matrix L −1 is expressed by the following equation.
L -1 ≡L m -1 L m-1 -1 ... L 2 -1 L 1 -1 ... (B8)

式(B6)および式(B8)によって、式(B4)は以下の式に変形される。
Y≡(U1 -12 -1・・・Um-1 -1m -1)(Lm -1m-1 -1・・・L2 -11 -1)AX ・・・(B9)
Expression (B4) is transformed into the following expression by Expression (B6) and Expression (B8).
Y≡ (U 1 -1 U 2 -1 ... U m-1 -1 U m -1 ) (L m -1 L m-1 -1 ... L 2 -1 L 1 -1 ) AX .. (B9)

ところで、2を法とする演算の場合には、基本上三角行列Ui(i=1〜m)、基本下三角行列Li(i=1〜m)は、以下のような性質を有する。
i≡(Ui-1 ・・・(B10)
i≡(Li-1 ・・・(B11)
By the way, in the case of an operation modulo 2, the basic upper triangular matrix U i (i = 1 to m) and the basic lower triangular matrix L i (i = 1 to m) have the following properties.
U i ≡ (U i ) -1 (B10)
L i ≡ (L i ) −1 (B11)

式(B10)および式(B11)によって、式(B9)は以下の式に変形される。
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(B12)
Expression (B9) is transformed into the following expression by Expression (B10) and Expression (B11).
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (B12)

式(B12)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z≡(X,Y) ・・・(B13)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (B12) and the information vector X, the encoded vector Z is expressed by the following equation.
Z≡ (X, Y) (B13)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図2は、第1の実施形態の符号化器の構成を表わす図である。
(Constitution)
FIG. 2 is a diagram illustrating the configuration of the encoder according to the first embodiment.

図2を参照して、この符号化器2aは、検査行列分解部10と、LU分解部14と、基本行列分解部16と、中間結果記憶部12と、行列記憶部18と、行列積計算部11と、配列部20と、行列積計算制御部121とを備える。   Referring to FIG. 2, this encoder 2a includes a parity check matrix decomposition unit 10, an LU decomposition unit 14, a basic matrix decomposition unit 16, an intermediate result storage unit 12, a matrix storage unit 18, and a matrix product calculation. Unit 11, array unit 20, and matrix product calculation control unit 121.

検査行列分解部10は、検査行列Hを行列A、Bに分解して、行列Aを表わすデータを行列記憶部18に記憶させ、行列Bを表わすデータを中間結果記憶部12に記憶させる。情報ベクトルXの次元をk、パリティベクトルYの次元をmとし、k+m=nとしたときに、検査行列Hは、m×nの行列である。検査行列分解部10は、検査行列Hから第1列目〜第k列目を抜き出して、行列Aとし、第(k+1)列目から第n列目までを抜き出して、行列Bとする。Aは、m×kの行列であり、Bは、m×mの行列である。   The parity check matrix decomposition unit 10 decomposes the parity check matrix H into matrices A and B, stores data representing the matrix A in the matrix storage unit 18, and stores data representing the matrix B in the intermediate result storage unit 12. When the dimension of the information vector X is k, the dimension of the parity vector Y is m, and k + m = n, the check matrix H is an m × n matrix. The parity check matrix decomposition unit 10 extracts the first to kth columns from the parity check matrix H to form a matrix A, and extracts the (k + 1) th to nth columns to form a matrix B. A is an m × k matrix, and B is an m × m matrix.

LU分解部14は、加算器13および乗算器15を備える。LU分解部14は、Crout(クラウト)のアルゴリズムにしたがって、行列BをLU分解して、下三角行列Lと、上三角行列Uとを生成する。   The LU decomposition unit 14 includes an adder 13 and a multiplier 15. The LU decomposition unit 14 performs LU decomposition on the matrix B according to the Crout algorithm to generate a lower triangular matrix L and an upper triangular matrix U.

基本行列分解部16は、上三角行列Uを式(B5)のように、基本上三角行列Ui(i=1〜m)の積に分解する。また、基本行列分解部16は、下三角行列Lを式(B7)のように、基本下三角行列Li(i=1〜m)の積に分解する。 The basic matrix decomposition unit 16 decomposes the upper triangular matrix U into a product of the basic upper triangular matrix U i (i = 1 to m) as shown in Expression (B5). Further, the basic matrix decomposition unit 16 decomposes the lower triangular matrix L into a product of the basic lower triangular matrix L i (i = 1 to m) as shown in Expression (B7).

基本上三角行列Uiは、第i行が上三角行列Uの第i行であり、第i行以外の行は、対角項の要素が1で、非対角項の要素が0であるような行列である。
たとえば、上三角行列Uが式(1)で表わされる場合には、基本上三角行列U1、U2、U3は、それぞれ、式(2)、式(3)、式(4)で表わされる。

Figure 0004821684
In the basic upper triangular matrix U i , the i-th row is the i-th row of the upper triangular matrix U, and in the rows other than the i-th row, the diagonal term element is 1 and the off-diagonal term element is 0. It is a matrix like this.
For example, when the upper triangular matrix U is represented by equation (1), the basic upper triangular matrices U 1 , U 2 , U 3 are represented by equations (2), (3), and (4), respectively. It is.
Figure 0004821684

基本下三角行列Liは、第i列が下三角行列Lの第i列であり、第i列以外の列は、対角項の要素が1であり、非対角項の要素が0であるような行列である。
たとえば、下三角行列Lが式(5)で表わされる場合には、基本下三角行列L1、L2、L3は、それぞれ、式(6)、式(7)、式(8)で表わされる。

Figure 0004821684
In the basic lower triangular matrix L i , the i-th column is the i-th column of the lower triangular matrix L, and in the columns other than the i-th column, the diagonal term element is 1 and the off-diagonal term element is 0. It is a certain matrix.
For example, when the lower triangular matrix L is represented by Expression (5), the basic lower triangular matrices L 1 , L 2 , and L 3 are represented by Expression (6), Expression (7), and Expression (8), respectively. It is.
Figure 0004821684

行列記憶部18は、基本上三角行列U1、U2、・・・、Umを表わすデータ、基本下三角行列Lm、Lm-1、・・・、L1を表わすデータ、および行列Aを表わすデータを記憶する。 Matrix storage unit 18, the basic upper triangular matrix U 1, U 2, · · ·, data representing the U m, the fundamental lower triangular matrix L m, L m-1, ···, data representing the L 1, and matrix Data representing A is stored.

行列積計算部11は、加算器17および乗算器19を備える。行列積計算部11は、パリティベクトルYを算出するために、式(B12)に含まれる(2m+1)回の行列乗算を行列積計算制御部121に指示された順序で実行する。行列積計算部11は、入力される情報ベクトルX、行列記憶部18内の行列U1、U2、・・・、Um、Lm、Lm-1、・・・、L1、Aを表わすデータ、および中間結果記憶部12内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部11は、式(B12)に含まれる(2m+1)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部12に記憶させる。 The matrix product calculation unit 11 includes an adder 17 and a multiplier 19. In order to calculate the parity vector Y, the matrix product calculation unit 11 performs (2m + 1) times of matrix multiplications included in the equation (B12) in the order instructed by the matrix product calculation control unit 121. Matrix product calculator 11, the information vector X is input, the matrix U 1, U 2 in the matrix storage unit 18, ···, U m, L m, L m-1, ···, L 1, A Each matrix multiplication is executed using two of the data representing the intermediate data and the data representing the intermediate results in the intermediate result storage unit 12. The matrix product calculation unit 11 stores data representing the calculation result in the intermediate result storage unit 12 as data representing the intermediate result until (2m + 1) times of matrix multiplication included in the formula (B12) is completed.

行列積計算制御部121は、パリティベクトルYを算出するために、行列記憶部18にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U2、U1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部11を制御する。また、行列積計算制御部121は、式(B12)に含まれる(2m+1)回の行列乗算の終了後に、行列積計算部11から計算結果であるパリティベクトルYを出力させる。 Matrix product calculation control unit 121, in order to calculate the parity vector Y, A order from the head of the matrix data in the matrix storage unit 18 is stored, L 1, L 2, ··· , L m-1 , L m , U m , U m−1 ,..., U 2 , U 1 are set in order, and the matrix product calculation unit 11 is set to perform matrix multiplication in this order. Control. Further, the matrix product calculation control unit 121 causes the matrix product calculation unit 11 to output a parity vector Y as a calculation result after the (2m + 1) times of matrix multiplication included in the formula (B12).

中間結果記憶部12は、式(B12)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部12は、パリティベクトルYの生成処理時に、式(B12)に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 12 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (B12). Further, the intermediate result storage unit 12 stores data representing an intermediate result of (2m + 1) times of matrix multiplication included in the equation (B12) during the generation process of the parity vector Y.

配列部20は、kビットの情報ベクトルXと、算出されたmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する。   The array unit 20 generates and outputs an n-bit encoded vector Z composed of the k-bit information vector X and the calculated m-bit parity vector Y.

(行列分解処理)
図3は、第1の実施形態の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 3 is a flowchart of the matrix decomposition process according to the first embodiment.

図3を参照して、検査行列分解部10は、検査行列Hを行列A、Bに分解する。検査行列分解部10は、行列Aを表わすデータを行列記憶部18に記憶させ、行列Bを表わすデータを中間結果記憶部12に記憶させる(ステップS101)。   Referring to FIG. 3, parity check matrix decomposition unit 10 decomposes parity check matrix H into matrices A and B. The parity check matrix decomposition unit 10 stores data representing the matrix A in the matrix storage unit 18 and stores data representing the matrix B in the intermediate result storage unit 12 (step S101).

次に、LU分解部14は、中間結果記憶部12から行列Bを表わすデータを読み出して、行列BをLU分解して、下三角行列Lを表わすデータと、上三角行列Uを表わすデータとを中間結果記憶部12に記憶させる(ステップS102)。   Next, the LU decomposition unit 14 reads data representing the matrix B from the intermediate result storage unit 12, LU decomposes the matrix B, and obtains data representing the lower triangular matrix L and data representing the upper triangular matrix U. The result is stored in the intermediate result storage unit 12 (step S102).

次に、基本行列分解部16は、中間結果記憶部12から上三角行列Uを表わすデータを読み出して、上三角行列Uを基本上三角行列U1、U2、・・・、Umの積に分解して、基本上三角行列U1、U2、・・・、Umを表わすデータを行列記憶部18に記憶させる。また、基本行列分解部16は、中間結果記憶部12から下三角行列Lを表わすデータを読み出して、下三角行列Lを基本下三角行列L1、L2、・・・、Lmの積に分解して、基本下三角行列L1、L2、・・・、Lmを表わすデータを行列記憶部18に記憶させる(ステップS103)。 Then, the base matrix decomposition unit 16, reads the data representative of the upper triangular matrix U from the intermediate result storage unit 12, the upper triangular matrix U base on triangular matrix U 1, U 2, · · ·, the U m product The matrix storage unit 18 stores data representing the upper triangular matrix U 1 , U 2 ,..., U m . Further, the base matrix decomposition unit 16 reads the data representing the lower triangular matrix L from the intermediate result storage unit 12, the basic lower triangular matrix the lower triangular matrix L L 1, L 2, · · ·, to the product of L m By decomposing, data representing the basic lower triangular matrices L 1 , L 2 ,..., L m is stored in the matrix storage unit 18 (step S103).

(符号化ベクトル生成処理)
図4は、第1の実施形態の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 4 is a flowchart of the encoded vector generation process according to the first embodiment.

図4を参照して、行列積計算制御部121は、行列記憶部18にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U2、U1の順となるように行列間の順序を設定する(ステップS201)。 Referring to FIG. 4, matrix product calculation control section 121 determines that the order of the matrices in which data is stored in matrix storage section 18 is A, L 1 , L 2 ,..., L m−1 , L from the top. The order between the matrices is set so as to be in the order of m , U m , U m−1 ,..., U 2 , U 1 (step S201).

次に、行列積計算制御部121は、制御変数iを1に設定する(ステップS202)。
行列積計算制御部121は、行列積計算部11を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部11は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部12に記憶させる(ステップS203)。
Next, the matrix product calculation control unit 121 sets the control variable i to 1 (step S202).
The matrix product calculation control unit 121 instructs the matrix product calculation unit 11 to read out the data representing the i-th (= 1) -th rank matrix A from the matrix storage unit 18, and the matrix A and the input information The product AX with the vector X is calculated. The matrix product calculation unit 11 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 12 (step S203).

次に、行列積計算制御部121は、制御変数iをインクリメントする(ステップS204)。   Next, the matrix product calculation control unit 121 increments the control variable i (step S204).

行列積計算制御部121は、制御変数iが(2m+1)未満の場合には(ステップS205でYES)、行列積計算部11を指示して、行列記憶部18から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部12に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部11は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部12内の中間結果Rを表わすデータを更新する(ステップS206)。その後、ステップS204からの処理が繰返される。 When the control variable i is less than (2m + 1) (YES in step S205), the matrix product calculation control unit 121 instructs the matrix product calculation unit 11 to read the matrix of the i-th rank from the matrix storage unit 18 causes read data representing the Mat i), the intermediate result storage section 12 intermediate results are stored in the by reading the data representing the R, matrices Mat i and an intermediate result product Mat i × R and R Let's calculate. The matrix product calculation unit 11 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 12 (step S206). Thereafter, the processing from step S204 is repeated.

制御変数iが(2m+1)となった場合には(ステップS205でNO)、行列積計算制御部121は、行列積計算部11を指示して、行列記憶部18から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部12に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部11は、乗算結果であるベクトルをパリティべクトルYとして出力する(ステップS207)。 When the control variable i becomes (2m + 1) (NO in step S205), the matrix product calculation control unit 121 instructs the matrix product calculation unit 11 to receive the i-th rank matrix (Mat) from the matrix storage unit 18. i ) and the data representing the intermediate result R stored in the intermediate result storage unit 12 are read, and the product Mat i × R of the matrix Mat i and the intermediate result R is calculated. . The matrix product calculation unit 11 outputs the vector that is the multiplication result as the parity vector Y (step S207).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS208)。   Thereafter, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S208).

(第1の実施形態の効果)
以上のように、第1の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(B12)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列Ui(i=1〜m)および基本下三角行列Li(i=1〜m)は非零要素数が少ない行列のため、式(B12)の演算の計算量が少ない。また、式(B12)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effects of the first embodiment)
As described above, according to the first embodiment, the parity vector Y is calculated according to the equation (B12) without performing backward substitution during the encoded vector generation process. Encoding can be performed. In particular, the basic upper triangular matrix U i (i = 1 to m) and the basic lower triangular matrix L i (i = 1 to m) are matrices with a small number of non-zero elements, so that the calculation amount of the expression (B12) is small. Few. Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the equation (B12), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列BのLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。   Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, LU decomposition of the matrix B, decomposition of the upper triangular matrix subjected to LU decomposition into a product of the basic upper triangular matrix Since it is only necessary to decompose the LU-decomposed lower triangular matrix into the product of the basic lower triangular matrix, a matrix necessary for generating the parity vector Y can be calculated with a small amount of calculation.

[第1の実施形態の変形例1]
第1の実施形態の変形例1の符号化器は、実数演算を行なう。
[Modification 1 of the first embodiment]
The encoder of the first modification of the first embodiment performs a real number operation.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(C1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X composed of k information bits x1, x2,..., Xk and performs a real number operation to thereby obtain m parity bits y1, y2 satisfying the following expression. ,..., Ym to generate a parity vector Y.
H (X, Y) T = 0 (C1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(C1)は、実数演算の場合には、次のように変形される。
BY=−AX ・・・(C2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (C1) is modified as follows in the case of real number calculation.
BY = −AX (C2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列BをLU分解すると、式(C2)は以下の式に変形される。
LUY=−AX ・・・(C3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(C3)より、列ベクトルYは、以下の式で表わされる。
Y=−U-1-1AX ・・・(C4)
When the matrix B is subjected to LU decomposition, the expression (C2) is transformed into the following expression.
LUY = −AX (C3)
Here, L is a lower triangular matrix and U is an upper triangular matrix.
From the equation (C3), the column vector Y is expressed by the following equation.
Y = −U −1 L −1 AX (C4)

上三角行列Uは、以下の式のように、基本上三角行列Ui(i=1〜m)の積に分解される。
U=Umm-1・・・U21 ・・・(C5)
式(C5)より、逆行列U-1は、以下の式で表わされる。
-1=U1 -12 -1・・・Um-1 -1m -1 ・・・(C6)
ここで、Ui -1は、対角項の要素が1であり、かつ非対角項の要素はUiの要素の符号を反転したものである。
The upper triangular matrix U is decomposed into products of basic upper triangular matrices U i (i = 1 to m) as in the following equation.
U = U m U m-1 ... U 2 U 1 (C5)
From the equation (C5), the inverse matrix U −1 is represented by the following equation.
U −1 = U 1 −1 U 2 −1 ... U m-1 −1 U m −1 (C6)
Here, U i −1 is obtained by inverting the sign of the element of U i in which the element of the diagonal term is 1 and the element of the off-diagonal term.

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L=L12・・・Lm-1m ・・・(C7)
式(C7)より、逆行列L-1は、以下の式で表わされる。
-1=Lm -1m-1 -1・・・L2 -11 -1 ・・・(C8)
ここで、Li -1は、対角項の要素が1であり、かつ非対角項の要素はLiの要素の符号を反転したものである。
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L = L 1 L 2 ... L m-1 L m (C7)
From the equation (C7), the inverse matrix L −1 is represented by the following equation.
L −1 = L m −1 L m−1 −1 ... L 2 −1 L 1 −1 ... (C8)
Here, L i −1 is obtained by inverting the sign of the element of L i in which the element of the diagonal term is 1 and the element of the non-diagonal term.

式(C6)および式(C8)によって、式(C4)は以下の式に変形される。
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(C9)
Expression (C4) is transformed into the following expression by Expression (C6) and Expression (C8).
Y = -U 1 -1 U 2 -1 ... U m-1 -1 U m -1 L m -1 L m-1 -1 ... L 2 -1 L 1 -1 AX ( C9)

式(C9)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z=(X,Y) ・・・(C10)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (C9) and the information vector X, the encoded vector Z is expressed by the following equation.
Z = (X, Y) (C10)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図5は、第1の実施形態の変形例1の符号化器の構成を表わす図である。
(Constitution)
FIG. 5 is a diagram illustrating a configuration of an encoder according to Modification 1 of the first embodiment.

図5を参照して、この符号化器2bは、第1の実施形態と同様の、検査行列分解部10と、LU分解部14と、基本行列分解部16と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 5, the encoder 2b includes a parity check matrix decomposition unit 10, an LU decomposition unit 14, a basic matrix decomposition unit 16, and an arrangement unit 20, which are the same as those in the first embodiment. Description of these will not be repeated.

また、符号化器2bは、行列記憶部28と、逆行列計算部23と、行列積計算部21と、中間結果記憶部22と、符号反転部99と、行列積計算制御部122とを備える。   The encoder 2 b includes a matrix storage unit 28, an inverse matrix calculation unit 23, a matrix product calculation unit 21, an intermediate result storage unit 22, a sign inversion unit 99, and a matrix product calculation control unit 122. .

逆行列計算部23は、中間結果記憶部22から基本上三角行列U1、U2、・・・、Umおよび基本下三角行列L1、L2、・・・、Lmを表わすデータを読み出して、行列U1、U2、・・・、Um、L1、L2、・・・、Lmの非対角項の要素の符号を反転することによって、行列U1、U2、・・・、Um、L1、L2、・・・、Lmの逆行列U1 -1、U2 -1、・・・、Um -1、L1 -1、L2 -1、・・・、Lm -1を算出し、逆行列U1 -1、U2 -1、・・・、Um -1、L1 -1、L2 -1、・・・、Lm -1を表わすデータを行列記憶部28に記憶させる。 Inverse matrix calculation unit 23, the basic upper triangular matrix U 1, U 2 from the intermediate result storage unit 22, · · ·, U m and the basic lower triangular matrix L 1, L 2, · · ·, the data representing the L m read out, matrices U 1, U 2, ···, U m, L 1, L 2, ···, by reversing the sign of the unpaired corner section elements of L m, matrices U 1, U 2 ,..., U m , L 1 , L 2 ,..., L m inverse matrices U 1 −1 , U 2 −1 ,..., U m −1 , L 1 −1 , L 2 − 1 ,..., L m −1 is calculated and the inverse matrices U 1 −1 , U 2 −1 ,..., U m −1 , L 1 −1 , L 2 −1 ,. Data representing m −1 is stored in the matrix storage unit 28.

たとえば、行列U4が式(9)で表わされる場合には、逆行列U4 -1は、式(10)で表わされる。

Figure 0004821684
For example, when the matrix U 4 is represented by Expression (9), the inverse matrix U 4 −1 is represented by Expression (10).
Figure 0004821684

たとえば、行列L4が式(11)で表わされる場合には、逆行列L4 -1は、式(12)で表わされる。

Figure 0004821684
For example, when the matrix L 4 is represented by Expression (11), the inverse matrix L 4 −1 is represented by Expression (12).
Figure 0004821684

行列記憶部28は、基本上三角行列の逆行列U1 -1、U2 -1、・・・、Um -1を表わすデータ、基本下三角行列の逆行列Lm -1、Lm-1 -1、・・・、L1 -1を表わすデータ、および行列Aを表わすデータを記憶する。 The matrix storage unit 28 includes data representing the inverse matrices U 1 −1 , U 2 −1 ,..., U m −1 of the basic upper triangular matrix, and the inverse matrices L m −1 and L m− of the basic lower triangular matrix. Stores data representing 1 −1 ,..., L 1 −1 and data representing the matrix A.

行列積計算部21は、加算器27および乗算器29を備える。行列積計算部21は、パリティベクトルYを算出するために、式(C9)に含まれる(2m+1)回の行列乗算を行列積計算制御部122に指示された順序で実行する。行列積計算部21は、入力される情報ベクトルX、行列記憶部28内の行列U1 -1、U2 -1、・・・、Um -1、Lm -1、Lm-1 -1、・・・、L1 -1、Aを表わすデータ、および中間結果記憶部22内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部21は、式(C9)に含まれる(2m+1)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部22に記憶させる。 The matrix product calculation unit 21 includes an adder 27 and a multiplier 29. In order to calculate the parity vector Y, the matrix product calculation unit 21 performs (2m + 1) times of matrix multiplication included in the formula (C9) in the order instructed by the matrix product calculation control unit 122. Matrix product calculator 21, the information vector X is input, the matrix U 1 -1 in the matrix storage unit 28, U 2 -1, ···, U m -1, L m -1, L m-1 - 1 ,..., L 1 −1 , data representing A, and data representing intermediate results in the intermediate result storage unit 22 are used to perform each matrix multiplication. The matrix product calculation unit 21 stores data representing the calculation result in the intermediate result storage unit 22 as data representing the intermediate result until (2m + 1) times of matrix multiplications included in the formula (C9) is completed.

行列積計算制御部122は、パリティベクトルYを算出するために、行列記憶部28にデータが記憶されている行列の順序が先頭からA、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、U2 -1、U1 -1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部21を制御する。また、行列積計算制御部122は、式(C9)に含まれる(2m+1)回の行列乗算の終了後に、行列積計算部21から計算結果であるベクトルY′(=U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX)を符号反転部99へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 122 determines that the order of the matrices in which data is stored in the matrix storage unit 28 is A, L 1 −1 , L 2 −1 ,. Set the order between the matrices so that L m-1 −1 , L m −1 , U m −1 , U m−1 −1 ,..., U 2 −1 , U 1 −1 are in this order. The matrix product calculation unit 21 is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit 122, after the completion of (2m + 1) matrix multiplications included in the formula (C9), the vector Y ′ (= U 1 −1 U 2 −) as a calculation result from the matrix product calculation unit 21. 1 ... U m−1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX) is output to the sign inversion unit 99.

中間結果記憶部22は、式(C9)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部22は、パリティベクトルYの生成処理時に、式(C9)に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 22 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (C9). Further, the intermediate result storage unit 22 stores data representing an intermediate result of (2m + 1) times of matrix multiplication included in the equation (C9) during the generation process of the parity vector Y.

符号反転部99は、ベクトルY′の符号を反転して(つまり、ベクトルの各要素の符号を反転して)、それをパリティベクトルYとして出力する。   The sign inversion unit 99 inverts the sign of the vector Y ′ (that is, inverts the sign of each element of the vector) and outputs it as the parity vector Y.

(行列分解処理)
図6は、第1の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 6 is a flowchart of the matrix decomposition process according to Modification 1 of the first embodiment.

図6を参照して、検査行列分解部10は、検査行列Hを行列A、Bに分解する。検査行列分解部10は、行列Aを表わすデータを行列記憶部28に記憶させ、行列Bを表わすデータを中間結果記憶部22に記憶させる(ステップS301)。   Referring to FIG. 6, parity check matrix decomposition unit 10 decomposes parity check matrix H into matrices A and B. The parity check matrix decomposition unit 10 stores data representing the matrix A in the matrix storage unit 28, and stores data representing the matrix B in the intermediate result storage unit 22 (step S301).

次に、LU分解部14は、中間結果記憶部22から行列Bを表わすデータを読み出して、行列BをLU分解して、下三角行列Lを表わすデータと、上三角行列Uを表わすデータとを中間結果記憶部22に記憶させる(ステップS302)。   Next, the LU decomposition unit 14 reads the data representing the matrix B from the intermediate result storage unit 22, performs LU decomposition on the matrix B, and obtains data representing the lower triangular matrix L and data representing the upper triangular matrix U. The result is stored in the intermediate result storage unit 22 (step S302).

次に、基本行列分解部16は、中間結果記憶部22から上三角行列Uを表わすデータを読み出して、上三角行列Uを基本上三角行列U1、U2、・・・、Umの積に分解して、基本上三角行列U1、U2、・・・、Umを表わすデータを中間結果記憶部22に記憶させる。また、基本行列分解部16は、中間結果記憶部22から下三角行列Lを表わすデータを読み出して、下三角行列Lを基本下三角行列L1、L2、・・・、Lmの積に分解して、基本下三角行列L1、L2、・・・、Lmを表わすデータを中間結果記憶部22に記憶させる(ステップS303)。 Then, the base matrix decomposition unit 16, reads the data representative of the upper triangular matrix U from the intermediate result storage unit 22, the upper triangular matrix U base on triangular matrix U 1, U 2, · · ·, the U m product And the data representing the basic triangular matrix U 1 , U 2 ,..., U m are stored in the intermediate result storage unit 22. Further, the base matrix decomposition unit 16 reads the data representing the lower triangular matrix L from the intermediate result storage unit 22, the basic lower triangular matrix the lower triangular matrix L L 1, L 2, · · ·, to the product of L m decompose, basic lower triangular matrix L 1, L 2, · · ·, and stores the data representing the L m in the intermediate result storage unit 22 (step S303).

逆行列計算部23は、中間結果記憶部22から基本上三角行列U1、U2、・・・、Umおよび基本下三角行列L1、L2、・・・、Lmを表わすデータを読み出して、行列U1、U2、・・・、Um、L1、L2、・・・、Lmの非対角項の要素の符号を反転することによって、行列U1、U2、・・・、Um、L1、L2、・・・、Lmの逆行列U1 -1、U2 -1、・・・、Um -1、L1 -1、L2 -1、・・・、Lm -1を算出し、逆行列U1 -1、U2 -1、・・・、Um -1、L1 -1、L2 -1、・・・、Lm -1を表わすデータを行列記憶部28に記憶させる(ステップS304)。 Inverse matrix calculation unit 23, the basic upper triangular matrix U 1, U 2 from the intermediate result storage unit 22, · · ·, U m and the basic lower triangular matrix L 1, L 2, · · ·, the data representing the L m read out, matrices U 1, U 2, ···, U m, L 1, L 2, ···, by reversing the sign of the unpaired corner section elements of L m, matrices U 1, U 2 ,..., U m , L 1 , L 2 ,..., L m inverse matrices U 1 −1 , U 2 −1 ,..., U m −1 , L 1 −1 , L 2 − 1 ,..., L m −1 is calculated and the inverse matrices U 1 −1 , U 2 −1 ,..., U m −1 , L 1 −1 , L 2 −1 ,. Data representing m −1 is stored in the matrix storage unit 28 (step S304).

(符号化ベクトル生成処理)
図7は、第1の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 7 is a flowchart of an encoded vector generation process according to Modification 1 of the first embodiment.

図7を参照して、行列積計算制御部122は、行列記憶部28にデータが記憶されている行列の順序が先頭からA、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、U2 -1、U1 -1の順となるように行列間の順序を設定する(ステップS401)。 Referring to FIG. 7, the matrix product calculation control unit 122 determines that the order of the matrices in which data is stored in the matrix storage unit 28 is A, L 1 −1 , L 2 −1 ,. −1 −1 , L m −1 , U m −1 , U m−1 −1 ,..., U 2 −1 , U 1 −1 are set in an order between the matrices (step S401).

次に、行列積計算制御部122は、制御変数iを1に設定する(ステップS402)。
行列積計算制御部122は、行列積計算部21を指示して、行列記憶部28から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部21は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部22に記憶させる(ステップS403)。
Next, the matrix product calculation control unit 122 sets the control variable i to 1 (step S402).
The matrix product calculation control unit 122 instructs the matrix product calculation unit 21 to read out the data representing the i-th (= 1) -th rank matrix A from the matrix storage unit 28, and the matrix A and the input information The product AX with the vector X is calculated. The matrix product calculation unit 21 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 22 (step S403).

次に、行列積計算制御部122は、制御変数iをインクリメントする(ステップS404)。   Next, the matrix product calculation control unit 122 increments the control variable i (step S404).

行列積計算制御部122は、制御変数iが(2m+1)未満の場合には(ステップS405でYES)、行列積計算部21を指示して、行列記憶部28から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部22に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部21は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部22内の中間結果Rを表わすデータを更新する(ステップS406)。その後、ステップS404からの処理が繰返される。 If the control variable i is less than (2m + 1) (YES in step S405), the matrix product calculation control unit 122 instructs the matrix product calculation unit 21 to read the i-th rank matrix from the matrix storage unit 28. causes read data representing the Mat i), the intermediate result storage section 22 intermediate results are stored in the by reading the data representing the R, matrices Mat i and an intermediate result product Mat i × R and R Let's calculate. The matrix product calculation unit 21 sets the vector that is the multiplication result as a new intermediate result R, and updates data representing the intermediate result R in the intermediate result storage unit 22 (step S406). Thereafter, the processing from step S404 is repeated.

制御変数iが(2m+1)となった場合には(ステップS405でNO)、行列積計算制御部122は、行列積計算部21を指示して、行列記憶部28から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部22に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部21は、乗算結果であるベクトルY′を符号反転部99に出力する。符号反転部99は、ベクトルY′の符号を反転したものをパリティべクトルYとして出力する(ステップS407)。 When the control variable i becomes (2m + 1) (NO in step S405), the matrix product calculation control unit 122 instructs the matrix product calculation unit 21 to receive the i-th rank matrix (Mat) from the matrix storage unit 28. i ) and data representing the intermediate result R stored in the intermediate result storage unit 22 are read, and a product Mat i × R of the matrix Mat i and the intermediate result R is calculated. . The matrix product calculation unit 21 outputs a vector Y ′ as a multiplication result to the sign inversion unit 99. The sign reversing unit 99 outputs the inverted vector Y ′ as the parity vector Y (step S407).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS408)。   Thereafter, the arrangement unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S408).

(第1の実施形態の変形例1の効果)
以上のように、第1の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(C9)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列の逆行列Ui -1(i=1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)は非零要素数が少ない行列のため、式(C9)の演算の計算量が少ない。また、式(C9)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effects of Modification 1 of First Embodiment)
As described above, according to the first modification of the first embodiment, the parity vector Y is calculated according to the equation (C9) without performing backward substitution at the time of the encoded vector generation process. The information vector X can be encoded. In particular, the inverse matrix U i −1 (i = 1 to m) of the basic upper triangular matrix and the inverse matrix L i −1 (i = 1 to m) of the basic lower triangular matrix are matrices with a small number of nonzero elements. There is little calculation amount of the calculation of Formula (C9). Further, since the parity vector Y is calculated by sequentially executing from the matrix multiplication on the right side of the equation (C9), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列BのLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、基本上三角行列および基本下三角行列の非対角項の符号の反転を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。   Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, LU decomposition of the matrix B, decomposition of the upper triangular matrix subjected to LU decomposition into a product of the basic upper triangular matrix Since the decomposition of the LU-decomposed lower triangular matrix into the product of the basic lower triangular matrix and the inversion of the signs of the non-diagonal terms of the basic upper triangular matrix and the basic lower triangular matrix, the parity vector Y can be performed with a small amount of calculation. The matrix required to generate can be calculated.

[第2の実施形態]
第2の実施形態の符号化器は、2を法とする演算を行なう。
[Second Embodiment]
The encoder of the second embodiment performs an operation modulo 2.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(D1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X consisting of k information bits x1, x2,..., Xk and performs an operation modulo 2 so as to satisfy m A parity vector Y composed of bits y1, y2,.
H (X, Y) T ≡0 (D1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(D1)は、2を法とする演算の場合には、次のように変形される。
BY≡AX ・・・(D2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (D1) is modified as follows in the case of an operation modulo 2.
BY≡AX (D2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列Bに対して、以下のようにオーダリングを行なうとする。
まず、行列Bの2つの行を交換するとすると、式(D2)は以下のように変形される。
1BY≡P1AX ・・・(D3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
Assume that ordering is performed on the matrix B as follows.
First, when two rows of the matrix B are exchanged, the equation (D2) is transformed as follows.
P 1 BY≡P 1 AX (D3)
Here, P 1 is a transformation matrix representing the first row replacement. In the case of converting i row and j row, P 1 is a matrix in which the i row and j row of the unit matrix E are exchanged.

さらに、行列Bの2つの列を交換すると、式(D3)は以下のように変形される。
1BQ11 -1Y≡P1AX ・・・(D4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
Furthermore, when the two columns of the matrix B are exchanged, the equation (D3) is transformed as follows.
P 1 BQ 1 Q 1 -1 Y≡P 1 AX (D4)
Here, Q 1 is a transformation matrix representing the first column replacement. When converting the i column and the j column, Q 1 is a matrix in which the i column and the j column of the unit matrix E are exchanged.

以下のように新たな行列を定義する。
(1)≡P1BQ1 ・・・(D5)
(1)≡P1A ・・・(D6)
式(D5)および式(D6)により、式(D4)は以下の式で表わされる。
(1)1 -1Y≡A(1)X ・・・(D7)
Define a new matrix as follows:
B (1) ≡ P 1 BQ 1 (D5)
A (1) ≡ P 1 A (D6)
From formula (D5) and formula (D6), formula (D4) is represented by the following formula.
B (1) Q 1 -1 Y≡A (1) X (D7)

さらに、行列B(1)の2つの行を交換するとすると、式(D7)は以下のように変形される。
2(1)1 -1Y≡P2(1)X ・・・(D8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
Further, when two rows of the matrix B (1) are exchanged, the equation (D7) is transformed as follows.
P 2 B (1) Q 1 −1 Y≡P 2 A (1) X (D8)
Here, P 2 is a transformation matrix representing the second row replacement.

さらに、行列B(1)の2つの列を交換すると、式(D8)は以下のように変形される。
2(1)22 -11 -1Y≡P2(1)X ・・・(D9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
Further, when the two columns of the matrix B (1) are exchanged, the equation (D8) is transformed as follows.
P 2 B (1) Q 2 Q 2 -1 Q 1 -1 Y≡P 2 A (1) X (D9)
Here, Q 2 is a transformation matrix representing the second column replacement.

以下のように新たな行列を定義する。
(2)≡P2(1)2 ・・・(D10)
(2)≡P2(1) ・・・(D11)
式(D10)および式(D11)により、式(D9)は以下の式で表わされる。
(2)2 -11 -1Y≡A(2)X ・・・(D12)
Define a new matrix as follows:
B (2) ≡ P 2 B (1) Q 2 (D10)
A (2) ≡ P 2 A (1) (D11)
From formula (D10) and formula (D11), formula (D9) is represented by the following formula.
B (2) Q 2 -1 Q 1 -1 Y≡A (2) X (D12)

同様にして、行列Bに対して、第u回(u≧1)だけ行の入れ替えおよび第v(v≧1)だげ列の入れ替えを行なう。第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を定義する。
B′≡Pu・・・P21BQ12・・・Qv ・・・(D13)
(u)≡Pu・・・P21A ・・・(D14)
(v)≡Q12・・・Qv ・・・(D15)
式(D13)、式(D14)および式(D15)により、以下の式が成り立つ。
B′E(v)-1Y≡A(u)X ・・・(D16)
Similarly, for the matrix B, the row replacement and the v-th (v ≧ 1) extra column are performed for the u-th (u ≧ 1). Assuming that the matrix representing the s-th (1 ≦ s ≦ u) row replacement is P s and the matrix representing the s-th (1 ≦ s ≦ v) column replacement is Q s , the following new matrix Define
B′≡P u ... P 2 P 1 BQ 1 Q 2 ... Q v (D13)
A (u) ≡P u ... P 2 P 1 A (D14)
E (v) ≡Q 1 Q 2 ... Q v ... (D15)
The following expressions are established by Expression (D13), Expression (D14), and Expression (D15).
B′E (v) -1 Y≡A (u) X (D16)

行列B′をLU分解すると、式(D16)は以下の式に変形される。
L′U′E(v)-1Y≡A(u)X ・・・(D17)
ここで、L′は下三角行列であり、U′は上三角行列である。
When the matrix B ′ is subjected to LU decomposition, the equation (D16) is transformed into the following equation.
L′ U′E (v) -1 Y≡A (u) X (D17)
Here, L ′ is a lower triangular matrix and U ′ is an upper triangular matrix.

式(D17)より、列ベクトルYは、以下の式で表わされる。
Y≡E(v)U′-1L′-1(u)X ・・・(D18)
From the equation (D17), the column vector Y is expressed by the following equation.
Y≡E (v) U ′ −1 L ′ −1 A (u) X (D18)

上三角行列U′は、以下の式のように、基本上三角行列U′i(i=1〜m)の積に分解される。
U′≡U′mU′m-1・・・U′2U′1 ・・・(D19)
式(D19)より、逆行列U′-1は、以下の式で表わされる。
U′-1≡U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(D20)
The upper triangular matrix U ′ is decomposed into products of basic upper triangular matrices U ′ i (i = 1 to m) as in the following equation.
U'≡U 'm U' m-1 ··· U '2 U' 1 ··· (D19)
From the equation (D19), the inverse matrix U ′ −1 is expressed by the following equation.
U ' -1 ≡ U' 1 -1 U ' 2 -1 ... U' m-1 -1 U ' m -1 ... (D20)

下三角行列L′は、以下の式のように、基本下三角行列L′i(i=1〜m)の積に分解される。
L′≡L′1L′2・・・L′m-1L′m ・・・(D21)
式(D21)より、逆行列L′-1は、以下の式で表わされる。
L′-1≡L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(D22)
The lower triangular matrix L ′ is decomposed into products of basic lower triangular matrices L ′ i (i = 1 to m) as in the following equation.
L′ ≡L ′ 1 L ′ 2 ... L ′ m−1 L ′ m (D21)
From the equation (D21), the inverse matrix L ′ −1 is expressed by the following equation.
L ′ −1 ≡L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 (D22)

式(D20)および式(D22)によって、式(D18)は以下の式に変形される。
Y≡E(v)(U′1 -1U′2 -1・・・U′m-1 -1U′m -1)(L′m -1L′m-1 -1・・・L′2 -1L′1 -1)A(u)X ・・・(D23)
Expression (D18) is transformed into the following expression by Expression (D20) and Expression (D22).
Y≡E (v) (U ′ 1 −1 U ′ 2 −1 ... U ′ m-1 −1 U ′ m −1 ) (L ′ m −1 L ′ m−1 −1 ... L ' 2 -1 L' 1 -1 ) A (u) X (D23)

ところで、2を法とする演算の場合には、基本上三角行列U′i(i=1〜m)、基本下三角行列L′i(i=1〜m)は、以下のような性質を有する。
U′i≡(U′i-1 ・・・(D24)
L′i≡(L′i-1 ・・・(D25)
式(D24)および式(D25)によって、式(D23)は以下の式に変形される。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(D26)
By the way, in the case of operation modulo 2, the basic upper triangular matrix U ′ i (i = 1 to m) and the basic lower triangular matrix L ′ i (i = 1 to m) have the following properties. Have.
U ′ i ≡ (U ′ i ) −1 (D24)
L ′ i ≡ (L ′ i ) −1 (D25)
Expression (D23) is transformed into the following expression by Expression (D24) and Expression (D25).
Y≡E (v) U ' 1 U' 2 ... U ' m-1 U' m L ' m L' m-1 ... L ' 2 L' 1 A (u) X (D26 )

式(D26)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z≡(X,Y) ・・・(D27)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (D26) and the information vector X, the encoded vector Z is expressed by the following equation.
Z≡ (X, Y) (D27)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図8は、第2の実施形態の符号化器の構成を表わす図である。
(Constitution)
FIG. 8 is a diagram illustrating the configuration of the encoder according to the second embodiment.

図8を参照して、この符号化器2cは、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、中間結果記憶部32と、行列記憶部38と、行列積計算部31と、配列部20と、行列積計算制御部123とを備える。   Referring to FIG. 8, the encoder 2c includes a parity check matrix decomposition unit 30, an ordering unit 40, an LU decomposition unit 34, a basic matrix decomposition unit 36, an intermediate result storage unit 32, and a matrix storage unit 38. A matrix product calculation unit 31, an array unit 20, and a matrix product calculation control unit 123.

検査行列分解部30は、検査行列Hを行列A、Bに分解して、行列Aを表わすデータおよび行列Bを表わすデータを中間結果記憶部32に記憶させる。   The parity check matrix decomposition unit 30 decomposes the parity check matrix H into matrices A and B, and causes the intermediate result storage unit 32 to store data representing the matrix A and data representing the matrix B.

オーダリング部40は、LU分解によって得られる上三角行列、下三角行列の非零要素数が少なくなるように、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なって、行列B′を生成する。オーダリングの手法としては、たとえば、最小次数順序法を用いることができる。また、オーダリング部40は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なって行列A(u)を生成し、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なって、行列E(v)を生成する。 The ordering unit 40 performs u-th (u ≧ 1) row replacement and v-th time with respect to the matrix B so that the number of non-zero elements of the upper triangular matrix and the lower triangular matrix obtained by LU decomposition is reduced. The matrix B ′ is generated by exchanging columns (v ≧ 1). As an ordering method, for example, a minimum order method can be used. Further, the ordering unit 40 performs the same replacement as the u-time replacement of the matrix B with respect to the matrix A to generate the matrix A (u), and generates v times for the matrix B with respect to the unit matrix E. The matrix E (v) is generated by performing the same replacement as the replacement of the columns.

LU分解部34は、加算器33およ乗算器35を備える。LU分解部34は、Crout(クラウト)のアルゴリズムにしたがって、行列B′をLU分解して、下三角行列L′と、上三角行列U′とを生成する。   The LU decomposition unit 34 includes an adder 33 and a multiplier 35. The LU decomposition unit 34 performs LU decomposition on the matrix B ′ according to the Crouto algorithm to generate a lower triangular matrix L ′ and an upper triangular matrix U ′.

基本行列分解部36は、上三角行列U′を式(D19)のように、基本上三角行列U′i(i=1〜m)の積に分解する。また、基本行列分解部36は、下三角行列L′を式(D21)のように、基本下三角行列L′i(i=1〜m)の積に分解する。 The basic matrix decomposition unit 36 decomposes the upper triangular matrix U ′ into a product of the basic upper triangular matrix U ′ i (i = 1 to m) as shown in Expression (D19). Further, the basic matrix decomposition unit 36 decomposes the lower triangular matrix L ′ into a product of the basic lower triangular matrix L ′ i (i = 1 to m) as shown in Expression (D21).

行列記憶部38は、基本上三角行列U′1、U′2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列A(u)、E(v)を表わすデータを記憶する。 Matrix storage unit 38, the basic upper triangular matrix U '1, U' 2, ···, U ' data representing the m, basic lower triangular matrix L' m, L 'm- 1, ···, L' 1 And data representing the matrices A (u) and E (v) are stored.

行列積計算部31は、加算器37および乗算器39を備える。行列積計算部31は、パリティベクトルYを算出するために、式(D26)に含まれる(2m+2)回の行列乗算を行列積計算制御部123に指示された順序で実行する。行列積計算部31は、入力される情報ベクトルX、行列記憶部38内の行列U′1、U′2、・・・、U′m、L′m、L′m-1、・・・、L′1、A(u)、E(v)を表わすデータ、および中間結果記憶部32内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部31は、式(D26)に含まれる(2m+2)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部32に記憶させる。 The matrix product calculation unit 31 includes an adder 37 and a multiplier 39. In order to calculate the parity vector Y, the matrix product calculation unit 31 performs (2m + 2) times of matrix multiplications included in the equation (D26) in the order instructed by the matrix product calculation control unit 123. The matrix product calculation unit 31 receives the input information vector X, the matrices U ′ 1 , U ′ 2 ,..., U ′ m , L ′ m , L ′ m−1 ,. , L ′ 1 , A (u) , E (v) , and data representing the intermediate results in the intermediate result storage unit 32 are used to perform each matrix multiplication. The matrix product calculation unit 31 stores data representing the calculation result in the intermediate result storage unit 32 as data representing the intermediate result until (2m + 2) times of matrix multiplications included in the equation (D26) is completed.

行列積計算制御部123は、パリティベクトルYを算出するために、行列記憶部38にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m、U′m、U′m-1、・・・、U′1、E(v)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部31を制御する。また、行列積計算制御部123は、式(D26)に含まれる(2m+2)回の行列乗算の終了後に、行列積計算部31から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 123 sets the order of the matrices in which the data is stored in the matrix storage unit 38 from the head A (u) , L ′ 1 , L ′ 2 ,. , L ′ m , U ′ m , U ′ m−1 ,..., U ′ 1 , E (v) are set in order, and matrix multiplication is performed in this order. The matrix product calculation unit 31 is controlled. In addition, the matrix product calculation control unit 123 causes the matrix product calculation unit 31 to output the parity vector Y as a calculation result after the (2m + 2) times of matrix multiplication included in the equation (D26).

中間結果記憶部32は、式(D26)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部32は、パリティベクトルYの生成処理時に、式(D26)に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 32 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the equation (D26). Further, the intermediate result storage unit 32 stores data representing an intermediate result of (2m + 2) times of matrix multiplication included in the equation (D26) during the generation process of the parity vector Y.

配列部20は、kビットの情報ベクトルXと、算出されたmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する。   The array unit 20 generates and outputs an n-bit encoded vector Z composed of the k-bit information vector X and the calculated m-bit parity vector Y.

(行列分解処理)
図9は、第2の実施形態の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 9 is a flowchart of matrix decomposition processing according to the second embodiment.

図9を参照して、検査行列分解部30は、検査行列Hを行列A、Bに分解する。検査行列分解部30は、行列Aを表わすデータおよび行列Bを表わすデータを中間結果記憶部32に記憶させる(ステップS501)。   Referring to FIG. 9, parity check matrix decomposition unit 30 decomposes parity check matrix H into matrices A and B. The parity check matrix decomposition unit 30 stores data representing the matrix A and data representing the matrix B in the intermediate result storage unit 32 (step S501).

オーダリング部40は、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なう。オーダリング部40は、第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を生成する。
B′≡Pu・・・P21BQ12・・・Qv ・・・(D13)
(u)≡Pu・・・P21A ・・・(D14)
(v)≡Q12・・・Qv ・・・(D15)
つまり、行列B′は、行列Bに対して、u回(u≧1)の行の入れ替え、およびv回(v≧1)の列の入れ替えを行なったものである。行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものである。行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものである。オーダリング部40は、行列A(u)、E(v)を表わすデータを行列記憶部38に記憶させ、行列B′を表わすデータを中間結果記憶部32に記憶させる(ステップS502)。
The ordering unit 40 performs u-th (u ≧ 1) row replacement and v-th (v ≧ 1) column replacement for the matrix B. The ordering unit 40 uses P s as a matrix representing the s-th (1 ≦ s ≦ u) row replacement, Q s as a matrix representing the s-th (1 ≦ s ≦ v) column replacement, and A new matrix is generated as follows.
B′≡P u ... P 2 P 1 BQ 1 Q 2 ... Q v (D13)
A (u) ≡P u ... P 2 P 1 A (D14)
E (v) ≡Q 1 Q 2 ... Q v ... (D15)
That is, the matrix B ′ is obtained by replacing the matrix B with u times (u ≧ 1) and v times (v ≧ 1). The matrix A (u) is obtained by performing the same replacement on the matrix A as the u-time replacement of rows for the matrix B. The matrix E (v) is obtained by performing the same replacement as the unit matrix E with v column replacements for the matrix B. The ordering unit 40 stores data representing the matrices A (u) and E (v) in the matrix storage unit 38 and stores data representing the matrix B ′ in the intermediate result storage unit 32 (step S502).

次に、LU分解部34は、中間結果記憶部32から行列B′を表わすデータを読み出して、行列B′をLU分解して、下三角行列L′を表わすデータと、上三角行列U′を表わすデータとを中間結果記憶部32に記憶させる(ステップS503)。   Next, the LU decomposition unit 34 reads the data representing the matrix B ′ from the intermediate result storage unit 32, performs LU decomposition on the matrix B ′, and converts the data representing the lower triangular matrix L ′ and the upper triangular matrix U ′. The data to be represented is stored in the intermediate result storage unit 32 (step S503).

次に、基本行列分解部36は、中間結果記憶部32から上三角行列U′を表わすデータを読み出して、上三角行列U′を基本上三角行列U′1、U′2、・・・、U′mの積に分解して、基本上三角行列U′1、U′2、・・・、U′mを表わすデータを行列記憶部38に記憶させる。また、基本行列分解部36は、中間結果記憶部32から下三角行列L′を表わすデータを読み出して、下三角行列Lを基本下三角行列L′1、L′2、・・・、L′mの積に分解して、基本下三角行列L′1、L′2、・・・、L′mを表わすデータを行列記憶部38に記憶させる(ステップS504)。 Next, the basic matrix decomposition unit 36 reads data representing the upper triangular matrix U ′ from the intermediate result storage unit 32, and converts the upper triangular matrix U ′ into the basic upper triangular matrices U ′ 1 , U ′ 2 ,. 'is decomposed into a product of m, the basic upper triangular matrix U' U 1, U '2 , ···, U' and stores the data representing the m in the matrix storage unit 38. The basic matrix decomposition unit 36 reads data representing the lower triangular matrix L ′ from the intermediate result storage unit 32, and converts the lower triangular matrix L into the basic lower triangular matrices L ′ 1 , L ′ 2 ,. The matrix storage unit 38 stores the data representing the basic lower triangular matrices L ′ 1 , L ′ 2 ,..., L ′ m by dividing into m products (step S504).

(符号化ベクトル生成処理)
図10は、第2の実施形態の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 10 is a flowchart of the encoded vector generation process according to the second embodiment.

図10を参照して、行列積計算制御部123は、行列記憶部38にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m、U′m、U′m-1、・・・、U′1、E(v)の順となるように行列間の順序を設定する(ステップS601)。 Referring to FIG. 10, the matrix product calculation control unit 123 determines that the order of the matrices in which data is stored in the matrix storage unit 38 is A (u) , L ′ 1 , L ′ 2 ,. 'm, U' m, U 'm-1, ···, U' 1, sets the order between the matrix such that the order of E (v) (step S601).

次に、行列積計算制御部123は、制御変数iを1に設定する(ステップS602)。
行列積計算制御部123は、行列積計算部31を指示して、行列記憶部38から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部31は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部32に記憶させる(ステップS603)。
Next, the matrix product calculation control unit 123 sets the control variable i to 1 (step S602).
The matrix product calculation control unit 123 instructs the matrix product calculation unit 31 to read out the data representing the i th (= 1) -th order matrix A (u) from the matrix storage unit 38, and the matrix A (u) And the product A (u) X of the input information vector X is calculated. The matrix product calculation unit 31 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 32 (step S603).

次に、行列積計算制御部123は、制御変数iをインクリメントする(ステップS604)。   Next, the matrix product calculation control unit 123 increments the control variable i (step S604).

行列積計算制御部123は、制御変数iが(2m+2)未満の場合には(ステップS605でYES)、行列積計算部31を指示して、行列記憶部38から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部32に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部31は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部32内の中間結果Rを表わすデータを更新する(ステップS606)。その後、ステップS604からの処理が繰返される。 When the control variable i is less than (2m + 2) (YES in step S605), the matrix product calculation control unit 123 instructs the matrix product calculation unit 31 to read the i-th rank matrix (the matrix) from the matrix storage unit 38. causes read data representing the Mat i), the intermediate result storage unit 32 intermediate results are stored in the by reading the data representing the R, matrices Mat i and an intermediate result product Mat i × R and R Let's calculate. The matrix product calculation unit 31 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 32 (step S606). Thereafter, the processing from step S604 is repeated.

制御変数iが(2m+2)となった場合には(ステップS605でNO)、行列積計算制御部123は、行列積計算部31を指示して、行列記憶部38から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部32に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部31は、乗算結果であるベクトルをパリティべクトルYとして出力する(ステップS607)。 When the control variable i becomes (2m + 2) (NO in step S605), the matrix product calculation control unit 123 instructs the matrix product calculation unit 31 to receive the i-th rank matrix (Mat) from the matrix storage unit 38. i ) and the data representing the intermediate result R stored in the intermediate result storage unit 32 are read, and the product Mat i × R of the matrix Mat i and the intermediate result R is calculated. . The matrix product calculation unit 31 outputs the vector that is the multiplication result as the parity vector Y (step S607).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS608)。   Thereafter, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S608).

(第2の実施形態の効果)
以上のように、第2の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(D26)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列U′i(i=1〜m)および基本下三角行列L′i(i=1〜m)は、第1の実施形態の基本上三角行列Ui(i=1〜m)および基本下三角行列Li(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(D26)の演算の計算量を式(B12)よりもさらに少なくできる。また、式(D26)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effect of 2nd Embodiment)
As described above, according to the second embodiment, since the parity vector Y is calculated according to the equation (D26) without performing backward substitution in the encoded vector generation process, the information vector X can be calculated with a small amount of calculation. Encoding can be performed. In particular, since the matrix B is ordered, the basic upper triangular matrix U ′ i (i = 1 to m) and the basic lower triangular matrix L ′ i (i = 1 to m) are the basic upper triangles of the first embodiment. The matrix U i (i = 1 to m) and the basic lower triangular matrix L i (i = 1 to m) have a smaller number of non-zero elements, and the calculation amount of the expression (D26) is expressed by the expression (B12). Can be even less. Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the equation (D26), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列Bのオーダリングによる行列B′、A(u)、E(v)の生成、行列B′のLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。 Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, generation of matrices B ′, A (u) and E (v) by ordering of the matrix B, matrix B LU decomposition, LU decomposition of upper triangular matrix into basic upper triangular matrix product, and LU decomposition of lower triangular matrix into basic lower triangular matrix product. A matrix necessary for generating the parity vector Y can be calculated.

[第2の実施形態の変形例1]
第2の実施形態の変形例1の符号化器は、実数演算を行なう。
[Modification 1 of Second Embodiment]
The encoder according to the first modification of the second embodiment performs a real number operation.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(E1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X composed of k information bits x1, x2,..., Xk and performs a real number operation to thereby obtain m parity bits y1, y2 satisfying the following expression. ,..., Ym to generate a parity vector Y.
H (X, Y) T = 0 (E1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(E1)は、実数演算の場合には、次のように変形される。
BY=−AX ・・・(E2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (E1) is modified as follows in the case of real number calculation.
BY = −AX (E2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列Bに対して、以下のようにオーダリングを行なうとする。
まず、行列Bの2つの行を交換するとすると、式(E2)は以下のように変形される。
1BY=P1AX ・・・(E3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
Assume that ordering is performed on the matrix B as follows.
First, when two rows of the matrix B are exchanged, the equation (E2) is transformed as follows.
P 1 BY = P 1 AX (E3)
Here, P 1 is a transformation matrix representing the first row replacement. In the case of converting i row and j row, P 1 is a matrix in which the i row and j row of the unit matrix E are exchanged.

さらに、行列Bの2つの列を交換すると、式(E3)は以下のように変形される。
1BQ11 -1Y=−P1AX ・・・(E4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
Further, when the two columns of the matrix B are exchanged, the equation (E3) is transformed as follows.
P 1 BQ 1 Q 1 -1 Y = -P 1 AX (E4)
Here, Q 1 is a transformation matrix representing the first column replacement. When converting the i column and the j column, Q 1 is a matrix in which the i column and the j column of the unit matrix E are exchanged.

以下のように新たな行列を定義する。
(1)=P1BQ1 ・・・(E5)
(1)=P1A ・・・(E6)
式(E5)および式(E6)により、式(E4)は以下の式で表わされる。
(1)1 -1Y=−A(1)X ・・・(E7)
Define a new matrix as follows:
B (1) = P 1 BQ 1 (E5)
A (1) = P 1 A (E6)
From the equations (E5) and (E6), the equation (E4) is represented by the following equation.
B (1) Q 1 −1 Y = −A (1) X (E7)

さらに、行列B(1)の2つの行を交換するとすると、式(E7)は以下のように変形される。
2(1)1 -1Y=−P2(1)X ・・・(E8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
Further, if two rows of the matrix B (1) are exchanged, the equation (E7) is transformed as follows.
P 2 B (1) Q 1 −1 Y = −P 2 A (1) X (E8)
Here, P 2 is a transformation matrix representing the second row replacement.

さらに、行列B(1)の2つの列を交換すると、式(E8)は以下のように変形される。
2(1)22 -11 -1Y=−P2(1)X ・・・(E9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
Further, when the two columns of the matrix B (1) are exchanged, the equation (E8) is transformed as follows.
P 2 B (1) Q 2 Q 2 -1 Q 1 -1 Y = -P 2 A (1) X (E9)
Here, Q 2 is a transformation matrix representing the second column replacement.

以下のように新たな行列を定義する。
(2)=P2(1)2 ・・・(E10)
(2)=P2(1) ・・・(E11)
式(E10)および式(E11)により、式(E9)は以下の式で表わされる。
(2)2 -11 -1Y=−A(2)X ・・・(E12)
Define a new matrix as follows:
B (2) = P 2 B (1) Q 2 (E10)
A (2) = P 2 A (1) ... (E11)
From the equations (E10) and (E11), the equation (E9) is represented by the following equation.
B (2) Q 2 -1 Q 1 -1 Y = -A (2) X (E12)

同様にして、行列Bに対して、第u回(u≧1)だけ行の入れ替えおよび第v(v≧1)だげ列の入れ替えを行なう。第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を定義する。
B′=Pu・・・P21BQ12・・・Qv ・・・(E13)
(u)=Pu・・・P21A ・・・(E14)
(v)=Q12・・・Qv ・・・(E15)
式(E13)、式(E14)および式(E15)により、以下の式が成り立つ。
B′E(v)-1Y=−A(u)X ・・・(E16)
Similarly, for the matrix B, the row replacement and the v-th (v ≧ 1) extra column are performed for the u-th (u ≧ 1). Assuming that the matrix representing the s-th (1 ≦ s ≦ u) row replacement is P s and the matrix representing the s-th (1 ≦ s ≦ v) column replacement is Q s , the following new matrix Define
B '= P u ··· P 2 P 1 BQ 1 Q 2 ··· Q v ··· (E13)
A (u) = P u ... P 2 P 1 A (E14)
E (v) = Q 1 Q 2 ... Q v (E15)
The following formulas are established by formula (E13), formula (E14), and formula (E15).
B'E (v) -1 Y = -A (u) X (E16)

行列B′をLU分解すると、式(E16)は以下の式に変形される。
L′U′QV -1・・・Q2 -11 -1Y=A(u)X ・・・(E17)
ここで、L′は下三角行列であり、U′は上三角行列である。
When the matrix B ′ is subjected to LU decomposition, the equation (E16) is transformed into the following equation.
L′ U′Q V −1 ... Q 2 −1 Q 1 −1 Y = A (u) X (E17)
Here, L ′ is a lower triangular matrix and U ′ is an upper triangular matrix.

式(E17)より、列ベクトルYは、以下の式で表わされる。
Y=−E(v)U′-1L′-1(u)X ・・・(E18)
From the equation (E17), the column vector Y is expressed by the following equation.
Y = −E (v) U ′ −1 L ′ −1 A (u) X (E18)

上三角行列U′は、以下の式のように、基本上三角行列U′i(i=1〜m)の積に分解される。
U′=U′mU′m-1・・・U′2U′1 ・・・(E19)
ここで、逆行列U′i -1は、対角項の要素が1であり、かつ非対角項の要素はU′iの要素の符号を反転したものである。
式(E19)より、U′-1は、以下の式で表わされる。
U′-1=U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(E20)
The upper triangular matrix U ′ is decomposed into products of basic upper triangular matrices U ′ i (i = 1 to m) as in the following equation.
U '= U' m U ' m-1 ··· U' 2 U '1 ··· (E19)
Here, in the inverse matrix U ′ i −1 , the element of the diagonal term is 1, and the element of the off-diagonal term is obtained by inverting the sign of the element of U ′ i .
From the equation (E19), U ′ −1 is represented by the following equation.
U ′ −1 = U ′ 1 −1 U ′ 2 −1 ... U ′ m−1 −1 U ′ m −1 (E20)

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L′=L′1L′2・・・L′m-1L′m ・・・(E21)
ここで、逆行列L′i -1は、対角項の要素が1であり、かつ非対角項の要素はL′iの要素の符号を反転したものである。
式(E21)より、L′-1は、以下の式で表わされる。
L′-1=L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(E22)
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L ′ = L ′ 1 L ′ 2 ... L ′ m−1 L ′ m (E21)
Here, in the inverse matrix L ′ i −1 , the element of the diagonal term is 1, and the element of the non-diagonal term is obtained by inverting the sign of the element of L ′ i .
From the formula (E21), L ′ −1 is represented by the following formula.
L ′ −1 = L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 (E22)

式(E20)および式(E22)によって、式(E18)は以下の式に変形される。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(E23)
Expression (E18) is transformed into the following expression by Expression (E20) and Expression (E22).
Y = -E (v) U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L ' 1 -1 A (u) X (E23)

式(E23)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z=(X,Y) ・・・(E24)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (E23) and the information vector X, the encoded vector Z is expressed by the following equation.
Z = (X, Y) (E24)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図11は、第2の実施形態の変形例1の符号化器の構成を表わす図である。
(Constitution)
FIG. 11 is a diagram illustrating a configuration of an encoder according to Modification 1 of the second embodiment.

図11を参照して、この符号化器2dは、第2の実施形態と同様の、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 11, this encoder 2d includes a parity check matrix decomposition unit 30, an ordering unit 40, an LU decomposition unit 34, a basic matrix decomposition unit 36, and an array unit, which are the same as those in the second embodiment. 20. Description of these will not be repeated.

また、符号化器2dは、行列記憶部48と、逆行列計算部43と、行列積計算部41と、中間結果記憶部42と、符号反転部99と、行列積計算制御部124とを備える。   The encoder 2d includes a matrix storage unit 48, an inverse matrix calculation unit 43, a matrix product calculation unit 41, an intermediate result storage unit 42, a sign inversion unit 99, and a matrix product calculation control unit 124. .

逆行列計算部43は、中間結果記憶部42から基本上三角行列U′1、U′2、・・・、U′mおよび基本下三角行列L′1、L′2、・・・、L′mを表わすデータを読み出して、行列U′1、U′2、・・・、U′m、L′1、L′2、・・・、L′mの非対角項の要素の符号を反転することによって、行列U′1、U′2、・・・、U′m、L′1、L′2、・・・、L′mの逆行列U′1 -1、U′2 -1、・・・、U′m -1、L′1 -1、L′2 -1、・・・、L′m -1を算出し、逆行列U′1 -1、U′2 -1、・・・、U′m -1、L′1 -1、L′2 -1、・・・、L′m -1を表わすデータを行列記憶部48に記憶させる。 The inverse matrix calculator 43 stores the basic upper triangular matrices U ′ 1 , U ′ 2 ,..., U ′ m and the basic lower triangular matrices L ′ 1 , L ′ 2 ,. 'reads the data representing the m, the matrix U' 1, U '2, ···, U' m, L '1, L' 2, ···, unpaired corner section elements of L 'm code by inverting the matrix U '1, U' 2, ···, U 'm, L' 1, L '2, ···, L' inverse matrix U of m '1 -1, U' 2 -1, ···, U 'm -1 , L' 1 -1, L '2 -1, ···, L' calculates m -1, the inverse matrix U '1 -1, U' 2 - 1, ···, U 'm -1 , L' 1 -1, L '2 -1, ···, L' and stores the data representing the m -1 in the matrix storage unit 48.

行列記憶部48は、基本上三角行列の逆行列U′1 -1、U′2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列A(u)、E(v)を表わすデータを記憶する。 The matrix storage unit 48 includes data representing the inverse matrices U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m −1 of the basic upper triangular matrix, and the inverse matrix L ′ m −1 of the basic lower triangular matrix , L ′ m−1 −1 ,..., L ′ 1 −1 and data representing the matrices A (u) and E (v) are stored.

行列積計算部41は、加算器47および乗算器49を備える。行列積計算部41は、パリティベクトルYを算出するために、式(E23)に含まれる(2m+2)回の行列乗算を行列積計算制御部124に指示された順序で実行する。行列積計算部41は、入力される情報ベクトルX、行列記憶部48内の行列U′1 -1、U′2 -1、・・・、U′m -1、L′m -1、L′m-1 -1、・・・、L′1 -1、A(u)、E(v)を表わすデータ、および中間結果記憶部42内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部41は、式(E23)に含まれる(2m+2)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部42に記憶させる。 The matrix product calculation unit 41 includes an adder 47 and a multiplier 49. In order to calculate the parity vector Y, the matrix product calculation unit 41 performs (2m + 2) times of matrix multiplications included in the equation (E23) in the order instructed by the matrix product calculation control unit 124. The matrix product calculation unit 41 inputs the information vector X, the matrices U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m −1 , L ′ m −1 , L in the matrix storage unit 48 ′ M −1 −1 ,..., L ′ 1 −1 , data representing A (u) and E (v) , and data representing intermediate results in the intermediate result storage unit 42 are used. To perform each matrix multiplication. The matrix product calculation unit 41 stores data representing the calculation result in the intermediate result storage unit 42 as data representing the intermediate result until (2m + 2) times of matrix multiplications included in the equation (E23) is completed.

行列積計算制御部124は、パリティベクトルYを算出するために、行列記憶部48にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′2 -1、U′1 -1、E(v)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部41を制御する。また、行列積計算制御部124は、式(E23)に含まれる(2m+2)回の行列乗算の終了後に、行列積計算部41から計算結果であるベクトルY′(=E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u))を符号反転部99へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 124 determines that the order of the matrices in which data is stored in the matrix storage unit 48 is A (u) , L ′ 1 −1 , L ′ 2 −1 from the top. ,..., L ′ m−1 −1 , L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ 2 −1 , U ′ 1 −1 , E The order between the matrices is set so as to be in the order of (v) , and the matrix product calculation unit 41 is controlled so as to perform matrix multiplication in this order. Further, the matrix product calculation control unit 124, after the completion of (2m + 2) times of matrix multiplication included in the equation (E23), the vector Y ′ (= E (v) U ′ 1 ) as the calculation result from the matrix product calculation unit 41. -1 U ' 2 -1 ... U' m-1 -1 U ' m -1 L' m -1 L ' m-1 -1 ... L' 2 -1 L ' 1 -1 A (u ) ) Is output to the sign inversion unit 99.

中間結果記憶部42は、式(E23)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部42は、パリティベクトルYの生成処理時に、式(E23)に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 42 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the equation (E23). Further, the intermediate result storage unit 42 stores data representing an intermediate result of (2m + 2) times of matrix multiplication included in the equation (E23) during the generation process of the parity vector Y.

符号反転部99は、ベクトルY′の符号を反転して(つまり、ベクトルの各要素の符号を反転して)、それをパリティベクトルYとして出力する。   The sign inversion unit 99 inverts the sign of the vector Y ′ (that is, inverts the sign of each element of the vector) and outputs it as the parity vector Y.

(行列分解処理)
図12は、第2の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 12 is a flowchart of matrix decomposition processing according to the first modification of the second embodiment.

図12を参照して、検査行列分解部30は、検査行列Hを行列A、Bに分解する。検査行列分解部30は、行列Aを表わすデータおよび行列Bを表わすデータを中間結果記憶部42に記憶させる(ステップS701)。   Referring to FIG. 12, parity check matrix decomposition unit 30 decomposes parity check matrix H into matrices A and B. The parity check matrix decomposition unit 30 stores data representing the matrix A and data representing the matrix B in the intermediate result storage unit 42 (step S701).

オーダリング部40は、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なう。オーダリング部40は、第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を生成する。
B′=Pu・・・P21BQ12・・・Qv ・・・(D13)
(u)=Pu・・・P21A ・・・(D14)
(v)=Q12・・・Qv ・・・(D15)
つまり、行列B′は、行列Bに対して、u回(u≧1)の行の入れ替え、およびv回(v≧1)の列の入れ替えを行なったものである。行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものである。行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものである。オーダリング部40は、行列A(u)、E(v)を表わすデータを行列記憶部48に記憶させ、行列B′を表わすデータを中間結果記憶部42に記憶させる(ステップS702)。
The ordering unit 40 performs u-th (u ≧ 1) row replacement and v-th (v ≧ 1) column replacement for the matrix B. The ordering unit 40 uses P s as a matrix representing the s-th (1 ≦ s ≦ u) row replacement, Q s as a matrix representing the s-th (1 ≦ s ≦ v) column replacement, and A new matrix is generated as follows.
B '= P u ··· P 2 P 1 BQ 1 Q 2 ··· Q v ··· (D13)
A (u) = P u ... P 2 P 1 A (D14)
E (v) = Q 1 Q 2 ... Q v (D15)
That is, the matrix B ′ is obtained by replacing the matrix B with u times (u ≧ 1) and v times (v ≧ 1). The matrix A (u) is obtained by performing the same replacement on the matrix A as the u-time replacement of the rows for the matrix B. The matrix E (v) is obtained by performing the same replacement as the unit matrix E with v column replacements for the matrix B. The ordering unit 40 stores data representing the matrices A (u) and E (v) in the matrix storage unit 48 and stores data representing the matrix B ′ in the intermediate result storage unit 42 (step S702).

次に、LU分解部34は、中間結果記憶部42から行列B′を表わすデータを読み出して、行列B′をLU分解して、下三角行列L′を表わすデータと、上三角行列U′を表わすデータとを中間結果記憶部42に記憶させる(ステップS703)。   Next, the LU decomposition unit 34 reads the data representing the matrix B ′ from the intermediate result storage unit 42, performs LU decomposition on the matrix B ′, and converts the data representing the lower triangular matrix L ′ and the upper triangular matrix U ′. The represented data is stored in the intermediate result storage unit 42 (step S703).

次に、基本行列分解部36は、中間結果記憶部42から上三角行列U′を表わすデータを読み出して、上三角行列U′を基本上三角行列U′1、U′2、・・・、U′mの積に分解して、基本上三角行列U′1、U′2、・・・、U′mを表わすデータを中間結果記憶部42に記憶させる。また、基本行列分解部36は、中間結果記憶部42から下三角行列L′を表わすデータを読み出して、下三角行列Lを基本下三角行列L′1、L′2、・・・、L′mの積に分解して、基本下三角行列L′1、L′2、・・・、L′mを表わすデータを中間結果記憶部42に記憶させる(ステップS704)。 Next, the basic matrix decomposition unit 36 reads data representing the upper triangular matrix U ′ from the intermediate result storage unit 42, and converts the upper triangular matrix U ′ into the basic upper triangular matrices U ′ 1 , U ′ 2 ,. The data representing the upper triangular matrix U ′ 1 , U ′ 2 ,..., U ′ m is stored in the intermediate result storage unit 42 by being decomposed into U ′ m products. The basic matrix decomposition unit 36 reads data representing the lower triangular matrix L ′ from the intermediate result storage unit 42 and converts the lower triangular matrix L into the basic lower triangular matrices L ′ 1 , L ′ 2 ,. The data representing the basic lower triangular matrix L ′ 1 , L ′ 2 ,..., L ′ m is stored in the intermediate result storage unit 42 (step S704).

逆行列計算部43は、中間結果記憶部42から基本上三角行列U′1、U′2、・・・、U′mおよび基本下三角行列L′1、L′2、・・・、L′mを表わすデータを読み出して、行列U′1、U′2、・・・、U′m、L′1、L′2、・・・、L′mの非対角項の要素の符号を反転することによって、行列U′1、U′2、・・・、U′m、L′1、L′2、・・・、L′mの逆行列U′1 -1、U′2 -1、・・・、U′m -1、L′1 -1、L′2 -1、・・・、L′m -1を算出し、逆行列U′1 -1、U′2 -1、・・・、U′m -1、L′1 -1、L′2 -1、・・・、L′m -1を表わすデータを行列記憶部48に記憶させる(ステップS705)。 The inverse matrix calculator 43 stores the basic upper triangular matrices U ′ 1 , U ′ 2 ,..., U ′ m and the basic lower triangular matrices L ′ 1 , L ′ 2 ,. 'reads the data representing the m, the matrix U' 1, U '2, ···, U' m, L '1, L' 2, ···, unpaired corner section elements of L 'm code by inverting the matrix U '1, U' 2, ···, U 'm, L' 1, L '2, ···, L' inverse matrix U of m '1 -1, U' 2 −1 ,..., U ′ m −1 , L ′ 1 −1 , L ′ 2 −1 ,..., L ′ m −1 are calculated and inverse matrices U ′ 1 −1 , U ′ 2 1, ···, U 'm -1 , L' 1 -1, L '2 -1, ···, L' and stores the data representing the m -1 in the matrix storage unit 48 (step S705).

(符号化ベクトル生成処理)
図13は、第2の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 13 is a flowchart of an encoded vector generation process according to Modification 1 of the second embodiment.

図13を参照して、行列積計算制御部124は、行列記憶部48にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m -1、U′m -1、U′m-1 -1、・・・、U′1 -1、E(v)の順となるように行列間の順序を設定する(ステップS801)。 Referring to FIG. 13, the matrix product calculation control unit 124 determines that the order of the matrices in which data is stored in the matrix storage unit 48 is A (u) , L ′ 1 −1 , L ′ 2 −1,. .., the order between the matrices is set so that L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ 1 −1 , E (v) (Step S801).

次に、行列積計算制御部124は、制御変数iを1に設定する(ステップS802)。
行列積計算制御部124は、行列積計算部41を指示して、行列記憶部48から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部41は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部42に記憶させる(ステップS803)。
Next, the matrix product calculation control unit 124 sets the control variable i to 1 (step S802).
The matrix product calculation control unit 124 instructs the matrix product calculation unit 41 to read out the data representing the i th (= 1) -th order matrix A (u) from the matrix storage unit 48, and the matrix A (u) And the product A (u) X of the input information vector X is calculated. The matrix product calculation unit 41 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 42 (step S803).

次に、行列積計算制御部124は、制御変数iをインクリメントする(ステップS804)。   Next, the matrix product calculation control unit 124 increments the control variable i (step S804).

行列積計算制御部124は、制御変数iが(2m+2)未満の場合には(ステップS805でYES)、行列積計算部41を指示して、行列記憶部48から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部42に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部41は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部42内の中間結果Rを表わすデータを更新する(ステップS806)。その後、ステップS804からの処理が繰返される。 When the control variable i is less than (2m + 2) (YES in step S805), the matrix product calculation control unit 124 instructs the matrix product calculation unit 41 to receive the i-th rank matrix (the matrix) from the matrix storage unit 48. causes read data representing the Mat i), the intermediate result storage unit 42 intermediate results are stored in the by reading the data representing the R, matrices Mat i and an intermediate result product Mat i × R and R Let's calculate. The matrix product calculation unit 41 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 42 (step S806). Thereafter, the processing from step S804 is repeated.

制御変数iが(2m+2)となった場合には(ステップS805でNO)、行列積計算制御部124は、行列積計算部41を指示して、行列記憶部48から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部42に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部41は、乗算結果であるベクトルY′を符号反転部99に出力する。符号反転部99は、ベクトルY′の符号を反転したものをパリティべクトルYとして出力する(ステップ807)。 When the control variable i becomes (2m + 2) (NO in step S805), the matrix product calculation control unit 124 instructs the matrix product calculation unit 41 to receive the i-th rank matrix (Mat) from the matrix storage unit 48. i ) and the data representing the intermediate result R stored in the intermediate result storage unit 42 are read, and the product Mat i × R of the matrix Mat i and the intermediate result R is calculated. . The matrix product calculation unit 41 outputs a vector Y ′ as a multiplication result to the sign inversion unit 99. The sign inversion unit 99 outputs the inverted vector Y ′ as the parity vector Y (step 807).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS808)。   Thereafter, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S808).

(第2の実施形態の変形例1の効果)
以上のように、第2の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(E23)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列の逆行列U′i -1(i=1〜m)および基本下三角行列の逆行列L′i -1(i=1〜m)は、第1の実施形態の変形例1の基本上三角行列の逆行列Ui -1(i=1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(E23)の演算の計算量を式(C9)よりもさらに少なくできる。また、式(E23)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effects of Modification 1 of Second Embodiment)
As described above, according to the first modification of the second embodiment, the parity vector Y is calculated according to the equation (E23) without performing backward substitution at the time of the encoded vector generation process. The information vector X can be encoded. In particular, since matrix B is ordered, the inverse matrix U ′ i −1 (i = 1 to m) of the basic upper triangular matrix and the inverse matrix L ′ i −1 (i = 1 to m) of the basic lower triangular matrix are More than the inverse matrix U i −1 (i = 1 to m) of the basic upper triangular matrix and the inverse matrix L i −1 (i = 1 to m) of the basic lower triangular matrix of the first modification of the first embodiment Furthermore, the matrix has a smaller number of non-zero elements, and the amount of calculation of the equation (E23) can be further reduced compared to the equation (C9). Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the equation (E23), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列Bのオーダリングによる行列B′、A(u)、E(v)の生成、行列B′のLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、基本上三角行列および基本下三角行列の非対角項の符号の反転を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。 Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, generation of matrices B ′, A (u) and E (v) by ordering of the matrix B, matrix B LU decomposition of ′, decomposition of LU decomposed upper triangular matrix into product of basic upper triangular matrix, decomposition of LU decomposed lower triangular matrix into product of basic lower triangular matrix, basic upper triangular matrix and basic lower triangular matrix Therefore, the matrix necessary for generating the parity vector Y can be calculated with a small amount of calculation.

[第3の実施形態]
第3の実施形態の符号化器は、2を法とする演算を行なう。
[Third Embodiment]
The encoder of the third embodiment performs an operation modulo 2.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(F1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X consisting of k information bits x1, x2,..., Xk and performs an operation modulo 2 so as to satisfy m A parity vector Y composed of bits y1, y2,.
H (X, Y) T = 0 (F1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(F1)は、2を法とする演算の場合には、次のように変形される。
BY≡AX ・・・(F2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Formula (F1) is modified as follows in the case of an operation modulo 2.
BY≡AX (F2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列BをLU分解すると、式(F2)は以下の式に変形される。
LUY≡AX ・・・(F3)
ここで、Lは下三角行列であり、Uは上三角行列である。
When the matrix B is subjected to LU decomposition, the formula (F2) is transformed into the following formula.
LUY≡AX (F3)
Here, L is a lower triangular matrix and U is an upper triangular matrix.

式(F3)より、列ベクトルYは、以下の式で表わされる。
Y≡U-1-1AX ・・・(F4)
From the formula (F3), the column vector Y is expressed by the following formula.
Y≡U −1 L −1 AX (F4)

上三角行列Uは、以下の式のように、基本上三角行列Ui(i=1〜m)の積に分解される。
U≡Umm-1・・・U21 ・・・(F5)
式(F5)より、逆行列U-1は、以下の式で表わされる。
The upper triangular matrix U is decomposed into products of basic upper triangular matrices U i (i = 1 to m) as in the following equation.
U≡U m U m-1 ... U 2 U 1 ... (F5)
From the equation (F5), the inverse matrix U −1 is represented by the following equation.

-1≡U1 -12 -1・・・Um-1 -1m -1 ・・・(F6) U -1 ≡ U 1 -1 U 2 -1 ... U m-1 -1 U m -1 ... (F6)

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L≡L12・・・Lm-1m ・・・(F7)
式(F7)より、逆行列L-1は、以下の式で表わされる。
-1≡Lm -1m-1 -1・・・L2 -11 -1 ・・・(F8)
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L≡L 1 L 2 ... L m-1 L m (F7)
From the equation (F7), the inverse matrix L −1 is represented by the following equation.
L -1 ≡L m -1 L m-1 -1 ... L 2 -1 L 1 -1 ... (F8)

式(F6)および式(F8)によって、式(F4)は以下の式に変形される。
Y≡(U1 -12 -1・・・Um-1 -1m -1)(Lm -1m-1 -1・・・L2 -11 -1)AX ・・・(F9)
Expression (F4) is transformed into the following expression by Expression (F6) and Expression (F8).
Y≡ (U 1 -1 U 2 -1 ... U m-1 -1 U m -1 ) (L m -1 L m-1 -1 ... L 2 -1 L 1 -1 ) AX .. (F9)

ところで、2を法とする演算の場合には、基本上三角行列Ui(i=1〜m)、基本下三角行列Li(i=1〜m)は、以下のような性質を有する。
i≡(Ui-1 ・・・(F10)
i≡(Li-1 ・・・(F11)
By the way, in the case of an operation modulo 2, the basic upper triangular matrix U i (i = 1 to m) and the basic lower triangular matrix L i (i = 1 to m) have the following properties.
U i ≡ (U i ) -1 (F10)
L i ≡ (L i ) −1 (F11)

式(F10)および式(F11)によって、式(F9)は以下の式に変形される。
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(F12)
Expression (F9) is transformed into the following expression by Expression (F10) and Expression (F11).
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (F12)

式(F12)は、(2×m+2)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、U1〜Utのt個の行列の積を1つの行列Cで表わすことができるとする。
(U12・・・Ut)≡C ・・・(F13)
この場合、一定の条件とは、行列U1、U2、・・・、Utの非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Expression (F12) is a multiplication of (2 × m + 2) matrices, but if a certain condition is satisfied, it is assumed that the products of several matrices can be represented by one matrix. It is assumed that the product of t matrices of U 1 to U t can be represented by one matrix C as in the following equation.
(U 1 U 2 ... U t ) ≡C (F13)
In this case, the certain conditions, the matrix U 1, U 2, · · ·, or the number of non-zero elements of the non-diagonal terms of the non-zero elements sum matrix C of the number of off-diagonal terms of U t Suppose that

式(F13)より、式(F12)は以下の式で表わされる。
Y≡CUt+1・・・Um-1mmm-1・・・L21AX ・・・(F14)
From formula (F13), formula (F12) is expressed by the following formula.
Y≡CU t + 1 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (F14)

式(F14)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z≡(X,Y) ・・・(F15)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (F14) and the information vector X, the encoded vector Z is expressed by the following equation.
Z≡ (X, Y) (F15)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図14は、第3の実施形態の符号化器の構成を表わす図である。
(Constitution)
FIG. 14 is a diagram illustrating the configuration of the encoder according to the third embodiment.

図14を参照して、この符号化器2eは、第1の実施形態と同様の、検査行列分解部30と、LU分解部14と、基本行列分解部16と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 14, the encoder 2e includes a parity check matrix decomposition unit 30, an LU decomposition unit 14, a basic matrix decomposition unit 16, and an arrangement unit 20, which are the same as those in the first embodiment. Description of these will not be repeated.

また、符号化器2eは、中間結果記憶部52と、行列記憶部58と、行列積計算部51と、行列積計算制御部125と、行列乗算数削減部55とを備える。なお、以下では、(t+1)<mとして説明する。   The encoder 2e includes an intermediate result storage unit 52, a matrix storage unit 58, a matrix product calculation unit 51, a matrix product calculation control unit 125, and a matrix multiplication number reduction unit 55. In the following description, it is assumed that (t + 1) <m.

中間結果記憶部52は、式(F14)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部52は、パリティベクトルYの生成処理時に、式(F14)に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 52 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (F14). Further, the intermediate result storage unit 52 stores data representing the intermediate result of (2m−t + 2) times of matrix multiplication included in the equation (F14) during the generation process of the parity vector Y.

行列記憶部58は、基本上三角行列Ut+1、Ut+2、・・・、Umを表わすデータ、基本下三角行列Lm、Lm-1、・・・、L1を表わすデータ、および行列Aを表わすデータを記憶する。 Matrix storage unit 58 represents the basic upper triangular matrix U t + 1, U t + 2, ···, data representing the U m, the fundamental lower triangular matrix L m, L m-1, ···, a L 1 Data and data representing the matrix A are stored.

行列積計算部51は、加算器57および乗算器59を備える。行列積計算部51は、パリティベクトルYを算出するために、式(F14)に含まれる(2m−t+2)回の行列乗算を行列積計算制御部125に指示された順序で実行する。行列積計算部51は、入力される情報ベクトルX、行列記憶部58内の行列A、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、Ut+1、Cを表わすデータ、および中間結果記憶部52内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部51は、式(F14)に含まれる(2m−t+2)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部52に記憶させる。また、行列積計算部51は、式(F12)に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部55から指示された行列乗算を実行する。 The matrix product calculation unit 51 includes an adder 57 and a multiplier 59. In order to calculate the parity vector Y, the matrix product calculation unit 51 performs (2m−t + 2) matrix multiplications included in the formula (F14) in the order instructed by the matrix product calculation control unit 125. The matrix product calculation unit 51 receives the input information vector X, the matrices A, L 1 , L 2 ,..., L m−1 , L m , U m , U m−1,. Each matrix multiplication is executed using two of the data representing U t + 1 , C and the data representing the intermediate result in the intermediate result storage unit 52. The matrix product calculation unit 51 stores data representing the calculation result in the intermediate result storage unit 52 as data representing the intermediate result until (2m−t + 2) times of matrix multiplications included in the formula (F14) is completed. Let Further, the matrix product calculation unit 51 executes the matrix multiplication instructed by the matrix multiplication number reduction unit 55 when executing the process of reducing the number of matrix multiplications included in the formula (F12).

行列乗算数削減部55は、式(F12)に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部52にデータが記憶されている行列の順序が先頭からU1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部51を制御する。行列乗算数削減部55は、各乗算において、乗算の対象となる2つの行列の非対角項の非零要素数と、乗算結果である1つの行列Cの非対角項の非零要素数とを比較し、後者と前者の差が所定の閾値a(a>0)以下のときは、乗算対象の2つの行列を1つの行列Cで置換する。このようにして行列Cで置換された場合は、行列Cと次の行列との乗算が行なわれる。 When the matrix multiplication number reduction unit 55 performs the process of reducing the number of matrix multiplications included in the formula (F12), the matrix order in which the data is stored in the intermediate result storage unit 52 is U 1 , U 2 ,..., U m−1 , U m , L m , L m−1 ,..., L 2 , L 1 , A are set in the order between the matrices, and in this order The matrix product calculation unit 51 is controlled to perform matrix multiplication. The matrix multiplication number reduction unit 55, in each multiplication, the number of non-zero elements in the off-diagonal terms of the two matrices to be multiplied and the number of non-zero elements in the off-diagonal terms of one matrix C that is the multiplication result When the difference between the latter and the former is equal to or smaller than a predetermined threshold a (a> 0), two matrices to be multiplied are replaced with one matrix C. When the matrix C is replaced in this way, the matrix C is multiplied by the next matrix.

一方、行列乗算数削減部55は、後者と前者の差が所定の閾値aを超えるときには、乗算対象の2つの行列を1つの行列Cで置換することを行なわずに、行列A、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U1の非対角項の非零要素数の総和と、行列A、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U1のうちの置換が行なわれた行列を除いた行列と行列Cの非対角項の非零要素数の総和とを比較し、後者の値が前者の値以下の場合には、行列A、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U1のうちの置換された行列を除いた行列と行列Cとを行列記憶部58に記憶させる。第t順位までの行列が置換された場合には、行列C、Ut+1、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aが行列記憶部58に記憶される。 On the other hand, when the difference between the latter and the former exceeds a predetermined threshold value a, the matrix multiplication number reduction unit 55 does not replace the two matrices to be multiplied with one matrix C, but instead replaces the matrices A, L 1 , L 2, ···, L m- 1, L m, U m, U m-1, ···, and the total number of non-zero elements of the non-diagonal terms of U 1, the matrix a, L 1, L 2 ,..., L m−1 , L m , U m , U m−1 ,..., U 1 excluding the replaced matrix and the non-diagonal terms of matrix C When the latter value is less than or equal to the former value, the matrix A, L 1 , L 2 ,..., L m−1 , L m , U m , U m −1 ,..., U 1 excluding the replaced matrix and the matrix C are stored in the matrix storage unit 58. If the matrix up to the t rank is substituted, the matrix C, U t + 1, ··· , U m-1, U m, L m, L m-1, ···, L 2, L 1 and A are stored in the matrix storage unit 58.

行列積計算制御部125は、パリティベクトルYを算出するために、行列記憶部58にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、Ut+1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部51を制御する。また、行列積計算制御部125は、式(F14)に含まれる(2m−t+2)回の行列乗算の終了後に、行列積計算部51から計算結果であるパリティベクトルYを出力させる。 Matrix product calculation control unit 125, in order to calculate the parity vector Y, A order from the head of the matrix data in the matrix storage unit 58 is stored, L 1, L 2, ··· , L m-1 , L m , U m , U m−1 ,..., U t + 1 , C, the order between the matrices is set, and the matrix product calculation unit 51 performs matrix multiplication in this order. To control. Further, the matrix product calculation control unit 125 causes the matrix product calculation unit 51 to output the parity vector Y that is the calculation result after the (2m−t + 2) times of matrix multiplication included in the formula (F14).

(行列分解処理)
図15は、第3の実施形態の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 15 is a flowchart of matrix decomposition processing according to the third embodiment.

図15を参照して、まず、第1の実施形態のステップS101〜ステップS103が検査行列分解部30、行列記憶部58、中間結果記憶部52、LU分解部14、および基本行列分解部16によって実行される。ただし、生成された行列U1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aは、第1の実施形態のように行列記憶部58にではなく、中間結果記憶部52に記憶される。(ステップS901)。 Referring to FIG. 15, first, steps S101 to S103 of the first embodiment are performed by the check matrix decomposition unit 30, the matrix storage unit 58, the intermediate result storage unit 52, the LU decomposition unit 14, and the basic matrix decomposition unit 16. Executed. However, the generated matrices U 1 , U 2 ,..., U m−1 , U m , L m , L m−1 ,..., L 2 , L 1 , A are the same as those in the first embodiment. As described above, it is stored in the intermediate result storage unit 52, not in the matrix storage unit 58. (Step S901).

次に、行列乗算数削減部55は、中間結果記憶部52にデータが記憶されている行列について、先頭からU1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aの順となるように順序を設定する(ステップS902)。 Next, the matrix multiplication number reduction unit 55 performs U 1 , U 2 ,..., U m−1 , U m , L m , L on the matrix whose data is stored in the intermediate result storage unit 52 from the top. The order is set so as to be in the order of m−1 ,..., L 2 , L 1 , A (step S902).

次に、行列乗算数削減部55は、制御変数tを1に設定する(ステップS903)。
次に、行列乗算数削減部55は、行列記憶部58から第t(=1)順位の行列U1を表わすデータを読み出して、行列U1を行列Cとして、行列Cを表わすデータを中間結果記憶部52に記憶する(ステップS904)。
Next, the matrix multiplication number reduction unit 55 sets the control variable t to 1 (step S903).
Next, matrix multiplication number reduction section 55, matrix storage unit 58 from the t (= 1) reads the data representing the matrix U 1 rank, the matrix U 1 as a matrix C, the data representing the matrix C intermediate results It memorize | stores in the memory | storage part 52 (step S904).

行列数積削減部は、中間結果記憶部52から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部52に記憶させる(ステップS905)。   The matrix number product reduction unit reads the data representing the matrix C from the intermediate result storage unit 52, counts the non-zero element number SC0 of the matrix C, and stores the non-zero element number SC0 in the intermediate result storage unit 52 (step). S905).

次に、行列乗算数削減部55は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS906)。   Next, the matrix multiplication number reduction unit 55 reads data representing the (t + 1) -th rank matrix, and sets the matrix as the matrix mat (step S906).

次に、行列乗算数削減部55は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部52内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部52に記憶させる(ステップS907)。   Next, the matrix multiplication number reduction unit 55 counts the non-zero element number SC1 of the non-diagonal term of the matrix mat, and the non-zero element number SC1 and the non-zero element number SC0 of the matrix C in the intermediate result storage unit 52 And the sum SC2 of the number of non-zero elements is stored in the intermediate result storage unit 52 (step S907).

次に、行列積計算部51は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS908)。   Next, the matrix product calculation unit 51 calculates the product C × Mat of the matrix C and the matrix Mat, and sets the calculation result as the matrix D (step S908).

次に、行列乗算数削減部55は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部52に記憶させる(ステップS909)。   Next, the matrix multiplication number reduction unit 55 counts the non-zero element number SC3 of the non-diagonal term of the matrix D, and stores the non-zero element number SC3 in the intermediate result storage unit 52 (step S909).

行列乗算数削減部55は、中間結果記憶部52から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS910)。   The matrix multiplication number reduction unit 55 reads the non-zero element number SC2 and the non-zero element number SC3 from the intermediate result storage unit 52, and determines whether the difference between SC3 and SC2 is equal to or less than the threshold value a (step). S910).

行列乗算数削減部55は、SC3とSC2との差が閾値a以下である場合には(ステップS910でYES)、制御変数tをインクリメントし(ステップS911)、中間結果記憶部52内の行列Cを行列Dで更新し(ステップS912)、さらに中間結果記憶部52内の非零要素数SC0を非零要素数SC3を更新し、ステップS906からの処理が繰返させる。   If the difference between SC3 and SC2 is equal to or less than the threshold value a (YES in step S910), the matrix multiplication number reduction unit 55 increments the control variable t (step S911), and the matrix C in the intermediate result storage unit 52 Is updated with the matrix D (step S912), the number of non-zero elements SC0 in the intermediate result storage unit 52 is updated with the number of non-zero elements SC3, and the processing from step S906 is repeated.

一方、行列乗算数削減部55は、SC3とSC2との差が閾値aを超え(ステップS910でNO)、かつ制御変数tが2以上の場合には(ステップS914でYES)、行列記憶部58にデータが記憶されている行列U1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aのそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC4を中間結果記憶部52に記憶させる(ステップS915)。 On the other hand, when the difference between SC3 and SC2 exceeds the threshold value a (NO in step S910) and the control variable t is 2 or more (YES in step S914), the matrix multiplication number reduction unit 55 determines the matrix storage unit 58. , U m−1 , U m , L m , L m−1 ,..., L 2 , L 1 , A are unpaired with respect to each of the matrices U 1 , U 2 ,. The number of non-zero elements in the angular term is counted, and the sum SC4 of these non-zero elements is stored in the intermediate result storage unit 52 (step S915).

次に、行列乗算数削減部55は、行列U1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aのうちの第(t+1)順位以降の行列のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC5と中間結果記憶部52内の行列Cの非零要素数SC0との総和SC6を算出して、非零要素数の総和SC6を中間結果記憶部52に記憶させる(ステップS916)。 Next, the matrix multiplication number reduction unit 55 is configured to store the matrixes U 1 , U 2 ,..., U m−1 , U m , L m , L m−1 , ..., L 2 , L 1 , A. The number of non-zero elements in the non-diagonal terms is counted for each of the matrices after the (t + 1) th rank, and the total number SC5 of the non-zero elements and the number of non-zero elements of the matrix C in the intermediate result storage unit 52 are counted. The sum SC6 with SC0 is calculated, and the sum SC6 of the number of non-zero elements is stored in the intermediate result storage unit 52 (step S916).

行列乗算数削減部55は、中間結果記憶部52から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS917)。   The matrix multiplication number reduction unit 55 reads the sum SC4 of the number of nonzero elements and the sum SC6 of the number of nonzero elements from the intermediate result storage unit 52, and determines whether SC6 is SC4 or less (step S917).

行列乗算数削減部55は、SC6がSC4以下である場合には(ステップS917でYES)、中間結果記憶部52内の行列U1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aのうちの第1順位から第t順位までの行列を除いた行列Ut+1、Ut+2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aと、行列Cとを行列記憶部58に記憶させる(ステップS918)。 When the SC6 is SC4 or less (YES in step S917), the matrix multiplication number reduction unit 55 determines the matrices U 1 , U 2 ,..., U m−1 , U m , in the intermediate result storage unit 52. L m , L m−1 ,..., L 2 , L 1 , A matrix U t + 1 , U t + 2 ,. U m−1 , U m , L m , L m−1 ,..., L 2 , L 1 , A and the matrix C are stored in the matrix storage unit 58 (step S918).

(符号化ベクトル生成処理)
図16は、第3の実施形態の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 16 is a flowchart of encoded vector generation processing according to the third embodiment.

図16を参照して、行列積計算制御部125は、行列記憶部58にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、Ut+1、Cの順となるように行列間の順序を設定する(ステップS1001)。 Referring to FIG. 16, matrix product calculation control section 125 determines that the order of the matrices in which data is stored in matrix storage section 58 is A, L 1 , L 2 ,..., L m−1 , L The order between the matrices is set so that m , U m , U m−1 ,..., U t + 1 , C are in order (step S1001).

次に、行列積計算制御部125は、制御変数iを1に設定する(ステップS1002)。   Next, the matrix product calculation control unit 125 sets the control variable i to 1 (step S1002).

行列積計算制御部125は、行列積計算部51を指示して、行列記憶部58から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部51は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部52に記憶させる(ステップS1003)。   The matrix product calculation control unit 125 instructs the matrix product calculation unit 51 to read out the data representing the i-th (= 1) -th rank matrix A from the matrix storage unit 58, and the matrix A and the input information The product AX with the vector X is calculated. The matrix product calculation unit 51 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 52 (step S1003).

次に、行列積計算制御部125は、制御変数iをインクリメントする(ステップS1004)。   Next, the matrix product calculation control unit 125 increments the control variable i (step S1004).

行列積計算制御部125は、制御変数iが(2m−t+2)未満の場合には(ステップS1005でYES)、行列積計算部51を指示して、行列記憶部58から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部52に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部51は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部52内の中間結果Rを表わすデータを更新する(ステップS1006)。その後、ステップS1004からの処理が繰返される。 If the control variable i is less than (2m−t + 2) (YES in step S1005), the matrix product calculation control unit 125 instructs the matrix product calculation unit 51 to receive the i-th rank matrix (from the matrix storage unit 58). causes read data representing this and Mat i), by reading the data representing the intermediate results R stored in the intermediate result storage unit 52, the product Mat i the matrix Mat i and an intermediate result R XR is calculated. The matrix product calculation unit 51 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 52 (step S1006). Thereafter, the processing from step S1004 is repeated.

制御変数iが(2m−t+2)となった場合には(ステップS1005でNO)、行列積計算制御部125は、行列積計算部51を指示して、行列記憶部58から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部52に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部51は、乗算結果であるベクトルをパリティべクトルYとして出力する(ステップS1007)。 When the control variable i becomes (2m−t + 2) (NO in step S1005), the matrix product calculation control unit 125 instructs the matrix product calculation unit 51 to receive the i-th rank matrix from the matrix storage unit 58. Data representing (Mat i ) is read out, and data representing the intermediate result R stored in the intermediate result storage unit 52 is read out to obtain a product Mat i × R of the matrix Mat i and the intermediate result R. Let it be calculated. The matrix product calculation unit 51 outputs the vector that is the multiplication result as the parity vector Y (step S1007).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1008)。   Thereafter, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S1008).

(第3の実施形態の効果)
以上のように、第3の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(F14)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列Ui(i=t+1〜m)および基本下三角行列Li(i=1〜m)は非零要素数が少ない行列のため、式(F14)の計算量は少ない。式(F14)では、第1の実施形態の式(B12)のU1〜Utが1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列U1〜Utの非対角項の非零要素数の和以下であるため、式(F14)の演算は、第1の実施形態の式(B12)の演算よりもさらに計算量が少ない。また、式(F14)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effect of the third embodiment)
As described above, according to the third embodiment, since the parity vector Y is calculated according to the equation (F14) without performing backward substitution in the encoded vector generation process, the information vector X can be calculated with a small amount of calculation. Encoding can be performed. In particular, since the basic upper triangular matrix U i (i = t + 1 to m) and the basic lower triangular matrix L i (i = 1 to m) are matrices with a small number of non-zero elements, the amount of calculation of Expression (F14) is Few. In the equation (F14), U 1 to U t in the equation (B12) of the first embodiment are represented by one matrix C, and the number of non-zero elements in the off-diagonal terms of the matrix C is the matrix U 1 to Since it is less than or equal to the sum of the number of non-zero elements of the off-diagonal term of U t , the calculation of the formula (F14) has a smaller calculation amount than the calculation of the formula (B12) of the first embodiment. Further, since the parity vector Y is calculated by sequentially executing from the matrix multiplication on the right side of the equation (F14), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列BのLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、行列乗算数の削減処理を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。   Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, LU decomposition of the matrix B, decomposition of the upper triangular matrix subjected to LU decomposition into a product of the basic upper triangular matrix Since it is sufficient to perform the decomposition of the LU-decomposed lower triangular matrix into the product of the basic lower triangular matrix and the reduction processing of the matrix multiplication number, the matrix necessary for generating the parity vector Y with a small amount of calculation is calculated. Can do.

[第3の実施形態の変形例1]
第3の実施形態の変形例1の符号化器は、実数演算を行なう。
[Modification 1 of the third embodiment]
The encoder of the first modification of the third embodiment performs a real number operation.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(G1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X composed of k information bits x1, x2,..., Xk and performs a real number operation to thereby obtain m parity bits y1, y2 satisfying the following expression. ,..., Ym to generate a parity vector Y.
H (X, Y) T = 0 (G1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(G1)は、実数演算の場合には、次のように変形される。
BY=−AX ・・・(G2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (G1) is modified as follows in the case of real number calculation.
BY = −AX (G2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列BをLU分解すると、式(G2)は以下の式に変形される。
LUY=−AX ・・・(G3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(G3)より、列ベクトルYは、以下の式で表わされる。
Y=−U-1-1AX ・・・(G4)
When the matrix B is subjected to LU decomposition, the equation (G2) is transformed into the following equation.
LUY = −AX (G3)
Here, L is a lower triangular matrix and U is an upper triangular matrix.
From the equation (G3), the column vector Y is expressed by the following equation.
Y = −U −1 L −1 AX (G4)

上三角行列Uは、以下の式のように、基本上三角行列Ui(i=1〜m)の積に分解される。
U=Umm-1・・・U21 ・・・(G5)
式(G5)より、U-1は、以下の式で表わされる。
-1=U1 -12 -1・・・Um-1 -1m -1 ・・・(G6)
ここで、Ui -1は、対角項の要素が1であり、かつ非対角項の要素はUiの要素の符号を反転したものである。
The upper triangular matrix U is decomposed into products of basic upper triangular matrices U i (i = 1 to m) as in the following equation.
U = U m U m-1 ... U 2 U 1 ... (G5)
From Formula (G5), U −1 is represented by the following formula.
U −1 = U 1 −1 U 2 −1 ... U m-1 −1 U m −1 ... (G6)
Here, U i −1 is obtained by inverting the sign of the element of U i in which the element of the diagonal term is 1 and the element of the off-diagonal term.

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L=L12・・・Lm-1m ・・・(G7)
式(G7)より、L-1は、以下の式で表わされる。
-1=Lm -1m-1 -1・・・L2 -11 -1 ・・・(G8)
ここで、Li -1は、対角項の要素が1であり、かつ非対角項の要素はLiの要素の符号を反転したものである。
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L = L 1 L 2 ... L m-1 L m (G7)
From the formula (G7), L −1 is represented by the following formula.
L −1 = L m −1 L m−1 −1 ... L 2 −1 L 1 −1 ... (G8)
Here, L i −1 is obtained by inverting the sign of the element of L i in which the element of the diagonal term is 1 and the element of the non-diagonal term.

式(G6)および式(G8)によって、式(G4)は以下の式に変形される。
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(G9)
式(G9)は、(2×m+2)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、U1 -1〜Ut -1のt個の行列の積を1つの行列Cで表わすことができるとする。
(U1 -12 -1・・・Ut -1)≡C ・・・(G10)
この場合、一定の条件とは、行列U1 -1、U2 -1、・・・、Ut -1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Expression (G4) is transformed into the following expression by Expression (G6) and Expression (G8).
Y = −U 1 −1 U 2 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX. G9)
Equation (G9) is a multiplication of (2 × m + 2) matrices, but if certain conditions are satisfied, the product of several matrices can be represented by one matrix. It is assumed that the product of t matrices from U 1 −1 to U t −1 can be represented by one matrix C as in the following equation.
(U 1 −1 U 2 −1 ... U t −1 ) ≡C (G10)
In this case, the certain conditions, the matrix U 1 -1, U 2 -1, ···, the sum of the number of non-zero elements of the non-diagonal terms of U t -1 is non-diagonal terms of the matrix C It is assumed that the number is greater than or equal to the number of non-zero elements.

式(G10)より、式(G9)は以下の式で表わされる。
Y=−CUt+1 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(G11)
From the equation (G10), the equation (G9) is expressed by the following equation.
Y = −CU t + 1 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX (G11)

式(G11)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z=(X,Y) ・・・(G12)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (G11) and the information vector X, the encoded vector Z is expressed by the following equation.
Z = (X, Y) (G12)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図17は、第3の実施形態の変形例1の符号化器の構成を表わす図である。
(Constitution)
FIG. 17 is a diagram illustrating a configuration of an encoder according to Modification 1 of the third embodiment.

図17を参照して、この符号化器2fは、第1の実施形態の変形例1と同様の、検査行列分解部30と、LU分解部14と、基本行列分解部16と、逆行列計算部23と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 17, this encoder 2f includes a parity check matrix decomposition unit 30, an LU decomposition unit 14, a basic matrix decomposition unit 16, and an inverse matrix calculation similar to those of the first modification of the first embodiment. The unit 23 and the arrangement unit 20 are provided. Description of these will not be repeated.

また、符号化器2fは、中間結果記憶部62と、行列記憶部68と、行列積計算部61と、行列積計算制御部126と、行列乗算数削減部65とを備える。なお、以下では、(t+1)<mとして説明する。   The encoder 2 f includes an intermediate result storage unit 62, a matrix storage unit 68, a matrix product calculation unit 61, a matrix product calculation control unit 126, and a matrix multiplication number reduction unit 65. In the following description, it is assumed that (t + 1) <m.

中間結果記憶部62は、式(G11)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部62は、パリティベクトルYの生成処理時に、式(G11)に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 62 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the equation (G11). Further, the intermediate result storage unit 62 stores data representing the intermediate result of (2m−t + 2) times of matrix multiplication included in the equation (G11) during the generation process of the parity vector Y.

行列記憶部68は、基本上三角行列の逆行列Ut+1 -1、Ut+2 -1、・・・、Um -1を表わすデータ、基本下三角行列の逆行列Lm -1、Lm-1 -1、・・・、L1 -1を表わすデータ、および行列Aを表わすデータを記憶する。 The matrix storage unit 68 includes data representing the inverse matrices U t + 1 −1 , U t + 2 −1 ,..., U m −1 of the basic upper triangular matrix, and the inverse matrix L m −1 of the basic lower triangular matrix. , L m−1 −1 ,..., L 1 −1 and data representing the matrix A are stored.

行列積計算部61は、加算器67および乗算器69を備える。行列積計算部61は、パリティベクトルYを算出するために、式(G11)に含まれる(2m−t+2)回の行列乗算を行列積計算制御部126に指示された順序で実行する。行列積計算部61は、入力される情報ベクトルX、行列記憶部68内の行列A、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、Ut+1 -1、Cを表わすデータ、および中間結果記憶部62内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部61は、式(G11)に含まれる(2m−t+2)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部62に記憶させる。また、行列積計算部61は、式(G9)に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部65から指示された行列乗算を実行する。 The matrix product calculation unit 61 includes an adder 67 and a multiplier 69. In order to calculate the parity vector Y, the matrix product calculation unit 61 performs (2m−t + 2) times of matrix multiplications included in the equation (G11) in the order instructed by the matrix product calculation control unit 126. The matrix product calculation unit 61 receives the input information vector X, the matrices A, L 1 −1 , L 2 −1 ,..., L m−1 −1 , L m −1 , U in the matrix storage unit 68. Each matrix using two of m −1 , U m−1 −1 ,..., U t + 1 −1 , data representing C, and data representing an intermediate result in the intermediate result storage unit 62 Perform multiplication. The matrix product calculation unit 61 stores data representing the calculation result in the intermediate result storage unit 62 as data representing the intermediate result until (2m−t + 2) times of matrix multiplications included in the equation (G11) is completed. Let Further, the matrix product calculation unit 61 executes matrix multiplication instructed by the matrix multiplication number reduction unit 65 when executing the process of reducing the number of matrix multiplications included in the equation (G9).

行列乗算数削減部65は、式(G9)に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部62にデータが記憶されている行列の順序が先頭からU1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部61を制御する。行列乗算数削減部65は、各乗算において、乗算の対象となる2つの行列の非対角項の非零要素数と、乗算結果である1つの行列Cの非対角項の非零要素数とを比較し、後者と前者の差が所定の閾値a(a>0)以下のときは、乗算対象の2つの行列を1つの行列Cで置換する。このようにして行列Cで置換された場合は、行列Cと次の行列との乗算が行なわれる。 When the matrix multiplication number reduction unit 65 performs the process of reducing the number of matrix multiplications included in the equation (G9), the order of the matrices in which the data is stored in the intermediate result storage unit 62 is U 1 −1 from the top. , U 2 −1 ,..., U m-1 −1 , U m −1 , L m −1 , L m−1 −1 ,..., L 2 −1 , L 1 −1 , A The order between the matrices is set so as to be in order, and the matrix product calculation unit 61 is controlled to perform matrix multiplication in this order. In each multiplication, the matrix multiplication number reduction unit 65 calculates the number of non-zero elements in the off-diagonal terms of the two matrices to be multiplied and the number of non-zero elements in the off-diagonal terms of one matrix C that is the multiplication result. When the difference between the latter and the former is equal to or smaller than a predetermined threshold a (a> 0), two matrices to be multiplied are replaced with one matrix C. When the matrix C is replaced in this way, the matrix C is multiplied by the next matrix.

一方、行列乗算数削減部65は、後者と前者の差が所定の閾値aを超えるときには、乗算対象の2つの行列を1つの行列Cで置換することを行なわずに、行列A、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、U1 -1の非対角項の非零要素数の総和と、行列A、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、U1 -1のうちの置換が行なわれた行列を除いた行列と行列Cの非対角項の非零要素数の総和とを比較し、後者の値が前者の値以下の場合には、行列A、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、U1 -1のうちの置換された行列を除いた行列と行列Cとを行列記憶部68に記憶させる。第t順位までの行列が置換された場合には、行列C、Ut+1 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aが行列記憶部68に記憶される。 On the other hand, when the difference between the latter and the former exceeds a predetermined threshold value a, the matrix multiplication number reduction unit 65 does not replace the two matrices to be multiplied with one matrix C, but instead performs the matrix A, L 1 1, L 2 -1, ···, L m-1 -1, L m -1, U m -1, U m-1 -1, ···, of the off-diagonal terms of U 1 -1 non Total number of zero elements and matrices A, L 1 −1 , L 2 −1 ,..., L m−1 −1 , L m −1 , U m −1 , U m−1 −1 ,.・ When the matrix of U 1 -1 excluding the replaced matrix is compared with the sum of the number of non-zero elements in the off-diagonal terms of matrix C, and the latter value is less than or equal to the former value the matrix A, L 1 -1, L 2 -1, ···, L m-1 -1, L m -1, U m -1, U m-1 -1, ···, U 1 - The matrix storage unit 68 stores the matrix excluding the replaced matrix of 1 and the matrix C. When the matrix up to the t-th rank is replaced, the matrix C, U t + 1 −1 ,..., U m−1 −1 , U m −1 , L m −1 , L m−1 − 1 ,..., L 2 −1 , L 1 −1 , A are stored in the matrix storage unit 68.

行列積計算制御部126は、パリティベクトルYを算出するために、行列記憶部68にデータが記憶されている行列の順序が先頭からA、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、Ut+1 -1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部61を制御する。また、行列積計算制御部126は、式(G11)に含まれる(2m−t+2)回の行列乗算の終了後に、行列積計算部61から計算結果であるベクトルY′(=CUt+1 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX)を符号反転部99へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 126 determines that the order of the matrices in which data is stored in the matrix storage unit 68 is A, L 1 −1 , L 2 −1 ,. The order between the matrices is set so that L m-1 −1 , L m −1 , U m −1 , U m−1 −1 ,..., U t + 1 −1 , C are in this order. The matrix product calculation unit 61 is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit 126, after completing (2m−t + 2) times of matrix multiplication included in the equation (G11), outputs a vector Y ′ (= CU t + 1 −) as a calculation result from the matrix product calculation unit 61. 1 ... U m−1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX) is output to the sign inversion unit 99.

(行列分解処理)
図18は、第3の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 18 is a flowchart of matrix decomposition processing according to Modification 1 of the third embodiment.

図18を参照して、まず、第1の実施形態の変形例1のステップS201〜ステップS204が検査行列分解部30、行列記憶部68、中間結果記憶部62、LU分解部14、基本行列分解部16、および逆行列計算部23によって実行される。ただし、生成された行列U1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aは、第1の実施形態の変形例1のように行列記憶部68にではなく、中間結果記憶部62に記憶される。(ステップS1101)。 Referring to FIG. 18, first, Steps S201 to S204 of Modification 1 of the first embodiment are the check matrix decomposition unit 30, the matrix storage unit 68, the intermediate result storage unit 62, the LU decomposition unit 14, the basic matrix decomposition. This is executed by the unit 16 and the inverse matrix calculation unit 23. However, the generated matrices U 1 -1, U 2 -1, ···, U m-1 -1, U m -1, L m -1, L m-1 -1, ···, L 2 −1 , L 1 −1 , and A are stored not in the matrix storage unit 68 but in the intermediate result storage unit 62 as in the first modification of the first embodiment. (Step S1101).

次に、行列乗算数削減部65は、中間結果記憶部62にデータが記憶されている行列について、先頭からU1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aの順となるように順序を設定する(ステップS1102)。 Next, the matrix multiplication number reduction unit 65 performs U 1 −1 , U 2 −1 ,..., U m−1 −1 , U m on the matrix whose data is stored in the intermediate result storage unit 62. The order is set so as to be in the order of m −1 , L m −1 , L m−1 −1 ,..., L 2 −1 , L 1 −1 , A (step S1102).

次に、行列乗算数削減部65は、制御変数tを1に設定する(ステップS1103)。
次に、行列乗算数削減部65は、行列記憶部68から第t(=1)順位の行列U1 -1を表わすデータを読み出して、行列U1 -1を行列Cとして、行列Cを表わすデータを中間結果記憶部62に記憶する(ステップS1104)。
Next, the matrix multiplication number reduction unit 65 sets the control variable t to 1 (step S1103).
Next, the matrix multiplication number reduction unit 65 reads data representing the matrix U 1 −1 of the t (= 1) th rank from the matrix storage unit 68 and represents the matrix C with the matrix U 1 −1 as the matrix C. Data is stored in the intermediate result storage unit 62 (step S1104).

行列数積削減部は、中間結果記憶部62から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部62に記憶させる(ステップS1105)。   The matrix number product reduction unit reads the data representing the matrix C from the intermediate result storage unit 62, counts the non-zero element number SC0 of the matrix C, and stores the non-zero element number SC0 in the intermediate result storage unit 62 (step). S1105).

次に、行列乗算数削減部65は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1106)。   Next, the matrix multiplication number reduction unit 65 reads data representing the (t + 1) -th rank matrix and sets the matrix as the matrix mat (step S1106).

次に、行列乗算数削減部65は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部62内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部62に記憶させる(ステップS1107)。   Next, the matrix multiplication number reduction unit 65 counts the non-zero element number SC1 of the non-diagonal term of the matrix mat, and the non-zero element number SC1 and the non-zero element number SC0 of the matrix C in the intermediate result storage unit 62 And the sum SC2 of the number of non-zero elements is stored in the intermediate result storage unit 62 (step S1107).

次に、行列積計算部61は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1108)。   Next, the matrix product calculation unit 61 calculates the product C × Mat of the matrix C and the matrix Mat, and sets the calculation result as the matrix D (step S1108).

次に、行列乗算数削減部65は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部62に記憶させる(ステップS1109)。   Next, the matrix multiplication number reduction unit 65 counts the non-zero element number SC3 of the non-diagonal term of the matrix D, and stores the non-zero element number SC3 in the intermediate result storage unit 62 (step S1109).

行列乗算数削減部65は、中間結果記憶部62から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1110)。   The matrix multiplication number reduction unit 65 reads the sum SC2 of the number of non-zero elements and the number of non-zero elements SC3 from the intermediate result storage unit 62, and determines whether the difference between SC3 and SC2 is less than or equal to the threshold value a (step). S1110).

行列乗算数削減部65は、SC3とSC2との差が閾値a以下である場合には(ステップS1110でYES)、制御変数tをインクリメントし(ステップS1111)、中間結果記憶部62内の行列Cを行列Dで更新し(ステップS1112)、さらに中間結果記憶部62内の非零要素数SC0を非零要素数SC3を更新し、ステップS1106からの処理が繰返させる。   If the difference between SC3 and SC2 is equal to or smaller than the threshold value a (YES in step S1110), the matrix multiplication number reduction unit 65 increments the control variable t (step S1111), and the matrix C in the intermediate result storage unit 62 Is updated with the matrix D (step S1112), the number of nonzero elements SC0 in the intermediate result storage unit 62 is updated with the number of nonzero elements SC3, and the processing from step S1106 is repeated.

一方、行列乗算数削減部65は、SC3とSC2との差が閾値aを超え(ステップS1110でNO)、かつ制御変数tが2以上の場合には(ステップS1114でYES)、行列記憶部68にデータが記憶されている行列U1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aのそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC4を中間結果記憶部62に記憶させる(ステップS1115)。 On the other hand, when the difference between SC3 and SC2 exceeds the threshold value a (NO in step S1110) and the control variable t is 2 or more (YES in step S1114), the matrix multiplication number reduction unit 65 determines the matrix storage unit 68. matrix U 1 -1 where data is stored in, U 2 -1, ···, U m-1 -1, U m -1, L m -1, L m-1 -1, ···, The number of non-zero elements of non-diagonal terms is counted for each of L 2 −1 , L 1 −1 , and A, and the sum SC4 of these non-zero elements is stored in the intermediate result storage unit 62 (step S1115).

次に、行列乗算数削減部65は、行列U1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aのうちの第(t+1)順位以降の行列のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC5と中間結果記憶部62内の行列Cの非零要素数SC0との総和SC6を算出して、非零要素数の総和SC6を中間結果記憶部62に記憶させる(ステップS1116)。 Next, the matrix multiplication number reduction unit 65 includes matrices U 1 −1 , U 2 −1 ,..., U m−1 −1 , U m −1 , L m −1 , L m−1 −1 , ..., the number of non-zero elements of non-diagonal terms is counted for each of the matrices after the (t + 1) -th rank among L 2 -1 , L 1 -1 and A, and the sum of the numbers of these non-zero elements The sum SC6 of SC5 and the number of nonzero elements SC0 of the matrix C in the intermediate result storage unit 62 is calculated, and the sum SC6 of the number of nonzero elements is stored in the intermediate result storage unit 62 (step S1116).

行列乗算数削減部65は、中間結果記憶部62から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1117)。   The matrix multiplication number reduction unit 65 reads out the sum SC4 of the number of non-zero elements and the sum SC6 of the number of non-zero elements from the intermediate result storage unit 62, and determines whether SC6 is SC4 or less (step S1117).

行列乗算数削減部65は、SC6がSC4以下である場合には(ステップS1117でYES)、中間結果記憶部62内の行列U1 -1、U2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aのうちの第1順位から第t順位までの行列を除いた行列Ut+1 -1、Ut+2 -1、・・・、Um-1 -1、Um -1、Lm -1、Lm-1 -1、・・・、L2 -1、L1 -1、Aと、行列Cとを行列記憶部68に記憶させる(ステップS1118)。 When SC6 is equal to or lower than SC4 (YES in step S1117), the matrix multiplication number reduction unit 65 determines the matrices U 1 −1 , U 2 −1 ,..., U m−1 in the intermediate result storage unit 62. -1 , U m −1 , L m −1 , L m−1 −1 ,..., L 2 −1 , L 1 −1 , excluding the matrix from the first rank to the t rank matrix U t + 1 -1, U t + 2 -1, ···, U m-1 -1, U m -1, L m -1, L m-1 -1, ···, L 2 −1 , L 1 −1 , A, and the matrix C are stored in the matrix storage unit 68 (step S1118).

(符号化ベクトル生成処理)
図19は、第3の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 19 is a flowchart of an encoded vector generation process according to Modification 1 of the third embodiment.

図19を参照して、行列積計算制御部126は、行列記憶部68にデータが記憶されている行列の順序が先頭からA、L1 -1、L2 -1、・・・、Lm-1 -1、Lm -1、Um -1、Um-1 -1、・・・、Ut+1 -1、Cの順となるように行列間の順序を設定する(ステップS1201)。 Referring to FIG. 19, the matrix product calculation control unit 126 determines that the order of the matrices in which data is stored in the matrix storage unit 68 is A, L 1 −1 , L 2 −1 ,. The order between the matrices is set so that −1 −1 , L m −1 , U m −1 , U m−1 −1 ,..., U t + 1 −1 , C are in this order (step S1201). ).

次に、行列積計算制御部126は、制御変数iを1に設定する(ステップS1202)。   Next, the matrix product calculation control unit 126 sets the control variable i to 1 (step S1202).

行列積計算制御部126は、行列積計算部61を指示して、行列記憶部68から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部61は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部62に記憶させる(ステップS1203)。   The matrix product calculation control unit 126 instructs the matrix product calculation unit 61 to read out the data representing the i-th (= 1) -th rank matrix A from the matrix storage unit 68, and the matrix A and the input information The product AX with the vector X is calculated. The matrix product calculation unit 61 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 62 (step S1203).

次に、行列積計算制御部126は、制御変数iをインクリメントする(ステップS1204)。   Next, the matrix product calculation control unit 126 increments the control variable i (step S1204).

行列積計算制御部126は、制御変数iが(2m−t+2)未満の場合には(ステップS1205でYES)、行列積計算部61を指示して、行列記憶部68から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部62に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部61は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部62内の中間結果Rを表わすデータを更新する(ステップS1206)。その後、ステップS1204からの処理が繰返される。 If the control variable i is less than (2m−t + 2) (YES in step S1205), the matrix product calculation control unit 126 instructs the matrix product calculation unit 61 to transmit the i-th rank matrix from the matrix storage unit 68 ( causes read data representing this and Mat i), by reading the data representing the intermediate results R stored in the intermediate result storage unit 62, the product Mat i the matrix Mat i and an intermediate result R XR is calculated. The matrix product calculation unit 61 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 62 (step S1206). Thereafter, the processing from step S1204 is repeated.

制御変数iが(2m−t+2)となった場合には(ステップS1205でNO)、行列積計算制御部126は、行列積計算部61を指示して、行列記憶部68から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部62に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部61は、乗算結果であるベクトルY′を符号反転部99に出力する。符号反転部99は、ベクトルY′の符号を反転したものをパリティべクトルYとして出力する(ステップS1207)。 When the control variable i becomes (2m−t + 2) (NO in step S1205), the matrix product calculation control unit 126 instructs the matrix product calculation unit 61 to receive the i-th rank matrix from the matrix storage unit 68. Data representing (Mat i ) is read out, and data representing the intermediate result R stored in the intermediate result storage unit 62 is read out to obtain a product Mat i × R of the matrix Mat i and the intermediate result R. Let it be calculated. The matrix product calculation unit 61 outputs a vector Y ′ as a multiplication result to the sign inversion unit 99. The sign inversion unit 99 outputs the inverted vector Y ′ as the parity vector Y (step S1207).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1208)。   After that, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S1208).

(第3の実施形態の変形例1の効果)
以上のように、第3の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(G11)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列の逆行列Ui -1(i=t+1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)は非零要素数が少ない行列のため、式(G11)の計算量は少ない。式(G11)では、第1の実施形態の変形例1の式(C9)のU1 -1〜Ut -1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列U1 -1〜Ut -1の非対角項の非零要素数の和以下であるため、式(G11)の演算は、第1の実施形態の変形例1の式(C9)の演算よりもさらに計算量が少ない。また、式(G11)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effect of Modification 1 of Third Embodiment)
As described above, according to the first modification of the third embodiment, the parity vector Y is calculated according to the equation (G11) without performing backward substitution at the time of encoded vector generation processing. The information vector X can be encoded. In particular, the inverse matrix U i −1 (i = t + 1 to m) of the basic upper triangular matrix and the inverse matrix L i −1 (i = 1 to m) of the basic lower triangular matrix are matrices having a small number of nonzero elements. Therefore, the calculation amount of the formula (G11) is small. In Expression (G11), U 1 −1 to U t −1 of Expression (C9) of Modification 1 of the first embodiment are represented by one matrix C, and the non-diagonal terms of the matrix C are non-diagonal. Since the number of zero elements is equal to or less than the sum of the number of non-zero elements in the non-diagonal terms of the matrices U 1 −1 to U t −1 , the calculation of Expression (G11) The calculation amount is smaller than the calculation of (C9). Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the equation (G11), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列BのLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、基本上三角行列および基本下三角行列の非対角項の符号の反転、行列乗算数の削減処理を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。   Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, LU decomposition of the matrix B, decomposition of the upper triangular matrix subjected to LU decomposition into a product of the basic upper triangular matrix Since the decomposition of the LU-decomposed lower triangular matrix into the product of the basic lower triangular matrix, the inversion of the signs of the non-diagonal terms of the basic upper triangular matrix and the basic lower triangular matrix, and the matrix multiplication number reduction processing may be performed. A matrix necessary for generating the parity vector Y can be calculated with a small amount of calculation.

[第4の実施形態]
第4の実施形態の符号化器は、2を法とする演算を行なう。
[Fourth Embodiment]
The encoder of the fourth embodiment performs an operation modulo 2.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(H1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X consisting of k information bits x1, x2,..., Xk and performs an operation modulo 2 so as to satisfy m A parity vector Y composed of bits y1, y2,.
H (X, Y) T ≡0 (H1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(H1)は、2を法とする演算の場合には、次のように変形される。
BY≡AX ・・・(H2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Expression (H1) is transformed as follows in the case of an operation modulo 2.
BY≡AX (H2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列Bに対して、以下のようにオーダリングを行なうとする。
まず、行列Bの2つの行を交換するとすると、式(H2)は以下のように変形される。
1BY≡P1AX ・・・(H3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
Assume that ordering is performed on the matrix B as follows.
First, when two rows of the matrix B are exchanged, the expression (H2) is transformed as follows.
P 1 BY≡P 1 AX (H3)
Here, P 1 is a transformation matrix representing the first row replacement. In the case of converting i row and j row, P 1 is a matrix in which the i row and j row of the unit matrix E are exchanged.

さらに、行列Bの2つの列を交換すると、式(H3)は以下のように変形される。
1BQ11 -1Y≡P1AX ・・・(H4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
Further, when the two columns of the matrix B are exchanged, the expression (H3) is transformed as follows.
P 1 BQ 1 Q 1 -1 Y≡P 1 AX (H4)
Here, Q 1 is a transformation matrix representing the first column replacement. When converting the i column and the j column, Q 1 is a matrix in which the i column and the j column of the unit matrix E are exchanged.

以下のように新たな行列を定義する。
(1)≡P1BQ1 ・・・(H5)
(1)≡P1A ・・・(H6)
式(H5)および式(H6)により、式(H4)は以下の式で表わされる。
(1)1 -1Y≡A(1)) ・・・(H7)
Define a new matrix as follows:
B (1) ≡P 1 BQ 1 (H5)
A (1) ≡ P 1 A (H6)
From the formula (H5) and the formula (H6), the formula (H4) is represented by the following formula.
B (1) Q 1 -1 Y≡A (1) X ) ... (H7)

さらに、行列B(1)の2つの行を交換するとすると、式(H7)は以下のように変形される。
2(1)1 -1Y≡P2(1)X ・・・(H8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
Further, when two rows of the matrix B (1) are exchanged, the expression (H7) is transformed as follows.
P 2 B (1) Q 1 -1 Y≡P 2 A (1) X ··· (H8)
Here, P 2 is a transformation matrix representing the second row replacement.

さらに、行列B(1)の2つの列を交換すると、式(H8)は以下のように変形される。
2(1)22 -11 -1Y≡P2(1)X ・・・(H9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
Further, when the two columns of the matrix B (1) are exchanged, the expression (H8) is transformed as follows.
P 2 B (1) Q 2 Q 2 -1 Q 1 -1 Y≡P 2 A (1) X (H9)
Here, Q 2 is a transformation matrix representing the second column replacement.

以下のように新たな行列を定義する。
(2)≡P2(1)2 ・・・(H10)
(2)≡P2(1) ・・・(H11)
式(H10)および式(H11)により、式(H9)は以下の式で表わされる。
(2)2 -11 -1Y≡A(2)X ・・・(H12)
Define a new matrix as follows:
B (2) ≡ P 2 B (1) Q 2 (H10)
A (2) ≡ P 2 A (1) (H11)
From the equations (H10) and (H11), the equation (H9) is represented by the following equation.
B (2) Q 2 -1 Q 1 -1 Y≡A (2) X ... (H12)

同様にして、行列Bに対して、第u回(u≧1)だけ行の入れ替えおよび第v(v≧1)だげ列の入れ替えを行なう。第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を定義する。
B′≡Pu・・・P21BQ12・・・Qv ・・・(H13)
(u)≡Pu・・・P21A ・・・(H14)
(v)≡Q12・・・Qv ・・・(H15)
式(H13)、式(H14)および式(H15)により、以下の式が成り立つ。
B′E(v)-1Y≡A(u)X ・・・(H16)
Similarly, for the matrix B, the row replacement and the v-th (v ≧ 1) extra column are performed for the u-th (u ≧ 1). Assuming that the matrix representing the s-th (1 ≦ s ≦ u) row replacement is P s and the matrix representing the s-th (1 ≦ s ≦ v) column replacement is Q s , the following new matrix Define
B′≡P u ... P 2 P 1 BQ 1 Q 2 ... Q v (H13)
A (u) ≡P u ... P 2 P 1 A (H14)
E (v) ≡Q 1 Q 2 ... Q v ... (H15)
The following expressions are established by Expression (H13), Expression (H14), and Expression (H15).
B′E (v) -1 Y≡A (u) X (H16)

行列B′をLU分解すると、式(H16)は以下の式に変形される。
L′U′E(v)-1Y≡A(u)X ・・・(H17)
ここで、L′は下三角行列であり、U′は上三角行列である。
When the matrix B ′ is subjected to LU decomposition, Expression (H16) is transformed into the following expression.
L′ U′E (v) -1 Y≡A (u) X (H17)
Here, L ′ is a lower triangular matrix and U ′ is an upper triangular matrix.

式(H17)より、列ベクトルYは、以下の式で表わされる。
Y≡E(v)U′-1L′-1(u))X ・・・(H18)
From the equation (H17), the column vector Y is expressed by the following equation.
Y≡E (v) U ′ −1 L ′ −1 A (u)) X (H18)

上三角行列U′は、以下の式のように、基本上三角行列U′i(i=1〜m)の積に分解される。
U′≡U′mU′m-1・・・U′2U′1 ・・・(H19)
式(H19)より、U′-1は、以下の式で表わされる。
The upper triangular matrix U ′ is decomposed into products of basic upper triangular matrices U ′ i (i = 1 to m) as in the following equation.
U'≡U 'm U' m-1 ··· U '2 U' 1 ··· (H19)
From the formula (H19), U ′ −1 is represented by the following formula.

U′-1≡U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(H20) U ' -1 ≡ U' 1 -1 U ' 2 -1 ... U' m-1 -1 U ' m -1 ... (H20)

下三角行列L′は、以下の式のように、基本下三角行列L′i(i=1〜m)の積に分解される。
L′≡L′1L′2・・・L′m-1L′m ・・・(H21)
式(H21)より、L′-1は、以下の式で表わされる。
L′-1≡L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(H22)
The lower triangular matrix L ′ is decomposed into products of basic lower triangular matrices L ′ i (i = 1 to m) as in the following equation.
L′ ≡L ′ 1 L ′ 2 ... L ′ m−1 L ′ m (H21)
From the formula (H21), L ′ −1 is represented by the following formula.
L ′ −1 ≡L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 ... (H22)

式(H20)および式(H22)によって、式(H18)は以下の式に変形される。
Y≡E(v)(U′1 -1U′2 -1・・・U′m-1 -1U′m -1)(L′m -1L′m-1 -1・・・L′2 -1L′1 -1)A(u)X ・・・(H23)
Expression (H18) is transformed into the following expression by Expression (H20) and Expression (H22).
Y≡E (v) (U ′ 1 −1 U ′ 2 −1 ... U ′ m-1 −1 U ′ m −1 ) (L ′ m −1 L ′ m−1 −1 ... L ' 2 -1 L' 1 -1 ) A (u) X (H23)

ところで、2を法とする演算の場合には、基本上三角行列U′i(i=1〜m)、基本下三角行列L′i(i=1〜m)は、以下のような性質を有する。
U′i≡(U′i-1 ・・・(H24)
L′i≡(L′i-1 ・・・(H25)
式(H24)および式(H25)によって、式(H23)は以下の式に変形される。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H26)
By the way, in the case of operation modulo 2, the basic upper triangular matrix U ′ i (i = 1 to m) and the basic lower triangular matrix L ′ i (i = 1 to m) have the following properties. Have.
U ′ i ≡ (U ′ i ) −1 (H24)
L ′ i ≡ (L ′ i ) −1 (H25)
Expression (H23) is transformed into the following expression by Expression (H24) and Expression (H25).
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (H26 )

式(H26)は、(2×m+3)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、E(v)、U′1〜U′t-1のt個の行列の積を1つの行列Cで表わすことができるとする。
(v)(U′1U′2・・・U′t-1)≡C ・・・(H27)
この場合、一定の条件とは、行列E(v)、U′1、U′2、・・・、U′t-1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Expression (H26) is a multiplication of (2 × m + 3) matrices, but if certain conditions are satisfied, it is assumed that the products of several matrices can be represented by one matrix. It is assumed that the product of t matrices of E (v) and U ′ 1 to U ′ t−1 can be represented by one matrix C as in the following equation.
E (v) (U ′ 1 U ′ 2 ... U ′ t-1 ) ≡C (H27)
In this case, the certain conditions, the matrix E (v), U '1 , U' 2, ···, U 't-1 of the non-diagonal terms of the non-zero elements of the number non sum of matrix C of It is assumed that the number is greater than or equal to the number of nonzero elements in the diagonal term.

式(H27)より、式(H26)は以下の式で表わされる。
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H28)
From formula (H27), formula (H26) is expressed by the following formula.
Y≡CU ' t ... U' m-1 U ' m L' m L ' m-1 ... L' 2 L ' 1 A (u) X (H28)

式(H28)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z≡(X,Y) ・・・(H29)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (H28) and the information vector X, the encoded vector Z is expressed by the following equation.
Z≡ (X, Y) (H29)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図20は、第4の実施形態の符号化器の構成を表わす図である。
(Constitution)
FIG. 20 is a diagram illustrating a configuration of an encoder according to the fourth embodiment.

図20を参照して、この符号化器2gは、第2の実施形態と同様の、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 20, this encoder 2g includes a parity check matrix decomposing unit 30, an ordering unit 40, an LU decomposing unit 34, a basic matrix decomposing unit 36, and an array unit similar to those in the second embodiment. 20. Description of these will not be repeated.

また、符号化器2gは、中間結果記憶部72と、行列記憶部78と、行列積計算部71と、行列積計算制御部127と、行列乗算数削減部75とを備える。なお、以下では、t<mとして説明する。   The encoder 2g includes an intermediate result storage unit 72, a matrix storage unit 78, a matrix product calculation unit 71, a matrix product calculation control unit 127, and a matrix multiplication number reduction unit 75. In the following description, it is assumed that t <m.

中間結果記憶部72は、式(H28)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部72は、パリティベクトルYの生成処理時に、式(H28)に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 72 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (H28). Further, the intermediate result storage unit 72 stores data representing the intermediate result of (2m−t + 3) times of matrix multiplication included in the equation (H28) during the generation process of the parity vector Y.

行列記憶部78は、基本上三角行列U′t、U′t+1、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。 The matrix storage unit 78 stores data representing basic upper triangular matrices U ′ t , U ′ t + 1 ,..., U ′ m , basic lower triangular matrices L ′ m , L ′ m−1 ,. Data representing ' 1 and data representing matrices C and A (u) are stored.

行列積計算部71は、加算器77および乗算器79を備える。行列積計算部71は、パリティベクトルYを算出するために、式(H28)に含まれる(2m−t+3)回の行列乗算を行列積計算制御部127に指示された順序で実行する。行列積計算部71は、入力される情報ベクトルX、行列記憶部78内の行列A(u)、L′1、L′2、・・・、L′m-1、L′m、U′m、U′m-1、・・・、U′t、Cを表わすデータ、および中間結果記憶部72内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部71は、式(H28)に含まれる(2m−t+3)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部72に記憶させる。また、行列積計算部71は、式(H26)に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部75から指示された行列乗算を実行する。 The matrix product calculation unit 71 includes an adder 77 and a multiplier 79. In order to calculate the parity vector Y, the matrix product calculation unit 71 performs (2m−t + 3) times of matrix multiplications included in the formula (H28) in the order instructed by the matrix product calculation control unit 127. The matrix product calculation unit 71 receives the input information vector X, the matrix A (u) , L ′ 1 , L ′ 2 ,..., L ′ m−1 , L ′ m , U ′ in the matrix storage unit 78. Each matrix multiplication is executed using two of data representing m , U ′ m−1 ,..., U ′ t , and C, and data representing an intermediate result in the intermediate result storage unit 72. The matrix product calculation unit 71 stores data representing the calculation result in the intermediate result storage unit 72 as data representing the intermediate result until (2m−t + 3) times of matrix multiplications included in the formula (H28) is completed. Let In addition, the matrix product calculation unit 71 executes matrix multiplication instructed by the matrix multiplication number reduction unit 75 when executing the process of reducing the number of matrix multiplications included in the formula (H26).

行列乗算数削減部75は、式(H26)に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部72にデータが記憶されている行列の順序が先頭からE(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部71を制御する。行列乗算数削減部75は、各乗算において、乗算の対象となる2つの行列の非対角項の非零要素数と、乗算結果である1つの行列Cの非対角項の非零要素数とを比較し、後者と前者の差が所定の閾値a(a>0)以下のときは、乗算対象の2つの行列を1つの行列Cで置換する。このようにして行列Cで置換された場合は、行列Cと次の行列との乗算が行なわれる。 When the matrix multiplication number reduction unit 75 performs the process of reducing the number of matrix multiplications included in the formula (H26), the order of the matrices in which the data is stored in the intermediate result storage unit 72 is E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) The order between the matrices is set so as to be in order, and the matrix product calculation unit 71 is controlled to perform matrix multiplication in this order. The matrix multiplication number reduction unit 75, in each multiplication, the number of non-zero elements in the off-diagonal terms of the two matrices to be multiplied and the number of non-zero elements in the off-diagonal terms of one matrix C that is the multiplication result When the difference between the latter and the former is equal to or smaller than a predetermined threshold a (a> 0), two matrices to be multiplied are replaced with one matrix C. When the matrix C is replaced in this way, the matrix C is multiplied by the next matrix.

一方、行列乗算数削減部75は、後者と前者の差が所定の閾値aを超えるときには、乗算対象の2つの行列を1つの行列Cで置換することを行なわずに、行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)の非対角項の非零要素数の総和と、行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)のうちの置換が行なわれた行列を除いた行列と行列Cの非対角項の非零要素数の総和とを比較し、後者の値が前者の値以下の場合には、行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)のうちの置換された行列を除いた行列と行列Cとを行列記憶部78に記憶させる。第t順位までの行列が置換された場合には、行列C、U′t、U′t+1、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)が行列記憶部78に記憶される。 On the other hand, when the difference between the latter and the former exceeds a predetermined threshold value a, the matrix multiplication number reduction unit 75 does not replace the two matrices to be multiplied with one matrix C, but instead replaces the matrix E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) The sum of the number of non-zero elements of the diagonal term and the matrix E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 , .., L ′ 2 , L ′ 1 , A (u) excluding the replaced matrix and the sum of the number of non-zero elements in the non-diagonal terms of the matrix C are compared. , U ′ m−1 , U ′ m , L ′ m , L ′ m−1 , matrix E (v) , U ′ 1 , U ′ 2 ,. .., L ′ 2 , L ′ 1 , A (u) except for the replaced matrix and the matrix C are stored in the matrix storage unit 78. When the matrix up to the t-th rank is replaced, the matrix C, U ′ t , U ′ t + 1 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) are stored in the matrix storage unit 78.

行列積計算制御部127は、パリティベクトルYを算出するために、行列記憶部78にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m-1、L′m、U′m、U′m-1、・・・、U′t、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部71を制御する。また、行列積計算制御部127は、式(H28)に含まれる(2m−t+3)回の行列乗算の終了後に、行列積計算部71から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 127 determines that the order of the matrices in which data is stored in the matrix storage unit 78 is A (u) , L ′ 1 , L ′ 2 ,. , L ′ m−1 , L ′ m , U ′ m , U ′ m−1 ,..., U ′ t , C are set in order, and matrix multiplication is performed in this order. The matrix product calculation unit 71 is controlled to perform this. The matrix product calculation control unit 127 causes the matrix product calculation unit 71 to output a parity vector Y as a calculation result after the (2m−t + 3) times of matrix multiplication included in the equation (H28).

(行列分解処理)
図21、第4の実施形態の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 21 is a flowchart of matrix decomposition processing according to the fourth embodiment.

図21を参照して、第2の実施形態のステップS501〜ステップS504が検査行列分解部30、行列記憶部78、中間結果記憶部72、オーダリング部40、LU分解部34、および基本行列分解部36によって実行される。ただし、生成された行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)は、第2の実施形態のように行列記憶部78にではなく、中間結果記憶部72に記憶される。(ステップS1301)。 Referring to FIG. 21, steps S501 to S504 of the second embodiment are the check matrix decomposition unit 30, the matrix storage unit 78, the intermediate result storage unit 72, the ordering unit 40, the LU decomposition unit 34, and the basic matrix decomposition unit. 36. However, the generated matrix E (v), U '1 , U' 2, ···, U 'm-1, U' m, L 'm, L' m-1, ···, L '2 , L ′ 1 , A (u) are stored not in the matrix storage unit 78 but in the intermediate result storage unit 72 as in the second embodiment. (Step S1301).

次に、行列乗算数削減部75は、中間結果記憶部72にデータが記憶されている行列について、先頭からE(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)の順となるように順序を設定する(ステップS1302)。 Next, the matrix multiplication number reduction unit 75 performs E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 from the top of the matrix for which data is stored in the intermediate result storage unit 72. , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) are set in this order (step S1302).

次に、行列乗算数削減部75は、制御変数tを1に設定する(ステップS1303)。
次に、行列乗算数削減部75は、行列記憶部78から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部72に記憶する(ステップS1304)。
Next, the matrix multiplication number reduction unit 75 sets the control variable t to 1 (step S1303).
Next, the matrix multiplication number reduction unit 75 reads data representing the matrix E (v) of the t (= 1) th rank from the matrix storage unit 78 and represents the matrix C with the matrix E (v) as the matrix C. The data is stored in the intermediate result storage unit 72 (step S1304).

行列数積削減部は、中間結果記憶部72から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部72に記憶させる(ステップS1305)。   The matrix number product reduction unit reads the data representing the matrix C from the intermediate result storage unit 72, counts the non-zero element number SC0 of the matrix C, and stores the non-zero element number SC0 in the intermediate result storage unit 72 (step). S1305).

次に、行列乗算数削減部75は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1306)。   Next, the matrix multiplication number reduction unit 75 reads data representing the (t + 1) -th rank matrix and sets the matrix as the matrix mat (step S1306).

次に、行列乗算数削減部75は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部72内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部72に記憶させる(ステップS1307)。   Next, the matrix multiplication number reduction unit 75 counts the non-zero element number SC1 of the non-diagonal term of the matrix mat, and the non-zero element number SC1 and the non-zero element number SC0 of the matrix C in the intermediate result storage unit 72 And the sum SC2 of the number of non-zero elements is stored in the intermediate result storage unit 72 (step S1307).

次に、行列積計算部71は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1308)。   Next, the matrix product calculation unit 71 calculates the product C × Mat of the matrix C and the matrix Mat, and sets the calculation result as the matrix D (step S1308).

次に、行列乗算数削減部75は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部72に記憶させる(ステップS1309)。   Next, the matrix multiplication number reduction unit 75 counts the non-zero element number SC3 of the non-diagonal term of the matrix D, and stores the non-zero element number SC3 in the intermediate result storage unit 72 (step S1309).

行列乗算数削減部75は、中間結果記憶部72から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1310)。   The matrix multiplication number reduction unit 75 reads the sum SC2 of the number of non-zero elements and the number of non-zero elements SC3 from the intermediate result storage unit 72, and determines whether the difference between SC3 and SC2 is less than or equal to the threshold value a (step). S1310).

行列乗算数削減部75は、SC3とSC2との差が閾値a以下である場合には(ステップS1310でYES)、制御変数tをインクリメントし(ステップS1311)、中間結果記憶部72内の行列Cを行列Dで更新し(ステップS1312)、さらに中間結果記憶部72内の非零要素数SC0を非零要素数SC3を更新し、ステップS1306からの処理が繰返させる。   If the difference between SC3 and SC2 is equal to or less than the threshold value a (YES in step S1310), the matrix multiplication number reduction unit 75 increments the control variable t (step S1311), and the matrix C in the intermediate result storage unit 72 Is updated with the matrix D (step S1312), the number of nonzero elements SC0 in the intermediate result storage unit 72 is updated with the number of nonzero elements SC3, and the processing from step S1306 is repeated.

一方、行列乗算数削減部75は、SC3とSC2との差が閾値aを超え(ステップS1310でNO)、かつ制御変数tが2以上の場合には(ステップS1314でYES)、行列記憶部78にデータが記憶されている行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC4を中間結果記憶部72に記憶させる(ステップS1315)。 On the other hand, when the difference between SC3 and SC2 exceeds the threshold value a (NO in step S1310) and the control variable t is 2 or more (YES in step S1314), the matrix multiplication number reduction unit 75 performs a matrix storage unit 78. matrix data are stored in E (v), U '1 , U' 2, ···, U 'm-1, U' m, L 'm, L' m-1, ···, L The number of non-zero elements of non-diagonal terms is counted for each of ′ 2 , L ′ 1 , and A (u) , and the sum SC4 of these non-zero elements is stored in the intermediate result storage unit 72 (step S1315).

次に、行列乗算数削減部75は、行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)のうちの第(t+1)順位以降の行列のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC5と中間結果記憶部72内の行列Cの非零要素数SC0との総和SC6を算出して、非零要素数の総和SC6を中間結果記憶部72に記憶させる(ステップS1316)。 Next, the matrix multiplication number reduction unit 75 generates a matrix E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1,. .. Counting the number of non-zero elements of non-diagonal terms for each of the matrices after the (t + 1) -th rank among L ′ 2 , L ′ 1 , and A (u) , and summing the number of these non-zero elements The sum SC6 of SC5 and the number of nonzero elements SC0 of the matrix C in the intermediate result storage unit 72 is calculated, and the sum SC6 of the number of nonzero elements is stored in the intermediate result storage unit 72 (step S1316).

行列乗算数削減部75は、中間結果記憶部72から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1317)。   The matrix multiplication number reduction unit 75 reads the sum SC4 of the number of nonzero elements and the sum SC6 of the number of nonzero elements from the intermediate result storage unit 72, and determines whether SC6 is SC4 or less (step S1317).

行列乗算数削減部75は、SC6がSC4以下である場合には(ステップS1317でYES)、中間結果記憶部72内の行列E(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)のうちの第1順位から第t順位までの行列を除いた行列U′t、U′t+1、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)と、行列Cとを行列記憶部78に記憶させる(ステップS1318)。 When SC6 is equal to or lower than SC4 (YES in step S1317), the matrix multiplication number reduction unit 75 determines that the matrix E (v) , U ′ 1 , U ′ 2 ,. ′ M −1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) except for the matrix from the first rank to the t rank matrix U 't, U' t + 1, ···, U 'm-1, U' m, L 'm, L' m-1, ···, L '2, L' 1, A ( u) and the matrix C are stored in the matrix storage unit 78 (step S1318).

(符号化ベクトル生成処理)
図22は、第4の実施形態の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 22 is a flowchart of an encoded vector generation process according to the fourth embodiment.

図22を参照して、行列積計算制御部127は、行列記憶部78にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m、U′m、U′m-1、・・・、U′t、Cの順となるように行列間の順序を設定する(ステップS1401)。 Referring to FIG. 22, the matrix product calculation control unit 127 determines that the order of the matrices in which data is stored in the matrix storage unit 78 is A (u) , L ′ 1 , L ′ 2 ,. The order between the matrices is set so as to be in the order of ′ m , U ′ m , U ′ m−1 ,..., U ′ t , C (step S1401).

次に、行列積計算制御部127は、制御変数iを1に設定する(ステップS1402)。   Next, the matrix product calculation control unit 127 sets the control variable i to 1 (step S1402).

行列積計算制御部127は、行列積計算部71を指示して、行列記憶部78から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部71は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部72に記憶させる(ステップS1403)。 The matrix product calculation control unit 127 instructs the matrix product calculation unit 71 to read out the data representing the i th (= 1) -th order matrix A (u) from the matrix storage unit 78, and the matrix A (u) And the product A (u) X of the input information vector X is calculated. The matrix product calculation unit 71 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 72 (step S1403).

次に、行列積計算制御部127は、制御変数iをインクリメントする(ステップS1404)。   Next, the matrix product calculation control unit 127 increments the control variable i (step S1404).

行列積計算制御部127は、制御変数iが(2m−t+3)未満の場合には(ステップS1405でYES)、行列積計算部71を指示して、行列記憶部78から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部72に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部71は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部72内の中間結果Rを表わすデータを更新する(ステップS1406)。その後、ステップS1404からの処理が繰返される。 When the control variable i is less than (2m−t + 3) (YES in step S1405), the matrix product calculation control unit 127 instructs the matrix product calculation unit 71 to receive the i-th rank matrix (from the matrix storage unit 78). causes read data representing this and Mat i), by reading the data representing the intermediate results R stored in the intermediate result storage unit 72, the product Mat i the matrix Mat i and an intermediate result R XR is calculated. The matrix product calculation unit 71 sets the vector that is the multiplication result as a new intermediate result R, and updates data representing the intermediate result R in the intermediate result storage unit 72 (step S1406). Thereafter, the processing from step S1404 is repeated.

制御変数iが(2m−t+3)となった場合には(ステップS1405でNO)、行列積計算制御部127は、行列積計算部71を指示して、行列記憶部78から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部72に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部71は、乗算結果であるベクトルをパリティべクトルYとして出力する(ステップS1407)。 When the control variable i becomes (2m−t + 3) (NO in step S1405), the matrix product calculation control unit 127 instructs the matrix product calculation unit 71 to receive the i-th rank matrix from the matrix storage unit 78. Data representing (Mat i ) is read out, and data representing the intermediate result R stored in the intermediate result storage unit 72 is read out to obtain a product Mat i × R of the matrix Mat i and the intermediate result R. Let it be calculated. The matrix product calculation unit 71 outputs the vector that is the multiplication result as the parity vector Y (step S1407).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1408)。   After that, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S1408).

(第4の実施形態の効果)
以上のように、第4の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(H28)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列U′i(i=t〜m)および基本下三角行列L′i(i=1〜m)は、第3の実施形態の基本上三角行列Ui(i=t+1〜m)および基本下三角行列Li(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(H28)の演算の計算量を式(F14)よりもさらに少なくできる。式(H28)では、第2の実施形態の式(D26)のE(v)、U′1〜U′t-1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列E(v)、U′1〜U′t-1の非対角項の非零要素数の和以下であるため、式(H28)の演算は、第2の実施形態の式(D26)の演算よりもさらに計算量が少ない。また、式(H28)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effect of the fourth embodiment)
As described above, according to the fourth embodiment, the parity vector Y is calculated according to the equation (H28) without performing backward substitution during the encoded vector generation process. Encoding can be performed. In particular, since the matrix B is ordered, the basic upper triangular matrix U ′ i (i = t to m) and the basic lower triangular matrix L ′ i (i = 1 to m) are represented by the basic upper triangle of the third embodiment. The matrix U i (i = t + 1 to m) and the basic lower triangular matrix L i (i = 1 to m) have a smaller number of non-zero elements, and the calculation amount of the expression (H28) is expressed by the expression ( F14) can be further reduced. In Expression (H28), E (v) and U ′ 1 to U ′ t−1 in Expression (D26) of the second embodiment are represented by one matrix C, and the non-diagonal terms of the matrix C Since the number of non-zero elements is equal to or less than the sum of the number of non-zero elements in the off-diagonal terms of the matrix E (v) , U ′ 1 to U ′ t−1 , the calculation of Expression (H28) is performed in the second embodiment. The calculation amount is smaller than the calculation of the equation (D26). Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the equation (H28), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列Bのオーダリングによる行列B′、A(u)、E(v)の生成、行列B′のLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、行列乗算数の削減処理を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。 Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, generation of matrices B ′, A (u) and E (v) by ordering of the matrix B, matrix B LU decomposition of LU ', decomposition of LU decomposed upper triangular matrix into product of basic upper triangular matrix, decomposition of LU decomposed lower triangular matrix into product of basic lower triangular matrix, reduction processing of matrix multiplication number Therefore, it is possible to calculate a matrix necessary for generating the parity vector Y with a small calculation amount.

[第4の実施形態の変形例1]
第4の実施形態の変形例1の符号化器は、実数演算を行なう。
[Modification 1 of Fourth Embodiment]
The encoder of the first modification of the fourth embodiment performs a real number operation.

(符号化アルゴリズム)
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(I1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
(Encoding algorithm)
The encoder receives an information vector X composed of k information bits x1, x2,..., Xk and performs a real number operation to thereby obtain m parity bits y1, y2 satisfying the following expression. ,..., Ym to generate a parity vector Y.
H (X, Y) T = 0 (I1)
Here, H is a parity check matrix (hereinafter also referred to as a check matrix), which is a matrix of m rows and n columns (= k + m).
(X, Y) T represents transposition of a vector composed of an information vector and a parity vector.

式(I1)は、実数演算の場合には、次のように変形される。
BY=−AX ・・・(I2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
Formula (I1) is modified as follows in the case of real number calculation.
BY = −AX (I2)
Here, the matrix A is a matrix of m rows and k columns including the first to kth columns of the check matrix H. The matrix B is a matrix of m rows and m columns including the (k + 1) -th column to the n-th column of the parity check matrix H.

行列Bに対して、以下のようにオーダリングを行なうとする。
まず、行列Bの2つの行を交換するとすると、式(I2)は以下のように変形される。
1BY=P1AX ・・・(I3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
Assume that ordering is performed on the matrix B as follows.
First, when the two rows of the matrix B are exchanged, the formula (I2) is transformed as follows.
P 1 BY = P 1 AX (I3)
Here, P 1 is a transformation matrix representing the first row replacement. In the case of converting i row and j row, P 1 is a matrix in which the i row and j row of the unit matrix E are exchanged.

さらに、行列Bの2つの列を交換すると、式(I3)は以下のように変形される。
1BQ11 -1Y=−P1AX ・・・(I4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
Further, when the two columns of the matrix B are exchanged, the formula (I3) is transformed as follows.
P 1 BQ 1 Q 1 -1 Y = -P 1 AX (I4)
Here, Q 1 is a transformation matrix representing the first column replacement. When converting the i column and the j column, Q 1 is a matrix in which the i column and the j column of the unit matrix E are exchanged.

以下のように新たな行列を定義する。
(1)=P1BQ1 ・・・(I5)
(1)=P1A ・・・(I6)
式(I5)および式(I6)により、式(I4)は以下の式で表わされる。
(1)1 -1Y=−A(1)X ・・・(I7)
Define a new matrix as follows:
B (1) = P 1 BQ 1 (I5)
A (1) = P 1 A (I6)
From the formula (I5) and the formula (I6), the formula (I4) is represented by the following formula.
B (1) Q 1 −1 Y = −A (1) X (I7)

さらに、行列B(1)の2つの行を交換するとすると、式(I7)は以下のように変形される。
2(1)1 -1Y=−P2(1)X ・・・(I8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
Further, when two rows of the matrix B (1) are exchanged, the formula (I7) is transformed as follows.
P 2 B (1) Q 1 -1 Y = -P 2 A (1) X (I8)
Here, P 2 is a transformation matrix representing the second row replacement.

さらに、行列B(1)の2つの列を交換すると、式(I8)は以下のように変形される。
2(1)22 -11 -1Y=−P2(1)X ・・・(I9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
Further, when the two columns of the matrix B (1) are exchanged, the formula (I8) is transformed as follows.
P 2 B (1) Q 2 Q 2 -1 Q 1 -1 Y = -P 2 A (1) X (I9)
Here, Q 2 is a transformation matrix representing the second column replacement.

以下のように新たな行列を定義する。
(2)=P2(1)2 ・・・(I10)
(2)=P2(1) ・・・(I11)
式(I10)および式(I11)により、式(I9)は以下の式で表わされる。
(2)2 -11 -1Y=−A(2)X ・・・(I12)
Define a new matrix as follows:
B (2) = P 2 B (1) Q 2 ... (I10)
A (2) = P 2 A (1) ... (I11)
From formula (I10) and formula (I11), formula (I9) is represented by the following formula.
B (2) Q 2 -1 Q 1 -1 Y = -A (2) X (I12)

同様にして、行列Bに対して、第u回(u≧1)だけ行の入れ替えおよび第v(v≧1)だげ列の入れ替えを行なう。第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を定義する。
B′=Pu・・・P21BQ12・・・Qv ・・・(I13)
(u)=Pu・・・P21A ・・・(I14)
(v)=Q12・・・Qv ・・・(I15)
式(I13)、式(I14)および式(I15)により、以下の式が成り立つ。
B′E(v)-1Y=−A(u)X ・・・(I16)
Similarly, for the matrix B, the row replacement and the v-th (v ≧ 1) extra column are performed for the u-th (u ≧ 1). Assuming that the matrix representing the s-th (1 ≦ s ≦ u) row replacement is P s and the matrix representing the s-th (1 ≦ s ≦ v) column replacement is Q s , the following new matrix Define
B '= P u ··· P 2 P 1 BQ 1 Q 2 ··· Q v ··· (I13)
A (u) = P u ... P 2 P 1 A (I14)
E (v) = Q 1 Q 2 ... Q v (I15)
The following formulas are established by formula (I13), formula (I14), and formula (I15).
B'E (v) -1 Y = -A (u) X (I16)

行列B′をLU分解すると、式(I16)は以下の式に変形される。
L′U′QV -1・・・Q2 -11 -1Y=A(u)X ・・・(I17)
ここで、L′は下三角行列であり、U′は上三角行列である。
式(I17)より、列ベクトルYは、以下の式で表わされる。
Y=−E(v)U′-1L′-1(u)X ・・・(I18)
When the matrix B ′ is subjected to LU decomposition, the equation (I16) is transformed into the following equation.
L′ U′Q V −1 ... Q 2 −1 Q 1 −1 Y = A (u) X (I17)
Here, L ′ is a lower triangular matrix and U ′ is an upper triangular matrix.
From the equation (I17), the column vector Y is expressed by the following equation.
Y = -E (v) U'- 1 L'- 1 A (u) X (I18)

上三角行列U′は、以下の式のように、基本上三角行列U′i(i=1〜m)の積に分解される。
U′=U′mU′m-1・・・U′2U′1 ・・・(I19)
ここで、逆行列U′i -1は、対角項の要素が1であり、かつ非対角項の要素はU′iの要素の符号を反転したものである。
式(I19)より、U′-1は、以下の式で表わされる。
U′-1=U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(I20)
The upper triangular matrix U ′ is decomposed into products of basic upper triangular matrices U ′ i (i = 1 to m) as in the following equation.
U '= U' m U ' m-1 ··· U' 2 U '1 ··· (I19)
Here, in the inverse matrix U ′ i −1 , the element of the diagonal term is 1, and the element of the off-diagonal term is obtained by inverting the sign of the element of U ′ i .
From the formula (I19), U ′ −1 is represented by the following formula.
U ′ −1 = U ′ 1 −1 U ′ 2 −1 ... U ′ m−1 −1 U ′ m −1 (I20)

下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L′=L′1L′2・・・L′m-1L′m ・・・(I21)
ここで、逆行列L′i -1は、対角項の要素が1であり、かつ非対角項の要素はL′iの要素の符号を反転したものである。
式(I21)より、L′-1は、以下の式で表わされる。
L′-1=L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(I22)
The lower triangular matrix L is decomposed into products of basic lower triangular matrices L i (i = 1 to m) as shown in the following expression.
L ′ = L ′ 1 L ′ 2 ... L ′ m−1 L ′ m (I21)
Here, in the inverse matrix L ′ i −1 , the element of the diagonal term is 1, and the element of the non-diagonal term is obtained by inverting the sign of the element of L ′ i .
From the formula (I21), L ′ −1 is represented by the following formula.
L ′ −1 = L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 (I22)

式(I20)および式(I22)によって、式(I18)は以下の式に変形される。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(I23)
Formula (I18) is transformed into the following formula by Formula (I20) and Formula (I22).
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (I23)

式(I23)は、(2×m+3)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、E(v)、U′1 -1〜U′t-1 -1のt個の行列の積を1つの行列Cで表わすことができるとする。
(v)(U′1 -1U′2 -1・・・U′t-1 -1)≡C ・・・(I24)
この場合、一定の条件とは、行列E(v)、U′1 -1、U′2 -1、・・・、U′t-1 -1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Equation (I23) is a multiplication of (2 × m + 3) matrices, but if certain conditions are satisfied, the product of several matrices can be represented by one matrix. It is assumed that the product of t matrices of E (v) and U ′ 1 −1 to U ′ t−1 −1 can be represented by one matrix C as in the following equation.
E (v) (U ′ 1 −1 U ′ 2 −1 ... U ′ t−1 −1 ) ≡C (I24)
In this case, the certain conditions, the matrix E (v), U '1 -1, U' 2 -1, ···, U 't-1 of the non-diagonal terms of -1 of the number of non-zero elements Assume that the sum is equal to or greater than the number of non-zero elements in the off-diagonal terms of matrix C.

式(I24)より、式(I23)は以下の式で表わされる。
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(I25)
From formula (I24), formula (I23) is expressed by the following formula.
Y = −CU ′ t −1 ... U ′ m−1 −1 U ′ m −1 L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 A ( u) X (I25)

式(I25)で算出されるパリティベクトルYと、情報ベクトルXを用いて、符号化ベクトルZは、以下の式で表わされる。
Z=(X,Y) ・・・(I26)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
Using the parity vector Y calculated by the equation (I25) and the information vector X, the encoded vector Z is expressed by the following equation.
Z = (X, Y) (I26)
Here, the first bit to the k-th bit of the encoded vector Z are bits of the information vector X, and the (k + 1) -th bit to the n-th bit of the encoded vector Z are bits of the parity vector Y.

(構成)
図23は、第4の実施形態の変形例1の符号化器の構成を表わす図である。
(Constitution)
FIG. 23 is a diagram illustrating a configuration of an encoder according to Modification 1 of the fourth embodiment.

図23を参照して、この符号化器2hは、第2の実施形態の変形例1と同様の、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、逆行列計算部43と、符号反転部99と、配列部20とを備える。これらについては説明を繰返さない。   Referring to FIG. 23, this encoder 2h includes a parity check matrix decomposing unit 30, an ordering unit 40, an LU decomposing unit 34, and a basic matrix decomposing unit 36, which are the same as in the first modification of the second embodiment. And an inverse matrix calculation unit 43, a sign inversion unit 99, and an arrangement unit 20. Description of these will not be repeated.

また、符号化器2hは、中間結果記憶部82と、行列記憶部88と、行列積計算部81と、行列積計算制御部128と、行列乗算数削減部85とを備える。なお、以下では、t<mとして説明する。   The encoder 2h includes an intermediate result storage unit 82, a matrix storage unit 88, a matrix product calculation unit 81, a matrix product calculation control unit 128, and a matrix multiplication number reduction unit 85. In the following description, it is assumed that t <m.

中間結果記憶部82は、式(I25)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部82は、パリティベクトルYの生成処理時に、式(I25)に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 82 stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (I25). Further, the intermediate result storage unit 82 stores data representing an intermediate result of (2m−t + 3) times of matrix multiplication included in the equation (I25) at the time of generating the parity vector Y.

行列記憶部88は、基本上三角行列の逆行列U′t -1、U′t+1 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。 The matrix storage unit 88 includes data representing the inverse matrices U ′ t −1 , U ′ t + 1 −1 ,..., U ′ m −1 of the basic upper triangular matrix, and the inverse matrix L ′ m of the basic lower triangular matrix. −1 , L ′ m−1 −1 ,..., L ′ 1 −1 , and data representing the matrices C and A (u) are stored.

行列積計算部81は、加算器87および乗算器89を備える。行列積計算部81は、パリティベクトルYを算出するために、式(I25)に含まれる(2m−t+3)回の行列乗算を行列積計算制御部128に指示された順序で実行する。行列積計算部81は、入力される情報ベクトルX、行列記憶部88内の行列A(u)、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′t -1、Cを表わすデータ、および中間結果記憶部82内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行する。行列積計算部81は、式(I25)に含まれる(2m−t+3)回の行列乗算が終了するまでの間は、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部82に記憶させる。また、行列積計算部81は、式(I23)に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部85から指示された行列乗算を実行する。 The matrix product calculation unit 81 includes an adder 87 and a multiplier 89. In order to calculate the parity vector Y, the matrix product calculation unit 81 performs (2m−t + 3) times of matrix multiplications included in the equation (I25) in the order instructed by the matrix product calculation control unit 128. The matrix product calculation unit 81 inputs the input information vector X, the matrix A (u) , L ′ 1 −1 , L ′ 2 −1 ,..., L ′ m−1 −1 in the matrix storage unit 88. Among data representing L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ t −1 , C, and data representing intermediate results in the intermediate result storage unit 82 Are used to perform each matrix multiplication. The matrix product calculation unit 81 stores the data representing the calculation result in the intermediate result storage unit 82 as the data representing the intermediate result until (2m−t + 3) times of matrix multiplication included in the formula (I25) is completed. Let Further, the matrix product calculation unit 81 executes the matrix multiplication instructed by the matrix multiplication number reduction unit 85 when executing the process of reducing the number of matrix multiplications included in the formula (I23).

行列乗算数削減部85は、式(I23)に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部82にデータが記憶されている行列の順序が先頭からE(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部81を制御する。行列乗算数削減部85は、各乗算において、乗算の対象となる2つの行列の非対角項の非零要素数と、乗算結果である1つの行列Cの非対角項の非零要素数とを比較し、後者と前者の差が所定の閾値a(a>0)以下のときは、乗算対象の2つの行列を1つの行列Cで置換する。このようにして行列Cで置換された場合は、行列Cと次の行列との乗算が行なわれる。 When the matrix multiplication number reduction unit 85 performs the process of reducing the number of matrix multiplications included in the formula (I23), the order of the matrices in which the data is stored in the intermediate result storage unit 82 is E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1 ,. The order between the matrices is set so as to be in the order of ' 2 -1 , L' 1 -1 , A (u) , and the matrix product calculation unit 81 is controlled so as to perform matrix multiplication in this order. The matrix multiplication number reduction unit 85, in each multiplication, the number of non-zero elements in the off-diagonal terms of the two matrices to be multiplied and the number of non-zero elements in the off-diagonal terms of one matrix C that is the multiplication result When the difference between the latter and the former is equal to or smaller than a predetermined threshold a (a> 0), two matrices to be multiplied are replaced with one matrix C. When the matrix C is replaced in this way, the matrix C is multiplied by the next matrix.

一方、行列乗算数削減部85は、後者と前者の差が所定の閾値aを超えるときには、乗算対象の2つの行列を1つの行列Cで置換することを行なわずに、行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)の非対角項の非零要素数の総和と、行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)のうちの置換が行なわれた行列を除いた行列と行列Cの非対角項の非零要素数の総和とを比較し、後者の値が前者の値以下の場合には、行列v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)のうちの置換された行列を除いた行列と行列Cとを行列記憶部88に記憶させる。第t順位までの行列が置換された場合には、行列C、U′t -1、U′t+1 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)が行列記憶部88に記憶される。 On the other hand, when the difference between the latter and the former exceeds a predetermined threshold value a, the matrix multiplication number reduction unit 85 does not replace the two matrices to be multiplied with one matrix C, but instead replaces the matrix E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1,. 2 −1 , L ′ 1 −1 , the sum of the number of non-zero elements in the off-diagonal terms of A (u) and the matrix E (v) , U ′ 1 −1 , U ′ 2 −1 ,. Of U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , A (u) Are compared with the sum of the number of non-zero elements in the off-diagonal term of the matrix C. If the latter value is less than or equal to the former value, the matrix v) , U ′ 1 -1, U '2 -1, ···, U' m-1 -1, U 'm -1, L' m -1, L 'm-1 -1, ···, L' 2 - 1 , L ′ 1 −1 , matrix excluding replaced matrix of A (u) And the matrix C are stored in the matrix storage unit 88. When the matrix up to the t-th rank is replaced, the matrix C, U ′ t −1 , U ′ t + 1 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L 'm -1, L' m- 1 -1, ···, L '2 -1, L' 1 -1, a (u) is stored in the matrix storage unit 88.

行列積計算制御部128は、パリティベクトルYを算出するために、行列記憶部88にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′t -1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部81を制御する。また、行列積計算制御部128は、式(I25)に含まれる(2m−t+3)回の行列乗算の終了後に、行列積計算部81から計算結果であるベクトルY′(=CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X)を符号反転部99へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit 128 determines that the order of the matrices in which data is stored in the matrix storage unit 88 is A (u) , L ′ 1 −1 , L ′ 2 −1 from the top. , ···, L 'm-1 -1, L' m -1, U 'm -1, U' m-1 -1, ···, U 't -1, such that the order of C The order between the matrices is set, and the matrix product calculation unit 81 is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit 128, after the completion of (2m−t + 3) matrix multiplications included in the formula (I25), the vector Y ′ (= CU ′ t −1) as the calculation result from the matrix product calculation unit 81.・ ・ ・ U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (u) X) Output to 99.

(行列分解処理)
図24は、第4の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 24 is a flowchart of matrix decomposition processing according to Modification 1 of the fourth embodiment.

図24を参照して、まず、第2の実施形態の変形例1のステップS701〜ステップS705が検査行列分解部30、行列記憶部88、中間結果記憶部82、オーダリング部40、LU分解部34、基本行列分解部36、および逆行列計算部43によって実行される。ただし、生成された行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)は、第2の実施形態の変形例1のように行列記憶部88にではなく、中間結果記憶部82に記憶される(ステップS1501)。 Referring to FIG. 24, first, Steps S701 to S705 of Modification 1 of the second embodiment are the check matrix decomposition unit 30, the matrix storage unit 88, the intermediate result storage unit 82, the ordering unit 40, and the LU decomposition unit 34. This is executed by the basic matrix decomposition unit 36 and the inverse matrix calculation unit 43. However, the generated matrices E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m −1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , A (u) are not stored in the matrix storage unit 88 as in the first modification of the second embodiment, but are stored as intermediate results Stored in the unit 82 (step S1501).

次に、行列乗算数削減部85は、中間結果記憶部82にデータが記憶されている行列について、先頭からE(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)の順となるように順序を設定する(ステップS1502)。 Next, the matrix multiplication number reduction unit 85 applies E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U from the top of the matrix for which data is stored in the intermediate result storage unit 82. ′ M −1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , A (u) The order is set so as to be (step S1502).

次に、行列乗算数削減部85は、制御変数tを1に設定する(ステップS1503)。
次に、行列乗算数削減部85は、行列記憶部88から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部82に記憶する(ステップS1504)。
Next, the matrix multiplication number reduction unit 85 sets the control variable t to 1 (step S1503).
Next, the matrix multiplication number reduction unit 85 reads data representing the t (= 1) -th rank matrix E (v) from the matrix storage unit 88 and represents the matrix C with the matrix E (v) as the matrix C. Data is stored in the intermediate result storage unit 82 (step S1504).

行列数積削減部は、中間結果記憶部82から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部82に記憶させる(ステップS1505)。   The matrix number product reduction unit reads the data representing the matrix C from the intermediate result storage unit 82, counts the non-zero element number SC0 of the matrix C, and stores the non-zero element number SC0 in the intermediate result storage unit 82 (step). S1505).

次に、行列乗算数削減部85は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1506)。   Next, the matrix multiplication number reduction unit 85 reads data representing the (t + 1) -th rank matrix and sets the matrix as the matrix mat (step S1506).

次に、行列乗算数削減部85は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部82内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部82に記憶させる(ステップS1507)。   Next, the matrix multiplication number reduction unit 85 counts the number of non-zero elements SC1 of the non-diagonal term of the matrix mat, and the number of non-zero elements SC1 and the number of non-zero elements SC0 of the matrix C in the intermediate result storage unit 82 And SC2 of the number of non-zero elements is stored in the intermediate result storage unit 82 (step S1507).

次に、行列積計算部81は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1508)。   Next, the matrix product calculation unit 81 calculates a product C × Mat of the matrix C and the matrix Mat, and sets the calculation result as the matrix D (step S1508).

次に、行列乗算数削減部85は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部82に記憶させる(ステップS1509)。   Next, the matrix multiplication number reduction unit 85 counts the non-zero element number SC3 of the non-diagonal term of the matrix D, and stores the non-zero element number SC3 in the intermediate result storage unit 82 (step S1509).

行列乗算数削減部85は、中間結果記憶部82から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1510)。   The matrix multiplication number reduction unit 85 reads the sum SC2 of the number of non-zero elements and the number of non-zero elements SC3 from the intermediate result storage unit 82, and determines whether the difference between SC3 and SC2 is less than or equal to the threshold value a (step S1510).

行列乗算数削減部85は、SC3とSC2との差が閾値a以下である場合には(ステップS1510でYES)、制御変数tをインクリメントし(ステップS1511)、中間結果記憶部82内の行列Cを行列Dで更新し(ステップS1512)、さらに中間結果記憶部82内の非零要素数SC0を非零要素数SC3を更新し、ステップS1506からの処理が繰返させる。   If the difference between SC3 and SC2 is equal to or smaller than the threshold value a (YES in step S1510), the matrix multiplication number reduction unit 85 increments the control variable t (step S1511), and the matrix C in the intermediate result storage unit 82 Is updated with the matrix D (step S1512), the number of nonzero elements SC0 in the intermediate result storage unit 82 is updated with the number of nonzero elements SC3, and the processing from step S1506 is repeated.

一方、行列乗算数削減部85は、SC3とSC2との差が閾値aを超え(ステップS1510でNO)、かつ制御変数tが2以上の場合には(ステップS1514でYES)、行列記憶部88にデータが記憶されている行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC4を中間結果記憶部82に記憶させる(ステップS1515)。 On the other hand, when the difference between SC3 and SC2 exceeds the threshold value a (NO in step S1510) and the control variable t is 2 or more (YES in step S1514), the matrix multiplication unit reduction unit 85 matrix processing unit 88 matrix data are stored in E (v), U '1 -1, U' 2 -1, ···, U 'm-1 -1, U' m -1, L 'm -1, L ′ M −1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , and A (u) are counted for the number of non-diagonal non-zero elements, The sum SC4 is stored in the intermediate result storage unit 82 (step S1515).

次に、行列乗算数削減部85は、行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)のうちの第(t+1)順位以降の行列のそれぞれについて非対角項の非零要素数をカウントし、それらの非零要素数の総和SC5と中間結果記憶部82内の行列Cの非零要素数SC0との総和SC6を算出して、非零要素数の総和SC6を中間結果記憶部82に記憶させる(ステップS1516)。 Next, the matrix multiplication number reduction unit 85 performs the matrix E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , A (u) , the matrix after the (t + 1) th rank The number of non-zero elements is counted, and the sum SC6 of the total number SC5 of these non-zero elements and the number of non-zero elements SC0 of the matrix C in the intermediate result storage unit 82 is calculated. The result is stored in the intermediate result storage unit 82 (step S1516).

行列乗算数削減部85は、中間結果記憶部82から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1517)。   The matrix multiplication number reduction unit 85 reads the sum SC4 of the number of nonzero elements and the sum SC6 of the number of nonzero elements from the intermediate result storage unit 82, and determines whether SC6 is SC4 or less (step S1517).

行列乗算数削減部85は、SC6がSC4以下である場合には(ステップS1517でYES)、中間結果記憶部82内の行列E(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)のうちの第1順位から第t順位までの行列を除いた行列U′t -1、U′t+1 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)と、行列Cとを行列記憶部88に記憶させる(ステップS1518)。 When SC6 is equal to or lower than SC4 (YES in step S1517), the matrix multiplication number reduction unit 85 determines that the matrix E (v) , U ′ 1 −1 , U ′ 2 −1 ,. .., U ' m-1 -1 , U' m -1 , L ' m -1 , L' m-1 -1 , ..., L ' 2 -1 , L' 1 -1 , A (u ) , U ′ t −1 , U ′ t + 1 −1 ,..., U ′ m−1 −1 , U ′ m −1 , excluding the first to t-th order matrices L ′ m −1 , L ′ m−1 −1 ,..., L ′ 2 −1 , L ′ 1 −1 , A (u) and the matrix C are stored in the matrix storage unit 88 (step S1518). ).

(符号化ベクトル生成処理)
図25は、第4の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 25 is a flowchart of an encoded vector generation process according to Modification 1 of the fourth embodiment.

図25を参照して、行列積計算制御部128は、行列記憶部88にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m -1、U′m -1、U′m-1 -1、・・・、U′t -1、Cの順となるように行列間の順序を設定する(ステップS1601)。 Referring to FIG. 25, the matrix product calculation control unit 128 determines that the order of the matrices in which data is stored in the matrix storage unit 88 is A (u) , L ′ 1 −1 , L ′ 2 −1,. .., L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ t −1 , C are set in the order of the matrix (step S1601). ).

次に、行列積計算制御部128は、制御変数iを1に設定する(ステップS1602)。   Next, the matrix product calculation control unit 128 sets the control variable i to 1 (step S1602).

行列積計算制御部128は、行列積計算部81を指示して、行列記憶部88から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部81は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部82に記憶させる(ステップS1603)。 The matrix product calculation control unit 128 instructs the matrix product calculation unit 81 to read out the data representing the i th (= 1) -th order matrix A (u) from the matrix storage unit 88, and the matrix A (u) And the product A (u) X of the input information vector X is calculated. The matrix product calculation unit 81 sets the vector that is the multiplication result as the intermediate result R, and stores the data representing the intermediate result R in the intermediate result storage unit 82 (step S1603).

次に、行列積計算制御部128は、制御変数iをインクリメントする(ステップS1604)。   Next, the matrix product calculation control unit 128 increments the control variable i (step S1604).

行列積計算制御部128は、制御変数iが(2m−t+3)未満の場合には(ステップS1605でYES)、行列積計算部81を指示して、行列記憶部88から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部82に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部81は、乗算結果であるベクトルを新たな中間結果Rとし、中間結果記憶部82内の中間結果Rを表わすデータを更新する(ステップS1606)。その後、ステップS1604からの処理が繰返される。 If the control variable i is less than (2m−t + 3) (YES in step S1605), the matrix product calculation control unit 128 instructs the matrix product calculation unit 81 to receive the i-th rank matrix (from the matrix storage unit 88). causes read data representing this and Mat i), by reading the data representing the intermediate results R stored in the intermediate result storage unit 82, the product Mat i the matrix Mat i and an intermediate result R XR is calculated. The matrix product calculation unit 81 sets the vector that is the multiplication result as a new intermediate result R, and updates the data representing the intermediate result R in the intermediate result storage unit 82 (step S1606). Thereafter, the processing from step S1604 is repeated.

制御変数iが(2m−t+3)となった場合には(ステップS1605でNO)、行列積計算制御部128は、行列積計算部81を指示して、行列記憶部88から第i順位の行列(Mati)を表わすデータを読み出させるとともに、中間結果記憶部82に記憶されている中間結果Rを表わすデータとを読出させて、行列Matiと中間結果Rとの積Mati×Rを計算させる。行列積計算部81は、乗算結果であるベクトルY′を符号反転部99に出力する。符号反転部99は、ベクトルY′の符号を反転したものをパリティべクトルYとして出力する(ステップS1607)。 When the control variable i becomes (2m−t + 3) (NO in step S1605), the matrix product calculation control unit 128 instructs the matrix product calculation unit 81 to receive the i-th rank matrix from the matrix storage unit 88. Data representing (Mat i ) is read out, and data representing the intermediate result R stored in the intermediate result storage unit 82 is read out to obtain a product Mat i × R of the matrix Mat i and the intermediate result R. Let it be calculated. The matrix product calculation unit 81 outputs a vector Y ′ as a multiplication result to the sign inversion unit 99. The sign reversing unit 99 outputs the inverted vector Y ′ as the parity vector Y (step S1607).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1608)。   After that, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S1608).

(第4の実施形態の変形例1の効果)
以上のように、第4の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(I25)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列の逆行列U′i -1(i=t〜m)および基本下三角行列の逆行列L′i -1(i=1〜m)は、第3の実施形態の変形例1の基本上三角行列の逆行列Ui -1(i=t+1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(I25)の演算の計算量を式(G11)よりもさらに少なくできる。式(I25)では、第2の実施形態の変形例1の式(E23)のE(v)、U′1 -1〜U′t-1 -1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列E(v)、U′1 -1〜U′t-1 -1の非対角項の非零要素数の和以下であるため、式(I25)の演算は、第2の実施形態の変形例1の式(E23)の演算よりもさらに計算量が少ない。また、式(I25)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effect of Modification 1 of Fourth Embodiment)
As described above, according to the first modification of the fourth embodiment, the parity vector Y is calculated according to the equation (I25) without performing backward substitution at the time of the encoded vector generation process. The information vector X can be encoded. In particular, since the matrix B is ordered, the inverse matrix U ′ i −1 (i = t to m) of the basic upper triangular matrix and the inverse matrix L ′ i −1 (i = 1 to m) of the basic lower triangular matrix are The inverse upper matrix U i −1 (i = t + 1 to m) of the basic upper triangular matrix and the inverse matrix L i −1 (i = 1 to m) of the basic lower triangular matrix of the first modification of the third embodiment Thus, the number of non-zero elements is smaller, and the amount of calculation of the equation (I25) can be further reduced than that of the equation (G11). In Expression (I25), E (v) and U ′ 1 −1 to U ′ t−1 −1 in Expression (E23) of Modification 1 of the second embodiment are represented by one matrix C, and Since the number of non-zero elements of the non-diagonal terms of the matrix C is less than or equal to the sum of the number of non-zero elements of the non-diagonal terms of the matrix E (v) , U ′ 1 −1 to U ′ t−1 −1 The calculation of (I25) has a smaller amount of calculation than the calculation of Expression (E23) in Modification 1 of the second embodiment. Further, since the parity vector Y is calculated by sequentially executing the matrix multiplication on the right side of the formula (I25), the result of each matrix multiplication becomes a vector, and the capacity for storing the intermediate result can be reduced.

また、行列分解処理時において、行列Bの逆行列を計算するという計算量の多い演算を行なうことなく、行列Bのオーダリングによる行列B′、A(u)、E(v)の生成、行列B′のLU分解、LU分解された上三角行列の基本上三角行列の積への分解、LU分解された下三角行列の基本下三角行列の積への分解、基本上三角行列および基本下三角行列の非対角項の符号の反転、行列乗算数の削減処理を行なえばよいので、少ない計算量でパリティベクトルYを生成するのに必要な行列を算出することができる。 Further, at the time of matrix decomposition processing, without performing an operation with a large amount of calculation of calculating an inverse matrix of the matrix B, generation of matrices B ′, A (u) and E (v) by ordering of the matrix B, matrix B LU decomposition of ′, decomposition of LU decomposed upper triangular matrix into product of basic upper triangular matrix, decomposition of LU decomposed lower triangular matrix into product of basic lower triangular matrix, basic upper triangular matrix and basic lower triangular matrix Therefore, the matrix necessary for generating the parity vector Y can be calculated with a small amount of calculation.

[第5の実施形態]
第5の実施形態の符号化器は、2を法とする演算を行なう。この符号化器は、符号化ベクトル処理を複数の行列積計算部で並列実行するものである。
[Fifth Embodiment]
The encoder of the fifth embodiment performs an operation modulo 2. This encoder performs encoded vector processing in parallel by a plurality of matrix product calculation units.

(符号化アルゴリズム)
第5の実施形態の符号化アルゴリズムは、第1の実施形態と同様である。
(Encoding algorithm)
The encoding algorithm of the fifth embodiment is the same as that of the first embodiment.

(構成)
図26は、第5の実施形態の符号化器の構成を表わす図である。
(Constitution)
FIG. 26 is a diagram illustrating a configuration of an encoder according to the fifth embodiment.

図26を参照して、この符号化器2iは、第1の実施形態と同様の、検査行列分解部10と、LU分解部14と、基本行列分解部16と、行列記憶部18と、配列部20とを備える。   Referring to FIG. 26, the encoder 2i includes a parity check matrix decomposition unit 10, an LU decomposition unit 14, a basic matrix decomposition unit 16, a matrix storage unit 18, and an array similar to those in the first embodiment. Part 20.

符号化器は、さらに、中間結果記憶部92と、行列積計算部91と、行列積計算制御部129とを備える。   The encoder further includes an intermediate result storage unit 92, a matrix product calculation unit 91, and a matrix product calculation control unit 129.

行列積計算部91は、第1の行列積計算部97と、第2の行列積計算部98とを備える。   The matrix product calculation unit 91 includes a first matrix product calculation unit 97 and a second matrix product calculation unit 98.

第1の行列積計算部97は、加算器94および乗算器93を備える。行列積計算部91は、パリティベクトルYを算出するために、式(B12)に含まれる右から1番目から(m+1)番目までの(m+1)回の行列乗算を行列積計算制御部129に指示された順序で実行する。行列積計算部91は、入力される情報ベクトルX、行列記憶部18内の行列Lm、Lm-1、・・・、L1、Aを表わすデータ、および中間結果記憶部92内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行し、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部92に記憶させる。(m+1)回の行列乗算が終了したときには、中間結果である列ベクトルR1(=Lmm-1・・・L21AX)が得られる。 The first matrix product calculation unit 97 includes an adder 94 and a multiplier 93. In order to calculate the parity vector Y, the matrix product calculation unit 91 instructs the matrix product calculation control unit 129 to perform (m + 1) -th matrix multiplication from the first to (m + 1) th from the right included in the equation (B12). Run in the order specified. The matrix product calculation unit 91 receives the input information vector X, data representing the matrices L m , L m−1 ,..., L 1 , A in the matrix storage unit 18, and the intermediate in the intermediate result storage unit 92. Each matrix multiplication is executed using two of the data representing the results, and the data representing the calculation results are stored in the intermediate result storage unit 92 as data representing the intermediate results. When (m + 1) matrix multiplications are completed, a column vector R 1 (= L m L m−1 ... L 2 L 1 AX) as an intermediate result is obtained.

第2の行列積計算部98は、加算器96および乗算器95を備える。行列積計算部91は、パリティベクトルYを算出するために、式(B12)に含まれる右から(m+2)番目から(2m+1)番目までのm回の行列乗算を行列積計算制御部129に指示された順序で実行する。行列積計算部91は、行列記憶部18内の行列U1、U2、・・・、Umを表わすデータ、および中間結果記憶部92内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行し、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部92に記憶させる。m回の行列乗算が終了したときには、中間結果である行列R2(=U12・・・Um-1m)が得られる。 The second matrix product calculation unit 98 includes an adder 96 and a multiplier 95. In order to calculate the parity vector Y, the matrix product calculation unit 91 instructs the matrix product calculation control unit 129 to perform m times of matrix multiplication from the (m + 2) th to the (2m + 1) th from the right included in the equation (B12). Run in the order specified. The matrix product calculation unit 91 uses two of data representing the matrices U 1 , U 2 ,..., U m in the matrix storage unit 18 and data representing the intermediate results in the intermediate result storage unit 92. Each matrix multiplication is executed, and data representing the calculation result is stored in the intermediate result storage unit 92 as data representing the intermediate result. When m matrix multiplications are completed, a matrix R 2 (= U 1 U 2 ... U m−1 U m ) as an intermediate result is obtained.

また、第1の行列積計算部97は、中間結果R1と中間結果R2との積R2×R1を計算し、計算結果であるベクトルをパリティべクトルYとして出力する。 The first matrix product calculation unit 97 calculates a product R 2 × R 1 of the intermediate result R 1 and the intermediate result R 2 and outputs a vector as a calculation result as the parity vector Y.

行列積計算制御部129は、パリティベクトルYを算出するために、行列記憶部18にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U2、U1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部91を制御する。より具体的には、行列積計算制御部129は、第1の行列乗算器に、情報ベクトルX、第1順位〜第(m+1)順位の行列についての行列乗算をこの順序で実行させて、これらすべての行列乗算が終了後に、中間結果R1を表わすデータを第1の行列積計算部97へ出力する。また、行列積計算制御部129は、第2の行列乗算器に、第(m+1)順位〜第(2m+1)順位の行列についての行列乗算をこの順序で実行させて、これらすべての行列乗算が終了後に、中間結果R2を表わすデータを第1の行列積計算部97へ出力する。また、行列積計算制御部129は、式(B12)に含まれる(2m+1)回の行列乗算の終了後に、第1の行列積計算部97から計算結果であるパリティベクトルYを出力させる。 Matrix product calculation control unit 129, in order to calculate the parity vector Y, A sequence from the beginning of the matrix data in the matrix storage unit 18 is stored, L 1, L 2, ··· , L m-1 , L m , U m , U m−1 ,..., U 2 , U 1 are set in order, and the matrix product calculation unit 91 is set to perform matrix multiplication in this order. Control. More specifically, the matrix product calculation control unit 129 causes the first matrix multiplier to perform matrix multiplication on the information vector X, the first rank to the (m + 1) th rank matrix in this order. After all matrix multiplications are completed, data representing intermediate result R 1 is output to first matrix product calculation unit 97. Further, the matrix product calculation control unit 129 causes the second matrix multiplier to perform matrix multiplication on the (m + 1) -th to (2m + 1) -th rank matrices in this order, and all these matrix multiplications are completed. Later, data representing the intermediate result R 2 is output to the first matrix product calculator 97. Further, the matrix product calculation control unit 129 causes the first matrix product calculation unit 97 to output a parity vector Y as a calculation result after the (2m + 1) times of matrix multiplication included in the equation (B12).

中間結果記憶部92は、式(B12)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部92は、パリティベクトルYの生成処理時に、第1の行列積計算部97および第2の行列積計算部98から出力される式(B12)に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit 92 stores data representing an intermediate result in the process (matrix decomposition process) for generating the matrix included in the formula (B12). In addition, the intermediate result storage unit 92 includes (2m + 1) times included in the expression (B12) output from the first matrix product calculation unit 97 and the second matrix product calculation unit 98 during the parity vector Y generation process. Data representing intermediate results of matrix multiplication is stored.

(行列分解処理)
第5の実施形態の行列分解処理の手順は、第1の実施形態と同様であるので、ここでは説明を繰返さない。
(Matrix decomposition processing)
Since the matrix decomposition processing procedure of the fifth embodiment is the same as that of the first embodiment, the description thereof will not be repeated here.

(符号化ベクトル生成処理)
図27は、第5の実施形態の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 27 is a flowchart of an encoded vector generation process according to the fifth embodiment.

図27を参照して、行列積計算制御部129は、行列記憶部18にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U2、U1の順となるように行列間の順序を設定する(ステップS1701)。 Referring to FIG. 27, the matrix product calculation control unit 129 determines that the order of the matrices in which data is stored in the matrix storage unit 18 is A, L 1 , L 2 ,..., L m−1 , L The order between the matrices is set so as to be in the order of m , U m , U m−1 ,..., U 2 , U 1 (step S1701).

行列積計算制御部129は、第1の行列積計算部97に対するステップS1702〜S1706の処理と、第2の行列積計算部98に対するステップS1707〜S1711の処理が同時に並行して実行されるように制御する。   The matrix product calculation control unit 129 performs the processes of steps S1702 to S1706 for the first matrix product calculation unit 97 and the processes of steps S1707 to S1711 for the second matrix product calculation unit 98 simultaneously in parallel. Control.

行列積計算制御部129は、制御変数iを1に設定する(ステップS1702)。
行列積計算制御部129は、第1の行列積計算部97を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。第1の行列積計算部97は、乗算結果であるベクトルを中間結果R1とし、中間結果R1を表わすデータを中間結果記憶部92に記憶させる(ステップS1703)。
The matrix product calculation control unit 129 sets the control variable i to 1 (step S1702).
The matrix product calculation control unit 129 instructs the first matrix product calculation unit 97 to read out the data representing the i-th (= 1) -th rank matrix A from the matrix storage unit 18 and input the matrix A and the input The product AX with the calculated information vector X is calculated. The first matrix product calculation unit 97 sets the vector, which is the multiplication result, as the intermediate result R 1 and stores data representing the intermediate result R 1 in the intermediate result storage unit 92 (step S1703).

次に、行列積計算制御部129は、制御変数iをインクリメントする(ステップS1704)。   Next, the matrix product calculation control unit 129 increments the control variable i (step S1704).

行列積計算制御部129は、制御変数iが(m+1)以下の場合には(ステップS1705でYES)、第1の行列積計算部97を指示して、行列記憶部18から第i順位の行列(これをMatiとする)を表わすデータを読み出させるとともに、中間結果記憶部92に記憶されている中間結果R1を表わすデータとを読出させて、行列Matiと中間結果R1との積Mati×R1を計算させる。第1の行列積計算部97は、乗算結果であるベクトルを新たな中間結果R1とし、中間結果記憶部92内の中間結果R1を表わすデータを更新する(ステップS1706)。その後、ステップS1704からの処理が繰返される。 When the control variable i is equal to or less than (m + 1) (YES in step S1705), the matrix product calculation control unit 129 instructs the first matrix product calculation unit 97 to transmit the i-th rank matrix from the matrix storage unit 18. (This is referred to as Mat i ) is read out, and data representing the intermediate result R 1 stored in the intermediate result storage unit 92 is read out so that the matrix Mat i and the intermediate result R 1 are Let the product Mat i × R 1 be calculated. The first matrix product calculation unit 97 sets the vector that is the multiplication result as a new intermediate result R 1, and updates data representing the intermediate result R 1 in the intermediate result storage unit 92 (step S1706). Thereafter, the processing from step S1704 is repeated.

また、行列積計算制御部129は、制御変数jを(m+2)に設定する(ステップS1707)。   In addition, the matrix product calculation control unit 129 sets the control variable j to (m + 2) (step S1707).

行列積計算制御部129は、第2の行列積計算部98を指示して、行列記憶部18から第j(=m+2)順位の行列Umを表わすデータを読み出させて、行列Umを中間結果R2とし、中間結果R2を表わすデータを中間結果記憶部92に記憶させる(ステップS1708)。 The matrix product calculation control unit 129 instructs the second matrix product calculation unit 98 to read data representing the matrix U m of the j (= m + 2) -th rank from the matrix storage unit 18, so that the matrix U m The intermediate result R 2 is used, and data representing the intermediate result R 2 is stored in the intermediate result storage unit 92 (step S1708).

次に、行列積計算制御部129は、制御変数jをインクリメントする(ステップS1709)。   Next, the matrix product calculation control unit 129 increments the control variable j (step S1709).

行列積計算制御部129は、制御変数jが(2m+1)以下の場合には(ステップS1710でYES)、第2の行列積計算部98を指示して、行列記憶部18から第j順位の行列(これをMatjとする)を表わすデータを読み出させるとともに、中間結果記憶部92に記憶されている中間結果R2を表わすデータとを読出させて、行列Matjと中間結果R2との積Matj×R2を計算させる。第2の行列積計算部98は、乗算結果であるベクトルを新たな中間結果R2とし、中間結果記憶部92内の中間結果R2を表わすデータを更新する(ステップS1711)。その後、ステップS1709からの処理が繰返される。 If the control variable j is equal to or less than (2m + 1) (YES in step S1710), the matrix product calculation control unit 129 instructs the second matrix product calculation unit 98 to transmit the jth rank matrix from the matrix storage unit 18. (This is referred to as Mat j ) is read out, and data representing the intermediate result R 2 stored in the intermediate result storage unit 92 is read out so that the matrix Mat j and the intermediate result R 2 are Let the product Mat j × R 2 be calculated. The second matrix product calculation unit 98 sets the vector that is the multiplication result as a new intermediate result R 2 and updates data representing the intermediate result R 2 in the intermediate result storage unit 92 (step S1711). Thereafter, the processing from step S1709 is repeated.

制御変数iが(m+1)を超えた場合には(ステップS1705でNO)、行列積計算制御部129は、中間結果記憶部92内の中間結果R1を表わすデータを第1の行列積計算部97へ出力し、制御変数jが(2m+1)を超えた場合には(ステップS1710でNO)、行列積計算制御部129は、中間結果記憶部92内の中間結果R2を表わすデータを第1の行列積計算部97へ出力する。第1の行列積計算部97は、中間結果R1と中間結果R2との積R2×R1を計算し、計算結果であるベクトルをパリティべクトルYとして出力する(ステップS1712)。 If the control variable i exceeds (m + 1) (NO in step S1705), the matrix product calculation control unit 129, the data representing the intermediate results R 1 of the intermediate result storage unit 92 first matrix product calculator When the control variable j exceeds (2m + 1) (NO in step S1710), the matrix product calculation control unit 129 stores the data representing the intermediate result R 2 in the intermediate result storage unit 92 as the first data. To the matrix product calculation unit 97. The first matrix product calculation unit 97 calculates the product R 2 × R 1 of the intermediate result R 1 and the intermediate result R 2, and outputs a vector as the calculation result as the parity vector Y (step S1712).

その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1713)。   Thereafter, the array unit 20 generates and outputs an n-bit encoded vector Z composed of a k-bit information vector X and an m-bit parity vector Y (step S1713).

(第5の実施形態の効果)
以上のように、第5の実施形態は、第1の実施形態と同様の効果を有する。さらに、第5の実施形態によれば、非特許文献2および非特許文献3での逐次計算による後退代入と異なり、式(B12)の演算が並列実行が可能なことを利用して、第1の行列積計算部による列ベクトルR1(=Lmm-1・・・L21AX)の算出処理と、第2の行列積計算部による行列R2(=U12・・・Um-1m)の算出処理が同時に並列して実行されるので、非特許文献2および非特許文献3よりも短時間にパリティベクトルRを算出することができる。
(Effect of 5th Embodiment)
As described above, the fifth embodiment has the same effects as those of the first embodiment. Furthermore, according to the fifth embodiment, unlike the backward substitution by sequential calculation in Non-Patent Document 2 and Non-Patent Document 3, the first calculation is performed using the fact that the calculation of Expression (B12) can be executed in parallel. The column vector R 1 (= L m L m−1 ... L 2 L 1 AX) calculation processing by the matrix product calculation unit and the matrix R 2 (= U 1 U 2. .. U m−1 U m ) are simultaneously executed in parallel, so that the parity vector R can be calculated in a shorter time than in Non-Patent Document 2 and Non-Patent Document 3.

[第5の実施形態の変形例1]
第1の実施形態以外の実施形態においても、2つの行列積計算部によって、パリティベクトル生成処理を並列実行するものとしてもよい。
[First Modification of Fifth Embodiment]
In embodiments other than the first embodiment, the parity vector generation processing may be executed in parallel by two matrix product calculation units.

たとえば、第1の実施形態の変形例1では、第1の行列積計算部による列ベクトルR1(=Lm -1m-1 -1・・・L2 -11 -1AX)の算出処理と、第2の行列積計算部による行列R2(=U1 -12 -1・・・Um-1 -1m -1)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 For example, in the first modification of the first embodiment, the column vector R 1 (= L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX) by the first matrix product calculation unit. And the calculation process of the matrix R 2 (= U 1 −1 U 2 −1 ... U m−1 −1 U m −1 ) by the second matrix product calculation unit are executed simultaneously in parallel. The first matrix product calculation unit may calculate the product R 2 × R 1 .

第2の実施形態では、第1の行列積計算部による列ベクトルR1(=L′mL′m-1・・・L′2L′1(u)X)の算出処理と、第2の行列積計算部による行列R2(=E(v)U′1U′2・・・U′m-1U′m)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the second embodiment, calculation processing of the column vector R 1 (= L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X) by the first matrix product calculation unit, The matrix R 2 (= E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m ) calculation process by the matrix product calculation unit 2 is executed in parallel, and the first matrix product The calculation unit may calculate the product R 2 × R 1 .

第2の実施形態の変形例1では、第1の行列積計算部による列ベクトルR1(=L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X)の算出処理と、第2の行列積計算部による行列R2(=E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the first modification of the second embodiment, the column vector R 1 (= L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1) by the first matrix product calculation unit. A (u) X) calculation process and the matrix R 2 (= E (v) U ′ 1 −1 U ′ 2 −1 ... U ′ m−1 −1 U ′ by the second matrix product calculation unit The calculation process of m −1 ) may be executed simultaneously in parallel, and the first matrix product calculation unit may calculate the product R 2 × R 1 .

第3の実施形態では、第1の行列積計算部による列ベクトルR1(=Lmm-1・・・L21AX)の算出処理と、第2の行列積計算部による行列R2(=CUt+1・・・Um-1m)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the third embodiment, the column matrix R 1 (= L m L m−1 ... L 2 L 1 AX) calculation process by the first matrix product calculation unit and the matrix by the second matrix product calculation unit The calculation process of R 2 (= CU t + 1 ... U m−1 U m ) may be executed simultaneously in parallel, and the first matrix product calculation unit may calculate the product R 2 × R 1. .

第3の実施形態の変形例1では、第1の行列積計算部による列ベクトルR1(=Lm -1m-1 -1・・・L2 -11 -1AX)の算出処理と、第2の行列積計算部による行列R2(=CUt+1 -1・・・Um-1 -1m -1)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the first modification of the third embodiment, the column vector R 1 (= L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX) is calculated by the first matrix product calculation unit. The processing and the calculation processing of the matrix R 2 (= CU t + 1 −1 ... U m−1 −1 U m −1 ) by the second matrix product calculation unit are executed simultaneously in parallel, and the first The matrix product calculation unit may calculate the product R 2 × R 1 .

第4の実施形態では、第1の行列積計算部による列ベクトルR1(=L′mL′m-1・・・L′2L′1(u)X)の算出処理と、第2の行列積計算部による行列R2(=CU′t・・・U′m-1U′m)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the fourth embodiment, the first matrix product calculation unit calculates column vectors R 1 (= L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X), The matrix R 2 (= CU ′ t ... U ′ m−1 U ′ m ) calculation process by the matrix product calculation unit 2 is executed in parallel, and the first matrix product calculation unit performs the product R 2 × R 1 may be calculated.

第4の実施形態の変形例1では、第1の行列積計算部による列ベクトルR1(=L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X)の算出処理と、第2の行列積計算部による行列R2(=CU′t -1・・・U′m-1 -1U′m -1)の算出処理を同時に並列して実行し、第1の行列積計算部が積R2×R1を計算するものとしてもよい。 In the first modification of the fourth embodiment, the column vector R 1 (= L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1) by the first matrix product calculation unit. A (u) X) calculation processing and matrix R 2 (= CU ′ t −1 ... U ′ m−1 −1 U ′ m −1 ) calculation processing by the second matrix product calculation unit are performed simultaneously. It may be executed in parallel, and the first matrix product calculation unit may calculate the product R 2 × R 1 .

[第5の実施形態の変形例2]
第5の実施形態および第5の実施形態の変形例1では、2個の行列積計算部を備えるものとしたが、3個以上の行列積計算部によって、パリティベクトル生成処理を並列実行するものとしてもよい。
[Modification 2 of Fifth Embodiment]
In the fifth embodiment and the first modification of the fifth embodiment, two matrix product calculation units are provided, but parity vector generation processing is executed in parallel by three or more matrix product calculation units. It is good.

(変形例)
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例も含まれる。
(Modification)
The present invention is not limited to the above embodiment, and includes, for example, the following modifications.

(1) 符号化器の構成
本発明の実施形態では、符号化器が、パリティベクトル生成処理と、行列分解処理の両方の機能を備えるものとしたが、一方だけの機能を備えるものとしてもよい。符号化器がパリティベクトル生成処理の機能のみを備える場合には、パリティベクトルYを生成するための式(B12)、(C9)、(D26)、(E23)、(F14)、(G11)、(H28)、(I25)に含まれる行列のデータは、外部で予め計算されたものが記憶されている。たとえば、第1の実施形態では、行列U1、U2、・・・、Um、Lm、Lm-1、・・・、L1、Aの各要素の値が予め外部で計算され、計算結果が行列記憶部に記憶されている。
(1) Configuration of Encoder In the embodiment of the present invention, the encoder has functions of both parity vector generation processing and matrix decomposition processing, but may have only one function. . When the encoder has only the parity vector generation processing function, the equations (B12), (C9), (D26), (E23), (F14), (G11) for generating the parity vector Y, The matrix data included in (H28) and (I25) is stored in advance as an externally calculated data. For example, in the first embodiment, matrix U 1, U 2, ···, U m, L m, L m-1, ···, a value of each element of L 1, A is calculated in advance outside The calculation results are stored in the matrix storage unit.

(2) 記憶部に記憶されるデータ
本発明の第1〜第5の実施形態において、行列記憶部および中間結果記憶部に記憶される行列またはベクトルを表わすデータは、各要素の値である必要はなく、たとえば、非対角項の非零要素数(つまり、「1」)の位置を表わすものであってもよい。
(2) Data stored in storage unit In the first to fifth embodiments of the present invention, data representing a matrix or a vector stored in the matrix storage unit and the intermediate result storage unit needs to be a value of each element. For example, it may represent the position of the number of non-zero elements in the off-diagonal term (that is, “1”).

(3) 行列積の計算順序
本発明の実施形態では、パリティベクトルYを生成する式に含まれる行列乗算のうち、右側にある行列乗算(ここでは、ベクトルと行列の乗算も行列乗算と呼ぶ)から順次実行するものとしたが、これに限定するものではなく、任意の順序で行列乗算を実行するものとしてもよいが、左側にある行列乗算から順次実行しない方がよい場合もある。なぜなら、左側にある行列乗算から順次実行した場合には、行列Bの逆行列が生成されることになり、行列Bを分解した意味がなくなる場合が考えられる。しかしながら、このような順序で計算する場合でも、行列Bの逆行列を計算するよりも、少ない計算量で行列分解処理を行なうことができたり、または分解された行列の非零要素数の和が、Bの逆行列の非零要素数の和よりも少ないときには、行列を記憶するための容量を少なくすることができる場合がある。
(3) Matrix Product Calculation Order In the embodiment of the present invention, the matrix multiplication on the right side of the matrix multiplication included in the expression for generating the parity vector Y (here, the multiplication of the vector and the matrix is also called matrix multiplication) However, the present invention is not limited to this, and matrix multiplication may be executed in an arbitrary order. However, it may be better not to sequentially execute matrix multiplication on the left side. This is because when the matrix multiplication on the left side is sequentially performed, an inverse matrix of the matrix B is generated, and there is a case where the meaning of decomposing the matrix B is lost. However, even when calculating in this order, matrix decomposition processing can be performed with a smaller amount of calculation than calculating the inverse matrix of the matrix B, or the sum of the number of non-zero elements of the decomposed matrix can be calculated. , B may be less than the sum of the number of non-zero elements of the inverse matrix of B, the capacity for storing the matrix may be reduced.

(4) 行列乗算数削減処理
本発明の第3、第4の実施形態では、行列乗算数の削減処理時に、パリティベクトルYを生成する式に含まれる行列乗算のうち、左側にある行列乗算から順次実行するものとしたが、これに限定するものではなく、任意の順序で行列乗算を実行するものとしてもよい。
(4) Matrix Multiplication Number Reduction Process In the third and fourth embodiments of the present invention, the matrix multiplication on the left side of the matrix multiplication included in the expression for generating the parity vector Y is performed during the matrix multiplication number reduction process. Although the sequential execution is performed, the present invention is not limited to this, and matrix multiplication may be performed in an arbitrary order.

たとえば、パリティベクトルYを生成する式においてXとの乗算を除いた右側から行列演算を実行することとしてもよい。この場合には、式(F14)の代わりに、次の式のようにパリティベクトルYを生成する式におけるXを除いた右側にある複数個の隣接する行列が1個の行列Cにまとめられた式が用いられる。
Y≡U1・・・Um-1mmm-1・・・L9CX ・・・(F14−1)
ここで、Cは、L8t7・・・L1Aである。
For example, the matrix operation may be executed from the right side excluding multiplication with X in the equation for generating the parity vector Y. In this case, instead of the formula (F14), a plurality of adjacent matrices on the right side excluding X in the formula for generating the parity vector Y as shown in the following formula are combined into one matrix C. An equation is used.
Y≡U 1 ... U m-1 U m L m L m-1 ... L 9 CX (F14-1)
Here, C is L 8 L t7 ... L 1 A.

またパリティベクトルYを生成する式の左端の行列乗算、およびXとの乗算を除く右端以外の任意の箇所の行列乗算から順次右または左の任意の方向に実行することとしてもよい。この場合には、式(F14)の代わりに、次の式のようにパリティベクトルYを生成する式の左端や右端(Xを除く)以外にある複数個の隣接する行列が1個の行列Cにまとめられた形に変形されることもある。
Y≡U12CU9・・・Um-1mmm-1・・・L21AX ・・・(F14−2)
ここで、Cは、U34・・・U8である。
Alternatively, the matrix multiplication at the left end of the expression for generating the parity vector Y and the matrix multiplication at any place other than the right end excluding the multiplication with X may be sequentially executed in any right or left direction. In this case, instead of the equation (F14), a plurality of adjacent matrices other than the left end and the right end (excluding X) of the equation for generating the parity vector Y as in the following equation is a single matrix C. It may be transformed into the form summarized in
Y≡U 1 U 2 CU 9 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (F14-2)
Here, C is U 3 U 4 ... U 8 .

また、1つの行列に置換される複数個の隣接する行列は、1セットに限定されるものではなく、次の式のように複数個のセットであってもよい。
Y≡C1678220・・・Um-1mmm-1・・・L63X ・・・(F14−3)
ここで、C1は、U12・・・U5であり、C2は、U910・・・U19であり、C3は、L54・・・L1Aである。
The plurality of adjacent matrices to be replaced with one matrix is not limited to one set, and may be a plurality of sets as in the following equation.
Y≡C 1 U 6 U 7 U 8 C 2 U 20 ··· U m-1 U m L m L m-1 ··· L 6 C 3 X ··· (F14-3)
Here, C 1 is U 1 U 2 ··· U 5, C 2 is the U 9 U 10 ··· U 19, C 3 is a L 5 L 4 ··· L 1 A is there.

また複数の隣接する行列が1つの行列に置換されたパリティベクトルYを生成する式に含まれる行列の非対角項の非零要素数の和が、もとのパリティベクトルYを生成する式に含まれる行列の非対角項の非零要素数の和以下の条件を満足する場合に、複数の隣接する行列を1つの行列にまとめる行列乗算数削減処理を行なったが、このような条件を満たすかどうかにかかわりなく、行列乗算数削減処理を行なうこととしてもよい。つまり、第3の実施形態のステップS915〜S917の処理、第3の実施形態の変形例1のステップS1115〜S1117の処理、第4の実施形態のステップS1315〜S1317の処理、第4の実施形態の変形例1のステップS1515〜S1517の処理を省略することとしてもよい。   In addition, the sum of the number of non-zero elements in the non-diagonal terms of the matrix included in the formula for generating the parity vector Y in which a plurality of adjacent matrices are replaced with one matrix is the formula for generating the original parity vector Y. When the condition below the sum of the number of non-zero elements of the off-diagonal terms of the included matrix is satisfied, a matrix multiplication number reduction process is performed to combine a plurality of adjacent matrices into one matrix. The matrix multiplication number reduction process may be performed regardless of whether or not the condition is satisfied. That is, the processing of steps S915 to S917 of the third embodiment, the processing of steps S1115 to S1117 of the first modification of the third embodiment, the processing of steps S1315 to S1317 of the fourth embodiment, the fourth embodiment. It is good also as omitting the process of step S1515-S1517 of the modification 1.

また、本発明の実施形態では、閾値aは正の値としたが、これは単なる一例であって、閾値aは0、または負の値であってもよい。   In the embodiment of the present invention, the threshold value a is a positive value, but this is merely an example, and the threshold value a may be 0 or a negative value.

また、無条件で、一定個数の隣接する行列を1つの行列にまとめるものとしてもよい。
(5) オーダリング
本発明の実施形態では、行列Bに対して、u回(u≧1)の行の入れ替えと、v回(v≧1)の列の入れ替えを行なうオーダリングを行なったが、これに限定するものではない。たとえば、u回の行の入れ替えだけを行なうものとしてもよい(つまり、v=0)。この場合には、たとえば、式(D26)、(E23)、(H26)、(H28)、(I23)、(I25)は、E(v)が含まれない式に変形される。また、v回の列の入れ替えだけを行なうものとしてもよい(つまり、u=0)。この場合には、たとえば、式(D26)、(E23)、(H26)、(H28)、(I23)、(I25)は、A(u)が含まれない式に変形される。
Also, a certain number of adjacent matrices may be unconditionally combined into one matrix.
(5) Ordering In the embodiment of the present invention, ordering is performed on the matrix B by performing u times (u ≧ 1) row replacement and v times (v ≧ 1) column replacement. It is not limited to. For example, only u rows may be replaced (that is, v = 0). In this case, for example, formulas (D26), (E23), (H26), (H28), (I23), and (I25) are transformed into formulas that do not include E (v) . Moreover, it is good also as what replaces only the column of v times (that is, u = 0). In this case, for example, formulas (D26), (E23), (H26), (H28), (I23), and (I25) are transformed into formulas that do not include A (u) .

以下、各実施形態において上記のような変形を行なった場合の、各部の構成がどのように変形されるかについて説明する。   Hereinafter, how the configuration of each unit is modified when the above-described modification is performed in each embodiment will be described.

(5−1) 第2の実施形態
(5−1−A) u≧1かつv≧1
第2の実施形態では、u≧1かつv≧1のときには、式(D26)が用いられた。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(D26)
(5-1) Second Embodiment (5-1-A) u ≧ 1 and v ≧ 1
In the second embodiment, the equation (D26) is used when u ≧ 1 and v ≧ 1.
Y≡E (v) U ' 1 U' 2 ... U ' m-1 U' m L ' m L' m-1 ... L ' 2 L' 1 A (u) X (D26 )

(5−1−B) u≧1かつv=0
u≧1かつv=0のときには、式(D26)に代えて、次の式が用いられる。
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(D26)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-1-B) u ≧ 1 and v = 0
When u ≧ 1 and v = 0, the following equation is used instead of the equation (D26).
Y≡U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (D26) ′
Here, the matrix B ′ is obtained by performing u times of row replacement on the matrix B. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、中間結果記憶部から行列Aおよび行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してu回の行の入れ替えを行なった行列B′を生成して中間結果記憶部に記憶させ、行列Aに対して行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった行列A(u)を生成して行列記憶部に記憶させる。 The ordering unit reads the data representing the matrix A and the matrix B from the intermediate result storage unit, performs the ordering of the matrix B, generates a matrix B ′ in which u rows are exchanged for the matrix B, and generates an intermediate The result is stored in the result storage unit, and a matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated and stored in the matrix storage unit.

行列記憶部は、基本上三角行列U′1、U′2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列A(u)を表わすデータを記憶する。 Matrix storage unit, the basic upper triangular matrix U '1, U' 2, ···, ' data representing the m, basic lower triangular matrix L' U m, L 'm -1, ···, L' 1 Data representing and data representing the matrix A (u) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(D26)′に含まれる(2m+1)回の行列乗算を行列積計算制御部に指示された順序で実行する。   In order to calculate the parity vector Y, the matrix product calculation unit performs (2m + 1) times of matrix multiplications included in the equation (D26) ′ in the order instructed by the matrix product calculation control unit.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m、U′m、U′m-1、・・・、U′1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。行列積計算制御部は、式(D26)′に含まれる(2m+1)回の行列乗算の終了後に、行列積計算部から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices in which data is stored in the matrix storage unit is A (u) , L ′ 1 , L ′ 2 ,. The order between the matrices is set in the order of ′ m , U ′ m , U ′ m−1 ,..., U ′ 1 , and the matrix product calculation unit is controlled to perform matrix multiplication in this order. . The matrix product calculation control unit outputs a parity vector Y as a calculation result from the matrix product calculation unit after completing (2m + 1) times of matrix multiplication included in the equation (D26) ′.

中間結果記憶部は、式(D26)′に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(D26)′に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the expression (D26) ′. In addition, the intermediate result storage unit stores data representing the intermediate result of (2m + 1) times of matrix multiplication included in the expression (D26) ′ during the generation process of the parity vector Y.

(5−1−C) u=0かつv≧1
また、u=0かつv≧1のときには、式(D26)に代えて、次の式が用いられる。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(D26)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-1-C) u = 0 and v ≧ 1
When u = 0 and v ≧ 1, the following equation is used instead of equation (D26).
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX
Here, the matrix B ′ is obtained by performing v times of column replacement on the matrix B. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、中間結果記憶部から行列Bを表わすデータを読み出して、行列Bのオーダリングを行ない、行列Bに対してv回の列の入れ替えを行なった行列B′を生成して中間結果記憶部に記憶させ、単位行列Eに対して行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった行列E(v)を生成して行列記憶部に記憶させる。 The ordering unit reads out data representing the matrix B from the intermediate result storage unit, performs the ordering of the matrix B, generates a matrix B ′ in which the matrix B is replaced v times, and generates an intermediate result storage unit. And a matrix E (v) in which the same replacement as the column replacement for the matrix B is performed for the unit matrix E is generated and stored in the matrix storage unit.

行列記憶部は、基本上三角行列U′1、U′2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列A、E(v)を表わすデータを記憶する。 Matrix storage unit, the basic upper triangular matrix U '1, U' 2, ···, ' data representing the m, basic lower triangular matrix L' U m, L 'm -1, ···, L' 1 Data representing and data representing the matrices A and E (v) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(D26)"に含まれる(2m+2)回の行列乗算を行列積計算制御部に指示された順序で実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m + 2) times of matrix multiplications included in the equation (D26) "in the order instructed by the matrix product calculation control unit.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA、L′1、L′2、・・・、L′m、U′m、U′m-1、・・・、U′1、E(v)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。行列積計算制御部は、式(D26)"に含まれる(2m+2)回の行列乗算の終了後に、行列積計算部から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices in which data is stored in the matrix storage unit is A, L ′ 1 , L ′ 2 ,..., L ′ m , The matrix product calculation unit is set so that the matrix order is set so that U ′ m , U ′ m−1 ,..., U ′ 1 , E (v) are in this order, and matrix multiplication is performed in this order. Control. The matrix product calculation control unit outputs a parity vector Y as a calculation result from the matrix product calculation unit after the (2m + 2) times of matrix multiplications included in the equation (D26) ″.

中間結果記憶部は、式(D26)"に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(D26)"に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing the intermediate result in the process (matrix decomposition process) for generating the matrix included in the expression (D26) ". Further, the intermediate result storage unit performs the parity vector Y generation process, Data representing an intermediate result of (2m + 2) times of matrix multiplication included in the expression (D26) "is stored.

(5−2) 第2の実施形態の変形例1
(5−2−A) u≧1かつv≧1
第2の実施形態の変形例1では、u≧1かつv≧1のときには、式(E23)が用いられた。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(E23)
(5-2) Modification 1 of the second embodiment
(5-2A) u ≧ 1 and v ≧ 1
In the first modification of the second embodiment, when u ≧ 1 and v ≧ 1, Expression (E23) is used.
Y = -E (v) U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L ' 1 -1 A (u) X (E23)

(5−2−B) u≧1かつv=0
u≧1かつv=0のときには、式(E23)に代えて、次の式が用いられる。
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(E23)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-2B) u ≧ 1 and v = 0
When u ≧ 1 and v = 0, the following equation is used instead of the equation (E23).
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (E23) '
Here, the matrix B ′ is obtained by performing u times of row replacement on the matrix B. The matrix L ′ i −1 (i = 1 to m) is an inverse matrix of the matrix L ′ i . The matrix L ′ i is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i −1 (i = 1 to m) is an inverse matrix of the matrix U ′ i . The matrix U ′ i is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−1−B)と同様である。
行列記憶部は、基本上三角行列の逆行列U′1 -1、U′2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列A(u)を表わすデータを記憶する。
The ordering unit is the same as (5-1-B).
The matrix storage unit includes data representing the inverse matrix U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m −1 of the basic upper triangular matrix, the inverse matrix L ′ m −1 of the basic lower triangular matrix, Data representing L ′ m−1 −1 ,..., L ′ 1 −1 and data representing the matrix A (u) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(E23)′に含まれる(2m+1)回の行列乗算を行列積計算制御部に指示された順序で実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m + 1) times of matrix multiplications included in the equation (E23) ′ in the order instructed by the matrix product calculation control unit.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′2 -1、U′1 -1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(E23)′に含まれる(2m+1)回の行列乗算の終了後に、行列積計算部から計算結果であるベクトルY′(=U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u))を符号反転部へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices stored in the matrix storage unit is A (u) , L ′ 1 −1 , L ′ 2 −1,. ..L ' m-1 -1 , L' m -1 , U ' m -1 , U' m-1 -1 , ..., U ' 2 -1 , U' 1 -1 In this way, the order between the matrices is set, and the matrix product calculation unit is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit, after the completion of (2m + 1) times of matrix multiplication included in the equation (E23) ′, the vector Y ′ (= U ′ 1 −1 U ′ 2) as a calculation result from the matrix product calculation unit. -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (u) ) To the output.

中間結果記憶部は、式(E23)′に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(E23)′に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the equation (E23) ′. The intermediate result storage unit stores data representing the intermediate result of (2m + 1) times of matrix multiplication included in the equation (E23) ′ during the generation process of the parity vector Y.

(5−2−C) u=0かつv≧1
また、u=0かつv≧1のときには、式(E23)に代えて、次の式が用いられる。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(E23)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-2C) u = 0 and v ≧ 1
When u = 0 and v ≧ 1, the following equation is used instead of the equation (E23).
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (E23) "
Here, the matrix B ′ is obtained by performing v times of column replacement on the matrix B. The matrix L ′ i −1 (i = 1 to m) is an inverse matrix of the matrix L ′ i . The matrix L ′ i is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i −1 (i = 1 to m) is an inverse matrix of the matrix U ′ i . The matrix U ′ i is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−2−B)と同様である。
行列記憶部は、基本上三角行列の逆行列U′1 -1、U′2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列A、E(v)を表わすデータを記憶する。
The ordering unit is the same as (5-2-2-B).
The matrix storage unit includes data representing the inverse matrix U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m −1 of the basic upper triangular matrix, the inverse matrix L ′ m −1 of the basic lower triangular matrix, Data representing L ′ m−1 −1 ,..., L ′ 1 −1 and data representing the matrices A and E (v) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(E23)"に含まれる(2m+2)回の行列乗算を行列積計算制御部に指示された順序で実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m + 2) times of matrix multiplications included in the equation (E23) "in the order instructed by the matrix product calculation control unit.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′2 -1、U′1 -1、E(v)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(E23)"に含まれる(2m+2)回の行列乗算の終了後に、行列積計算部から計算結果であるベクトルY′(=E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A)を符号反転部へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit is arranged such that the order of the matrixes in which data is stored in the matrix storage unit is A, L ′ 1 −1 , L ′ 2 −1 ,. L ′ m−1 −1 , L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ 2 −1 , U ′ 1 −1 , E (v) The order between the matrices is set so as to satisfy the following, and the matrix product calculation unit is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit, after the completion of (2m + 2) times of matrix multiplication included in the equation (E23) ", the vector Y ′ (= E (v) U ′ 1 − 1 U ' 2 -1 ... U' m-1 -1 U ' m -1 L' m -1 L ' m-1 -1 ... L' 2 -1 L ' 1 -1 A) Output to the inverting unit.

中間結果記憶部は、式(E23)"に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(E23)"に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing an intermediate result in the process (matrix decomposition process) for generating the matrix included in the expression (E23) ". Further, the intermediate result storage unit performs the parity vector Y generation process, Data representing an intermediate result of (2m + 2) times of matrix multiplication included in the expression (E23) "is stored.

(5−3) 第4の実施形態
(5−3−A) u≧1かつv≧1
第4の実施形態では、u≧1かつv≧1のときには、式(H26)が用いられ、E(v)、U′1〜U′t-1のt個の行列の積を1つの行列Cで表わした場合に、式(H28)が得られた。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H26)
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H28)
(5-3) Fourth Embodiment (5-3-A) u ≧ 1 and v ≧ 1
In the fourth embodiment, when u ≧ 1 and v ≧ 1, Expression (H26) is used, and the product of t matrices of E (v) and U ′ 1 to U ′ t−1 is expressed as one matrix. When represented by C, formula (H28) was obtained.
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (H26 )
Y≡CU ' t ... U' m-1 U ' m L' m L ' m-1 ... L' 2 L ' 1 A (u) X (H28)

(5−3−B) u≧1かつv=0
u≧1かつv=0のときには、式(H26)に代えて、式(H26)′が用いられ、U′1〜U′tのt個の行列の積を1つの行列Cで表わした場合に、式(H28)"が得られる。
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H26)′
Y≡CU′t+1・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(H28)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-3-B) u ≧ 1 and v = 0
When u ≧ 1 and v = 0, the expression (H26) ′ is used instead of the expression (H26), and the product of t matrices of U ′ 1 to U ′ t is represented by one matrix C Thus, the equation (H28) "is obtained.
Y≡U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X
Y≡CU 't + 1 ··· U' m-1 U 'm L' m L 'm-1 ··· L' 2 L '1 A (u) X ··· (H28)'
Here, the matrix B ′ is obtained by performing u times of row replacement on the matrix B. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−1−B)と同様である。
行列記憶部は、基本上三角行列U′t+1、U′t+2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。
The ordering unit is the same as (5-1-B).
The matrix storage unit includes data representing basic upper triangular matrices U ′ t + 1 , U ′ t + 2 ,..., U ′ m , basic lower triangular matrices L ′ m , L ′ m−1 ,. Data representing L ′ 1 and data representing the matrices C and A (u) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(H28)′に含まれる(2m−t+2)回の行列乗算を行列積計算制御部に指示された順序で実行する。行列積計算部は、式(H26)′に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部から指示された行列乗算を実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m−t + 2) matrix multiplications included in the equation (H28) ′ in the order instructed by the matrix product calculation control unit. The matrix product calculation unit executes the matrix multiplication instructed by the matrix multiplication number reduction unit when executing the process of reducing the number of matrix multiplications included in Expression (H26) ′.

行列乗算数削減部は、式(H26)′に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部にデータが記憶されている行列の順序が先頭からU′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、A(u)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。 When performing the process of reducing the number of matrix multiplications included in the expression (H26) ′, the matrix multiplication number reduction unit determines that the order of the matrices in which data is stored in the intermediate result storage unit is U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A (u) in order The matrix product calculation unit is controlled so as to perform matrix multiplication in this order.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA(u)、L′1、L′2、・・・、L′m-1、L′m、U′m、U′m-1、・・・、U′t+1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(H28)′に含まれる(2m−t+2)回の行列乗算の終了後に、行列積計算部から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices in which data is stored in the matrix storage unit is A (u) , L ′ 1 , L ′ 2 ,. ′ M −1 , L ′ m , U ′ m , U ′ m−1 ,..., U ′ t + 1 , C are set in order, and matrix multiplication is performed in this order. Control the matrix product calculator to do so. Further, the matrix product calculation control unit outputs the parity vector Y as a calculation result from the matrix product calculation unit after the (2m−t + 2) times of matrix multiplication included in the equation (H28) ′.

中間結果記憶部は、式(H28)′に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(H28)′に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in Expression (H28) ′. The intermediate result storage unit stores data representing the intermediate result of (2m−t + 2) times of matrix multiplication included in the expression (H28) ′ during the generation process of the parity vector Y.

(5−3−C) u=0かつv≧1
また、u=0かつv≧1のときには、式(H26)に代えて、式(H26)"が用いられ、E(v)、U′1〜U′t-1のt個の行列の積を1つの行列Cで表わした場合に、式(H28)"が得られる。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(H26)"
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(H28)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-3-C) u = 0 and v ≧ 1
When u = 0 and v ≧ 1, the expression (H26) "is used instead of the expression (H26), and the product of t matrices of E (v) and U ' 1 to U' t-1 is used. Is represented by one matrix C, the equation (H28) "is obtained.
Y≡E (v) U ' 1 U' 2 ... U ' m-1 U' m L ' m L' m-1 ... L ' 2 L' 1 AX (H26) "
Y≡CU ′ t ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX (H28) ”
Here, the matrix B ′ is obtained by performing v times of column replacement on the matrix B. The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−1−C)と同様である。
行列記憶部は、基本上三角行列U′t、U′t+1、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、Aを表わすデータを記憶する。
The ordering unit is the same as (5-1-C).
The matrix storage unit stores basic upper triangular matrices U ′ t , U ′ t + 1 ,..., U ′ m , basic lower triangular matrices L ′ m , L ′ m−1 ,. Data representing 1 and data representing matrices C and A are stored.

行列積計算部は、パリティベクトルYを算出するために、式(H28)"に含まれる(2m−t+3)回の行列乗算を行列積計算制御部に指示された順序で実行する。行列積計算部は、式(H26)"に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部から指示された行列乗算を実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m−t + 3) times of matrix multiplications included in the formula (H28) ″ in the order instructed by the matrix product calculation control unit. When executing the process of reducing the number of matrix multiplications included in the formula (H26) ", the unit executes the matrix multiplication instructed by the matrix multiplication number reduction unit.

行列乗算数削減部は、式(H26)"に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部にデータが記憶されている行列の順序が先頭からE(v)、U′1、U′2、・・・、U′m-1、U′m、L′m、L′m-1、・・・、L′2、L′1、Aの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。 When performing the process of reducing the number of matrix multiplications included in the formula (H26) ", the matrix multiplication number reduction unit starts from the top of the matrix in which the data is stored in the intermediate result storage unit by E (v) , U ′ 1 , U ′ 2 ,..., U ′ m−1 , U ′ m , L ′ m , L ′ m−1 ,..., L ′ 2 , L ′ 1 , A The matrix product calculation unit is controlled so as to perform matrix multiplication in this order.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA、L′1、L′2、・・・、L′m-1、L′m、U′m、U′m-1、・・・、U′t、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(H28)"に含まれる(2m−t+3)回の行列乗算の終了後に、行列積計算部から計算結果であるパリティベクトルYを出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices in which data is stored in the matrix storage unit is A, L ′ 1 , L ′ 2 ,..., L ′ m− 1 , L ′ m , U ′ m , U ′ m−1 ,..., U ′ t , C are set in order, and the matrix product is set so that matrix multiplication is performed in this order. Control the calculator. In addition, the matrix product calculation control unit causes the matrix product calculation unit to output a parity vector Y as a calculation result after the (2m−t + 3) times of matrix multiplication included in the expression (H28) ″.

中間結果記憶部は、式(H28)"に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(H28)"に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing the intermediate result in the process (matrix decomposition process) for generating the matrix included in the formula (H28) ". The intermediate result storage unit Data representing an intermediate result of (2m−t + 3) times of matrix multiplication included in the expression (H28) ″ is stored.

(5−4) 第4の実施形態の変形例1
(5−4−A) u≧1かつv≧1
第4の実施形態の変形例1では、u≧1かつv≧1のときには、式(I23)が用いられ、E(v)、U′1 -1〜U′t-1 -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)が得られた。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(I23)
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(I25)
(5-4) Modification 1 of the fourth embodiment
(5-4-A) u ≧ 1 and v ≧ 1
In the first modification of the fourth embodiment, when u ≧ 1 and v ≧ 1, the formula (I23) is used, and t of E (v) , U ′ 1 −1 to U ′ t−1 −1 . Equation (I25) was obtained when the product of the matrices of
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (I23)
Y = −CU ′ t −1 ... U ′ m−1 −1 U ′ m −1 L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 A ( u) X (I25)

(5−4−B) u≧1かつv=0
u≧1かつv=0のときには、式(I23)に代えて、式(I23)′が用いられ、U′1 -1〜U′t -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)′が得られる。
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(I23)′
Y=−CU′t+1 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(I25)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-4-B) u ≧ 1 and v = 0
When u ≧ 1 and v = 0, the equation (I23) ′ is used instead of the equation (I23), and the product of t matrices from U ′ 1 −1 to U ′ t −1 is expressed as one matrix C In this case, the formula (I25) ′ is obtained.
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (I23) '
Y = -CU ' t + 1 -1 ... U' m-1 -1 U ' m -1 L' m -1 L ' m-1 -1 ... L' 2 -1 L ' 1 -1 A (u) X (I25) '
Here, the matrix B ′ is obtained by performing u times of row replacement on the matrix B. The matrix L ′ i −1 (i = 1 to m) is an inverse matrix of the matrix L ′ i . The matrix L ′ i is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i −1 (i = 1 to m) is an inverse matrix of the matrix U ′ i . The matrix U ′ i is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−1−B)と同様である。
行列記憶部は、基本上三角行列の逆行列U′t+1 -1、U′t+2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。
The ordering unit is the same as (5-1-B).
The matrix storage unit includes data representing the inverse matrices U ′ t + 1 −1 , U ′ t + 2 −1 ,..., U ′ m −1 of the basic upper triangular matrix, and the inverse matrix L ′ of the basic lower triangular matrix Data representing m −1 , L ′ m−1 −1 ,..., L ′ 1 −1 and data representing the matrices C and A (u) are stored.

行列積計算部は、パリティベクトルYを算出するために、式(I25)′に含まれる(2m−t+2)回の行列乗算を行列積計算制御部に指示された順序で実行する。行列積計算部は、式(I23)′に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部から指示された行列乗算を実行する。   In order to calculate the parity vector Y, the matrix product calculation unit performs (2m−t + 2) times of matrix multiplications included in the equation (I25) ′ in the order instructed by the matrix product calculation control unit. The matrix product calculation unit executes the matrix multiplication instructed by the matrix multiplication number reduction unit when executing the process of reducing the number of matrix multiplications included in the formula (I23) ′.

行列乗算数削減部は、式(I23)′に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部にデータが記憶されている行列の順序が先頭からU′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、A(u)の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。 When performing the process of reducing the number of matrix multiplications included in the formula (I23) ′, the matrix multiplication number reduction unit determines that the order of the matrices in which data is stored in the intermediate result storage unit is U ′ 1 −1 from the beginning. , U '2 -1, ···, U' m-1 -1, U 'm -1, L' m -1, L 'm-1 -1, ···, L' 2 -1, L The order between the matrices is set so as to be in the order of ′ 1 −1 and A (u) , and the matrix product calculation unit is controlled to perform matrix multiplication in this order.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA(u)、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′t+1 -1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(I25)′に含まれる(2m−t+2)回の行列乗算の終了後に、行列積計算部から計算結果であるベクトルY′(=CU′t+1 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X)を符号反転部へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit determines that the order of the matrices in which data is stored in the matrix storage unit is A (u) , L ′ 1 −1 , L ′ 2 −1,. ..L ′ m−1 −1 , L ′ m −1 , U ′ m −1 , U ′ m−1 −1 ,..., U ′ t + 1 −1 , and C The order between the matrices is set, and the matrix product calculation unit is controlled to perform matrix multiplication in this order. Further, the matrix product calculation control unit, after the completion of (2m−t + 2) matrix multiplications included in the formula (I25) ′, the vector Y ′ (= CU ′ t + 1 −) as the calculation result from the matrix product calculation unit. 1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (u) X) To the output.

中間結果記憶部は、式(I25)′に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(I25)′に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing an intermediate result in a process (matrix decomposition process) for generating a matrix included in the formula (I25) ′. The intermediate result storage unit stores data representing the intermediate result of (2m−t + 2) times of matrix multiplication included in the expression (I25) ′ during the generation process of the parity vector Y.

(5−4−C) u=0かつv≧1
また、u=0かつv≧1のときには、式(I23)に代えて、式(I23)"が用いられ、E(v)、U′1 -1〜U′t-1 -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)"が得られる。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(I23)"
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(I25)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5-4-C) u = 0 and v ≧ 1
Further, when u = 0 and v ≧ 1, the formula (I23) "is used instead of the formula (I23 ) , and t ( E ) (v) , U ' 1 -1 to U' t-1 -1 When the product of these matrices is represented by one matrix C, the equation (I25) "is obtained.
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (I23) "
Y = -CU ' t -1 ... U' m-1 -1 U ' m -1 L' m -1 L ' m-1 -1 ... L' 2 -1 L ' 1 -1 AX .. (I25) "
Here, the matrix B ′ is obtained by performing v times of column replacement on the matrix B. The matrix L ′ i −1 (i = 1 to m) is an inverse matrix of the matrix L ′ i . The matrix L ′ i is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′. The matrix U ′ i −1 (i = 1 to m) is an inverse matrix of the matrix U ′ i . The matrix U ′ i is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′.

オーダリング部は、(5−1−C)と同様である。
行列記憶部は、基本上三角行列の逆行列U′t -1、U′t+1 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列C、Aを表わすデータを記憶する。
The ordering unit is the same as (5-1-C).
The matrix storage unit includes data representing the inverse matrices U ′ t −1 , U ′ t + 1 −1 ,..., U ′ m −1 of the basic upper triangular matrix, and the inverse matrix L ′ m − of the basic lower triangular matrix. 1 , L ′ m−1 −1 ,..., Data representing L ′ 1 −1 and data representing the matrices C and A are stored.

行列積計算部は、パリティベクトルYを算出するために、式(I25)"に含まれる(2m−t+3)回の行列乗算を行列積計算制御部に指示された順序で実行する。行列積計算部は、式(I23)"に含まれる行列乗算の個数を削減する処理を実行するときに、行列乗算数削減部から指示された行列乗算を実行する。   In order to calculate the parity vector Y, the matrix product calculation unit executes (2m−t + 3) times of matrix multiplications included in the formula (I25) ″ in the order instructed by the matrix product calculation control unit. When executing the process of reducing the number of matrix multiplications included in the formula (I23) ", the unit executes the matrix multiplication specified by the matrix multiplication number reduction unit.

行列乗算数削減部は、式(I23)"に含まれる行列乗算の個数を削減する処理を行なうときに、中間結果記憶部にデータが記憶されている行列の順序が先頭からE(v)、U′1 -1、U′2 -1、・・・、U′m-1 -1、U′m -1、L′m -1、L′m-1 -1、・・・、L′2 -1、L′1 -1、Aの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。 When performing the process of reducing the number of matrix multiplications included in the formula (I23) ", the matrix multiplication number reduction unit starts from the top of the matrix in which the data is stored in the intermediate result storage unit by E (v) , U ′ 1 −1 , U ′ 2 −1 ,..., U ′ m−1 −1 , U ′ m −1 , L ′ m −1 , L ′ m−1 −1,. The order between the matrices is set so that 2 −1 , L ′ 1 −1 and A are in the order, and the matrix product calculation unit is controlled to perform matrix multiplication in this order.

行列積計算制御部は、パリティベクトルYを算出するために、行列記憶部にデータが記憶されている行列の順序が先頭からA、L′1 -1、L′2 -1、・・・、L′m-1 -1、L′m -1、U′m -1、U′m-1 -1、・・・、U′t -1、Cの順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部を制御する。また、行列積計算制御部は、式(I25)"に含まれる(2m−t+3)回の行列乗算の終了後に、行列積計算部からであるベクトルY′(=CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX)を符号反転部へ出力させる。 In order to calculate the parity vector Y, the matrix product calculation control unit is arranged such that the order of the matrixes in which data is stored in the matrix storage unit is A, L ′ 1 −1 , L ′ 2 −1 ,. L 'm-1 -1, L ' m -1, U 'm -1, U' m-1 -1, ···, U 't -1, the order between the matrix such that the order of C The matrix product calculation unit is controlled so that matrix multiplication is performed in this order. Further, the matrix product calculation control unit, after the completion of (2m−t + 3) times of matrix multiplication included in the formula (I25) ″, the vector Y ′ (= CU ′ t −1 ...) From the matrix product calculation unit. U ′ m−1 −1 U ′ m −1 L ′ m −1 L ′ m−1 −1 ... L ′ 2 −1 L ′ 1 −1 AX) is output to the sign inversion unit.

中間結果記憶部は、式(I25)"に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部は、パリティベクトルYの生成処理時に、式(I25)"に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。   The intermediate result storage unit stores data representing the intermediate result in the process (matrix decomposition process) for generating the matrix included in the formula (I25) ". The intermediate result storage unit Data representing an intermediate result of (2m−t + 3) times of matrix multiplication included in the formula (I25) ″ is stored.

(6) パリティベクトルYを計算する過程で非対角項の非零要素数が増加しないようなオーダリング手法
たとえば、行列U3、行列U4がそれぞれ式(13)、式(14)で表わされる場合には、これらの積U4×U3は、式(15)で表わされる。

Figure 0004821684
Figure 0004821684
(6) Ordering method in which the number of non-zero elements of non-diagonal terms does not increase in the process of calculating the parity vector Y. For example, the matrix U 3 and the matrix U 4 are expressed by the equations (13) and (14), respectively. In this case, these products U 4 × U 3 are expressed by equation (15).
Figure 0004821684
Figure 0004821684

行列U4×U3の計算結果を観察すると、第4行は、U4の第4行と同じである。第3行は、U[3,4]が0の場合、U3の第3行と同じになる。また、第3行は、U[3,4]が1の場合、第i列がU[3,i]+U[4,i]となる。2を法とする演算では、U[3,i]とU[4,i]のいずれもが1の場合、またはいずれもが0の場合に、U[3,i]+U[4,i]の値が0となる。 When the calculation result of the matrix U 4 × U 3 is observed, the fourth row is the same as the fourth row of U 4 . The third row is the same as the third row of U 3 when U [3,4] is zero. In the third row, when U [3, 4] is 1, the i-th column is U [3, i] + U [4, i]. In an operation modulo 2, when U [3, i] and U [4, i] are both 1 or both are 0, U [3, i] + U [4, i] The value of becomes zero.

このことは、行列U4×U3の非対角項の非零要素数を少なくするためには、上三角行列Uの各列において、値が「1」である要素が隣接するように行列Bをオーダリングするのが望ましいことを示している。言い換えると、上三角行列Uの各列において、値が「1」である要素が隣接するように行列Bをオーダリングすることによって、パリティベクトルYを生成する式を計算するために、行列乗算を行なっても、非対角項の非零要素数が増加しないようにすることができる。また、このようなオーダリングを行なうことによって、複数個の行列を1つにまとめても非対角項の非零要素数が増加しないので、行列乗算数削減処理によって行列乗算数を効果的に削減することができる。 This means that in order to reduce the number of non-zero elements in the non-diagonal terms of the matrix U 4 × U 3 , the matrix having the value “1” is adjacent to each other in each column of the upper triangular matrix U. This indicates that it is desirable to order B. In other words, in each column of the upper triangular matrix U, matrix multiplication is performed in order to calculate an expression for generating the parity vector Y by ordering the matrix B so that elements having a value of “1” are adjacent to each other. However, the number of non-zero elements in the off-diagonal terms can be prevented from increasing. In addition, by performing such ordering, the number of non-zero elements of non-diagonal terms does not increase even if a plurality of matrices are combined into one, so that the number of matrix multiplications can be effectively reduced by matrix multiplication reduction processing. can do.

また、行列L3、行列L4がそれぞれ式(16)、式(17)で表わされる場合には、これらの積L4×L3は、式(18)で表わされる。

Figure 0004821684
Further, when the matrix L 3 and the matrix L 4 are represented by the equations (16) and (17), respectively, the product L 4 × L 3 is represented by the equation (18).
Figure 0004821684

行列L4×L3の計算結果を観察すると、第4列は、L4の第4列と同じである。第3列は、L[4,3]が0の場合、L3の第3列と同じになる。また、第3列は、L[4,3]が1の場合、第i行がL[i,3]+L[i,4]となる。2を法とする演算では、L[i,3]とL[i,4]のいずれもが1の場合、またはいずれもが0の場合に、L[i,3]+L[i,4]の値が0となる。 Observing the calculation result of the matrix L 4 × L 3 , the fourth column is the same as the fourth column of L 4 . The third column is the same as the third column of L 3 when L [4,3] is zero. In the third column, when L [4,3] is 1, the i-th row is L [i, 3] + L [i, 4]. In an operation modulo 2, if both L [i, 3] and L [i, 4] are 1, or both are 0, L [i, 3] + L [i, 4] The value of becomes zero.

このことは、行列L4×L3の非対角項の非零要素数を少なくするためには、下三角行列Lの各行において、値が「1」である要素が隣接するように行列Bをオーダリングするのが望ましいことを示している。言い換えると、下三角行列Lの各行において、値が「1」である要素が隣接するように行列Bをオーダリングすることによって、パリティベクトルYを生成する式を計算するために、行列乗算を行なっても、非対角項の非零要素数が増加しないようにすることができる。また、このようなオーダリングを行なうことによって、複数個の行列を1つにまとめても非対角項の非零要素数が増加しないので、行列乗算数削減処理によって行列乗算数を効果的に削減することができる。 This means that in order to reduce the number of non-zero elements in the non-diagonal terms of the matrix L 4 × L 3 , the matrix B Indicates that it is desirable to order In other words, in each row of the lower triangular matrix L, matrix multiplication is performed to calculate an expression for generating the parity vector Y by ordering the matrix B so that elements having a value of “1” are adjacent to each other. However, the number of non-zero elements in the off-diagonal terms can be prevented from increasing. In addition, by performing such ordering, the number of non-zero elements of non-diagonal terms does not increase even if a plurality of matrices are combined into one, so that the number of matrix multiplications can be effectively reduced by matrix multiplication reduction processing. can do.

(7) 符号化プログラム
本発明の実施形態で説明した符号化器は、専用のハードウエア装置で実現されるものに限られない。外部から符号化プログラムをメモリにインストールし、コンピュータがこの符号化プログラムをメモリから読出して実行することによって、符号化器の機能を実現することとしてもよい。この場合、第1の実施形態の機能を実行する符号化プログラムは図3と図4のフローチャートの各ステップを備え、第1の実施形態と同様の効果を有する。第1の実施形態の変形例1の機能を実行する符号化プログラムは図6と図7のフローチャートの各ステップを備え、第1の実施形態の変形例と同様の効果を有する。第2の実施形態の機能を実行する符号化プログラムは図9と図10のフローチャートの各ステップを備え、第2の実施形態と同様の効果を有する。第2の実施形態の変形例1の機能を実行する符号化プログラムは図12と図13のフローチャートの各ステップを備え、第2の実施形態の変形例1と同様の効果を有する。第3の実施形態の機能を実行する符号化プログラムは図15と図16のフローチャートの各ステップを備え、第3の実施形態と同様の効果を有する。第3の実施形態の変形例1の機能を実行する符号化プログラムは図18と図19のフローチャートの各ステップを備え、第3の実施形態の変形例1と同様の効果を有する。第4の実施形態の機能を実行する符号化プログラムは図21と図22のフローチャートの各ステップを備え、第4の実施形態と同様の効果を有する。第4の実施形態の変形例1の機能を実行する符号化プログラムは図24と図25のフローチャートの各ステップを備え、第4の実施形態の変形例1と同様の効果を有する。第5の実施形態の機能を実行する符号化プログラムは図3と図27のフローチャートの各ステップを備え、第5の実施形態と同様の効果を有する。
(7) Encoding program The encoder described in the embodiment of the present invention is not limited to that realized by a dedicated hardware device. The encoding program may be externally installed in the memory, and the function of the encoder may be realized by the computer reading the encoding program from the memory and executing it. In this case, the encoding program for executing the functions of the first embodiment includes the steps of the flowcharts of FIGS. 3 and 4 and has the same effect as that of the first embodiment. The encoding program for executing the functions of the first modification of the first embodiment includes the steps of the flowcharts of FIGS. 6 and 7 and has the same effect as the modification of the first embodiment. The encoding program for executing the functions of the second embodiment includes the steps of the flowcharts of FIGS. 9 and 10 and has the same effects as those of the second embodiment. The encoding program for executing the function of the first modification of the second embodiment includes the steps of the flowcharts of FIGS. 12 and 13 and has the same effect as that of the first modification of the second embodiment. The encoding program for executing the functions of the third embodiment includes the steps of the flowcharts of FIGS. 15 and 16 and has the same effects as those of the third embodiment. The encoding program that executes the function of the first modification of the third embodiment includes the steps of the flowcharts of FIGS. 18 and 19 and has the same effect as that of the first modification of the third embodiment. The encoding program for executing the functions of the fourth embodiment includes the steps of the flowcharts of FIGS. 21 and 22 and has the same effects as those of the fourth embodiment. The encoding program for executing the functions of the first modification of the fourth embodiment includes the steps of the flowcharts of FIGS. 24 and 25, and has the same effect as that of the first modification of the fourth embodiment. The encoding program for executing the functions of the fifth embodiment includes the steps of the flowcharts of FIGS. 3 and 27, and has the same effect as that of the fifth embodiment.

(8) 誤り訂正符号
本発明の実施形態では、誤り訂正符号の例としてLDPCについて説明したが、これに限定するものではなく、ビタビやターボ符号などへの応用も可能である。
(8) Error Correction Code In the embodiment of the present invention, LDPC has been described as an example of an error correction code. However, the present invention is not limited to this, and application to a Viterbi or turbo code is also possible.

(9) (t+1)<m、t<m
本発明の第3の実施形態およびその変形例1では、説明の便宜上(t+1)<mとしたが、これには限定されない。また、同様に、本発明の第4の実施形態およびその変形例1では、説明の便宜上t<mとしたが、これには限定されない。
(9) (t + 1) <m, t <m
In the third embodiment of the present invention and its modification example 1, (t + 1) <m is set for convenience of explanation, but the present invention is not limited to this. Similarly, in the fourth embodiment of the present invention and its modification example 1, t <m is set for convenience of explanation, but the present invention is not limited to this.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

本発明の実施形態の通信システムの構成の一例を示す図である。It is a figure which shows an example of a structure of the communication system of embodiment of this invention. 第1の実施形態の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of 1st Embodiment. 第1の実施形態の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of 1st Embodiment. 第1の実施形態の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of 1st Embodiment. 第1の実施形態の変形例1の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of the modification 1 of 1st Embodiment. 第1の実施形態の変形例1の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of the modification 1 of 1st Embodiment. 第1の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of the modification 1 of 1st Embodiment. 第2の実施形態の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of 2nd Embodiment. 第2の実施形態の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of 2nd Embodiment. 第2の実施形態の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of 2nd Embodiment. 第2の実施形態の変形例1の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of the modification 1 of 2nd Embodiment. 第2の実施形態の変形例1の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of the modification 1 of 2nd Embodiment. 第2の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of the modification 1 of 2nd Embodiment. 第3の実施形態の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of 3rd Embodiment. 第3の実施形態の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of 3rd Embodiment. 第3の実施形態の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of 3rd Embodiment. 第3の実施形態の変形例1の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of the modification 1 of 3rd Embodiment. 第3の実施形態の変形例1の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of the modification 1 of 3rd Embodiment. 第3の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of the modification 1 of 3rd Embodiment. 第4の実施形態の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of 4th Embodiment. 第4の実施形態の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of 4th Embodiment. 第4の実施形態の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of 4th Embodiment. 第4の実施形態の変形例1の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of the modification 1 of 4th Embodiment. 第4の実施形態の変形例1の行列分解処理のフローチャートである。It is a flowchart of the matrix decomposition process of the modification 1 of 4th Embodiment. 第4の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of the modification 1 of 4th Embodiment. 第5の実施形態の符号化器の構成を表わす図である。It is a figure showing the structure of the encoder of 5th Embodiment. 第5の実施形態の符号化ベクトル生成処理のフローチャートである。It is a flowchart of the encoding vector production | generation process of 5th Embodiment.

符号の説明Explanation of symbols

1 送信装置、2,2a〜2i 符号化器、3 変調器、4 受信装置、5 誤り訂正復号化器、6 復調器、10,30 検査行列分解部、11,21,31,41,51,61,71,81,91 行列積計算部、97 第1の行列積計算部、98 第2の行列積計算部、12,22,32,42,52,62,72,82,92 中間結果記憶部、13,17,27,33,37,47,57,67,77,87,94,96 加算器、14,34 LU分解部、15,19,29,35,39,49,59,69,79,89,93,95 乗算器、16,36 基本行列分解部、18,28,38,48,58,68,78,88 行列記憶部、20 配列部、23,43 逆行列計算部、40 オーダリング部、75,85 行列乗算数削減部、99 符号反転部、121,122,123,124,125,126,127,128,129 行列積計算制御部。   DESCRIPTION OF SYMBOLS 1 Transmitting device, 2, 2a-2i encoder, 3 modulator, 4 receiving device, 5 error correction decoder, 6 demodulator, 10, 30 Check matrix decomposing unit, 11, 21, 31, 41, 51, 61, 71, 81, 91 Matrix product calculation unit, 97 First matrix product calculation unit, 98 Second matrix product calculation unit, 12, 22, 32, 42, 52, 62, 72, 82, 92 Intermediate result storage Part 13, 17, 27, 33, 37, 47, 57, 67, 77, 87, 94, 96 adder, 14, 34 LU decomposition part, 15, 19, 29, 35, 39, 49, 59, 69 79, 89, 93, 95 multiplier, 16, 36 basic matrix decomposition unit, 18, 28, 38, 48, 58, 68, 78, 88 matrix storage unit, 20 array unit, 23, 43 inverse matrix calculation unit, 40 ordering unit, 75,85 matrix multiplication number reduction unit , 99 sign inversion unit, 121, 122, 123, 124, 125, 126, 127, 128, 129 matrix product calculation control unit.

Claims (24)

要素数kの情報ベクトルXから式(A1)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A1)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。
An encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 from an information vector X having k elements in accordance with a parity generation expression represented by Expression (A1),
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A1)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
The matrix L i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B, and the i-th column matches the i-th column of the lower triangular matrix L. , The other columns are matrices with off-diagonal terms 0 and diagonal terms 1.
The matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and the i-th row matches the i-th row of the upper triangular matrix U. , The other rows are matrices with off-diagonal terms of 0 and diagonal terms of 1,
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation equation,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output as a parity vector Y.
前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bとに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部とを備えた、請求項1記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The encoding device further includes:
A parity check matrix H that is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
LU which decomposes the matrix B into a product of the lower triangular matrix L and the upper triangular matrix U and stores the data representing the lower triangular matrix L and the data representing the upper triangular matrix U in the intermediate result storage unit A decomposition unit;
Data representing the upper triangular matrix U and the lower triangular matrix L is read from the intermediate result storage unit, and the upper triangular matrix U is converted into a product of m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into a product of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i are decomposed. The encoding apparatus according to claim 1, further comprising: a basic matrix decomposition unit that stores data representing (i = 1 to m) in the matrix storage unit.
要素数kの情報ベクトルXから式(A2)で表わされるパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(A2)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li -1(i=1〜m)は行列Liの逆行列であり、前記行列Liは前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui -1(i=1〜m)は行列Uiの逆行列であり、前記行列Uiは、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。
An encoding device that generates a parity vector Y having m elements by performing a real number operation from an information vector X having k elements in accordance with a parity generation expression represented by Expression (A2),
Y = −U 1 −1 U 2 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX. A2)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
Matrix L i -1 (i = 1 to m) is the inverse matrix of the matrix L i, the matrix L i is a basic lower triangular matrix of the lower triangular matrix L obtained by the LU decomposition of the matrix B, the i-th row Eyes coincide with the i-th column of the lower triangular matrix L, and the other columns are matrices whose off-diagonal terms are 0 and diagonal terms are 1,
Matrix U i -1 (i = 1 to m) is the inverse matrix of the matrix U i, the matrix U i is the matrix B a fundamental upper triangular matrix of the upper triangular matrix U obtained by the LU decomposition, the i The row matches the i-th row of the upper triangular matrix U, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1.
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculator that performs a plurality of matrix multiplications included in the parity generation equation;
A code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs it as a parity vector Y,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output to the code inverting unit.
前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bとに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)を表わすデータを読み出して、前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、前記逆行列Ui -1(i=1〜m)および前記逆行列Li -1(i=1〜m)を表わすデータを前記行列記憶部に記憶させる逆行列計算部とを備えた、請求項3記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The encoding device further includes:
A parity check matrix H that is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
LU which decomposes the matrix B into a product of the lower triangular matrix L and the upper triangular matrix U and stores the data representing the lower triangular matrix L and the data representing the upper triangular matrix U in the intermediate result storage unit A decomposition unit;
Data representing the upper triangular matrix U and the lower triangular matrix L is read from the intermediate result storage unit, and the upper triangular matrix U is converted into a product of m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into a product of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i are decomposed. A basic matrix decomposition unit that stores data representing (i = 1 to m) in the intermediate result storage unit;
Data representing the matrix U i (i = 1 to m) and the matrix L i (i = 1 to m) is read from the intermediate result storage unit, and the matrix U i (i = 1 to m) and the matrix By inverting the sign of the element of the off-diagonal term of L i (i = 1 to m), the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 (i = 1 to m) And an inverse matrix calculator that stores data representing the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 (i = 1 to m) in the matrix storage unit; The encoding device according to claim 3, comprising:
要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A3−1)、u≧1かつv=0のときには式(A3−2)、u=0かつv≧1のときには式(A3−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A3−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A3−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i(i=1〜m)は、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i(i=1〜m)は、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。
From the information vector X with k elements, equation (A3-1) is obtained when u ≧ 1 and v ≧ 1, equation (A3-2) is obtained when u ≧ 1 and v = 0, and when u = 0 and v ≧ 1. An encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 according to a parity generation expression represented by Expression (A3-3),
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A3 -1)
Y≡U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A3-2)
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX (A3-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
When u ≧ 1 and v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix A (u) Is the same permutation as the u-th row permutation for the matrix B with respect to the matrix A, and the matrix E (v) is v times for the matrix B with respect to the unit matrix E. It is the same replacement as the column replacement,
When u ≧ 1 and v = 0, the matrix B ′ is obtained by performing u times of row replacement with respect to the matrix B, and the matrix A (u) is obtained with respect to the matrix A. , And the same replacement as the u-time replacement of the matrix B,
When u = 0 and v ≧ 1, the matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained with respect to the unit matrix E. , The same permutation as the column permutation of the matrix B is performed,
The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′, and the i-th column is the i-th column of the lower triangular matrix L ′. The other column is a matrix whose off-diagonal term is 0 and whose diagonal term is 1,
The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′, and the i-th row is the i-th row of the upper triangular matrix U ′. The other row is a matrix whose off-diagonal terms are 0 and diagonal terms are 1,
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation equation,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output as a parity vector Y.
前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、u=0かつv≧1のときには、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させ、u≧1かつv=0の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、u=0かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部とを備えた、請求項5記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The encoding device further includes:
The parity check matrix H is decomposed into the matrix A and the matrix B, and when u = 0 and v ≧ 1, a check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
When u ≧ 1 and v ≧ 1, the matrix B is ordered, and the matrix B ′ is generated by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix B ′ is generated. The matrix A (u) in which the same replacement as the u-time replacement of the matrix B with respect to the matrix B is generated for A and stored in the matrix storage unit, and the matrix B for the unit matrix E with respect to the matrix B The matrix E (v) subjected to the same replacement as the column replacement of v times is generated and stored in the matrix storage unit. When u ≧ 1 and v = 0, the matrix B is ordered, The matrix B ′ in which u rows have been replaced with respect to the matrix B is generated, and the matrix A (u with the same replacement as u rows with respect to the matrix B is performed with respect to the matrix A. ) generated and stored in the matrix storage unit, When = 0 and v ≧ 1, the matrix B is ordered to generate the matrix B ′ in which the columns B are exchanged v times, and the matrix B is converted to the unit matrix E. An ordering unit that generates the matrix E (v) that has been replaced in the same manner as the v-time column replacement for and stores the matrix E (v) in the matrix storage unit;
The matrix B ′ is LU-decomposed into a product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and data representing the lower triangular matrix L ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result. LU decomposition unit to be stored in the unit,
Data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ is read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into the m basic upper triangular matrices U ′ i (i = 1 to m). ), The lower triangular matrix L ′ is decomposed into products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix U ′ i (i = 1). ~m) and matrix 'L i (i = data representing the 1 to m) and a base matrix decomposition unit to be stored in the matrix storage unit, the encoding apparatus according to claim 5, wherein.
要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A4−1)、u≧1かつv=0のときには式(A4−2)、u=0かつv≧1のときには式(A4−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(A4−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(A4−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A4−3)
ただし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i -1(i=1〜m)は行列L′iの逆行列であり、前記行列L′iは、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i -1(i=1〜m)は行列U′iの逆行列であり、前記行列U′iは、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。
From the information vector X with k elements, the equation (A4-1) is obtained when u ≧ 1 and v ≧ 1, the equation (A4-2) when u ≧ 1 and v = 0, and the equation (A4-2) when u = 0 and v ≧ 1. An encoding device that generates a parity vector Y having m elements by performing an operation modulo 2 according to a parity generation expression represented by Expression (A4-3),
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (A4-1)
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (A4-2)
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (A4-3)
However, the parity check matrix H is a matrix of m rows and n columns satisfying H (X, Y) T = 0, and the matrix A is composed of the first to kth columns of the parity check matrix H. B consists of the (k + 1) th column to the nth column of the parity check matrix H, and n = k + m,
When u ≧ 1 and v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix A (u) Is the same permutation as the u-th row permutation for the matrix B with respect to the matrix A, and the matrix E (v) is v times for the matrix B with respect to the unit matrix E. It is the same replacement as the column replacement,
When u ≧ 1 and v = 0, the matrix B ′ is obtained by performing u times of row replacement with respect to the matrix B, and the matrix A (u) is obtained with respect to the matrix A. , And the same replacement as the u-time replacement of the matrix B,
When u = 0 and v ≧ 1, the matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained with respect to the unit matrix E. , The same permutation as the column permutation of the matrix B is performed,
Matrix L 'i -1 (i = 1~m ) is a matrix L' is the inverse matrix of i, the matrix L 'i, said matrix B' of the basic lower triangular matrix of LU decomposition lower triangular matrix has L ' The i-th column matches the i-th column of the lower triangular matrix L ′, and the other columns are matrices whose off-diagonal terms are 0 and whose diagonal terms are 1.
Matrix U 'i -1 (i = 1~m ) is a matrix U' is the inverse matrix of i, the matrix U 'i, said matrix B' of the basic upper triangular matrix of the upper triangular matrix U 'was LU decomposition The i-th row coincides with the i-th row of the upper triangular matrix U ′, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1.
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculator that performs a plurality of matrix multiplications included in the parity generation equation;
A code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs it as a parity vector Y,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output to the code inverting unit.
前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、u=0かつv≧1のときには、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させ、u≧1かつv=0の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、u=0かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)を表わすデータを読み出して、前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、前記逆行列U′i -1(i=1〜m)および前記逆行列L′i -1(i=1〜m)を表わすデータを前記行列記憶部に記憶させる逆行列計算部とを備えた、請求項7記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The encoding device further includes:
The parity check matrix H is decomposed into the matrix A and the matrix B, and when u = 0 and v ≧ 1, a check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
When u ≧ 1 and v ≧ 1, the matrix B is ordered, and the matrix B ′ is generated by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix B ′ is generated. The matrix A (u) in which the same replacement as the u-time replacement of the matrix B with respect to the matrix B is generated for A and stored in the matrix storage unit, and the matrix B for the unit matrix E with respect to the matrix B The matrix E (v) subjected to the same replacement as the column replacement of v times is generated and stored in the matrix storage unit. When u ≧ 1 and v = 0, the matrix B is ordered, The matrix B ′ in which u rows have been replaced with respect to the matrix B is generated, and the matrix A (u with the same replacement as u rows with respect to the matrix B is performed with respect to the matrix A. ) generated and stored in the matrix storage unit, When = 0 and v ≧ 1, the matrix B is ordered to generate the matrix B ′ in which the columns B are exchanged v times, and the matrix B is converted to the unit matrix E. An ordering unit that generates the matrix E (v) that has been replaced in the same manner as the v-time column replacement for and stores the matrix E (v) in the matrix storage unit;
The matrix B ′ is LU-decomposed into a product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and data representing the lower triangular matrix L ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result. LU decomposition unit to be stored in the unit,
Data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ is read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into the m basic upper triangular matrices U ′ i (i = 1 to m). ), The lower triangular matrix L ′ is decomposed into products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix U ′ i (i = 1). ˜m) and matrix ′ L i (i = 1 to m) are stored in the intermediate result storage unit, a basic matrix decomposition unit;
The intermediate results from the storage unit reads the data representing the matrix U 'i (i = 1~m) and the matrix L' i (i = 1~m) , the matrix U 'i (i = 1~m) And the inverse matrix U ′ i −1 (i = 1 to m) and the inverse matrix L ′ i −1 by inverting the signs of the elements of the off-diagonal terms of the matrix L ′ i (i = 1 to m). (I = 1 to m) is calculated, and the matrix storage unit stores data representing the inverse matrix U ′ i −1 (i = 1 to m) and the inverse matrix L ′ i −1 (i = 1 to m). The encoding apparatus according to claim 7, further comprising: an inverse matrix calculation unit that stores the matrix.
要素数kの情報ベクトルXから、式(A5)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A5)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。
From the information vector X with the number k of elements, a parity generation expression in which at least one set of two or more adjacent matrices included in the expression (A5) is replaced with a matrix C that is a multiplication result of the two or more matrices. Accordingly, an encoding device that generates a parity vector Y having m elements by performing an operation modulo 2;
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A5)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
The matrix L i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B, and the i-th column matches the i-th column of the lower triangular matrix L. , The other columns are matrices with off-diagonal terms 0 and diagonal terms 1.
The matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and the i-th row matches the i-th row of the upper triangular matrix U. , The other rows are matrices with off-diagonal terms of 0 and diagonal terms of 1,
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation equation,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output as a parity vector Y.
前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項9記載の符号化装置。   The sum of the number of non-zero elements in the non-diagonal terms of all matrices included in the parity generation formula is equal to or less than the sum of the number of non-zero elements in the non-diagonal terms of all matrices included in the formula (A5). The encoding device according to claim 9. 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A5)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記乗算結果である行列Cの非零要素数と前記式(A5)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A5)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項10記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The matrix product calculation unit further performs multiplication of two or more adjacent matrices included in the formula (A5), and outputs data representing the matrix C as a multiplication result,
The encoding device further includes:
A parity check matrix H that is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
LU which decomposes the matrix B into a product of the lower triangular matrix L and the upper triangular matrix U and stores the data representing the lower triangular matrix L and the data representing the upper triangular matrix U in the intermediate result storage unit A decomposition unit;
Data representing the upper triangular matrix U and the lower triangular matrix L is read from the intermediate result storage unit, and the upper triangular matrix U is converted into a product of m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into a product of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i are decomposed. A basic matrix decomposition unit that stores data representing (i = 1 to m) in the intermediate result storage unit;
The sum of the number of non-zero elements of the matrix C, which is the multiplication result, and the number of non-zero elements in the off-diagonal terms of the matrix excluding the two or more adjacent matrices among the matrices included in the equation (A5), Of the matrices included in the equation (A5) stored in the intermediate result storage unit when the number of non-zero elements of non-diagonal terms of all the matrices included in the equation (A5) is equal to or less than the sum 11. The encoding device according to claim 10, further comprising: a matrix multiplication number reduction unit that stores data representing a matrix excluding the two or more adjacent matrices and data representing the matrix C in the matrix storage unit. .
要素数kの情報ベクトルXから、式(A6)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -12 -1・・・Um-1 -1m -1m -1m-1 -1・・・L2 -11 -1AX ・・・(A6)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li -1(i=1〜m)は行列Liの逆行列であり、前記行列Liは前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui -1(i=1〜m)は行列Uiの逆行列であり、前記行列Uiは、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。
From the information vector X having the number of elements k, a parity generation equation in which at least one set of two or more adjacent matrices included in the equation (A6) is replaced with a matrix C that is a multiplication result of the two or more matrices is used. Accordingly, an encoding device that generates a parity vector Y having m elements by performing a real number operation,
Y = −U 1 −1 U 2 −1 ... U m-1 −1 U m −1 L m −1 L m−1 −1 ... L 2 −1 L 1 −1 AX. A6)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
Matrix L i -1 (i = 1 to m) is the inverse matrix of the matrix L i, the matrix L i is a basic lower triangular matrix of the lower triangular matrix L obtained by the LU decomposition of the matrix B, the i-th row Eyes coincide with the i-th column of the lower triangular matrix L, and the other columns are matrices whose off-diagonal terms are 0 and diagonal terms are 1,
Matrix U i -1 (i = 1 to m) is the inverse matrix of the matrix U i, the matrix U i is the matrix B a fundamental upper triangular matrix of the upper triangular matrix U obtained by the LU decomposition, the i The row matches the i-th row of the upper triangular matrix U, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1.
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculator that performs a plurality of matrix multiplications included in the parity generation equation;
A code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs it as a parity vector Y,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output to the code inverting unit.
前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項12記載の符号化装置。   The sum of the number of non-zero elements in the non-diagonal terms of all matrices included in the parity generation formula is equal to or less than the sum of the number of non-zero elements in the non-diagonal terms of all matrices included in the formula (A6). The encoding device according to claim 12. 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A6)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)を表わすデータを読み出して、前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、前記逆行列Ui -1(i=1〜m)および前記逆行列Li -1(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる逆行列計算部と、
前記乗算結果である行列Cの非零要素数と前記式(A6)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A6)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項13記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The matrix product calculation unit further performs multiplication of two or more adjacent matrices included in the formula (A6), and outputs data representing the matrix C as a multiplication result,
The encoding device further includes:
A parity check matrix H that is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
LU which decomposes the matrix B into a product of the lower triangular matrix L and the upper triangular matrix U and stores the data representing the lower triangular matrix L and the data representing the upper triangular matrix U in the intermediate result storage unit A decomposition unit;
Data representing the upper triangular matrix U and the lower triangular matrix L is read from the intermediate result storage unit, and the upper triangular matrix U is converted into a product of m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into a product of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i ( a basic matrix decomposition unit that stores data representing i = 1 to m) in the intermediate result storage unit;
Data representing the matrix U i (i = 1 to m) and the matrix L i (i = 1 to m) is read from the intermediate result storage unit, and the matrix U i (i = 1 to m) and the matrix By inverting the sign of the element of the off-diagonal term of L i (i = 1 to m), the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 (i = 1 to m) ) And stores the data representing the inverse matrix U i −1 (i = 1 to m) and the inverse matrix L i −1 (i = 1 to m) in the intermediate result storage unit. When,
The sum of the number of non-zero elements of the matrix C, which is the multiplication result, and the number of non-zero elements in the off-diagonal terms of the matrix excluding the two or more adjacent matrices among the matrices included in the equation (A6), Among the matrices included in the equation (A6) stored in the intermediate result storage unit when the number of non-diagonal terms of all the matrices included in the equation (A6) is less than or equal to the sum The encoding apparatus according to claim 13, further comprising: a matrix multiplication number reduction unit that stores data representing a matrix excluding the two or more adjacent matrices and data representing the matrix C in the matrix storage unit. .
要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A7−1)、u≧1かつv=0のときには式(A7−2)、u=0かつv≧1のときには式(A7−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1(u)X ・・・(A7−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A7−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i(i=1〜m)は、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i(i=1〜m)は、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。
From the information vector X with k elements, the equation (A7-1) is obtained when u ≧ 1 and v ≧ 1, the equation (A7-2) when u ≧ 1 and v = 0, and the equation (A7-2) when u = 0 and v ≧ 1. An operation modulo 2 according to a parity generation equation in which at least one set of two or more adjacent matrices included in equation (A7-3) is replaced by matrix C that is the result of multiplication of the two or more matrices Is a coding device that generates a parity vector Y having m elements by performing
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A7 -1)
Y≡U ′ 1 U ′ 2 ... U ′ m-1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 A (u) X (A7-2)
Y≡E (v) U ′ 1 U ′ 2 ... U ′ m−1 U ′ m L ′ m L ′ m−1 ... L ′ 2 L ′ 1 AX (A7-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
When u ≧ 1 and v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix A (u) Is the same permutation as the u-th row permutation for the matrix B with respect to the matrix A, and the matrix E (v) is v times for the matrix B with respect to the unit matrix E. It is the same replacement as the column replacement,
When u ≧ 1 and v = 0, the matrix B ′ is obtained by performing u times of row replacement with respect to the matrix B, and the matrix A (u) is obtained with respect to the matrix A. , And the same replacement as the u-time replacement of the matrix B,
When u = 0 and v ≧ 1, the matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained with respect to the unit matrix E. , The same permutation as the column permutation of the matrix B is performed,
The matrix L ′ i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L ′ obtained by LU decomposition of the matrix B ′, and the i-th column is the i-th column of the lower triangular matrix L ′. The other column is a matrix whose off-diagonal term is 0 and whose diagonal term is 1,
The matrix U ′ i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U ′ obtained by LU decomposition of the matrix B ′, and the i-th row is the i-th row of the upper triangular matrix U ′. The other row is a matrix whose off-diagonal terms are 0 and diagonal terms are 1,
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation equation,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output as a parity vector Y.
前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項15記載の符号化装置。   The sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in the parity generation equation is the sum of all the matrices included in the equation (A7-1), (A7-2), or (A7-3). The encoding device according to claim 15, which is equal to or less than the sum of the number of non-zero elements of the non-diagonal terms. 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A7−1)、(A7−2)、または(A7−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aおよび前記行列Bを表わすデータを前記中間結果記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させ、u≧1かつv=0の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、u=0かつv≧1の場合、前記中間結果記憶部から前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記乗算結果である行列Cの非零要素数と前記式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項16記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The matrix product calculation unit further performs multiplication of two or more adjacent matrices included in the formula (A7-1), (A7-2), or (A7-3), and a matrix that is a multiplication result Output data representing C,
The encoding device further includes:
A parity check matrix H is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A and the matrix B in the intermediate result storage unit;
When u ≧ 1 and v ≧ 1, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and u rows are exchanged for the matrix B And the matrix B ′ in which the column replacement is performed v times, and the matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated. The matrix E (v) is stored in the intermediate result storage unit, and the unit matrix E is exchanged in the same manner as the v-time column replacement for the matrix B to generate the matrix E (v) in the intermediate result storage unit. When u ≧ 1 and v = 0, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and u times for the matrix B Swap lines Generating the matrix B 'was conducted, the matrix generation and stores the intermediate result storage unit the matrix A was carried out in the same manner as the replacement and swapping of u times the line (u) with respect to B with respect to the matrix A If u = 0 and v ≧ 1, the data representing the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B is replaced v times. The matrix B ′ is generated, and the matrix E (v) obtained by performing the same replacement of the unit matrix E as the column replacement for the matrix B is generated and stored in the intermediate result storage unit. An ordering section to be
The matrix B ′ is LU-decomposed into a product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and data representing the lower triangular matrix L ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result. LU decomposition unit to be stored in the unit,
Data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ is read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into the m basic upper triangular matrices U ′ i (i = 1 to m). ), The lower triangular matrix L ′ is decomposed into products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix U ′ i (i = 1 to 1) is decomposed. m) and a matrix decomposing unit that stores data representing the matrix 'L i (i = 1 to m) in the intermediate result storage unit;
The number of non-zero elements of the matrix C, which is the multiplication result, and the two or more adjacent matrices are excluded from the matrices included in the formula (A7-1), (A7-2), or (A7-3). The sum of the number of non-zero elements in the off-diagonal terms of the matrix is the non-zero element in the off-diagonal terms of all the matrices included in the formula (A7-1), (A7-2), or (A7-3). Two adjacent ones of the matrices included in the formula (A7-1), (A7-2), or (A7-3) stored in the intermediate result storage unit when the sum is less than or equal to the sum of numbers 17. The encoding apparatus according to claim 16, further comprising: a matrix multiplication number reduction unit that stores data representing a matrix excluding the matrix and data representing the matrix C in the matrix storage unit.
要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A8−1)、u≧1かつv=0のときには式(A8−2)、u=0かつv≧1のときには式(A8−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(u)X ・・・(A8−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1(V)X ・・・(A8−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A8−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i -1(i=1〜m)は行列L′iの逆行列であり、前記行列L′iは、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i -1(i=1〜m)は行列U′iの逆行列であり、前記行列U′iは、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。
From the information vector X with k elements, the equation (A8-1) is obtained when u ≧ 1 and v ≧ 1, the equation (A8-2) when u ≧ 1 and v = 0, and the equation (A8-2) when u = 0 and v ≧ 1. By performing a real number operation according to a parity generation equation in which at least one set of two or more adjacent matrices included in the equation (A8-3) is replaced with a matrix C that is a multiplication result of the two or more matrices An encoding device for generating a parity vector Y having m elements,
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 A (u) X (A8-1)
Y = -U ' 1 -1 U' 2 -1 ... U ' m-1 -1 U' m -1 L ' m -1 L' m-1 -1 ... L ' 2 -1 L' 1 -1 A (V) X (A8-2)
Y = -E (v) U ' 1 -1 U' 2 -1 ··· U 'm-1 -1 U' m -1 L 'm -1 L' m-1 -1 ··· L '2 -1 L ' 1 -1 AX (A8-3)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-by-n matrix satisfying H (X, Y) T = 0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
When u ≧ 1 and v ≧ 1, the matrix B ′ is obtained by performing u times of row replacement and v times of column replacement for the matrix B, and the matrix A (u) Is the same permutation as the u-th row permutation for the matrix B with respect to the matrix A, and the matrix E (v) is v times for the matrix B with respect to the unit matrix E. It is the same replacement as the column replacement,
When u ≧ 1 and v = 0, the matrix B ′ is obtained by performing u times of row replacement with respect to the matrix B, and the matrix A (u) is obtained with respect to the matrix A. , And the same replacement as the u-time replacement of the matrix B,
When u = 0 and v ≧ 1, the matrix B ′ is obtained by performing v times of column replacement with respect to the matrix B, and the matrix E (v) is obtained with respect to the unit matrix E. , The same permutation as the column permutation of the matrix B is performed,
Matrix L 'i -1 (i = 1~m ) is a matrix L' is the inverse matrix of i, the matrix L 'i, said matrix B' of the basic lower triangular matrix of LU decomposition lower triangular matrix has L ' The i-th column matches the i-th column of the lower triangular matrix L ′, and the other columns are matrices whose off-diagonal terms are 0 and whose diagonal terms are 1.
Matrix U 'i -1 (i = 1~m ) is a matrix U' is the inverse matrix of i, the matrix U 'i, said matrix B' of the basic upper triangular matrix of the upper triangular matrix U 'was LU decomposition The i-th row coincides with the i-th row of the upper triangular matrix U ′, and the other rows are matrices in which the off-diagonal term is 0 and the diagonal term is 1.
The encoding device includes:
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, a matrix product calculator that performs a plurality of matrix multiplications included in the parity generation equation;
A code inversion unit that inverts the sign of the vector output from the matrix product calculation unit and outputs it as a parity vector Y,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output to the code inverting unit.
前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項18記載の符号化装置。   The sum of the number of non-zero elements of the non-diagonal terms of all the matrices included in the parity generation equation is the sum of all the matrices included in the equation (A8-1), (A8-2), or (A8-3). The encoding device according to claim 18, which is equal to or less than the sum of the number of non-zero elements of the non-diagonal terms. 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A8−1)、(A8−2)、または(A8−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aおよび前記行列Bを表わすデータを前記中間結果記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させ、u≧1かつv=0の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、u=0かつv≧1の場合、前記中間結果記憶部から前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)を表わすデータを読み出して、前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、前記逆行列U′i -1(i=1〜m)および前記逆行列L′i -1(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる逆行列計算部と、
前記乗算結果である行列Cの非零要素数と前記式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項19記載の符号化装置。
The encoding device is an encoding device that generates a matrix included in the parity generation equation before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The matrix product calculation unit further performs multiplication of two or more adjacent matrices included in the formula (A8-1), (A8-2), or (A8-3), and a matrix that is a multiplication result Output data representing C,
The encoding device further includes:
A parity check matrix H is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A and the matrix B in the intermediate result storage unit;
When u ≧ 1 and v ≧ 1, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and u rows are exchanged for the matrix B And the matrix B ′ in which the column replacement is performed v times, and the matrix A (u) in which the same replacement as the u-time replacement of the matrix B is performed on the matrix A is generated. The matrix E (v) is stored in the intermediate result storage unit, and the unit matrix E is exchanged in the same manner as the v-time column replacement for the matrix B to generate the matrix E (v) in the intermediate result storage unit. When u ≧ 1 and v = 0, the data representing the matrix A and the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and u times for the matrix B Swap lines Generating the matrix B 'was conducted, the matrix generation and stores the intermediate result storage unit the matrix A was carried out in the same manner as the replacement and swapping of u times the line (u) with respect to B with respect to the matrix A If u = 0 and v ≧ 1, the data representing the matrix B is read from the intermediate result storage unit, the matrix B is ordered, and the matrix B is replaced v times. The matrix B ′ is generated, and the matrix E (v) obtained by performing the same replacement of the unit matrix E as the column replacement for the matrix B is generated and stored in the intermediate result storage unit. An ordering section to be
The matrix B ′ is LU-decomposed into a product of the lower triangular matrix L ′ and the upper triangular matrix U ′, and data representing the lower triangular matrix L ′ and data representing the upper triangular matrix U ′ are stored in the intermediate result. LU decomposition unit to be stored in the unit,
Data representing the upper triangular matrix U ′ and the lower triangular matrix L ′ is read from the intermediate result storage unit, and the upper triangular matrix U ′ is converted into the m basic upper triangular matrices U ′ i (i = 1 to m). ), The lower triangular matrix L ′ is decomposed into products of m basic lower triangular matrices L ′ i (i = 1 to m), and the decomposed matrix U ′ i (i = 1). ˜m) and matrix ′ L i (i = 1 to m) are stored in the intermediate result storage unit, a basic matrix decomposition unit;
The intermediate results from the storage unit reads the data representing the matrix U 'i (i = 1~m) and the matrix L' i (i = 1~m) , the matrix U 'i (i = 1~m) And the inverse matrix U ′ i −1 (i = 1 to m) and the inverse matrix L ′ i −1 by inverting the signs of the elements of the off-diagonal terms of the matrix L ′ i (i = 1 to m). (I = 1 to m) is calculated, and data representing the inverse matrix U ′ i −1 (i = 1 to m) and the inverse matrix L ′ i −1 (i = 1 to m) is stored as the intermediate result. An inverse matrix calculation unit to be stored in the unit,
The number of non-zero elements of the matrix C which is the multiplication result and the two or more adjacent matrices are excluded from the matrices included in the formula (A8-1), (A8-2), or (A8-3). The sum of the number of non-zero elements of the non-diagonal terms of the matrix is the non-zero element of the non-diagonal terms of all the matrices included in the formula (A8-1), (A8-2), or (A8-3). The adjacent two of the matrices included in the formula (A8-1), (A8-2), or (A8-3) stored in the intermediate result storage unit when the sum is less than or equal to the sum of the numbers The encoding apparatus according to claim 19, further comprising: a matrix multiplication number reduction unit that stores data representing a matrix excluding the matrix and data representing the matrix C in the matrix storage unit.
前記行列積計算部は、前記パリティ生成式に含まれる複数回の行列乗算のうち、前記パリティ生成式の右側にある行列乗算から順次実行する、請求項1、3、5、7、9、12、15および18のいずれか1項に記載の符号化装置。   The matrix product calculation unit sequentially executes a matrix multiplication on the right side of the parity generation formula among a plurality of matrix multiplications included in the parity generation formula. , 15 and 18. 前記行列積計算部は、前記パリティ生成式に含まれる複数回の行列乗算のうち2個以上の行列乗算を並行して実行する、請求項1、3、5、7、9、12、15および18のいずれか1項に記載の符号化装置。   The matrix product calculation unit performs two or more matrix multiplications in parallel among a plurality of matrix multiplications included in the parity generation formula, in parallel. The encoding device according to any one of 18. 要素数kの情報ベクトルXから式(A9)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化プログラムであって、
Y≡U12・・・Um-1mmm-1・・・L21AX ・・・(A9)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化プログラムは、コンピュータを、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部として機能させ、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化プログラム。
An encoding program for generating a parity vector Y having m elements by performing an operation modulo 2 from an information vector X having k elements in accordance with a parity generation expression represented by Expression (A9),
Y≡U 1 U 2 ... U m-1 U m L m L m-1 ... L 2 L 1 AX (A9)
However, (X, Y) T represents transposition of the vector (X, Y), the parity check matrix H is an m-row n-column matrix satisfying H (X, Y) T ≡0, and the matrix A is , The first column to the k-th column of the parity check matrix H, the matrix B includes the (k + 1) -th column to the n-th column of the parity check matrix H, and n = k + m,
The matrix L i (i = 1 to m) is a basic lower triangular matrix of the lower triangular matrix L obtained by LU decomposition of the matrix B, and the i-th column matches the i-th column of the lower triangular matrix L. , The other columns are matrices with off-diagonal terms 0 and diagonal terms 1.
The matrix U i (i = 1 to m) is a basic upper triangular matrix of the upper triangular matrix U obtained by LU decomposition of the matrix B, and the i-th row matches the i-th row of the upper triangular matrix U. , The other rows are matrices with off-diagonal terms of 0 and diagonal terms of 1,
The encoding program includes a computer,
A matrix storage unit for storing data representing a plurality of matrices included in the parity generation equation;
An intermediate result storage unit for storing data representing intermediate results of a plurality of matrix multiplications included in the parity generation equation;
In order to calculate the parity vector Y, function as a matrix product calculation unit that performs a plurality of matrix multiplications included in the parity generation formula,
The matrix product calculation unit performs each matrix multiplication included in the parity generation formula using the information vector X, data representing a matrix in the matrix storage unit, or data representing an intermediate result in the intermediate result storage unit Until the matrix multiplication of the plurality of times included in the parity generation formula ends, data representing the calculation result is stored in the intermediate result storage unit as data representing the intermediate result, and the parity generation formula When the plurality of matrix multiplications included in is completed, a vector obtained after the completion of the plurality of matrix multiplications included in the parity generation equation is output as a parity vector Y.
前記符号化プログラムは、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化プログラムであって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化プログラムは、前記コンピュータを、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部として機能させる、請求項23記載の符号化プログラム。
The encoding program is an encoding program for generating a matrix included in the parity generation formula before generating the parity vector Y,
The intermediate result storage unit further stores data representing an intermediate result of processing for generating a matrix included in the parity generation formula,
The encoding program further includes the computer,
A parity check matrix H that is decomposed into the matrix A and the matrix B, and a parity check matrix decomposition unit that stores data representing the matrix A in the matrix storage unit;
LU which decomposes the matrix B into a product of the lower triangular matrix L and the upper triangular matrix U and stores the data representing the lower triangular matrix L and the data representing the upper triangular matrix U in the intermediate result storage unit A decomposition unit;
Data representing the upper triangular matrix U and the lower triangular matrix L is read from the intermediate result storage unit, and the upper triangular matrix U is converted into a product of m basic upper triangular matrices U i (i = 1 to m). The lower triangular matrix L is decomposed into a product of m basic lower triangular matrices L i (i = 1 to m), and the decomposed matrix U i (i = 1 to m) and the matrix L i are decomposed. 24. The encoding program according to claim 23, wherein the encoding program causes a function of a basic matrix decomposition unit to store data representing (i = 1 to m) in the matrix storage unit.
JP2007096691A 2007-04-02 2007-04-02 Encoding device and encoding program Expired - Fee Related JP4821684B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007096691A JP4821684B2 (en) 2007-04-02 2007-04-02 Encoding device and encoding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007096691A JP4821684B2 (en) 2007-04-02 2007-04-02 Encoding device and encoding program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011192750A Division JP2011244500A (en) 2011-09-05 2011-09-05 Encoding apparatus and encoding program

Publications (2)

Publication Number Publication Date
JP2008258774A JP2008258774A (en) 2008-10-23
JP4821684B2 true JP4821684B2 (en) 2011-11-24

Family

ID=39981936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007096691A Expired - Fee Related JP4821684B2 (en) 2007-04-02 2007-04-02 Encoding device and encoding program

Country Status (1)

Country Link
JP (1) JP4821684B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101391859B1 (en) * 2012-07-31 2014-05-07 최수정 Method and device of encoding/decoding using sparse inverse code
KR101391853B1 (en) * 2012-07-31 2014-05-07 최수정 Method and device of encoding/decoding using sparse inverse code
KR101425506B1 (en) 2012-09-22 2014-08-05 최수정 Method and device of encoding/decoding using complimentary sparse inverse code
US11405055B2 (en) * 2019-06-26 2022-08-02 Polaran Haberlesme Teknolojileri Anonim Sirketi Methods and apparatus for error correction coding with triangular factorization of generator matrix

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100502609B1 (en) * 2002-11-21 2005-07-20 한국전자통신연구원 Encoder using low density parity check code and encoding method thereof

Also Published As

Publication number Publication date
JP2008258774A (en) 2008-10-23

Similar Documents

Publication Publication Date Title
KR100808664B1 (en) Parity check matrix storing method, block ldpc coding method and the apparatus using parity check matrix storing method
CN107820096B (en) Image processing apparatus and method, image processing system and training method
Naimark Linear representations of the Lorentz group
Jin et al. Application of classical Hermitian self-orthogonal MDS codes to quantum MDS codes
US11481613B2 (en) Execution method, execution device, learning method, learning device, and recording medium for deep neural network
JP6242074B2 (en) Method and apparatus for signal data compression and decompression (signal data compression and decompression)
JP6553809B2 (en) Method and apparatus for transmission of coding indication information and precoding matrix determination
JP4821684B2 (en) Encoding device and encoding program
JP5700041B2 (en) Encoding apparatus, error correction code configuration method, and program thereof
JP5774237B2 (en) Error correction encoding method and error correction encoding apparatus
Manuel et al. Design of frequency response masking FIR filter in the canonic signed digit space using modified artificial bee colony algorithm
CN109451308A (en) Video compression method and device, electronic equipment and storage medium
WO2012106416A1 (en) Method and apparatus for compressive sensing of sparse signals with reduced compression complexity
CN107124251B (en) Polarization code encoding method based on any kernel
US20160240206A1 (en) Audio encoder and decoder
Krähmer et al. On the Dolbeault–Dirac operator of quantized symmetric spaces
Lai et al. A construction of quantum stabilizer codes based on syndrome assignment by classical parity-check matrices
Cornwell Knot contact homology and representations of knot groups
Hain Genus 3 mapping class groups are not Kähler
Besnard Extensions of the noncommutative Standard Model and the weak order one condition
JP2011244500A (en) Encoding apparatus and encoding program
CN110770757A (en) Information processing apparatus and information processing method
La Guardia Nonbinary convolutional codes derived from group character codes
Muthiah et al. The equations defining affine Grassmannians in type A and a conjecture of Kreiman, Lakshmibai, Magyar, and Weyman
Ben David et al. Isotropy in group cohomology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110218

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4821684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140916

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