(57)【要約】【課題】回転方向情報を基に偏角を演算する演算回路を要さない座標演算装置を提供することを課題とする。【解決手段】座標演算装置は、第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の回転方向情報を出力するベクタモードＣＯＲＤＩＣ演算部（３０１）と、第２の直交座標データを入力し、前記複数回の回転処理の回転方向情報を用いて、前記第２の直交座標データに対して複数回の回転処理を行うことにより、前記第２の直交座標データを、前記第１の直交座標データで表現されるベクトルの偏角に対して１以外の係数倍した角度だけ回転させた第３の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣ演算部（３０２）とを有する。【選択図】図１
2017123057.tif 000002
【特許請求の範囲】
【請求項１】
第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の回転方向情報を出力するベクタモードＣＯＲＤＩＣ演算部と、
第２の直交座標データを入力し、前記複数回の回転処理の回転方向情報を用いて、前記第２の直交座標データに対して複数回の回転処理を行うことにより、前記第２の直交座標データを、前記第１の直交座標データで表現されるベクトルの偏角に対して１以外の係数倍した角度だけ回転させた第３の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣ演算部と
を有することを特徴とする座標演算装置。
【請求項２】
前記係数は、２又は１／２であることを特徴とする請求項１記載の座標演算装置。
【請求項３】
前記回転方向情報は、右回転及び左回転のいずれかの情報であることを特徴とする請求項１又は２記載の座標演算装置。
【請求項４】
前記係数は２であり、
前記回転モードＣＯＲＤＩＣ演算部の角度系列は、前記ベクタモードＣＯＲＤＩＣ演算部の角度系列の２倍であることを特徴とする請求項１〜３のいずれか１項に記載の座標演算装置。
【請求項５】
前記係数は１／２であり、
前記回転モードＣＯＲＤＩＣ演算部の角度系列は、前記ベクタモードＣＯＲＤＩＣ演算部の角度系列の１／２倍であることを特徴とする請求項１〜３のいずれか１項に記載の座標演算装置。
【請求項６】
第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の第１の回転方向情報を出力する第１のベクタモードＣＯＲＤＩＣ演算部と、
第２の直交座標データを入力し、前記第２の直交座標データに対して回転処理を複数回繰り返すことにより、前記第２の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の第２の回転方向情報を出力する第２のベクタモードＣＯＲＤＩＣ演算部と、
少なくとも前記第１の回転方向情報及び前記第２の回転方向情報を基に第３の回転方向情報を出力する演算手段と、
第３の直交座標データを入力し、前記第３の回転方向情報を用いて、前記第３の直交座標データに対して回転処理を複数回繰り返すことにより、前記第３の直交座標データを回転させた第４の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣ演算部と
を有することを特徴とする座標演算装置。
【請求項７】
前記第１の直交座標データで表現されるベクトルの偏角がθ1であり、前記第２の直交座標データで表現されるベクトルの偏角がθ2である場合、前記第４の直交座標データは、前記第３の直交座標データを、θ1＋θ2、θ1−θ2、θ2−θ1、（θ1＋θ2）／２、（θ1−θ2）／２、（θ2−θ1）／２、θ1＋θ2／２、θ1−θ2／２、θ2／２−θ1、θ1／２＋θ2、θ1／２−θ2、又は、θ2−θ1／２だけ回転させたものであることを特徴とする請求項６記載の座標演算装置。
【請求項８】
前記第１の回転方向情報と前記第２の回転方向情報は、それぞれ、右回転及び左回転のいずれかの情報であり、
前記第３の回転方向情報は、右回転、左回転及び無回転のいずれかの情報であることを特徴とする請求項６又は７記載の座標演算装置。
【請求項９】
前記第１のベクタモードＣＯＲＤＩＣ演算部は、前記第１の直交座標データに対して右回転処理又は無回転処理を繰り返し、
前記第１の回転方向情報は、右回転及び無回転のいずれかの情報であり、
前記第２のベクタモードＣＯＲＤＩＣ演算部は、前記第２の直交座標データに対して左回転処理又は無回転処理を繰り返し、
前記第２の回転方向情報は、左回転及び無回転のいずれかの情報であり、
前記第３の回転方向情報は、右回転、左回転及び無回転のいずれかの情報であり、
前記回転モードＣＯＲＤＩＣ演算部は、前記第３の直交座標データに対して右回転処理、左回転処理又は無回転処理を繰り返すことを特徴とする請求項６又は７記載の座標演算装置。
【請求項１０】
さらに、第５の直交座標データを第１の角度だけ回転させることにより、第１象限の前記第１の直交座標データを前記第１のベクタモードＣＯＲＤＩＣ演算部に出力する第１の象限変換手段と、
第６の直交座標データを第２の角度だけ回転させることにより、第４象限の前記第２の直交座標データを前記第２のベクタモードＣＯＲＤＩＣ演算部に出力する第２の象限変換手段と、
第７の直交座標データを、前記第１の角度と前記第２の角度に応じた角度だけ回転させることにより、前記第３の直交座標データを前記回転モードＣＯＲＤＩＣ演算部に出力する第３の象限変換手段とを有することを特徴とする請求項９記載の座標演算装置。
【請求項１１】
前記第１のベクタモードＣＯＲＤＩＣ演算部は、前記第１の直交座標データに対して右回転処理又は無回転処理を繰り返し、
前記第１の回転方向情報は、右回転及び無回転のいずれかの情報であり、
前記第２のベクタモードＣＯＲＤＩＣ演算部は、前記第２の直交座標データに対して右回転処理又は無回転処理を繰り返し、
前記第２の回転方向情報は、右回転及び無回転のいずれかの情報であり、
前記第３の回転方向情報は、右回転、左回転及び無回転のいずれかの情報であり、
前記回転モードＣＯＲＤＩＣ演算部は、前記第３の直交座標データに対して右回転処理、左回転処理又は無回転処理を繰り返すことを特徴とする請求項６又は７記載の座標演算装置。
【請求項１２】
さらに、第５の直交座標データを第１の角度だけ回転させることにより、第１象限の前記第１の直交座標データを前記第１のベクタモードＣＯＲＤＩＣ演算部に出力する第１の象限変換手段と、
第６の直交座標データを第２の角度だけ回転させることにより、第１象限の前記第２の直交座標データを前記第２のベクタモードＣＯＲＤＩＣ演算部に出力する第２の象限変換手段と、
第７の直交座標データを、前記第１の角度と前記第２の角度に応じた角度だけ回転させることにより、前記第３の直交座標データを前記回転モードＣＯＲＤＩＣ演算部に出力する第３の象限変換手段とを有することを特徴とする請求項１１記載の座標演算装置。
【請求項１３】
前記第１のベクタモードＣＯＲＤＩＣ演算部は、前記第１の直交座標データに対して左回転処理又は無回転処理を繰り返し、
前記第１の回転方向情報は、左回転及び無回転のいずれかの情報であり、
前記第２のベクタモードＣＯＲＤＩＣ演算部は、前記第２の直交座標データに対して左回転処理又は無回転処理を繰り返し、
前記第２の回転方向情報は、左回転及び無回転のいずれかの情報であり、
前記第３の回転方向情報は、右回転、左回転及び無回転のいずれかの情報であり、
前記回転モードＣＯＲＤＩＣ演算部は、前記第３の直交座標データに対して右回転処理、左回転処理又は無回転処理を繰り返すことを特徴とする請求項６又は７記載の座標演算装置。
【請求項１４】
さらに、第５の直交座標データを第１の角度だけ回転させることにより、第４象限の前記第１の直交座標データを前記第１のベクタモードＣＯＲＤＩＣ演算部に出力する第１の象限変換手段と、
第６の直交座標データを第２の角度だけ回転させることにより、第４象限の前記第２の直交座標データを前記第２のベクタモードＣＯＲＤＩＣ演算部に出力する第２の象限変換手段と、
第７の直交座標データを、前記第１の角度と前記第２の角度に応じた角度だけ回転させることにより、前記第３の直交座標データを前記回転モードＣＯＲＤＩＣ演算部に出力する第３の象限変換手段とを有することを特徴とする請求項１３記載の座標演算装置。
【請求項１５】
ベクタモードＣＯＲＤＩＣ演算部により、第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の回転方向情報を出力するベクタモードＣＯＲＤＩＣステップと、
回転モードＣＯＲＤＩＣ演算部により、第２の直交座標データを入力し、前記複数回の回転処理の回転方向情報を用いて、前記第２の直交座標データに対して複数回の回転処理を行うことにより、前記第２の直交座標データを、前記第１の直交座標データで表現されるベクトルの偏角に対して１以外の係数倍した角度だけ回転させた第３の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣステップと
を有することを特徴とする座標演算方法。
【請求項１６】
第１のベクタモードＣＯＲＤＩＣ演算部により、第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の第１の回転方向情報を出力する第１のベクタモードＣＯＲＤＩＣステップと、
第２のベクタモードＣＯＲＤＩＣ演算部により、第２の直交座標データを入力し、前記第２の直交座標データに対して回転処理を複数回繰り返すことにより、前記第２の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の第２の回転方向情報を出力する第２のベクタモードＣＯＲＤＩＣステップと、
演算手段により、少なくとも前記第１の回転方向情報及び前記第２の回転方向情報を基に第３の回転方向情報を出力する演算ステップと、
回転モードＣＯＲＤＩＣ演算部により、第３の直交座標データを入力し、前記第３の回転方向情報を用いて、前記第３の直交座標データに対して回転処理を複数回繰り返すことにより、前記第３の直交座標データを回転させた第４の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣステップと
を有することを特徴とする座標演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標演算装置及び座標演算方法に関する。
【背景技術】
【０００２】
複素平面上で複素データを回転させたり、２次元平面上で２次元座標データを回転させるために、ビットシフトと加減算の繰り返しのみで座標回転を実現することが可能な「ＣＯＲＤＩＣ」と呼ばれる座標データ回転演算器が非特許文献１に開示されている。
【０００３】
また、非特許文献２及び特許文献１には、ベクタモードのＣＯＲＤＩＣ及び回転モードのＣＯＲＤＩＣが開示されている。ベクタモードのＣＯＲＤＩＣは、直交座標を極座標に変換し、２次元座標の原点からの距離（絶対値）を出力する。回転モードのＣＯＲＤＩＣは、ベクタモードで得られた偏角情報を回転角として入力し、他の直交座標を回転角だけ回転した直交座標を出力する。
【０００４】
また、非特許文献３には、ダブルローテーション型ＣＯＲＤＩＣが開示されている。ダブルローテーション型ＣＯＲＤＩＣは、θ／２回転を２回行うことによりθ回転を実現する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３２８３５０４号公報
【非特許文献】
【０００６】
【非特許文献１】Ｊ. Ｅ. Ｖｏｌｄｅｒ. “Ｔｈｅ  ＣＯＲＤＩＣ  ｔｒｉｇｏｎｏｍｅｔｒｉｃ ｃｏｍｐｕｔｉｎｇ  ｔｅｃｈｎｉｑｕｅ”，ＩＲＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｐｕｔｅｒｓ，ＥＣ−８：３３０−３３４，１９５９．
【非特許文献２】Ｑｉａｎｇ  Ｇａｏ，Ｌｏｕｉｓｅ  Ｃｒｏｃｋｅｔｔ  ａｎｄ  Ｒｏｂｅｒｔ  Ｓｔｅｗａｒｔ．“ＣＯＡＲＳＥ  ＡＮＧＬＥ  ＲＯＴＡＴＩＯＮ  ＭＯＤＥ  ＣＯＲＤＩＣ  ＢＡＳＥＤ  ＳＩＮＧＬＥ  ＰＲＯＣＥＳＳＩＮＧ  ＥＬＥＭＥＮＴ  ＱＲ−ＲＬＳ  ＰＲＯＣＥＳＳＯＲ”，１７ｔｈ  Ｅｕｒｏｐｅａｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｃｏｎｆｅｒｅｎｃｅ（ＥＵＳＩＰＣＯ ２００９）Ｇｌａｓｇｏｗ，Ｓｃｏｔｌａｎｄ，Ａｕｇｕｓｔ  ４−２８，２００９．
【非特許文献３】Ｎ. Ｔａｋａｇｉ, Ｔ. Ａｓａｄａ, ａｎｄ Ｓ. Ｙａｊｉｍａ, “Ｒｅｄｕｎｄａｎｔ ＣＯＲＤＩＣ ｍｅｔｈｏｄｓ ｗｉｔｈ ａ ｃｏｎｓｔａｎｔ ｓｃａｌｅ ｆａｃｔｏｒ ｆｏｒ ｓｉｎｅ ａｎｄ ｃｏｓｉｎｅ ｃｏｍｐｕｔａｔｉｏｎ”， ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｏｍｐｕｔｅｒｓ，  ｖｏｌ．４０，ｎｏ．９，ｐｐ．９８９−９９５，Ｓｅｐｔ．１９９１．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ベクタモードのＣＯＲＤＩＣから回転モードのＣＯＲＤＩＣへ送る情報は、度数又はラジアンで表される偏角である。しかし、偏角を演算する回路があると、低コスト及び低遅延の実現が困難である。
【０００８】
本発明の目的は、回転方向情報を基に偏角を演算する演算回路を要さない座標演算装置及び座標演算方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の座標演算装置は、第１の直交座標データを入力し、前記第１の直交座標データに対して回転処理を複数回繰り返すことにより、前記第１の直交座標データで表現されるベクトルの大きさを示すデータに収束させ、前記複数回の回転処理の回転方向情報を出力するベクタモードＣＯＲＤＩＣ演算部と、第２の直交座標データを入力し、前記複数回の回転処理の回転方向情報を用いて、前記第２の直交座標データに対して複数回の回転処理を行うことにより、前記第２の直交座標データを、前記第１の直交座標データで表現されるベクトルの偏角に対して１以外の係数倍した角度だけ回転させた第３の直交座標データを示すデータに収束させる回転モードＣＯＲＤＩＣ演算部とを有することを特徴とする。
【発明の効果】
【００１０】
ベクタモードＣＯＲＤＩＣ演算部は、回転方向情報を基に偏角を演算することなく、回転方向情報を回転モードＣＯＲＤＩＣ演算部に出力するので、回転方向情報を基に偏角を演算する演算回路が不要になり、低コスト及び低遅延を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態による座標演算装置の構成例を示す図である。
【図２】パイプライン処理の座標演算装置の構成例を示す図である。
【図３】第２の実施形態による座標演算装置の構成例を示す図である。
【図４】第３の実施形態による座標演算装置の構成例を示す図である。
【図５】ビット間演算手段の入出力を示す図である。
【図６】第４の実施形態による座標演算装置の構成例を示す図である。
【図７】ビット間演算手段の入出力を示す図である。
【図８】第５の実施形態による座標演算装置の構成例を示す図である。
【図９】ビット間演算手段の入出力を示す図である。
【図１０】第６の実施形態による座標演算装置の構成例を示す図である。
【図１１】第７の実施形態による座標演算装置の構成例を示す図である。
【図１２】ビット間演算手段の入出力を示す図である。
【図１３】第８の実施形態による座標演算装置の構成例を示す図である。
【図１４】第１及び第２の象限変換手段による回転角度を示す図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
図１は、本発明の第１の実施形態による座標演算装置の構成例を示す図である。座標演算装置は、ＣＯＲＤＩＣ演算部３０１及び３０２を有する。ＣＯＲＤＩＣ演算部３０１は、偏角の演算回路を持たず、回転方向情報ｄiを逐次出力するベクタモードの再帰型ＣＯＲＤＩＣ演算部である。ＣＯＲＤＩＣ演算部３０２は、偏角の演算回路を持たず、回転方向情報ｄiを逐次入力する回転モードの再帰型ダブルローテーション型ＣＯＲＤＩＣ演算部である。ＣＯＲＤＩＣ演算部３０１は、入力した直交座標（ｘ0，ｙ0）を極座標（ｒ，θ1）に変換し、直交座標（ｘ0，ｙ0）で表現されるベクトルの大きさｒ＝√（ｘ02＋ｙ02）を示すデータｘi+1を出力し、偏角θ1を示す回転方向情報ｄiを出力する。ＣＯＲＤＩＣ演算部３０２は、入力した直交座標（ｕ0，ｖ0）を、回転方向情報ｄiに応じた回転角だけ回転させた直交座標（ｕi+1，ｖi+1）を出力する。以下、ｘｙ座標データを例に説明するが、複素データでもよい。ＣＯＲＤＩＣ演算部３０１及び３０２は、複素平面上で複素データを回転させたり、２次元平面上で２次元座標データを回転させることができる。以下、座標演算装置の座標演算方法を説明する。
【００１３】
次に、ＣＯＲＤＩＣ演算部３０１の構成について説明する。ＣＯＲＤＩＣ演算部３０１は、ｘ座標データｘ0とｙ座標データｙ0を入力し、複数サイクルのフィードバック処理を行い、ｘi+1とｙi+1を出力する。ｘi+1の収束値は、√（ｘ02＋ｙ02）である。ｙi+1の収束値は、０である。セレクタ（マルチプレクサ）３０３は、初回のサイクルでは、データｘ0を選択して出力し、次回以降のサイクルでは、加減算器３０９が出力するデータを選択して出力する。セレクタ３０４は、初回のサイクルでは、データｙ0を選択して出力し、次回以降のサイクルでは、加減算器３１０が出力するデータを選択して出力する。レジスタ３０５は、セレクタ３０３の出力データを１サイクル保持し、データｘiを出力する。レジスタ３０６は、セレクタ３０４の出力データを１サイクル保持し、データｙiを出力する。シフタ３０７は、第ｉサイクルでは、レジスタ３０６の出力データｙiに対してｉビット右シフトすることにより、データｙiに対して２-iを乗算し、データｙi×２-iを出力する。シフタ３０８は、第ｉサイクルでは、レジスタ３０５の出力データｘiに対してｉビット右シフトすることにより、データｘiに対して２-iを乗算し、データｘi×２-iを出力する。
【００１４】
加減算器３０９は、データｙiの正負符号ＳＮを参照し、データｙiが０未満である場合には、左回転として、データｘiからデータｙi×２-iを減算し、次式（１）のデータｘi+1を出力する。
ｘi+1＝ｘi−ｙi×２-i  ・・・（１）
【００１５】
これに対し、加減算器３０９は、データｙiの正負符号ＳＮを参照し、データｙiが０以上である場合には、右回転として、データｘiとデータｙi×２-iを加算し、次式（２）のデータｘi+1を出力する。
ｘi+1＝ｘi＋ｙi×２-i  ・・・（２）
【００１６】
また、加減算器３１０は、データｙiの正負符号ＳＮを参照し、データｙiが０未満である場合には、左回転として、データｙiとデータｘi×２-iを加算し、次式（３）のデータｙi+1を出力する。
ｙi+1＝ｙi＋ｘi×２-i  ・・・（３）
【００１７】
これに対し、加減算器３１０は、データｙiの正負符号ＳＮを参照し、データｙiが０以上である場合には、右回転として、データｙiからデータｘi×２-iを減算し、次式（４）のデータｙi+1を出力する。
ｙi+1＝ｙi−ｘi×２-i  ・・・（４）
【００１８】
加減算器３０９は、出力データｘi+1をセレクタ３０３にフィードバックする。加減算器３１０は、出力データｙi+1をセレクタ３０４にフィードバックする。上記のフィードバック処理の回転演算を繰り返すことにより、第ｎ−１サイクルで、データｘi+1とｙi+1は、それぞれ、次式（５）及び（６）のデータｘnとｙnに収束する。ここで、係数Ａｎは、次式（７）で表される。Πは、直積を表す。
ｘn＝Ａｎ×√（ｘ02＋ｙ02）＝Ａｎ×ｒ  ・・・（５）
ｙn＝０  ・・・（６）
【００１９】
【数１】
2017123057.tif 000003
【００２０】
座標演算装置は、データｘnに１／Ａｎを乗算することにより、ベクトルの大きさｒを求めることができる。なお、実際の信号処理において、データｘnは、信号電力として扱われることが多く、その信号電力に対して種々の演算を施すことがあるため、その演算と同時に、１／Ａｎを乗算するのがリソース上効率的である。以上より、座標演算装置は、ベクトルの直交座標（ｘ0，ｙ0）を入力し、ベクトルの大きさｒを示すデータｘnを出力し、各サイクルのデータｙiの正負符号ＳＮを回転方向情報ｄiとして出力する。回転方向情報ｄiは、右回転及び左回転のいずれかの情報である。
【００２１】
次に、ＣＯＲＤＩＣ演算部３０２の構成について説明する。ＣＯＲＤＩＣ演算部３０２の角度系列は、２×ｔａｎ-1（２-i）（ｉ＝０，１，２，３・・・）であり、ＣＯＲＤＩＣ演算部３０１の角度系列（ｔａｎ-1（２-i））の２倍の関係にある。レジスタ３１１は、ＣＯＲＤＩＣ演算部３０１から逐次入力される回転方向情報ｄiを１サイクル保持する。セレクタ３１２は、最初のサイクルでは、入力データｕ0を選択して出力し、次回以降のサイクルでは、加減算器３２４が出力するデータを選択して出力する。レジスタ３１４は、セレクタ３１２の出力データを１サイクル保持し、データｕiを出力する。セレクタ３１３は、最初のサイクルでは、入力データｖ0を選択して出力し、次回以降のサイクルでは、加減算器３２５が出力するデータを選択して出力する。レジスタ３１５は、セレクタ３１３の出力データを１サイクル保持し、データｖiを出力する。
【００２２】
シフタ３１６は、第ｉサイクルでは、レジスタ３１４の出力データｕiに対して２ｉビット右シフトすることにより、データｕiに対して２-2iを乗算し、データｕi×２-2iを出力する。シフタ３１８は、第ｉサイクルでは、レジスタ３１５の出力データｖiに対してｉ−１ビット右シフトすることにより、データｖiに対して２-(i-1)を乗算し、データｖi×２-(i-1)を出力する。シフタ３１９は、第ｉサイクルでは、レジスタ３１４の出力データｕiに対してｉ−１ビット右シフトすることにより、データｕiに対して２-(i-1)を乗算し、データｕi×２-(i-1)を出力する。シフタ３１７は、第ｉサイクルでは、レジスタ３１５の出力データｖiに対して２ｉビット右シフトすることにより、データｖiに対して２-2iを乗算し、データｖi×２-2iを出力する。
【００２３】
加減算器３２０は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、無回転処理として、データｕiとシフタ３１６の出力データｕi×２-2iを加算することにより、データ（ｕi＋ｕi×２-2i）を出力する。また、加減算器３２０は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０でない場合には、右回転又は左回転処理として、データｕiからシフタ３１６の出力データｕi×２-2iを減算し、データ（ｕi−ｕi×２-2i）を出力する。
【００２４】
セレクタ３２２は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、無回転処理として、０を選択して出力する。また、セレクタ３２２は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０でない場合には、右回転又は左回転処理として、シフタ３１８の出力データｖi×２-(i-1)を選択して出力する。
【００２５】
加減算器３２４は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０未満（負数）である場合には、加減算器３２０の出力データとセレクタ３２２の出力データを加算することにより、次式（８）のデータｕi+1を出力する。
ｕi+1＝（１−２-2i）×ｕi−２(-i+1)×ｖi  ・・・（８）
【００２６】
加減算器３２４は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０より大きい（正数）場合には、加減算器３２０の出力データからセレクタ３２２の出力データを減算し、次式（９）のデータｕi+1を出力する。
ｕi+1＝（１−２-2i）×ｕi＋２(-i+1)×ｖi  ・・・（９）
【００２７】
加減算器３２４は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、加減算器３２０の出力データに対してセレクタ３２２の出力データの０を加算又は減算し、次式（１０）のデータｕi+1を出力する。
ｕi+1＝（１＋２-2i）×ｕi  ・・・（１０）
【００２８】
加減算器３２１は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、無回転処理として、データｖiとシフタ３１７の出力データｖi×２-2iを加算することにより、データ（ｖi＋ｖi×２-2i）を出力する。また、加減算器３２１は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０でない場合には、右回転又は左回転処理として、データｖiからシフタ３１７の出力データｖi×２-2iを減算し、データ（ｖi−ｖi×２-2i）を出力する。
【００２９】
セレクタ３２３は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、無回転処理として、０を選択して出力する。また、セレクタ３２３は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０でない場合には、右回転又は左回転処理として、シフタ３１９の出力データｕi×２-(i-1)を選択して出力する。
【００３０】
加減算器３２５は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０未満（負数）である場合には、加減算器３２１の出力データとセレクタ３２３の出力データを加算することにより、次式（１１）のデータｖi+1を出力する。
ｖi+1＝（１−２-2i）×ｖi＋２(-i+1)×ｕi  ・・・（１１）
【００３１】
加減算器３２５は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０より大きい（正数）場合には、加減算器３２１の出力データからセレクタ３２３の出力データを減算し、次式（１２）のデータｖi+1を出力する。
ｖi+1＝（１−２-2i）×ｖi−２(-i+1)×ｕi  ・・・（１２）
【００３２】
加減算器３２５は、レジスタ３１１が出力する回転方向情報ｄiを参照し、データｙiが０である場合には、加減算器３２１の出力データに対してセレクタ３２３の出力データの０を加算又は減算し、次式（１３）のデータｖi+1を出力する。
ｖi+1＝（１＋２-2i）×ｖi  ・・・（１３）
【００３３】
加減算器３２４は、出力データｕi+1をセレクタ３１２にフィードバックする。加減算器３２５は、出力データｖi+1をセレクタ３１３にフィードバックする。上記のフィードバック処理を繰り返すことにより、第ｎ−１サイクルで、データｕi+1とｖi+1は、それぞれ、データｕnとｖnに収束する。直交座標（ｕn，ｖn）は、直交座標（ｕ0，ｖ0）を２×θ1だけ回転させた座標である。
【００３４】
以上のように、ベクタモードのＣＯＲＤＩＣ演算部３０１は、直交座標（ｘ0，ｙ0）を極座標（ｒ，θ1）に変換し、偏角θ1に応じた回転方向情報ｄiを逐次出力する。回転モードのＣＯＲＤＩＣ演算部３０２は、偏角θ1に応じた回転方向情報ｄiを入力し、直交座標（ｕ0，ｖ0）を２×θ1だけ回転させた直交座標（ｕn，ｖn）を出力する。具体的には、ＣＯＲＤＩＣ演算部３０１は、直交座標（ｘ0，ｙ0）を入力すると、処理サイクルの数だけ回転方向情報ｄiを逐次出力する。次に、ＣＯＲＤＩＣ演算部３０１の後段に接続されるＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄi及び直交座標（ｕ0，ｖ0）を入力し、第ｎ−１サイクルで、出力データｕi+1及びｖi+1がデータｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、ＣＯＲＤＩＣ演算部３０１で計算された偏角θ1の２倍の角度θ2（＝２×θ1）だけ回転した座標である。偏角θ1は、θ1＝ｔａｎ-1（ｘ0／ｙ0）で表される。すなわち、直交座標（ｘ0，ｙ0）で表現されるベクトルの偏角をθ1とした時、ＣＯＲＤＩＣ演算部３０２が直交座標（ｕ0，ｖ0）を回転する角度θ2は、２×θ1である。ＣＯＲＤＩＣ演算部３０２の角度系列は、２×ｔａｎ-1（２-i）（ｉ＝０，１，２，３・・・）であり、ＣＯＲＤＩＣ演算部３０１の角度系列の２倍の関係にあるので、θ2＝２×θ1の関係が成り立つ。
【００３５】
上記の動作では、ＣＯＲＤＩＣ演算部３０１で回転する角度系列での回転方向情報ｄiがＣＯＲＤＩＣ演算部３０２へ伝わるため、ＣＯＲＤＩＣ演算部３０１とＣＯＲＤＩＣ演算部３０２の角度系列を同期させる必要がある。すなわち、直交座標（ｕ0，ｖ0）を入力するタイミングは、直交座標（ｘ0，ｙ0）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ演算部３０１及び３０２で回転する角度系列が一致することになり、所望の結果が得られる。
【００３６】
本実施形態では、ＣＯＲＤＩＣ演算部３０１は、回転方向情報ｄiを基に偏角θ1を算出することなく、回転方向情報ｄiを逐次出力することによって、偏角θ1の演算部を不要とし、低遅延及び低コストを実現することができる。なお、ＣＯＲＤＩＣ演算部３０１において、レジスタ３０５及び３０６は、ＣＯＲＤＩＣ演算部３０１の入力部に設けられているが、ＣＯＲＤＩＣ演算部３０１の出力部に設けてもよい。同様に、ＣＯＲＤＩＣ演算部３０２において、レジスタ３１４及び３１５は、ＣＯＲＤＩＣ演算部３０２の入力部に設けられているが、ＣＯＲＤＩＣ演算部３０２の出力部に設けてもよい。
【００３７】
以上のように、ベクタモードＣＯＲＤＩＣ演算部３０１は、第１の直交座標データ（ｘ0，ｙ0）を入力し、第１の直交座標データ（ｘ0，ｙ0）に対して回転処理を複数回繰り返す。これにより、ベクタモードＣＯＲＤＩＣ演算部３０１は、第１の直交座標データ（ｘ0，ｙ0）で表現されるベクトルの大きさｒを示すデータｘnに収束させ、複数回の回転処理の回転方向情報ｄiを出力する。回転モードＣＯＲＤＩＣ演算部３０２は、第２の直交座標データ（ｕ0，ｖ0）を入力し、複数回の回転処理の回転方向情報ｄiを用いて、第２の直交座標データ（ｕ0，ｖ0）に対して複数回の回転処理を行う。これにより、回転モードＣＯＲＤＩＣ演算部３０２は、第２の直交座標データ（ｕ0，ｖ0）を角度θ2だけ回転させた第３の直交座標データ（ｕn，ｖn）を示すデータに収束させる。角度θ2は、第１の直交座標データ（ｘ0，ｙ0）で表現されるベクトルの偏角θ1に対して１以外の係数倍（２倍）した角度である。回転モードＣＯＲＤＩＣ演算部３０２の角度系列は、ベクタモードＣＯＲＤＩＣ演算部３０１の角度系列の２倍である。
【００３８】
図２は、本実施形態による他の座標演算装置の構成例を示す図である。図１の座標演算装置は、フィードバック処理により処理を複数サイクル繰り返す。これに対し、図２の座標演算装置は、パイプライン処理により処理を複数サイクル繰り返す。ＣＯＲＤＩＣ演算部３０１は、ｎ個の演算部２０１を直列に接続したものであり、データｘ0及びｙ0を入力し、データｘn及びｙnを出力する。演算部２０１は、図１のＣＯＲＤＩＣ演算部３０１に対して、セレクタ３０３及び３０４を削除し、レジスタ３０５及び３０６が前段の演算部２０１の出力データｘi+1及びｙi+1を入力する。初段の演算部２０１のレジスタ３０５及び３０６は、データｘ0及びｙ0を入力する。ＣＯＲＤＩＣ演算部３０２は、ｎ個の演算部２０２を直列に接続したものであり、データｕ0及びｖ0を入力し、データｕn及びｖnを出力する。演算部２０２は、図１のＣＯＲＤＩＣ演算部３０２に対して、セレクタ３１２及び３１３を削除し、レジスタ３１４及び３１５が前段の演算部２０２の出力データｕi+1及びｖi+1を入力する。初段の演算部２０２のレジスタ３１４及び３１５は、データｕ0及びｖ0を入力する。なお、以下の実施形態においても、座標演算装置は、フィードバック処理を例に説明するが、パイプライン処理でもよい。
【００３９】
（第２の実施形態）
図３は、本発明の第２の実施形態による座標演算装置の構成例を示す図である。座標演算装置は、ＣＯＲＤＩＣ演算部４０１及び４０２を有する。ＣＯＲＤＩＣ演算部４０２は、図１のＣＯＲＤＩＣ演算部３０２と同様の構成を有し、偏角の演算回路を持たず、回転方向情報ｄiを逐次出力するベクタモードの再帰型ダブルローテーション型ＣＯＲＤＩＣ演算部である。ＣＯＲＤＩＣ演算部４０１は、図１のＣＯＲＤＩＣ演算部３０１と同様の構成を有し、偏角の演算回路を持たず、回転方向情報ｄiを逐次入力する回転モードの再帰型ＣＯＲＤＩＣ演算部である。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００４０】
まず、ＣＯＲＤＩＣ演算部４０２について説明する。ＣＯＲＤＩＣ演算部４０２は、図１のＣＯＲＤＩＣ演算部３０２に対して、レジスタ３１１を削除したものである。ＣＯＲＤＩＣ演算部４０２は、データｘ0及びｙ0を入力し、データｘi+1及びｙi+1を出力する。セレクタ３１２は、初回のサイクルでは、データｘ0を選択する。セレクタ３１３は、初回のサイクルでは、データｙ0を選択する。レジスタ３１４は、データｘiを出力する。レジスタ３１５は、データｙiを出力する。加減算器３２０，３２１，３２４，３２５は、レジスタ３１５の出力データｙiの正負符号ＳＮを参照し、データｙiに応じて加算又は減算を行う。セレクタ３２２及び３２３は、レジスタ３１５の出力データｙiの正負符号ＳＮを参照し、データｙiに応じて選択する。ＣＯＲＤＩＣ演算部４０２は、データｙiの正負符号ＳＮを回転方向情報ｄiとして、ＣＯＲＤＩＣ演算部４０１に出力する。
【００４１】
加減算器３２４は、データｙiの正負符号ＳＮを参照し、データｙiが０未満（負数）である場合には、左回転処理として、次式（１４）のデータｘi+1を出力する。
ｘi+1＝（１−２-2i）×ｘi＋２(-i+1)×ｙi  ・・・（１４）
【００４２】
加減算器３２４は、データｙiの正負符号ＳＮを参照し、データｙiが０より大きい（正数）場合には、右回転処理として、次式（１５）のデータｘi+1を出力する。
ｘi+1＝（１−２-2i）×ｘi−２(-i+1)×ｙi  ・・・（１５）
【００４３】
加減算器３２４は、データｙiの正負符号ＳＮを参照し、データｙiが０である場合には、無回転処理として、次式（１６）のデータｘi+1を出力する。
ｘi+1＝（１＋２-2i）×ｘi  ・・・（１６）
【００４４】
加減算器３２５は、データｙiの正負符号ＳＮを参照し、データｙiが０未満（負数）である場合には、左回転処理として、次式（１７）のデータｙi+1を出力する。
ｙi+1＝（１−２-2i）×ｙi−２(-i+1)×ｘi  ・・・（１７）
【００４５】
加減算器３２５は、データｙiの正負符号ＳＮを参照し、データｙiが０より大きい（正数）場合には、右回転処理として、次式（１８）のデータｙi+1を出力する。
ｙi+1＝（１−２-2i）×ｙi＋２(-i+1)×ｘi  ・・・（１８）
【００４６】
加減算器３２５は、データｙiの正負符号ＳＮを参照し、データｙiが０である場合には、無回転処理として、次式（１９）のデータｙi+1を出力する。
ｙi+1＝（１＋２-2i）×ｙi  ・・・（１９）
【００４７】
加減算器３２４は、出力データｘi+1をセレクタ３２１にフィードバックする。加減算器３２５は、出力データｙi+1をセレクタ３１３にフィードバックする。上記のフィードバック処理を繰り返すことにより、第ｎ−１サイクルで、データｘi+1とｙi+1は、それぞれ、次式（２０）及び（２１）のデータｘnとｙnに収束する。ここで、係数Ａｎは、次式（２２）で表される。Πは、直積を表す。
ｘn＝Ａｎ×√（ｘ02＋ｙ02）＝Ａｎ×ｒ  ・・・（２０）
ｙn＝０  ・・・（２１）
【００４８】
【数２】
2017123057.tif 000004
【００４９】
次に、ＣＯＲＤＩＣ演算部４０１について説明する。ＣＯＲＤＩＣ演算部４０１は、図１のＣＯＲＤＩＣ演算部３０１に対して、レジスタ４１１を追加したものである。レジスタ４１１は、回転方向情報ｄiを１サイクル保持する。ＣＯＲＤＩＣ演算部４０１は、データｕ0及びｖ0を入力し、データｕi+1及びｖi+1を出力する。セレクタ３０３は、初回のサイクルでは、データｕ0を選択する。セレクタ３０４は、初回のサイクルでは、データｖ0を選択する。レジスタ３０５は、データｕiを出力する。レジスタ３０６は、データｖiを出力する。加減算器３０９及び３１０は、レジスタ４１１が出力する回転方向情報ｄiを参照し、データｙiに応じて加算又は減算を行う。
【００５０】
加減算器３０９は、回転方向情報ｄiを参照し、データｙiが０未満である場合には、次式（２３）のデータｕi+1を出力する。
ｕi+1＝ｕi＋ｖi×２-i  ・・・（２３）
【００５１】
これに対し、加減算器３０９は、回転方向情報ｄiを参照し、データｙiが０以上である場合には、次式（２４）のデータｕi+1を出力する。
ｕi+1＝ｕi−ｖi×２-i  ・・・（２４）
【００５２】
また、加減算器３１０は、回転方向情報ｄiを参照し、データｙiが０未満である場合には、次式（２５）のデータｖi+1を出力する。
ｖi+1＝ｖi−ｕi×２-i  ・・・（２５）
【００５３】
これに対し、加減算器３１０は、回転方向情報ｄiを参照し、データｙiが０以上である場合には、次式（２６）のデータｖi+1を出力する。
ｖi+1＝ｖi＋ｕi×２-i  ・・・（２６）
【００５４】
加減算器３０９は、出力データｕi+1をセレクタ３０３にフィードバックする。加減算器３１０は、出力データｖi+1をセレクタ３０４にフィードバックする。上記のフィードバック処理の回転演算を繰り返すことにより、第ｎ−１サイクルで、データｕi+1とｖi+1は、それぞれ、データｕnとｖnに収束する。直交座標（ｕn，ｖn）は、直交座標（ｕ0，ｖ0）をθ2だけ回転させた座標である。
【００５５】
以上のように、ＣＯＲＤＩＣ演算部４０２は、直交座標（ｘ0，ｙ0）を極座標（ｒ，θ1）に変換し、処理サイクルの数だけ回転方向情報ｄiを逐次出力する。偏角θ1は、直交座標（ｘ0，ｙ0）で表現されるベクトルの偏角である。回転方向情報ｄiは、偏角θ1に基づく回転方向情報である。ＣＯＲＤＩＣ演算部４０１は、回転方向情報ｄi及び直交座標（ｕ0，ｖ0）を入力し、出力データｕi+1及びｖi+1がデータｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を偏角θ1の１／２倍の角度θ2（＝θ1／２）だけ回転した座標である。すなわち、直交座標（ｘ0，ｙ0）で表現されるベクトルの偏角をθ１とした時、ＣＯＲＤＩＣ演算部４０１が回転する角度θ2はθ1／２である。ＣＯＲＤＩＣ演算部４０１の角度系列は、ＣＯＲＤＩＣ演算部４０２の角度系列の１／２倍の関係にあるので、θ2＝θ1／２の関係が成り立つ。
【００５６】
上記の動作では、ＣＯＲＤＩＣ演算部４０１及び４０２の角度系列を同期させる必要がある。すなわち、座標（ｕ0，ｖ0）を入力するタイミングは、座標（ｘ0，ｙ0）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ４０１及び４０２が回転する角度系列が一致することになり、所望の結果が得られる。
【００５７】
本実施形態は、回転方向情報ｄiに応じた偏角θ1を演算せず、回転方向情報ｄiを逐次出力することによって、偏角θ1の演算部を不要とし、低遅延及び低コストを実現することができる。
【００５８】
以上のように、ベクタモードＣＯＲＤＩＣ演算部４０２は、第１の直交座標データ（ｘ0，ｙ0）を入力し、第１の直交座標データ（ｘ0，ｙ0）に対して回転処理を複数回繰り返す。これにより、ベクタモードＣＯＲＤＩＣ演算部４０２は、第１の直交座標データ（ｘ0，ｙ0）で表現されるベクトルの大きさｒを示すデータｘnに収束させ、複数回の回転処理の回転方向情報ｄiを出力する。回転モードＣＯＲＤＩＣ演算部４０１は、第２の直交座標データ（ｕ0，ｖ0）を入力し、複数回の回転処理の回転方向情報ｄiを用いて、第２の直交座標データ（ｕ0，ｖ0）に対して複数回の回転処理を行う。これにより、回転モードＣＯＲＤＩＣ演算部４０１は、第２の直交座標データ（ｕ0，ｖ0）を角度θ2だけ回転させた第３の直交座標データ（ｕn，ｖn）を示すデータに収束させる。角度θ2は、第１の直交座標データ（ｘ0，ｙ0）で表現されるベクトルの偏角θ1に対して１以外の係数倍（１／２倍）した角度である。回転モードＣＯＲＤＩＣ演算部４０１の角度系列は、ベクタモードＣＯＲＤＩＣ演算部４０２の角度系列の１／２倍である。
【００５９】
なお、第１及び第２の実施形態の座標演算装置を組み合わせてもよい。第１の実施形態の回転角θ2は２×θ1であり、第２の実施形態の回転角θ2はθ1／２である。座標演算装置に切り替え機能を持たせ、第１及び第２の実施形態の座標演算装置の構成を切り替えて使用することができる。
【００６０】
（第３の実施形態）
図４は、本発明の第３の実施形態による座標演算装置の構成例を示す図である。座標演算装置は、２個のベクタモードのＣＯＲＤＩＣ演算部３０１ａ及び３０１ｂと、ビット間演算手段５２６と、１個の回転モードのＣＯＲＤＩＣ演算部３０２とを有する。座標演算装置は、ベクタモードのＣＯＲＤＩＣ演算部３０１ａ及び３０１ｂに対して直交座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力し、ＣＯＲＤＩＣ演算部３０１ａ及び３０１ｂから出力される回転方向情報ｄ１i及びｄ２iを基に偏角の和の合成角の回転を行う。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００６１】
ＣＯＲＤＩＣ演算部３０１ａ及び３０１ｂは、図１のＣＯＲＤＩＣ演算部３０１と同じ構成を有する。ＣＯＲＤＩＣ演算部３０２は、図１のＣＯＲＤＩＣ演算部３０２と同じ構成を有する。ＣＯＲＤＩＣ演算部３０１ａは、直交座標（ｘ1，ｙ1）を入力し、回転方向情報ｄ１iを出力する。回転方向情報ｄ１iは、直交座標（ｘ1，ｙ1）で表現されるベクトルの偏角θ1の回転方向情報である。ＣＯＲＤＩＣ演算部３０１ｂは、直交座標（ｘ2，ｙ2）を入力し、回転方向情報ｄ２iを出力する。回転方向情報ｄ２iは、直交座標（ｘ2，ｙ2）で表現されるベクトルの偏角θ2の回転方向情報である。
【００６２】
ビット間演算手段５２６は、図５（Ａ）に示すように、２個の回転方向情報ｄ１i及びｄ２iに基づいて、回転方向情報ｄ３iを出力する。図５（Ａ）において、＋１は座標上で見た時のθの回転を示し、−１は座標上で見た時の−θの回転を示す。同様に、＋２は、座標上で見た時の２θの回転を示し、−２は座標上で見た時の−２θの回転を示し、±０は座標上で見た時の無回転を示す。回転方向情報ｄ１i及びｄ２iは、それぞれ、右回転（＋１）及び左回転（−１）のいずれかの情報である。回転方向情報ｄ３iは、右回転（＋２）、左回転（−２）及び無回転（±０）のいずれかの情報である。すなわち、ビット間演算手段５２６は、回転方向情報ｄ１i及びｄ２iを加算した回転方向情報ｄ３iを出力する。
【００６３】
ＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄ３i及び直交座標（ｕ0，ｖ0）を入力し、データｕi+1及びｖi+1を出力する。データｕi+1及びｖi+1は、それぞれ、データｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、偏角θ1及びθ2を加算した角度θ3（＝θ1＋θ2）だけ回転した座標である。偏角θ1は直交座標（ｘ1，ｙ1）の偏角であり、偏角θ2は直交座標（ｘ2，ｙ2）の偏角である。
【００６４】
次に、上記の動作によって、回転角度θ3がθ1＋θ2になる理由を具体的な例を用いて説明する。２個の入力座標（ｘ1，ｙ1）＝（√３，１）及び（ｘ2，ｙ2）＝（１，１）の場合を説明する。この場合、入力座標（ｘ1，ｙ1）の偏角θ1＝３０度であり、入力座標（ｘ2，ｙ2）の偏角θ２＝４５度である。図５（Ｂ）は、この場合のサイクル数ｉに対応する回転方向情報ｄ１i，ｄ２i，ｄ３i及び回転角θ1，θ2，θ3を示す図である。ｉ＝０に注目すると、回転方向情報ｄ１i及びｄ２iが共に＋１であるため、回転方向情報ｄ３iは、図５（Ａ）より＋２となる。そのため、座標（ｕ0，ｖ0）に対するｉ＝０における回転角は２×ｔａｎ-1（２-0）の回転となる。また、ｉ＝１に注目すると、ｄ１i＝−１、ｄ２i＝＋１であるため、ｄ３iは相殺され±０となり、回転は行われない。ｉ＝３では、ｄ１i及びｄ２iが共に−１であり、ｄ３iは−２となる。そのため、ｉ＝３における回転角は、−２×ｔａｎ-1（２-3）の回転となる。以上のような処理を繰り返し、最終的な回転角θ3は、次式（２７）のように、全サイクル数の回転角の和となる。なお、図５（Ａ）より、ｄ３i＝ｄ１i＋ｄ２iである。
θ3＝Σ（ｄ３i×ｔａｎ-1（２-i））
＝Σ（ｄ１i×ｔａｎ-1（２-i））＋Σ（ｄ２i×ｔａｎ-1（２-i））
＝θ1＋θ2  ・・・（２７）
【００６５】
図５（Ｂ）における最終サイクルｉ＝１０においても、上式（２７）の関係が成り立っていることが確認できる。上記の動作では、第１の実施形態と同様に、ベクタモードの２個のＣＯＲＤＩＣ演算部３０１ａ，３０１ｂと回転モードのＣＯＲＤＩＣ演算部３０２の角度系列を同期させる必要がある。すなわち、座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）の入力タイミングは同時でなければならず、また座標（ｕ0，ｖ0）を入力するタイミングは座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ演算部３０１ａ、３０１ｂ及び３０２が回転する角度系列が一致することになり、所望の結果が得られる。本実施形態では、２個のベクタモードのＣＯＲＤＩＣ演算部３０１ａ，３０１ｂと回転モードのＣＯＲＤＩＣ演算部３０２との間にビット間演算手段５２６を設けることにより、回転方向情報ｄ１i及びｄ２iから偏角θ1及びθ2を算出する演算回路が不要になる。これにより、低遅延及び低コストを実現することができる。
【００６６】
次に、ビット間演算手段５２６の他の演算方法を説明する。上記では、ビット間演算手段５２６が回転方向情報ｄ１i及びｄ２iを加算した回転方向情報ｄ３iを出力することにより、ＣＯＲＤＩＣ演算部３０２が２個の偏角の和θ3＝θ1＋θ2の回転を実現している。この他、ビット間演算手段５２６は、図５（Ｃ）のように、回転方向情報ｄ１iから回転方向情報ｄ２iを減算し、回転方向情報ｄ３iを出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、２個の偏角の差θ3＝θ1−θ2の回転を実現することができる。また、ビット間演算手段５２６は、図５（Ｄ）のように、回転方向情報ｄ２iから回転方向情報ｄ１iを減算し、回転方向情報ｄ３iを出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、２個の偏角の差θ3＝θ2−θ1の回転を実現することができる。
【００６７】
以上のように、第１のベクタモードＣＯＲＤＩＣ演算部３０１ａは、第１の直交座標データ（ｘ1，ｙ1）を入力し、第１の直交座標データ（ｘ1，ｙ1）に対して回転処理を複数回繰り返す。これにより、第１のベクタモードＣＯＲＤＩＣ演算部３０１ａは、第１の直交座標データ（ｘ1，ｙ1）で表現されるベクトルの大きさｒを示すデータｘnに収束させ、複数回の回転処理の第１の回転方向情報ｄ１iを出力する。
【００６８】
第２のベクタモードＣＯＲＤＩＣ演算部３０１ｂは、第２の直交座標データ（ｘ2，ｙ2）を入力し、第２の直交座標データ（ｘ2，ｙ2）に対して回転処理を複数回繰り返す。これにより、第２のベクタモードＣＯＲＤＩＣ演算部３０１ｂは、第２の直交座標データ（ｘ2，ｙ2）で表現されるベクトルの大きさｒを示すデータｘnに収束させ、複数回の回転処理の第２の回転方向情報ｄ２iを出力する。
【００６９】
ビット間演算手段５２６は、少なくとも第１の回転方向情報ｄ１i及び第２の回転方向情報ｄ２iを基に第３の回転方向情報ｄ３iを出力する。回転モードＣＯＲＤＩＣ演算部３０２は、第３の直交座標データ（ｕ0，ｖ0）を入力し、第３の回転方向情報ｄ３iを用いて、第３の直交座標データ（ｕ0，ｖ0）に対して回転処理を複数回繰り返す。これにより、回転モードＣＯＲＤＩＣ演算部３０２は、第３の直交座標データ（ｕ0，ｖ0）を回転させた第４の直交座標データ（ｕn，ｖn）を示すデータに収束させる。
【００７０】
（第４の実施形態）
図６は、本発明の第４の実施形態による座標演算装置の構成例を示す図である。座標演算装置は、２個のベクタモードのＣＯＲＤＩＣ演算部４０２ａ及び４０２ｂと、ビット間演算手段６１７と、１個の回転モードのＣＯＲＤＩＣ演算部３０２とを有する。座標演算装置は、ベクタモードのＣＯＲＤＩＣ演算部４０２ａ及び４０２ｂに対して直交座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力し、ＣＯＲＤＩＣ演算部４０２ａ及び４０２ｂから出力される回転方向情報ｄ１i及びｄ２iを基に、平均角θ3の回転を行う。平均角θ3は、２個の偏角θ1及びθ2の平均角である。以下、本実施形態が第３の実施形態と異なる点を説明する。
【００７１】
ＣＯＲＤＩＣ演算部４０２ａ及び４０２ｂは、図３のＣＯＲＤＩＣ演算部４０３と同じ構成を有する。ＣＯＲＤＩＣ演算部３０２は、図４のＣＯＲＤＩＣ演算部３０２と同じ構成を有する。ＣＯＲＤＩＣ演算部４０２ａは、直交座標（ｘ1，ｙ1）を入力し、回転方向情報ｄ１iを出力する。回転方向情報ｄ１iは、直交座標（ｘ1，ｙ1）で表現されるベクトルの偏角θ1の回転方向情報である。ＣＯＲＤＩＣ演算部４０２ｂは、直交座標（ｘ2，ｙ2）を入力し、回転方向情報ｄ２iを出力する。回転方向情報ｄ２iは、直交座標（ｘ2，ｙ2）で表現されるベクトルの偏角θ2の回転方向情報である。
【００７２】
ビット間演算手段６１７は、図７（Ａ）に示すように、２個の回転方向情報ｄ１i及びｄ２iに基づいて、回転方向情報ｄ３iを出力する。図７（Ａ）において、＋２は座標上で見た時の２θの回転を示し、−２は座標上で見た時の−２θの回転を示し、±０は座標上で見た時の無回転を示す。すなわち、ビット間演算手段６１７は、回転方向情報ｄ１i及びｄ２iの平均の回転方向情報ｄ３iを出力する。
【００７３】
ＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄ３i及び直交座標（ｕ0，ｖ0）を入力し、データｕi+1及びｖi+1を出力する。データｕi+1及びｖi+1は、それぞれ、データｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、偏角θ1及びθ2の平均角度θ3（＝（θ1＋θ2）／２）だけ回転した座標である。偏角θ1は直交座標（ｘ1，ｙ1）の偏角であり、偏角θ2は直交座標（ｘ2，ｙ2）の偏角である。
【００７４】
次に、上記の動作によって、回転角度θ3が（θ1＋θ2）／２になる理由を具体的な例を用いて説明する。２個の入力座標（ｘ1，ｙ1）＝（√３，１）及び（ｘ2，ｙ2）＝（１，１）の場合を説明する。この場合、入力座標（ｘ1，ｙ1）の偏角θ1＝３０度であり、入力座標（ｘ2，ｙ2）の偏角θ２＝４５度である。図７（Ｂ）は、この場合のサイクル数ｉに対応する回転方向情報ｄ１i，ｄ２i，ｄ３i及び回転角θ1，θ2，θ3を示す図である。ｉ＝０に注目すると、回転方向情報ｄ１i及びｄ２iが共に＋２であるため、回転方向情報ｄ３iは、図７（Ａ）より＋２となる。そのため、座標（ｕ0，ｖ0）に対するｉ＝０における回転角は２×ｔａｎ-1（２-0）の回転となる。また、ｉ＝１では、回転方向情報ｄ１i及びｄ２iが共に−２であるため、ｄ３iは−２となり、回転角は、−２×ｔａｎ-1（２-1）の回転となる。ｉ＝２では、ｄ１i＝−２、ｄ２i＝＋２であるため、ｄ３iは相殺され±０となり、回転は行われない。以上のような処理を繰り返し、最終的な回転角θ3は、次式（２８）のように、全サイクル数の回転角の和となる。なお、図７（Ａ）より、ｄ３i＝（ｄ１i＋ｄ２i）／２である。
θ3＝Σ（ｄ３i×ｔａｎ-1（２-i））
＝Σ（（ｄ１i／２）×ｔａｎ-1（２-i））＋Σ（（ｄ２i／２）×ｔａｎ-1（２-i））
＝（θ1＋θ2）／２  ・・・（２８）
【００７５】
図７（Ｂ）における最終サイクルｉ＝１０においても、上式（２８）の関係が成り立っていることが確認できる。上記の動作では、第３の実施形態と同様に、ベクタモードの２個のＣＯＲＤＩＣ演算部４０２ａ，４０２ｂと回転モードのＣＯＲＤＩＣ演算部３０２の角度系列を同期させる必要がある。すなわち、座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）の入力タイミングは同時でなければならず、また座標（ｕ0，ｖ0）を入力するタイミングは座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ演算部４０２ａ、４０２ｂ及び３０２が回転する角度系列が一致することになり、所望の結果が得られる。本実施形態では、２個のベクタモードのＣＯＲＤＩＣ演算部４０２ａ，４０２ｂと回転モードのＣＯＲＤＩＣ演算部３０２との間にビット間演算手段６１７を設けることにより、回転方向情報ｄ１i及びｄ２iから偏角θ1及びθ2を算出する演算回路が不要になる。これにより、低遅延及び低コストを実現することができる。
【００７６】
次に、ビット間演算手段６１７の他の演算方法を説明する。上記では、ビット間演算手段６１７が回転方向情報ｄ１i及びｄ２iの平均の回転方向情報ｄ３i（＝（ｄ１i＋ｄ２i）／２）を出力することにより、ＣＯＲＤＩＣ演算部３０２が２個の偏角の和θ3＝（θ1＋θ2）／２の回転を実現している。この他、ビット間演算手段６１７は、図７（Ｃ）のように、回転方向情報ｄ３i＝（ｄ１i−ｄ２i）／２を出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝（θ1−θ2）／２の回転を実現することができる。また、ビット間演算手段６１７は、図７（Ｄ）のように、回転方向情報ｄ３i＝（ｄ２i−ｄ１i）／２を出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝（θ2−θ1）／２の回転を実現することができる。
【００７７】
（第５の実施形態）
図８は、本発明の第５の実施形態による座標演算装置の構成例を示す図である。座標演算装置は、２個のベクタモードのＣＯＲＤＩＣ演算部３０１及び４０２と、ビット間演算手段７２６と、１個の回転モードのＣＯＲＤＩＣ演算部３０２とを有する。座標演算装置は、ベクタモードのＣＯＲＤＩＣ演算部３０１及び４０２に対して直交座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力し、ＣＯＲＤＩＣ演算部３０１及び４０２から出力される回転方向情報ｄ１i及びｄ２iを基に、θ1＋θ2／２の回転を行う。以下、本実施形態が第３の実施形態と異なる点を説明する。
【００７８】
ＣＯＲＤＩＣ演算部３０１は、図１のＣＯＲＤＩＣ演算部３０１と同じ構成を有する。ＣＯＲＤＩＣ演算部４０２は、図３のＣＯＲＤＩＣ演算部４０２と同じ構成を有する。ＣＯＲＤＩＣ演算部３０２は、図４のＣＯＲＤＩＣ演算部３０２と同じ構成を有する。ＣＯＲＤＩＣ演算部３０１は、直交座標（ｘ1，ｙ1）を入力し、回転方向情報ｄ１iを出力する。回転方向情報ｄ１iは、直交座標（ｘ1，ｙ1）で表現されるベクトルの偏角θ1の回転方向情報である。ＣＯＲＤＩＣ演算部４０２は、直交座標（ｘ2，ｙ2）を入力し、回転方向情報ｄ２iを出力する。回転方向情報ｄ２iは、直交座標（ｘ2，ｙ2）で表現されるベクトルの偏角θ2の回転方向情報である。
【００７９】
ビット間演算手段７２６は、図９（Ａ）に示すように、２個の回転方向情報ｄ１i及びｄ２iに基づいて、回転方向情報ｄ３iを出力する。図９（Ａ）において、＋１は座標上で見た時のθの回転を示し、−１は座標上で見た時の−θの回転を示す。同様に、＋２は、座標上で見た時の２θの回転を示し、−２は座標上で見た時の−２θの回転を示し、±０は座標上で見た時の無回転を示す。すなわち、ビット間演算手段７２６は、回転方向情報ｄ３i＝ｄ１i＋ｄ２i／２を出力する。
【００８０】
ＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄ３i及び直交座標（ｕ0，ｖ0）を入力し、データｕi+1及びｖi+1を出力する。データｕi+1及びｖi+1は、それぞれ、データｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、角度θ3（＝θ1＋θ2／２）だけ回転した座標である。偏角θ1は直交座標（ｘ1，ｙ1）の偏角であり、偏角θ2は直交座標（ｘ2，ｙ2）の偏角である。
【００８１】
次に、上記の動作によって、回転角度θ3がθ1＋θ2／２になる理由を具体的な例を用いて説明する。２個の入力座標（ｘ1，ｙ1）＝（√３，１）及び（ｘ2，ｙ2）＝（１，１）の場合を説明する。この場合、入力座標（ｘ1，ｙ1）の偏角θ1＝３０度であり、入力座標（ｘ2，ｙ2）の偏角θ２＝４５度である。図９（Ｂ）は、この場合のサイクル数ｉに対応する回転方向情報ｄ１i，ｄ２i，ｄ３i及び回転角θ1，θ2，θ3を示す図である。ｉ＝０では、ｄ１i＝＋１、ｄ２i＝＋２であるため、回転方向情報ｄ３iは、図９（Ａ）より＋２となる。そのため、座標（ｕ0，ｖ0）に対するｉ＝０における回転角は２×ｔａｎ-1（２-0）の回転となる。また、ｉ＝１では、ｄ１i＝−１、ｄ２i＝−２であるため、ｄ３iは−２となり、回転角は、−２×ｔａｎ-1（２-1）の回転となる。ｉ＝４では、ｄ１i＝＋１、ｄ２i＝−２であるため、ｄ３iは相殺され±０となり、回転は行われない。以上のような処理を繰り返し、最終的な回転角θ3は、次式（２９）のように、全サイクル数の回転角の和となる。なお、図９（Ａ）より、ｄ３i＝ｄ１i＋ｄ２i／２である。
θ3＝Σ（ｄ３i×ｔａｎ-1（２-i））
＝Σ（ｄ１i×ｔａｎ-1（２-i））＋Σ（（ｄ２i／２）×ｔａｎ-1（２-i））
＝θ1＋θ2／２  ・・・（２９）
【００８２】
図９（Ｂ）における最終サイクルｉ＝１０においても、上式（２９）の関係が成り立っていることが確認できる。上記の動作では、第３の実施形態と同様に、ベクタモードの２個のＣＯＲＤＩＣ演算部３０１，４０２と回転モードのＣＯＲＤＩＣ演算部３０２の角度系列を同期させる必要がある。すなわち、座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）の入力タイミングは同時でなければならず、また座標（ｕ0，ｖ0）を入力するタイミングは座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ演算部３０１、４０２及び３０２が回転する角度系列が一致することになり、所望の結果が得られる。本実施形態では、２個のベクタモードのＣＯＲＤＩＣ演算部３０１，４０２と回転モードのＣＯＲＤＩＣ演算部３０２との間にビット間演算手段７２６を設けることにより、回転方向情報ｄ１i及びｄ２iから偏角θ1及びθ2を算出する演算回路が不要になる。これにより、低遅延及び低コストを実現することができる。
【００８３】
次に、ビット間演算手段７２６の他の演算方法を説明する。上記では、ビット間演算手段７２６が回転方向情報ｄ３i＝ｄ１i＋ｄ２i／２を出力することにより、ＣＯＲＤＩＣ演算部３０２が角度θ3＝θ1＋θ2／２の回転を実現している。この他、ビット間演算手段７２６は、図９（Ｃ）のように、回転方向情報ｄ３i＝ｄ１i−ｄ２i／２を出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝θ1−θ2／２の回転を実現することができる。また、ビット間演算手段７２６は、図９（Ｄ）のように、回転方向情報ｄ３i＝（ｄ２i／２）−ｄ１iを出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝（θ2／２）−θ1の回転を実現することができる。
【００８４】
（第６の実施形態）
図１０は、本発明の第６の実施形態による座標演算装置の構成例を示す図である。図１０の座標演算装置は、図８の座標演算装置に対して、ＣＯＲＤＩＣ演算部３０１及び４０２の位置を入れ替えたものである。以下、本実施形態が第５の実施形態と異なる点を説明する。ＣＯＲＤＩＣ演算部４０２は、直交座標（ｘ1，ｙ1）を入力し、回転方向情報ｄ１iを出力する。回転方向情報ｄ１iは、直交座標（ｘ1，ｙ1）で表現されるベクトルの偏角θ1の回転方向情報である。ＣＯＲＤＩＣ演算部３０１は、直交座標（ｘ2，ｙ2）を入力し、回転方向情報ｄ２iを出力する。回転方向情報ｄ２iは、直交座標（ｘ2，ｙ2）で表現されるベクトルの偏角θ2の回転方向情報である。ビット間演算手段８２６は、図９（Ａ）のｄ１i及びｄ２iを入れ替えた演算を行い、回転方向情報ｄ３i＝（ｄ１i／２）＋ｄ２iを出力する。ＣＯＲＤＩＣ演算部３０２は、入力直交座標（ｕ0，ｖ0）を、角度θ3＝（θ1／２）＋θ2だけ回転した直交座標（ｕn，ｖn）を出力する。
【００８５】
次に、ビット間演算手段８２６の他の演算方法を説明する。上記では、ビット間演算手段８２６が回転方向情報ｄ３i＝（ｄ１i／２）＋ｄ２iを出力することにより、ＣＯＲＤＩＣ演算部３０２が角度θ3＝（θ1／２）＋θ2の回転を実現している。この他、ビット間演算手段８２６は、図９（Ｃ）のｄ１i及びｄ２iを入れ替えた演算を行い、回転方向情報ｄ３i＝（ｄ１i／２）−ｄ２iを出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝（θ1／２）−θ2の回転を実現することができる。また、ビット間演算手段８２６は、図９（Ｄ）のｄ１i及びｄ２iを入れ替えた演算を行い、回転方向情報ｄ３i＝ｄ２i−（ｄ１i／２）を出力することができる。この場合、ＣＯＲＤＩＣ演算部３０２は、θ3＝θ2−（θ1／２）の回転を実現することができる。
【００８６】
なお、第３〜第６の実施形態の座標演算装置を組み合わせてもよい。座標演算装置は、２個のベクタモードのＣＯＲＤＩＣ演算部と１個の回転モードのＣＯＲＤＩＣを有する。座標演算装置に切り替え機能を持たせ、第３〜第６の実施形態の座標演算装置の構成を切り替えて使用することができる。２個のベクタモードのＣＯＲＤＩＣ演算部のみを切り替え可能にしてもよいし、２個のベクタモードのＣＯＲＤＩＣ演算部及び１個の回転モードのＣＯＲＤＩＣ演算部のすべてを切り替え可能にしてもよい。その際、上記と同様に、角度系列を同期させる必要がある。
【００８７】
（第７の実施形態）
図１１は、本発明の第７の実施形態による座標演算装置の構成例を示す図である。図１１の座標演算装置は、図６の座標演算装置に対して、２個のベクタモードのダブルローテーション型ＣＯＲＤＩＣ演算部４０２ａ及び４０２ｂの代わりに、２個のベクタモードのコントロール型ＣＯＲＤＩＣ演算部１１０１ａ及び１１０１ｂを設けたものである。以下、本実施形態が第４の実施形態と異なる点を説明する。座標演算装置は、２個のベクタモードのコントルール型ＣＯＲＤＩＣ演算部１１０１ａ及び１１０１ｂと、ビット間演算手段１１１０と、１個の回転モードのＣＯＲＤＩＣ演算部３０２とを有する。ＣＯＲＤＩＣ演算部３０２は、図６のＣＯＲＤＩＣ演算部３０２と同じ構成を有する。コントロール型ＣＯＲＤＩＣ演算部１１０１ａは右回転用の再帰型コントロール型ＣＯＲＤＩＣ演算部であり、コントロール型ＣＯＲＤＩＣ演算部１１０１ｂは左回転用の再帰型コントロール型ＣＯＲＤＩＣ演算部である。
【００８８】
まず、コントロール型ＣＯＲＤＩＣ演算部１１０１ａの構成を説明する。コントロール型ＣＯＲＤＩＣ演算部１１０１ａは、図６のダブルローテーション型ＣＯＲＤＩＣ演算部４０２ａに対して、セレクタ３２２，３２３及び加減算器３２０，３２１，３２４，３２５を削除したものである。また、コントロール型ＣＯＲＤＩＣ演算部１１０１ａは、図６のダブルローテーション型ＣＯＲＤＩＣ演算部４０２ａに対して、セレクタ１１０８，１１０９と加算器１１０２，１１０３，１１０６ａ，１１０７ａと減算器１１０４，１１０５を追加したものである。
【００８９】
加算器１１０２は、レジスタ３１４の出力データｘiとシフタ３１６の出力データｘi×２-2iを加算し、データｘi＋ｘi×２-2iを出力する。減算器１１０４は、レジスタ３１４の出力データｘiからシフタ３１６の出力データｘi×２-2iを減算し、データｘi−ｘi×２-2iを出力する。加算器１１０６ａは、減算器１１０４の出力データｘi−ｘi×２-2iとシフタ３１８の出力データｙi×２-(i-1)を加算し、データｘi−ｘi×２-2i＋ｙi×２-(i-1)を出力する。
【００９０】
加算器１１０３は、レジスタ３１５の出力データｙiとシフタ３１７の出力データｙi×２-2iを加算し、データｙi＋ｙi×２-2iを出力する。減算器１１０５は、レジスタ３１５の出力データｙiからシフタ３１７の出力データｙi×２-2iを減算し、データｙi−ｙi×２-2iを出力する。加算器１１０７ａは、減算器１１０５の出力データｙi−ｙi×２-2iとシフタ３１９の出力データｘi×２-(i-1)を加算し、データｙi−ｙi×２-2i＋ｘi×２-(i-1)を出力する。
【００９１】
セレクタ１１０８は、加算器１１０７ａの出力データの正負符号ＳＮ１を参照し、加算器１１０７ａの出力データが０である場合には、無回転処理として、加算器１１０２の出力データをデータｘi+1として出力する。また、セレクタ１１０８は、加算器１１０７ａの出力データの正負符号ＳＮ１を参照し、加算器１１０７ａの出力データが０でない場合には、右回転処理として、加算器１１０６ａの出力データをデータｘi+1として出力する。セレクタ３１２は、初回のサイクルでは、入力データｘ1を選択して出力し、次回以降のサイクルでは、セレクタ１１０８の出力データｘi+1を選択して出力する。
【００９２】
セレクタ１１０９は、加算器１１０７ａの出力データの正負符号ＳＮ１を参照し、加算器１１０７ａの出力データが０である場合には、無回転処理として、加算器１１０３の出力データをデータｙi+1として出力する。また、セレクタ１１０９は、加算器１１０７ａの出力データの正負符号ＳＮ１を参照し、加算器１１０７ａの出力データが０でない場合には、右回転処理として、加算器１１０７ａの出力データをデータｙi+1として出力する。セレクタ３１３は、初回のサイクルでは、入力データｙ1を選択して出力し、次回以降のサイクルでは、セレクタ１１０９の出力データｙi+1を選択して出力する。
【００９３】
次に、コントロール型ＣＯＲＤＩＣ演算部１１０１ｂの構成を説明する。コントロール型ＣＯＲＤＩＣ演算部１１０１ｂは、コントロール型ＣＯＲＤＩＣ演算部１１０１ａに対して、加算器１１０６ａ及び１１０７ａの代わりに、減算器１１０６ｂ及び１００７ｂを設けたものである。以下、ＣＯＲＤＩＣ演算部１１０１ｂがＣＯＲＤＩＣ演算部１１０１ａと異なる点を説明する。減算器１１０６ｂは、減算器１１０４の出力データｘi−ｘi×２-2iからシフタ３１８の出力データｙi×２-(i-1)を減算し、データｘi−ｘi×２-2i−ｙi×２-(i-1)を出力する。減算器１１０７ｂは、減算器１１０５の出力データｙi−ｙi×２-2iからシフタ３１９の出力データｘi×２-(i-1)を減算し、データｙi−ｙi×２-2i−ｘi×２-(i-1)を出力する。セレクタ１１０８は、減算器１１０７ｂの出力データの正負符号ＳＮ２を参照し、減算器１１０７ｂの出力データが０である場合には、無回転処理として、加算器１１０２の出力データをデータｘi+1として出力する。また、セレクタ１１０８は、減算器１１０７ｂの出力データの正負符号ＳＮ２を参照し、減算器１１０７ｂの出力データが０でない場合には、左回転処理として、減算器１１０６ｂの出力データをデータｘi+1として出力する。セレクタ１１０９は、減算器１１０７ｂの出力データの正負符号ＳＮ２を参照し、減算器１１０７ｂの出力データが０である場合には、無回転処理として、加算器１１０３の出力データをデータｙi+1として出力する。また、セレクタ１１０９は、減算器１１０７ｂの出力データの正負符号ＳＮ２を参照し、減算器１１０７ｂの出力データが０でない場合には、左回転処理として、減算器１１０７ｂの出力データをデータｙi+1として出力する。
【００９４】
ＣＯＲＤＩＣ演算部１１０１ａは、直交座標（ｘ1，ｙ1）を入力し、加算器１１０７ａの出力データの正負符号ＳＮ１を回転方向情報ｄ１iとして出力する。回転方向情報ｄ１iは、直交座標（ｘ1，ｙ1）で表現されるベクトルの偏角θ1の回転方向情報であり、図１２（Ａ）に示すように、無回転（±０）又は右回転（＋１）である。ＣＯＲＤＩＣ演算部１１０１ｂは、直交座標（ｘ2，ｙ2）を入力し、減算器１１０７ｂの出力データの正負符号ＳＮ２を回転方向情報ｄ２iとして出力する。回転方向情報ｄ２iは、直交座標（ｘ2，ｙ2）で表現されるベクトルの偏角θ2の回転方向情報であり、図１２（Ａ）に示すように、無回転（±０）又は左回転（−１）である。
【００９５】
ここで、直交座標（ｘ1，ｙ1）は第１象限であり、直交座標（ｘ2，ｙ2）は第４象限であると仮定する。この場合、データｙi+1は０に収束するので、ＣＯＲＤＩＣ演算部１１０１ａは右回転のみをサポートし、ＣＯＲＤＩＣ演算部１１０１ｂは左回転のみをサポートする。すなわち、図１２（Ａ）に示すように、ＣＯＲＤＩＣ演算部１１０１ａが出力し得る回転方向情報ｄ１iは±０及び＋１のいずれかであり、ＣＯＲＤＩＣ演算部１１０１ｂが出力し得る回転方向情報ｄ２iは−１及び±０のいずれかである。図１２（Ａ）に示すように、ビット間演算手段１１１０は、２個の回転方向情報ｄ１i及びｄ２iに基づいて、回転方向情報ｄ３iを出力する。図１２（Ａ）において、＋１は座標上での右方向回転を示し、−１は座標上での左方向回転を示し、±０は座標上での無回転を示す。ビット間演算手段１１１０は、回転方向情報ｄ１i及びｄ２iを加算し、その加算結果の回転方向情報ｄ３i（＝ｄ１i＋ｄ２i）を出力する。
【００９６】
ＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄ３i及び直交座標（ｕ0，ｖ0）を入力し、データｕi+1及びｖi+1を出力する。データｕi+1及びｖi+1は、それぞれ、データｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、角度θ3（＝θ1＋θ2）だけ回転した座標である。偏角θ1は直交座標（ｘ1，ｙ1）の偏角であり、偏角θ2は直交座標（ｘ2，ｙ2）の偏角である。
【００９７】
次に、上記の動作によって、回転角度θ3がθ1＋θ2になる理由を具体的な例を用いて説明する。２個の入力座標（ｘ1，ｙ1）＝（√３，１）及び（ｘ2，ｙ2）＝（１，−１）の場合を説明する。この場合、入力座標（ｘ1，ｙ1）の偏角θ1＝３０度であり、入力座標（ｘ2，ｙ2）の偏角θ２＝−４５度である。図１２（Ｂ）は、この場合のサイクル数ｉに対応する回転方向情報ｄ１i，ｄ２i，ｄ３i及び回転角θ1，θ2，θ3を示す図である。ｉ＝２では、ｄ１i＝＋１、ｄ２i＝−１であるため、回転方向情報ｄ３iは、図１２（Ａ）より±０となり、回転は行われない。また、ｉ＝３では、ｄ１i＝±０、ｄ２i＝−１であるため、回転方向情報ｄ３iは、図１２（Ａ）より−１となり、回転角は、−２×ｔａｎ-1（２-3）の回転となる。以上のような処理を繰り返し、最終的な回転角θ3は、次式（３０）のように、全サイクル数の回転角の和となる。なお、図１２（Ａ）より、ｄ３i＝ｄ１i＋ｄ２iである。
θ3＝Σ（ｄ３i×２×ｔａｎ-1（２-i））
＝Σ（ｄ１i×２×ｔａｎ-1（２-i））＋Σ（ｄ２i×２×ｔａｎ-1（２-i））
＝θ1＋θ2  ・・・（３０）
【００９８】
図１２（Ｂ）における最終サイクルｉ＝１０においても、上式（３０）の関係が成り立っていることが確認できる。上記の動作では、第３の実施形態と同様に、ベクタモードの２個のＣＯＲＤＩＣ演算部１１０１ａ，１１０１ｂと回転モードのＣＯＲＤＩＣ演算部３０２の角度系列を同期させる必要がある。すなわち、座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）の入力タイミングは同時でなければならず、また座標（ｕ0，ｖ0）を入力するタイミングは座標（ｘ1，ｙ1）及び（ｘ2，ｙ2）を入力した１サイクル後でなければならない。こうすることにより、ＣＯＲＤＩＣ演算部３０１、４０２及び３０２が回転する角度系列が一致することになり、所望の結果が得られる。本実施形態では、ベクタモードのＣＯＲＤＩＣ演算部１１０１ａ，１１０１ｂと回転モードのＣＯＲＤＩＣ演算部３０２の間にビット間演算手段１１１０を設けることにより、回転方向情報ｄ１i及びｄ２iから偏角θ1及びθ2を算出する演算回路が不要になる。これにより、低遅延及び低コストを実現することができる。
【００９９】
以上のように、第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａは、第１の直交座標データ（ｘ1，ｙ1）に対して右回転処理又は無回転処理を繰り返す。第１の回転方向情報ｄ１iは、右回転（＋１）及び無回転（±０）のいずれかの情報である。第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂは、第２の直交座標データ（ｘ2，ｙ2）に対して左回転処理又は無回転処理を繰り返す。第２の回転方向情報ｄ２iは、左回転（−１）及び無回転（±０）のいずれかの情報である。第３の回転方向情報ｄ３iは、右回転（＋１）、左回転（−１）及び無回転（±０）のいずれかの情報である。回転モードＣＯＲＤＩＣ演算部３０２は、第３の直交座標データ（ｘ1，ｙ1）に対して右回転処理、左回転処理又は無回転処理を繰り返す。
【０１００】
（第８の実施形態）
図１３は、本発明の第８の実施形態による座標演算装置の構成例を示す図である。図１３の座標演算装置は、図１１の座標演算装置に対して、第１の象限変換手段１３０１と第２の象限変換手段１３０２と第３の象限変換手段１３０３を追加したものである。以下、本実施形態が第７の実施形態と異なる点を説明する。第７の実施形態では、直交座標（ｘ1，ｙ1）は第１象限であり、直交座標（ｘ2，ｙ2）は第４象限であることを前提としていた。本実施形態では、第１の象限変換手段１３０１と第２の象限変換手段１３０２と第３の象限変換手段１３０３を設けることにより、汎用的な座標回転を実現する。
【０１０１】
第１の象限変換手段１３０１は、直交座標（ｘ1，ｙ1）を第１象限の直交座標（ｘ1'，ｙ1'）に変換する。具体的には、図１４（Ａ）に示すように、第１の象限変換手段１３０１は、直交座標（ｘ1，ｙ1）が第１象限である場合には、直交座標（ｘ1，ｙ1）を第１象限の直交座標（ｘ1'，ｙ1'）として出力する。また、第１の象限変換手段１３０１は、直交座標（ｘ1，ｙ1）が第２象限である場合には、直交座標（ｘ1，ｙ1）を−２７０°回転させることにより、第１象限の直交座標（ｘ1'，ｙ1'）を出力する。また、第１の象限変換手段１３０１は、直交座標（ｘ1，ｙ1）が第３象限である場合には、直交座標（ｘ1，ｙ1）を−１８０°回転させることにより、第１象限の直交座標（ｘ1'，ｙ1'）を出力する。また、第１の象限変換手段１３０１は、直交座標（ｘ1，ｙ1）が第４象限である場合には、直交座標（ｘ1，ｙ1）を−９０°回転させることにより、第１象限の直交座標（ｘ1'，ｙ1'）を出力する。ＣＯＲＤＩＣ演算部１１０１ａは、第１象限の直交座標（ｘ1'，ｙ1'）を入力し、回転方向情報ｄ１iを出力する。直交座標（ｘ1'，ｙ1'）の偏角θ1'は、ｔａｎ-1（ｘ1'／ｙ1'）である。回転方向情報ｄ１iは、偏角θ1'の回転方向情報である。
【０１０２】
第２の象限変換手段１３０２は、直交座標（ｘ2，ｙ2）を第４象限の直交座標（ｘ2'，ｙ2'）に変換する。具体的には、図１４（Ｂ）に示すように、第２の象限変換手段１３０２は、直交座標（ｘ2，ｙ2）が第１象限である場合には、直交座標（ｘ2，ｙ2）を−２７０°回転させることにより、第４象限の直交座標（ｘ2'，ｙ2'）を出力する。また、第２の象限変換手段１３０２は、直交座標（ｘ2，ｙ2）が第２象限である場合には、直交座標（ｘ2，ｙ2）を−１８０°回転させることにより、第４象限の直交座標（ｘ2'，ｙ2'）を出力する。また、第２の象限変換手段１３０２は、直交座標（ｘ2，ｙ2）が第３象限である場合には、直交座標（ｘ2，ｙ2）を−９０°回転させることにより、第４象限の直交座標（ｘ2'，ｙ2'）を出力する。また、第２の象限変換手段１３０２は、直交座標（ｘ2，ｙ2）が第４象限である場合には、直交座標（ｘ2，ｙ2）を第４象限の直交座標（ｘ2'，ｙ2'）として出力する。ＣＯＲＤＩＣ演算部１１０１ｂは、第４象限の直交座標（ｘ2'，ｙ2'）を入力し、回転方向情報ｄ２iを出力する。直交座標（ｘ2'，ｙ2'）の偏角θ2'は、ｔａｎ-1（ｘ2'／ｙ2'）である。回転方向情報ｄ２iは、偏角θ2'の回転方向情報である。なお、第１の象限変換手段１３０１及び第２の象限変換手段１３０２は、回転角度は９０°の倍数であるので、三角関数等の複雑な処理を必要としない。
【０１０３】
第３の象限変換手段１３０３は、直交座標（ｕ0，ｖ0）を直交座標（ｕ0'，ｖ0'）に変換する。具体的には、第３の象限変換手段１３０３は、第１の象限変換手段１３０１による回転角度Φ１及び第２の象限変換手段１３０２による回転角度Φ２に応じて、直交座標（ｕ0，ｖ0）を回転角（Φ１＋Φ２）だけ回転させ、直交座標（ｕ0'，ｖ0'）を出力する。ビット間演算手段１１１０は、第７の実施形態と同様に、図１２（Ａ）に示すように、回転方向情報ｄ１i及びｄ２iを加算した回転方向情報ｄ３i（＝ｄ１i＋ｄ２i）を出力する。
【０１０４】
以上のように、第１の象限変換手段１３０１は、第５の直交座標データ（ｘ1，ｙ1）を第１の角度Φ１だけ回転させることにより、第１象限の第１の直交座標データ（ｘ1'，ｙ1'）を第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａに出力する。第２の象限変換手段１３０２は、第６の直交座標データ（ｘ1，ｙ1）を第２の角度Φ２だけ回転させることにより、第４象限の第２の直交座標データ（ｘ2'，ｙ2'）を第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂに出力する。第３の象限変換手段１３０３は、第７の直交座標データ（ｕ0，ｖ0）を、第１の角度Φ１と第２の角度Φ２に応じた角度だけ回転させることにより、第３の直交座標データ（ｕ0'，ｖ0'）を回転モードＣＯＲＤＩＣ演算部３０２に出力する。
【０１０５】
ＣＯＲＤＩＣ演算部３０２は、回転方向情報ｄ３i及び直交座標（ｕ0'，ｖ0'）を入力し、データｕi+1及びｖi+1を出力する。データｕi+1及びｖi+1は、それぞれ、データｕn及びｖnに収束する。出力直交座標（ｕn，ｖn）は、入力直交座標（ｕ0，ｖ0）を、角度θ3（＝θ1＋θ2）だけ回転した座標である。偏角θ1は直交座標（ｘ1，ｙ1）の偏角であり、偏角θ2は直交座標（ｘ2，ｙ2）の偏角である。
【０１０６】
なお、左回転用のＣＯＲＤＩＣ演算部１１０１ｂ及び第２の象限変換手段１３０２を、右回転用のＣＯＲＤＩＣ演算部１１０１ａ及び第１の象限変換手段１３０１に置き換えてもよい。その場合、ビット間演算手段１１１０は、図１４（Ｃ）の演算を行い、回転方向情報ｄ３iを出力する。回転方向情報ｄ１i及びｄ２iは、それぞれ、無回転（±０）及び右回転（＋１）のいずれかである。ビット間演算手段１１１０は、回転方向情報ｄ１iから回転方向情報ｄ２iを減算した回転方向情報ｄ３i（＝ｄ１i−ｄ２i）を出力する。ＣＯＲＤＩＣ演算部３０２は、この回転方向情報ｄ３iを入力し、入力直交座標（ｕ0，ｖ0）を角度θ3（＝θ1−θ2）だけ回転させた座標（ｕn，ｖn）を出力する。
【０１０７】
その場合、第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａは、第１の直交座標データ（ｘ1'，ｙ1'）に対して右回転処理又は無回転処理を繰り返す。第１の回転方向情報ｄ１iは、右回転（＋１）及び無回転（±０）のいずれかの情報である。第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂは、第２の直交座標データ（ｘ2'，ｙ2'）に対して右回転処理又は無回転処理を繰り返す。第２の回転方向情報ｄ２iは、右回転（＋１）及び無回転（±０）のいずれかの情報である。第３の回転方向情報ｄ３iは、右回転（＋１）、左回転（−１）及び無回転（±０）のいずれかの情報である。回転モードＣＯＲＤＩＣ演算部３０２は、第３の直交座標データ（ｕ0'，ｖ0'）に対して右回転処理、左回転処理又は無回転処理を繰り返す。第１の象限変換手段１３０１は、第５の直交座標データ（ｘ1，ｙ1）を第１の角度Φ１だけ回転させることにより、第１象限の第１の直交座標データ（ｘ1'，ｙ1'）を第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａに出力する。第２の象限変換手段１３０２は、第６の直交座標データ（ｘ2，ｙ2）を第２の角度Φ２だけ回転させることにより、第１象限の第２の直交座標データ（ｘ2'，ｙ2'）を第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂに出力する。第３の象限変換手段１３０３は、第７の直交座標データ（ｕ0，ｖ0）を、第１の角度Φ１と第２の角度Φ２に応じた角度だけ回転させることにより、第３の直交座標データ（ｕ0'，ｖ0'）を回転モードＣＯＲＤＩＣ演算部３０２に出力する。
【０１０８】
また、同様に、右回転用のＣＯＲＤＩＣ演算部１１０１ａ及び第１の象限変換手段１３０１を、左回転用のＣＯＲＤＩＣ演算部１１０１ｂ及び第２の象限変換手段１３０２に置き換えてもよい。その場合、第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａは、第１の直交座標データ（ｘ1'，ｙ1'）に対して左回転処理又は無回転処理を繰り返す。第１の回転方向情報ｄ１iは、左回転（−１）及び無回転（±０）のいずれかの情報である。第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂは、第２の直交座標データ（ｘ2'，ｙ2'）に対して左回転処理又は無回転処理を繰り返す。第２の回転方向情報ｄ２iは、左回転（−１）及び無回転（±０）のいずれかの情報である。第３の回転方向情報ｄ３iは、右回転（＋１）、左回転（−１）及び無回転（±０）のいずれかの情報である。回転モードＣＯＲＤＩＣ演算部３０２は、第３の直交座標データ（ｕ0'，ｖ0'）に対して右回転処理、左回転処理又は無回転処理を繰り返す。第１の象限変換手段１３０１は、第５の直交座標データ（ｘ1，ｙ1）を第１の角度Φ１だけ回転させることにより、第４象限の第１の直交座標データ（ｘ1'，ｙ1'）を第１のベクタモードＣＯＲＤＩＣ演算部１１０１ａに出力する。第２の象限変換手段１３０２は、第６の直交座標データ（ｘ2，ｙ2）を第２の角度Φ２だけ回転させることにより、第４象限の第２の直交座標データ（ｘ2'，ｙ2'）を第２のベクタモードＣＯＲＤＩＣ演算部１１０１ｂに出力する。第３の象限変換手段１３０３は、第７の直交座標データ（ｕ0，ｖ0）を、第１の角度Φ１と第２の角度Φ２に応じた角度だけ回転させることにより、第３の直交座標データ（ｕ0'，ｖ0'）を回転モードＣＯＲＤＩＣ演算部３０２に出力する。このような変更を与えることにより、さまざまな偏角の合成角の回転を実現することができる。
【０１０９】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１０】
３０１  ベクタモードのＣＯＲＤＩＣ演算部、３０２  回転モードのＣＯＲＤＩＣ演算部
【図１】
2017123057.tif 000005
【図２】
2017123057.tif 000006
【図３】
2017123057.tif 000007
【図４】
2017123057.tif 000008
【図５】
2017123057.tif 000009
【図６】
2017123057.tif 000010
【図７】
2017123057.tif 000011
【図８】
2017123057.tif 000012
【図９】
2017123057.tif 000013
【図１０】
2017123057.tif 000014
【図１１】
2017123057.tif 000015
【図１２】
2017123057.tif 000016
【図１３】
2017123057.tif 000017
【図１４】
2017123057.tif 000018