(57)【特許請求の範囲】
【請求項１】
固定小数点の複素データの実部を入力するＩｃｈ（Ｉｎ-ｐｈａｓｅ Ｃｈａｎｎｅｌ）入力端子と、当該複素データの虚部を入力するＱｃｈ（Ｑｕａｄｒａｔｕｒｅ Ｃｈａｎｎｅｌ）入力端子と、ＩｃｈデータとＱｃｈデータの平方和を計算する平方和演算器と、上記平方和演算器から出力される平方和データの桁上げを行うシフトアップデータおよび当該平方和演算器から出力される平方和データの桁下げを行うシフトダウンデータを、平方和データとの対応関係を表す真理値表に基いて出力するシフト量演算器と、上記平方和演算器から出力される平方和データと上記シフト量演算器から出力されるシフトアップデータとの倍精度乗算を行い、当該乗算結果のMSB(Most Significant Bit)とLSB (Least Significant Bit)の間の特定長のビットデータを出力する倍精度乗算器と、当該倍精度乗算器の出力するビットデータをアドレスとして、当該アドレスに対応する平方根データを出力する平方根演算器と、当該平方根データに上記シフト量演算器から出力されるシフトダウンデータを乗じる単精度乗算器と、当該単精度乗算結果を複素データの振幅データとして出力する振幅出力端子を備えたことを特徴とする振幅検出装置。
【請求項２】
固定小数点の複素データの実部を入力するＩｃｈ入力端子と、複素データの虚部を入力するＱｃｈ入力端子と、当該ＩｃｈデータとＱｃｈデータの平方和を計算する平方和演算器と、上記平方和演算器から出力される平方和データの桁上げを行うシフトアップデータおよび当該平方和演算器から出力される平方和データの桁下げを行うシフトダウンデータを、平方和データとの対応関係を表す真理値表に基いて出力するシフト量演算器と、上記平方和演算器から出力される平方和データと上記シフト量演算器から出力されるシフトアップデータとの倍精度乗算を行い、当該乗算結果のMSB(Most Significant Bit)とLSB (Least Significant Bit)の間のビットデータを出力する倍精度乗算器と、当該倍精度乗算器の出力するビットデータをアドレスとして、当該アドレスに対応する平方根データを出力する平方根演算器と、当該平方根データに上記シフト量演算器から出力されるシフトダウンデータを乗じる第１の単精度乗算器と、当該第１の単精度乗算結果からシフトアップデータとバイアスデータを計算するバイアス量演算器と、上記第１の単精度乗算器の単精度乗算結果に上記バイアス量演算器から出力されるシフトアップデータを乗じて、乗算結果の上位ビットと下位ビットの間のビットデータを出力する第２の単精度乗算器と、上記第２の単精度乗算器の出力するビットデータをアドレスとして、当該アドレスに対応する対数関数データを出力する対数関数演算器と、当該対数関数データに上記バイアスデータを加算する単精度加算器と、当該単精度加算器の加算結果の下位ビットを対数振幅データとして出力する対数振幅出力端子を備えたことを特徴とする振幅検出装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、大量のデータを高速・高精度に処理する要求があるレーダ信号処理システムの中で、固定小数点の複素データから振幅データないし対数振幅データを計算する振幅検出装置に関するものである。
【０００２】
【従来の技術】
図７は従来の振幅検出装置を示すブロック図である。図において、１は複素データの実部を入力するＩｃｈ入力端子、２は複素データの虚部を入力するＱｃｈ入力端子、７は単精度乗算器、８は複素データの振幅を出力する振幅出力端子、１０は振幅データの対数を計算する対数関数演算器、１１は単精度加算器、１２は対数振幅データを出力する対数振幅出力端子、１３は実数データの絶対値を計算する絶対値演算器、１４は２個の実数データを比較して大きい方を選択する最大値演算器、１５は２個の実数データを比較して小さい方を選択する最小値演算器、１６は所望の定数を発生する定数発生器である。
【０００３】
まず、従来の振幅検出装置の動作について説明する。Ｉｃｈ入力端子１から入力する複素データの実部をＸ、Ｑｃｈ入力端子２から入力する複素データの虚部をＹとおくと、絶対値演算回路１３は実部データＸおよび虚部データＹの絶対値｜Ｘ｜および｜Ｙ｜を計算する。最大値演算器１４および最小値演算器１５は｜Ｘ｜と｜Ｙ｜の中から、それぞれ大きい値および小さい値を計算する。定数発生器１６が発生する定数をＫ（Ｋ＝０．４０９２）とおくと、単精度乗算器７は最小値演算器１５が計算した最小値と定数Ｋの乗算を行う。単精度加算器１１は最大値演算器１４が計算した最大値と単精度乗算器７が計算した乗算結果の加算を行う。振幅出力端子８は単精度加算器１１が計算した加算結果を複素データＸ＋ｊＹ（ここでｊは虚数単位）の振幅データとして出力する。対数振幅出力端子１２は対数関数演算器１０が計算した振幅データの対数を対数振幅データとして出力する。このようにして求められた振幅データＲおよび対数振幅データＳはそれぞれ“数１”，“数２”で与えられる。
【０００４】
【数１】
0003612759.tif 000002
【０００５】
【数２】
0003612759.tif 000003
【０００６】
次に、従来の振幅検出装置における検出誤差について説明する。いま、複素データの振幅を１としたとき、“数１”による振幅データＲは図８の実線に示す通り、８種類の円弧を組み合わせた曲線で表わされる。検出誤差は複素データの位相θ（０≦θ＜２π）によって変動するが、平均値が“数３”の通り５．３％、最大値は“数４”の通り８．０％となる。
【０００７】
【数３】
0003612759.tif 000004
【０００８】
【数４】
0003612759.tif 000005
【０００９】
一方、対数関数演算器１０には振幅データＲをアドレスとして、対数振幅データＳを出力するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）が使用されている。単精度加算器１１の出力データ長を１６ビットとすると、１６ビットのアドレスと６４ｋワード（ここで、１ワードは１６ビット、１ｋワードは１０２４ワード）のメモリ容量を持つＲＯＭが必要となるが、ハードウェア量の肥大化を考えれば、現実的な値ではない。そこで、従来の振幅検出装置では単精度加算器１１の出力データから下位ビットを切り捨て、残る上位ビットをＲＯＭのアドレスとして入力している。“表１”には、標準的な市販部品で実現可能な１２ビットアドレス・４ｋワードＲＯＭの真理値表を示す。
【００１０】
【表１】
0003612759.tif 000006
【００１１】
さらに、振幅データＲと対数振幅データＳの関係を表わしたグラフを図９に示す。Ｒ≦１６の小振幅領域では下位４ビットを切り捨てた影響からその対数が常にＳ＝０となり、対数振幅データＳの単調増加性は消失していることが分かる。
【００１２】
【発明が解決しようとする課題】
上記のような振幅検出装置では、平均５．３％、最大８．０％の振幅検出誤差を有するため、振幅データのＳ／Ｎ比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）を劣化させるという問題点があった。
【００１３】
また、対数振幅データの全領域で単調増加性を保持するためには、対数関数演算器のメモリ容量が肥大化するという問題点があった。
【００１４】
この発明は、かかる課題を解決するためになされたものであり、振幅検出誤差を低減することおよび対数関数演算器のメモリ容量を削減することを目的としている。
【００１５】
【課題を解決するための手段】
この発明による振幅検出装置は、複素データにおける実部と虚部の平方和を求め、その平方根から振幅データを計算する機能を持つものである。
【００１６】
また、対数関数演算器の入力データには振幅値に応じた乗算を加え、出力データには乗数に応じた加算を行う機能を持つものである。
【００１７】
【作用】
複素データにおける実部と虚部の平方和を求め、その平方根から振幅データを計算することによって、従来の振幅検出装置よりも振幅検出誤差を低減することができる。
【００１８】
また、対数関数演算器の入力データには振幅値に応じた乗算を加え、出力データには乗算に応じた加算を施すことによって、対数関数演算器のメモリ容量を削減することができる。
【００１９】
【実施例】
実施例１．
図１はこの発明の一実施例を示すブロック図である。図において、１，２，７，８は従来の振幅検出装置と全く同一のものである。３はＩｃｈデータとＱｃｈデータの平方和を計算する平方和演算器、４は平方和データからシフトアップデータとシフトダウンデータを計算するシフト量演算器、５は平方和データとシフトアップデータを乗じる倍精度乗算器、６は倍精度乗算結果の平方根を計算する平方根演算器である。
【００２０】
まず、図１に示した振幅検出装置の動作について説明する。Ｉｃｈ入力端子１から入力する複素データの実部をＸ、Ｑｃｈ入力端子２から入力する複素データの虚部をＹとおく。Ｘ，Ｙを符号付き１６ビット固定小数点データとすると、平方和演算器３が出力する平方和データＸ２  ＋Ｙ２  は符号なし３１ビット固定小数点データとなる。シフト量演算器４が出力するシフトアップデータＡおよびシフトダウンデータＢと平方和データＸ２  ＋Ｙ２  の関係を表わした真理値表を“表２”及び“表３”に示す。
【００２１】
【表２】
0003612759.tif 000007
【００２２】
【表３】
0003612759.tif 000008
【００２３】
倍精度乗算器５では、３１ビットの平方和データＸ２  ＋Ｙ２  と、３２ビットのシフトアップデータＡとの倍精度乗算を行う、乗算結果Ａ・（Ｘ２  ＋Ｙ２  ）のデータ長は６３ビットであるが、上位の３２ビットは常に０である。そこで、後段の平方根演算器６には３１ビット目（ＭＳＢを６３ビット目、ＬＳＢを０ビット目と数える。ＭＳＢ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ，ＬＳＢ：Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から２０ビット目までの１２ビットデータを乗算結果Ｚとして出力する。
【００２４】
平方根演算器６は、１２ビットの倍精度乗算結果Ｚをアドレスとして、１６ビットの平方根データＵを出力するＲＯＭで実現する。ＲＯＭのアドレスとデータの関係を“表４”に、倍精度乗算結果Ｚと平方根データＵの関係を図３に示す。
【００２５】
【表４】
0003612759.tif 000009
【００２６】
単精度乗算器７では、１６ビットのシフトダウンデータＢと、１６ビットの平方根データＵとの単精度乗算を行う。乗算結果Ｂ・Ｕのデータ長は３２ビットとなるが、後段の振幅出力端子８には上位の１６ビットを振幅データＶとして出力する。これまで述べてきたデータＸ，Ｙ，Ａ，Ｂ，Ｚ，Ｕ，Ｖをデータフロー図に整理したものを図４に示す。最終的に得られた振幅データＶをＸ，Ｙ，Ａ，Ｂで表わすと、“数５”の通りとなる。
【００２７】
【数５】
0003612759.tif 000010
【００２８】
一方、“表２”および“表３”に示す通り、Ａ，Ｂには“数６”の関係が成立することから、振幅データＶは“数７”と表わされる。
【００２９】
【数６】
0003612759.tif 000011
【００３０】
【数７】
0003612759.tif 000012
【００３１】
次に、図４のデータフローで求められた振幅データＶの振幅検出誤差について説明する。ＩｃｈデータＸおよびＱｃｈデータＹは符号付き１６ビット固定小数点データであるから、その量子化誤差は最大値が０．００１５％、平均値が０．０００９％であるが、平方和データＸ２  ＋Ｙ２  を計算する過程で量子化誤差の最大値は４倍の０．００６１％、平均値は２倍の０．００１８％に増加する。なお、平方和データＸ２  ＋Ｙ２  とシフトアップデータＡを乗算する過程ではデータの桁上げが行われているだけであるため、乗算結果Ａ・（Ｘ２  ＋Ｙ２  ）の量子化誤差は平方和データＸ２  ＋Ｙ２  の量子化誤差に等しい。これに対して、平方根演算器６に使用されるＲＯＭのアドレスＺは１２ビットであることから最大０．０１２２％、平均０．００７０％の量子化誤差を持つ。また、図３に示す通り、Ｚに対する平方根データＵの変化率ｄＵ／ｄＺは、Ｚ＝４０９６で８であるから、平方根データＵの量子化誤差は符号なし１６ビット固定小数点データの８倍すなわち最大０．００６１％、平均０．００３５％となる。平方根データＵとシフトダウンデータＢを乗算する過程ではデータの桁下げが行われているだけであるため、乗算結果Ｂ・Ｕの量子化誤差は平方根データＵの量子化誤差に等しい。上記に示した各演算器の量子化誤差を合計すると、最大値は０．０２４４％、平均値は０．００７５％と算出することができる。従来の振幅検出装置と比較して、振幅検出誤差の最大値は約１／３００、平均値は約１／７００に改善していることが分かる。
【００３２】
実施例２．
図２はこの発明の他の実施例を示すブロック図である。図において、１，２，７，８，１０，１１，１２は従来の振幅検出装置と全く同一のものである。３はＩｃｈデータとＱｃｈデータの平方根を計算する平方和演算器、４は平方和データからシフトアップデータとシフトダウンデータを計算するシフト量演算器、５は平方和データとシフトアップデータを乗じる倍精度乗算器、６は倍精度乗算結果の平方根を計算する平方根演算器、７は平方根データとシフトダウンデータないし振幅データとシフトアップデータを乗じる単精度乗算器、９は振幅データからシフトアップデータとバイアスデータを計算するバイアス量演算器である。
【００３３】
まず、図２に示した振幅検出装置の動作について説明する。Ｉｃｈ入力端子１から入力する複素データの実部をＸ、Ｑｃｈ入力端子２から入力する複素データの虚部をＹとおく。Ｘ，Ｙを符号付き１６ビット固定小数点データとすると、平方和演算器３が出力する平方和データＸ２  ＋Ｙ２  は符号なし３１ビット固定小数点データとなる。シフト量演算器４が出力するシフトアップデータＡおよびシフトダウンデータＢと平方和データＸ２  ＋Ｙ２  の関係を表わした真理値表は前述の表２”及び“表３”の通り。
【００３４】
倍精度乗算器５では、３１ビットの平方和データＸ２  ＋Ｙ２  と、３２ビットのシフトアップデータＡとの倍精度乗算を行う、乗算結果Ａ・（Ｘ２  ＋Ｙ２  ）のデータ長は６３ビットであるが、上位の３２ビットは常に０である。そこで、後段の平方根演算器６には３１ビット目（ＭＳＢを６３ビット目、ＬＳＢを０ビット目と数える）から２０ビット目までの１２ビットデータを乗算結果Ｚとして出力する。
【００３５】
平方根演算器６は、１２ビットの倍精度乗算結果Ｚをアドレスとして、１６ビットの平方根データＵを出力するＲＯＭで実現する。ＲＯＭのアドレスとデータの関係は“表４”に、倍精度乗算結果Ｚと平方根データＵの関係は図３に示す通りとなる。
【００３６】
単精度乗算器７では、１６ビットのシフトダウンデータＢと、１６ビットの平方根データＵとの単精度乗算を行う。乗算結果Ｂ・Ｕのデータ長は３２ビットとなるが、後段のバイアス量演算器９には上位の１６ビットを振幅データＶとして出力する。これまで述べてきたデータＸ，Ｙ，Ａ，Ｂ，Ｚ，Ｕ，Ｖをデータフロー図に整理したものを図４に示す。単精度乗算器７から得られた振幅データＶをＸ，Ｙ，Ａ，Ｂで表わすと、“数５”の通りとなる。
【００３７】
一方、“表２”および“表３”に示す通り、Ａ，Ｂには“数６”の関係が成立することから、振幅データＶは“数７”と表わされる。
【００３８】
バイアス量演算器９は振幅データＶの値に応じて、“表５”に示すシフトアップデータＣおよび“表６”に示すバイアスデータＤを出力する。
【００３９】
【表５】
0003612759.tif 000013
【００４０】
【表６】
0003612759.tif 000014
【００４１】
単精度乗算器７では、１６ビットの振幅データＶと１６ビットのシフトアップデータＣとの単精度乗算を行う。乗算結果Ｃ・Ｖのデータ長は３２ビットであるが、上位１６ビットは常に０である。そこで、後段の対数関数演算器１０には１５ビット目から４ビット目の１２ビットデータを乗算結果Ｒとして出力する。
【００４２】
対数関数演算器１０は、１２ビットの単精度乗算結果Ｒをアドレスとして、１６ビットの対数データＳを出力するＲＯＭで実現する。ＲＯＭのアドレスとデータの関係は“表１”に、単精度乗算結果Ｒと対数データＳの関係は図９に示す通りとなる。
【００４３】
単精度加算器１１では、１６ビットのバイアスデータＤと、１６ビットの対数データＳとの単精度加算を行う。加算結果Ｄ＋Ｓのデータ長は１７ビットとなるが、ＭＳＢは常に０であるため、後段の対数振幅出力端子１２には下位１６ビットを対数振幅データＷとして出力する。これまでに述べてきたデータＶ，Ｃ，Ｄ，Ｒ，Ｓ，Ｗをデータフロー図に整理したものを図５に示す。最終的に得られた対数振幅データＷをＶ，Ｃ，Ｄで表わすと、“数８”の通りとなる。
【００４４】
【数８】
0003612759.tif 000015
【００４５】
一方、“表５”および“表６”に示す通り、Ｃ，Ｄには“数９”の関係が成立することから、対数振幅データＷは“数１０”と表わされる。
【００４６】
【数９】
0003612759.tif 000016
【００４７】
【数１０】
0003612759.tif 000017
【００４８】
さらに、振幅データＶと対数振幅データＷの関係を表わしたグラフを図６に示す。図２による振幅検出装置は従来の振幅検出装置と同じ対数関数演算器を使用しているにも関わらず、対数関数が定義されるＶ≧１の全領域で対数振幅データＷの単調増加性は保たれていることが分かる。
【００４９】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に記載されたような効果を奏する。
【００５０】
従来の振幅検出装置よりも振幅検出誤差を低減することができる。
【００５１】
また、対数関数演算器のメモリ容量を増やすことなく、全領域の単調増加性を保つことができる。
【図面の簡単な説明】
【図１】この発明の一実施例を示すブロック図である。
【図２】この発明の他の実施例を示すブロック図である。
【図３】図１に示した平方根演算器の入出力特性を表わすグラフである。
【図４】図１に示した振幅検出装置の平方根演算を表わすデータフロー図である。
【図５】図２に示した振幅検出装置の対数関数演算を表わすデータフロー図である。
【図６】図２に示した対数関数演算器の入出力特性を表わすグラフである。
【図７】従来の振幅検出装置を示すブロック図である。
【図８】従来の振幅検出装置による振幅の入出力特性を表わすグラフである。
【図９】従来の振幅検出装置による対数振幅の入出力特性を表わすグラフである。
【符号の説明】
１  Ｉｃｈ入力端子、２  Ｑｃｈ入力端子、３  平方和演算器、４  シフト量演算器、５  倍精度乗算器、６  平方根演算器、７  単精度乗算器、８  振幅出力端子、９  バイアス量演算器、１０  対数関数演算器、１１  単精度加算器、１２  対数振幅出力端子。
【図１】
0003612759.tif 000018
【図２】
0003612759.tif 000019
【図３】
0003612759.tif 000020
【図４】
0003612759.tif 000021
【図５】
0003612759.tif 000022
【図６】
0003612759.tif 000023
【図７】
0003612759.tif 000024
【図８】
0003612759.tif 000025
【図９】
0003612759.tif 000026