JP2003242133A - 行列演算装置 - Google Patents

行列演算装置

Info

Publication number
JP2003242133A
JP2003242133A JP2002041259A JP2002041259A JP2003242133A JP 2003242133 A JP2003242133 A JP 2003242133A JP 2002041259 A JP2002041259 A JP 2002041259A JP 2002041259 A JP2002041259 A JP 2002041259A JP 2003242133 A JP2003242133 A JP 2003242133A
Authority
JP
Japan
Prior art keywords
memory
matrix
output
shift register
calculation
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.)
Withdrawn
Application number
JP2002041259A
Other languages
English (en)
Inventor
Tetsuya Ikeda
徹哉 池田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002041259A priority Critical patent/JP2003242133A/ja
Priority to PCT/JP2003/001752 priority patent/WO2003077150A1/ja
Priority to US10/485,486 priority patent/US20040181565A1/en
Priority to AU2003211472A priority patent/AU2003211472A1/en
Priority to EP20030705301 priority patent/EP1411441A1/en
Publication of JP2003242133A publication Critical patent/JP2003242133A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7097Interference-related aspects
    • H04B1/7103Interference-related aspects the interference being multiple access interference
    • H04B1/7105Joint detection techniques, e.g. linear detectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 プロセッサ間のデータの授受を無くし、
小さい回路規模で演算を効率良く行うことができる行列
演算装置を提供すること。 【解決手段】 三角行列の対角要素をメモリ12、17
に記憶させ、シフトレジスタ11の各シフト段REG1
〜REG(N−1)からの出力とメモリ12からの対角
要素出力とを用いた演算を行い、演算結果をシフトレジ
スタ11に入力し、シフトレジスタ11の各シフト段R
EG1〜REG(N−1)からの新たなレジスタ出力と
メモリか12らの対角要素とを用いた演算処理処理を、
巡回的に繰り返すことにより連立一次方程式を解くよう
にした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は行列演算装置に関
し、例えば構造解析を行う場合に必要となる大規模な連
立一次方程式の解を高速に演算する場合に適用して好適
なものである。
【0002】
【従来の技術】従来、有限要素法を用いて大規模な構造
解析等を計算機により実行する際には、大規模な連立一
次方程式の解を求める必要がある。この大規模な連立一
次方程式の解を高速に求める方法の一つとして、次式に
示すようなLU分解(三角分解)法が知られている。
【0003】
【数1】 ここで、FとyはそれぞれN行×N列、N行×1列の既
知の行列であり、求める行列dはN行×1列の行列であ
る。LU分解法によると、既知の対称行列Fは下三角行
列Aとその転置行列ATより数式のように分解すること
ができる。
【0004】
【数2】 したがって、(2)式を(1)式に代入すると、次式が
成り立つ。
【0005】
【数3】 さらに、ATd=zと置くと、(3)式は、次式とな
る。
【0006】
【数4】 したがって、次に述べる2ステップの計算を行うことに
より、(1)式で示される連立一次方程式の解dを求め
ることができる。すなわち、先ず第1のステップ(以下
これをstep1と呼ぶ)で(4)式から行列zを求め
る。上述したように、Aは下三角行列であるので、行列
zを求める計算式は、次式となる。
【0007】
【数5】 ここでzおよびyはN行×1列のベクトルであり、zは
1行目の要素z1から順に前に求めたzを順次用いるこ
とにより、N行目の要素zNまで簡単に求めることがで
きる。この計算方法は行列zの第1番目の要素から第N
番目の要素の順番に算出するため前進代入の計算と呼ば
れている。
【0008】次に第2のステップ(以下これをstep
2と呼ぶ)において、step1で計算された行列zを
使ってATd=zから解dを求める。上述したように、
TはAの転置行列であるため上三角行列となる。した
がって、(5)式と同様に連立一次方程式の解dを求め
るための計算式は、次式となる。
【0009】
【数6】 また、この計算方法は行列dのN行目の要素から逆順に
1行目の成分まで算出するため後退代入の計算と呼ばれ
ている。
【0010】従来、この前進代入の計算および後退代入
の計算を高速で解くために複数のプロセッサを用いて並
列に計算を行っている。そして複数プロセッサを効率よ
く動作させて、より高速な演算を行う工夫がなされてい
る。例えば、特開2000−339296号公報には、
上三角行列Aの列方向の要素を各プロセッサ内のメモリ
に格納することで、各プロセッサでの待ち時間を低減す
る方法が開示されている。
【0011】
【発明が解決しようとする課題】しかしながら、(5)
式および(6)式から分かる通り、LU分解(三角分
解)法では、一つ前に計算された行列の要素を使って次
の行列の要素を算出する必要があるため、必ずプロセッ
サ間でデータの授受が必要となる。
【0012】さらに、上三角行列Aの列方向の要素が各
プロセッサ内のメモリに格納されているため、前進代入
の計算時には、各プロセッサ内で演算に必要な要素があ
るため計算が可能であるが、後退代入の計算時は必要な
行列の要素を他のプロセッサから転送される必要がある
ため、演算効率が落ちるという問題がある。
【0013】本発明はかかる点に鑑みてなされたもので
あり、プロセッサ間のデータの授受を無くし、小さい回
路規模で演算を効率良く行うことができる行列演算装置
を提供することを目的とする.
【0014】
【課題を解決するための手段】かかる課題を解決するた
め本発明は、以下の構成を採る。
【0015】本発明の行列演算装置は、三角行列を用い
て連立一次方程式を解く行列演算装置であって、シフト
レジスタと、三角行列の対角要素が格納された記憶手段
と、シフトレジスタの各シフト段からのレジスタ出力と
記憶手段から出力される対角要素出力とを用いた演算を
行う演算手段と、を具備し、演算手段により得られた演
算結果をシフトレジスタに入力し、シフトレジスタから
の新たなレジスタ出力と記憶手段から出力される対角要
素出力とを用いた演算処理を、巡回的に繰り返すことに
より連立一次方程式を解く構成を採る。
【0016】この構成によれば、三角分解された三角行
列を用いて連立一次方程式の解を求める際に、1サイク
ルで一つの要素を算出することが可能となり、また前の
サイクルで計算された三角行列の演算結果を次の演算の
ための演算要素に使用することができるため、プロセッ
サ間のデータの授受を無くし、小さい回路規模で大規模
な連立一次方程式の解を効率よく求めることができる。
【0017】また本発明の行列演算装置は、三角行列が
N行×N列の行列についての三角行列の場合、シフトレ
ジスタは(N−1)段のシフト段を有し、記憶手段は、
三角行列の対角要素が格納され演算サイクル毎に異なる
複数の対角要素を出力する第1のメモリと、N行×1列
の既知の行列の要素が格納され演算サイクル毎に1つの
行列要素を出力する第2のメモリと、三角行列の対角要
素が格納され演算サイクル毎に1つの対角要素を出力す
る第3のメモリとを有し、演算手段は、複数のレジスタ
出力と第1のメモリからの複数の対角要素出力とを乗算
する複数の乗算器と、これらの乗算器による乗算結果を
加算する加算器と、この加算器による加算結果により第
2のメモリからの行列要素出力を減算する減算器と、こ
の減算器による減算結果を第3のメモリからの対角要素
出力で除算する除算器とを有し、除算器から順次出力さ
れる除算結果をシフトレジスタに入力すると共に、除算
器から順次出力される除算結果を連立一次方程式の解と
する、構成を採る。
【0018】この構成によれば、少ないメモリ数および
少ない演算素子数により、連立一次方程式の解を効率良
く求めることができる。
【0019】本発明の行列演算装置は、前進代入および
後進代入による計算を順に行って連立一次方程式の解を
求める場合、前進代入により求めた解を第2のメモリの
行列要素として格納し、後進代入時には、演算サイクル
毎に、第1、第2及び第3のメモリに格納された行列要
素を前進代入時とは逆の順に読み出すようにする、構成
を採る。
【0020】この構成によれば、前進代入および後進代
入による計算を順に行って連立一次方程式の解を求める
場合に、前進代入で使用したメモリを有効に使って後進
代入を行うことができるので、メモリ数を増やさずに前
進代入および後進代入により連立一次方程式の解を求め
ることができる。
【0021】本発明の移動体通信システムの干渉除去装
置は、上記行列演算装置を具備する構成を採る。
【0022】この構成によれば、簡易な構成で高速に行
列演算を行って受信信号の干渉成分を除去できるように
なるので、例えば携帯電話機の干渉除去装置に適用すれ
ば、移動に応じて変動する干渉成分を高速演算により良
好に除去し得、この結果高品質の復調データを得ること
ができる小型の携帯電話機を実現できる。これは無線基
地局に適用した場合も同様である。
【0023】本発明の移動体通信システムの干渉除去装
置は、データの相関を取るために設けられたマッチトフ
ィルタを構成するシフトレジスタ、複数の乗算器および
加算器を、行列演算装置のシフトレジスタ、複数の乗算
器および加算器として共用する構成を採る。
【0024】この構成によれば、マッチトフィルタを構
成する部品を有効に活用して行列演算を行うことができ
るので、一段と回路規模の小さい干渉除去装置を実現す
ることができる。
【0025】
【発明の実施の形態】本発明の骨子は、三角行列の対角
要素をメモリに記憶させ、シフトレジスタの各シフト段
からの出力とメモリからの対角要素出力とを用いた演算
を行い、演算結果をシフトレジスタに入力し、シフトレ
ジスタの各シフト段からの新たなレジスタ出力とメモリ
からの対角要素とを用いた演算処理を、巡回的に繰り返
すことにより連立一次方程式を解くことである。
【0026】以下、本発明の実施形態について図面を参
照して詳細に説明する。
【0027】(実施の形態1)図1は、本発明の実施の
形態1に係る行列演算装置を示すブロック図である。行
列演算装置10は、(1)式で示される三角分解された
N行×N列の行列に関する連立一次方程式の解を求め
る。
【0028】行列演算装置10は、求めた演算結果を順
次格納する(N−1)段から構成されるシフトレジスタ
11を有する。第1のメモリ12には既知の三角行列の
対角要素が格納されている。(N−1)個の乗算器13
−1〜13−N−1は、それぞれ、シフトレジスタ11
の各シフト段REG1〜REG(N−1)からの出力値
と、第1のメモリ12から出力され各行列の要素を乗算
する。加算器14は各乗算器13−1〜13−N−1か
ら出力されるすべての乗算結果を加算する。
【0029】第2のメモリ15にはN行×1列の既知の
行列の要素が格納されている。減算器16は第2のメモ
リ15から読み出される値から加算器14の加算結果を
減算する。第3のメモリ17には既知の三角行列の対角
要素が格納されている。除算器18は減算器16からの
出力を第3のメモリ17から読み出される値で除算す
る。第3のメモリ17には除算器18から出力される演
算結果が格納される。
【0030】このように、行列演算装置10において
は、下三角分解されたN行×N列の行列に関する連立一
次方程式の解dを求めるにあたり、前進代入の計算時に
は、第1のメモリ12には既知の三角行列Aの対角要素
が格納され、第2のメモリ15には既知のN行×1列の
行列y(y1,y2,…,yn)の各要素が格納され、第3のメモ
リ17には既知の行列Aの対角要素(a11,a22,…,ann)が
格納され、1サイクルごとに、求める行列zの要素が第
1行目から順次計算されて第4のメモリ19に格納され
るようになっている。
【0031】ここで第1のメモリ12は、メモリ12−
1、12−2、…、12−(N−1)の合計(N−1)
個のメモリから構成されており、それぞれ、(N−1)
のアドレス領域を持つ。そして各メモリ12−1、12
−2、…、12−(N−1)には下三角行列Aの対角要
素が、それぞれa2=[a21,a32,a43,…,a(n)(n-1)]、a3=[a
31,a42,a54,…,a(n)(n-2)]、…、an-2=[a(N-1,1), a
(N,2)]、an-1=[a(N,1)]のように格納される。
【0032】また後進代入の計算時も同様に、第1のメ
モリ12および第3のメモリ17には前進代入の計算時
と同様に、それぞれ、既知の三角行列Aの成分とAの対
角要素が格納される。これに対して、第2のメモリ15
には前進代入の計算で求まった行列z(z1,z2,…,zn)の成
分が格納される。
【0033】そしてシフトレジスタ11の値と、第1の
メモリ12から読み出される各要素を(N−1)個の乗
算器13−1〜13−N−1で乗算し、各乗算器13−
1〜13−N−1から出力されるすべての乗算結果を加
算器14で加算する。減算器16は第2のメモリ15か
ら読み出される値により加算器14の演算結果を減算す
る。除算器18は減算器16からの出力を第3のメモリ
17から読み出される値で除算する。これにより、順次
1サイクルごとに除算器18から、(1)式で示される
連立一次方程式の解dが演算結果として出力される。
【0034】次に行列演算装置10の動作を図2、図
3、図4、図5、図6、図7、図8を参照して説明す
る。以下では説明を簡単化するために、N=5の場合に
ついて考える。つまり、図1では、N行×N列の行列に
関する連立一次方程式の解dを求める行列演算装置10
について説明したが、以下では、図2に示すように、5
行×5列の行列に関する連立一次方程式の解dを求める
演算装置20についての動作について説明する。なお行
列演算装置20の各構成要素の機能は、行列演算装置1
0の各構成要素の機能と同様である。
【0035】まず、行列演算装置20において、(4)
式で示す連立一次方程式における解zを前進代入の計算
から求める動作を説明する。前進代入の計算は、初期状
態から始まって5サイクルで行う。
【0036】(初期状態)既知の行列Aおよびyの成分
を、図3に示す値としたとき、初期状態において、シフ
トレジスタ21の状態および第1、第2、第3のメモリ
のメモリ22、25、27に格納されている値と、シフ
トレジスタ21および第1、第2、第3のメモリ22、
25、27から出力される値は、図4に示すようにな
る。
【0037】すなわち、初期状態において、シフトレジ
スタ21から[REG1,REG2,REG3,REG4]=[0,0,0,0]が
出力される。第1のメモリ22の各メモリ22−1(メ
モリ1)、22−2(メモリ2)、22−3(メモリ
3)、22−4(メモリ4)からは、次の値が出力され
る。つまり、メモリ1からは格納されたa2=[a21, a32,
a43, a54]のうちa2=a21が出力され、メモリ2からは格
納されたa3=[a31, a42, a53]のうちa3=a31が出力さ
れ、メモリ3からは格納されたa4=[a41, a52]のうちa
4=a41が出力され、メモリ4からは格納されたa5=[a51]
のうちa5=a51が出力される。
【0038】第2のメモリ25からは格納されたy=[y1,
y2, y3, y4, y5]のうちy=y1が出力される。第3のメモ
リ27からは格納されたa1=[a11, a22, a33, a44,
a55,]のうちa1=a11が出力される。
【0039】続いて各サイクルにおける計算手順を述べ
る。
【0040】(1サイクル目)行列演算装置20は、初
期状態においてシフトレジスタ21および第1、第2、
第3のメモリ22、25、27から出力される行列の要
素に基づき、z1の要素を求める。このとき、(4)式で
示す計算式の通り、z1=1/a11×y1の計算が実行され
る。そして、第4のメモリ29およびシフトレジスタ2
1には演算結果z1が格納されるようになっている。また
演算実行後、第2のメモリ25および第3のメモリ27
はアドレスがインクリメントされるようになっている。
しかし、第1のメモリ22のアドレスはインクリメント
されないようになっている。
【0041】(2サイクル目)行列演算装置20は、z2
の成分を算出するために、(4)式で示す計算式の通
り、z2=1/a22×(y2-a21z1)の計算を実行する。このと
き、実行前のシフトレジスタ21の状態と、出力される
値、および第1、第2、第3のメモリ22、25、27
から出力される値は、図4にも示したように以下のよう
になる。
【0042】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[z1, 0, 0, 0]が出力される。第1のメモリ
22の各メモリ22−1(メモリ1)、22−2(メモ
リ2)、22−3(メモリ3)、22−4(メモリ4)
からは、次の値が出力される。つまり、メモリ1からは
a2=a21が出力され、メモリ2からはa3=a31が出力さ
れ、メモリ3からはa4=a41が出力され、メモリ4から
はa5=a51が出力される。また第2のメモリ25からはy=
y2が出力される。さらに第3のメモリ24からはa1= a
22が出力される。
【0043】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果z2が格納される。演算実行後、
第2のメモリ25および第3のメモリ27はアドレスが
インクリメントされる。また第1のメモリ22のうち、
メモリ22−1(メモリ1)のアドレスのみインクリメ
ントされる。
【0044】(3サイクル目)行列演算装置20は、z3
の成分を算出するために、(4)式で示す計算式の通
り、z3=1/a33×(y3-a31z1-a32z2)の計算を実行する。
このとき、実行前のシフトレジスタ21の状態と、出力
される値、および第1、第2、第3のメモリ22、2
5、27から出力される値は、図4にも示したように以
下のようになる。
【0045】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[z2, z1, 0, 0]が出力される。第1のメモ
リ22の各メモリ22−1(メモリ1)、22−2(メ
モリ2)、22−3(メモリ3)、22−4(メモリ
4)からは、次の値が出力される。つまり、メモリ1か
らはa2=a32が出力され、メモリ2からはa3= a31が出
力され、メモリ3からはa4=a41が出力され、メモリ4
からはa5=a51が出力される。また第2のメモリ25から
はy=y3が出力される。さらに第3のメモリ27からはa1
= a33が出力される。
【0046】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果z3が格納される。演算実行後、
第2のメモリ25および第3のメモリ27はアドレスが
インクリメントされる。また第1のメモリ22のうち、
メモリ1とメモリ2のアドレスがインクリメントされ
る。
【0047】(4サイクル目)行列演算装置20は、z4
の成分を算出するために、(4)式で示す計算式の通
り、z4=1/a44×(y4-a41z1-a42z2-a43z3)の計算を実行
する。このとき、実行前のシフトレジスタ21の状態
と、出力される値、および第1、第2、第3のメモリ2
2、25、27から出力される値は、図5でも示すよう
に以下のようになる。
【0048】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[z3, z2, z1, z0]が出力される。第1の
メモリ22の各メモリ22−1(メモリ1)、22−2
(メモリ2)、22−3(メモリ3)、22−4(メモ
リ4)からは、次の値が出力される。つまり、メモリ1
からはa2=a43が出力され、メモリ2からはa3= a42
出力され、メモリ3からはa4=a41が出力され、メモリ
4からはa5=a51が出力される。また第2のメモリ25か
らはy=y4が出力される。さらに第3のメモリ27からは
a1= a44が出力される。
【0049】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果z4が格納される。演算実行後、
第2のメモリ25および第3のメモリ27はアドレスが
インクリメントされる。また第1のメモリ22のうち、
メモリ1、メモリ2およびメモリ3のアドレスがインク
リメントされる。
【0050】(5サイクル目)行列演算装置20は、z5
の成分を算出するために、(4)式で示す計算式の通
り、z5=1/a55×(y5-(a51z1+a52z2+a53z3+a54z4+a
55z5))の計算を実行する。このとき、実行前のシフトレ
ジスタ21の状態と、出力される値、および第1、第
2、第3のメモリ22、25、27から出力される値
は、図5でも示すように以下のようになる。
【0051】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[z4, z3, z2, z1]が出力される。第1の
メモリ22の各メモリ22−1(メモリ1)、22−2
(メモリ2)、22−3(メモリ3)、22−4(メモ
リ4)からは、次の値が出力される。つまり、メモリ1
からはa2=a54が出力され、メモリ2からはa3= a53
出力され、メモリ3からはa4=a52が出力され、メモリ
4からはa5=a51が出力される。また第2のメモリ25か
らはy=y5が出力される。さらに第3のメモリ27からは
a1= a55が出力される。
【0052】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果z5が格納される。この5サイク
ル目では、演算実行後、第2のメモリ25および第3の
メモリ27のアドレスはインクリメントされないように
なっている。また第1のメモリ22のメモリ1、メモリ
2、メモリ3およびメモリ4のアドレスのインクリメン
トも行われないようになっている。
【0053】このように、5サイクル目には、第1のメ
モリ22は初期状態に戻り、第2のメモリ25および第
3のメモリ27の出力値も初期状態にもどる。そして第
4のメモリ29には全ての演算結果z=[z1, z2, z3, z4,
z5]が格納されて、(5)式の解zが求まる。
【0054】次に、上記前進代入により求まった行列z
を用いて、図6に示す行列式を、(6)式の後退代入に
より計算する。このとき、前進代入により第4のメモリ
29に格納された行列zを第2のメモリ25に転送す
る。また三角行列Aの要素が格納されている第1のメモ
リ22と第3のメモリ27、さらに、行列zを格納する
第2のメモリ25のアドレス位置は、前進代入の計算終
了時と同じ位置から開始する。またシフトレジスタ21
にリセットをかけて、各レジスタの初期化を行ない、図
6に示す行列演算を後退代入により実行する。後退代入
の計算は、初期状態から始まって5サイクルで行う。
【0055】(初期状態)後退代入の計算開始時のシフ
トレジスタ21の状態および第1、第2、第3のメモリ
のメモリ22、25、27に格納されている値と、シフ
トレジスタ21および第1、第2、第3のメモリ22、
25、27から出力される値は、図6に示すようにな
る。
【0056】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[0,0,0,0]が出力される。第1のメモリ22
の各メモリ22−1(メモリ1)、22−2(メモリ
2)、22−3(メモリ3)、22−4(メモリ4)か
らは、次の値が出力される。つまり、メモリ1からはa
2=a54が出力され、メモリ2からはa3= a53が出力さ
れ、メモリ3からはa4=a52が出力され、メモリ4から
はa5=a51が出力される。また第2のメモリ25からはy=
y5が出力される。第3のメモリ27からはa1= a55が出
力される。
【0057】続いて各サイクルにおける計算手順を述べ
る。
【0058】(1サイクル目)行列演算装置20は、初
期状態においてシフトレジスタ21および第1、第2、
第3のメモリ22、25、27から出力される行列の要
素に基づき、d5の要素を求める。このとき、(6)式で
示す計算式の通り、d5=1/a55×z5の計算を実行する。
そして、第4のメモリ29およびシフトレジスタ21に
は演算結果d5が格納される。演算実行後、第2のメモリ
25および第3のメモリ27はアドレスがディクリメン
トされるようになっている。しかし、第1のメモリ22
のアドレスはディクリメントされないようになってい
る。
【0059】(2サイクル目)行列演算装置20は、d4
の成分を算出するために、(6)式で示す計算式の通
り、d4=1/a44×(z4-a54d5)の計算を実行する。このと
き、実行前のシフトレジスタ21の状態と、出力される
値、および第1、第2、第3のメモリ22、25、27
から出力される値は、図7にも示したように以下のよう
になる。
【0060】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[d5, 0, 0, 0]が出力される。第1のメモリ
22の各メモリ22−1(メモリ1)、22−2(メモ
リ2)、22−3(メモリ3)、22−4(メモリ4)
からは、次の値が出力される。つまり、メモリ1からは
a2=a54が出力され、メモリ2からはa3= a53が出力さ
れ、メモリ3からはa4=a52が出力され、メモリ4から
はa5=a51が出力される。また第2のメモリ25からはz=
y4が出力される。さらに第3のメモリ27からはa1= a
44が出力される。
【0061】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果d4が格納される。演算実施後、
第2のメモリ25および第3のメモリ27はアドレスが
ディクリメントされる。また第1のメモリ22のうち、
メモリ22−1(メモリ1)のアドレスのみディクリメ
ントされる。
【0062】(3サイクル目)行列演算装置20は、d3
の成分を算出するために、(6)式で示す計算式の通
り、d3=1/a33×(z3-a43d4-a53d5)の計算を実行する。
このとき、実行前のシフトレジスタ21の状態と、出力
される値、および第1、第2、第3のメモリ22、2
5、27から出力される値は、図7にも示したように以
下のようになる。
【0063】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[d4, d5, 0, 0]が出力される。第1のメモリ
22の各メモリ22−1(メモリ1)、22−2(メモ
リ2)、22−3(メモリ3)、22−4(メモリ4)
からは、次の値が出力される。つまり、メモリ1からは
a2=a43が出力され、メモリ2からはa3= a53が出力さ
れ、メモリ3からはa4=a52が出力され、メモリ4から
はa5=a51が出力される。また第2のメモリ25からはz=
z3が出力される。さらに第3のメモリ27からはa1= a
33が出力される。
【0064】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果d3が格納される。演算実施後、
第2のメモリ25および第3のメモリ27はアドレスが
ディクリメントされる。また第1のメモリ22のうち、
メモリ1とメモリ2のアドレスがディクリメントされ
る。
【0065】(4サイクル目)行列演算装置20は、d2
の成分を算出するために、(6)式で示す計算式の通
り、d2=1/a22×(z2-a32d3-a42d4-a52d5)の計算を実行
する。このとき、実行前のシフトレジスタ21の状態
と、出力される値、および第1、第2、第3のメモリ2
2、25、27から出力される値は、図8にも示したよ
うに以下のようになる。
【0066】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[d3, d4, d5, 0]が出力される。第1のメモ
リ22の各メモリ22−1(メモリ1)、22−2(メ
モリ2)、22−3(メモリ3)、22−4(メモリ
4)からは、次の値が出力される。つまり、メモリ1か
らはa2=a32が出力され、メモリ2からはa3= a42が出
力され、メモリ3からはa4=a52が出力され、メモリ4
からはa5=a51が出力される。また第2のメモリ25から
はz=z2が出力される。さらに第3のメモリ27からはa1
= a22が出力される。
【0067】そして、第4のメモリ29およびシフトレ
ジスタ21には演算結果d2が格納される。演算実行後、
第2のメモリ25および第3のメモリ27はアドレスが
ディクリメントされる。また第1のメモリ22のうち、
メモリ1、メモリ2およびメモリ3のアドレスがディク
リメントされる。
【0068】(5サイクル目)行列演算装置20は、d1
の成分を算出するために、(6)式で示す計算式の通
り、d1=1/a11×(z1-a21d2-a31d3-a41d4-a51d5)の計算
を実行する。このとのき、実行前のシフトレジスタ21
の状態と、出力される値、および第1、第2、第3のメ
モリ22、25、27から出力される値は、図8にも示
したように以下のようになる。
【0069】シフトレジスタ21から[REG1,REG2,REG
3,REG4]=[d2, d3, d4, d5]が出力される。第1のメモ
リ22の各メモリ22−1(メモリ1)、22−2(メ
モリ2)、22−3(メモリ3)、22−4(メモリ
4)からは、次の値が出力される。つまり、メモリ1か
らはa2=a21が出力され、メモリ2からはa3= a31が出
力され、メモリ3からはa4=a41が出力され、メモリ4
からはa5=a51が出力される。また第2のメモリ25から
はz=z1が出力される。さらに第3のメモリ27からはa1
=a11が出力される。
【0070】そして、第4のメモリ29には演算結果d1
が格納される。この結果、第4のメモリ29には全ての
演算結果d=[d1, d2, d3, d4, d5]が格納されて、
(6)式の解dが求まる。
【0071】このように、実施の形態に係る行列演算装
置20では、シフトレジスタ21と、N行×N列の既知
の三角行列行列Aの対角要素が格納された第1のメモリ
22と、N行×1列の既知の行列の要素が格納された第
2のメモリ25と、N行×N列の既知の三角行列Aの対
角要素が格納された第3のメモリ27とが設けられてい
ると共に、シフトレジスタ21の複数出力と第1のメモ
リ22に格納された複数の対角要素とをそれぞれ乗算す
る乗算器23−1〜23−N−1と、乗算結果を加算す
る加算器24と、第2のメモリ25に格納された要素か
ら加算結果を減算する減算器26と、減算結果を第3の
メモリ27に格納された対角要素により除算する除算器
28とが設けられ、除算結果をシフトレジスタ21の最
前段に入力する処理を巡回的に行うようになされてい
る。
【0072】この結果、上述したように、第1のメモリ
22、第2のメモリ25、第3のメモリ27の読出しア
ドレスを順次インクリメントまたはディクリメントする
だけで巡回的に前進代入演算および後進代入演算を行っ
て、目的とするN行×N列の行列に関する連立一次方程
式の解dを求めることができる。
【0073】以上の構成によれば、連立一次方程式の解
を求めるために三角分解された三角行列に対する前進代
入および後進代入法を実行する際に、1サイクルで一つ
の要素を要素を算出することが可能となるため、連立一
次方程式の演算を高速に行うことができる行列演算装置
10、20を実現できる。
【0074】また各サイクルでの演算結果をシフトレジ
スタ11、21の最前段に入力するようにし、順次シフ
トレジスタ11、21に格納された複数の演算結果を次
のサイクルで使用しているので、効率の良い演算が可能
となる。
【0075】(応用例)また本発明による行列演算装置
を移動体通信の受信装置に用いると、顕著な効果を得る
ことができる。以下これを具体的に説明する。移動体通
信の受信装置では、マルチパスフェージングによる干
渉、シンボル間干渉および多元接続干渉等の様々な干渉
を除去して復調信号を取り出す方法として、ジョイント
・ディテクション(Joint Detection;以下「JD」とい
う。)を用いた干渉信号除去方法がある。このJDにつ
いては、"Zero Forcing and Minimum Mean-Square-Erro
r Equalization for Multiuser Detection in Code-Div
ision Multiple-Access Channels"(Klein A., Kaleh
G.K., Baier P.W., IEEE Trans. Vehicular Technolog
y, vol.45, pp.276-287, 1996.)により、開示されてい
る。
【0076】図9は、JDを用いた干渉信号除去装置の
構成を示すブロック図である。受信信号は、遅延器31
とマッチトフィルタ(MF♯1)32a〜マッチトフィ
ルタ(MF♯N)32nとに送られる。
【0077】マッチトフィルタ32a〜32nでは、受
信信号のタイムスロットにおけるミッドアンブル部分が
用いられて、それぞれのユーザ毎にチャネル推定がなさ
れる。すなわち、マッチトフィルタ32a〜32nで
は、それぞれユーザ1〜ユーザnに割り当てられた既知
のミッドアンブルと上記受信信号におけるミッドアンブ
ル部分との相関が想定される最大遅延幅の範囲において
とられることにより、各ユーザ毎のチャネル推定値(行
列)が得られる。そしてユーザ1〜ユーザnに対するチ
ャネル推定値は、JD部33に送られる。
【0078】JD部33では、上記各ユーザ毎のチャネ
ル推定値を用いた以下に述べる行列演算が行われる。す
なわち、まず、各ユーザ毎のチャネル推定値と、それぞ
れのユーザに割り当てられた拡散コードとのたたみ込み
演算が行われることにより、各ユーザ毎のたたみ込み演
算結果(行列)が得られる。これにより、各ユーザ毎の
たたみ込み演算結果を規則的に配置した行列A(以下
「システムマトリクス」という。)が得られる。
【0079】さらにシステムマトリクスAを用いて次式
に示す行列乗算を行うことにより、次式に示す行列Bを
得る。
【0080】
【数7】 ただし、AHは、システムマトリクスAの共役転置行列
であり、(AH・A)-1は、AH・Aの逆行列である。
【0081】上記のような行列演算により得られた行列
Bは、乗算部34に送られる。乗算部34では、遅延器
31から送られた受信信号のデータ部分と、JD部33
から送られた行列Bとの間で乗算処理がなされることに
より、干渉が除去された各ユーザ毎のデータが得られ
る。このとき得られた各ユーザ毎のデータは、識別器3
5に送られる。識別器35では、乗算部34から送られ
た各ユーザ毎のデータについての硬判定がなされること
により、復調データが得られる。以上のように、JD処
理を行う干渉信号除去装置30によれば、逆拡散および
RAKE合成を行うことなく、干渉を除去した復調デー
タが得られる。
【0082】ここでJD部33に本発明による行列演算
装置を適用すれば、(7)式の行列演算を高速に行っ
て、前記行列Bを求めることができるようになる。特
に、移動体通信においては、干渉成分の時間変動が大き
いので、本発明による行列演算装置の高速演算効果が顕
著に表れる。また本発明の行列演算装置は、簡易な構成
により実現できるので、一段と小型の携帯型受信装置を
実現できるようになる。
【0083】また図9に示す干渉除去装置30は、マッ
チトフィルタ32a〜32nを有するので、このマッチ
トフィルタ32a〜32nの構成を、本発明の行列演算
装置と共用すれば、構成を一段と簡単化できる。具体的
に説明する。本発明の行列演算装置はシフトレジスタ
と、複数の乗算器と、加算器とを有する構成となってい
る。一方、マッチトフィルタは一般的にシフトレジスタ
と複数の乗算器と加算器とにより構成されている。そこ
で、例えばマッチトフィルタ32a〜32nによるチャ
ネル推定値の演算と、JD部33による行列演算とを時
分割で行うようにすれば、マッチトフィルタ32a〜3
2nを行列演算処理においても有効に利用できるように
なる。この結果、JD部33の構成を簡単化できる。
【0084】またここでは受信信号のチャネル推定用に
設けられたマッチトフィルタとジョイントディテクショ
ン部を組み合わせた場合について述べたが、マッチトフ
ィルタはデータの相関をとるために広く用いられている
ので、チャネル推定用のマッチトフィルタと組み合わせ
る場合に限らず、例えば自動周波数制御処理や同期処理
に用いられているマッチトフィルタと組み合わせるよう
にしてもよい。
【0085】(他の実施の形態)なお上述の実施の形態
では、本発明の行列演算装置を、図1および図2に示す
ような構成としたが、本発明はこれに限らず、要は、三
角行列の対角要素をメモリに記憶させ、シフトレジスタ
の各シフト段からの出力とメモリからの対角要素出力と
を用いた演算を行い、演算結果をシフトレジスタに入力
し、シフトレジスタの各シフト段からの新たなレジスタ
出力とメモリからの対角要素とを用いた演算処理処理
を、巡回的に繰り返すことにより連立一次方程式を解く
ようにすればよい。
【0086】このようにすれば、行列演算に必要な行列
の対角要素がメモリに格納されているので、全ての要素
を並列に演算処理に用いることができ、単に巡回的な演
算処理を施すだけで大規模な連立一次方程式の解を求め
ることができるようになる。
【0087】また上述の実施の形態では、本発明による
行列演算装置を(1)式〜(6)式で示す連立一次方程
式における解を求める際に適用した場合について述べた
が、本発明はこれに限らず、コレスキー分解または近似
コレスキー分解を使って行列演算を行う場合に広く適用
でき、上述の実施の形態と同様の効果を得ることができ
る。
【0088】
【発明の効果】以上説明したように,本発明によれば、
三角行列の対角要素をメモリに記憶させ、シフトレジス
タの各シフト段からの出力とメモリからの対角要素出力
とを用いた演算を行い、演算結果をシフトレジスタに入
力し、シフトレジスタの各シフト段からの新たなレジス
タ出力とメモリからの対角要素とを用いた演算処理を、
巡回的に繰り返すことにより連立一次方程式を解くよう
にしたので、プロセッサ間のデータの授受を無くし、小
さい回路規模で演算を効率良く高速に行うことができる
行列演算装置を実現できる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る行列演算装置の構成
を示すブロック図
【図2】5行×5列の行列に関する連立一次方程式の解
を求める行列演算装置の構成を示すブロック図
【図3】実施の形態による下三角行列のデータ配置を示
す図
【図4】前進代入計算時のシフトレジスタおよびメモリ
についての1サイクル目〜3サイクル目までの状態遷移
を示す図
【図5】前進代入計算時のシフトレジスタおよびメモリ
についての4サイクル目〜演算終了までの状態遷移を示
す図
【図6】実施の形態による上三角行列のデータ配置を示
す図
【図7】後退代入計算時のシフトレジスタおよびメモリ
についての1サイクル目〜3サイクル目までの状態遷移
を示す図
【図8】後退代入計算時のシフトレジスタおよびメモリ
についての4サイクル目〜演算終了までの状態遷移を示
す図
【図9】本発明による行列演算装置が用いられる干渉信
号除去装置の構成を示すブロック図
【符号の説明】
10、20 行列演算装置 11、21 シフトレジスタ 12、22 第1のメモリ 13、23 乗算器 14、24 加算器 15、25 第2のメモリ 16、26 減算器 17、27 第3のメモリ 18、28 除算器 19、29 第4のメモリ 30 干渉信号除去装置 32a〜32n マッチトフィルタ 33 ジョイントディテクション部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 三角行列を用いて連立一次方程式を解く
    行列演算装置であって、シフトレジスタと、前記三角行
    列の対角要素が格納された記憶手段と、前記シフトレジ
    スタの各シフト段からのレジスタ出力と前記記憶手段か
    ら出力される対角要素出力とを用いた演算を行う演算手
    段と、を具備し、前記演算手段により得られた演算結果
    を前記シフトレジスタに入力し、前記シフトレジスタか
    らの新たなレジスタ出力と前記記憶手段から出力される
    対角要素出力とを用いた演算処理を、巡回的に繰り返す
    ことにより前記連立一次方程式を解く、ことを特徴とす
    る行列演算装置。
  2. 【請求項2】 前記三角行列がN行×N列の行列につい
    ての三角行列の場合、 前記シフトレジスタは、(N−1)段のシフト段を有
    し、 前記記憶手段は、前記三角行列の対角要素が格納され演
    算サイクル毎に異なる複数の対角要素を出力する第1の
    メモリと、N行×1列の既知の行列の要素が格納され演
    算サイクル毎に1つの行列要素を出力する第2のメモリ
    と、前記三角行列の対角要素が格納され演算サイクル毎
    に1つの対角要素を出力する第3のメモリとを有し、 前記演算手段は、前記複数のレジスタ出力と前記第1の
    メモリからの複数の対角要素出力とを乗算する複数の乗
    算器と、これらの乗算器による乗算結果を加算する加算
    器と、この加算器による加算結果により前記第2のメモ
    リからの行列要素出力を減算する減算器と、この減算器
    による減算結果を前記第3のメモリからの対角要素出力
    で除算する除算器とを有し、 前記除算器から順次出力される除算結果を前記シフトレ
    ジスタに入力すると共に、前記除算器から順次出力され
    る除算結果を前記連立一次方程式の解とする、 ことを特徴とする請求項1に記載の行列演算装置。
  3. 【請求項3】 前進代入および後進代入による計算を順
    に行って前記連立一次方程式の解を求める場合、前進代
    入により求めた解を前記第2のメモリの行列要素として
    格納し、後進代入時には、演算サイクル毎に、前記第
    1、第2及び第3のメモリに格納された行列要素を前進
    代入時とは逆の順に読み出すようにすることを特徴とす
    る請求項2に記載の行列演算装置。
  4. 【請求項4】 請求項1から請求項3のいずれかに記載
    の行列演算装置を具備することを特徴とする移動体通信
    システムの干渉除去装置。
  5. 【請求項5】 データの相関を取るために設けられたマ
    ッチトフィルタを構成するシフトレジスタ、複数の乗算
    器および加算器を、前記行列演算装置のシフトレジス
    タ、複数の乗算器および加算器として共用する、ことを
    特徴とする請求項4に記載の移動体通信システムの干渉
    除去装置。
JP2002041259A 2002-02-19 2002-02-19 行列演算装置 Withdrawn JP2003242133A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002041259A JP2003242133A (ja) 2002-02-19 2002-02-19 行列演算装置
PCT/JP2003/001752 WO2003077150A1 (fr) 2002-02-19 2003-02-19 Dispositif de calcul de matrice
US10/485,486 US20040181565A1 (en) 2002-02-19 2003-02-19 Matrix calculation device
AU2003211472A AU2003211472A1 (en) 2002-02-19 2003-02-19 Matrix calculation device
EP20030705301 EP1411441A1 (en) 2002-02-19 2003-02-19 Matrix calculation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002041259A JP2003242133A (ja) 2002-02-19 2002-02-19 行列演算装置

Publications (1)

Publication Number Publication Date
JP2003242133A true JP2003242133A (ja) 2003-08-29

Family

ID=27781732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002041259A Withdrawn JP2003242133A (ja) 2002-02-19 2002-02-19 行列演算装置

Country Status (5)

Country Link
US (1) US20040181565A1 (ja)
EP (1) EP1411441A1 (ja)
JP (1) JP2003242133A (ja)
AU (1) AU2003211472A1 (ja)
WO (1) WO2003077150A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040122887A1 (en) * 2002-12-20 2004-06-24 Macy William W. Efficient multiplication of small matrices using SIMD registers
US7359929B2 (en) * 2003-11-12 2008-04-15 City University Of Hong Kong Fast solution of integral equations representing wave propagation
WO2007066445A1 (ja) * 2005-12-05 2007-06-14 Kyoto University 特異値分解装置、及び特異値分解方法
US7849126B1 (en) * 2006-03-06 2010-12-07 Intellectual Property Systems, LLC System and method for fast matrix factorization
US8626815B1 (en) * 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621209A (en) * 1969-12-15 1971-11-16 Bell Telephone Labor Inc Machine-implemented process for insuring the numerical stability of gaussian elimination
JPS54132144A (en) * 1978-04-05 1979-10-13 Nippon Telegr & Teleph Corp <Ntt> Multiple process system
JPS61241879A (ja) * 1985-04-18 1986-10-28 Fanuc Ltd 空間積和演算装置
US4823299A (en) * 1987-04-01 1989-04-18 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systolic VLSI array for implementing the Kalman filter algorithm
FR2693062B1 (fr) * 1992-06-26 1994-09-23 France Telecom Procédé et dispositif égaliseur à retour de décisions pour la transmission par blocs de symboles d'information.
JPH0830583A (ja) * 1994-07-13 1996-02-02 Fujitsu Ltd 連立方程式の求解装置
JPH09212489A (ja) * 1996-01-31 1997-08-15 Fujitsu Ltd 対称行列の固有値問題を解く並列処理装置および方法
FR2768273B1 (fr) * 1997-09-10 1999-12-03 Ge Medical Syst Sa Dispositif de conversion de l'energie a butee auto-adaptive et son procede de fonctionnement
US6675187B1 (en) * 1999-06-10 2004-01-06 Agere Systems Inc. Pipelined linear array of processor elements for performing matrix computations
US6694343B2 (en) * 2001-02-08 2004-02-17 International Business Machines Corporation Method for solving a large sparse triangular system of linear equations
JP2003122736A (ja) * 2001-10-11 2003-04-25 Matsushita Electric Ind Co Ltd 行列演算装置
US7065545B2 (en) * 2002-05-07 2006-06-20 Quintero-De-La-Garza Raul Gera Computer methods of vector operation for reducing computation time

Also Published As

Publication number Publication date
WO2003077150A1 (fr) 2003-09-18
US20040181565A1 (en) 2004-09-16
EP1411441A1 (en) 2004-04-21
AU2003211472A1 (en) 2003-09-22

Similar Documents

Publication Publication Date Title
JP4515252B2 (ja) ミッドアンブル除去の方法及び装置
JPH0661792A (ja) デジタル・フィルタ
CN107637036B (zh) 一种降低波峰因子的方法、发射器及用户设备
CN101149730A (zh) 使用主要因素算法的最佳离散傅利叶转换方法及装置
JP5032506B2 (ja) 積和演算を実行する方法及び装置
US6385635B1 (en) Product sum operation device capable of carrying out fast operation
Rajagopal et al. A programmable baseband processor design for software defined radios
JP2003242133A (ja) 行列演算装置
JP4213747B2 (ja) 複雑度を低減したスライディングウィンドウベースの等化器
JP2003122736A (ja) 行列演算装置
WO2004079585A1 (ja) 行列演算装置
KR19990024971A (ko) 모듈러 승산장치
JP2002077104A (ja) スペクトル拡散受信装置
US20030023650A1 (en) Adaptive filter for communication system
JP4141550B2 (ja) マルチユーザ受信機
JP3684314B2 (ja) 複素乗算器および複素相関器
JP4167112B2 (ja) スペクトル拡散によって送信されたデータの検出のための方法および装置
Kidiyarova-Shevchenko et al. Superconducting multiuser detector for 3G base stations
JP2002009672A (ja) Cdmaシステムの時間有効な実時間相関器のためのセルサイズ増大
JP2002111545A (ja) 干渉信号量推定回路および無線通信装置
US7688919B1 (en) Parallel samples, parallel coefficients, time division multiplexing correlator architecture
JP2004135099A (ja) マルチユーザ受信機ならびに該マルチユーザ受信機を有する無線基地局装置および移動機
van der Veen et al. Computational structures for blind long-code WCDMA receivers
JP2001036501A (ja) 干渉キャンセラ装置及びパスタイミング検出方法

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20040119