JP2008129861A - Numerical decomposition method in matrix - Google Patents

Numerical decomposition method in matrix Download PDF

Info

Publication number
JP2008129861A
JP2008129861A JP2006314369A JP2006314369A JP2008129861A JP 2008129861 A JP2008129861 A JP 2008129861A JP 2006314369 A JP2006314369 A JP 2006314369A JP 2006314369 A JP2006314369 A JP 2006314369A JP 2008129861 A JP2008129861 A JP 2008129861A
Authority
JP
Japan
Prior art keywords
matrix
storage unit
processing
calculation
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006314369A
Other languages
Japanese (ja)
Other versions
JP4531738B2 (en
Inventor
Bunketsu Kyo
聞杰 姜
Satoshi Aikawa
聡 相河
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006314369A priority Critical patent/JP4531738B2/en
Publication of JP2008129861A publication Critical patent/JP2008129861A/en
Application granted granted Critical
Publication of JP4531738B2 publication Critical patent/JP4531738B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a numerical decomposition method in a matrix of QL decomposition algorithm which reduces computational complexity and power consumption. <P>SOLUTION: In relation to QL decomposition which decomposes a matrix H input into a matrix Q and a lower triangular matrix L, the numerical decomposition method has; a process for inputting the matrix H and a square matrix G which is obtained by multiplying a complex conjugate transposed matrix H<SP>H</SP>of the matrix and the matrix H, giving each element of the matrix H to an empty matrix Q to form a matrix Q, and giving each element of a lower triangular area of the square matrix G to an empty triangular matrix L to form a lower triangular matrix L; a process to calculate each row vector of the matrix L by reading the lower triangular matrix L, calculating a submatrix comprising only non-zero elements in each row vector in units of row vector; a process to find each column vector of the matrix Q by reading the matrix Q from a memory unit and calculating each column vector; and a process to repeat the process for obtaining the matrixes L and Q in the same loop the number of times corresponding to the number of columns of the matrix H. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、数値計算分野における行列のQL分解計算方法に属し、あらゆるデジタル信号処理分野(例えば、デジタル通信,画像処理,音声処理,ソナーシステム,レーザシステムなど)において、ある行列Hを、行列Qと下三角行列Lとの2つに分解することに適用する行列における数値分解方法に関する。   The present invention belongs to a matrix QL decomposition calculation method in the field of numerical calculation, and in any digital signal processing field (for example, digital communication, image processing, sound processing, sonar system, laser system, etc.) The present invention relates to a numerical decomposition method in a matrix applied to the decomposition into two, that is, a lower triangular matrix L.

数値計算の分野において、行列Hを、行列Qと下三角行列Lとの2つに分解する計算アルゴリズムがあり、その計算イメージを図7に示す。
図7において、従来のQR分解アルゴリズムにより、以下に示す(1)式に基づき、行列Hを行列Qと下三角行列Lとの2つの行列に分解される。ここで、行列HはR行,T列の行列を表し、行列QはR行,T列の行列を表し、下三角行列LはT行,T列の行列を表している。
In the field of numerical calculation, there is a calculation algorithm for decomposing a matrix H into two, a matrix Q and a lower triangular matrix L, and the calculation image is shown in FIG.
In FIG. 7, a conventional QR decomposition algorithm decomposes a matrix H into two matrices, a matrix Q and a lower triangular matrix L, based on the following equation (1). Here, the matrix H represents an R row and T column matrix, the matrix Q represents an R row and T column matrix, and the lower triangular matrix L represents a T row and T column matrix.

Figure 2008129861
Figure 2008129861

上記(1)式に示すように、行列Q及び下三角行列Lに分解するアルゴリズムとして、Classical Gram-Schmidt QR分解法,Modified Gram-Schmidt QR分解法,Householder QR分解法,Given QR分解法などがある(例えば、非特許文献1参照)。
Gene H.Golub, Charles F.Van Loan、Matrix Computations ThirdEdition. Hohns Hopkins published
As shown in the above equation (1), algorithms for decomposing the matrix Q and the lower triangular matrix L include the Classical Gram-Schmidt QR decomposition method, Modified Gram-Schmidt QR decomposition method, Householder QR decomposition method, and Given QR decomposition method. Yes (for example, see Non-Patent Document 1).
Gene H. Golub, Charles F. Van Loan, Matrix Computations ThirdEdition. Hohns Hopkins published

しかしながら、非特許文献1に示すQR分解方法にあっては、GRアルゴリズムにおける行列のQR分解の繰り返しにより行われるため、所要処理演算量が大きいという問題がある。
また、従来例にあっては、アルゴリズムを実際の物理的な回路により実現する場合、回路規模が上記所要処理演算量に比例するため、必要な回路規模も大きくなり、装置を小型化することが困難である。
また、従来例にあっては、上述したように、回路規模が大きくなることにより、消費電力も比例して増加することとなり、バッテリで動作する携帯機器等で使用した場合、電力の消耗が早く、長時間使用することができなくなる。
However, the QR decomposition method shown in Non-Patent Document 1 has a problem that a large amount of processing is required because it is performed by repeating QR decomposition of a matrix in the GR algorithm.
Further, in the conventional example, when the algorithm is realized by an actual physical circuit, the circuit scale is proportional to the required processing calculation amount, so that the required circuit scale becomes large and the apparatus can be downsized. Have difficulty.
Further, in the conventional example, as described above, the power consumption is increased in proportion to the increase in the circuit scale. When used in a portable device that operates on a battery, power consumption is quick. Can not be used for a long time.

本発明は、このような事情に鑑みてなされたもので、入力される行列G及びHが既知である場合、従来のQR分解のアルゴリズムに比較して、所要処理演算量を少なくし、回路規模を小型化し、消費電力を削減することができるQL分解のアルゴリズムの行列における数値分解方法を提供することを目的とする。   The present invention has been made in view of such circumstances. When the input matrices G and H are known, the required processing calculation amount is reduced and the circuit scale is reduced as compared with the conventional QR decomposition algorithm. It is an object of the present invention to provide a numerical decomposition method for a matrix of QL decomposition algorithms that can reduce the size and reduce power consumption.

本発明の行列における数値分解方法は、入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの下三角部分の各要素を空三角行列Lに対して付与して仮の下三角行列Lとする初期化過程と、行列L演算部が前記記憶部から前記仮の下三角行列Lを読み出し、この仮の下三角行列Lを行ベクトル単位に、下部から上部方向に、各行ベクトルにおける非ゼロ要素のみの部分行列に対して、対応する行ベクトルより下部の要素を所定の割合にて順次減算する演算(例えば、第1の実施形態における処理(3)〜処理(5)における(3)式の演算)を行い、算出された行列Lの各行ベクトルを記憶部に記憶する行列L演算過程と、行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、演算処理部が前記行列L演算過程及び行列Q演算過程を同一の処理ループ内にて行い、この処理ループを行列Hの列数に対応する回数繰り返し(第1の実施形態における処理(2)から処理(11)のT回の演算ループ)、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程とを有することを特徴とする。 The numerical decomposition method for a matrix according to the present invention is a numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L, and initialization means is stored in the storage unit. A matrix H to be decomposed and a square matrix G obtained by multiplying the complex conjugate transpose matrix H H of the matrix and the matrix H are input, and each element of the matrix H is assigned to the empty matrix Q. An initializing process of setting the provisional matrix Q and the elements of the lower triangular portion of the square matrix G to the empty triangular matrix L to form the provisional lower triangular matrix L, and a matrix L operation unit from the storage unit The temporary lower triangular matrix L is read out, and the lower lower triangular matrix L is subordinate to the row vector unit, from the lower part to the upper part, with respect to the submatrix having only non-zero elements in each row vector, the elements below the corresponding row vector Are sequentially subtracted at a predetermined ratio (for example, the first The matrix L operation process in which each row vector of the calculated matrix L is stored in the storage unit by performing the processing (3) to the processing (5) in the embodiment (3) to (5) in the embodiment, and the matrix Q operation unit stores the memory The temporary matrix Q is read from the unit, and the temporary matrix Q is subtracted from each element of the column vector in units of column vectors, and an operation of sequentially subtracting elements of a predetermined column vector is performed. The matrix Q operation process for storing the vector in the storage unit, and the operation processing unit performs the matrix L operation process and the matrix Q operation process in the same processing loop, and this processing loop is performed a number of times corresponding to the number of columns of the matrix H. Iterating (T operation loops from the process (2) to the process (11) in the first embodiment), an operation process for reading out and outputting the matrix Q and the lower triangular matrix L obtained by decomposing the matrix H from the storage unit; Characterized by having That.

本発明の行列における数値分解方法は、入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの下三角部分の各要素を空三角行列Lに対して付与して仮の下三角行列Lとする初期化過程と、行列L演算部が前記記憶部から前記仮の下三角行列Lを読み出し、この仮の下三角行列Lを行ベクトル単位に、下部から上部方向に、各行ベクトルにおける非ゼロ要素のみの部分行列に対して、対応する行ベクトルより下部の要素を所定の割合にて順次減算する演算(例えば、第2の実施形態における処理(3)〜処理(5)における(3)式の演算)を行い、算出された行列Lの各行ベクトルを記憶部に記憶する行列R演算過程(第2の実施形態における処理(2)から処理(7)のT回の演算ループ)と、行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程(第2の実施形態における処理(8)から処理(12)のT回の演算ループ)と、演算処理部が前記行列L演算過程及び行列Q演算過程を、各々独立した処理ループ内にて行い、この各処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程とを有し、前記演算処理部が行列L演算過程の繰り返しループが終了した後に、行列Q演算過程の繰り返しループを実行することを特徴とする。 The numerical decomposition method for a matrix according to the present invention is a numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L, and initialization means is stored in the storage unit. A matrix H to be decomposed and a square matrix G obtained by multiplying the complex conjugate transpose matrix H H of the matrix and the matrix H are input, and each element of the matrix H is assigned to the empty matrix Q. An initializing process of setting the provisional matrix Q and the elements of the lower triangular portion of the square matrix G to the empty triangular matrix L to form the provisional lower triangular matrix L, and a matrix L operation unit from the storage unit The temporary lower triangular matrix L is read out, and the lower lower triangular matrix L is subordinate to the row vector unit, from the lower part to the upper part, with respect to the submatrix having only non-zero elements in each row vector, the elements below the corresponding row vector Are sequentially subtracted at a predetermined ratio (for example, the second A matrix R calculation process (processing in the second embodiment (processing in the second embodiment)) is performed by performing processing (3) to processing (5) in the embodiment (calculation of equation (3)) and storing each row vector of the calculated matrix L in the storage unit. 2) to T (operation loop of process (7)), and the matrix Q operation unit reads the provisional matrix Q from the storage unit, and the provisional matrix Q is obtained from each element of the column vector in units of column vectors. The matrix Q calculation process in which each column vector of the calculated matrix Q is stored in the storage unit by performing an operation of sequentially subtracting elements of a predetermined column vector (from processing (8) to processing (12) in the second embodiment) And T computation loops), and the computation processing unit performs the matrix L computation process and the matrix Q computation process in independent processing loops, and each processing loop is repeated a number of times corresponding to the number of columns of the matrix H. , Matrix Q which decomposes matrix H, and An arithmetic processing step of reading out and outputting the triangular matrix L from the storage unit, and the arithmetic processing unit executes the iterative loop of the matrix Q arithmetic step after the iterative loop of the matrix L arithmetic step ends. And

本発明の行列における数値分解方法は、入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの上三角部分の各要素を空三角行列Uに対して付与して上三角行列Uとする初期化過程と、行列L演算部が前記記憶部から前記仮の上三角行列Uを読み出し、この上三角行列Uを列ベクトル単位に、右端から左端方向に、各列ベクトルにおける非ゼロ要素のみの部分行列に対して演算を行い、算出された行列Uの各列ベクトルを記憶部に記憶する行列U演算過程(第3の実施形態における処理(3)から処理(5)の演算ループ)と、行列L演算部が所定の回数の処理ループの繰り返しの終了の後、前記行列Uを読み出し、この行列Uに対して複素共役転置処理を行い、この演算結果を下三角行列Lとして、記憶部に記憶する複素共役転置処理過程と、行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、演算処理部が前記行列U演算過程及び行列Q演算過程を同一の処理ループ(第3の実施形態における処理(2)から処理(11)の演算ループ)内にて行い、この処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程とを有することを特徴とする。 The numerical decomposition method for a matrix according to the present invention is a numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L, and initialization means is stored in the storage unit. A matrix H to be decomposed and a square matrix G obtained by multiplying the complex conjugate transpose matrix H H of the matrix and the matrix H are input, and each element of the matrix H is assigned to the empty matrix Q. An initializing process of assigning each element of the upper triangular portion of the square matrix G to the empty triangular matrix U as the temporary matrix Q and setting it as the upper triangular matrix U, and a matrix L calculation unit from the storage unit to the temporary matrix An upper triangular matrix U is read out, and the upper triangular matrix U is calculated in a column vector unit, from the right end to the left end direction, with respect to a partial matrix of only non-zero elements in each column vector, and each column of the calculated matrix U is calculated. Matrix U operation process for storing vector in storage (third embodiment) And the matrix L calculation unit reads the matrix U after the predetermined number of iterations of the processing loop and reads out the matrix U and performs complex conjugate transposition processing on the matrix U. And the complex conjugate transposition process stored in the storage unit as the lower triangular matrix L, and the matrix Q calculation unit reads the temporary matrix Q from the storage unit, and the temporary matrix Q is a column vector. A matrix Q operation process in which, in each unit, an operation of sequentially subtracting an element of a predetermined column vector from each element of the column vector and storing each column vector of the calculated matrix Q in a storage unit; The matrix U computation process and the matrix Q computation process are performed in the same processing loop (the processing loop from processing (2) to processing (11) in the third embodiment), and this processing loop corresponds to the number of columns of the matrix H. Repeat as many times as Decomposed matrix Q and the lower triangular matrix L columns H, and having an arithmetic processing step of outputting from the storage unit.

本発明の行列における数値分解方法は、入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの上三角部分の各要素を空三角行列Uに対して付与して上三角行列Uとする初期化過程と、行列L演算部が前記記憶部から前記仮の上三角行列Uを読み出し、この上三角行列Uを列ベクトル単位に、右端から左端方向に、各列ベクトルにおける非ゼロ要素のみの部分行列に対して演算を行い、算出された行列Uの各列ベクトルを記憶部に記憶する行列U演算過程(第4の実施形態における処理(2)から処理(7)の演算ループ)と、行列L演算部が所定の回数の処理ループの繰り返しの終了の後、前記行列Uを読み出し、この行列Rに対して複素共役転置処理を行い、この演算結果を下三角行列Lとして、記憶部に記憶する複素共役転置処理過程と、行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、演算処理部が前記行列L演算過程及び行列Q演算過程(第4の実施形態における処理(9)から処理(14)の演算ループ)を、各々異なった処理ループ内にて行い、この各処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程とを有することを特徴とする。 The numerical decomposition method for a matrix according to the present invention is a numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L, and initialization means is stored in the storage unit. A matrix H to be decomposed and a square matrix G obtained by multiplying the complex conjugate transpose matrix H H of the matrix and the matrix H are input, and each element of the matrix H is assigned to the empty matrix Q. An initializing process of assigning each element of the upper triangular portion of the square matrix G to the empty triangular matrix U as the temporary matrix Q and setting it as the upper triangular matrix U, and a matrix L calculation unit from the storage unit to the temporary matrix An upper triangular matrix U is read out, and the upper triangular matrix U is calculated in a column vector unit, from the right end to the left end direction, with respect to a partial matrix of only non-zero elements in each column vector, and each column of the calculated matrix U is calculated. Matrix U operation process for storing vector in storage (fourth embodiment) And the matrix L calculation unit reads the matrix U after the predetermined number of repetitions of the processing loop, and performs complex conjugate transposition processing on the matrix R. And the complex conjugate transposition process stored in the storage unit as the lower triangular matrix L, and the matrix Q calculation unit reads the temporary matrix Q from the storage unit, and the temporary matrix Q is a column vector. A matrix Q operation process in which, in each unit, an operation of sequentially subtracting an element of a predetermined column vector from each element of the column vector and storing each column vector of the calculated matrix Q in a storage unit; The matrix L operation process and the matrix Q operation process (operation loops from the processing (9) to the processing (14) in the fourth embodiment) are performed in different processing loops, and each processing loop is performed in the column of the matrix H. Number of times corresponding to the number Ri returns, decomposed matrix Q and the lower triangular matrix L and matrix H, and having an arithmetic processing step of outputting from the storage unit.

以上説明したように、本発明のアルゴリズムによれば、部分行列毎に行列全体を演算していくため、所要処理演算量が従来アルゴリズム(Classical Gram-Schmidt QR分解法,Modified Gram-Schmidt QR分解法,Householder QR分解法,Given QR分解法など)に比較して少なくなる。
また、本発明のアルゴリズムによれば、QL分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQL分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化及び低製造コスト化を実現できる。
As described above, according to the algorithm of the present invention, since the entire matrix is calculated for each submatrix, the required processing amount is the conventional algorithm (Classical Gram-Schmidt QR decomposition method, Modified Gram-Schmidt QR decomposition method). , Householder QR decomposition method, Given QR decomposition method, etc.).
Further, according to the algorithm of the present invention, a circuit for the QL decomposition method can be realized on a small scale. That is, since the circuit scale is proportional to the required amount of calculation, the amount of calculation is smaller than that of the conventional example, so the required circuit scale of the matrix QL decomposition is also smaller than that of the conventional device, and is smaller than that of the conventional device. And lower manufacturing costs can be realized.

また、本発明のアルゴリズムによれば、上述したように、QL分解における所要演算量が少ないため、構成した回路における消費電流が従来に比較して低減されるため、携帯機器に用いた場合に、携帯機器のバッテリの寿命を延ばし、携帯性を向上させることができるという効果が得られる。
また、本発明のアルゴリズムによれば、上述したように、回路規模が小さくなり、低消費電力化、低製造コスト化が可能となり、大量生産に適している。
Further, according to the algorithm of the present invention, as described above, since the required calculation amount in the QL decomposition is small, the current consumption in the configured circuit is reduced as compared with the conventional circuit. The effect that the lifetime of the battery of a portable apparatus can be extended and portability can be improved is acquired.
In addition, according to the algorithm of the present invention, as described above, the circuit scale is reduced, low power consumption and low manufacturing cost are possible, and this is suitable for mass production.

本発明の行列における数値分解方法は、分解対象の行列Hに対する複素共役転置の行列Hを数値演算により求め、行列Hと行列Hとを乗算することにより、正方行列Gを算出し、この行列Hと正方行列Gとを用いて、行列Hを行列Qと下三角行列Lとに分解するアルゴリズである。後述するように、行列Hから作られる行列G(G=HH+γ:γは雑音標準分散/信号標準分散などのパラメータ)を入力し、T回(Tは行列Hの列ベクトル数)の巡回(ループ演算)によりH=QLとなる行列Q,L(下三角行列)を生成する。 Numerical decomposition method in matrix of present invention is determined by a numerical calculation of the matrix H H complex conjugate transpose for the matrix H of the decomposed, by multiplying the a matrix H matrix H H, calculates the square matrix G, this This is an algorithm that decomposes the matrix H into the matrix Q and the lower triangular matrix L using the matrix H and the square matrix G. As will be described later, a matrix G created from the matrix H (G = H H H + γ: γ is a parameter such as noise standard variance / signal standard variance) is input, and T times (T is the number of column vectors of the matrix H) is cyclic. (Loop calculation) generates matrices Q and L (lower triangular matrix) where H = QL.

本願発明は、複素領域(あるいは実数領域)にある行列Hに対して、G=HH+γが既知であることを前提に、行列Hを2つの行列Qと下三角行列Lに分解する。
すなわち、本発明は行列Hのみを用いて、この行列Hを行列Q及び行列Lの2つの行列に分解する従来のアルゴリズムにおける所要演算量が大きい、所要回路規模が大きい、消費電力が大きいなどの欠点を解決するものである。
すなわち、計算のイメージは、図1に示すような流れで行われ、行列Aと行列Gとを入力し、以下の(2)式に示すように、行列Lを各行毎に、最下部の行から、最上部の行まで順次算出し、行列Qを各列毎に、右側から左側まで順次算出する。この(2)式において、q(1≦t≦T)は行列Qのt番目の列ベクトルを示しており、l(1≦t≦T)は行列Lのt番目の行ベクトルを示している。
The present invention decomposes the matrix H into two matrices Q and a lower triangular matrix L on the premise that G = H H H + γ is known for the matrix H in the complex domain (or real number domain).
That is, the present invention uses only the matrix H and decomposes the matrix H into two matrices, the matrix Q and the matrix L, which requires a large amount of computation, a large circuit size, a large power consumption, etc. It solves the drawbacks.
That is, the image of the calculation is performed according to the flow shown in FIG. 1, and the matrix A and the matrix G are input. As shown in the following equation (2), the matrix L is changed to the bottom row for each row. To the top row, and the matrix Q is calculated sequentially from the right side to the left side for each column. In this equation (2), q t (1 ≦ t ≦ T) represents the t th column vector of the matrix Q, and l t (1 ≦ t ≦ T) represents the t th row vector of the matrix L. ing.

Figure 2008129861
Figure 2008129861

<第1の実施形態>
以下、本発明の第1の実施形態による数値分解システムを図面を参照して説明する。図2は同実施形態による数値分解システムの構成例を示すブロック図である。
第1の実施形態による数値分解システムは、入力部1,初期化部4,行列L演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
<First Embodiment>
Hereinafter, a numerical decomposition system according to a first embodiment of the present invention will be described with reference to the drawings. FIG. 2 is a block diagram showing a configuration example of the numerical decomposition system according to the embodiment.
The numerical decomposition system according to the first embodiment includes an input unit 1, an initialization unit 4, a matrix L operation unit 5, a matrix Q operation unit 6, a storage unit 7, and an operation control unit 8.

入力部1は、分解対象のR行,T列の行列H及びT行,T列の正方行列Gが既知の値を、記憶部7に記憶する。すなわち、行列H及び行列G(=HH)が既知であるとし、これらの行列が外部機器から入力されるとして、以下の説明を行う。また、入力部1が入力される行列H及び行列Gを、直接に初期化部4へ出力するようにしてもよい。
初期化部4は、行列L演算部5及び行列Q演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(行列Hの要素を、空行列Qの対応する要素の位置(行及び列で指定される)に要素のデータを上書きして)、行列Qとし、空行列Lに対して正方行列の下三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Lとして初期化を行う。
The input unit 1 stores a known value in the matrix H of the R row and T column to be decomposed and the square matrix G of T row and T column in the storage unit 7. That is, the following description will be given on the assumption that the matrix H and the matrix G (= H H H) are known and these matrices are input from an external device. Further, the matrix H and the matrix G to which the input unit 1 is input may be directly output to the initialization unit 4.
The initialization unit 4 sets a temporary matrix used in the matrix L calculation unit 5 and the matrix Q calculation unit 6. That is, the initialization unit 4 assigns the matrix H to be decomposed to the empty matrix Q (the elements of the matrix H are assigned to the positions of the corresponding elements of the empty matrix Q (specified by rows and columns). Initialize the matrix L by overwriting the element data) to give the matrix Q and assigning the lower triangular matrix of the square matrix to the empty matrix L (overwriting the element data at the corresponding position) .

行列L演算部5は、設定された数値iにより、記憶部7に記憶されている対応するi行目の行ベクトルL(i,1:i)、すなわち行ベクトルlのデータを読み出すとともに、行列Lのk行,i列目の要素lk,iからスカラーlk,i を算出し、以下の(3)式により、新たな行ベクトルを算出して、記憶部7の読み出した位置(すなわちアドレス)に上書きを行い、行ベクトルのデータの変更を行う。
ここで、行ベクトルL(i,1:i)は、i行目の行ベクトルにおける1番目の列成分からi番目までの列成分までの部分行列を示し、スカラーlk,i は行列Lのk行,i列目の要素の複素共役を示している。すなわち、各列ベクトル単位にて、非ゼロ要素の部分からなる部分行列のみの演算を行っている。
L(i,1:i):=L(i,1:i)−lk,i ・L(k,1:i)…(3)
The matrix L calculation unit 5 reads out the row vector L (i, 1: i) of the corresponding i-th row stored in the storage unit 7 according to the set numerical value i, that is, the data of the row vector l i , The scalar l k, i * is calculated from the elements l k, i in the k-th row and the i-th column of the matrix L, a new row vector is calculated by the following equation (3), and the position read from the storage unit 7 (Ie, address) is overwritten, and the row vector data is changed.
Here, the row vector L (i, 1: i) represents a partial matrix from the first column component to the i-th column component in the row vector of the i-th row, and the scalar l k, i * represents the matrix L The complex conjugate of the element in the k-th row and the i-th column is shown. That is, for each column vector unit, only a partial matrix composed of non-zero element parts is calculated.
L (i, 1: i): = L (i, 1: i) −l k, i * · L (k, 1: i) (3)

すなわち、行列L演算部5は、行ベクトルL(k,1:i)に対して、スカラーlk,i を乗算し、乗算結果をこの行ベクトルから減算して、この減算結果を新たな行ベクトルL(i,1:i)として、記憶部7に対して、読み出した位置に上書きする。
このとき、行列R演算部4は、kをデクリメントして、上記(3)式を、Tからi+1の間、すなわちi+1≦k≦Tの範囲において繰り返して行う。
That is, the matrix L calculation unit 5 multiplies the row vector L (k, 1: i) by the scalar l k, i * , subtracts the multiplication result from the row vector, and obtains the subtraction result as a new value. As the row vector L (i, 1: i), the storage unit 7 is overwritten at the read position.
At this time, the matrix R operation unit 4 decrements k and repeats the above expression (3) between T and i + 1, that is, in the range of i + 1 ≦ k ≦ T.

また、行列L演算部5は、以下の(4)式に示すように、最終的に得られた行ベクトルL(i,1:i)を記憶部7から読み出し、スカラーli,iの平方根である(li,i1/2により除算し、この除算結果を最終的な行ベクトルL(i,1:i)を演算結果として、記憶部7に記憶する。このスカラーli,iは、行列Lのi行番目,i列番目の要素を示している。
L(i,1:i):=L(i,1:i)/(li,i1/2 …(4)
Further, the matrix L calculation unit 5 reads the finally obtained row vector L (i, 1: i) from the storage unit 7 as shown in the following equation (4) , and the square root of the scalar l i, i . Is divided by (l i, i ) 1/2 , and this division result is stored in the storage unit 7 as a final row vector L (i, 1: i) as an operation result. This scalar l i, i indicates the i-th element and i-th element of the matrix L.
L (i, 1: i): = L (i, 1: i) / (l i, i ) 1/2 (4)

行列Q演算部6は、設定された数値iにより、記憶部7から行列Qのi番目の列ベクトルQ(:,i)を読み出し、以下の(5)式に示すように、スカラーli,iにより除算し、除算結果を新たな列ベクトルQ(:,i)として、記憶部7において読み出した位置に書き込む。このスカラーは、行列Lにおけるi行,i列目の要素である。
Q(:,i):=Q(:,i)/li,i …(5)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーli,jは、行列Lにおけるi行目,j列目の要素である。
Q(:,j):=Q(:,j)−li,j・Q(:,i) …(6)
The matrix Q calculation unit 6 reads the i-th column vector Q (:, i) of the matrix Q from the storage unit 7 according to the set numerical value i, and as shown in the following equation (5), the scalar l i, divided by i, the division result a new column vector Q (:, i) as written in the read position in the memory unit 7. This scalar is the element in the i-th row and the i-th column in the matrix L.
Q (:, i): = Q (:, i) / l i, i (5)
The matrix Q calculation unit 6 reads the column vector Q (:, j) from the storage unit 7, calculates a new column vector Q (:, j) by the following formula (6), Store in the read position. Here, the scalar l i, j is an element in the i-th row and j-th column in the matrix L.
Q (:, j): = Q (:, j) -l i, j · Q (:, i) (6)

すなわち、行列Q演算部6は、列ベクトルQ(:,i)の要素に対して、スカラーを乗算し、この乗算結果を列ベクトルQ(:,j)から減算し、この減算結果を新たな列ベクトルQ(:,j)として、記憶部7の読み出した位置に書き込み、データの更新を行う。
このとき、行列Q演算部6は、jを初期値i+1とし、処理を1回行う毎にインクリメントしつつ、上記(6)式を、i+1≦j≦Tの間で繰り返して行う。
演算制御部8は、行列R演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
That is, the matrix Q calculation unit 6 multiplies the elements of the column vector Q (:, i) by a scalar, subtracts the multiplication result from the column vector Q (:, j), and adds the subtraction result to a new value. As the column vector Q (:, j), the data is updated by writing the data in the read position of the storage unit 7.
At this time, the matrix Q calculation unit 6 sets j as an initial value i + 1, and repeats the above equation (6) between i + 1 ≦ j ≦ T while incrementing each time the process is performed.
The arithmetic control unit 8 controls the order of arithmetic processing in the matrix R arithmetic unit 5 and the matrix Q arithmetic unit 6, and controls the number of arithmetic processes in each arithmetic unit, that is, controls the arithmetic loop.

次に、図2及び図3を参照して、第1の実施形態による数値分解システムの動作を説明する。図3は、第1の実施形態の数値分解システムのアルゴリズムにおける各部の処理を示したテーブルであり、(1)〜(11)の処理が順次行われる。ここで、入力部1,複素共役転置行列生成部2及び正方行列生成部3の動作は省略され、行列H及び正方行列Gが各々求められ、すでに記憶部7に記憶されているとする。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、この行列Gから下三角部分を抽出し、空行列Lの対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Lに対して行列Gの下三角部分の要素を付与し、行列Lを下三角部分が非ゼロ要素である下三角行列である行列Lとする。
Next, the operation of the numerical decomposition system according to the first embodiment will be described with reference to FIGS. FIG. 3 is a table showing the processing of each part in the algorithm of the numerical decomposition system of the first embodiment, and the processing of (1) to (11) is sequentially performed. Here, it is assumed that the operations of the input unit 1, the complex conjugate transposed matrix generation unit 2 and the square matrix generation unit 3 are omitted, and the matrix H and the square matrix G are respectively obtained and stored in the storage unit 7.
In the process (1), the initialization unit 4 reads the matrix H to be divided from the storage unit 7, and for each empty matrix Q, each element of the matrix H is designated by the corresponding row number and column number. , I.e., the value of the matrix H is assigned to the empty matrix Q, and the empty matrix Q is set to an R row and T column matrix.
The initialization unit 4 reads the matrix G from the storage unit 7, extracts the lower triangular part from the matrix G, and writes it in the position specified by the corresponding row number and column number of the empty matrix L, that is, the empty matrix An element of the lower triangular part of the matrix G is given to L, and the matrix L is a matrix L that is a lower triangular matrix whose lower triangular part is a non-zero element.

次に、処理(2)において、演算制御部8は、正方行列である行列Lの列数及び行数の数値Tを抽出し、行列L演算部5と行列Q演算回路6とにおける繰り返し演算回数をTとし、数値iを「1」に初期化して、処理(2)〜処理(11)までの、行列L演算部5と行列Q演算回路6とにおける演算処理を、数値iが1≦i≦Tの間繰り返して行う。
ここで、例えば、1回の演算ループの処理が終了した後、処理(11)にて数値iをデクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値1を下回ったこと、すなわち0となったこと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、その時点で記憶部7に記憶されている行列L及び行列Qを、それぞれ行列Hを分解した下三角行列Lと行列Qとして出力する。
Next, in the process (2), the operation control unit 8 extracts the number T of columns and rows of the matrix L that is a square matrix, and the number of repeated operations in the matrix L operation unit 5 and the matrix Q operation circuit 6. Is set to T, the numerical value i is initialized to “1”, and the arithmetic processing in the matrix L arithmetic unit 5 and the matrix Q arithmetic circuit 6 from processing (2) to processing (11) is performed. Repeat for ≦ T.
Here, for example, after the processing of one calculation loop is completed, the numerical value i is decremented (subtract 1) in the processing (11), and the numerical value i is in the range of 1 ≦ i ≦ T in the processing (2). If it is detected that the value is within the range, the process proceeds to the next process (3). On the other hand, the numerical value i has fallen below the numerical value 1, that is, has become 0 ( If it is out of range, the processing loop of processing (2) to processing (11) (matrix division calculation loop) is terminated, and the matrix L and matrix Q stored in the storage unit 7 at that time are stored. , Respectively, are output as a lower triangular matrix L and a matrix Q obtained by decomposing the matrix H.

次に、処理(3)において、行列L演算部5は、演算制御部8から数値iを入力し、数値kを「T」に初期化して、処理(3)〜処理(5)までの演算ループを、1回の演算ループ終了毎に数値kをデクリメントし、数値kがTからi+1(すなわち、i+1≦k≦T)の間繰り返して行い、演算ループ毎に(3)式により、(2)式の最左辺の行ベクトルl〜行ベクトルlの各行ベクトル(部分行列)を、行列の最下部の行ベクトルから最上部の行ベクトルの順に、すなわち行ベクトルlから行ベクトルlの向かい、順に行ベクトルを演算する。ここで、行ベクトルlは、L(1,1:T)と同様である。 Next, in the process (3), the matrix L operation unit 5 receives the numerical value i from the operation control unit 8, initializes the numerical value k to “T”, and performs the operations from the process (3) to the process (5). The loop is decremented every time the computation loop is completed, and the number k is repeated from T to i + 1 (that is, i + 1 ≦ k ≦ T). For each computation loop, (2) ), The row vectors (submatrices) of the leftmost row vector l 1 to row vector l T in the order of the row vector from the bottom row vector to the top row vector of the matrix, that is, from row vector l T to row vector l 1. The row vector is calculated in order across from. Here, the row vector l 1 is the same as L (1, 1: T).

ここで、上記i+1≦k≦Tの範囲にて、i=1の場合においても、k=1が成り立たないため、1行目の行ベクトルlは行列Gの1行目の行ベクトルのままとする。
したがって、数値k=1以降において、行列L演算部5は、数値kがi+1≦k≦Tの範囲内にあることを検出すると、処理(4)へ処理を進める。
Here, within the range of i + 1 ≦ k ≦ T, even when i = 1, k = 1 does not hold, so the row vector l 1 in the first row remains the row vector in the first row of the matrix G. And
Therefore, after the numerical value k = 1, when the matrix L calculation unit 5 detects that the numerical value k is in the range of i + 1 ≦ k ≦ T, the process proceeds to the process (4).

次に、処理(4)において、行列L演算部5は、数値iの示す行ベクトルlにおける部分行列L(i,1:i)を、記憶部7に記憶されている行列Lから読み出す。
そして、行列L演算部5は、この部分行列L(i,1:i)に対し、(3)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列L演算部5は、1回の演算ループの毎に数値kをデクリメントし、処理を処理(3)へ進める。
Next, in the process (4), the matrix L calculation unit 5 reads the partial matrix L (i, 1: i) in the row vector l i indicated by the numerical value i from the matrix L stored in the storage unit 7.
Then, the matrix L calculation unit 5 calculates the expression (3) for the partial matrix L (i, 1: i), writes the read position in the storage unit 7, and advances the process to the process (5). .
Next, in the process (5), the matrix L calculation unit 5 decrements the numerical value k for each calculation loop and advances the process to the process (3).

次に、行列L演算部5は、処理(3)にて数値kがi+1≦k≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(4)へ処理を移し、一方、数値kが数値i+1を下回ったこと(範囲外であること)を検出すると、処理(3)〜処理(5)の演算ループ(行列R生成の演算ループ)を終了させ、処理を処理(6)へ移す。   Next, the matrix L calculation unit 5 detects whether or not the numerical value k is in the range of i + 1 ≦ k ≦ T in the process (3). 4), when it is detected that the numerical value k has fallen below the numerical value i + 1 (out of the range), the processing loop (processing loop for generating the matrix R) of processing (3) to processing (5) is performed. The process is terminated, and the process proceeds to process (6).

次に、処理(6)において、行列R演算部5は、この時点の数値iに対応した行ベクトルにおける部分行列L(i,1:i)を、記憶部7に記憶された行列Lから読み出し、(4)式の演算処理を行い、演算結果を記憶部7の読み出した位置に上書きし、データの変更を行い、処理を処理(7)へ移す。   Next, in the process (6), the matrix R calculation unit 5 reads the partial matrix L (i, 1: i) in the row vector corresponding to the numerical value i at this time from the matrix L stored in the storage unit 7. , (4) calculation processing is performed, the calculation result is overwritten on the read position of the storage unit 7, the data is changed, and the processing proceeds to processing (7).

次に、処理(7)において、行列Q演算部6は、演算制御部8から数値iを入力し、記憶部7に記憶された行列Qから、数値iに対応した列ベクトルq(すなわち、Q(:,i))を読み出し、(5)式に示す処理を行い、すなわちスカラーli,iにて列ベクトルqを除算し、この除算結果を記憶部7の読み出した位置に書き込み、データの変更を行い、処理を処理(8)へ進める。 Next, in the process (7), the matrix Q calculation unit 6 receives the numerical value i from the calculation control unit 8, and from the matrix Q stored in the storage unit 7, the column vector q i corresponding to the numerical value i (that is, Q (:, i)) is read, the processing shown in equation (5) is performed, that is , the column vector q i is divided by the scalar l i, i , and the result of division is written in the read position of the storage unit 7. The data is changed, and the process proceeds to process (8).

次に、処理(8)において、行列Q演算部6は、数値jを「1」に初期化して、処理を処理(8)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jが1≦j≦i−1の間繰り返して行い、演算ループ毎に(3)式により、(2)式の最左辺の列ベクトルq〜行ベクトルqi−1の各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルqi−1から列ベクトルqに向かい、順に列ベクトルを演算する。ここで、列ベクトルqjは、Q(:,j)と同様である。
Next, in the process (8), the matrix Q calculation unit 6 initializes the numerical value j to “1”, and advances the process to the process (8).
Hereinafter, the matrix Q computation unit 6 repeatedly performs the computation loop from the processing (8) to the processing (10) while the numerical value j is 1 ≦ j ≦ i−1, and for each computation loop, Each column vector (submatrix) of the column vector q 1 to the row vector q i−1 on the leftmost side of the equation (2) is changed in order from the rightmost column vector to the leftmost column vector, that is, the column vector q i. The column vector is calculated in order from −1 to the column vector q 1 . Here, the column vector qj is the same as Q (:, j).

次に、処理(9)において、行列Q演算部6は、1≦j≦i−1の範囲から、Q(:,i)に対する(6)式の処理が実行されないため、演算ループにおいて、行列Qの第i列目に対しては、(7)の処理のみが行われる。すなわち、i列目の列ベクトルqに対して、処理(7)の処理のみ行われ、処理(8)から処理(10)までの処理は行われない。
そして、行列Q演算部6は、数値jの示す列ベクトルq、すなわち部分行列Q(,:ij)を、記憶部7に記憶されている行列Qから読み出す。
そして、行列Q演算部6は、この部分行列Q(,:i)に対し、(6)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(10)へ進める。
次に、処理(10)において、行列Q演算部6は、1回の演算ループの毎に数値jをインクリメントし、処理を処理(8)へ進める。
Next, in the process (9), the matrix Q calculation unit 6 does not execute the process of the expression (6) for Q (:, i) from the range of 1 ≦ j ≦ i−1. Only the process of (7) is performed for the i-th column of Q. That is, only the process (7) is performed on the column vector q i of the i-th column, and the processes from the process (8) to the process (10) are not performed.
Then, the matrix Q calculation unit 6 reads the column vector q j indicated by the numerical value j, that is, the partial matrix Q (,: ij) from the matrix Q stored in the storage unit 7.
Then, the matrix Q calculation unit 6 performs the calculation of the expression (6) on the partial matrix Q (,: i), writes it in the read position in the storage unit 7, and advances the processing to the process (10).
Next, in the process (10), the matrix Q calculation unit 6 increments the numerical value j for each calculation loop and advances the process to the process (8).

次に、行列Q演算部6は、処理(8)にて数値jが1≦j≦i−1の範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(9)へ処理を移し、一方、数値jが数値i−1を超えたこと(範囲外であること)を検出すると、処理(8)〜処理(10)の演算ループ(行列Qの生成の演算ループ)を終了させ、処理を処理(11)へ移す。   Next, the matrix Q calculation unit 6 detects whether or not the numerical value j is within the range of 1 ≦ j ≦ i−1 in the process (8). When the processing is shifted to the processing (9), on the other hand, when it is detected that the numerical value j exceeds the numerical value i-1 (out of the range), the operation loop (generation of the matrix Q) of the processing (8) to processing (10) is performed. ) Is terminated, and the process proceeds to process (11).

<第2の実施形態>
第2の実施形態の数値分解システムは、第1の実施形態と同様の構成をしている。第2の実施形態と第1の実施形態との違いは、演算制御部8の行列L演算部5及び行列Q演算部6の演算順序にある。すなわち、第1の実施形態においては、同一の演算ループ内にて、行列Lを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
<Second Embodiment>
The numerical decomposition system according to the second embodiment has the same configuration as that of the first embodiment. The difference between the second embodiment and the first embodiment is the calculation order of the matrix L calculation unit 5 and the matrix Q calculation unit 6 of the calculation control unit 8. That is, in the first embodiment, the algorithm is such that an operation loop for generating the matrix L and an operation loop for generating the matrix Q are executed in the same operation loop.

一方、第2の実施形態においては、演算制御部8が、行列Lを生成する演算ループと、行列Qを生成する演算ループとを、順番に、それぞれ独立に制御し、すなわち、行列Lの生成の演算ループが終了し、分割後の行列Lが求められた後、行列Qの生成の演算ループを開始して行列Qの生成を行い、行列Hが分解された行列L及び行列Q各々の生成を別々に行うアルゴリズムとなっている。
したがって、演算制御部8及び初期化部4以外の他の構成要素(入力部1,行列L演算部5,行列Q演算部6及び記憶部7)の動作は、第2の実施形態においても、第1の実施形態の構成と同様である。
On the other hand, in the second embodiment, the calculation control unit 8 controls the calculation loop for generating the matrix L and the calculation loop for generating the matrix Q independently in order, that is, generation of the matrix L. After the operation loop is completed and the divided matrix L is obtained, the operation loop for generating the matrix Q is started to generate the matrix Q, and each of the matrix L and the matrix Q obtained by decomposing the matrix H is generated. It is an algorithm that performs separately.
Therefore, the operations of the other components (input unit 1, matrix L calculation unit 5, matrix Q calculation unit 6 and storage unit 7) other than the calculation control unit 8 and the initialization unit 4 are the same as in the second embodiment. The configuration is the same as that of the first embodiment.

以下、図2及び図4を参照して、第2の実施形態による数値分解システムの動作を説明する。図4は、第2の実施形態の数値分解システムのアルゴリズムにおける各部の処理を示したテーブルであり、(1)〜(13)の処理が順次行われる。ここで、入力部1,複素共役転置行列生成部2及び正方行列生成部3の動作は省略され、行列H及び正方行列Gが各々求められ、すでに記憶部7に記憶されているとする。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、空行列Lに対し、この行列Gの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Lに対して行列Gの値を付与し、空行列LをT行,T列の正方行列とする。
Hereinafter, the operation of the numerical decomposition system according to the second embodiment will be described with reference to FIGS. 2 and 4. FIG. 4 is a table showing the processing of each part in the algorithm of the numerical decomposition system of the second embodiment, and the processing of (1) to (13) is sequentially performed. Here, it is assumed that the operations of the input unit 1, the complex conjugate transposed matrix generation unit 2 and the square matrix generation unit 3 are omitted, and the matrix H and the square matrix G are respectively obtained and stored in the storage unit 7.
In the process (1), the initialization unit 4 reads the matrix H to be divided from the storage unit 7, and for each empty matrix Q, each element of the matrix H is designated by the corresponding row number and column number. , I.e., the value of the matrix H is assigned to the empty matrix Q, and the empty matrix Q is set to an R row and T column matrix.
The initialization unit 4 reads the matrix G from the storage unit 7 and writes each element of the matrix G to the empty matrix L at the position specified by the corresponding row number and column number, that is, the empty matrix L. Is assigned a matrix G value, and the empty matrix L is a square matrix of T rows and T columns.

次に、処理(2)において、演算制御部8は、正方行列である行列Lの列数及び行数の数値Tを抽出し、行列L演算回路5と行列Q演算回路6とにおける繰り返し演算回数をTとし、数値iを「T」に初期化して、処理(2)〜処理(7)までの、行列L演算回路5における演算処理を、数値iがTから1の間、すなわち1≦i≦Tの間繰り返して行う。ここで、例えば、1回の処理が終了した後、処理(7)にて数値iをデクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否か、すなわち数値iが0となったか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが1を下回ったこと(範囲外であること)を検出すると、処理(2)〜処理(7)の演算ループ(行列L生成の演算ループ)を終了し、その時点で記憶部7に記憶されている行列Lを、行列Hを分解した行列Qとして出力し、処理を処理(8)へ進める。   Next, in the process (2), the operation control unit 8 extracts the number T of the number of columns and the number of rows of the matrix L that is a square matrix, and the number of repetition operations in the matrix L operation circuit 5 and the matrix Q operation circuit 6. Is set to T, the numerical value i is initialized to “T”, and the arithmetic processing in the matrix L arithmetic circuit 5 from processing (2) to processing (7) is performed between the numerical value i and T, that is, 1 ≦ i. Repeat for ≦ T. Here, for example, after one process is completed, the numerical value i is decremented (subtract 1) in the process (7), and the numerical value i is in the range of 1 ≦ i ≦ T in the process (2). If it is detected that the numerical value i is within the range, the process proceeds to the next process (3), while the numerical value i is less than 1 ( If it is out of range, the processing loop of processing (2) to processing (7) (the processing loop for generating the matrix L) is terminated, and the matrix L stored in the storage unit 7 at that time is replaced with the matrix L H is output as a decomposed matrix Q, and the process proceeds to process (8).

次に、処理(3)〜処理(6)までの処理は、第1の実施形態における処理(3)〜処理(6)それぞれと同様のため、処理の説明を省略する。
そして、処理(7)において、演算制御部8は、数値iをデクリメント(1を減算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値1を下回ったこと(範囲外であること)を検出すると、この時点における行列Lとして記憶部7へ記憶するとともに、処理を処理(8)へ進める。
Next, the processing from the processing (3) to the processing (6) is the same as the processing (3) to the processing (6) in the first embodiment, and the description of the processing is omitted.
In the process (7), the arithmetic control unit 8 decrements the numerical value i (subtracts 1) and advances the process to the process (2).
Next, in the process (2), the arithmetic control unit 8 detects whether or not the numerical value i is within the range of 1 ≦ i ≦ T. On the other hand, when it is detected that the numerical value i is below the numerical value 1 (out of the range), it is stored in the storage unit 7 as the matrix L at this time, and the processing is advanced to processing (8). .

次に、処理(8)において、演算制御部8は、R行,T列の行列である行列Qの列数及の数値Tを抽出し、行列Q演算回路6における繰り返し演算回数をTとし、数値iを「T」に初期化して、処理(8)〜処理(13)までの、行列L演算部5における演算処理を、数値iがTから1の範囲、すなわち1≦i≦Tの間繰り返して行う。ここで、例えば、1回の演算ループの処理が終了した後、処理(13)にて数値iをデクリメント(1を減算)し、処理(8)にて数値iが1≦i≦Tの範囲内であるか否か、すなわちiがおとなったか否かを検出し、範囲内であることを検出した場合、次の処理(9)へ処理を移し、一方、数値iが数値Tを下回ったこと(範囲外であること)を検出すると、処理(9)〜処理(12)の演算ループ(行列Q生成の演算ループ)を終了し、その時点で記憶部7に記憶されている行列Qを、行列Hを分解した行列Qとして出力し、行列Hの分解処理を終了する。上記、処理(9),(10),(11),(12)各々は、それぞれ第1の実施形態における処理(7),(8),(9),(10)と同様のため、説明を省略する。   Next, in process (8), the operation control unit 8 extracts the number T of the matrix Q, which is a matrix of R rows and T columns, and sets the number of repetition operations in the matrix Q operation circuit 6 to T, The numerical value i is initialized to “T”, and the calculation processing in the matrix L calculation unit 5 from processing (8) to processing (13) is performed in the range where the numerical value i is from T to 1, that is, 1 ≦ i ≦ T. Repeat. Here, for example, after the processing of one calculation loop is completed, the numerical value i is decremented (1 is subtracted) in the processing (13), and the numerical value i is in the range of 1 ≦ i ≦ T in the processing (8). If it is within the range, i.e. whether it is within the range or not, the process moves to the next process (9), while the numerical value i is below the numerical value T. When (out of range) is detected, the processing loop of processing (9) to processing (12) (the processing loop for generating the matrix Q) is terminated, and the matrix Q stored in the storage unit 7 at that time is The matrix H is output as a decomposed matrix Q, and the matrix H decomposition process ends. The processes (9), (10), (11), and (12) are the same as the processes (7), (8), (9), and (10) in the first embodiment, respectively. Is omitted.

すなわち、処理(2)〜処理(7)においては、T回(正方行列Gの行及び列の数に対応した回数)の演算ループにて、行列Lを(2)式の最下行の行ベクトルlから、最上行の行ベクトルlまで、順番に演算する。
また、処理(8)〜処理(13)においては、T回(正方行列Gの行及び列の数に対応した回数)の演算ループにて、行列Qを(2)式の最右列の列ベクトルqから、最左列の列ベクトルqまで、順番に演算する。
That is, in the processing (2) to processing (7), the matrix L is converted into the row vector of the bottom row of the expression (2) in the operation loop T times (number of times corresponding to the number of rows and columns of the square matrix G). The calculation is performed in order from l T to the row vector l 1 in the top row.
Further, in the processing (8) to processing (13), the matrix Q is replaced by the column in the rightmost column of the expression (2) in the T times (number of times corresponding to the number of rows and columns of the square matrix G). from the vector q T, until column vector q 1 of the leftmost column is calculated sequentially.

<第3の実施形態>
以下、本発明の第3の実施形態による数値分解システムを図面を参照して説明する。図5は同実施形態による数値分解システムの構成例を示すブロック図である。構成は第1の実施形態と同様であるが各構成の機能が異なっている。
したがって、第3の実施形態による数値分解システムは、第1の実施形態と同様に、入力部1,初期化部4,行列L演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
<Third Embodiment>
Hereinafter, a numerical decomposition system according to a third embodiment of the present invention will be described with reference to the drawings. FIG. 5 is a block diagram showing a configuration example of the numerical decomposition system according to the embodiment. The configuration is the same as in the first embodiment, but the function of each configuration is different.
Therefore, as in the first embodiment, the numerical decomposition system according to the third embodiment includes an input unit 1, an initialization unit 4, a matrix L operation unit 5, a matrix Q operation unit 6, a storage unit 7, and an operation control unit. 8.

入力部1は、分解対象のR行,T列の行列H及びT行,T列の正方行列Gが既知の値を、記憶部7に記憶する。すなわち、行列H及び行列G(=HH)が既知であるとし、これらの行列が外部機器から入力されるとして、以下の説明を行う。また、入力部1が入力される行列H及び行列Gを、直接に初期下部4へ出力するようにしてもよい。
初期化部4は、行列L演算部5及び行列Q演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(対応する位置に要素のデータを上書きして)、行列Qとし、空行列Uに対して正方行列の上三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Uとして初期化を行う。
The input unit 1 stores a known value in the matrix H of the R row and T column to be decomposed and the square matrix G of T row and T column in the storage unit 7. That is, the following description will be given on the assumption that the matrix H and the matrix G (= H H H) are known and these matrices are input from an external device. Further, the matrix H and the matrix G to which the input unit 1 is input may be directly output to the initial lower part 4.
The initialization unit 4 sets a temporary matrix used in the matrix L calculation unit 5 and the matrix Q calculation unit 6. That is, the initialization unit 4 assigns a matrix H to be decomposed to the empty matrix Q (overwriting element data at the corresponding position) to form a matrix Q, and a square matrix for the empty matrix U Is initialized (overwriting element data at the corresponding position) and initialized as a matrix U.

行列L演算部5は、設定された数値iにより、記憶部7に記憶されている対応するi列目の列ベクトルU(1;i,i)のデータを読み出すとともに、スカラーui、k を算出し、以下の(7)式により、新たな列ベクトルを算出して、記憶部7の読み出した位置に上書きを行い、列ベクトルのデータの変更を行う。
ここで、列ベクトルU(1;i,i)は、i列目の列ベクトルにおける1番目の行成分からi番目までの行成分までの部分行列を示し、スカラーui、k は行列Uのi行,k列目の要素の複素共役を示している。ここで、L=Uであるため、行列Lの行ベクトルを最下部から順に最上部の行を順次計算することに相当する。
U(1:i,i):=U(1:i,i)−ui、k ・U(1:i,k)…(7)
The matrix L calculation unit 5 reads out the data of the column vector U (1; i, i) of the corresponding i-th column stored in the storage unit 7 according to the set numerical value i, and scalar u i, k *. Then, a new column vector is calculated by the following equation (7), the position read from the storage unit 7 is overwritten, and the column vector data is changed.
Here, the column vector U (1; i, i) represents a partial matrix from the first row component to the i-th row component in the column vector of the i-th column, and the scalar u i, k * represents the matrix U. The complex conjugate of the element in the i-th row and the k-th column is shown. Here, since L = U H , this corresponds to sequentially calculating the uppermost row of the row vector of the matrix L in order from the lowermost portion.
U (1: i, i): = U (1: i, i) −u i, k * · U (1: i, k) (7)

すなわち、行列L演算部5は、行ベクトルU(1:i,k)に対して、スカラーui、k を乗算し、乗算結果をこの行ベクトルU(1:i,i)から減算して、この減算結果を新たな列ベクトルU(1:i,i)として、記憶部7に対して、読み出した位置に上書きする。
このとき、行列L演算部4は、kをデクリメントして、上記(7)式を、Tからi+1の範囲内、すなわちi+1≦k≦Tの間で繰り返して行う。
That is, the matrix L operation unit 5 multiplies the row vector U (1: i, k) by the scalar u i, k * and subtracts the multiplication result from the row vector U (1: i, i). Then, the subtraction result is overwritten at the read position in the storage unit 7 as a new column vector U (1: i, i).
At this time, the matrix L calculation unit 4 decrements k and repeats the above equation (7) within a range from T to i + 1, that is, between i + 1 ≦ k ≦ T.

また、行列L演算部5は、以下の(8)式に示すように、最終的に得られた列ベクトルU(1:i,i)を記憶部7から読み出し、スカラーui、iの平方根である(ui,i1/2により除算し、この得られた除算結果を最終的な列ベクトルU(1:i,i)として、記憶部7に記憶する。このスカラーui、iは、行列Uのi行番目,i列番目の要素を示している。
U(1:i,i):=U(1:i,i)/(ui,i1/2 …(8)
Further, the matrix L calculation unit 5 reads the finally obtained column vector U (1: i, i) from the storage unit 7 as shown in the following equation (8), and calculates the square root of the scalars u i and i . (U i, i ) 1/2 and the obtained division result is stored in the storage unit 7 as a final column vector U (1: i, i). The scalars u i and i indicate i-th element and i-th element of the matrix U.
U (1: i, i): = U (1: i, i) / (u i, i ) 1/2 (8)

行列Q演算部6は、設定された数値iにより、記憶部7から行列Qのi番目の列ベクトルQ(:,i)を読み出し、以下の(9)式に示すように、スカラーui、iにより除算し、除算結果を新たな列ベクトルQ(:,i)として、記憶部7において読み出した位置に書き込む。このスカラーui、iは、行列Uにおけるi行,i列目の要素である。
Q(:,i):=Q(:,i)/ui、i …(9)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(10)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーui、j は、行列Uにおけるi行目,j列目の要素の複素共役である。
Q(:,j):=Q(:,j)−ui、j ・Q(:,i) …(10)
The matrix Q calculation unit 6 reads the i-th column vector Q (:, i) of the matrix Q from the storage unit 7 according to the set numerical value i, and represents a scalar u i, divided by i, the division result a new column vector Q (:, i) as written in the read position in the memory unit 7. The scalars u i and i are elements in the i-th row and the i-th column in the matrix U.
Q (:, i): = Q (:, i) / u i, i (9)
The matrix Q calculation unit 6 reads the column vector Q (:, j) from the storage unit 7, calculates a new column vector Q (:, j) by the following equation (10), Store in the read position. Here, the scalar u i, j * is a complex conjugate of the element in the i-th row and the j-th column in the matrix U.
Q (:, j): = Q (:, j) −u i, j * · Q (:, i) (10)

すなわち、行列Q演算部6は、列ベクトルQ(:,i)の要素に対して、スカラーui、j を乗算し、この乗算結果を列ベクトルQ(:,j)から減算し、この減算結果を新たな列ベクトルQ(:,j)として、記憶部7の読み出した位置に書き込み、データの更新を行う。
このとき、行列Q演算部6は、jを初期値1とし、処理を1回行う毎にインクリメントしつつ、上記(6)式を、1≦j≦i−1の間で繰り返して行う。
演算制御部8は、行列L演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
That is, the matrix Q calculation unit 6 multiplies the elements of the column vector Q (:, i) by a scalar u i, j * , and subtracts the multiplication result from the column vector Q (:, j). The subtraction result is written as a new column vector Q (:, j) at the read position in the storage unit 7 and the data is updated.
At this time, the matrix Q calculation unit 6 sets j as an initial value 1 and repeats the above equation (6) between 1 ≦ j ≦ i−1 while incrementing each time the processing is performed.
The arithmetic control unit 8 controls the order of arithmetic processing in the matrix L arithmetic unit 5 and the matrix Q arithmetic unit 6, and controls the number of arithmetic processes in each arithmetic unit, that is, controls the arithmetic loop.

次に、図2及び図5を参照して、第3の実施形態による数値分解システムの動作を説明する。図5は、第3の実施形態の数値分解システムのアルゴリズムにおける各部の処理を示したテーブルであり、(1)〜(13)の処理が順次行われる。ここで、入力部1,複素共役転置行列生成部2及び正方行列生成部3の動作は省略され、行列H及び正方行列Gが各々求められ、すでに記憶部7に記憶されているとする。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、この行列Gから上三角部分を抽出し、空行列Uの対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Uに対して行列Gの上三角部分の要素を付与し、行列Uを上三角部分が非ゼロ要素である上三角行列である行列Uとする。
Next, the operation of the numerical decomposition system according to the third embodiment will be described with reference to FIGS. FIG. 5 is a table showing the processing of each part in the algorithm of the numerical decomposition system of the third embodiment, and the processes (1) to (13) are sequentially performed. Here, it is assumed that the operations of the input unit 1, the complex conjugate transposed matrix generation unit 2 and the square matrix generation unit 3 are omitted, and the matrix H and the square matrix G are respectively obtained and stored in the storage unit 7.
In the process (1), the initialization unit 4 reads the matrix H to be divided from the storage unit 7, and for each empty matrix Q, each element of the matrix H is designated by the corresponding row number and column number. , I.e., the value of the matrix H is given to the empty matrix Q, and the empty matrix Q is set to a matrix of R rows and T columns.
The initialization unit 4 reads the matrix G from the storage unit 7, extracts the upper triangular portion from the matrix G, and writes it in the position specified by the corresponding row number and column number of the empty matrix U, that is, the empty matrix The element of the upper triangular part of the matrix G is given to U, and the matrix U is an upper triangular matrix whose upper triangular part is a non-zero element.

次に、処理(2)において、演算制御部8は、正方行列である行列Uの列数及び行数の数値Tを抽出し、行列R演算回路5と行列Q演算回路6とにおける繰り返し演算回数をTとし、数値iを「T」に初期化して、処理(2)〜処理(11)までの、行列L演算回路5と行列Q演算回路6とにおける演算処理を、数値iがTから1までの範囲、すなわち1≦i≦Tの間繰り返して行う。ここで、例えば、1回の演算ループの処理が終了した後、処理(11)にて数値iをデクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否か、すなわちiが0となったか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値1を下回ったこと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(12)へ進める。
また、行列L演算部5は、処理(12)において、L=Uの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶する。
次に、演算制御部8は、その時点で記憶部7に記憶されている行列L及び行列Qを、それぞれ行列Hを分解した上三角行列Lと行列Qとして出力する。
Next, in the process (2), the operation control unit 8 extracts the number T of the number of columns and the number of rows of the matrix U which is a square matrix, and the number of repeated operations in the matrix R operation circuit 5 and the matrix Q operation circuit 6. Is set to T, the numerical value i is initialized to “T”, and the arithmetic processing in the matrix L arithmetic circuit 5 and the matrix Q arithmetic circuit 6 from processing (2) to processing (11) is performed. Up to the above range, ie, 1 ≦ i ≦ T, is repeated. Here, for example, after the processing of one calculation loop is completed, the numerical value i is decremented (subtract 1) in the processing (11), and the numerical value i is in the range of 1 ≦ i ≦ T in the processing (2). Is detected, i is 0 or not, and if it is within the range, the process proceeds to the next process (3), while the numerical value i is lower than the numerical value 1. If it is detected (out of range), the processing loop of processing (2) to processing (11) (matrix division calculation loop) is terminated, and the processing proceeds to processing (12).
Further, the matrix L calculation unit 5 calculates L = U H in the process (12), that is, performs complex conjugate transpose processing on the obtained upper triangular matrix U to obtain the lower triangular matrix L Is calculated and stored in the storage unit 7.
Next, the arithmetic control unit 8 outputs the matrix L and the matrix Q stored in the storage unit 7 at that time as an upper triangular matrix L and a matrix Q obtained by decomposing the matrix H, respectively.

次に、処理(3)において、行列R演算部5は、演算制御部8から数値iを入力し、数値kを「1」に初期化して、処理(3)〜処理(5)までの演算ループを、数値kがTからi+1の範囲、すなわちi+1≦k≦Tの間繰り返して行い、演算ループ毎に(7)式により、行列Uの列ベクトルu〜列ベクトルuの各列ベクトル(部分行列)を求めるため、行列の最右部の列ベクトルから最左部の列ベクトルの順に、列ベクトルuから列ベクトルuに向かい、順に列ベクトルを演算する。ここで、列ベクトルuTの全ての行成分から成る部分行列は、U(1:T,T)と同様である。 Next, in the process (3), the matrix R calculation unit 5 receives the numerical value i from the calculation control unit 8, initializes the numerical value k to “1”, and performs the calculation from the process (3) to the process (5). The loop is repeated while the numerical value k is in the range of T to i + 1, i.e., i + 1 ≦ k ≦ T, and each column vector of the column vector u 1 to column vector u T of the matrix U is expressed by equation (7) for each operation loop. to determine the (submatrix), the column vector rightmost portion of the matrix in the order of the column vectors of the leftmost portion, toward the column vector u 1 column vectors u T, sequentially calculating a column vector. Here, a partial matrix consisting of all rows component column vector u T is, U: is the same as (1 T, T).

ここで、i+1≦k≦Tの範囲内においてk=iの場合が成り立たないため、i=1の際にもk=1とはならず、1列目の列ベクトルuは行列Gの1列目の行ベクトルのままとする。
そして、行列L演算部5は、数値kがi+1≦k≦Tの範囲内にあることを検出すると、処理(4)へ処理を進める。
Here, since the case of k = i does not hold within the range of i + 1 ≦ k ≦ T, k = 1 does not hold even when i = 1, and the column vector u 1 in the first column is 1 of the matrix G. Keep the row vector of the column.
When the matrix L calculation unit 5 detects that the numerical value k is within the range of i + 1 ≦ k ≦ T, the matrix L calculation unit 5 advances the processing to the processing (4).

次に、処理(4)において、行列L演算部5は、数値iの示す列ベクトルuにおける部分行列U(1:i,i)を、記憶部7に記憶されている行列Uから読み出す。
そして、行列L演算部5は、この部分行列U(1:i,i)に対し、(7)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列R演算部5は、1回の演算ループの毎に数値kをデクリメントし、処理を処理(3)へ進める。
Next, in the process (4), the matrix L calculation unit 5 reads the partial matrix U (1: i, i) in the column vector u i indicated by the numerical value i from the matrix U stored in the storage unit 7.
Then, the matrix L calculation unit 5 calculates the expression (7) for the partial matrix U (1: i, i), writes the read position in the storage unit 7, and advances the processing to the process (5). .
Next, in the process (5), the matrix R calculation unit 5 decrements the numerical value k for each calculation loop and advances the process to the process (3).

次に、行列L演算部5は、処理(3)にて数値kがi+1≦k≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(4)へ処理を移し、一方、数値kが0を下回ったこと(範囲外であること)を検出すると、処理(3)〜処理(5)の演算ループ(行列U生成の演算ループ)を終了させ、処理を処理(6)へ移す。   Next, the matrix L calculation unit 5 detects whether or not the numerical value k is in the range of i + 1 ≦ k ≦ T in the process (3). 4) The processing is shifted to 4). On the other hand, when it is detected that the numerical value k is less than 0 (out of the range), the processing loop (processing loop for generating the matrix U) of processing (3) to processing (5) is terminated Then, the process proceeds to process (6).

次に、処理(6)において、行列R演算部5は、この時点の数値iに対応した行ベクトルにおける部分行列U(1:i,i)を、記憶部7に記憶された行列Uから読み出し、(8)式の演算処理を行い、演算結果を記憶部7の読み出した位置に上書きし、データの変更を行い、処理を処理(7)へ移す。   Next, in the process (6), the matrix R calculation unit 5 reads out the partial matrix U (1: i, i) in the row vector corresponding to the numerical value i at this time from the matrix U stored in the storage unit 7. , (8) calculation processing is performed, the calculation result is overwritten on the read position of the storage unit 7, the data is changed, and the processing is moved to processing (7).

次に、処理(7)において、行列Q演算部6は、演算制御部8から数値iを入力し、記憶部7に記憶された行列Qから、数値iに対応した列ベクトルqを読み出し、(9)式に示す処理を行い、すなわちスカラーui,iにて列ベクトルqを除算し、この除算結果を記憶部7の読み出した位置に書き込み、データの変更を行い、処理を処理(8)へ進める。ここで、列ベクトルqは、部分行列Q(:,i)に等しい。 Next, in the process (7), the matrix Q calculation unit 6 receives the numerical value i from the calculation control unit 8 and reads the column vector q i corresponding to the numerical value i from the matrix Q stored in the storage unit 7. The processing shown in the equation (9) is performed, that is , the column vector q i is divided by the scalar u i, i , the division result is written in the read position of the storage unit 7, the data is changed, and the processing is performed ( Go to 8). Here, the column vector q i is equal to the submatrix Q (:, i).

次に、処理(8)において、行列Q演算部6は、数値jを「1」に初期化して、処理を処理(8)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jが1≦j≦i−1の間繰り返して行い、演算ループ毎に(3)式により、(2)式の最右辺の列ベクトルqから最左辺の列ベクトルqの各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルqから列ベクトルqに向かい、順に列ベクトルを演算する。上述したように、列ベクトルqjは、Q(:,j)と同様である。
Next, in the process (8), the matrix Q calculation unit 6 initializes the numerical value j to “1”, and advances the process to the process (8).
Hereinafter, the matrix Q computation unit 6 repeatedly performs the computation loop from the processing (8) to the processing (10) while the numerical value j is 1 ≦ j ≦ i−1, and for each computation loop, Each column vector (submatrix) from the column vector q T on the rightmost side to the column vector q 1 on the leftmost side of the equation (2) is expressed in the order from the column vector on the rightmost side to the column vector on the leftmost side of the matrix. toward the column vector q 1 from the T, in order to calculate a column vector. As described above, the column vector qj is the same as Q (:, j).

次に、処理(9)において、行列Q演算部6は、1≦j≦i−1の範囲にて(10)式の処理が行われるため、i=1の場合の処理は行われず、演算ループにおいて、行列Qの第1列目に対して、(7)の処理のみが行われる。すなわち、1列目の列ベクトルq1に対して、処理(8)から処理(10)までの処理は行われない。
そして、行列Q演算部6は、数値jの示す列ベクトルu、すなわち部分行列Q(,:j)を、記憶部7に記憶されている行列Qから読み出す。
そして、行列Q演算部6は、この部分行列Q(,:j)に対し、(10)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(10)へ進める。
次に、処理(10)において、行列Q演算部6は、1回の演算ループの毎に数値jをインクリメントし、処理を処理(8)へ進める。
Next, in the process (9), since the process of the formula (10) is performed in the range of 1 ≦ j ≦ i−1, the matrix Q calculation unit 6 does not perform the process in the case of i = 1 and performs the calculation. In the loop, only the process (7) is performed on the first column of the matrix Q. That is, the processing from the processing (8) to the processing (10) is not performed on the first column vector q1.
Then, the matrix Q calculation unit 6 reads the column vector u j indicated by the numerical value j, that is, the partial matrix Q (,: j) from the matrix Q stored in the storage unit 7.
Then, the matrix Q calculation unit 6 performs the calculation of the expression (10) on the partial matrix Q (,: j), writes it in the read position in the storage unit 7, and advances the processing to the process (10).
Next, in the process (10), the matrix Q calculation unit 6 increments the numerical value j for each calculation loop and advances the process to the process (8).

次に、行列Q演算部6は、処理(8)にて数値jが1≦j≦i−1の範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(8)へ処理を移し、一方、数値jが数値i−1を超えたこと(範囲外であること)を検出すると、処理(8)〜処理(10)の演算ループ(行列Qの生成の演算ループ)を終了させ、処理を処理(11)へ移す。
次に、処理(11)において、演算制御部8は、数値iをデクリメント(1を減算)し、処理を処理(2)へ進める。
そして、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが1を下回った(0となった)こと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(12)へ進める。
Next, the matrix Q calculation unit 6 detects whether or not the numerical value j is within the range of 1 ≦ j ≦ i−1 in the process (8). When the processing is shifted to the processing (8), on the other hand, when it is detected that the numerical value j exceeds the numerical value i-1 (out of the range), the operation loop (generation of the matrix Q) of the processing (8) to processing (10) is performed. ) Is terminated, and the process proceeds to process (11).
Next, in the process (11), the arithmetic control unit 8 decrements the numerical value i (subtracts 1) and advances the process to the process (2).
Then, in the process (2), the arithmetic control unit 8 detects whether or not the numerical value i is within the range of 1 ≦ i ≦ T, and if it is detected that the numerical value i is within the range, the next process (3) On the other hand, when it is detected that the numerical value i is less than 1 (becomes 0) (out of the range), the processing loop of processing (2) to processing (11) (matrix division calculation loop) ) And the process proceeds to process (12).

次に、行列R演算部5は、処理(12)において、L=Uの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶する。
上述した複素共役転置の処理後、演算制御部8は、記憶部7から行列Q及び行列Lを読み出し、行列Hの分解結果として出力する。
Next, the matrix R operation unit 5 performs an operation of L = U H in the processing (12), that is, performs complex conjugate transposition processing on the obtained upper triangular matrix U, and obtains a matrix of the lower triangular matrix. L is calculated and stored in the storage unit 7.
After the complex conjugate transposition processing described above, the arithmetic control unit 8 reads the matrix Q and the matrix L from the storage unit 7 and outputs them as the decomposition result of the matrix H.

<第4の実施形態>
第4の実施形態の数値分解システムは、第3の実施形態と同様の構成をしている。第4の実施形態と第3の実施形態との違いは、演算制御部8の行列L演算部5及び行列Q演算部6の演算順序にある。すなわち、第3の実施形態においては、同一の演算ループ内にて、行列Lを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
<Fourth Embodiment>
The numerical decomposition system according to the fourth embodiment has the same configuration as that of the third embodiment. The difference between the fourth embodiment and the third embodiment is the calculation order of the matrix L calculation unit 5 and the matrix Q calculation unit 6 of the calculation control unit 8. That is, in the third embodiment, an algorithm is executed in which an operation loop for generating the matrix L and an operation loop for generating the matrix Q are executed in the same operation loop.

一方、第4の実施形態においては、演算制御部8が、行列Lを生成する演算ループと、行列Qを生成する演算ループとを、順番に、それぞれ独立に制御し、すなわち、行列Lの生成の演算ループが終了し、分割後の行列Lが求められた後、行列Qの生成の演算ループを開始して行列Qの生成を行い、行列Hが分解された行列L及び行列Q各々の生成を別々に行うアルゴリズムとなっている。
したがって、行列L演算部5,行列Q演算部6及び演算制御部8以外の他の構成要素(入力部1,初期化部4及び記憶部7)の動作は、第4の実施形態においても、第3の実施形態の構成と同様である。
On the other hand, in the fourth embodiment, the calculation control unit 8 controls the calculation loop for generating the matrix L and the calculation loop for generating the matrix Q independently in order, that is, generation of the matrix L. After the operation loop is completed and the divided matrix L is obtained, the operation loop for generating the matrix Q is started to generate the matrix Q, and each of the matrix L and the matrix Q obtained by decomposing the matrix H is generated. It is an algorithm that performs separately.
Therefore, the operations of the other constituent elements (input unit 1, initialization unit 4, and storage unit 7) other than the matrix L calculation unit 5, the matrix Q calculation unit 6, and the calculation control unit 8 are the same as in the fourth embodiment. The configuration is the same as that of the third embodiment.

以下、本発明の第4の実施形態において、第3の実施形態と異なる機能の構成のみの説明を行う。第4の実施形態の構成自体は、第3の実施形態と同様であるが各構成の機能が異なっている。
行列L演算部5は、設定された数値iにより、記憶部7に記憶されている対応するi列目の列ベクトルU(1:i,i)のデータを読み出すとともに、スカラーui、k を算出し、以下の(7)式により、新たな列ベクトルを算出して、記憶部7の読み出した位置に上書きを行い、列ベクトルのデータの変更を行う。
ここで、列ベクトルU(1:i,i)は、i列目の列ベクトルにおける1番目の行成分からi番目までの行成分までの部分行列を示し、スカラーui、k は行列Uのi行,k列目の要素の複素共役を示している。ここで、L=Uであるため、行列Uの行ベクトルを最下部から順に最上部の行を順次計算することに相当する。
Hereinafter, in the fourth embodiment of the present invention, only the configuration of functions different from the third embodiment will be described. The configuration itself of the fourth embodiment is the same as that of the third embodiment, but the function of each component is different.
The matrix L calculation unit 5 reads the data of the column vector U (1: i, i) of the corresponding i-th column stored in the storage unit 7 with the set numerical value i, and at the same time, scalar u i, k * Then, a new column vector is calculated by the following equation (7), the position read from the storage unit 7 is overwritten, and the column vector data is changed.
Here, the column vector U (1: i, i) represents a partial matrix from the first row component to the i-th row component in the column vector of the i-th column, and the scalar u i, k * represents the matrix U. The complex conjugate of the element in the i-th row and the k-th column is shown. Here, since L = U H , this corresponds to sequentially calculating the top row of the row vector of the matrix U in order from the bottom.

すなわち、行列R演算部5は、列ベクトルU(1:i,i)に対して、スカラーui、k を乗算し、乗算結果をこの列ベクトルから減算して、この減算結果を新たな列ベクトルLU(1:i,i)として、記憶部7に対して、読み出した位置に上書きする。
このとき、行列R演算部4は、kをデクリメントして、上記(7)式を、kがTからi+1の範囲内、すなわちi+1≦k≦Tの間で繰り返して行う。
That is, the matrix R operation unit 5 multiplies the column vector U (1: i, i) by a scalar u i, k * , subtracts the multiplication result from the column vector, and then adds the subtraction result to a new value. As the column vector LU (1: i, i), the storage unit 7 is overwritten at the read position.
At this time, the matrix R calculation unit 4 decrements k and repeats the above expression (7) within a range of k from T to i + 1, i.e., i + 1 ≦ k ≦ T.

また、行列L演算部5は、上記(8)式に示すように、最終的に得られた列ベクトルU(1:i,i)を記憶部7から読み出し、スカラーui、iの平方根である(ui、i1/2により除算し、この得られた除算結果を最終的な列ベクトルU(1:i,i)として、記憶部7に記憶する。このスカラーui、iは、行列Lのi行番目,i列番目の要素を示している。 Further, the matrix L calculation unit 5 reads the finally obtained column vector U (1: i, i) from the storage unit 7 as shown in the above equation (8), and uses the square root of the scalars u i and i . Divide by a certain (u i, i ) 1/2 and store the obtained division result in the storage unit 7 as a final column vector U (1: i, i). The scalars u i and i indicate the i-th element and the i-th element of the matrix L, respectively.

行列Q演算部6は、設定された数値iにより、記憶部7から行列Qのi番目の列ベクトルQ(:,i)を読み出し、上記(5)式に示すように、スカラーli,iにより除算し、除算結果を新たな列ベクトルQ(:,i)として、記憶部7において読み出した位置に書き込む。このスカラーli,iは、行列Lにおけるi行,i列目の要素である。
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、上記(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーli,jは、行列Lにおけるi行目,j列目の要素の複素共役である。
すなわち、行列Q演算部6は、列ベクトルQ(:,i)の要素に対して、スカラーli,jを乗算し、この乗算結果を列ベクトルQ(:,j)から減算し、この減算結果を新たな列ベクトルQ(:,j)として、記憶部7の読み出した位置に書き込み、データの更新を行う。
このとき、行列Q演算部6は、jを初期値1とし、処理を1回行う毎にインクリメントしつつ、上記(12)式を、1≦j≦i−1の間で繰り返して行う。
演算制御部8は、行列L演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
The matrix Q calculation unit 6 reads the i-th column vector Q (:, i) of the matrix Q from the storage unit 7 with the set numerical value i, and, as shown in the above equation (5), the scalar l i, i The result of division is written as a new column vector Q (:, i) at the position read in the storage unit 7. The scalar l i, i is an element in the i-th row and the i-th column in the matrix L.
Further, the matrix Q calculation unit 6 reads the column vector Q (:, j) from the storage unit 7, calculates a new column vector Q (:, j) by the above equation (6), and reads the storage unit 7. Remember the location Here, the scalar l i, j is a complex conjugate of the element in the i-th row and the j-th column in the matrix L.
That is, the matrix Q operation unit 6 multiplies the element of the column vector Q (:, i) by the scalar l i, j , and subtracts the multiplication result from the column vector Q (:, j). The result is written as a new column vector Q (:, j) at the read position in the storage unit 7 and the data is updated.
At this time, the matrix Q calculation unit 6 sets j as an initial value 1 and repeats the above equation (12) between 1 ≦ j ≦ i−1 while incrementing each time the process is performed.
The arithmetic control unit 8 controls the order of arithmetic processing in the matrix L arithmetic unit 5 and the matrix Q arithmetic unit 6, and controls the number of arithmetic processes in each arithmetic unit, that is, controls the arithmetic loop.

次に、図2及び図6参照して、第4の実施形態による数値分解システムの動作を説明する。図6は、第4の実施形態の数値分解システムのアルゴリズムにおける各部の処理を示したテーブルであり、(1)〜(14)の処理が順次行われる。ここで、入力部1,複素共役転置行列生成部2及び正方行列生成部3の動作は省略され、行列H及び正方行列Gが各々求められ、すでに記憶部7に記憶されているとする。
処理(1)における、初期化部4が行う処理(1)は、第3の実施形態と同様のため、説明を省略する。
Next, the operation of the numerical decomposition system according to the fourth embodiment will be described with reference to FIGS. FIG. 6 is a table showing the processing of each part in the algorithm of the numerical decomposition system of the fourth embodiment, and the processing of (1) to (14) is sequentially performed. Here, it is assumed that the operations of the input unit 1, the complex conjugate transposed matrix generation unit 2 and the square matrix generation unit 3 are omitted, and the matrix H and the square matrix G are respectively obtained and stored in the storage unit 7.
Since the process (1) performed by the initialization unit 4 in the process (1) is the same as that in the third embodiment, the description thereof is omitted.

次に、処理(2)において、演算制御部8は、正方行列である行列Uの列数及び行数の数値Tを抽出し、行列L演算回路5と行列Q演算回路6とにおける繰り返し演算回数をTとし、数値iを「T」に初期化して、処理(2)〜処理(7)までの、行列L演算回路5と行列Q演算回路6とにおける演算処理を、数値iがTから1までの範囲、すなわち1≦i≦Tの間繰り返して行う。
ここで、例えば、1回の演算ループの処理が終了した後、処理(7)にて数値iをディクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否か、0となったか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが1を下回ったこと(範囲外であること)を検出すると、処理(2)〜処理(7)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(8)へ進める。
また、行列L演算部5は、処理(8)において、L=Uの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶する。
Next, in the process (2), the operation control unit 8 extracts the number T of the number of columns and the number of rows of the matrix U which is a square matrix, and the number of repeated operations in the matrix L operation circuit 5 and the matrix Q operation circuit 6. Is set to T, the numerical value i is initialized to “T”, and the arithmetic processing in the matrix L arithmetic circuit 5 and the matrix Q arithmetic circuit 6 from processing (2) to processing (7) is performed. Up to the above range, ie, 1 ≦ i ≦ T, is repeated.
Here, for example, after the processing of one calculation loop is completed, the numerical value i is decremented (subtracted from 1) in the processing (7), and the numerical value i is 1 ≦ i ≦ T in the processing (2). Whether it is within the range or 0 is detected. If it is within the range, the process proceeds to the next process (3), while the numerical value i is less than 1 ( If it is out of range), the processing loop of processing (2) to processing (7) (matrix partitioning calculation loop) is terminated, and the processing proceeds to processing (8).
Further, the matrix L operation unit 5 performs an operation of L = U H in the process (8), that is, performs complex conjugate transposition processing on the obtained upper triangular matrix U, and obtains a lower triangular matrix L Is calculated and stored in the storage unit 7.

次の処理(3)〜処理(5)までは、第3の実施形態における処理(3)〜処理(5)各々と同様のため、説明を省略する。
次に、処理(7)において、演算制御部8は、数値iをディクリメント(1を減算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが0となったこと(範囲外であること)を検出すると、行列Uを上三角行列として記憶部7へ記憶するとともに、処理を処理(8)へ進める。
Since the next processing (3) to processing (5) are the same as the processing (3) to processing (5) in the third embodiment, description thereof will be omitted.
Next, in the process (7), the arithmetic control unit 8 decrements the numerical value i (subtracts 1) and advances the process to the process (2).
Next, in the process (2), the arithmetic control unit 8 detects whether or not the numerical value i is within the range of 1 ≦ i ≦ T. On the other hand, when it is detected that the numerical value i is 0 (out of range), the matrix U is stored in the storage unit 7 as an upper triangular matrix, and the process proceeds to process (8). .

次に、処理(8)において、行列R演算部5は、L=Uの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶するとともに、処理を処理(9)へ進める。 Next, in the process (8), the matrix R operation unit 5 performs an operation of L = U H , that is, performs a complex conjugate transposition process on the obtained upper triangular matrix U, thereby obtaining a matrix of a lower triangular matrix L is calculated and stored in the storage unit 7, and the process proceeds to process (9).

次に、処理(9)において、演算制御部8は、R行,T列の行列である行列Qの列数及の数値Tを抽出し、行列Q演算回路6における繰り返し演算回数をTとし、数値iを「T」に初期化して、処理(9)〜処理(14)までの、行列Q演算回路6における演算処理を、数値iがTから1までの範囲、すなわち1≦i≦Tの間繰り返して行う。ここで、例えば、1回の演算ループの処理が終了した後、処理(14)にて数値iをデクリメント(1を減算)し、処理(9)にて数値iが1≦i≦Tの範囲内であるか否か、すなわち
となったか否かを検出し、範囲内であることを検出した場合、次の処理(10)へ処理を移し、一方、数値iが1を下回ったこと(範囲外であること)を検出すると、処理(9)〜処理(14)の演算ループ(行列Q生成の演算ループ)を終了し、その時点で記憶部7に記憶されている行列Qを、行列Hを分解した行列Qとして出力し、行列Hの分解処理を終了する。上記、処理(10),(11),(12),(13)各々は、それぞれ第3の実施形態における処理(7),(8),(9),(10)と同様のため、説明を省略する。しかしながら、処理(10)で用いる式は(5)式であり、処理(12)で用いる式は(6)式である。
Next, in process (9), the operation control unit 8 extracts the number T of the matrix Q, which is a matrix of R rows and T columns, and sets the number of repetition operations in the matrix Q operation circuit 6 as T. The numerical value i is initialized to “T” and the arithmetic processing in the matrix Q arithmetic circuit 6 from the processing (9) to the processing (14) is performed in the range where the numerical value i is from T to 1, that is, 1 ≦ i ≦ T. Repeat for a while. Here, for example, after the processing of one calculation loop is completed, the numerical value i is decremented (subtracted from 1) in the processing (14), and the numerical value i is in the range of 1 ≦ i ≦ T in the processing (9). Is detected, that is, whether it is within the range. If it is detected that the value is within the range, the process proceeds to the next process (10), while the numerical value i is less than 1 (range Is detected), the processing loop of the processing (9) to processing (14) (the processing loop for generating the matrix Q) is terminated, and the matrix Q stored in the storage unit 7 at that time is replaced with the matrix H. Is output as a decomposed matrix Q, and the decomposition process of the matrix H is terminated. The processes (10), (11), (12), and (13) are the same as the processes (7), (8), (9), and (10) in the third embodiment, respectively. Is omitted. However, the formula used in the process (10) is the formula (5), and the formula used in the process (12) is the formula (6).

上述した第1から第4の実施形態によれば、以下に示す効果がある。
・本発明の各実施形態におけるアルゴリズムは、所要処理演算量が従来アルゴリズム(Classical Gram-Schmidt QR分解法,Modified Gram-Schmidt QR分解法,Householder QR分解法,Given QR分解法など)に比較して少なくなる。
・本発明の各実施形態におけるアルゴリズムは、QL分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQL分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化を実現できる。
According to the first to fourth embodiments described above, there are the following effects.
-The algorithm in each embodiment of the present invention has a required processing complexity compared to the conventional algorithms (Classical Gram-Schmidt QR decomposition method, Modified Gram-Schmidt QR decomposition method, Householder QR decomposition method, Given QR decomposition method, etc.) Less.
The algorithm in each embodiment of the present invention can realize a circuit for the QL decomposition method on a small scale. That is, since the circuit scale is proportional to the required amount of calculation, the amount of calculation is smaller than that of the conventional example, so the required circuit scale of the matrix QL decomposition is also smaller than that of the conventional device, and is smaller than that of the conventional device. Can be realized.

・本発明の各実施形態におけるアルゴリズムは、上述したように回路規模を小さくすることが可能のため、従来に比較して消費電力を少なくすることができる。また、演算量が少なくなることにより、回路動作時間も減少させることができ、消費電力を従来に比較して減少することができ、バッテリ等で動作するQL分解演算機能を有する携帯型の装置の使用時間を延ばすことができる。
・上述した各効果により、従来例に比較して、QL分解演算機能の装置への実装が簡易に行える。
・上述した各効果により、小型化、低消費電力化、低製造コスト化等が、従来例に比して向上しているため、経済的な大量生産を行うことができる。
-Since the algorithm in each embodiment of this invention can reduce a circuit scale as mentioned above, it can reduce power consumption compared with the past. In addition, since the amount of calculation is reduced, the circuit operation time can be reduced, the power consumption can be reduced as compared with the prior art, and a portable device having a QL decomposition calculation function that operates on a battery or the like. Use time can be extended.
-By each effect mentioned above, compared with a prior art example, the implementation to the apparatus of a QL decomposition | disassembly calculation function can be performed easily.
-Due to the above-described effects, miniaturization, low power consumption, low manufacturing cost, and the like are improved as compared with the conventional example, so that economical mass production can be performed.

次に、上述した各実施形態のアルゴリズムにおける式及び行列において用いた用語の定義を以下に示す。
行列及びスカラーは、その度毎に定義しているため省略し、以下、行列A、この行列Aの要素(スカラー)をaとして説明する。
aiまたはA(i,:)…行列Aのi番目の行ベクトル
ajまたはA(:,j)…行列Aのj番目の列ベクトル
aij…行列Aのi番目行,j番目列の要素
A(n:m,i:j)…行列Aのn番目行〜m番目行、i番目列〜j番目列の範囲の部分行列
AH…行列Aの複素共役転置行列
AT…行列Aの転置行列
‖b‖…ベクトルbの2次ノルム
a*…スカラーaの複素共役
|a|…スカラーaの絶対値
a:=a…aの値の更新処理を示す
Next, definitions of terms used in equations and matrices in the algorithm of each embodiment described above are shown below.
Since the matrix and the scalar are defined every time, they are omitted, and hereinafter, the matrix A and the element (scalar) of the matrix A will be described as a.
ai or A (i,:) ... i-th row vector of matrix A aj or A (:, j) ... j-th column vector of matrix A aij ... element of i-th row and j-th column of matrix A A ( n: m, i: j): Submatrix in the range of the n-th to m-th rows and the i-th to j-th columns of the matrix A AH: the complex conjugate transposed matrix of the matrix A AT: the transposed matrix of the matrix A ‖b ‖ ... secondary norm of vector b a * ... complex conjugate of scalar a | a | ... absolute value of scalar a a: = a ... represents update processing of a

なお、図1における数値分解システムの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより行列のQL分解の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。   The program for realizing the function of the numerical decomposition system in FIG. 1 is recorded on a computer-readable recording medium, and the program recorded on the recording medium is read into the computer system and executed, thereby executing the QL of the matrix. A decomposition process may be performed. Here, the “computer system” includes an OS and hardware such as peripheral devices. The “computer system” includes a WWW system having a homepage providing environment (or display environment). The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Further, the “computer-readable recording medium” refers to a volatile memory (RAM) in a computer system that becomes a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, those holding programs for a certain period of time are also included.

また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

本発明の第1〜第4の実施形態において用いられるQL分解のアルゴリズムを説明する概念図である。It is a conceptual diagram explaining the algorithm of QL decomposition | disassembly used in the 1st-4th embodiment of this invention. 本発明の第1〜第4の実施形態による数値分解システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the numerical decomposition system by the 1st-4th embodiment of this invention. 本発明の第1の実施形態におけるQL分解のアルゴリズムを説明する、処理の順番を示すテーブルである。It is a table which shows the order of a process explaining the algorithm of QL decomposition | disassembly in the 1st Embodiment of this invention. 本発明の第2の実施形態におけるQL分解のアルゴリズムを説明する、処理の順番を示すテーブルである。It is a table which shows the order of a process explaining the algorithm of QL decomposition | disassembly in the 2nd Embodiment of this invention. 本発明の第3の実施形態におけるQL分解のアルゴリズムを説明する、処理の順番を示すテーブルである。It is a table which shows the order of a process explaining the algorithm of QL decomposition | disassembly in the 3rd Embodiment of this invention. 本発明の第4の実施形態におけるQL分解のアルゴリズムを説明する、処理の順番を示すテーブルである。It is a table which shows the order of a process explaining the algorithm of QL decomposition | disassembly in the 4th Embodiment of this invention. 従来例において用いられるQL分解のアルゴリズムを説明する概念図である。It is a conceptual diagram explaining the algorithm of QL decomposition | disassembly used in a prior art example.

符号の説明Explanation of symbols

1…入力部 2…複素共役転置行列生成部 3…正方行列生成部 4…初期化部 5…行列L生成部 6…行列Q生成部 7…記憶部 8…演算制御部   DESCRIPTION OF SYMBOLS 1 ... Input part 2 ... Complex conjugate transposed matrix production | generation part 3 ... Square matrix production | generation part 4 ... Initialization part 5 ... Matrix L production | generation part 6 ... Matrix Q production | generation part 7 ... Memory | storage part 8 ... Operation control part

Claims (4)

入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの下三角部分の各要素を空三角行列Lに対して付与して仮の下三角行列Lとする初期化過程と、
行列L演算部が前記記憶部から前記仮の下三角行列Lを読み出し、この仮の下三角行列Lを行ベクトル単位に、下部から上部方向に、各行ベクトルにおける非ゼロ要素のみの部分行列に対して、対応する行ベクトルより下部の要素を所定の割合にて順次減算する演算を行い、算出された行列Lの各行ベクトルを記憶部に記憶する行列L演算過程と、
行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、
演算処理部が前記行列L演算過程及び行列Q演算過程を同一の処理ループ内にて行い、この処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。
A numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L,
The initialization means inputs the matrix H to be decomposed stored in the storage unit and the square matrix G obtained by multiplying the matrix H by the complex conjugate transpose matrix H H of the matrix, Initialization process of assigning elements to the empty matrix Q to give a temporary matrix Q and assigning each element of the lower triangular part of the square matrix G to the empty triangular matrix L to give a temporary lower triangular matrix L When,
A matrix L calculation unit reads the temporary lower triangular matrix L from the storage unit, and the temporary lower triangular matrix L is obtained by subtracting only the non-zero elements in each row vector from the bottom to the top in units of row vectors. A matrix L operation process of sequentially subtracting elements below the corresponding row vector at a predetermined ratio, and storing each row vector of the calculated matrix L in a storage unit;
A matrix Q operation unit reads the temporary matrix Q from the storage unit, performs an operation of sequentially subtracting the elements of a predetermined column vector from each element of the column vector in units of column vectors. A matrix Q calculation process for storing each column vector of the generated matrix Q in a storage unit;
An arithmetic processing unit performs the matrix L calculation process and the matrix Q calculation process in the same processing loop, and repeats this processing loop a number of times corresponding to the number of columns of the matrix H, and the matrix Q and the lower triangular matrix obtained by decomposing the matrix H A numerical decomposition method for a matrix, comprising: an arithmetic processing step of reading L from a storage unit and outputting the same.
入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの下三角部分の各要素を空三角行列Lに対して付与して仮の下三角行列Lとする初期化過程と、
行列L演算部が前記記憶部から前記仮の下三角行列Lを読み出し、この仮の下三角行列Lを行ベクトル単位に、下部から上部方向に、各行ベクトルにおける非ゼロ要素のみの部分行列に対して、対応する行ベクトルより上部の要素を所定の割合にて順次減算する演算を行い、算出された行列Lの各行ベクトルを記憶部に記憶する行列L演算過程と、
行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、
演算処理部が前記行列L演算過程及び行列Q演算過程を、各々独立した処理ループ内にて行い、この各処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程と
を有し、
前記演算処理部が行列L演算過程の繰り返しループが終了した後に、行列Q演算過程の繰り返しループを実行することを特徴とする行列における数値分解方法。
A numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L,
The initialization means inputs the matrix H to be decomposed stored in the storage unit and the square matrix G obtained by multiplying the matrix H by the complex conjugate transpose matrix H H of the matrix, Initialization process of assigning elements to the empty matrix Q to give a temporary matrix Q and assigning each element of the lower triangular part of the square matrix G to the empty triangular matrix L to give a temporary lower triangular matrix L When,
A matrix L calculation unit reads the temporary lower triangular matrix L from the storage unit, and the temporary lower triangular matrix L is obtained by subtracting only the non-zero elements in each row vector from the bottom to the top in units of row vectors. A matrix L operation process of sequentially subtracting elements above the corresponding row vector at a predetermined ratio, and storing each row vector of the calculated matrix L in a storage unit;
A matrix Q operation unit reads the temporary matrix Q from the storage unit, performs an operation of sequentially subtracting the elements of a predetermined column vector from each element of the column vector in units of column vectors. A matrix Q calculation process for storing each column vector of the generated matrix Q in a storage unit;
An arithmetic processing unit performs the matrix L calculation process and the matrix Q calculation process in independent processing loops, repeats each processing loop a number of times corresponding to the number of columns of the matrix H, and decomposes the matrix H into the matrix Q and A lower triangular matrix L that is read from the storage unit and output, and
A numerical decomposition method for a matrix, wherein the arithmetic processing unit executes a repetition loop of a matrix Q calculation process after a repetition loop of a matrix L calculation process is completed.
入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの上三角部分の各要素を空三角行列Uに対して付与して上三角行列Uとする初期化過程と、
行列L演算部が前記記憶部から前記仮の上三角行列Uを読み出し、この上三角行列Uを列ベクトル単位に、右端から左端方向に、各列ベクトルにおける非ゼロ要素のみの部分行列に対して演算を行い、算出された行列Uの各列ベクトルを記憶部に記憶する行列U演算過程と、
行列L演算部が所定の回数の処理ループの繰り返しの終了の後、前記行列Uを読み出し、この行列Uに対して複素共役転置処理を行い、この演算結果を下三角行列Lとして、記憶部に記憶する複素共役転置処理過程と、
行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、
演算処理部が前記行列U演算過程及び行列Q演算過程を同一の処理ループ内にて行い、この処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。
A numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L,
The initialization means inputs the matrix H to be decomposed stored in the storage unit and the square matrix G obtained by multiplying the matrix H by the complex conjugate transpose matrix H H of the matrix, An initialization process in which elements are assigned to the empty matrix Q to form a temporary matrix Q, and each element of the upper triangular portion of the square matrix G is assigned to the empty triangular matrix U to form an upper triangular matrix U;
A matrix L calculation unit reads the provisional upper triangular matrix U from the storage unit, and the upper triangular matrix U with respect to a partial matrix of only non-zero elements in each column vector from the right end to the left end in units of column vectors. A matrix U calculation process for performing calculation and storing each column vector of the calculated matrix U in a storage unit;
After the matrix L calculation unit finishes repeating the processing loop a predetermined number of times, the matrix U is read, complex conjugate transposition processing is performed on the matrix U, and the calculation result is stored as a lower triangular matrix L in the storage unit. Memorizing complex conjugate transposition process;
A matrix Q operation unit reads the temporary matrix Q from the storage unit, performs an operation of sequentially subtracting the elements of a predetermined column vector from each element of the column vector in units of column vectors. A matrix Q calculation process for storing each column vector of the generated matrix Q in a storage unit;
An arithmetic processing unit performs the matrix U calculation process and the matrix Q calculation process in the same processing loop, and repeats this processing loop a number of times corresponding to the number of columns of the matrix H, and the matrix Q and the lower triangular matrix obtained by decomposing the matrix H A numerical decomposition method for a matrix, comprising: an arithmetic processing step of reading L from a storage unit and outputting the same.
入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
初期化手段が、記憶部に記憶されている分解対象である行列H、及び該行列の複素共役転置行列Hと行列Hとを乗算して求めた正方行列Gを入力し、行列Hの各要素を、空行列Qに対して付与して仮の行列Qとし、正方行列Gの上三角部分の各要素を空三角行列Uに対して付与して上三角行列Uとする初期化過程と、
行列L演算部が前記記憶部から前記仮の上三角行列Uを読み出し、この上三角行列Uを列ベクトル単位に、右端から左端方向に、各列ベクトルにおける非ゼロ要素のみの部分行列に対して演算を行い、算出された行列Uの各列ベクトルを記憶部に記憶する行列U演算過程と、
行列L演算部が所定の回数の処理ループの繰り返しの終了の後、前記行列Uを読み出し、この行列Rに対して複素共役転置処理を行い、この演算結果を下三角行列Lとして、記憶部に記憶する複素共役転置処理過程と、
行列Q演算部が前記記憶部から前記仮の行列Qを読み出し、この仮の行列Qを列ベクトル単位に、列ベクトルの各要素より、所定の列ベクトルの要素を順次減算する演算を行い、算出された行列Qの各列ベクトルを記憶部に記憶する行列Q演算過程と、
演算処理部が前記行列L演算過程及び行列Q演算過程を、各々異なった処理ループ内にて行い、この各処理ループを行列Hの列数に対応する回数繰り返し、行列Hを分解した行列Q及び下三角行列Lを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。
A numerical decomposition method for performing QL decomposition that decomposes an input matrix H into a matrix Q and a lower triangular matrix L,
The initialization means inputs the matrix H to be decomposed stored in the storage unit and the square matrix G obtained by multiplying the matrix H by the complex conjugate transpose matrix H H of the matrix, An initialization process in which elements are assigned to the empty matrix Q to form a temporary matrix Q, and each element of the upper triangular portion of the square matrix G is assigned to the empty triangular matrix U to form an upper triangular matrix U;
A matrix L calculation unit reads the provisional upper triangular matrix U from the storage unit, and the upper triangular matrix U with respect to a partial matrix of only non-zero elements in each column vector from the right end to the left end in units of column vectors. A matrix U calculation process for performing calculation and storing each column vector of the calculated matrix U in a storage unit;
After the matrix L calculation unit finishes repeating the processing loop a predetermined number of times, the matrix U is read out, complex conjugate transposition processing is performed on the matrix R, and the calculation result is stored as a lower triangular matrix L in the storage unit. Memorizing complex conjugate transposition process;
A matrix Q operation unit reads the temporary matrix Q from the storage unit, performs an operation of sequentially subtracting the elements of a predetermined column vector from each element of the column vector in units of column vectors. A matrix Q calculation process for storing each column vector of the generated matrix Q in a storage unit;
An arithmetic processing unit performs the matrix L calculation process and the matrix Q calculation process in different processing loops, and repeats each processing loop a number of times corresponding to the number of columns of the matrix H, thereby decomposing the matrix H and the matrix Q and A numerical decomposition method for a matrix, comprising: an arithmetic processing step of reading out and outputting a lower triangular matrix L from a storage unit.
JP2006314369A 2006-11-21 2006-11-21 Numerical decomposition method in matrix Expired - Fee Related JP4531738B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006314369A JP4531738B2 (en) 2006-11-21 2006-11-21 Numerical decomposition method in matrix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006314369A JP4531738B2 (en) 2006-11-21 2006-11-21 Numerical decomposition method in matrix

Publications (2)

Publication Number Publication Date
JP2008129861A true JP2008129861A (en) 2008-06-05
JP4531738B2 JP4531738B2 (en) 2010-08-25

Family

ID=39555608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006314369A Expired - Fee Related JP4531738B2 (en) 2006-11-21 2006-11-21 Numerical decomposition method in matrix

Country Status (1)

Country Link
JP (1) JP4531738B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651138A (en) * 2020-05-28 2020-09-11 Oppo广东移动通信有限公司 Integrated circuit, signal processing method and device and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003273837A (en) * 2002-03-12 2003-09-26 Toshiba Corp Receiving equipment, transmitter-receiver, transmitting equipment and transmission signal classification equipment
WO2005109680A1 (en) * 2004-04-22 2005-11-17 Qualcomm Incorporated Iterative eigenvector computation for a mimo communication system
JP2006284180A (en) * 2005-03-31 2006-10-19 Denso It Laboratory Inc Device for estimating direction of incoming wave
JP2007049267A (en) * 2005-08-08 2007-02-22 Nippon Telegr & Teleph Corp <Ntt> Receiver of wireless communication system, method and program for detecting wireless signal transmitted from transmitter and recording medium
JP4313803B2 (en) * 2006-03-27 2009-08-12 日本電信電話株式会社 Numerical decomposition method in matrix

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003273837A (en) * 2002-03-12 2003-09-26 Toshiba Corp Receiving equipment, transmitter-receiver, transmitting equipment and transmission signal classification equipment
WO2005109680A1 (en) * 2004-04-22 2005-11-17 Qualcomm Incorporated Iterative eigenvector computation for a mimo communication system
JP2006284180A (en) * 2005-03-31 2006-10-19 Denso It Laboratory Inc Device for estimating direction of incoming wave
JP2007049267A (en) * 2005-08-08 2007-02-22 Nippon Telegr & Teleph Corp <Ntt> Receiver of wireless communication system, method and program for detecting wireless signal transmitted from transmitter and recording medium
JP4313803B2 (en) * 2006-03-27 2009-08-12 日本電信電話株式会社 Numerical decomposition method in matrix

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651138A (en) * 2020-05-28 2020-09-11 Oppo广东移动通信有限公司 Integrated circuit, signal processing method and device and storage medium
CN111651138B (en) * 2020-05-28 2023-11-03 Oppo广东移动通信有限公司 Integrated circuit, signal processing method and device and storage medium

Also Published As

Publication number Publication date
JP4531738B2 (en) 2010-08-25

Similar Documents

Publication Publication Date Title
EP3373210A1 (en) Transposing neural network matrices in hardware
Wang et al. IK-SVD: dictionary learning for spatial big data via incremental atom update
JP4952979B2 (en) Signal separation device, signal separation method, and program
JP2009037597A (en) Method of filtering input image to create output image
JP2011076068A (en) Method and system for reducing dimensionality of spectrogram of signal created by a number of independent processes
JP6953287B2 (en) Sound source search device, sound source search method and its program
JP2015521748A (en) How to convert the input signal
Soubeyrand et al. Parameter estimation for reaction-diffusion models of biological invasions
Ding et al. The residual based extended least squares identification method for dual-rate systems
JP7271244B2 (en) CNN processing device, CNN processing method, and program
Berry et al. Forecasting turbulent modes with nonparametric diffusion models: Learning from noisy data
Sampson et al. Ensemble Kalman filter for nonconservative moving mesh solvers with a joint physics and mesh location update
JP5068228B2 (en) Non-negative matrix decomposition numerical calculation method, non-negative matrix decomposition numerical calculation apparatus, program, and storage medium
Krishnan et al. A wavelet-based dynamic mode decomposition for modeling mechanical systems from partial observations
JP4531738B2 (en) Numerical decomposition method in matrix
JP4313803B2 (en) Numerical decomposition method in matrix
JP2013101598A (en) Behavior analysis system, behavior analysis method and behavior analysis program
Hoang et al. Prediction error sampling procedure based on dominant Schur decomposition. Application to state estimation in high dimensional oceanic model
JP6104469B2 (en) Matrix generation device, matrix generation method, and matrix generation program
JP7349811B2 (en) Training device, generation device, and graph generation method
Chen et al. Scalable Gaussian process analysis for implicit physics-based covariance models
JP3865247B2 (en) Simultaneous linear equation iterative solution calculator and simultaneous linear equation iterative solution calculation method
WO2020261509A1 (en) Machine learning device, machine learning program, and machine learning method
WO2023157184A1 (en) Information processing device, information processing method, and program
JP7204545B2 (en) AUDIO SIGNAL PROCESSING DEVICE, AUDIO SIGNAL PROCESSING METHOD, AND PROGRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4531738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140618

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees