(57)【要約】【課題】小型の相関演算装置を提供することを課題とする。【解決手段】入力信号内のＮ（Ｎは２以上の整数）個の入力信号のうちのいずれか１個とレプリカ信号内のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力し、その次のサイクルで入力信号内の次のＮ個の入力信号のうちのいずれか１個とレプリカ信号内の次のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力する処理を繰り返すＮ×Ｎ個の積和演算器（Ｅ００〜Ｅ１１）と、レプリカ信号に対して入力信号をずらす量が同じもの同士の積和演算器が出力する同じサイクル又は異なるサイクルにおける累積加算値を加算することにより、レプリカ信号に対する入力信号のずれ量毎の入力信号及びレプリカ信号の相関値を出力する加算器とを有する相関演算装置が提供される。【選択図】図７
2011015159.tif 000002
【特許請求の範囲】
【請求項１】
入力信号内のＮ（Ｎは２以上の整数）個の入力信号のうちのいずれか１個とレプリカ信号内のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力し、その次のサイクルで入力信号内の次のＮ個の入力信号のうちのいずれか１個とレプリカ信号内の次のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力する処理を繰り返すＮ×Ｎ個の積和演算器と、
前記レプリカ信号に対して前記入力信号をずらす量が同じもの同士の前記積和演算器が出力する同じサイクル又は異なるサイクルにおける累積加算値を加算することにより、前記レプリカ信号に対する前記入力信号のずれ量毎の前記入力信号及び前記レプリカ信号の相関値を出力する加算器と
を有することを特徴とする相関演算装置。
【請求項２】
前記積和演算器は、まず、第１のスキャンでは、前記レプリカ信号に対する前記入力信号のずれ量を０にして前記Ｎ個の入力信号及び前記Ｎ個のレプリカ信号毎の演算を繰り返し、次に、第２のスキャンでは、前記レプリカ信号に対する前記入力信号のずれ量をＮにして前記Ｎ個の入力信号及び前記Ｎ個のレプリカ信号毎の演算を繰り返すことを特徴とする請求項１記載の相関演算装置。
【請求項３】
前記入力信号及び前記レプリカ信号は複素信号であり、
前記積和演算器は、
前記入力信号及び前記レプリカ信号を複素乗算する複素乗算器と、
前記複素乗算器により複素乗算された信号を累積複素加算する複素加算器と
を有することを特徴とする請求項１又は２記載の相関演算装置。
【請求項４】
前記Ｎは２であり、
前記４個の積和演算器は第１〜第４の積和演算器であり、
前記入力信号の先頭の４個の入力信号は第１〜第４の入力信号であり、
前記レプリカ信号の先頭の４個のレプリカ信号は第１〜第４のレプリカ信号であり、
第１のサイクルでは、前記第１の積和演算器は前記第１の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第２の積和演算器は前記第１の入力信号及び前記第２のレプリカ信号の積和演算を行い、前記第３の積和演算器は前記第２の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第４の積和演算器は前記第２の入力信号及び前記第２のレプリカ信号の積和演算を行い、
第２のサイクルでは、前記第１の積和演算器は前記第３の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第２の積和演算器は前記第３の入力信号及び前記第４のレプリカ信号の積和演算を行い、前記第３の積和演算器は前記第４の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第４の積和演算器は前記第４の入力信号及び前記第４のレプリカ信号の積和演算を行うことを特徴とする請求項１〜３のいずれか１項に記載の相関演算装置。
【請求項５】
前記Ｎは４であり、
前記１６個の積和演算器は第１〜第１６の積和演算器であり、
前記入力信号の先頭の８個の入力信号は第１〜第８の入力信号であり、
前記レプリカ信号の先頭の８個のレプリカ信号は第１〜第８のレプリカ信号であり、
第１のサイクルでは、前記第１の積和演算器は前記第１の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第２の積和演算器は前記第１の入力信号及び前記第２のレプリカ信号の積和演算を行い、前記第３の積和演算器は前記第１の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第４の積和演算器は前記第１の入力信号及び前記第４のレプリカ信号の積和演算を行い、前記第５の積和演算器は前記第２の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第６の積和演算器は前記第２の入力信号及び前記第２のレプリカ信号の積和演算を行い、前記第７の積和演算器は前記第２の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第８の積和演算器は前記第２の入力信号及び前記第４のレプリカ信号の積和演算を行い、前記第９の積和演算器は前記第３の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第１０の積和演算器は前記第３の入力信号及び前記第２のレプリカ信号の積和演算を行い、前記第１１の積和演算器は前記第３の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第１２の積和演算器は前記第３の入力信号及び前記第４のレプリカ信号の積和演算を行い、前記第１３の積和演算器は前記第４の入力信号及び前記第１のレプリカ信号の積和演算を行い、前記第１４の積和演算器は前記第４の入力信号及び前記第２のレプリカ信号の積和演算を行い、前記第１５の積和演算器は前記第４の入力信号及び前記第３のレプリカ信号の積和演算を行い、前記第１６の積和演算器は前記第４の入力信号及び前記第４のレプリカ信号の積和演算を行い、
第２のサイクルでは、前記第１の積和演算器は前記第５の入力信号及び前記第５のレプリカ信号の積和演算を行い、前記第２の積和演算器は前記第５の入力信号及び前記第６のレプリカ信号の積和演算を行い、前記第３の積和演算器は前記第５の入力信号及び前記第７のレプリカ信号の積和演算を行い、前記第４の積和演算器は前記第５の入力信号及び前記第８のレプリカ信号の積和演算を行い、前記第５の積和演算器は前記第６の入力信号及び前記第５のレプリカ信号の積和演算を行い、前記第６の積和演算器は前記第６の入力信号及び前記第６のレプリカ信号の積和演算を行い、前記第７の積和演算器は前記第６の入力信号及び前記第７のレプリカ信号の積和演算を行い、前記第８の積和演算器は前記第６の入力信号及び前記第８のレプリカ信号の積和演算を行い、前記第９の積和演算器は前記第７の入力信号及び前記第５のレプリカ信号の積和演算を行い、前記第１０の積和演算器は前記第７の入力信号及び前記第６のレプリカ信号の積和演算を行い、前記第１１の積和演算器は前記第７の入力信号及び前記第７のレプリカ信号の積和演算を行い、前記第１２の積和演算器は前記第７の入力信号及び前記第８のレプリカ信号の積和演算を行い、前記第１３の積和演算器は前記第８の入力信号及び前記第５のレプリカ信号の積和演算を行い、前記第１４の積和演算器は前記第８の入力信号及び前記第６のレプリカ信号の積和演算を行い、前記第１５の積和演算器は前記第８の入力信号及び前記第７のレプリカ信号の積和演算を行い、前記第１６の積和演算器は前記第８の入力信号及び前記第８のレプリカ信号の積和演算を行うことを特徴とする請求項１〜３のいずれか１項に記載の相関演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相関演算装置に関する。
【背景技術】
【０００２】
デジタル通信において受信信号の開始位置を検出する処理として、相関処理が行われる。送信側では、送信信号の特定の箇所に、あらかじめ決められた信号列を埋め込んでいる。受信側では、受信信号と信号列の相関処理を行うことで、信号列の位置を特定し、受信信号の開始位置を知ることができる。
【０００３】
図１は、受信信号のタイミング検出を示す図である。無線通信処理のセルサーチと呼ばれる処理では、送受信装置の双方にとって既知の信号列（レプリカ）を探すことで信号の開始位置を検出する。受信信号（入力信号）は、伝播経路上のノイズ等により変化している。そのため、簡単な一致比較では既知の信号列（レプリカ）を検出することはできない。一般には、入力信号とレプリカで位置をずらしながら相関演算を行い、最も相関値の高い位置のタイミングｔ１に既知の信号列があると判定する。
【０００４】
相関値Ｐ（ｔ）は、次式のように、入力信号Ｄ（ｕ＋ｔ）及びレプリカＲ（ｕ）の複素乗算により求められる。
Ｐ（ｔ）＝ΣＤ（ｕ＋ｔ）・Ｒ（ｕ）
【０００５】
入力信号及びレプリカは、複素信号であるため、入力信号及びレプリカの各ベクトルの複素乗算値が大きければ、相関値も大きくなる。上記の相関値のうち最大となるｔの位置が既知の信号列（レプリカ）の位置になる。
【０００６】
図２は、タイミング検出装置の概略図である。タイミング検出装置は、メモリ２０２、相関演算器２０６及び最大値選択器２０７を有する。メモリ２０２は、入力信号２０１を入力し、入力信号２０３及びレプリカ２０４を記憶する。相関演算器２０６は、メモリ２０２内の入力信号２０３及びレプリカ２０４の相関演算を行い、相関演算結果（相関値）２０５をメモリ２０２に記録する。最大値選択器２０７は、メモリ２０２内の相関演算結果２０５のうちの最大値のタイミング情報を選択し、出力する。
【０００７】
図４は相関演算器（マッチドフィルタ）の構成例を示す図であり、図３は図４のマッチドフィルタの動作を示す図である。マッチドフィルタは、入力信号を記憶するためのフリップフロップ４０１と、レプリカを記憶するためのフリップフロップ４０２と、乗算器４０３と、加算器４０４と有する。まず、フリップフロップ４０２にレプリカをセットする。次に、入力信号を１データずつフリップフロップ４０１のパイプラインに入力する。１サイクル毎に異なったタイミングで入力信号とレプリカの相関処理を行うことができる。例えば、レプリカの長さが２５６だとすると、フリップフロップ４０２及び乗算器４０３も２５６個必要となり、非常に巨大な回路となる。このマッチドフィルタは、速度が高速だが、回路面積が大きいことが問題である。
【０００８】
図６は分割型マッチドフィルタの構成例を示す図であり、図５は図６の分割型マッチドフィルタの動作を示す図である。分割型マッチドフィルタは、入力信号を記憶するためのフリップフロップ６０１と、レプリカを記憶するためのフリップフロップ６０２と、乗算器６０３と、加算器６０４とを有する。分割型マッチドフィルタは、ある程度速度を犠牲にして面積を削減するため、マッチドフィルタの長さを分割して相関演算を複数回実行する。この方法だと、レプリカを分割して相関演算を行うため、分割した数だけ入力信号をフリップフロップ６０１のパイプラインに流す必要がある。
【０００９】
また、位相シフト機能を具備した拡散信号発生器と、前記拡散信号発生器の出力と入力信号とを掛け合わせる乗算器と、複数の信号に亘って同相加算を行うために所定回数分の相関結果を蓄えておくリングバッファと、加算器と、を備えるＣＤＭＡ用セルサーチ回路が知られている（例えば、特開平１０−１６４０１２号公報参照）。
【００１０】
また、同期を捕捉するマッチドフィルタを用い、入力信号の上位１若しくは複数の少数ビットから同期を捕捉するサーチャと、同期を捕捉すると、当該入力信号の逆拡散を行って復調するスライディングコリレータとを有することを特徴とする逆拡散回路が知られている（例えば、特開平１１−２９８３７５号公報参照）。
【００１１】
また、符号多重された複数の無線周波数信号のそれぞれに起因する受信データのうちの一つと複数の受信データのうちの一つと同一のコピーデータとの一方を選択して選択データを保持出力するとともに、該選択データとレプリカコードとを乗算してその乗算結果を加算出力する複数の単位マッチドフィルタを有するＣＤＭＡ方式の受信装置が知られている（例えば、特開２００２−２０４１８４号公報参照）。
【００１２】
また、各セルに固有のロングコードと各通信チャネルに対応したショートコードとからなる拡散符号系列を用いるＤＳ−ＣＤＭＡ基地局間非同期セルラ方式における初期同期方法が知られている（例えば、特開平１０−１２６３８０号公報参照）。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１０−１６４０１２号公報
【特許文献２】特開平１１−２９８３７５号公報
【特許文献３】特開２００２−２０４１８４号公報
【特許文献４】特開平１０−１２６３８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
分割型マッチドフィルタのように、回路規模を縮小して相関演算器を実現する場合、中間データを格納するメモリが必要となる。例えば、マッチドフィルタを分割した場合、分割した数だけ入力信号をＮ個流す必要がある。分割したデータを積算する必要があるため、少なくとも前回までのＮ個の積算値と今回のＮ個の相関値と合わせて２Ｎ個の中間データ用のメモリが必要となる。
【００１５】
本発明の目的は、小型の相関演算装置を提供することである。
【課題を解決するための手段】
【００１６】
相関演算装置は、入力信号内のＮ（Ｎは２以上の整数）個の入力信号のうちのいずれか１個とレプリカ信号内のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力し、その次のサイクルで入力信号内の次のＮ個の入力信号のうちのいずれか１個とレプリカ信号内の次のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力する処理を繰り返すＮ×Ｎ個の積和演算器と、前記レプリカ信号に対して前記入力信号をずらす量が同じもの同士の前記積和演算器が出力する同じサイクル又は異なるサイクルにおける累積加算値を加算することにより、前記レプリカ信号に対する前記入力信号のずれ量毎の前記入力信号及び前記レプリカ信号の相関値を出力する加算器とを有することを特徴とする。
【発明の効果】
【００１７】
Ｎ×Ｎ個の積和演算器を用いて積和演算を繰り返すことにより相関値を出力することができるので、積和演算器の数が少なくなり、小型化することができる。また、積和演算器が累積加算するため、中間データを記憶するためのメモリのサイズを小さくすることができる。
【図面の簡単な説明】
【００１８】
【図１】受信信号のタイミング検出を示す図である。
【図２】タイミング検出装置の概略図である。
【図３】図４のマッチドフィルタの動作を示す図である。
【図４】相関演算器（マッチドフィルタ）の構成例を示す図である。
【図５】図６の分割型マッチドフィルタの動作を示す図である。
【図６】分割型マッチドフィルタの構成例を示す図である。
【図７】本発明の第１の実施形態による相関演算装置内の積和演算器群の構成例を示す図である。
【図８】本発明の第２の実施形態による相関演算装置内の積和演算器群の構成例を示す図である。
【図９】図７の積和演算器群を２次元行列に並べ替えた積和演算器群を示す図である。
【図１０】図８の積和演算器群を２次元行列に並べ替えた積和演算器群を示す図である。
【図１１】図９の積和演算器群を用いた相関演算方法を示す図である。
【図１２】図９の積和演算器群による積和演算方法を示す図である。
【図１３】図９の積和演算器群のサイクル毎の処理を示す図である。
【図１４】図９の積和演算器群を用いた相関演算方法を示す図である。
【図１５】図１０の積和演算器群を用いた相関演算方法を示す図である。
【図１６】図１０の積和演算器群による積和演算方法を示す図である。
【図１７】図１０の積和演算器群のサイクル毎の処理を示す図である。
【図１８】図１０の積和演算器群を用いた相関演算方法を示す図である。
【図１９】相関演算装置の相関演算方法を示すフローチャートである。
【図２０】入力信号及びレプリカの例を示す図である。
【図２１】積和演算器群の構成例を示す図である。
【図２２】中間データメモリを示す図である。
【図２３】相関演算装置の相関演算方法を示すフローチャートである。
【図２４】積和演算器群の構成例を示す図である。
【図２５】中間データメモリを示す図である。
【図２６】積和演算器の構成例を示す図である。
【図２７】相関演算装置の構成例を示す図である。
【発明を実施するための形態】
【００１９】
（第１の実施形態）
図７は、本発明の第１の実施形態による相関演算装置内の積和演算器群の構成例を示す図である。積和演算器群は、Ｎ×Ｎ個（例えば４個）の積和演算器（ＭＡＣ）Ｅ００，Ｅ０１，Ｅ１０，Ｅ１１を有する。ここで、Ｎは２以上の整数である。入力信号（受信信号）ｄ０は１番目の複素数の入力信号、入力信号ｄ１は２番目の複素数の入力信号である。レプリカ（信号）ｒ０は１番目の複素数のレプリカ、レプリカｒ１は２番目の複素数のレプリカである。積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０の積和演算を行い、演算結果を出力する。積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ１の積和演算を行い、演算結果を出力する。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１の積和演算を行い、演算結果を出力する。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０の積和演算を行い、演算結果を出力する。積和演算器Ｅ００及びＥ０１には同一の入力信号ｄ０が入力され、積和演算器Ｅ１０及びＥ１１には同一の入力信号ｄ１が入力される。また、積和演算器Ｅ００及びＥ１１には同一のレプリカｒ０が入力され、積和演算器Ｅ０１及びＥ１０には同一のレプリカｒ１が入力される。
【００２０】
図９は、図７の積和演算器群を２次元行列に並べ替えた積和演算器群を示す図であり、図７の積和演算器群と同じ構成を有する。２次元行列の正方形上に積和演算器Ｅ００〜Ｅ１１を並べると、入力信号ｄ０，ｄ１及びレプリカｒ０，ｒ１の配線関係が比較的わかりやすい。
【００２１】
図１１は、図９の積和演算器群を用いた相関演算方法を示す図である。相関演算装置は、Ｎ個の入力信号とＫ個のレプリカとの相関演算を行う。「０」のタイミングでは、入力信号に対してレプリカのずらす量を０にして、入力信号とレプリカとの積和演算によりＫ個の積和演算値を求め、Ｋ個の積和演算値を加算することにより相関値を求める。また、「−１」のタイミングでは、入力信号に対してレプリカのずらす量を−１にして、入力信号とレプリカとの積和演算によりＫ個の積和演算値を求める。また、「＋１」のタイミングでは、入力信号に対してレプリカのずらす量を＋１にして、入力信号とレプリカとの積和演算によりＫ個の積和演算値を求め、Ｋ個の積和演算値を加算することにより相関値を求める。以上のように、入力信号とレプリカとのタイミングをずらしながら、入力信号とレプリカとの相関演算を行う。各タイミングの相関値を求め、その中で最大の相関値になるタイミングが入力信号内のレプリカが存在する位置であり、入力信号の先頭位置を認識することができる。
【００２２】
ＷＣＤＭＡ（Wideband Code Division Multiple Access）の無線通信方式では、入力信号のデータ数Ｎが６４０であり、レプリカのデータ数Ｋが２５６である。また、ＬＴＥ（Long Term Evolution）の無線通信方式では、入力信号のデータ数Ｎが２０４８×９０であり、レプリカのデータ数Ｋが２０４８である。
【００２３】
図１２は、図９の積和演算器群による積和演算方法を示す図である。４個の積和演算器Ａ１〜Ａ４は、図９の４個の積和演算器Ｅ００〜Ｅ１１に対応する。積和演算器Ａ１は、図１１の「０」のタイミングのレプリカｒ０の位置の演算に対応し、入力信号ｄ０及びレプリカｒ０の積和演算を行う。積和演算器Ａ２は、図１１の「０」のタイミングのレプリカｒ１の位置の演算に対応し、入力信号ｄ１及びレプリカｒ１の積和演算を行う。積和演算器Ａ３は、図１１の「−１」のタイミングのレプリカｒ１の位置の演算に対応し、入力信号ｄ０及びレプリカｒ１の積和演算を行う。積和演算器Ａ４は、図１１の「＋１」のタイミングのレプリカｒ０の位置の演算に対応し、入力信号ｄ１及びレプリカｒ０の積和演算を行う。平行四辺形を形成する４個の積和演算器Ａ１〜Ａ４は、図１１の「−１」、「０」及び「＋１」のタイミングから抽出したものに対応する。
【００２４】
図１３は、図９の積和演算器群のサイクル毎の処理を示す図である。第１のサイクルでは、図１２と同じく、積和演算器Ａ１は入力信号ｄ０及びレプリカｒ０の複素乗算を行い、積和演算器Ａ２は入力信号ｄ１及びレプリカｒ１の複素乗算を行い、積和演算器Ａ３は入力信号ｄ０及びレプリカｒ１の複素乗算を行い、積和演算器Ａ４は入力信号ｄ１及びレプリカｒ０の複素乗算を行う。
【００２５】
次に、第２のサイクルでは、積和演算器Ａ１は入力信号ｄ２及びレプリカｒ２の複素乗算を行い、積和演算器Ａ２は入力信号ｄ３及びレプリカｒ３の複素乗算を行い、積和演算器Ａ３は入力信号ｄ２及びレプリカｒ３の複素乗算を行い、積和演算器Ａ４は入力信号ｄ３及びレプリカｒ２の複素乗算を行う。そして、積和演算器Ａ１〜Ａ４は、それぞれ、第１のサイクルの複素乗算値と第２のサイクルの複素乗算値とを累積複素加算する。
【００２６】
次に、第３のサイクルでは、積和演算器Ａ１は入力信号ｄ４及びレプリカｒ４の複素乗算を行い、積和演算器Ａ２は入力信号ｄ５及びレプリカｒ５の複素乗算を行い、積和演算器Ａ３は入力信号ｄ４及びレプリカｒ５の複素乗算を行い、積和演算器Ａ４は入力信号ｄ５及びレプリカｒ４の複素乗算を行う。そして、積和演算器Ａ１〜Ａ４は、それぞれ、第１のサイクル〜第３のサイクルの複素乗算値を累積複素加算する。
【００２７】
次に、第４のサイクルでは、積和演算器Ａ１は入力信号ｄ６及びレプリカｒ６の複素乗算を行い、積和演算器Ａ２は入力信号ｄ７及びレプリカｒ７の複素乗算を行い、積和演算器Ａ３は入力信号ｄ６及びレプリカｒ７の複素乗算を行い、積和演算器Ａ４は入力信号ｄ７及びレプリカｒ６の複素乗算を行う。そして、積和演算器Ａ１〜Ａ４は、それぞれ、第１のサイクル〜第４のサイクルの複素乗算値を累積複素加算する。
【００２８】
以降、同様に、積和演算器Ａ１〜Ａ４は、入力信号及びレプリカをサイクル毎に２個ずつ順に演算する。積和演算器Ａ１〜Ａ４へ入力信号とレプリカを連続的に入力すると、演算結果は図１１の−１，０，＋１のタイミングの一部が積算された結果となる。この値は、積和演算器Ａ１〜Ａ４の中のアキュムレータ２６１３（図２６）に格納されている。
【００２９】
図２６は、積和演算器Ａ１〜Ａ４の構成例を示す図である。積和演算器Ａ１〜Ａ４は、複素乗算器２６１１、複素加算器２６１２及びアキュムレータ２６１３を有する。複素乗算器２６１１は、乗算器２６０１〜２６０４、減算器２６０５及び加算器２６０６を有する。複素加算器２６１２は、加算器２６０７及び２６０８を有する。アキュムレータ２６１３は、アキュムレータ２６０９及び２６１０を有する。積和演算器Ａ１〜Ａ４は、信号Ａ及びＢを入力し、信号ａｃｃを出力する。例えば、信号Ａは入力信号、信号Ｂはレプリカである。信号Ａは実数部信号Ｒｅ（Ａ）及び虚数部信号Ｉｍ（Ａ）を有し、信号Ｂは実数部信号Ｒｅ（Ｂ）及び虚数部信号Ｉｍ（Ｂ）を有する。
【００３０】
乗算器２６０１は、信号Ａの実数部信号Ｒｅ（Ａ）及び信号Ｂの実数部信号Ｒｅ（Ｂ）の乗算を行い、乗算値を出力する。乗算器２６０２は、信号Ａの虚数部信号Ｉｍ（Ａ）及び信号Ｂの虚数部信号Ｉｍ（Ｂ）の乗算を行い、乗算値を出力する。乗算器２６０３は、信号Ａの実数部信号Ｒｅ（Ａ）及び信号Ｂの虚数部信号Ｉｍ（Ｂ）の乗算を行い、乗算値を出力する。乗算器２６０４は、信号Ａの虚数部信号Ｉｍ（Ａ）及び信号Ｂの実数部信号Ｒｅ（Ｂ）の乗算を行い、乗算値を出力する。
【００３１】
減算器２６０５は、乗算器２６０１の乗算値及び乗算器２６０２の乗算値の減算を行い、減算値を出力する。加算器２６０６は、乗算器２６０３の乗算値及び乗算器２６０４の乗算値の加算を行い、加算値を出力する。
【００３２】
加算器２６０７は、減算器２６０５の減算値及びアキュムレータ２６０９の記憶値Ｒｅ（ａｃｃ）の加算を行い、累積加算を行う。アキュムレータ２６０９は、加算器２６０７の加算値Ｒｅ（ａｃｃ）を記憶し、加算器２６０７に出力する。加算器２６０８は、加算器２６０６の加算値及びアキュムレータ２６１０の記憶値Ｉｍ（ａｃｃ）の加算を行い、累積加算を行う。アキュムレータ２６１０は、加算器２６０８の加算値Ｉｍ（ａｃｃ）を記憶し、加算器２６０８に出力する。出力信号ａｃｃは、アキュムレータ２６０９に記憶されている実数部信号Ｒｅ（ａｃｃ）及びアキュムレータ２６１０に記憶されている虚数部信号Ｉｍ（ａｃｃ）を含み、出力される。
【００３３】
以上のように、積和演算器は、入力信号及びレプリカを複素乗算する複素乗算器２６１１と、複素乗算器２６１１により複素乗算された信号を累積複素加算する複素加算器２６１２とを有する。
【００３４】
図１４は、図９の積和演算器群を用いた相関演算方法を示す図である。第１のスキャンでは、図１３に示したように、入力信号（０，１），（２，３），…，（Ｋ−２，Ｋ−１）、レプリカ（０，１），（２，３），…，（Ｋ−２，Ｋ−１）を順に入力していくと、演算結果領域１４０１がアキュムレータ２６１３に格納される。そのアキュムレータ２６１３の値を読み出し、アキュムレータ２６１３をクリアする。
【００３５】
次に、第２のスキャンでは、入力信号（２，３），（４，５），…，（Ｋ，Ｋ＋１）、レプリカ（０，１），（２，３），…，（Ｋ−２，Ｋ−１）を順に入力していくと、演算結果領域１４０２がアキュムレータ２６１３に格納される。このように入力信号を２個ずつずらして入力していくことにより、相関演算したい値の全体を得ることができる。アキュムレータ２６１３の値はそれぞれのタイミングの奇数、偶数がそれぞれ積算された値となっているので、各タイミングで奇数と偶数の結果をすべて加算することにより相関値を得ることができる。
【００３６】
「０」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ａ１のアキュムレータ２６１３の累積加算値及び積和演算器Ａ２のアキュムレータ２６１３の累積加算値を加算することにより得られる。
【００３７】
「＋２」のタイミングの相関値は、第２のスキャンで得られた積和演算器Ａ１のアキュムレータ２６１３の累積加算値及び積和演算器Ａ２のアキュムレータ２６１３の累積加算値を加算することにより得られる。
【００３８】
また、「＋１」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ａ４のアキュムレータ２６１３の累積加算値及び第２のスキャンで得られた積和演算器Ａ３のアキュムレータ２６１３の累積加算値を加算することにより得られる。
【００３９】
各タイミングの相関値を求める場合、「０」及び「＋２」のタイミングの相関値は１回のスキャンで得られ、「＋１」のタイミングの相関値は２回のスキャンで得られる。このように、中間データとして、２回のスキャン分のメモリがあればよいので、２×４＝８個のデータ分の中間メモリがあればよい。例えば、第１の中間データメモリ２７０６（図２７）は第１のスキャンによる積和演算器Ａ１〜Ａ４のアキュムレータ２６１３の４個の累積加算値を中間データとして記憶し、第２の中間データメモリ２７０７（図２７）は第２のスキャンによる積和演算器Ａ１〜Ａ４のアキュムレータ２６１３の４個の累積加算値を中間データとして記憶する。「＋１」のタイミングの相関値は、上記のように、第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７の中間データを加算することにより得られる。
【００４０】
図２７は、本実施形態による相関演算装置の構成例を示す図である。相関演算装置は、メモリ２７０２，２７０３、積和演算器群２７０４、セレクタ２７０５、中間データメモリ２７０６，２７０７、加算器２７０８、二乗ノルム演算器２７０９及びメモリ２７１０を有する。メモリ２７０２は、複素数の入力信号２７０１を入力して記憶する。メモリ２７０３は、複素数のレプリカを記憶する。積和演算器群２７０４は、図９の積和演算器群に対応し、Ｎ×Ｎ個の積和演算器を有し、Ｎ×Ｎ個の累積加算値を出力する。図９の積和演算器群はＮが２の場合の例であり、４個の積和演算器を有し、４個の累積加算値を出力する。積和演算器群２７０４は、上記のように、メモリ２７０２及び２７０３から入力信号及びレプリカを２個ずつ入力し、積和演算する。セレクタ２７０５は、積和演算器群２７０４の４個の累積加算値を第１の中間データメモリ２７０６又は第２の中間データメモリ２７０７に記憶させる。例えば、第１の中間データメモリ２７０６には第１のスキャンの４個の累積加算値が記憶され、第２の中間データメモリ２７０７には第２のスキャンの４個の累積加算値が記憶される。加算器２７０８は、上記のように、中間データメモリ２７０６及び／又は２７０７の累積加算値を加算する。二乗ノルム演算器２７０９は、加算器２７０８の加算値の二乗ノルムを演算し、メモリ２７１０に相関値として記憶させる。その後、図２と同様に、最大値選択器２０７は、メモリ２７１０内の相関値のうちの最大値のタイミング情報を選択し、出力する。そのタイミングが入力信号内のレプリカの位置であり、入力信号の先頭位置を示す。
【００４１】
図２０は、入力信号及びレプリカの例を示す図である。図２７のメモリ２７０２はＮ個の入力信号を記憶し、図２７のメモリ２７０３はＫ個のレプリカを記憶する。
【００４２】
図２１は、積和演算器群の構成例を示す図であり、図９の積和演算器群と同じ構成を有する。積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿０１を出力する。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿１０を出力する。積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿００を出力する。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿１１を出力する。
【００４３】
図２２は、中間データメモリを示す図である。第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７は、図２７の第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７に対応し、それぞれ４個の累積加算値ａｃｃ＿００〜ａｃｃ＿１１を記憶する領域を有する。
【００４４】
図１９は、相関演算装置の相関演算方法を示すフローチャートである。ループ１９１２は、始端１９０１及び終端１９０８を有し、変数ｊを０からＮまで２ずつ増やすループである。ループ１９１１は、始端１９０２及び終端１９０５を有し、変数ｉを０からＫまで２ずつ増やすループである。
【００４５】
ステップ１９０３では、積和演算器Ｅ００〜Ｅ１１は入力信号ｄ０，ｄ１及びレプリカｒ０，ｒ１を入力する。入力信号ｄ０は、ｊ＋ｉ番目の入力信号である。入力信号ｄ１は、ｊ＋ｉ＋１番目の入力信号である。レプリカｒ０は、ｉ番目のレプリカである。レプリカｒ１は、ｉ＋１番目のレプリカである。
【００４６】
次に、ステップ１９０４では、積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿００に累積加算する。積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿０１に累積加算する。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１０に累積加算する。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１１に累積加算する。上記の処理をループ１９１１として繰り返す。
【００４７】
次に、ステップ１９０６では、アキュムレータの累積加算値が読み出され、中間データメモリに格納される。累積加算値ａｃｃ＿００は、中間データメモリｍ［１］［ｊ−１］に格納される。累積加算値ａｃｃ＿０１は、中間データメモリｍ［０］［ｊ］に格納される。累積加算値ａｃｃ＿１０は、中間データメモリｍ［１］［ｊ］に格納される。累積加算値ａｃｃ＿１１は、中間データメモリｍ［０］［ｊ＋１］に格納される。
【００４８】
次に、ステップ１９０７では、中間データメモリの中間データが読み出され、加算される。加算器２７０８は、中間データメモリｍ［０］［ｊ−１］及びｍ［１］［ｊ−１］の中間データを加算し、相関値ＣＯＲ［ｊ−１］を出力する。この加算は、例えば、図１４の第１のサイクルの演算結果領域１４０１の積和演算器Ａ４の累積加算値と第２のサイクルの演算結果領域１４０２の積和演算器Ａ３の累積加算値とを加算し、「＋１」のタイミングの相関値を求める。また、加算器２７０８は、中間データメモリｍ［０］［ｊ］及びｍ［１］［ｊ］の中間データを加算し、相関値ＣＯＲ［ｊ］を出力する。この加算は、例えば、図１４の第１のサイクルの演算結果領域１４０１の積和演算器Ａ１及びＡ２の累積加算値を加算し、「０」のタイミングの相関値を求める。上記の処理をループ１９１２として繰り返す。
【００４９】
（第２の実施形態）
図８は、図７に対応し、本発明の第２の実施形態による相関演算装置内の積和演算器群の構成例を示す図である。第１の実施形態では４個の積和演算器Ｅ００〜Ｅ１１の積和演算器群の場合を説明したが、本実施形態では１６個の積和演算器Ｅ００〜Ｅ３３の積和演算器群の場合を説明する。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００５０】
積和演算器群は、Ｎ×Ｎ個（例えば１６個）の積和演算器Ｅ００〜Ｅ３３を有する。入力信号ｄ０は１番目の複素数の入力信号、入力信号ｄ１は２番目の複素数の入力信号、入力信号ｄ２は３番目の複素数の入力信号、入力信号ｄ３は４番目の複素数の入力信号である。レプリカｒ０は１番目の複素数のレプリカ、レプリカｒ１は２番目の複素数のレプリカ、レプリカｒ２は３番目の複素数のレプリカ、レプリカｒ３は４番目の複素数のレプリカである。積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０の積和演算を行う。積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ３の積和演算を行う。積和演算器Ｅ０２は、入力信号ｄ０及びレプリカｒ２の積和演算を行う。積和演算器Ｅ０３は、入力信号ｄ０及びレプリカｒ１の積和演算を行う。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１の積和演算を行う。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０の積和演算を行う。積和演算器Ｅ１２は、入力信号ｄ１及びレプリカｒ３の積和演算を行う。積和演算器Ｅ１３は、入力信号ｄ１及びレプリカｒ２の積和演算を行う。積和演算器Ｅ２０は、入力信号ｄ２及びレプリカｒ２の積和演算を行う。積和演算器Ｅ２１は、入力信号ｄ２及びレプリカｒ１の積和演算を行う。積和演算器Ｅ２２は、入力信号ｄ２及びレプリカｒ０の積和演算を行う。積和演算器Ｅ２３は、入力信号ｄ２及びレプリカｒ３の積和演算を行う。積和演算器Ｅ３０は、入力信号ｄ３及びレプリカｒ３の積和演算を行う。積和演算器Ｅ３１は、入力信号ｄ３及びレプリカｒ２の積和演算を行う。積和演算器Ｅ３２は、入力信号ｄ３及びレプリカｒ１の積和演算を行う。積和演算器Ｅ３３は、入力信号ｄ３及びレプリカｒ０の積和演算を行う。
【００５１】
図１０は、図９に対応し、図８の積和演算器群を２次元行列に並べ替えた積和演算器群を示す図であり、図８の積和演算器群と同じ構成を有する。２次元行列の正方形上に積和演算器Ｅ００〜Ｅ３３を並べると、入力信号ｄ０〜ｄ３及びレプリカｒ０〜ｒ３の配線関係が比較的わかりやすい。
【００５２】
図１５は、図１１に対応し、図１０の積和演算器群を用いた相関演算方法を示す図である。相関演算装置は、Ｎ個の入力信号とＫ個のレプリカとの相関演算を行う。第１の実施形態と同様に、入力信号とレプリカとのタイミングをずらしながら、入力信号とレプリカとの相関演算を行う。
【００５３】
図１６は、図１２に対応し、図１０の積和演算器群による積和演算方法を示す図である。１６個の積和演算器Ｂ１〜Ｂ１６は、図１０の１６個の積和演算器Ｅ００〜Ｅ３３に対応する。平行四辺形を形成する１６個の積和演算器Ｂ１〜Ｂ１６は、図１５の「−３」〜「＋３」のタイミングから抽出したものに対応する。
【００５４】
図１７は、図１３に対応し、図１０の積和演算器群のサイクル毎の処理を示す図である。第１のサイクルでは、図１６と同じく、積和演算器Ｂ１〜Ｂ１６は入力信号ｄ０〜ｄ３及びレプリカｒ０〜ｒ３の複素乗算を行う。次に、第２のサイクルでは、積和演算器Ｂ１〜Ｂ１６は入力信号ｄ４〜ｄ７及びレプリカｒ４〜ｒ７の複素乗算を行い、第１のサイクルの複素乗算値と第２のサイクルの複素乗算値とを累積複素加算する。次に、第３のサイクルでは、積和演算器Ｂ１〜Ｂ１６は入力信号ｄ８〜ｄ１１及びレプリカｒ８〜ｒ１１の複素乗算を行い、第１〜第３のサイクルの複素乗算値を累積複素加算する。次に、第４のサイクルでは、積和演算器Ｂ１〜Ｂ１６は入力信号ｄ１２〜ｄ１５及びレプリカｒ１２〜ｒ１５の複素乗算を行い、第１〜第４のサイクルの複素乗算値を累積複素加算する。以降、同様に、積和演算器Ｂ１〜Ｂ１６は、入力信号及びレプリカをサイクル毎に４個ずつ順に演算する。
【００５５】
図１８は、図１４に対応し、図１０の積和演算器群を用いた相関演算方法を示す図である。第１のスキャンでは、図１７に示したように、入力信号（０，１，２，３），（４，５，６，７），…，（Ｋ−４，Ｋ−３，Ｋ−２，Ｋ−１）、レプリカ（０，１，２，３），（４，５，６，７），…，（Ｋ−４，Ｋ−３，Ｋ−２，Ｋ−１）を順に入力していくと、演算結果領域１８０１がアキュムレータ２６１３に格納される。そのアキュムレータ２６１３の値を読み出し、アキュムレータ２６１３をクリアする。
【００５６】
次に、第２のスキャンでは、入力信号（４，５，６，７），（８，９，１０，１１），…，（Ｋ，Ｋ＋１，Ｋ＋２，Ｋ＋３）、レプリカ（０，１，２，３），（４，５，６，７），…，（Ｋ−４，Ｋ−３，Ｋ−２，Ｋ−１）を順に入力していくと、演算結果領域１８０２がアキュムレータ２６１３に格納される。このように入力信号を４個ずつずらして入力していくことにより、相関演算したい値の全体を得ることができる。各タイミングの演算結果をすべて加算することにより相関値を得ることができる。
【００５７】
「０」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ｂ１〜Ｂ４のアキュムレータ２６１３の累積加算値を加算することにより得られる。また、「＋１」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ｂ６〜Ｂ８のアキュムレータ２６１３の累積加算値及び第２のスキャンで得られた積和演算器Ｂ５のアキュムレータ２６１３の累積加算値を加算することにより得られる。また、「＋２」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ｂ１１，Ｂ１２のアキュムレータ２６１３の累積加算値及び第２のスキャンで得られた積和演算器Ｂ９，Ｂ１０のアキュムレータ２６１３の累積加算値を加算することにより得られる。また、「＋３」のタイミングの相関値は、第１のスキャンで得られた積和演算器Ｂ１６のアキュムレータ２６１３の累積加算値及び第２のスキャンで得られた積和演算器Ｂ１３〜Ｂ１５のアキュムレータ２６１３の累積加算値を加算することにより得られる。
【００５８】
各タイミングの相関値を求める場合、「０」のタイミングの相関値は１回のスキャンで得られ、「＋１」〜「＋３」のタイミングの相関値は２回のスキャンで得られる。このように、中間データとして、２回のスキャン分のメモリがあればよいので、２×１６＝３２個のデータ分の中間メモリがあればよい。例えば、第１の中間データメモリ２７０６（図２５、図２７）は第１のスキャンによる積和演算器Ｂ１〜Ｂ１６のアキュムレータ２６１３の１６個の累積加算値を中間データとして記憶し、第２の中間データメモリ２７０７（図２５、図２７）は第２のスキャンによる積和演算器Ｂ１〜Ｂ１６のアキュムレータ２６１３の１６個の累積加算値を中間データとして記憶する。「＋１」〜「＋３」のタイミングの相関値は、上記のように、第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７の中間データを加算することにより得られる。
【００５９】
図２４は、図２１に対応し、積和演算器群の構成例を示す図であり、図１０の積和演算器群と同じ構成を有する。積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿００を出力する。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿０１を出力する。積和演算器Ｅ２０は、入力信号ｄ２及びレプリカｒ２を積和演算し、累積加算値ａｃｃ＿０２を出力する。積和演算器Ｅ３０は、入力信号ｄ３及びレプリカｒ３を積和演算し、累積加算値ａｃｃ＿０３を出力する。
【００６０】
積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ３を積和演算し、累積加算値ａｃｃ＿１０を出力する。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿１１を出力する。積和演算器Ｅ２１は、入力信号ｄ２及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿１２を出力する。積和演算器Ｅ３１は、入力信号ｄ３及びレプリカｒ２を積和演算し、累積加算値ａｃｃ＿１３を出力する。
【００６１】
積和演算器Ｅ０２は、入力信号ｄ０及びレプリカｒ２を積和演算し、累積加算値ａｃｃ＿２０を出力する。積和演算器Ｅ１２は、入力信号ｄ１及びレプリカｒ３を積和演算し、累積加算値ａｃｃ＿２１を出力する。積和演算器Ｅ２２は、入力信号ｄ２及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿２２を出力する。積和演算器Ｅ３２は、入力信号ｄ３及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿２３を出力する。
【００６２】
積和演算器Ｅ０３は、入力信号ｄ０及びレプリカｒ１を積和演算し、累積加算値ａｃｃ＿３０を出力する。積和演算器Ｅ１３は、入力信号ｄ１及びレプリカｒ２を積和演算し、累積加算値ａｃｃ＿３１を出力する。積和演算器Ｅ２３は、入力信号ｄ２及びレプリカｒ３を積和演算し、累積加算値ａｃｃ＿３２を出力する。積和演算器Ｅ３３は、入力信号ｄ３及びレプリカｒ０を積和演算し、累積加算値ａｃｃ＿３３を出力する。
【００６３】
図２５は、図２２に対応し、中間データメモリを示す図である。第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７は、図２７の第１の中間データメモリ２７０６及び第２の中間データメモリ２７０７に対応し、それぞれ１６個の累積加算値ａｃｃ＿００〜ａｃｃ＿３３を記憶する領域を有する。
【００６４】
図２３は、図１９に対応し、相関演算装置の相関演算方法を示すフローチャートである。ループ２３１２は、始端２３０１及び終端２３０８を有し、変数ｊを０からＮまで４ずつ増やすループである。ループ２３１１は、始端２３０２及び終端２３０５を有し、変数ｉを０からＫまで４ずつ増やすループである。
【００６５】
ステップ２３０３では、積和演算器Ｅ００〜Ｅ３３は入力信号ｄ０〜ｄ３及びレプリカｒ０〜ｒ３を入力する。入力信号ｄ０は、ｊ＋ｉ番目の入力信号である。入力信号ｄ１は、ｊ＋ｉ＋１番目の入力信号である。入力信号ｄ２は、ｊ＋ｉ＋２番目の入力信号である。入力信号ｄ３は、ｊ＋ｉ＋３番目の入力信号である。レプリカｒ０は、ｉ番目のレプリカである。レプリカｒ１は、ｉ＋１番目のレプリカである。レプリカｒ２は、ｉ＋２番目のレプリカである。レプリカｒ３は、ｉ＋３番目のレプリカである。
【００６６】
次に、ステップ２３０４では、積和演算器Ｅ００は、入力信号ｄ０及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿００に累積加算する。積和演算器Ｅ１０は、入力信号ｄ１及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿０１に累積加算する。積和演算器Ｅ２０は、入力信号ｄ２及びレプリカｒ２の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿０２に累積加算する。積和演算器Ｅ３０は、入力信号ｄ３及びレプリカｒ３の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿０３に累積加算する。
【００６７】
積和演算器Ｅ０１は、入力信号ｄ０及びレプリカｒ３の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１０に累積加算する。積和演算器Ｅ１１は、入力信号ｄ１及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１１に累積加算する。積和演算器Ｅ２１は、入力信号ｄ２及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１２に累積加算する。積和演算器Ｅ３１、入力信号ｄ３及びレプリカｒ２の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿１３に累積加算する。
【００６８】
積和演算器Ｅ０２は、入力信号ｄ０及びレプリカｒ２の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿２０に累積加算する。積和演算器Ｅ１２は、入力信号ｄ１及びレプリカｒ３の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿２１に累積加算する。積和演算器Ｅ２２は、入力信号ｄ２及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿２２に累積加算する。積和演算器Ｅ３２は、入力信号ｄ３及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿２３に累積加算する。
【００６９】
積和演算器Ｅ０３は、入力信号ｄ０及びレプリカｒ１の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿３０に累積加算する。積和演算器Ｅ１３は、入力信号ｄ１及びレプリカｒ２の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿３１に累積加算する。積和演算器Ｅ２３は、入力信号ｄ２及びレプリカｒ３の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿３２に累積加算する。積和演算器Ｅ３３は、入力信号ｄ３及びレプリカｒ０の複素乗算を行い、その複素乗算値を累積加算値ａｃｃ＿３３に累積加算する。
【００７０】
上記の処理をループ２３１１として繰り返す。
【００７１】
次に、ステップ２３０６では、アキュムレータの累積加算値が読み出され、中間データメモリに格納される。累積加算値ａｃｃ＿００は、中間データメモリｍ［０］［ｊ］に格納される。累積加算値ａｃｃ＿０１は、中間データメモリｍ［１］［ｊ］に格納される。累積加算値ａｃｃ＿０２は、中間データメモリｍ［２］［ｊ］に格納される。累積加算値ａｃｃ＿０３は、中間データメモリｍ［３］［ｊ］に格納される。累積加算値ａｃｃ＿１０は、中間データメモリｍ［３］［ｊ−３］に格納される。累積加算値ａｃｃ＿１１は、中間データメモリｍ［０］［ｊ＋１］に格納される。累積加算値ａｃｃ＿１２は、中間データメモリｍ［１］［ｊ＋１］に格納される。累積加算値ａｃｃ＿１３は、中間データメモリｍ［２］［ｊ＋１］に格納される。累積加算値ａｃｃ＿２０は、中間データメモリｍ［２］［ｊ−２］に格納される。累積加算値ａｃｃ＿２１は、中間データメモリｍ［３］［ｊ−２］に格納される。累積加算値ａｃｃ＿２２は、中間データメモリｍ［０］［ｊ＋２］に格納される。累積加算値ａｃｃ＿２３は、中間データメモリｍ［１］［ｊ＋２］に格納される。累積加算値ａｃｃ＿３０は、中間データメモリｍ［１］［ｊ−１］に格納される。累積加算値ａｃｃ＿３１は、中間データメモリｍ［２］［ｊ−１］に格納される。累積加算値ａｃｃ＿３２は、中間データメモリｍ［３］［ｊ−１］に格納される。累積加算値ａｃｃ＿３３は、中間データメモリｍ［０］［ｊ＋３］に格納される。
【００７２】
次に、ステップ２３０７では、中間データメモリの中間データが読み出され、加算される。加算器２７０８は、中間データメモリｍ［０］［ｊ−３］、ｍ［１］［ｊ−３］、ｍ［２］［ｊ−３］及びｍ［３］［ｊ−３］の値を加算し、相関値ＣＯＲ［ｊ−３］を出力する。この加算は、例えば、図１８の「＋１」のタイミングの相関値演算である。また、加算器２７０８は、中間データメモリｍ［０］［ｊ−２］、ｍ［１］［ｊ−２］、ｍ［２］［ｊ−２］及びｍ［３］［ｊ−２］の値を加算し、相関値ＣＯＲ［ｊ−２］を出力する。この加算は、例えば、図１８の「＋２」のタイミングの相関値演算である。また、加算器２７０８は、中間データメモリｍ［０］［ｊ−１］、ｍ［１］［ｊ−１］、ｍ［２］［ｊ−１］及びｍ［３］［ｊ−１］の値を加算し、相関値ＣＯＲ［ｊ−１］を出力する。この加算は、例えば、図１８の「＋３」のタイミングの相関値演算である。また、加算器２７０８は、中間データメモリｍ［０］［ｊ］、ｍ［１］［ｊ］、ｍ［２］［ｊ］及びｍ［３］［ｊ］の値を加算し、相関値ＣＯＲ［ｊ］を出力する。この加算は、例えば、図１８の「０」のタイミングの相関値演算である。上記の処理をループ２３１２として繰り返す。
【００７３】
以上のように、第１及び第２の実施形態において、Ｎ×Ｎ個の積和演算器Ｅ００〜Ｅ１１，Ｅ００〜Ｅ３３は、入力信号内のＮ（Ｎは２以上の整数）個の入力信号のうちのいずれか１個とレプリカ信号内のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力し、その次のサイクルで入力信号内の次のＮ個の入力信号のうちのいずれか１個とレプリカ信号内の次のＮ個のレプリカ信号のうちのいずれか１個との組み合わせをそれぞれ積和演算により累積加算して累積加算値を出力する処理を繰り返す。
【００７４】
加算器２７０８は、レプリカ信号に対して入力信号をずらす量が同じもの同士の積和演算器Ｅ００〜Ｅ１１，Ｅ００〜Ｅ３３が出力する同じサイクル又は異なるサイクルにおける累積加算値を加算することにより、レプリカ信号に対する入力信号のずれ量毎の入力信号及びレプリカ信号の相関値を出力する。
【００７５】
積和演算器Ｅ００〜Ｅ１１，Ｅ００〜Ｅ３３は、まず、第１のスキャンでは、レプリカ信号に対する入力信号のずれ量を０にしてＮ個の入力信号及びＮ個のレプリカ信号毎の演算を繰り返し、次に、第２のスキャンでは、レプリカ信号に対する入力信号のずれ量をＮにしてＮ個の入力信号及びＮ個のレプリカ信号毎の演算を繰り返す。
【００７６】
第１の実施形態では、Ｎは２であり、４個の積和演算器は第１〜第４の積和演算器であり、入力信号の先頭の４個の入力信号は第１〜第４の入力信号であり、レプリカ信号の先頭の４個のレプリカ信号は第１〜第４のレプリカ信号である。
【００７７】
図１３の第１のサイクルでは、第１の積和演算器は第１の入力信号及び第１のレプリカ信号の積和演算を行う。第２の積和演算器は第１の入力信号及び第２のレプリカ信号の積和演算を行う。第３の積和演算器は第２の入力信号及び第１のレプリカ信号の積和演算を行う。第４の積和演算器は第２の入力信号及び第２のレプリカ信号の積和演算を行う。
【００７８】
図１３の第２のサイクルでは、第１の積和演算器は第３の入力信号及び第３のレプリカ信号の積和演算を行う。第２の積和演算器は第３の入力信号及び第４のレプリカ信号の積和演算を行う。第３の積和演算器は第４の入力信号及び第３のレプリカ信号の積和演算を行う。第４の積和演算器は第４の入力信号及び第４のレプリカ信号の積和演算を行う。
【００７９】
第２の実施形態では、Ｎは４であり、１６個の積和演算器は第１〜第１６の積和演算器であり、入力信号の先頭の８個の入力信号は第１〜第８の入力信号であり、レプリカ信号の先頭の８個のレプリカ信号は第１〜第８のレプリカ信号である。
【００８０】
図１７の第１のサイクルでは、第１の積和演算器は第１の入力信号及び第１のレプリカ信号の積和演算を行う。第２の積和演算器は第１の入力信号及び第２のレプリカ信号の積和演算を行う。第３の積和演算器は第１の入力信号及び第３のレプリカ信号の積和演算を行う。第４の積和演算器は第１の入力信号及び第４のレプリカ信号の積和演算を行う。第５の積和演算器は第２の入力信号及び第１のレプリカ信号の積和演算を行う。第６の積和演算器は第２の入力信号及び第２のレプリカ信号の積和演算を行う。第７の積和演算器は第２の入力信号及び第３のレプリカ信号の積和演算を行う。第８の積和演算器は第２の入力信号及び第４のレプリカ信号の積和演算を行う。第９の積和演算器は第３の入力信号及び第１のレプリカ信号の積和演算を行う。第１０の積和演算器は第３の入力信号及び第２のレプリカ信号の積和演算を行う。第１１の積和演算器は第３の入力信号及び第３のレプリカ信号の積和演算を行う。第１２の積和演算器は第３の入力信号及び第４のレプリカ信号の積和演算を行う。第１３の積和演算器は第４の入力信号及び第１のレプリカ信号の積和演算を行う。第１４の積和演算器は第４の入力信号及び第２のレプリカ信号の積和演算を行う。第１５の積和演算器は第４の入力信号及び第３のレプリカ信号の積和演算を行う。第１６の積和演算器は第４の入力信号及び第４のレプリカ信号の積和演算を行う。
【００８１】
図１７の第２のサイクルでは、第１の積和演算器は第５の入力信号及び第５のレプリカ信号の積和演算を行う。第２の積和演算器は第５の入力信号及び第６のレプリカ信号の積和演算を行う。第３の積和演算器は第５の入力信号及び第７のレプリカ信号の積和演算を行う。第４の積和演算器は第５の入力信号及び第８のレプリカ信号の積和演算を行う。第５の積和演算器は第６の入力信号及び第５のレプリカ信号の積和演算を行う。第６の積和演算器は第６の入力信号及び第６のレプリカ信号の積和演算を行う。第７の積和演算器は第６の入力信号及び第７のレプリカ信号の積和演算を行う。第８の積和演算器は第６の入力信号及び第８のレプリカ信号の積和演算を行う。第９の積和演算器は第７の入力信号及び第５のレプリカ信号の積和演算を行う。第１０の積和演算器は第７の入力信号及び第６のレプリカ信号の積和演算を行う。第１１の積和演算器は第７の入力信号及び第７のレプリカ信号の積和演算を行う。第１２の積和演算器は第７の入力信号及び第８のレプリカ信号の積和演算を行う。第１３の積和演算器は第８の入力信号及び第５のレプリカ信号の積和演算を行う。第１４の積和演算器は第８の入力信号及び第６のレプリカ信号の積和演算を行う。第１５の積和演算器は第８の入力信号及び第７のレプリカ信号の積和演算を行う。第１６の積和演算器は第８の入力信号及び第８のレプリカ信号の積和演算を行う。
【００８２】
以上のように、第１及び第２の実施形態では、Ｎ×Ｎ個の積和演算器を用いて積和演算を繰り返すことにより相関値を出力することができるので、積和演算器の数が少なくなり、小型化することができる。また、積和演算器が累積加算するため、中間データを記憶するためのメモリのサイズを小さくすることができる。具体的には、Ｎ×Ｎ個の中間データを記憶するための第１の中間データメモリ２７０６とＮ×Ｎ個の中間データを記憶するための第２の中間データメモリ２７０７があればよい。
【００８３】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８４】
Ｅ００〜Ｅ３３  積和演算器
２７０１  入力信号
２７０２，２７０３  メモリ
２７０４  積和演算器
２７０５  セレクタ
２７０６  第１の中間データメモリ
２７０７  第２の中間データメモリ
２７０８  加算器
２７０９  二乗ノルム演算器
２７１０  メモリ
【図１】
2011015159.tif 000003
【図２】
2011015159.tif 000004
【図３】
2011015159.tif 000005
【図４】
2011015159.tif 000006
【図５】
2011015159.tif 000007
【図６】
2011015159.tif 000008
【図７】
2011015159.tif 000009
【図８】
2011015159.tif 000010
【図９】
2011015159.tif 000011
【図１０】
2011015159.tif 000012
【図１１】
2011015159.tif 000013
【図１２】
2011015159.tif 000014
【図１３】
2011015159.tif 000015
【図１４】
2011015159.tif 000016
【図１５】
2011015159.tif 000017
【図１６】
2011015159.tif 000018
【図１７】
2011015159.tif 000019
【図１８】
2011015159.tif 000020
【図１９】
2011015159.tif 000021
【図２０】
2011015159.tif 000022
【図２１】
2011015159.tif 000023
【図２２】
2011015159.tif 000024
【図２３】
2011015159.tif 000025
【図２４】
2011015159.tif 000026
【図２５】
2011015159.tif 000027
【図２６】
2011015159.tif 000028
【図２７】
2011015159.tif 000029