JP4821684B2 - Encoding device and encoding program - Google Patents
Encoding device and encoding program Download PDFInfo
- 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
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
このLDPCの符号化処理、つまりパリティを計算する処理の処理負荷を軽減するための手法が検討されている。たとえば、非特許文献2には、近似三角行列を利用したエンコード手法が開示されている。また、非特許文献3には、三角分解を用いたエンコード手法が開示されている。これらのエンコード手法では、下三角行列および上三角行列を含む方程式を解くことによって、パリティを得ることができる。
しかしながら、非特許文献2および非特許文献3のエンコード手法では、方程式の解法に後退代入などが用いられているため、計算量が多くなる。
However, in the encoding methods of Non-Patent
それゆえに、本発明の目的は、従来よりも少ない計算量でパリティを計算することができる符号化装置および符号化プログラムを提供することである。 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≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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
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 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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′1A(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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
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 -1A(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 -1A(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
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≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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′1A(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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 -1A(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 -1A(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≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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
符号化器2は、kビットの情報ビットからなる情報ベクトルXに対し、mビットのパリティビットからなるパリティベクトルYを付加して、n(=(k+m))ビットのLDPC符号(低密度パリティ検査符号)Zを生成する。パリティベクトルYの生成のために用いられるパリティ検査行列H(m行、n列)においては、行数mが冗長ビット数に対応し、列数nが符号ビット数に対応する。
The
変調器3は、通信路7の構成に応じて、LDPC符号Zに対して、振幅変調、位相変調、コード変調、周波数変調または直行周波数分割多重変調などの変調を行なう。
The
復調器6は、通信路7を介して受信した変調信号に対して、この通信路7における送信形態に応じて復調処理を行なうことによって、nビットの多値量子化(Lを多値数とすると、L≧2)されたデジタル符号を出力する。たとえば、振幅変調、位相変調、コード変調、周波数変調および直行周波数分割多重変調等の場合、復調器において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
The demodulator 6 performs a demodulation process on the modulated signal received via the
誤り訂正復号化器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-1L-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≡UmUm-1・・・U2U1 ・・・(B5)
式(B5)より、逆行列U-1は、以下の式で表わされる。
U-1≡U1 -1U2 -1・・・Um-1 -1Um -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≡L1L2・・・Lm-1Lm ・・・(B7)
式(B7)より、逆行列L-1は、以下の式で表わされる。
L-1≡Lm -1Lm-1 -1・・・L2 -1L1 -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 -1U2 -1・・・Um-1 -1Um -1)(Lm -1Lm-1 -1・・・L2 -1L1 -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)は、以下のような性質を有する。
Ui≡(Ui)-1 ・・・(B10)
Li≡(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≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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
検査行列分解部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
LU分解部14は、加算器13および乗算器15を備える。LU分解部14は、Crout(クラウト)のアルゴリズムにしたがって、行列BをLU分解して、下三角行列Lと、上三角行列Uとを生成する。
The
基本行列分解部16は、上三角行列Uを式(B5)のように、基本上三角行列Ui(i=1〜m)の積に分解する。また、基本行列分解部16は、下三角行列Lを式(B7)のように、基本下三角行列Li(i=1〜m)の積に分解する。
The basic
基本上三角行列Uiは、第i行が上三角行列Uの第i行であり、第i行以外の行は、対角項の要素が1で、非対角項の要素が0であるような行列である。
たとえば、上三角行列Uが式(1)で表わされる場合には、基本上三角行列U1、U2、U3は、それぞれ、式(2)、式(3)、式(4)で表わされる。
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.
基本下三角行列Liは、第i列が下三角行列Lの第i列であり、第i列以外の列は、対角項の要素が1であり、非対角項の要素が0であるような行列である。
たとえば、下三角行列Lが式(5)で表わされる場合には、基本下三角行列L1、L2、L3は、それぞれ、式(6)、式(7)、式(8)で表わされる。
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.
行列記憶部18は、基本上三角行列U1、U2、・・・、Umを表わすデータ、基本下三角行列Lm、Lm-1、・・・、L1を表わすデータ、および行列Aを表わすデータを記憶する。
行列積計算部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
行列積計算制御部121は、パリティベクトルYを算出するために、行列記憶部18にデータが記憶されている行列の順序が先頭からA、L1、L2、・・・、Lm-1、Lm、Um、Um-1、・・・、U2、U1の順となるように行列間の順序を設定し、この順序で行列乗算を行なうように行列積計算部11を制御する。また、行列積計算制御部121は、式(B12)に含まれる(2m+1)回の行列乗算の終了後に、行列積計算部11から計算結果であるパリティベクトルYを出力させる。
Matrix product
中間結果記憶部12は、式(B12)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部12は、パリティベクトルYの生成処理時に、式(B12)に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
配列部20は、kビットの情報ベクトルXと、算出されたmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する。
The
(行列分解処理)
図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
次に、LU分解部14は、中間結果記憶部12から行列Bを表わすデータを読み出して、行列BをLU分解して、下三角行列Lを表わすデータと、上三角行列Uを表わすデータとを中間結果記憶部12に記憶させる(ステップS102)。
Next, the
次に、基本行列分解部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
(符号化ベクトル生成処理)
図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
次に、行列積計算制御部121は、制御変数iを1に設定する(ステップS202)。
行列積計算制御部121は、行列積計算部11を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部11は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部12に記憶させる(ステップS203)。
Next, the matrix product
The matrix product
次に、行列積計算制御部121は、制御変数iをインクリメントする(ステップS204)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS208)。
Thereafter, the
(第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の符号化器は、実数演算を行なう。
[
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-1L-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=UmUm-1・・・U2U1 ・・・(C5)
式(C5)より、逆行列U-1は、以下の式で表わされる。
U-1=U1 -1U2 -1・・・Um-1 -1Um -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=L1L2・・・Lm-1Lm ・・・(C7)
式(C7)より、逆行列L-1は、以下の式で表わされる。
L-1=Lm -1Lm-1 -1・・・L2 -1L1 -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 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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
図5を参照して、この符号化器2bは、第1の実施形態と同様の、検査行列分解部10と、LU分解部14と、基本行列分解部16と、配列部20とを備える。これらについては説明を繰返さない。
Referring to FIG. 5, the encoder 2b includes a parity check
また、符号化器2bは、行列記憶部28と、逆行列計算部23と、行列積計算部21と、中間結果記憶部22と、符号反転部99と、行列積計算制御部122とを備える。
The encoder 2 b includes a
逆行列計算部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
たとえば、行列U4が式(9)で表わされる場合には、逆行列U4 -1は、式(10)で表わされる。
たとえば、行列L4が式(11)で表わされる場合には、逆行列L4 -1は、式(12)で表わされる。
行列記憶部28は、基本上三角行列の逆行列U1 -1、U2 -1、・・・、Um -1を表わすデータ、基本下三角行列の逆行列Lm -1、Lm-1 -1、・・・、L1 -1を表わすデータ、および行列Aを表わすデータを記憶する。
The
行列積計算部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
行列積計算制御部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 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX)を符号反転部99へ出力させる。
In order to calculate the parity vector Y, the matrix product
中間結果記憶部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
(行列分解処理)
図6は、第1の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 6 is a flowchart of the matrix decomposition process according to
図6を参照して、検査行列分解部10は、検査行列Hを行列A、Bに分解する。検査行列分解部10は、行列Aを表わすデータを行列記憶部28に記憶させ、行列Bを表わすデータを中間結果記憶部22に記憶させる(ステップS301)。
Referring to FIG. 6, parity check
次に、LU分解部14は、中間結果記憶部22から行列Bを表わすデータを読み出して、行列BをLU分解して、下三角行列Lを表わすデータと、上三角行列Uを表わすデータとを中間結果記憶部22に記憶させる(ステップS302)。
Next, the
次に、基本行列分解部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
逆行列計算部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
(符号化ベクトル生成処理)
図7は、第1の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 7 is a flowchart of an encoded vector generation process according to
図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
次に、行列積計算制御部122は、制御変数iを1に設定する(ステップS402)。
行列積計算制御部122は、行列積計算部21を指示して、行列記憶部28から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部21は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部22に記憶させる(ステップS403)。
Next, the matrix product
The matrix product
次に、行列積計算制御部122は、制御変数iをインクリメントする(ステップS404)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS408)。
Thereafter, the
(第1の実施形態の変形例1の効果)
以上のように、第1の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(C9)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列の逆行列Ui -1(i=1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)は非零要素数が少ない行列のため、式(C9)の演算の計算量が少ない。また、式(C9)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
(Effects of
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)は以下のように変形される。
P1BY≡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)は以下のように変形される。
P1BQ1Q1 -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.
以下のように新たな行列を定義する。
B(1)≡P1BQ1 ・・・(D5)
A(1)≡P1A ・・・(D6)
式(D5)および式(D6)により、式(D4)は以下の式で表わされる。
B(1)Q1 -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)は以下のように変形される。
P2B(1)Q1 -1Y≡P2A(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)は以下のように変形される。
P2B(1)Q2Q2 -1Q1 -1Y≡P2A(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.
以下のように新たな行列を定義する。
B(2)≡P2B(1)Q2 ・・・(D10)
A(2)≡P2A(1) ・・・(D11)
式(D10)および式(D11)により、式(D9)は以下の式で表わされる。
B(2)Q2 -1Q1 -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・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)≡Pu・・・P2P1A ・・・(D14)
E(v)≡Q1Q2・・・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′-1A(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′1A(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
検査行列分解部30は、検査行列Hを行列A、Bに分解して、行列Aを表わすデータおよび行列Bを表わすデータを中間結果記憶部32に記憶させる。
The parity check
オーダリング部40は、LU分解によって得られる上三角行列、下三角行列の非零要素数が少なくなるように、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なって、行列B′を生成する。オーダリングの手法としては、たとえば、最小次数順序法を用いることができる。また、オーダリング部40は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なって行列A(u)を生成し、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なって、行列E(v)を生成する。
The
LU分解部34は、加算器33およ乗算器35を備える。LU分解部34は、Crout(クラウト)のアルゴリズムにしたがって、行列B′をLU分解して、下三角行列L′と、上三角行列U′とを生成する。
The
基本行列分解部36は、上三角行列U′を式(D19)のように、基本上三角行列U′i(i=1〜m)の積に分解する。また、基本行列分解部36は、下三角行列L′を式(D21)のように、基本下三角行列L′i(i=1〜m)の積に分解する。
The basic
行列記憶部38は、基本上三角行列U′1、U′2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列A(u)、E(v)を表わすデータを記憶する。
行列積計算部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
行列積計算制御部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
中間結果記憶部32は、式(D26)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部32は、パリティベクトルYの生成処理時に、式(D26)に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
配列部20は、kビットの情報ベクトルXと、算出されたmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する。
The
(行列分解処理)
図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
オーダリング部40は、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なう。オーダリング部40は、第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を生成する。
B′≡Pu・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)≡Pu・・・P2P1A ・・・(D14)
E(v)≡Q1Q2・・・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
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
次に、LU分解部34は、中間結果記憶部32から行列B′を表わすデータを読み出して、行列B′をLU分解して、下三角行列L′を表わすデータと、上三角行列U′を表わすデータとを中間結果記憶部32に記憶させる(ステップS503)。
Next, the
次に、基本行列分解部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
(符号化ベクトル生成処理)
図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
次に、行列積計算制御部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
The matrix product
次に、行列積計算制御部123は、制御変数iをインクリメントする(ステップS604)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS608)。
Thereafter, the
(第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の符号化器は、実数演算を行なう。
[
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)は以下のように変形される。
P1BY=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)は以下のように変形される。
P1BQ1Q1 -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.
以下のように新たな行列を定義する。
B(1)=P1BQ1 ・・・(E5)
A(1)=P1A ・・・(E6)
式(E5)および式(E6)により、式(E4)は以下の式で表わされる。
B(1)Q1 -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)は以下のように変形される。
P2B(1)Q1 -1Y=−P2A(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)は以下のように変形される。
P2B(1)Q2Q2 -1Q1 -1Y=−P2A(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.
以下のように新たな行列を定義する。
B(2)=P2B(1)Q2 ・・・(E10)
A(2)=P2A(1) ・・・(E11)
式(E10)および式(E11)により、式(E9)は以下の式で表わされる。
B(2)Q2 -1Q1 -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・・・P2P1BQ1Q2・・・Qv ・・・(E13)
A(u)=Pu・・・P2P1A ・・・(E14)
E(v)=Q1Q2・・・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
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 -1Q1 -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′-1A(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 -1A(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
図11を参照して、この符号化器2dは、第2の実施形態と同様の、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、配列部20とを備える。これらについては説明を繰返さない。
Referring to FIG. 11, this encoder 2d includes a parity check
また、符号化器2dは、行列記憶部48と、逆行列計算部43と、行列積計算部41と、中間結果記憶部42と、符号反転部99と、行列積計算制御部124とを備える。
The encoder 2d includes a
逆行列計算部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
行列記憶部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
行列積計算部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
行列積計算制御部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 -1A(u))を符号反転部99へ出力させる。
In order to calculate the parity vector Y, the matrix product
中間結果記憶部42は、式(E23)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部42は、パリティベクトルYの生成処理時に、式(E23)に含まれる(2m+2)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
符号反転部99は、ベクトルY′の符号を反転して(つまり、ベクトルの各要素の符号を反転して)、それをパリティベクトルYとして出力する。
The
(行列分解処理)
図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
オーダリング部40は、行列Bに対して、第u回(u≧1)の行の入れ替えおよび第v回(v≧1)の列の入れ替えを行なう。オーダリング部40は、第s回目(1≦s≦u)の行の入れ替えを表わす行列をPs、第s回目(1≦s≦v)の列の入れ替えを表わす行列をQsとして、以下のように新たな行列を生成する。
B′=Pu・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)=Pu・・・P2P1A ・・・(D14)
E(v)=Q1Q2・・・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
B '= P u ··· P 2
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
次に、LU分解部34は、中間結果記憶部42から行列B′を表わすデータを読み出して、行列B′をLU分解して、下三角行列L′を表わすデータと、上三角行列U′を表わすデータとを中間結果記憶部42に記憶させる(ステップS703)。
Next, the
次に、基本行列分解部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
逆行列計算部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
(符号化ベクトル生成処理)
図13は、第2の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 13 is a flowchart of an encoded vector generation process according to
図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
次に、行列積計算制御部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
The matrix product
次に、行列積計算制御部124は、制御変数iをインクリメントする(ステップS804)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS808)。
Thereafter, the
(第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
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-1L-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≡UmUm-1・・・U2U1 ・・・(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.
U-1≡U1 -1U2 -1・・・Um-1 -1Um -1 ・・・(F6) U -1 ≡ U 1 -1 U 2 -1 ... U m-1 -1 U m -1 ... (F6)
下三角行列Lは、以下の式のように、基本下三角行列Li(i=1〜m)の積に分解される。
L≡L1L2・・・Lm-1Lm ・・・(F7)
式(F7)より、逆行列L-1は、以下の式で表わされる。
L-1≡Lm -1Lm-1 -1・・・L2 -1L1 -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 -1U2 -1・・・Um-1 -1Um -1)(Lm -1Lm-1 -1・・・L2 -1L1 -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)は、以下のような性質を有する。
Ui≡(Ui)-1 ・・・(F10)
Li≡(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≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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で表わすことができるとする。
(U1U2・・・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-1UmLmLm-1・・・L2L1AX ・・・(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
また、符号化器2eは、中間結果記憶部52と、行列記憶部58と、行列積計算部51と、行列積計算制御部125と、行列乗算数削減部55とを備える。なお、以下では、(t+1)<mとして説明する。
The encoder 2e includes an intermediate
中間結果記憶部52は、式(F14)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部52は、パリティベクトルYの生成処理時に、式(F14)に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
行列記憶部58は、基本上三角行列Ut+1、Ut+2、・・・、Umを表わすデータ、基本下三角行列Lm、Lm-1、・・・、L1を表わすデータ、および行列Aを表わすデータを記憶する。
行列積計算部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
行列乗算数削減部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
一方、行列乗算数削減部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
行列積計算制御部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
(行列分解処理)
図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
次に、行列乗算数削減部55は、中間結果記憶部52にデータが記憶されている行列について、先頭からU1、U2、・・・、Um-1、Um、Lm、Lm-1、・・・、L2、L1、Aの順となるように順序を設定する(ステップS902)。
Next, the matrix multiplication
次に、行列乗算数削減部55は、制御変数tを1に設定する(ステップS903)。
次に、行列乗算数削減部55は、行列記憶部58から第t(=1)順位の行列U1を表わすデータを読み出して、行列U1を行列Cとして、行列Cを表わすデータを中間結果記憶部52に記憶する(ステップS904)。
Next, the matrix multiplication
Next, matrix multiplication
行列数積削減部は、中間結果記憶部52から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部52に記憶させる(ステップS905)。
The matrix number product reduction unit reads the data representing the matrix C from the intermediate
次に、行列乗算数削減部55は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS906)。
Next, the matrix multiplication
次に、行列乗算数削減部55は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部52内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部52に記憶させる(ステップS907)。
Next, the matrix multiplication
次に、行列積計算部51は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS908)。
Next, the matrix
次に、行列乗算数削減部55は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部52に記憶させる(ステップS909)。
Next, the matrix multiplication
行列乗算数削減部55は、中間結果記憶部52から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS910)。
The matrix multiplication
行列乗算数削減部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
一方、行列乗算数削減部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
次に、行列乗算数削減部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
行列乗算数削減部55は、中間結果記憶部52から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS917)。
The matrix multiplication
行列乗算数削減部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
(符号化ベクトル生成処理)
図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
次に、行列積計算制御部125は、制御変数iを1に設定する(ステップS1002)。
Next, the matrix product
行列積計算制御部125は、行列積計算部51を指示して、行列記憶部58から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部51は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部52に記憶させる(ステップS1003)。
The matrix product
次に、行列積計算制御部125は、制御変数iをインクリメントする(ステップS1004)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1008)。
Thereafter, the
(第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の符号化器は、実数演算を行なう。
[
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-1L-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=UmUm-1・・・U2U1 ・・・(G5)
式(G5)より、U-1は、以下の式で表わされる。
U-1=U1 -1U2 -1・・・Um-1 -1Um -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=L1L2・・・Lm-1Lm ・・・(G7)
式(G7)より、L-1は、以下の式で表わされる。
L-1=Lm -1Lm-1 -1・・・L2 -1L1 -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 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(G9)
式(G9)は、(2×m+2)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、U1 -1〜Ut -1のt個の行列の積を1つの行列Cで表わすことができるとする。
(U1 -1U2 -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 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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
図17を参照して、この符号化器2fは、第1の実施形態の変形例1と同様の、検査行列分解部30と、LU分解部14と、基本行列分解部16と、逆行列計算部23と、配列部20とを備える。これらについては説明を繰返さない。
Referring to FIG. 17, this encoder 2f includes a parity check
また、符号化器2fは、中間結果記憶部62と、行列記憶部68と、行列積計算部61と、行列積計算制御部126と、行列乗算数削減部65とを備える。なお、以下では、(t+1)<mとして説明する。
The encoder 2 f includes an intermediate
中間結果記憶部62は、式(G11)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部62は、パリティベクトルYの生成処理時に、式(G11)に含まれる(2m−t+2)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
行列記憶部68は、基本上三角行列の逆行列Ut+1 -1、Ut+2 -1、・・・、Um -1を表わすデータ、基本下三角行列の逆行列Lm -1、Lm-1 -1、・・・、L1 -1を表わすデータ、および行列Aを表わすデータを記憶する。
The
行列積計算部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
行列乗算数削減部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
一方、行列乗算数削減部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
行列積計算制御部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 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX)を符号反転部99へ出力させる。
In order to calculate the parity vector Y, the matrix product
(行列分解処理)
図18は、第3の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 18 is a flowchart of matrix decomposition processing according to
図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
次に、行列乗算数削減部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
次に、行列乗算数削減部65は、制御変数tを1に設定する(ステップS1103)。
次に、行列乗算数削減部65は、行列記憶部68から第t(=1)順位の行列U1 -1を表わすデータを読み出して、行列U1 -1を行列Cとして、行列Cを表わすデータを中間結果記憶部62に記憶する(ステップS1104)。
Next, the matrix multiplication
Next, the matrix multiplication
行列数積削減部は、中間結果記憶部62から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部62に記憶させる(ステップS1105)。
The matrix number product reduction unit reads the data representing the matrix C from the intermediate
次に、行列乗算数削減部65は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1106)。
Next, the matrix multiplication
次に、行列乗算数削減部65は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部62内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部62に記憶させる(ステップS1107)。
Next, the matrix multiplication
次に、行列積計算部61は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1108)。
Next, the matrix
次に、行列乗算数削減部65は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部62に記憶させる(ステップS1109)。
Next, the matrix multiplication
行列乗算数削減部65は、中間結果記憶部62から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1110)。
The matrix multiplication
行列乗算数削減部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
一方、行列乗算数削減部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
次に、行列乗算数削減部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
行列乗算数削減部65は、中間結果記憶部62から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1117)。
The matrix multiplication
行列乗算数削減部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
(符号化ベクトル生成処理)
図19は、第3の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 19 is a flowchart of an encoded vector generation process according to
図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
次に、行列積計算制御部126は、制御変数iを1に設定する(ステップS1202)。
Next, the matrix product
行列積計算制御部126は、行列積計算部61を指示して、行列記憶部68から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部61は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部62に記憶させる(ステップS1203)。
The matrix product
次に、行列積計算制御部126は、制御変数iをインクリメントする(ステップS1204)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1208)。
After that, the
(第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
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
また、行列分解処理時において、行列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)は以下のように変形される。
P1BY≡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)は以下のように変形される。
P1BQ1Q1 -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.
以下のように新たな行列を定義する。
B(1)≡P1BQ1 ・・・(H5)
A(1)≡P1A ・・・(H6)
式(H5)および式(H6)により、式(H4)は以下の式で表わされる。
B(1)Q1 -1Y≡A(1)X) ・・・(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)は以下のように変形される。
P2B(1)Q1 -1Y≡P2A(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)は以下のように変形される。
P2B(1)Q2Q2 -1Q1 -1Y≡P2A(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.
以下のように新たな行列を定義する。
B(2)≡P2B(1)Q2 ・・・(H10)
A(2)≡P2A(1) ・・・(H11)
式(H10)および式(H11)により、式(H9)は以下の式で表わされる。
B(2)Q2 -1Q1 -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・・・P2P1BQ1Q2・・・Qv ・・・(H13)
A(u)≡Pu・・・P2P1A ・・・(H14)
E(v)≡Q1Q2・・・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′-1A(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′1A(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で表わすことができるとする。
E(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′1A(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
また、符号化器2gは、中間結果記憶部72と、行列記憶部78と、行列積計算部71と、行列積計算制御部127と、行列乗算数削減部75とを備える。なお、以下では、t<mとして説明する。
The encoder 2g includes an intermediate
中間結果記憶部72は、式(H28)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部72は、パリティベクトルYの生成処理時に、式(H28)に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
行列記憶部78は、基本上三角行列U′t、U′t+1、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。
The
行列積計算部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
行列乗算数削減部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
一方、行列乗算数削減部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
行列積計算制御部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
(行列分解処理)
図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
次に、行列乗算数削減部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
次に、行列乗算数削減部75は、制御変数tを1に設定する(ステップS1303)。
次に、行列乗算数削減部75は、行列記憶部78から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部72に記憶する(ステップS1304)。
Next, the matrix multiplication
Next, the matrix multiplication
行列数積削減部は、中間結果記憶部72から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部72に記憶させる(ステップS1305)。
The matrix number product reduction unit reads the data representing the matrix C from the intermediate
次に、行列乗算数削減部75は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1306)。
Next, the matrix multiplication
次に、行列乗算数削減部75は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部72内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部72に記憶させる(ステップS1307)。
Next, the matrix multiplication
次に、行列積計算部71は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1308)。
Next, the matrix
次に、行列乗算数削減部75は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部72に記憶させる(ステップS1309)。
Next, the matrix multiplication
行列乗算数削減部75は、中間結果記憶部72から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1310)。
The matrix multiplication
行列乗算数削減部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
一方、行列乗算数削減部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
次に、行列乗算数削減部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
行列乗算数削減部75は、中間結果記憶部72から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1317)。
The matrix multiplication
行列乗算数削減部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
(符号化ベクトル生成処理)
図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
次に、行列積計算制御部127は、制御変数iを1に設定する(ステップS1402)。
Next, the matrix product
行列積計算制御部127は、行列積計算部71を指示して、行列記憶部78から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部71は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部72に記憶させる(ステップS1403)。
The matrix product
次に、行列積計算制御部127は、制御変数iをインクリメントする(ステップS1404)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1408)。
After that, the
(第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の符号化器は、実数演算を行なう。
[
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)は以下のように変形される。
P1BY=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)は以下のように変形される。
P1BQ1Q1 -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.
以下のように新たな行列を定義する。
B(1)=P1BQ1 ・・・(I5)
A(1)=P1A ・・・(I6)
式(I5)および式(I6)により、式(I4)は以下の式で表わされる。
B(1)Q1 -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)は以下のように変形される。
P2B(1)Q1 -1Y=−P2A(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)は以下のように変形される。
P2B(1)Q2Q2 -1Q1 -1Y=−P2A(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.
以下のように新たな行列を定義する。
B(2)=P2B(1)Q2 ・・・(I10)
A(2)=P2A(1) ・・・(I11)
式(I10)および式(I11)により、式(I9)は以下の式で表わされる。
B(2)Q2 -1Q1 -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・・・P2P1BQ1Q2・・・Qv ・・・(I13)
A(u)=Pu・・・P2P1A ・・・(I14)
E(v)=Q1Q2・・・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
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 -1Q1 -1Y=A(u)X ・・・(I17)
ここで、L′は下三角行列であり、U′は上三角行列である。
式(I17)より、列ベクトルYは、以下の式で表わされる。
Y=−E(v)U′-1L′-1A(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 -1A(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で表わすことができるとする。
E(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 -1A(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
図23を参照して、この符号化器2hは、第2の実施形態の変形例1と同様の、検査行列分解部30と、オーダリング部40と、LU分解部34と、基本行列分解部36と、逆行列計算部43と、符号反転部99と、配列部20とを備える。これらについては説明を繰返さない。
Referring to FIG. 23, this encoder 2h includes a parity check
また、符号化器2hは、中間結果記憶部82と、行列記憶部88と、行列積計算部81と、行列積計算制御部128と、行列乗算数削減部85とを備える。なお、以下では、t<mとして説明する。
The encoder 2h includes an intermediate
中間結果記憶部82は、式(I25)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部82は、パリティベクトルYの生成処理時に、式(I25)に含まれる(2m−t+3)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
行列記憶部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
行列積計算部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
行列乗算数削減部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
一方、行列乗算数削減部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
行列積計算制御部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 -1A(u)X)を符号反転部99へ出力させる。
In order to calculate the parity vector Y, the matrix product
(行列分解処理)
図24は、第4の実施形態の変形例1の行列分解処理のフローチャートである。
(Matrix decomposition processing)
FIG. 24 is a flowchart of matrix decomposition processing according to
図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
次に、行列乗算数削減部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
次に、行列乗算数削減部85は、制御変数tを1に設定する(ステップS1503)。
次に、行列乗算数削減部85は、行列記憶部88から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部82に記憶する(ステップS1504)。
Next, the matrix multiplication
Next, the matrix multiplication
行列数積削減部は、中間結果記憶部82から行列Cを表わすデータを読み出して、行列Cの非零要素数SC0をカウントし、非零要素数SC0を中間結果記憶部82に記憶させる(ステップS1505)。
The matrix number product reduction unit reads the data representing the matrix C from the intermediate
次に、行列乗算数削減部85は、第(t+1)順位の行列を表わすデータを読み出して、その行列を行列matとする(ステップS1506)。
Next, the matrix multiplication
次に、行列乗算数削減部85は、行列matの非対角項の非零要素数SC1をカウントし、非零要素数SC1と中間結果記憶部82内の行列Cの非零要素数SC0との和SC2を算出して、非零要素数の和SC2を中間結果記憶部82に記憶させる(ステップS1507)。
Next, the matrix multiplication
次に、行列積計算部81は、行列Cと行列Matとの積C×Matを計算して、計算結果を行列Dとする(ステップS1508)。
Next, the matrix
次に、行列乗算数削減部85は、行列Dの非対角項の非零要素数SC3をカウントし、非零要素数SC3を中間結果記憶部82に記憶させる(ステップS1509)。
Next, the matrix multiplication
行列乗算数削減部85は、中間結果記憶部82から非零要素数の和SC2および非零要素数SC3とを読み出して、SC3とSC2との差が閾値a以下であるかを判断する(ステップS1510)。
The matrix multiplication
行列乗算数削減部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
一方、行列乗算数削減部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
次に、行列乗算数削減部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
行列乗算数削減部85は、中間結果記憶部82から非零要素数の総和SC4および非零要素数の総和SC6とを読み出して、SC6がSC4以下であるかを判断する(ステップS1517)。
The matrix multiplication
行列乗算数削減部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
(符号化ベクトル生成処理)
図25は、第4の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
(Encoded vector generation processing)
FIG. 25 is a flowchart of an encoded vector generation process according to
図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
次に、行列積計算制御部128は、制御変数iを1に設定する(ステップS1602)。
Next, the matrix product
行列積計算制御部128は、行列積計算部81を指示して、行列記憶部88から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部81は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部82に記憶させる(ステップS1603)。
The matrix product
次に、行列積計算制御部128は、制御変数iをインクリメントする(ステップS1604)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1608)。
After that, the
(第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
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
また、行列分解処理時において、行列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
符号化器は、さらに、中間結果記憶部92と、行列積計算部91と、行列積計算制御部129とを備える。
The encoder further includes an intermediate
行列積計算部91は、第1の行列積計算部97と、第2の行列積計算部98とを備える。
The matrix
第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(=LmLm-1・・・L2L1AX)が得られる。
The first matrix
第2の行列積計算部98は、加算器96および乗算器95を備える。行列積計算部91は、パリティベクトルYを算出するために、式(B12)に含まれる右から(m+2)番目から(2m+1)番目までのm回の行列乗算を行列積計算制御部129に指示された順序で実行する。行列積計算部91は、行列記憶部18内の行列U1、U2、・・・、Umを表わすデータ、および中間結果記憶部92内の中間結果を表わすデータのうちの2つを用いて各行列乗算を実行し、計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部92に記憶させる。m回の行列乗算が終了したときには、中間結果である行列R2(=U1U2・・・Um-1Um)が得られる。
The second matrix
また、第1の行列積計算部97は、中間結果R1と中間結果R2との積R2×R1を計算し、計算結果であるベクトルをパリティべクトルYとして出力する。
The first matrix
行列積計算制御部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
中間結果記憶部92は、式(B12)に含まれる行列を生成する処理(行列分解処理)における中間結果を表わすデータを記憶する。また、中間結果記憶部92は、パリティベクトルYの生成処理時に、第1の行列積計算部97および第2の行列積計算部98から出力される式(B12)に含まれる(2m+1)回の行列乗算の中間結果を表わすデータを記憶する。
The intermediate
(行列分解処理)
第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
行列積計算制御部129は、第1の行列積計算部97に対するステップS1702〜S1706の処理と、第2の行列積計算部98に対するステップS1707〜S1711の処理が同時に並行して実行されるように制御する。
The matrix product
行列積計算制御部129は、制御変数iを1に設定する(ステップS1702)。
行列積計算制御部129は、第1の行列積計算部97を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。第1の行列積計算部97は、乗算結果であるベクトルを中間結果R1とし、中間結果R1を表わすデータを中間結果記憶部92に記憶させる(ステップS1703)。
The matrix product
The matrix product
次に、行列積計算制御部129は、制御変数iをインクリメントする(ステップS1704)。
Next, the matrix product
行列積計算制御部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
また、行列積計算制御部129は、制御変数jを(m+2)に設定する(ステップS1707)。
In addition, the matrix product
行列積計算制御部129は、第2の行列積計算部98を指示して、行列記憶部18から第j(=m+2)順位の行列Umを表わすデータを読み出させて、行列Umを中間結果R2とし、中間結果R2を表わすデータを中間結果記憶部92に記憶させる(ステップS1708)。
The matrix product
次に、行列積計算制御部129は、制御変数jをインクリメントする(ステップS1709)。
Next, the matrix product
行列積計算制御部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
制御変数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
その後、配列部20は、kビットの情報ベクトルXとmビットのパリティべクトルYからなるnビットの符号化ベクトルZを生成して、出力する(ステップS1713)。
Thereafter, the
(第5の実施形態の効果)
以上のように、第5の実施形態は、第1の実施形態と同様の効果を有する。さらに、第5の実施形態によれば、非特許文献2および非特許文献3での逐次計算による後退代入と異なり、式(B12)の演算が並列実行が可能なことを利用して、第1の行列積計算部による列ベクトルR1(=LmLm-1・・・L2L1AX)の算出処理と、第2の行列積計算部による行列R2(=U1U2・・・Um-1Um)の算出処理が同時に並列して実行されるので、非特許文献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
[第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 -1Lm-1 -1・・・L2 -1L1 -1AX)の算出処理と、第2の行列積計算部による行列R2(=U1 -1U2 -1・・・Um-1 -1Um -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′1A(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 -1A(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(=LmLm-1・・・L2L1AX)の算出処理と、第2の行列積計算部による行列R2(=CUt+1・・・Um-1Um)の算出処理を同時に並列して実行し、第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 -1Lm-1 -1・・・L2 -1L1 -1AX)の算出処理と、第2の行列積計算部による行列R2(=CUt+1 -1・・・Um-1 -1Um -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′1A(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 -1A(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個以上の行列積計算部によって、パリティベクトル生成処理を並列実行するものとしてもよい。
[
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-1UmLmLm-1・・・L9CX ・・・(F14−1)
ここで、Cは、L8Lt7・・・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≡U1U2CU9・・・Um-1UmLmLm-1・・・L2L1AX ・・・(F14−2)
ここで、Cは、U3U4・・・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≡C1U6U7U8C2U20・・・Um-1UmLmLm-1・・・L6C3X ・・・(F14−3)
ここで、C1は、U1U2・・・U5であり、C2は、U9U10・・・U19であり、C3は、L5L4・・・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
Here, C 1 is U 1 U 2 ··· U 5,
また複数の隣接する行列が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
また、本発明の実施形態では、閾値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′1A(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′1A(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 -1A(u)X ・・・(E23)
(5-2)
(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 -1A(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 -1A(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′1A(u)X ・・・(H26)
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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′1A(u)X ・・・(H26)′
Y≡CU′t+1・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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 -1A(u)X ・・・(I23)
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I25)
(5-4)
(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 -1A(V)X ・・・(I23)′
Y=−CU′t+1 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(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 -1A(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)で表わされる。
行列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)で表わされる。
行列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.
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
Claims (24)
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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.
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列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.
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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.
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列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:
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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.
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列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.
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(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 -1A(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.
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列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.
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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)に含まれる隣接する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. .
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -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)に含まれる隣接する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. .
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(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)に含まれる隣接する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.
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(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 -1A(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)に含まれる隣接する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.
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(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.
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化プログラムは、前記コンピュータを、さらに、
前記パリティ検査行列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.
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)
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)
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 |
-
2007
- 2007-04-02 JP JP2007096691A patent/JP4821684B2/en not_active Expired - Fee Related
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 |