(57)【特許請求の範囲】
【請求項１】
第１のデータが入力される第１の入力手段と、
第２のデータが入力される第２の入力手段と、
前記第１の入力手段からの前記第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段と、
前記第２の入力手段からの前記第２のデータを蓄積する第２の蓄積手段であって、前記第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段と、
前記第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で前記第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で前記第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する第１の選択手段と、
前記第２のクロックレートで動作し、前記第１のクロックレートのクロックの前記一方の半部の期間で前記第２の蓄積手段の複数の遅延素子に蓄積された前記複数の第２の部分データを選択し、前記第１のクロックレートのクロックの前記他方の半部の期間で前記第１の蓄積手段の複数の遅延素子に蓄積された前記複数の第１の部分データを選択する複数の選択素子を有する第２の選択手段と、
前記第２のクロックレートで動作し、前記第１の選択手段により選択された前記複数の第１の部分データまたは前記複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、
前記第２のクロックレートで動作し、前記第２の選択手段により選択された前記複数の第２の部分データまたは前記複数の第１の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、
前記第２のクロックレートで動作し、前記第１の乗算手段の前記複数の乗算素子での乗算結果の総和を演算する第１の演算手段と、
前記第２のクロックレートで動作し、前記第２の乗算手段の前記複数の乗算素子での乗算結果の総和を演算する第２の演算手段と、
前記第２のクロックレートで動作し、前記第１の演算手段の演算結果と前記第２の演算手段の演算結果を加算する加算手段と、
前記第２のクロックレートで動作し、前記加算手段の加算結果を遅延する遅延手段と、
前記遅延手段の出力を出力する第１の出力手段と、
前記加算手段の出力を出力する第２の出力手段とを備える
ことを特徴とするデータ演算装置。
【請求項２】
前記第２の選択手段は、前記第２の蓄積手段の複数の遅延素子に蓄積された前記複数の第２の部分データを選択するとき、その符号を反転する
ことを特徴とする請求項１に記載のデータ演算装置。
【請求項３】
前記加算手段に供給される前記第２の演算手段の出力を反転するか否かを選択する第３の選択手段をさらに備える
ことを特徴とする請求項１に記載のデータ演算装置。
【請求項４】
前記データ演算装置は、OFDM受信装置である
ことを特徴とする請求項１に記載のデータ演算装置。
【請求項５】
第１のデータが入力される第１の入力ステップと、
第２のデータが入力される第２の入力ステップと、
第１のクロックレートで、前記第１の入力ステップで入力された前記第１のデータを蓄積する第１の蓄積ステップと、
前記第１のクロックレートで、前記第２の入力ステップで入力された前記第２のデータを蓄積する第２の蓄積ステップと、
前記第１のクロックレートの２倍のクロックレートの第２のクロックレートで、前記第１のクロックレートのクロックの一方の半部の期間で、前記第１の蓄積ステップで蓄積された複数の第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の蓄積ステップで蓄積された複数の第２の部分データを選択する第１の選択ステップと、
前記第２のクロックレートで、前記第１のクロックレートのクロックの前記一方の半部の期間で、前記第２の蓄積ステップで蓄積された前記複数の第２の部分データを選択し、前記第１のクロックレートのクロックの前記他方の半部の期間で、前記第１の蓄積ステップで蓄積された前記複数の第１の部分データを選択する第２の選択ステップと、
前記第２のクロックレートで、前記第１の選択ステップで選択された前記複数の第２の部分データまたは前記複数の第１の部分データに対して第２のタップ係数を乗算する第１の乗算ステップと、
前記第２のクロックレートで、前記第２の選択ステップで選択された前記複数の第２の部分データまたは前記複数の第１の部分データに対して第２のタップ係数を乗算する第２の乗算ステップと、
前記第２のクロックレートで、前記第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、
前記第２のクロックレートで、前記第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、
前記第２のクロックレートで、前記第１の演算ステップにおける演算結果と前記第２の演算ステップにおける演算結果を加算する加算ステップと、
前記第２のクロックレートで、前記加算ステップにおける加算結果を遅延する遅延ステップと、
前記遅延ステップで遅延されたデータを出力する第１の出力ステップと、
前記加算ステップの出力を出力する第２の出力ステップとを備える
ことを特徴とするデータ演算方法。
【請求項６】
第１のデータが入力される第１の入力手段と、
第２のデータが入力される第２の入力手段と、
前記第１の入力手段からの前記第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段と、
前記第２の入力手段からの前記第２のデータを蓄積する第２の蓄積手段であって、前記第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段と、
前記第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する選択手段と、
前記第２のクロックレートで動作し、前記選択手段により選択された前記複数の第１の部分データまたは前記複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、
前記第２のクロックレートで動作し、前記選択手段により選択された前記複数の第１の部分データまたは前記複数の第２の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、
前記第２のクロックレートで動作し、前記第１の乗算手段の前記複数の乗算素子での乗算結果の総和を演算する第１の演算手段と、
前記第２のクロックレートで動作し、前記第２の乗算手段の前記複数の乗算素子での乗算結果の総和を演算する第２の演算手段と、
前記第１の演算手段の演算結果を遅延する第１の遅延手段と、
前記第２の演算手段の演算結果を遅延する第２の遅延手段と、
前記第２のクロックレートで動作し、前記第１の遅延手段により遅延されたデータから前記第２の演算手段の出力を減算する減算手段と、
前記第２のクロックレートで動作し、前記第２の遅延手段の出力と前記第１の演算手段の出力を加算する加算手段と、
前記減算手段の減算結果を出力する第１の出力手段と、
前記加算手段の加算結果を出力する第２の出力手段とを備える
ことを特徴とするデータ演算装置。
【請求項７】
前記データ演算装置は、OFDM受信装置である
ことを特徴とする請求項６に記載のデータ演算装置。
【請求項８】
第１のデータが入力される第１の入力ステップと、
第２のデータが入力される第２の入力ステップと、
第１のクロックレートで、前記第１の入力ステップで入力された前記第１のデータを蓄積する第１の蓄積ステップと、
前記第１のクロックレートで、前記第２の入力ステップで入力された前記第２のデータを蓄積する第２の蓄積ステップと、
前記第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記第１の蓄積ステップで蓄積された複数の第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の蓄積ステップで蓄積された複数の第２の部分データを選択する選択ステップと、
前記第２のクロックレートで、前記選択ステップで選択された前記複数の第１の部分データまたは前記複数の第２の部分データに対して第１のタップ係数を乗算する第１の乗算ステップと、
前記第２のクロックレートで、前記選択ステップで選択された前記複数の第１の部分データまたは前記複数の第２の部分データに対して第２のタップ係数を乗算する第２の乗算ステップと、
前記第２のクロックレートで、前記第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、
前記第２のクロックレートで、前記第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、
前記第２のクロックレートで、前記第１の演算ステップにおける演算結果を遅延する第１の遅延ステップと、
前記第２のクロックレートで、前記第２の演算ステップにおける演算結果を遅延する第２の遅延ステップと、
前記第２のクロックレートで、前記第１の遅延ステップで遅延されたデータから前記第２の演算ステップの出力を減算する減算ステップと、
前記第２のクロックレートで、前記第２の遅延ステップで遅延されたデータと前記第１の演算ステップの演算結果を加算する加算ステップと、
前記減算ステップにおける減算結果を出力する第１の出力ステップと、
前記加算ステップにおける加算結果を出力する第２の出力ステップとを備える
ことを特徴とするデータ演算方法。
【請求項９】
第１のデータが入力される第１の入力手段と、
第２のデータが入力される第２の入力手段と、
第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記第１の入力手段からの前記第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の入力手段からの前記第２の部分データを選択する選択素子を有する第１の選択手段と、
前記第１の選択手段により選択された部分データを順次蓄積する蓄積手段であって、前記第２のクロックレートで動作する直列に接続された複数の遅延素子を有する蓄積手段と、
前記第２のクロックレートで動作し、前記蓄積手段により蓄積された前記複数の第１の部分データに対して、第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、
前記第２のクロックレートで動作し、前記蓄積手段により蓄積された前記複数の第２の部分データに対して、第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、
前記第２のクロックレートで動作し、前記第１の乗算手段の乗算結果の総和を演算する第１の演算手段と、
前記第２のクロックレートで動作し、前記第２の乗算手段の乗算結果の総和を演算する第２の演算手段と、
前記第２のクロックレートで動作し、前記第２の演算手段の演算結果を遅延する第１の遅延手段と、
前記第２のクロックレートで動作し、前記第１の遅延手段により遅延されたデータを遅延する第２の遅延手段と、
前記第２のクロックレートで動作し、前記第２の演算手段の出力の符号を反転する反転手段と、
前記第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記反転手段により反転されたデータを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の遅延手段により遅延されたデータを選択する第２の選択手段と、
前記第２のクロックレートで動作し、前記第１の演算手段の演算結果と前記第２の選択手段により選択されたデータを加算する加算手段と、
前記第２のクロックレートで動作し、前記加算手段の加算結果としてのデータを遅延する第３の遅延手段と、
前記第３の遅延手段により遅延されたデータを出力する第１の出力手段と、
前記加算手段の出力を出力する第２の出力手段とを備える
ことを特徴とするデータ演算装置。
【請求項１０】
前記データ演算装置は、OFDM受信装置である
ことを特徴とする請求項９に記載のデータ演算装置。
【請求項１１】
第１のデータが入力される第１の入力ステップと、
第２のデータが入力される第２の入力ステップと、
第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記第１の入力手段からの前記第１の部分データを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の入力手段からの前記第２の部分データを選択する選択素子を有する第１の選択ステップと、
前記第２のクロックレートで、前記第１の選択ステップで選択された部分データを順次蓄積する蓄積ステップと、
前記第２のクロックレートで、前記蓄積ステップで蓄積された前記複数の第１の部分データに対して、第１のタップ係数を乗算する第１の乗算ステップと、
前記第２のクロックレートで、前記蓄積ステップで蓄積された前記複数の第２の部分データに対して、第２のタップ係数を乗算する第２の乗算ステップと、
前記第２のクロックレートで、前記第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、
前記第２のクロックレートで、前記第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、
前記第２のクロックレートで、前記第２の演算ステップにおける演算結果を遅延する第１の遅延ステップと、
前記第２のクロックレートで、前記第１の遅延ステップで遅延されたデータを遅延する第２の遅延ステップと、
前記第２のクロックレートで、前記第２の演算ステップの演算結果の符号を反転する反転ステップと、
前記第２のクロックレートで動作し、前記第１のクロックレートのクロックの一方の半部の期間で、前記反転ステップで反転されたデータを選択し、前記第１のクロックレートのクロックの他方の半部の期間で、前記第２の遅延ステップで遅延されたデータを選択する第２の選択ステップと、
前記第２のクロックレートで、前記第１の演算ステップにおける演算結果と前記第２の選択ステップで選択されたデータを加算する加算ステップと、
前記第２のクロックレートで、前記加算ステップにおける加算結果を遅延する第３の遅延ステップと、
前記第３の遅延ステップで遅延されたデータを出力する第１の出力手段と、
前記加算ステップの加算結果を出力する第２の出力手段とを備える
ことを特徴とするデータ演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ演算装置および方法に関し、特に、構成を簡略化し、より小型化を可能とするデータ演算装置および方法に関する。
【０００２】
【従来の技術】
従来のトランスバーサルフィルタ等のFIRフィルタ回路では、実数のデータを扱っていた。例えば、入力データ列をａn、タップ係数列をｃm、および出力データ列をｘnとすると、FIRフィルタ回路の入出力関係式は以下のようになる。
【０００３】
【数１】
0004303797.tif 000002
【０００４】
ところで、近年、デジタル信号を伝送する方法として、OFDM（Orthogonal Frequency Division Multiplexing：直交周波数分割多重方式）と呼ばれる変調方式が提案されている。このOFDM方式の受信装置に用いられるFIRフィルタ回路では、複素数データが扱われる。この場合、このFIRフィルタ回路の入出力関係式は以下のようになる。ただし、入力データのうち、実部データをａn、虚部データをｂnとする。
【０００５】
【数２】
0004303797.tif 000003
【０００６】
図１２に示す従来のFIRフィルタ回路は、入力部２１Ａに対し、Ａ，Ｃの２ブロック、入力部２１Ｂに対し、Ｂ，Ｄの２ブロックの合計４つのブロックから構成されている。
【０００７】
入力部２１Ａは、入力データ（複素数データ）の実部データを受け取り、シフトレジスタ部２２Ａおよびシフトレジスタ部２２Ｂ’に供給する。入力部２１Ｂは、入力データの虚部データを受け取り、シフトレジスタ部２２Ｂおよびシフトレジスタ部２２Ａ’に供給する。
【０００８】
ここで、ブロックＡは、シフトレジスタ部２２Ａ、乗算部２４Ａ、および加減算部２５Ａにより構成されている。シフトレジスタ部２２Ａは、シフトレジスタ２２Ａ-１乃至２２Ａ-（２Ｎ＋１）により構成されており、各シフトレジスタは、供給されたデータを保持した後、後段のシフトレジスタにシフトする（即ち、入力部２１Ａからのデータ列が、シフトレジスタ部２２Ａに順次蓄積される）とともに、それぞれ乗算部２４Ａの乗算器２４Ａ-１乃至２４Ａ-（２Ｎ＋１）に供給する（但し、シフトレジスタ２２Ａ-（２Ｎ＋１）は、前段からのデータを保持した後、乗算器２４Ａ-（２Ｎ＋１）に供給する動作のみを行う）。
【０００９】
乗算部２４Ａは、乗算器２４Ａ-１乃至２４Ａ-（２Ｎ＋１）により構成されており、各乗算器には、それぞれタップ係数ｃ-N乃至ｃNが予め設定されている。乗算部２４Ａの各乗算器は、供給されたデータに、予め設定されているタップ係数を乗じ、その結果を加減算部２５Ａに出力する。加減算部２５Ａは、乗算部２４Ａの各乗算器から供給されるデータの総和を演算し、演算結果としてのデータを減算器１０１に供給する。
【００１０】
ブロックＢは、シフトレジスタ部２２Ｂ、乗算部２４Ｂ、および加減算部２５Ｂにより構成されている。シフトレジスタ部２２Ｂは、シフトレジスタ２２Ｂ-１乃至２２Ｂ-（２Ｎ＋１）により構成されており、各シフトレジスタは、供給されたデータを保持した後、後段のシフトレジスタにシフトするとともに、それぞれ乗算部２４Ｂの乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）に供給する（但し、シフトレジスタ２２Ｂ-（２Ｎ＋１）は、前段からのデータを保持した後、乗算器２４Ｂ-（２Ｂ＋１）に供給する動作のみを行う）。
【００１１】
乗算部２４Ｂは、乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）により構成されており、各乗算器には、それぞれタップ係数ｄ-N乃至ｄNが予め設定されている。乗算部２４Ｂの各乗算器は、供給されたデータに、予め設定されているタップ係数を乗じ、その結果を加減算部２５Ｂに出力する。加減算部２５Ｂは、乗算部２４Ｂの各乗算器から供給されるデータの総和を演算し、演算結果としてのデータを減算器１０１に供給する。
【００１２】
ブロックＣおよびブロックＤの構成は、それぞれ、ブロックＡおよびブロックＢと同様の構成とされており、その説明を省略する。
【００１３】
減算器１０１は、加減算部２５Ａから供給されるデータに対して加減算部２５Ｂから供給されるデータを減算し、その減算結果としてのデータを出力部２８Ａに供給する。加算器１０２は、加減算部２５Ｂ’から供給されるデータと加減算部２５Ａ’から供給されるデータを加算し、加算結果としてのデータを出力部２８Ｂに供給する。出力部２８Ａ，２８Ｂは、それぞれ減算器１０１または加算器１０２からのデータを出力する。
【００１４】
次にその動作を説明する。入力部２１Ａからのデータは、シフトレジスタ部２２Ａおよびシフトレジスタ２２Ｂ’に供給され、入力部２１Ｂからのデータは、シフトレジスタ部２２Ｂおよびシフトレジスタ部２２Ａ’に供給される。
【００１５】
ここで、例えば、ブロックＡの場合を例に挙げて説明する。シフトレジスタ部２２Ａの各シフトレジスタは、前段より供給されたデータを後段に順次シフトするとともに、乗算部２４Ａの対応する乗算器に供給する。
【００１６】
乗算部２４Ａの各乗算器は、シフトレジスタ部２２Ａの対応するシフトレジスタから供給されるデータに対して、それぞれタップ係数ｃ-N乃至ｃNを乗じ、乗算結果としてのデータを加減算部２５Ａに供給する。加減算部２５Ａは、乗算部２４Ａの各乗算器から供給されるデータの総和を演算する。これにより、ブロックＡにおいては、次式に対応する演算結果が得られることになる。
【００１７】
【数３】
0004303797.tif 000004
【００１８】
同様に、ブロックＢにおいては、次式に対応する演算結果が得られる。
【００１９】
【数４】
0004303797.tif 000005
【００２０】
ブロックＣにおいては、次式に対応する演算結果が得られる。
【００２１】
【数５】
0004303797.tif 000006
【００２２】
また、ブロックＤにおいては、次式に対応する演算結果が得られる。
【００２３】
【数６】
0004303797.tif 000007
【００２４】
以上の演算が、各ブロックにおいて、同時に行われている。そして、減算器１０１により、加減算部２５Ａからのデータに対して加減算部２５Ｂのデータが減算され、演算結果が出力部２８Ａから出力される。これにより、出力部２８Ａからは、次式に対応するデータが出力されることになる。
【００２５】
【数７】
0004303797.tif 000008
【００２６】
また、加算器１０２により、加減算部２５Ａ’からのデータと加減算部２５Ａ’からのデータが加算され、その加算結果が、出力部２８Ｂから出力される。これにより、出力部２８Ｂからは、次式に対応するデータが出力される。
【００２７】
【数８】
0004303797.tif 000009
【００２８】
このようにして、複素数データに対して、演算を行うことができる。
【００２９】
図１３は、図１２のFIRフィルタ回路の他の構成例を示しており、図１２に示した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。この例においては、FIRフィルタ回路は、ブロックＥとブロックＦの合計２ブロックにより構成されている。入力部２１Ａおよび入力部２１Ｂからのデータは、それぞれシフトレジスタ部１１１Ａおよびシフトレジスタ部１１１Ｂに供給される。シフトレジスタ部１１１Ａのシフトレジスタ１１１Ａ-１乃至１１１Ａ-（２Ｎ＋１）は、後段から供給されるデータを後段にシフトするとともに、それぞれ乗算部２４Ａの乗算器２４Ａ-１乃至２４Ａ-（２Ｎ＋１）と乗算部２４Ｂの乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）に供給するようになされている。
【００３０】
同様に、シフトレジスタ部１１１Ｂのシフトレジスタ１１１Ｂ-１乃至１１１Ｂ-（２Ｎ＋１）は、後段から供給されるデータを後段にシフトするとともに、それぞれ乗算部２４Ａ’の乗算器２４Ａ’-１乃至２４Ａ’-（２Ｎ＋１）と乗算部２４Ｂ’の乗算器２４Ｂ’-１乃至２４Ｂ’-（２Ｎ＋１）に供給するようになされている。
【００３１】
減算器１１２は、加減算部２５Ａからのデータに対して、加減算部２５Ｂ’からのデータを減算し、その減算結果としてのデータを出力部２８Ａに出力する。加算器１１３は、加減算部２５Ｂからのデータと、加減算部２５Ａ’からのデータを加算し、その演算結果を出力部２８Ｂに出力する。
【００３２】
その他の構成は、図１２における場合と同様とされている。FIRフィルタ回路をこのような構成にすることにより、図１２の場合と比較して、回路規模を削減することができる。
【００３３】
【発明が解決しようとする課題】
しかしながら、以上の構成においては、タップ係数を乗ずるための回路と総和を求めるための回路がそれぞれ４つずつ設けられているため、その占有面積が大きくなり、装置が大型になる課題があった。
【００３４】
本発明はこのような状況に鑑みてなされたものであり、構成を簡略化し、装置の小型化を図るものである。
【００３５】
【課題を解決するための手段】
請求項１に記載のデータ演算装置は、第１のデータが入力される第１の入力手段と、第２のデータが入力される第２の入力手段と、第１の入力手段からの第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段と、第２の入力手段からの第２のデータを蓄積する第２の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する第１の選択手段と、第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択する複数の選択素子を有する第２の選択手段と、第２のクロックレートで動作し、第１の選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、第２のクロックレートで動作し、第２の選択手段により選択された複数の第２の部分データまたは複数の第１の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、第２のクロックレートで動作し、第１の乗算手段の複数の乗算素子での乗算結果の総和を演算する第１の演算手段と、第２のクロックレートで動作し、第２の乗算手段の複数の乗算素子での乗算結果の総和を演算する第２の演算手段と、第２のクロックレートで動作し、第１の演算手段の演算結果と第２の演算手段の演算結果を加算する加算手段と、第２のクロックレートで動作し、加算手段の加算結果を遅延する遅延手段と、遅延手段の出力を出力する第１の出力手段と、加算手段の出力を出力する第２の出力手段とを備えることを特徴とする。
【００３６】
請求項５に記載のデータ演算方法は、第１のデータが入力される第１の入力ステップと、第２のデータが入力される第２の入力ステップと、第１のクロックレートで、第１の入力ステップで入力された第１のデータを蓄積する第１の蓄積ステップと、第１のクロックレートで、第２の入力ステップで入力された第２のデータを蓄積する第２の蓄積ステップと、第１のクロックレートの２倍のクロックレートの第２のクロックレートで、第１のクロックレートのクロックの一方の半部の期間で、第１の蓄積ステップで蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の蓄積ステップで蓄積された複数の第２の部分データを選択する第１の選択ステップと、第２のクロックレートで、第１のクロックレートのクロックの一方の半部の期間で、第２の蓄積ステップで蓄積された複数の第２の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第１の蓄積ステップで蓄積された複数の第１の部分データを選択する第２の選択ステップと、第２のクロックレートで、第１の選択ステップで選択された複数の第２の部分データまたは複数の第１の部分データに対して第２のタップ係数を乗算する第１の乗算ステップと、第２のクロックレートで、第２の選択ステップで選択された複数の第２の部分データまたは複数の第１の部分データに対して第２のタップ係数を乗算する第２の乗算ステップと、第２のクロックレートで、第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、第２のクロックレートで、第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、第２のクロックレートで、第１の演算ステップにおける演算結果と第２の演算ステップにおける演算結果を加算する加算ステップと、第２のクロックレートで、加算ステップにおける加算結果を遅延する遅延ステップと、遅延ステップで遅延されたデータを出力する第１の出力ステップと、加算ステップの出力を出力する第２の出力ステップとを備えることを特徴とする。
【００３７】
請求項６に記載のデータ演算装置は、第１のデータが入力される第１の入力手段と、第２のデータが入力される第２の入力手段と、第１の入力手段からの第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段と、第２の入力手段からの第２のデータを蓄積する第２の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する選択手段と、第２のクロックレートで動作し、選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、第２のクロックレートで動作し、選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、第２のクロックレートで動作し、第１の乗算手段の複数の乗算素子での乗算結果の総和を演算する第１の演算手段と、第２のクロックレートで動作し、第２の乗算手段の複数の乗算素子での乗算結果の総和を演算する第２の演算手段と、第１の演算手段の演算結果を遅延する第１の遅延手段と、第２の演算手段の演算結果を遅延する第２の遅延手段と、第２のクロックレートで動作し、第１の遅延手段により遅延されたデータから第２の演算手段の出力を減算する減算手段と、第２のクロックレートで動作し、第２の遅延手段の出力と第１の演算手段の出力を加算する加算手段と、減算手段の減算結果を出力する第１の出力手段と、加算手段の加算結果を出力する第２の出力手段とを備えることを特徴とする。
【００３８】
請求項８に記載のデータ演算方法は、第１のデータが入力される第１の入力ステップと、第２のデータが入力される第２の入力ステップと、第１のクロックレートで、第１の入力ステップで入力された第１のデータを蓄積する第１の蓄積ステップと、第１のクロックレートで、第２の入力ステップで入力された第２のデータを蓄積する第２の蓄積ステップと、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の蓄積ステップで蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の蓄積ステップで蓄積された複数の第２の部分データを選択する選択ステップと、第２のクロックレートで、選択ステップで選択された複数の第１の部分データまたは複数の第２の部分データに対して第１のタップ係数を乗算する第１の乗算ステップと、第２のクロックレートで、選択ステップで選択された複数の第１の部分データまたは複数の第２の部分データに対して第２のタップ係数を乗算する第２の乗算ステップと、第２のクロックレートで、第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、第２のクロックレートで、第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、第２のクロックレートで、第１の演算ステップにおける演算結果を遅延する第１の遅延ステップと、第２のクロックレートで、第２の演算ステップにおける演算結果を遅延する第２の遅延ステップと、第２のクロックレートで、第１の遅延ステップで遅延されたデータから第２の演算ステップの出力を減算する減算ステップと、第２のクロックレートで、第２の遅延ステップで遅延されたデータと第１の演算ステップの演算結果を加算する加算ステップと、減算ステップにおける減算結果を出力する第１の出力ステップと、加算ステップにおける加算結果を出力する第２の出力ステップとを備えることを特徴とする。
【００３９】
請求項９に記載のデータ演算装置は、第１のデータが入力される第１の入力手段と、第２のデータが入力される第２の入力手段と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の入力手段からの第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の入力手段からの第２の部分データを選択する選択素子を有する第１の選択手段と、第１の選択手段により選択された部分データを順次蓄積する蓄積手段であって、第２のクロックレートで動作する直列に接続された複数の遅延素子を有する蓄積手段と、第２のクロックレートで動作し、蓄積手段により蓄積された複数の第１の部分データに対して、第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、第２のクロックレートで動作し、蓄積手段により蓄積された複数の第２の部分データに対して、第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、第２のクロックレートで動作し、第１の乗算手段の乗算結果の総和を演算する第１の演算手段と、第２のクロックレートで動作し、第２の乗算手段の乗算結果の総和を演算する第２の演算手段と、第２のクロックレートで動作し、第２の演算手段の演算結果を遅延する第１の遅延手段と、第２のクロックレートで動作し、第１の遅延手段により遅延されたデータを遅延する第２の遅延手段と、第２のクロックレートで動作し、第２の演算手段の出力の符号を反転する反転手段と、第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、反転手段により反転されたデータを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の遅延手段により遅延されたデータを選択する第２の選択手段と、第２のクロックレートで動作し、第１の演算手段の演算結果と第２の選択手段により選択されたデータを加算する加算手段と、第２のクロックレートで動作し、加算手段の加算結果としてのデータを遅延する第３の遅延手段と、第３の遅延手段により遅延されたデータを出力する第１の出力手段と、加算手段の出力を出力する第２の出力手段とを備えることを特徴とする。
【００４０】
請求項１１に記載のデータ演算方法は、第１のデータが入力される第１の入力ステップと、第２のデータが入力される第２の入力ステップと、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の入力手段からの第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の入力手段からの第２の部分データを選択する選択素子を有する第１の選択ステップと、第２のクロックレートで、第１の選択ステップで選択された部分データを順次蓄積する蓄積ステップと、第２のクロックレートで、蓄積ステップで蓄積された複数の第１の部分データに対して、第１のタップ係数を乗算する第１の乗算ステップと、第２のクロックレートで、蓄積ステップで蓄積された複数の第２の部分データに対して、第２のタップ係数を乗算する第２の乗算ステップと、第２のクロックレートで、第１の乗算ステップにおける乗算結果の総和を演算する第１の演算ステップと、第２のクロックレートで、第２の乗算ステップにおける乗算結果の総和を演算する第２の演算ステップと、第２のクロックレートで、第２の演算ステップにおける演算結果を遅延する第１の遅延ステップと、第２のクロックレートで、第１の遅延ステップで遅延されたデータを遅延する第２の遅延ステップと、第２のクロックレートで、第２の演算ステップの演算結果の符号を反転する反転ステップと、第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、反転ステップで反転されたデータを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の遅延ステップで遅延されたデータを選択する第２の選択ステップと、第２のクロックレートで、第１の演算ステップにおける演算結果と第２の選択ステップで選択されたデータを加算する加算ステップと、第２のクロックレートで、加算ステップにおける加算結果を遅延する第３の遅延ステップと、第３の遅延ステップで遅延されたデータを出力する第１の出力手段と、加算ステップの加算結果を出力する第２の出力手段とを備えることを特徴とする。
【００４１】
請求項１に記載のデータ演算装置および請求項５に記載のデータ演算方法においては、第１のデータおよび第２のデータが入力され、第１のクロックレートで蓄積される。第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、蓄積された複数の第１の部分データと複数の第２の部分データが選択され、それぞれに対して第１のタップ係数と第２のタップ係数が乗算される。第１のクロックレートのクロックの他方の半部の期間で、蓄積された複数の第２の部分データと複数の第１の部分データが選択され、それぞれに対して第１のタップ係数と第２のタップ係数が乗算される。第１のタップ係数が乗算されたデータの総和と第２のタップ係数が乗算されたデータの総和が加算され、加算結果が遅延される。そして、遅延されたデータと、加算結果がそれぞれ出力される。
【００４２】
請求項６に記載のデータ演算装置および請求項８に記載のデータ演算方法は、第１のデータおよび第２のデータが入力され、第１のクロックレートで蓄積される。第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、蓄積された複数の第１の部分データが選択され、第１のタップ係数と第２のタップ係数が乗算される。第１のクロックレートのクロックの他方の半部の期間で、蓄積された複数の第２の部分データが選択され、第１のタップ係数と第２のタップ係数が乗算される。第１のタップ係数が乗算されたデータの総和と第２のタップ係数が乗算されたデータの総和が演算され、それぞれ遅延される。遅延されたそれらの総和に対して、それぞれ、第２のタップ係数が乗算されたデータの総和と第１のタップ係数が乗算されたデータの総和が減算または加算される。そして、それらの減算結果および加算結果がそれぞれ出力される。
【００４３】
請求項９に記載のデータ演算装置および請求項１１に記載のデータ演算方法は、第１のデータおよび第２のデータが入力され、第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、第１の部分データが選択され、第１のクロックレートのクロックの他方の半部の期間で、第２の部分データが選択され、順次蓄積される。蓄積されたデータに対して、第１のタップ係数と第２のタップ係数が乗算される。第２のタップ係数が乗算されたデータの総和が演算され、第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、その総和を反転したもの、第１のクロックレートのクロックの他方の半部の期間で、その総和が２クロック分遅延されたものが選択される。選択されたデータは、第１のタップ係数が乗算されたデータの総和に加算され、その加算結果が遅延される。そして、遅延されたデータおよび加算結果がそれぞれ出力される。
【００４４】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００４５】
請求項１に記載のデータ演算装置は、第１のデータが入力される第１の入力手段（例えば、図５の入力部２１Ａ）と、第２のデータが入力される第２の入力手段（例えば、図５の入力部２１Ｂ）と、第１の入力手段からの第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段（例えば、図５のシフトレジスタ部２２Ａ）と、第２の入力手段からの第２のデータを蓄積する第２の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段（例えば、図５のシフトレジスタ部２２Ｂ）と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する第１の選択手段（例えば、図５のセレクタ部２３Ａ）と、第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択する複数の選択素子を有する第２の選択手段（例えば、図５のセレクタ部２３Ｂ）と、第２のクロックレートで動作し、第１の選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段（例えば、図５の乗算部２４Ａ）と、第２のクロックレートで動作し、第２の選択手段により選択された複数の第２の部分データまたは複数の第１の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段（例えば、図５の乗算部２４Ｂ）と、第２のクロックレートで動作し、第１の乗算手段の複数の乗算素子での乗算結果の総和を演算する第１の演算手段（例えば、図５の加減算部２５Ａ）と、第２のクロックレートで動作し、第２の乗算手段の複数の乗算素子での乗算結果の総和を演算する第２の演算手段（例えば、図５の加減算部２５Ｂ）と、第２のクロックレートで動作し、第１の演算手段の演算結果と第２の演算手段の演算結果を加算する加算手（例えば、図５の加算器２６）段と、第２のクロックレートで動作し、加算手段の加算結果を遅延する遅延手段（例えば、図５の遅延回路２７）と、遅延手段の出力を出力する第１の出力手段（例えば、図５の出力部２８Ａ）と、加算手段の出力を出力する第２の出力手段と（例えば、図５の出力部２８Ｂ）を備えることを特徴とする。
【００４６】
請求項６に記載のデータ演算装置は、第１のデータが入力される第１の入力手段と、第２のデータが入力される第２の入力手段と、第１の入力手段からの第１のデータを蓄積する第１の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第１の蓄積手段と、第２の入力手段からの第２のデータを蓄積する第２の蓄積手段であって、第１のクロックレートで動作する直列に接続された複数の遅延素子を有する第２の蓄積手段と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の蓄積手段の複数の遅延素子に蓄積された複数の第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の蓄積手段の複数の遅延素子に蓄積された複数の第２の部分データを選択する複数の選択素子を有する選択手段（例えば、図８のセレクタ部４１）と、第２のクロックレートで動作し、選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、第２のクロックレートで動作し、選択手段により選択された複数の第１の部分データまたは複数の第２の部分データに対して第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、第２のクロックレートで動作し、第１の乗算手段の複数の乗算素子での乗算結果の総和を演算する第１の演算手段と、第２のクロックレートで動作し、第２の乗算手段の複数の乗算素子での乗算結果の総和を演算する第２の演算手段と、第１の演算手段の演算結果を遅延する第１の遅延手段（例えば、図８の遅延回路２７Ａ）と、第２の演算手段の演算結果を遅延する第２の遅延手段（例えば、図８の遅延回路２７Ｂ）と、第２のクロックレートで動作し、第１の遅延手段により遅延されたデータから第２の演算手段の出力を減算する減算手段（例えば、図８の減算器４２）と、第２のクロックレートで動作し、第２の遅延手段の出力と第１の演算手段の出力を加算する加算手段（例えば、図８の加算器４３）と、減算手段の減算結果を出力する第１の出力手段と、加算手段の加算結果を出力する第２の出力手段とを備えることを特徴とする。
【００４７】
請求項９に記載のデータ演算装置は、第１のデータが入力される第１の入力手段と、第２のデータが入力される第２の入力手段と、第１のクロックレートの２倍のクロックレートの第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、第１の入力手段からの第１の部分データを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の入力手段からの第２の部分データを選択する選択素子を有する第１の選択手段（例えば、図１０のセレクタ５１）と、第１の選択手段により選択された部分データを順次蓄積する蓄積手段であって、第２のクロックレートで動作する直列に接続された複数の遅延素子を有する蓄積手段（例えば、図１０のシフトレジスタ部５２）と、第２のクロックレートで動作し、蓄積手段により蓄積された複数の第１の部分データに対して、第１のタップ係数を乗算する複数の乗算素子を有する第１の乗算手段と、第２のクロックレートで動作し、蓄積手段により蓄積された複数の第２の部分データに対して、第２のタップ係数を乗算する複数の乗算素子を有する第２の乗算手段と、第２のクロックレートで動作し、第１の乗算手段の乗算結果の総和を演算する第１の演算手段と、第２のクロックレートで動作し、第２の乗算手段の乗算結果の総和を演算する第２の演算手段と、第２のクロックレートで動作し、第２の演算手段の演算結果を遅延する第１の遅延手段（例えば、図１０の遅延回路５３）と、第２のクロックレートで動作し、第１の遅延手段により遅延されたデータを遅延する第２の遅延手段（例えば、図１０の遅延回路５４）と、第２のクロックレートで動作し、第２の演算手段の出力の符号を反転する反転手段（例えば、図１０のセレクタ５５）と、第２のクロックレートで動作し、第１のクロックレートのクロックの一方の半部の期間で、反転手段により反転されたデータを選択し、第１のクロックレートのクロックの他方の半部の期間で、第２の遅延手段により遅延されたデータを選択する第２の選択手段（例えば、図１０のセレクタ５５）と、第２のクロックレートで動作し、第１の演算手段の演算結果と第２の選択手段により選択されたデータを加算する加算手段（例えば、図１０の加算器５６）と、第２のクロックレートで動作し、加算手段の加算結果としてのデータを遅延する第３の遅延手段（例えば、図１０の遅延回路５７）と、第３の遅延手段により遅延されたデータを出力する第１の出力手段と、加算手段の出力を出力する第２の出力手段とを備えることを特徴とする。
【００４８】
図１は、本発明のデータ演算装置を適用したOFDM受信装置の構成例を示すブロック図である。この例において、受信アンテナ２は、OFDM変調波１を受信する。IFコンバータ３は、受信したRF信号をIF（中間帯域周波数）に変換する。直交復調回路４は、IF帯域に変換された信号に対して、局部発振回路５より出力される周波数ｆ1の信号を乗算して直交復調を施し、同相（Ｉ）成分と直交（Ｑ）成分を抽出する。
【００４９】
LPF（ローパスフィルタ）６，７は、直交復調回路４から出力された同相成分と直交成分に含まれている不要な高周波成分を除去する。Ａ／Ｄ変換回路８，９は、LPF６，７から出力された信号を対応するディジタル信号に変換する。
【００５０】
FFT（First Forurier Transform）回路１０は、Ａ／Ｄ変換回路８，９から出力されたディジタル信号を周波数領域の信号（OFDM周波数信号）に変換する。位相補正回路１１は、位相誤差検出回路１４から出力される位相誤差信号を参照して、OFDM周波数信号の位相回転を補正する。
【００５１】
図２に示すように、OFDM信号には所定の周波数位置（この例では、第０，５，１０，１５，２０番目の位置）にパイロット搬送波が挿入されているので、位相誤差検出回路１４は、そのようなパイロット搬送波を利用して、送信位相と受信位相とを比較し、位相誤差を検出する。デマッピング回路１２は、位相補正回路１１により位相が補正されたOFDM周波数信号の受信点を識別し、受信信号を端子１３から出力する。
【００５２】
図３は、位相補正回路１１のより詳細な構成を示すブロック図である。この図においては、FFT回路１０から供給される２つの入力が１入力として表されている。FFT回路１０から供給されるデータは、乗算器１６Ａと乗算器１６Ｂに供給される。乗算器１６Ａは供給されたデータに対して、パイロット搬送波発生器１５により発生されるパイロット搬送波を乗算し、FIRフィルタ１７に供給する。FIRフィルタ１７は、供給されたデータから所定の周波数領域のデータを抽出し、そのデータを逆数演算器１８に供給する。図４は、FIRフィルタ１７の特性を示している。この図においては、正規化周波数の約−０．３乃至０．０５の範囲が抽出され、他はカットされることがわかる。
【００５３】
逆数演算器１８は、FIRフィルタ１７からのデータを逆数に変換し、そのデータを乗算器１６Ｂに供給する。乗算器１６Ｂは、FFT回路１０から供給されるデータに対して、逆数演算器１８からのデータを乗算する。乗算器１６Ｂからのデータは、デマッピング回路１２に供給される。
【００５４】
図５は、位相誤差検出回路１４において、（Ｐ＋ｊＱ）（Ｒ＋ｊＳ）の演算を行い、実部の項（ＰＲ−ＱＳ）と虚部の項（ＰＳ＋ＲＱ）を求める場合の、本発明のデータ演算装置の一構成例を示すブロック図であり、図１２に示した場合と対応する部分には同一の符号が付されており、その説明は適宜省略する。この構成例においては、セレクタ部２３Ａは、セレクタ２３Ａ-１乃至２３Ａ-（２Ｎ＋１）により構成されており、各セレクタは、それぞれシフトレジスタ部２２Ａのシフトレジスタ２２Ａ-１乃至２２Ａ-（２Ｎ＋１）からと、シフトレジスタ部２２Ｂのシフトレジスタ２２Ｂ-１乃至２２Ｂ-（２Ｎ＋１）からの、合計２つのデータが供給されている。セレクタ部２３Ｂは、セレクタ２３Ｂ-１乃至２３Ｂ-（２Ｎ＋１）により構成されており、各セレクタは、それぞれシフトレジスタ部２２Ａのシフトレジスタ２２Ａ-１乃至２２Ａ-（２Ｎ＋１）からと、シフトレジスタ部２２Ｂのシフトレジスタ２２Ｂ-１乃至２２Ｂ-（２Ｎ＋１）からの、合計２つのデータが供給されている。
【００５５】
ここで、セレクタ部２３Ａおよびセレクタ部２３Ｂ以降の各回路は、入力部２１Ａおよび入力部２１Ｂに入力されるデータのクロックレート（以下、入力クロックレートと称する）の２倍のクロックレートで動作するように設定されている。セレクタ部２３Ａの各セレクタは、所定のクロック（入力クロックレートの１クロック中の前半）のタイミングにおいて、シフトレジスタ部２２Ａの対応するシフトレジスタからのデータを選択して、それぞれ乗算部２４Ａの乗算器２４Ａ-１乃至２４Ａ-（２Ｎ＋１）に供給し、次のクロック（入力クロックレートの１クロック中の後半）のタイミングにおいて、シフトレジスタ部２２Ｂからのデータを選択して乗算部２４Ａの対応する乗算器に供給するという動作を交互に繰り返すようになされている。
【００５６】
一方、セレクタ部２３Ｂの各セレクタは、所定のクロックのタイミングにおいて、シフトレジスタ部２２Ｂからのデータを選択してその符号を反転し、それぞれ乗算部２４Ｂの乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）に供給し、次のクロックのタイミングにおいて、シフトレジスタ部２２Ａからのデータを選択して、乗算部２４Ｂの対応する乗算器に供給するという動作を交互に繰り返すようになされている。
【００５７】
遅延回路２７は、加算器２６から供給される演算結果としてのデータを１クロック遅延（入力クロックレートを基準にすると、２分の１クロック遅延）した後、次のクロックのタイミングにおいて、そのデータを出力部２８Ａを介して出力するようになされている。これにより、入力クロックレートに対応するクロックレートで、出力部２８Ａおよび出力部２８Ｂから演算結果が出力されることになる。その他の構成は、図１２に示した場合と同様である。
【００５８】
次に、図６を参照して、その動作を説明する。この例においては、例えば、データａnとデータｂnに対して演算を行う場合の動作を示したものであり、その他の動作は、説明の簡単のために考慮しないものとする。図５に示した構成例と対応する部分には、同一の符号が付されている。最初に、タイミング１においては、入力部２１Ａ（図５参照）から入力されたデータａnと入力部２１Ｂ（図５参照）から入力されたデータｂnは、それぞれシフトレジスタ２２Ａ-１とシフトレジスタ２２Ｂ-１に供給される。
【００５９】
タイミング２においては、データａnは、セレクタ２３Ａ-１およびセレクタ２３Ｂ-１に供給され、データｂnは、セレクタ２３Ａ-１およびセレクタ２３Ｂ-１に供給される。
【００６０】
タイミング３において、セレクタ２３Ａ-１により選択されたデータａnは、乗算器２４Ａ-１により、タップ係数ｃ-Nが乗算される。また、セレクタ２３Ｂ-１により選択され、その符号が反転されたデータ−ｂnは、乗算器２４Ｂ-１により、タップ係数ｄ-Nが乗算される。
【００６１】
タイミング４では、乗算器２４Ａ-１の乗算結果としてのデータａnｃ-Nは、加減算器２５Ａに供給され（いまの場合、その動作は考慮しないものとする）、セレクタ２３Ｂ-１により選択されたデータａnは、乗算器２４Ｂ-１によりタップ係数ｄ-Nが乗算される。また、乗算器２４Ｂ-１の乗算結果としてのデータ−ｂnｄ-Nは、加減算部２５Ｂに供給され、セレクタ２３Ａ-１により選択されたデータｂnは、乗算器２４Ａ-１によりタップ係数ｃ-Nが乗算される。
【００６２】
タイミング５において、加算器２６により、加減算部２５Ａからのデータａnｃ-Nと加減算部２５Ｂからのデータ−ｂnｄ-Nが加算され、乗算器２４Ｂ-１の乗算結果としてのデータａnｄ-Nは、加減算部２５Ｂに供給される。また、乗算器２４Ａ-１の乗算結果としてのデータｂnｃ-Nは、加減算部２５Ａに供給される。
【００６３】
タイミング６において、加算器２６の加算結果としてのデータａnｃ-N−ｂnｄ-Nは、遅延回路２７により１クロック分遅延され、また、加算器２６により、加減算器２５Ｂからのデータａnｄ-Nと加減算器２５Ａからのデータｂnｃ-Nが加算される。そして、タイミング７においては、出力部２８Ａより、最終的な演算結果の実部に対応するデータａnｃ-N−ｂnｄ-Nが、出力部２８Ｂより最終的な演算結果の虚部に対応するデータａnｃ-N＋ｂnｄ-Nがそれぞれ得られる。
【００６４】
図７は、図５のデータ演算装置の他の構成例を示しており、図５に示した場合と対応する部分には、同一の符号が付されており、その説明は適宜省略する。この構成例においては、図５に示したセレクタ部２３Ｂに対応する回路として、セレクタ部２３Ｂ’が設けられており、また、加減算部２５Ｂの後段に、セレクタ３０が設けられている。セレクタ部２３Ｂ’のセレクタ２３Ｂ’-１乃至２３Ｂ’-（２Ｎ＋１）は、所定のクロックのタイミングにおいて、それぞれシフトレジスタ部２２Ｂのシフトレジスタ２２Ｂ-１乃至２２Ｂ-（２Ｎ＋１）からのデータを選択し、乗算部２４Ｂの乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）に供給し、次のクロックのタイミングにおいて、シフトレジスタ部２２Ａのシフトレジスタ２２Ａ-１乃至２２Ａ-（２Ｎ＋１）からのデータを選択し、乗算部２４Ｂの対応する乗算器に供給するという動作を交互に繰り返すようになされている。
【００６５】
セレクタ３０は、所定のクロックのタイミングにおいて、加減算部２５Ｂからのデータを選択してその符号を反転した後、加算器２６に供給し、次のクロックのタイミングにおいて、加減算部２５Ｂからのデータを選択し、加算器２６に供給するという動作を交互に繰り返すようになされている。これにより、図５に示したセレクタ部２３Ｂの各セレクタによる符号の反転処理に対応することが可能となる。その他の構成およびその動作は、図５に示した場合と同様である。
【００６６】
図８は、図５のデータ演算装置のより簡略化した構成例を示しており、対応する部分には同一の符号を付してあり、その説明は適宜省略する。この構成例においては、シフトレジスタ部２２Ａおよびシフトレジスタ部２２Ｂに対して、セレクタ部４１が設けられている。セレクタ部４１は、セレクタ４１-１乃至４１-（２Ｎ＋１）により構成されており、各セレクタは、それぞれシフトレジスタ部２２Ａのシフトレジスタ２２Ａ-１乃至２２Ａ-（２Ｎ＋１）からのデータと、シフトレジスタ部２２Ｂのシフトレジスタ２２Ｂ-１乃至２２Ｂ-（２Ｎ＋１）からのデータの合計２つのデータが供給されている。このセレクタ部４１以降の各回路は、入力クロックレートの２倍のクロックレートで動作するようになされている。
【００６７】
セレクタ部４１の各セレクタは、所定のクロックのタイミングにおいて、シフトレジスタ部２２Ａの対応するシフトレジスタからのデータを選択して、乗算部２４Ａおよび乗算部２４Ｂの対応する乗算器に供給し、次のクロックのタイミングにおいて、シフトレジスタ部２２Ｂの対応するシフトレジスタからのデータを選択して、乗算部２４Ａおよび乗算部２４Ｂの対応する乗算器に供給するという動作を交互に繰り返すようになされている。
【００６８】
遅延回路２７Ａは、加減算部２５Ａからのデータを１クロック分遅延した後、減算器４２に供給する。遅延回路２７Ｂは、加減算部２５Ｂからのデータを１クロック分遅延した後、加算器４３に供給する。減算器４２は、遅延回路２７Ａにより遅延されたデータに対して、加減算部２５Ｂからのデータを減算し、減算結果としてのデータを出力部２８Ａに出力する。加算器４３は、遅延回路２７Ｂにより遅延されたデータと加減算部２５Ａからのデータを加算し、加算結果としてのデータを出力部２８Ｂに出力する。その他の構成は、図５に示した場合と同様である。
【００６９】
次に図９を参照して、その動作を説明する。この例においては、例えば、データａnとデータｂnに対して演算が行われる場合の動作を示したものであり、その他の動作は、説明の簡単のために考慮しないことにする。図８に示した構成例と対応する部分には、同一の符号が付されている。まず、タイミング１において、入力部２１Ａ（図８参照）から入力されたデータａnおよび入力部２１Ｂ（図８参照）から入力されたデータｂnは、それぞれシフトレジスタ２２Ａ-１およびシフトレジスタ２２Ｂ-１に供給される。
【００７０】
続いてタイミング２において、シフトレジスタ２２Ａ-１からのデータａnおよびシフトレジスタ２２Ｂ-１のデータｂnは、それぞれセレクタ４１-１に供給される。タイミング３においては、セレクタ４１-１により選択されたデータａnは、乗算器２４Ａ-１および乗算器２４Ｂ-１に供給され、それぞれにより、タップ係数ｃ-Nおよびタップ係数ｄ-Nが乗算される。
【００７１】
タイミング４においては、乗算器２４Ａ-１の乗算結果としてのデータａnｃ-Nは、加減算部２５Ａに供給され、乗算器２４Ｂ-１の乗算結果としてのデータａnｄ-Nは、加減算部２５Ｂに供給される。また、セレクタ４１-１により選択されたデータｂnは、乗算器２４Ａ-１および乗算器２４Ｂ-１に供給され、それぞれにより、タップ係数ｃ-Nおよびタップ係数ｄ-Nが乗算される。
【００７２】
タイミング５においては、加減算部２５Ａからのデータａnｃ-Nと加減算部２５Ｂからのデータａnｄ-Nは、それぞれ遅延回路２７Ａと遅延回路２７Ｂにより、１クロック分遅延される。また、乗算器２４Ａ-１の乗算結果としてのデータｂnｃ-Nと、乗算器２４Ｂ-１の乗算結果としてのデータｂnｄ-Nは、それぞれ、加減算部２５Ａと加減算部２５Ｂに供給される。
【００７３】
タイミング６においては、減算器４２により、遅延回路２７Ａにより遅延されたデータａnｃ-Nに対して加減算部２５Ｂからのデータｂnｄ-Nが減算される。また、加算器４３により、遅延回路２７Ｂにより遅延されたデータａnｄ-Nと加減算部２５Ａからのデータｂnｃ-Nが加算される。そして、タイミング７において、出力部２８Ａからは、最終的な演算結果の実部に対応するデータａnｃ-N−ｂnｄ-Nが、出力部２８Ｂからは、虚部に対応するデータａnｄ-N＋ｂnｃ-Nがそれぞれ出力される。
【００７４】
図１０は、図８のデータ演算装置のより簡略化された構成例を示すブロック図であり、図８に示した場合と対応する部分には同一の符号が付されており、その説明を適宜省略する。この例においては、入力部２１Ａおよび入力部２１Ｂの後段に、セレクタ５１が設けられている。このセレクタ５１以降の各回路は、入力レートの２倍のクロックレートで動作するようになされている。
【００７５】
セレクタ５１は、所定のクロックのタイミングにおいて、入力部２１Ａからのデータを選択してシフトレジスタ部５２に供給し、次のクロックのタイミングにおいて、入力部２１Ｂからのデータを選択して、シフトレジスタ部５２に供給するという動作を交互に繰り返すようになされている。シフトレジスタ部５２は、この例においては、シフトレジスタ５２-１乃至５２-（４Ｎ＋２）により構成されており、各シフトレジスタは、前段から供給されるデータを保持した後、後段のシフトレジスタにシフトするとともに、偶数番目の各シフトレジスタは、それぞれ乗算部２４Ａの乗算器２４Ａ-１乃至２４Ａ-（２Ｎ＋１）に供給し、奇数番目の各シフトレジスタは、それぞれ乗算部２４Ｂの乗算器２４Ｂ-１乃至２４Ｂ-（２Ｎ＋１）に供給するようになされている。
【００７６】
この例においては、加減算部２５Ｂから出力される演算結果に対して、加減算部２５Ａから出力されるデータに、２クロック分（入力クロックレートで１クロック分）のずれが、１クロックおきに生じる。例えば、このときの加減算部２５Ｂからの演算結果としてのデータが（５）式であるものとすると、加減算部２５Ａからは、以下の演算結果が出力される。
【００７７】
【数９】
0004303797.tif 000010
【００７８】
その２クロック分のずれを補正するため、遅延回路５３，５４は、加減算部２５Ｂからのデータをそれぞれ１クロック分遅延するようになされている。セレクタ５５は、所定のクロックのタイミングにおいて、加減算部２５Ｂからのデータを選択してその符号を反転し、加算器５６に供給し、次のクロックのタイミングにおいて、遅延回路５４からのデータを選択して、加算器５６に供給するという動作を交互に繰り返すようになされている。
【００７９】
加算器５６は、加減算部２５Ａからのデータと、セレクタ５５からのデータを加算し、遅延回路５７に供給するようになされている。遅延回路５７は、加算器５６からのデータを１クロック分遅延した後、出力部２８Ａに出力する。その他の構成は、図８に示した場合と同様である。
【００８０】
次に、図１１のタイミングチャートを参照して、その動作を説明する。図１１（Ａ）は、例えば、ａnｄ-N＋ｂnｃ-Nの演算を行う場合の動作を示したものである。図１０に示した構成例と対応する部分には、同一の符号が付されている。最初に、タイミング１においては、データａnが、セレクタ５１（図１０参照）により選択され、シフトレジスタ５２-１に入力される。タイミング２においては、データａnは、乗算器２４Ｂ-１により、タップ係数ｄ-Nが乗算される。セレクタ５１により選択されたデータｂnは、シフトレジスタ５２-１に入力される。
【００８１】
タイミング３においては、乗算器２４Ｂ-１の乗算結果としてのデータａnｄ-Nは、加減算部２５Ｂに供給される。データｂnは、シフトレジスタ５２-２に供給される。タイミング４では、加減算部２５Ｂからのデータａnｄ-Nは、遅延回路５３により遅延され、データｂnは、乗算器２４Ａ-１により、タップ係数ｃ-Nが乗算される。続いて、タイミング５においては、遅延回路５３に遅延されたデータａnｄ-Nは、遅延回路５４により、さらに遅延され、乗算部２４Ａ-１の演算結果としてのデータｂnｃ-Nは、加減算部２５Ａに供給される。そして、タイミング６において、加算器５６により、加減算部２５Ａからのデータｂnｃ-Nと、遅延回路５４からのデータａnｄ-Nが加算され、タイミング７において、出力部２８Ｂより演算結果としてのデータａnｄ-N＋ｂnｃ-Nが出力される。
【００８２】
同様に、図１１（Ｂ）は、例えば、ａnｃ-N−ｂnｄ-Nの演算を行う場合の動作を示したものである。まず、タイミング１において、セレクタ５１によりデータａnが選択され、シフトレジスタ５２-１に供給される。タイミング２において、データａnは、シフトレジスタ５２-２に供給され、セレクタ５１により選択されたデータｂnは、シフトレジスタ５２-１に供給される。
【００８３】
タイミング３においては、データａnは、乗算器２４Ａ-１により、タップ係数ｃ-Nが乗算され、データｂnは、乗算器２４Ｂ-１により、タップ係数ｄ-Nが乗算される。タイミング４では、乗算器２４Ａ-１の乗算結果としてのデータａnｃ-Nおよび乗算器２４Ｂ-１の乗算結果としてのデータｂnｄ-Nは、それぞれ加減算部２５Ａおよび加減算部２５Ｂに供給される。そして、加算器５６により、加減算部２５Ａからのデータと、加減算部２５Ｂから出力され、インバータ６１（図８のセレクタ５５による反転制御を示している）により反転されたデータが加算される。
【００８４】
タイミング６において、加算器５６の加算結果としてのデータａnｃ-N−ｂnｄ-Nは、遅延回路５７により遅延された後、タイミング７において、出力部２８Ａから出力される。
【００８５】
図１１（Ａ）と図１１（Ｂ）に示した動作は、同時に行われており、これにより、同一のタイミングで、出力部２８Ａからは、演算結果ａnｃ-N−ｂnｄ-Nが得られ、出力部２８Ｂからは、演算結果ａnｄ-N＋ｂnｃ-Nが得られることになる。そして、図１０のデータ演算装置では、このような処理が複数のデータに対して行われている。
【００８６】
以上のようにデータ演算装置を構成することにより、回路規模を削減することが可能となる。
【００８７】
なお、データの符号を反転するための回路（例えば、図６のセレクタ３０）は、以上の実施の形態に示した場合に限定されるものではなく、回路の動作上問題の無い箇所への移設が可能である。
【００８８】
【発明の効果】
以上の如く、請求項１に記載のデータ演算装置および請求項５に記載のデータ演算方法によれば、第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、蓄積された複数の第１の部分データと複数の第２の部分データが選択され、それぞれに対して第１のタップ係数と第２のタップ係数が乗算され、第１のクロックレートのクロックの他方の半部の期間で、蓄積された複数の第２の部分データと複数の第１の部分データが選択され、それぞれに対して第１のタップ係数と第２のタップ係数が乗算され、第１のタップ係数が乗算されたデータの総和と第２のタップ係数が乗算されたデータの総和が加算され、加算結果が遅延される。そして、遅延されたデータと、加算結果がそれぞれ出力されるようにしたので、装置の構成を簡略化することが可能となる。
【００８９】
請求項６に記載のデータ演算装置および請求項８に記載のデータ演算方法によれば、第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、蓄積された複数の第１の部分データが選択され、第１のクロックレートのクロックの他方の半部の期間で、蓄積された複数の第２の部分データが選択され、選択された複数の第１の部分データと複数の第２の部分データに対して第１のタップ係数と第２のタップ係数が乗算され、第１のタップ係数が乗算されたデータの総和と第２のタップ係数が乗算されたデータの総和が演算された後、遅延され、遅延されたそれらの総和に対して、それぞれ第２のタップ係数が乗算されたデータの総和と第１のタップ係数が乗算されたデータの総和が減算または加算され、それらの減算結果および加算結果がそれぞれ出力されるようにしたので、装置の構成をより簡略化することが可能となる。
【００９０】
請求項９に記載のデータ演算装置および請求項１１に記載のデータ演算方法によれば、第１のクロックレートの２倍のクロックレートの第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、第１の部分データが選択され、第１のクロックレートのクロックの他方の半部の期間で、第２の部分データが選択され、順次蓄積され、蓄積されたデータに対して、第１のタップ係数と第２のタップ係数が乗算され、第２のタップ係数が乗算されたデータの総和が演算され、第２のクロックレートにおける、第１のクロックレートのクロックの一方の半部の期間で、その総和を反転したもの、第１のクロックレートのクロックの他方の半部の期間で、その総和が２クロック分遅延されたものが選択され、選択されたデータは、第１のタップ係数が乗算されたデータの総和に加算され、その加算結果が遅延され、遅延されたデータおよび加算結果が出力されるようにしたので、装置の構成をさらに簡略化することが可能となる。
【図面の簡単な説明】
【図１】本発明のデータ演算装置を適用したOFDM受信装置の構成例を示すブロック図である。
【図２】データ搬送波とパイロット搬送波の配置状態を説明する図である。
【図３】図１の位相補正回路のより詳細な構成例を示すブロック図である。
【図４】図３のFIRフィルタの特性を示す図である。
【図５】本発明のデータ演算装置の構成例を示すブロック図である。
【図６】図５のデータ演算装置の動作を説明するタイミングチャートである。
【図７】図５のデータ演算装置の他の構成例を示すブロック図である。
【図８】図５のデータ演算装置のより簡略化された構成例を示すブロック図である。
【図９】図８のデータ演算装置の動作を説明するタイミングチャートである。
【図１０】図８のデータ演算装置のより簡略化された構成例を示すブロック図である。
【図１１】図１０のデータ演算装置の動作を説明するタイミングチャートである。
【図１２】従来のFIR回路の構成例を示すブロック図である。
【図１３】図１２のFIR回路のより簡略化された構成例を示すブロック図である。
【符号の説明】
２１Ａ，２１Ｂ  入力部，  ２２Ａ，２２Ｂ  シフトレジスタ部，  ２３Ａ，２３Ｂ  セレクタ部，  ２４Ａ，２４Ｂ  乗算部，  ２５Ａ，２５Ｂ  加減算部，  ２６  加算部，  ２７  遅延回路，  ２８Ａ，２８Ｂ  出力部，  ３０  セレクタ
【図１】
0004303797.tif 000011
【図２】
0004303797.tif 000012
【図３】
0004303797.tif 000013
【図４】
0004303797.tif 000014
【図５】
0004303797.tif 000015
【図６】
0004303797.tif 000016
【図７】
0004303797.tif 000017
【図８】
0004303797.tif 000018
【図９】
0004303797.tif 000019
【図１０】
0004303797.tif 000020
【図１１】
0004303797.tif 000021
【図１２】
0004303797.tif 000022
【図１３】
0004303797.tif 000023