(57)【特許請求の範囲】
【請求項１】
符号部ビットと指数部ビットと仮数部ビットとから構成される浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂを入力とし、この入力値Ａ，Ｂをそれぞれ指数部ビットと仮数部ビットとに分割して出力するビット分割部と、
前記ビット分割部から出力される前記ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差を検出する大小差検出部と、
前記大小差検出部が検出する前記指数の大小差に基づいて、前記ディジタル値Ａ，Ｂの仮数部ビットをそのディジタル値Ａ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整し、その調整後の前記ディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとする仮数部下位ビット選択抽出部と、
アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルと、
前記位相変換テーブルから前記仮数部下位ビット選択抽出部で選択抽出されたｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する位相出力部と
を備えることを特徴とする位相出力回路。
【請求項２】
符号部ビットと指数部ビットと仮数部ビットとから構成される浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂを入力とし、この入力値Ａ，Ｂをそれぞれ符号部ビットと指数部ビットと仮数部ビットとに分割して出力するビット分割部と、
前記ビット分割部から出力される前記ディジタル値Ａ，Ｂの符号部ビットから前記ディジタル値Ａ，Ｂの正負を検出する正負検出部と、
前記ビット分割部から出力される前記ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差を検出する大小差検出部と、
前記大小差検出部が検出する前記指数の大小差に基づいて、前記ディジタル値Ａ，Ｂの仮数部ビットをそのディジタルＡ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整し、その調整後の前記ディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとする仮数部下位ビット選択抽出部と、
アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルと、
前記位相変換テーブルから前記仮数部下位ビット選択抽出部で選択抽出されたｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出す位相読出部と、
前記位相読出部によって読み出されたθを前記正負検出部で検出された入力値Ａ，Ｂの正負に基づき象限を考慮した補正値Θに補正し、この補正値Θをｔａｎ-1（Ｂ／Ａ）として出力する象限変換部部と
を備えることを特徴とする位相出力回路。
【請求項３】
請求項１又は２に記載された位相出力回路において、
前記大小差検出部は、
前記ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差を２進数の減算値として出力する減算回路で構成されている
ことを特徴とする位相出力回路。
【請求項４】
請求項１又は２に記載された位相出力回路において、
前記仮数部下位ビット選択抽出部は、
前記大小差検出部が検出する前記指数の大小差に基づいて、前記ディジタル値ＡおよびＢの仮数部ビットが示す値をそのディジタル値Ａ，Ｂの指数を何れか大きい方の指数に合わせた値に正規化し、その正規化後の前記ディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとして出力する仮数部正規化回路で構成されている
ことを特徴とする位相出力回路。
【請求項５】
請求項１又は２に記載された位相出力回路において、
前記仮数部下位ビット選択抽出部は、
前記大小差検出部が検出する前記指数の大小差に基づいて、前記ディジタルＡおよびＢの仮数部ビットのうちそのディジタル値Ａ，Ｂの指数が小さい方の仮数部ビットをその指数の差分だけ下位方向にビットシフトし、このビットシフト後の前記ディジタルＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとして出力する仮数部ビットシフト回路で構成されている
ことを特徴とする位相出力回路
【請求項６】
請求項１−５の何れか１項において、
入力値Ａ，Ｂがともに０又はｍビット幅データａ，ｂがともに０であることを検出する２入力値ゼロ検出部と、
この２入力値ゼロ検出部によって入力値Ａ，Ｂ又はｍビット幅データａ，ｂがともに０であることが検出された場合、前記位相出力部から出力するθの代わりに乱数Ｒをｔａｎ-1（０／０）として出力する不定値発生部と
を備えることを特徴とする位相出力回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２入力Ａ，Ｂ（ディジタル値）のｔａｎ-1（Ｂ／Ａ）を位相変換テーブルを利用して求める位相出力回路、例えば特許文献１（パターン照合装置）に記載されている位相限定相関法による指紋照合過程で指紋の位相情報を高速且つ精度よく求める場合に複素数Ａ＋ｊＢを位相θに変換する際に用いられる位相出力回路に関するものである。
【背景技術】
【０００２】
従来より、この種の位相出力回路として、２入力Ａ，Ｂのｔａｎ-1（Ｂ／Ａ）＝θを予め求めておいて位相変換テーブルのアドレス（Ａ，Ｂ）に格納しておき、Ａ，Ｂが入力されたならこの２入力Ａ，Ｂに対応するθ＝ｔａｎ-1（Ｂ／Ａ）を位相変換テーブルから読み出して出力する方法が考えられている。
【０００３】
すなわち、図１０に示すように、Ａ，Ｂのビット幅ｎに対応してすべての組み合わせ分のアドレス（Ａ，Ｂ）を位相変換テーブル１に用意してそれぞれのｔａｎ-1（Ｂ／Ａ）＝θを格納しておく。Ａ，Ｂが処理部２に入力されると、処理部２は２入力Ａ，Ｂに対応するθ＝ｔａｎ-1（Ｂ／Ａ）を位相変換テーブル１から読み出して出力する。
【０００４】
この場合、入力値Ａ，Ｂのすべての組み合わせ分のテーブルを用意していれば、高精度な結果を得ることができるが、位相変換テーブル１が極めて大きくなり、現実的ではない。例えば、Ａ，Ｂそれぞれが１６ビット幅を持つ場合、２の３２乗個分のワードの位相変換テーブル１が必要となり、回路規模が激増してしまう。
【０００５】
そこで、位相変換テーブル１の容量を小さくした位相出力回路として、本出願人が先に提案した特許文献２が存在する。この特許文献２に示された位相出力回路の構成を図１１に示す。同図において、１は位相変換テーブル、２は処理部、３は最上位有効ビット検出部、４は下位ビット選択抽出部であり、最上位有効ビット検出部３は論理和回路３−１とプライオリティ・エンコーダ３−２とから構成され、下位ビット選択抽出部４はマルチプレクサ４−１と４−２とから構成されている。
【０００６】
この位相出力回路において、最上位有効ビット検出部３は、ｎビット幅のディジタル値Ａ，Ｂを入力とし、この入力値Ａ，Ｂのうち数値を有効とするビットパターン（この例では、「０」，「１」レベルの「１」）が割り当てられた最も上位のビット位置を最上位有効ビット位置Ｐとして検出する。なお、この例では、Ａ，Ｂは共に正の値を示すディジタル値とされ、固定小数点のデータとして入力されことを前提としている。
【０００７】
下位ビット選択抽出部４は、最上位有効ビット検出部３への入力値ＡおよびＢを分岐入力とし、また最上位有効ビット検出部３からの最上位有効ビット位置Ｐを入力とし、入力値ＡおよびＢより最上位有効ビット位置Ｐから下位ｍビットを選択抽出してｍビット幅データａおよびｂとして処理部２へ与える。
【０００８】
位相変換テーブル１にはアドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）が格納されている。すなわち、ｍビット幅データａ，ｂに対応してすべての組み合わせ分のアドレス（ａ，ｂ）を位相変換テーブル１に用意し、それぞれのｔａｎ-1（ｂ／ａ）＝θを格納している。この位相変換テーブル１の容量はｍによって決まり、ワード数にして２2mワードでよい。
【０００９】
今、Ａ，Ｂを８ビット幅のディジタル値とし、Ａとして「０１１００１０１」が、Ｂとして「００１０１０１１」が入力されるものとする。この場合、最上位有効ビット検出部３の論理和回路３−１は、入力値Ａ，Ｂの各ビットの論理和をとる。これにより、論理和回路３−１からの出力（論理和出力）は、「０１１０１１１１」となる。この論理和出力はプライオリティ・エンコーダ３−２へ与えられる。
【００１０】
プライオリティ・エンコーダ３−２は論理和回路３−１からの論理和出力における最も上位に存在する「１」、すなわち数値を有効とするビットパターンの位置を検出する。この場合、プライオリティ・エンコーダ３−２は最下位のビット位置を「０」とし、ビット位置「７」を最上位有効ビット位置Ｐとして検出する。
【００１１】
一方、入力値Ａは下位ビット選択抽出部４のマルチプレクサ４−１に、入力値Ｂは下位ビット選択抽出部４のマルチプレクサ４−２に与えられる。マルチプレクサ４−１は、プライオリティ・エンコーダ３−２からの最上位有効ビット位置Ｐを受けて、入力値Ａより最上位有効ビット位置Ｐから下位ｍビットを選択抽出してｍビット幅データａとし、このｍビット幅データａを処理部２へ与える。
【００１２】
マルチプレクサ４−２は、プライオリティ・エンコーダ３−２からの最上位有効ビット位置Ｐを受けて、入力値Ｂより最上位有効ビット位置Ｐから下位ｍビットを選択抽出してｍビット幅データｂとし、このｍビット幅データｂを処理部２へ与える。
【００１３】
この例では、ｍ＝４とされており、マルチプレクサ４−１は最上位有効ビット位置Ｐ＝「７」から下位４ビットの「１１００」を切り出し、ｍビット幅データａとする。また、マルチプレクサ４−２は最上位有効ビット位置Ｐ＝「７」から下位４ビットの「０１０１」を切り出し、ｍビット幅データｂとする。
【００１４】
処理部２は、下位ビット選択抽出部４からのｍビット幅データａ，ｂを受けて、位相変換テーブル１からｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する。この場合、アドレス（１１００，０１０１）に格納されているθ＝２３゜がｔａｎ-1（Ｂ／Ａ）として出力される。
【００１５】
このような構成とすることにより、特許文献２に示された位相出力回路では、小容量の位相変換テーブルを用い、しかも高精度で位相θを求めることができる。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平９−２２４０６号公報
【特許文献２】特開平１１−２１９４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
特許文献２に示された位相出力回路では、入力されるｎビット幅のディジタル値Ａ，Ｂが固定小数点のデータであることを前提にしているが、実際にはディジタル値Ａ，Ｂが浮動小数点のデータとして与えられることも多く、ディジタル値Ａ，Ｂが浮動小数点のデータとして与えられた場合、そのままの回路構成では対応することができない。
【００１８】
なお、浮動小数点のデータは、例えばＩＥＥＥ７５４規格に従い構成され、図１２に示されるようにその内訳として、単精度形式の場合、１ビットの符号部（「１」は負数、「」」０は正数）と、８ビットの指数部と、２３ビットの仮数部とを有する。この場合、ディジタル値Ａ，Ｂは、符号部ビット（１ビット）と指数部ビット（８ビット）と仮数部ビット（２３ビット）とで構成される。この場合、指数部は、２のべき乗の整数値を表し、仮数部は小数部とも呼ばれ、１．０〜２．０未満の値を表す。
【００１９】
ディジタル値Ａ，Ｂが浮動小数点のデータとして与えられる場合の回路構成として、図１３に示すように、最上位有効ビット検出部３の前段に整数化回路５−１および５−２を設け、浮動小数点形式のディジタル値Ａ，Ｂを固定小数点形式のディジタル値Ａ’およびＢ’に変換し、この変換された固定小数点形式のディジタル値Ａ’およびＢ’を最上位有効ビット検出部３の論理和回路３−１に入力することが考えられる。
【００２０】
しかしながら、浮動小数点はダイナミックレンジが非常に広いため、これを固定小数点に変換するためには、必要とするビット数が増大し、回路規模が非常に大きくなってしまう。
【００２１】
例えば、ＩＥＥＥ７５４に定められた浮動小数点のデータ構造の単精度形式の場合、正規化によって、浮動小数点データは、１．１７５４９４３５０８２２２８７５１Ｅ−３８〜３．４０２８２３４６６３８５２８８６Ｅ＋３８の範囲を有するので、この範囲の数を表現するためにはディジタル値Ａ，Ｂに対してそれぞれ設けられる整数化回路５−１，５−２や最上位有効ビット検出部３の論理和回路３−１およびプライオリティ・エンコーダ３−２、下位ビット選択抽出部４のマルチプレクサ４−１，４−２を２５０ビット対応のものにする必要があり、回路規模が非常に大きくなってしまう。
【００２２】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、小さな回路規模で、浮動小数点形式のディジタル値Ａ，Ｂへ対応することができる位相出力回路を提供することにある。
【課題を解決するための手段】
【００２３】
このような目的を達成するために本発明は、浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂを入力とし、この入力値Ａ，Ｂをそれぞれ指数部ビットと仮数部ビットとに分割して出力するビット分割部と、ビット分割部から出力されるディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差を検出する大小差検出部と、大小差検出部が検出する指数の大小差に基づいて、ディジタル値Ａ，Ｂの仮数部ビットをそのディジタルＡ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整し、その調整後のディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとする仮数部下位ビット選択抽出部と、アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルと、位相変換テーブルから仮数部下位ビット選択抽出部で選択抽出されたｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する位相出力部とを備えたものである。
【００２４】
この発明によれば、浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂがそれぞれ指数部ビットと仮数部ビットとに分割され、ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差が検出され、この検出された指数の大小差に基づいて、ディジタル値Ａ，Ｂの仮数部ビットがそのディジタル値Ａ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整され、その調整後のディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットが選択抽出されてｍビット幅データａおよびｂとされ、アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルからｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）が読み出され、このθがｔａｎ-1（Ｂ／Ａ）として出力される。但し、この場合、θは０゜から９０゜の場合に対応できる。
【００２５】
０゜から３６０゜のθに対応させたい場合には、符号部ビットと指数部ビットと仮数部ビットとから構成される浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂを入力とし、この入力値Ａ，Ｂをそれぞれ符号部ビットと指数部ビットと仮数部ビットとに分割して出力するビット分割部と、ビット分割部から出力されるディジタル値Ａ，Ｂの符号部ビットからディジタル値Ａ，Ｂの正負を検出する正負検出部と、ビット分割部から出力されるディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差を検出する大小差検出部と、大小差検出部が検出する指数の大小差に基づいて、ディジタル値Ａ，Ｂの仮数部ビットをそのディジタルＡ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整し、その調整後のディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットを選択抽出してｍビット幅データａおよびｂとする仮数部下位ビット選択抽出部と、アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルと、位相変換テーブルから仮数部下位ビット選択抽出部で選択抽出されたｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出す位相読出部と、位相読出部によって読み出されたθを正負検出部で検出された入力値Ａ，Ｂの正負に基づき象限を考慮した補正値Θに補正し、この補正値Θをｔａｎ-1（Ｂ／Ａ）として出力する象限変換部とを設けるようにする。
【００２６】
この場合、浮動小数点形式のｎビット幅のディジタル値Ａ，Ｂがそれぞれ符号部ビットと指数部ビットと仮数部ビットとに分割され、符号部ビットからディジタル値Ａ，Ｂの正負が検出されるとともに、ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差に基づいて、ディジタル値Ａ，Ｂの仮数部ビットがそのディジタル値Ａ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整され、その調整後のディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットが選択抽出されてｍビット幅データａおよびｂとされ、アドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）を格納した位相変換テーブルからｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）が読み出され、この読み出されたθが入力値Ａ，Ｂの正負に基づき象限を考慮した補正値Θに補正され、この補正値Θがｔａｎ-1 （Ｂ／Ａ）として出力される。この場合、Θは０゜から３６０゜の場合に対応できる。
【発明の効果】
【００２７】
本発明によれば、ディジタル値Ａ，Ｂの指数部ビットが示す指数の大小差に基づいて、ディジタル値Ａ，Ｂの仮数部ビットがそのディジタル値Ａ，Ｂの指数を何れか大きい方の指数に合わせた場合の値を示す仮数部ビットに調整され、その調整後のディジタル値ＡおよびＢの仮数部ビットの最上位ビットから下位ｍビットが選択抽出されてｍビット幅データａおよびｂとされ、位相変換テーブルからｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）が読み出され、このθがｔａｎ-1（Ｂ／Ａ）として出力されるものとなり、膨大なビット数の増加の要因となる整数化回路や論理和回路、プライオリティ・エンコーダを不要とし、また最上位ビットから下位ｍビットを選択抽出するマルチプレクサなどの対応ビット数を少なくし、小さな回路規模で、浮動小数点形式のディジタル値Ａ，Ｂに対応することができる位相出力回路を提供することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態（実施の形態１）を示す位相出力回路のブロック図である。
【図２】この位相出力回路の実施の形態２を示すブロック図である。
【図３】この位相出力回路の実施の形態３を示すブロック図である。
【図４】８×８の近似テーブル（２次元テーブル）として用意されている位相変換テーブルを例示する図である。
【図５】この位相出力回路の実施の形態４を示すブロック図である。
【図６】この位相出力回路における象限変換回路での補正内容を示す図である。
【図７】実施の形態２の位相出力回路に対して正負検出回路および象限変換回路を設けた例を示すブロック図である。
【図８】実施の形態３の位相出力回路に対して正負検出回路および象限変換回路を設けた例を示すブロック図である。
【図９】この位相出力回路の実施の形態５の要部を示すブロック図である。
【図１０】従来の位相出力回路を示すブロック図である。
【図１１】特許文献２に示された位相出力回路の構成を示すブロック図である。
【図１２】ＩＥＥＥ７５４規格に従う浮動小数点のデータ構造の一例（単精度形式の場合）を示す図である。
【図１３】特許文献２に示された位相出力回路においてディジタル値Ａ，Ｂが浮動小数点のデータとして与えられる場合に想定される回路構成を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
〔実施の形態１〕
図１はこの発明の一実施の形態を示す位相出力回路のブロック図である。同図において、１は位相変換テーブル、２は処理部、６はビット分割部、７は大小差検出部、８は仮数部下位ビット選択抽出部であり、ビット分割部６は第１のビット分割回路６−１と第２のビット分割回路６−２とから構成され、仮数部下位ビット選択抽出部８は第１の仮数部調整回路８−１と第２の仮数部調整回路８−２とから構成されている。
【００３０】
第１のビット分割回路６−１は、浮動小数点形式のｎビット幅のディジタル値Ａを入力とし、この入力値Ａを指数部ビットＡｅと仮数部ビットＡｍとに分割して出力する。第２のビット分割回路６−２は、浮動小数点形式のｎビット幅のディジタル値Ｂを入力とし、この入力値Ｂを指数部ビットＢｅと仮数部ビットＢｍとに分割して出力する。
【００３１】
大小差検出部７は、第１のビット分割回路６−１から出力されるディジタル値Ａの指数部ビットＡｅおよび第２のビット分割回路６−２から出力されるディジタル値Ｂの指数部ビットＢｅを入力とし、このディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差をＡｅ−Ｂｅとして出力する。
【００３２】
この場合、Ａｅ−Ｂｅが正（Ａｅ−Ｂｅ＞０）であれば、ディジタル値Ａの指数部ビットＡｅが示す指数がディジタル値Ｂの指数部ビットＢｅが示す指数よりも「Ａｅ−Ｂｅ」だけ大きいことを表している。また、Ａｅ−Ｂｅが負（Ａｅ−Ｂｅ＜０）であれば、ディジタル値Ｂの指数部ビットＢｅが示す指数がディジタル値Ａの指数部ビットＡｅが示す指数よりも「Ｂｅ−Ａｅ」だけ大きいことを表している。
【００３３】
第１の仮数部調整回路８−１は、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅを入力とし、Ａｅ−Ｂｅが負の場合（Ｂｅの方の指数が大の場合）には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをディジタル値Ａの指数をディジタル値Ｂの指数に合わせた場合の仮数部ビットに調整し、その調整したディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ与える一方、Ａｅ−Ｂｅが正の場合（Ａｅの方の指数が大の場合）には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ与える。
【００３４】
第２の仮数部調整回路８−２は、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅを入力とし、Ａｅ−Ｂｅが正の場合（Ａｅの方の指数が大の場合）には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをディジタル値Ｂの指数をディジタル値Ａの指数に合わせた場合の仮数部ビットに調整し、その調整したディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ与える一方、Ａｅ−Ｂｅが負の場合（Ｂｅの方の指数が大の場合）には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ与える。
【００３５】
位相変換テーブル１にはアドレス（ａ，ｂ）にθ＝ｔａｎ-1（ｂ／ａ）が格納されている。すなわち、ｍビット幅データａ，ｂに対応してすべての組み合わせ分のアドレス（ａ，ｂ）を位相変換テーブル１に用意し、それぞれのｔａｎ-1（ｂ／ａ）＝θを格納している。この位相変換テーブル１の容量はｍによって決まり、ワード数にして２2mワードでよい。
【００３６】
なお、この実施の形態では、Ａ，Ｂは共に正の値を示すディジタル値であり、０〜９０゜の範囲でｔａｎ-1（Ｂ／Ａ）を求めるものとする。また、ディジタル値Ａ，Ｂは、ＩＥＥＥ７５４に定められた浮動小数点のデータ構造の単精度形式であるとし、１ビットの符号部（「１」は負数、「０」は正数）と、８ビットの指数部と、２３ビットの仮数部とで構成されているものとする（図１２参照）。
【００３７】
次に、ビット分割部６（第１のビット分割回路６−１、第２のビット分割回路６−２），大小差検出部７、仮数部下位ビット選択抽出部８（第１の仮数部調整回路８−１、第２の仮数部調整回路８−２）の機能を交えながら、この位相出力回路の動作について説明する。
【００３８】
今、Ａ＋ｊＢを複素数とし、実部のデータとして浮動小数点形式のｎ＝３２ビット幅のディジタル値Ａが第１のビット分割回路６−１へ、虚部のデータとして浮動小数点形式のｎ＝３２ビット幅のディジタル値Ｂが第２のビット分割回路６−２へ入力されたとする。
【００３９】
第１のビット分割回路６−１は、３２ビット幅のディジタル値Ａを８ビット（ビット位置「２３」〜「３０」）の指数部ビットＡｅと２３ビット（ビット位置「０」〜「２２」）の仮数部ビットＡｍに分割し、指数部ビットＡｅを大小差検出部７へ送り、仮数部ビットＡｍを第１の仮数部調整回路８−１へ送る。
【００４０】
第２のビット分割回路６−２は、３２ビット幅のディジタル値Ｂを８ビット（ビット位置「２３」〜「３０」）の指数部ビットＢｅと２３ビット（ビット位置「０」〜「２２」）の仮数部ビットＢｍに分割し、指数部ビットＢｅを大小差検出部７へ送り、仮数部ビットＢｍを第２の仮数部調整回路８−２へ送る。
【００４１】
大小差検出部７は、第１のビット分割回路６−１からのディジタル値Ａの指数部ビットＡｅおよび第２のビット分割回路６−２からのディジタル値Ｂの指数部ビットＢｅを入力とし、このディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差をＡｅ−Ｂｅとして求め、この求めた指数の大小差Ａｅ−Ｂｅを第１の仮数部調整回路８−１および第２の仮数部調整回路８−２へ送る。
【００４２】
この場合、大小差検出部７では、ディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差Ａｅ−Ｂｅを２進数の減算値として求めてもよいし、１０進数の減算値として求めてもよい。大小差検出部７において、ディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差Ａｅ−Ｂｅを２進数の減算値として求めるものとすれば、大小差検出部７を単純な２進数の減算回路で構成することができ、回路の簡略化が図られる。
【００４３】
〔Ａｅ−Ｂｅ＞０の場合〕
ここで、Ａｅ−Ｂｅが正（Ａｅ−Ｂｅ＞０）である場合、すなわちディジタル値Ａの指数部ビットＡｅが示す指数がディジタル値Ｂの指数部ビットＢｅが示す指数よりも「Ａｅ−Ｂｅ」だけ大きい場合、第１の仮数部調整回路８−１は、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００４４】
これに対し、第２の仮数部調整回路８−２は、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをディジタル値Ｂの指数をディジタル値Ａの指数に合わせた場合の仮数部ビットに調整し、その調整したディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００４５】
例えば、「Ａｅ−Ｂｅ」が２であった場合、第２の仮数部調整回路８−２は、ディジタル値Ｂの仮数部ビットＢｍが示す値（２進数）を２桁分だけ下げ、その２桁分だけ下げたディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００４６】
〔Ａｅ−Ｂｅ＜０の場合〕
Ａｅ−Ｂｅが負（Ａｅ−Ｂｅ＜０）である場合、すなわちディジタル値Ｂの指数部ビットＢｅが示す指数がディジタル値Ａの指数部ビットＡｅが示す指数よりも「Ｂｅ−Ａｅ」だけ大きい場合、第２の仮数部調整回路８−２は、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００４７】
これに対し、第１の仮数部調整回路８−１は、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをディジタル値Ａの指数をディジタル値Ｂの指数に合わせた場合の仮数部ビットに調整し、その調整したディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００４８】
例えば、「Ｂｅ−Ａｅ」が２であった場合、第１の仮数部調整回路８−１は、ディジタル値Ａの仮数部ビットＡｍが示す値（２進数）を２桁分だけ下げ、その２桁分だけ下げたディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００４９】
処理部２は、第１の仮数部調整回路８−１からのｍビット幅データａおよび第２の仮数部調整回路８−２からのｍビット幅データｂを受けて、位相変換テーブル１からｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する。
【００５０】
この位相出力回路において、ビット分割部６はディジタル値Ａ，Ｂ用にそれぞれ３１ビット分の信号の分配で済み、大小差検出部７はディジタル値Ａ，Ｂに対して８ビット分の入力が可能であればよい。また、仮数部下位ビット選択抽出部８は、ディジタル値Ａ，Ｂそれぞれの仮数部ビットの２３ビット分の入力が可能であればよい。
【００５１】
このような回路構成から分かるように、本実施の形態の位相出力回路では、膨大なビット数の増加の要因となる整数化回路や論理和回路、プライオリティ・エンコーダが不要であり、また最上位ビットから下位ｍビットを選択抽出するマルチプレクサなどの対応ビット数を少なくし、小さな回路規模で、浮動小数点形式のディジタル値Ａ，Ｂへの対応が可能となる。
【００５２】
〔実施の形態２〕
実施の形態２では、図２に示すように、実施の形態１における第１の仮数部調整回路８−１に対応する構成として第１の仮数部正規化回路８１を設け、第２の仮数部調整回路８−２に対応する構成として第２の仮数部正規化回路８２を設けている。そして、第１の仮数部正規化回路８１を正規化部８１Ａとマルチプレクサ８１Ｂとで構成し、第２の仮数部正規化回路８２を正規化部８２Ａとマルチプレクサ８２Ｂとで構成している。
【００５３】
第１の仮数部正規化回路８１において、正規化部８１Ａは、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅを入力とし、Ａｅ−Ｂｅが負の場合（Ｂｅの方の指数が大の場合）には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍが示す値をディジタル値Ａの指数をディジタル値Ｂの指数に合わせた値に正規化し、その正規化されたディジタル値Ａの仮数部ビットＡｍをマルチプレクサ８１Ｂへ与える一方、Ａｅ−Ｂｅが正の場合（Ａｅの方の指数が大の場合）には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをそのままマルチプレクサ８１Ｂへ送る。マルチプレクサ８１Ｂは、正規化部８１Ａからのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００５４】
第２の仮数部正規化回路８２において、正規化部８２Ａは、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅを入力とし、Ａｅ−Ｂｅが正の場合（Ａｅの方の指数が大の場合）には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍが示す値をディジタル値Ｂの指数をディジタル値Ａの指数に合わせた値に正規化し、その正規化されたディジタル値Ｂの仮数部ビットＢｍをマルチプレクサ８２Ｂへ与える一方、Ａｅ−Ｂｅが負の場合（Ｂｅの方の指数が大の場合）には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをマルチプレクサ８２Ｂへ送る。マルチプレクサ８２Ｂは、正規化部８２Ａからのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００５５】
〔実施の形態３〕
実施の形態３では、図３に示すように、実施の形態１における第１の仮数部調整回路８−１に対応する構成として第１の仮数部ビットシフト回路８３を設け、第２の仮数部調整回路８−２に対応する構成として第２の仮数部ビットシフト回路８４を設けている。そして、第１の仮数部ビットシフト回路８３をビットシフト部（右シフト回路）８３Ａとマルチプレクサ８３Ｂとで構成し、第２の仮数部ビットシフト回路８４をビットシフト部（右シフト回路）８４Ａとマルチプレクサ８４Ｂとで構成している。
【００５６】
第１の仮数部ビットシフト回路８３において、ビットシフト部８３Ａは、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅをシフト量として入力とし、シフト量Ａｅ−Ｂｅが負の場合には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをその指数の差分だけ下位方向にビットシフトし、そのビットシフトしたディジタル値Ａの仮数部ビットＡｍをマルチプレクサ８３Ｂへ送る一方、シフト量Ａｅ−Ｂｅが正の場合には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをそのままマルチプレクサ８３Ｂへ送る。マルチプレクサ８３Ｂは、ビットシフト部８３Ａからのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００５７】
第２の仮数部ビットシフト回路８４において、ビットシフト部８４Ａは、大小差検出部７が出力する指数の大小差Ａｅ−Ｂｅをシフト量として入力とし、シフト量Ａｅ−Ｂｅが正の場合には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをその指数の差分だけ下位方向にビットシフトし、そのビットシフトしたディジタル値Ｂの仮数部ビットＢｍをマルチプレクサ８４Ｂへ送る一方、シフト量Ａｅ−Ｂｅが負の場合には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをそのままマルチプレクサ８４Ｂへ送る。マルチプレクサ８４Ｂは、ビットシフト部８４Ａからのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００５８】
この実施の形態３の位相出力回路において、Ａ＝３２５、Ｂ＝１２３１とし、浮動小数点形式のディジタル値ＡとしてＡfloat_in_hex＝０１００００１１１０１０００１０１０００００００００００００００が第１のビット分割回路６−１へ入力され、浮動小数点形式のディジタル値ＢとしてＢfloat_in_hex＝０１０００１００１００１１００１１１１０００００００００００００が第２のビット分割回路６−２へ入力されたとする。
【００５９】
この場合、第１のビット分割回路６−１は、指数部ビットＡｅとして「１００００１１１」を大小差検出部７へ送り、仮数部ビットＡｍとして「０１０００１０１０００００００００００００００」をビットシフト部８３Ａへ送る。第２のビット分割回路６−２は、指数部ビットＢｅとして「１０００１００１」を大小差検出部７へ送り、仮数部ビットＢｍとして「００１１００１１１１０００００００００００００」をビットシフト部８４Ａへ送る。
【００６０】
大小差検出部７は、第１のビット分割回路６−１からのディジタル値Ａの指数部ビットＡｅおよび第２のビット分割回路６−２からのディジタル値Ｂの指数部ビットＢｅを入力とし、このディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差をＡｅ−Ｂｅとして求め、この求めた指数の大小差Ａｅ−Ｂｅをシフト量としてビットシフト部８３Ａおよびビットシフト部８４Ａへ送る。この場合、ディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差は、Ａｅ＝１２８＋７＝１３５、Ｂｅ＝１２８＋９＝１３７であることから、Ａｅ−Ｂｅ＝−２となる。
【００６１】
第１の仮数部ビットシフト回路８３において、ビットシフト部８３Ａは、大小差検出部７から送られてくるＡｅ−Ｂｅが−２であるので、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍをその指数の差分だけ下位方向にビットシフトし、そのビットシフトしたディジタル値Ａの仮数部ビットＡｍをマルチプレクサ８３Ｂへ送る。この場合、仮数部ビットＡｍとして送られてくる「０１０００１０１０００００００００００００００」を下位方向（右方向）に２ビットシフトして、「０００１０００１０１０００００００００００００」とし、このビットシフトしたディジタル値Ａの仮数部ビットＡｍをマルチプレクサ８３Ｂへ送る。
【００６２】
マルチプレクサ８３Ｂは、ビットシフト部８３Ａからのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。例えば、ｍ＝３とした場合、「０００１０００１０１０００００００００００００」の最上位ビットから下位３ビットを選択抽出し、この選択抽出した下位３ビット「０００」をｍビット幅データａとして処理部２へ送る。
【００６３】
一方、第２の仮数部ビットシフト回路８４において、ビットシフト部８４Ａは、大小差検出部７から送られてくるＡｅ−Ｂｅが−２であるので、すなわちＡｅ−Ｂｅが正ではないので、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍをそのままマルチプレクサ８４Ｂへ送る。この場合、仮数部ビットＢｍとして送られてくる「００１１００１１１１０００００００００００００」をそのままマルチプレクサ８４Ｂへ送る。
【００６４】
マルチプレクサ８４Ｂは、ビットシフト部８４Ａからのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。例えば、ｍ＝３とした場合、「００１１００１１１１０００００００００００００」の最上位ビットから下位３ビットを選択抽出し、この選択抽出した下位３ビット「００１」をｍビット幅データｂとして処理部２へ送る。
【００６５】
処理部２は、第１の仮数部ビットシフト回路８３からのｍビット幅データａおよび第２の仮数部ビットシフト回路８４からのｍビット幅データｂを受けて、位相変換テーブル１からｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する。例えば、ｍ＝３とした場合、８×８の近似テーブル（２次元テーブル）として用意されている位相変換テーブル１（図４参照）より、アドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、このθをｔａｎ-1（Ｂ／Ａ）として出力する。
【００６６】
〔実施の形態４〕
実施の形態１は、Ａ，Ｂは共に正の値を示すディジタル値とし、０〜９０゜の範囲でｔａｎ-1（Ｂ／Ａ）を求めることを前提とした。Ａ，Ｂが正，負の値を示すディジタル値であることを前提とする場合、図５に示すように正負検出回路９−１，９−２および象限変換回路１０を設けるようにして、０〜３６０゜の範囲でｔａｎ-1（Ｂ／Ａ）を求めることができるようにする。
【００６７】
この場合、第１のビット分割回路６−１は、浮動小数点形式のｎビット幅のディジタル値Ａを入力とし、この入力値Ａを符号部ビットＡｓと指数部ビットＡｅと仮数部ビットＡｍとに分割し、符号部ビットＡｓを正負検出回路９−１へ送り、指数部ビットＡｅを大小差検出部７へ送り、仮数部ビットＡｍを第１の仮数部調整回路８−１へ送る。
【００６８】
第２のビット分割回路６−２は、浮動小数点形式のｎビット幅のディジタル値Ｂを入力とし、この入力値Ｂを符号部ビットＢｓと指数部ビットＢｅと仮数部ビットＢｍとに分割し、符号部ビットＢｓを正負検出回路９−２へ送り、指数部ビットＢｅを大小差検出部７へ送り、仮数部ビットＢｍを第２の仮数部調整回路８−２へ送る。
【００６９】
正負検出回路９−１は、入力値Ａの符号部ビットＡｓより、その符号部ビットＡｓが「１」である場合には負数として、「０」である場合には正数として、入力値Ａの符号の正負を検出する。また、正負検出回路９−２は、入力値Ｂの符号部ビットＢｓより、その符号部ビットＢｓが「１」である場合には負数として、「０」である場合には正数として、入力値Ｂの符号の正負を検出する。この正負検出回路９−１，９−２での検出結果は象限変換回路１０へ送られる。
【００７０】
一方、大小差検出部７は、第１のビット分割回路６−１からのディジタル値Ａの指数部ビットＡｅおよび第２のビット分割回路６−２からのディジタル値Ｂの指数部ビットＢｅを入力とし、このディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差をＡｅ−Ｂｅとして求め、この求めた指数の大小差Ａｅ−Ｂｅを第１の仮数部調整回路８−１および第２の仮数部調整回路８−２へ送る。
【００７１】
第１の仮数部調整回路８−１は、大小差検出部７からのディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差Ａｅ−Ｂｅに基づいて、Ａｅ−Ｂｅが正である場合には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送り、Ａｅ−Ｂｅが負である場合には、第１のビット分割回路６−１からのディジタル値Ａの仮数部ビットＡｍを調整し、この調整した仮数部ビットＡｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データａとして処理部２へ送る。
【００７２】
第２の仮数部調整回路８−２は、大小差検出部７からのディジタル値Ａ，Ｂの指数部ビットＡｅ，Ｂｅが示す指数の大小差Ａｅ−Ｂｅに基づいて、Ａｅ−Ｂｅが負である場合には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送り、Ａｅ−Ｂｅが正である場合には、第２のビット分割回路６−２からのディジタル値Ｂの仮数部ビットＢｍを調整し、この調整した仮数部ビットＢｍの最上位ビットから下位ｍビットを選択抽出し、ｍビット幅データｂとして処理部２へ送る。
【００７３】
処理部２は、第１の仮数部調整回路８−１からのｍビット幅データａおよび第２の仮数部調整回路８−１からのｍビット幅データｂを受けて、位相変換テーブル１からｍビット幅データａ，ｂに対応するアドレス（ａ，ｂ）に格納されているθ＝ｔａｎ-1（ｂ／ａ）を読み出し、この読み出したθ＝ｔａｎ-1（ｂ／ａ）を象限変換回路１０へ与える。
【００７４】
象限変換回路１０は、処理部２からのθを正負検出回路９−１，９−２で検出された入力値Ａ，Ｂの正負に基づき象限を考慮した補正値Θに補正し、この補正値Θをｔａｎ-1（Ｂ／Ａ）として出力する。象限変換回路１０での補正内容を図６に示す。
【００７５】
この補正内容に従い、象限変換回路１０は、Ａ，Ｂが共に正である場合にはベクトル（Ａ，Ｂ）が第１象限にあるものとみなし、Θ＝θとする。Ａが負、Ｂが正である場合にはベクトル（Ａ，Ｂ）が第２象限にあるものとみなし、Θ＝１８０−θとする。Ａ，Ｂが共に負である場合にはベクトル（Ａ，Ｂ）が第３象限にあるものとみなし、Θ＝１８０＋θとする。Ａが正、Ｂが負である場合にはベクトル（Ａ，Ｂ）が第４象限にあるものとみなし、Θ＝３６０−θとする。
【００７６】
なお、この実施の形態４は、実施の形態１の位相出力回路に対して、正負検出回路９−１，９−２および象限変換回路１０を設けた例として説明したが、実施の形態２，３の位相出力回路についても、同様にして正負検出回路９−１，９−２および象限変換回路１０を設けるようにしてもよい。図７に実施の形態２の位相出力回路に対して正負検出回路９−１，９−２および象限変換回路１０を設けた例を、図８に実施の形態３の位相出力回路に対して正負検出回路９−１，９−２および象限変換回路１０を設けた例を示す。
【００７７】
〔実施の形態５〕
上述した実施の形態１〜４においては、ｍビット幅データａ，ｂに共に０が入ると位相変換テーブル１の（０，０）に登録された一定値を出してしまうが、本来ｔａｎ-1（０／０）は不定であり、これが問題を生じる場合がある。
【００７８】
実際、本発明の応用例であるパターン認識装置に利用した場合、例えばカメラを覆うなどして実現できる、真っ黒の（すなわち、画素データがすべて０の）画像をカメラから入力すると、位相変換テーブルの（０，０）に登録された一定値だけで構成されえた画像が出力される。しかし、これは位相成分・周波数成分を持たないものになってしまう。
【００７９】
このような出力画像が発生すると、装置の故障によって登録画像のデータが正常に取り込めず、一定値だけの画像を登録画像として誤って取り込んでしまったとき、このパターン認識装置は画像があっていないにも拘わらず、一致という判断結果を出力してしまう。
【００８０】
あるいは、指紋照合装置などのように応用例の場合には、登録者がカメラの入力を手で覆うなどして真っ黒の画像を登録させた場合、照合時にカメラを手でふさげば誰でも本人一致となってしまうセキュリティーホールになるため、特にセキュリティ製品へ応用する場合には大きな問題となる。
【００８１】
これを回避するためには、入力の複素数に０＋ｊ０、すなわち位相が不定となる条件の場合に一定値が出ないように制御すればよい。すなわち、図９に示すように、ＯＲ回路１１、マルチプレクサ１２、乱数発生部１３−１と不定値発生制御部１３−２とから構成される不定値発生回路１３を設け、ｍビット幅データａ，ｂがともに０である場合、すなわちＯＲ回路１０の出力が「０」レベルとなった場合、不定値発生制御部１３−２からマルチプレクサ１２へ不定値発生指令を送り、処理部２から出力されるθの代わりに乱数発生処理部１３−１からの乱数Ｒを取り込んで、ｔａｎ-1（０／０）として出力する。
【００８２】
このような回路を付加することにより、複素数位相変換後のデータがすべて一定になることが発生しないため、上記に記載した問題例がすべて回避できる。なお、この実施の形態では、ｍビット幅データａ，ｂのＯＲをとるようにしたが、入力値Ａ，ＢのＯＲをとるようにしてもよい。
【００８３】
なお、上述した実施の形態では、ディジタル値Ａ，ＢをＩＥＥＥ７５４に定められた浮動小数点のデータ構造の単精度形式としたが、倍精度形式、４倍精度形式などであっても、同様にして適用することが可能である。
【産業上の利用可能性】
【００８４】
本発明の位相出力回路は、２入力Ａ，Ｂ（ディジタル値）のｔａｎ-1（Ｂ／Ａ）を位相変換テーブルを利用して求める位相出力回路として、パターン認識装置や指紋照合装置など各種の装置に利用することが可能である。
【符号の説明】
【００８５】
１…位相変換テーブル、２…処理部、６…ビット分割部、６−１…第１のビット分割回路、６−２…第２のビット分割回路、７…大小差検出部、８…仮数部下位ビット選択抽出部、８−１…第１の仮数部調整回路、８−２…第２の仮数部調整回路、８１…第１の仮数部正規化回路、８１Ａ…正規化部、８１Ｂ…マルチプレクサ、８２…第２の仮数部正規化回路、８２Ａ…正規化部、８２Ｂ…マルチプレクサ、８３…第１の仮数部ビットシフト回路、８３Ａ…ビットシフト部、８３Ｂ…マルチプレクサ、８４…第２の仮数部ビットシフト回路、８４Ａ…ビットシフト部、８４Ｂ…マルチプレクサ、９−１，９−２…正負検出回路、１０…象限変換回路、１１…ＯＲ回路、１２…マルチプレクサ、１３…不定値発生回路、１３−１…乱数発生部、１３−２…不定値発生制御部。
【図１】
0005426451.tif 000002
【図２】
0005426451.tif 000003
【図３】
0005426451.tif 000004
【図４】
0005426451.tif 000005
【図５】
0005426451.tif 000006
【図６】
0005426451.tif 000007
【図７】
0005426451.tif 000008
【図８】
0005426451.tif 000009
【図９】
0005426451.tif 000010
【図１０】
0005426451.tif 000011
【図１１】
0005426451.tif 000012
【図１２】
0005426451.tif 000013
【図１３】
0005426451.tif 000014