(57)【要約】【課題】指定ゲインと実際のゲインとの誤差を低減する。【解決手段】アドレス生成部１１は、指定ゲインＧＴが供給されて指数部データｎと仮数部アドレスＡとを生成する。仮数部アドレスＡは、指定ゲインＧＴの精度に基づいて設定される。仮数部係数取得部１２は、仮数部アドレスＡ毎に指数部データｎと仮数部データとの関係に従って求められた式に基づいて仮数部係数ｋを求めるように構成されている。そして、係数データ取得部２１ａ、仮数部データ２１ｂは、それぞれ、仮数部アドレスＡに基づいて係数ａ、データｄ１を生成することにより、仮数部アドレスＡ毎に、指数部データｎに対して仮数部係数ｋを精度よく求めることができる。【選択図】図１
2006005668.tif 000002
【特許請求の範囲】
【請求項１】
入力値を指定減衰量に従って減衰させるアッテネータにおいて、
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数とを設定し、各ステップに対応させて仮数部アドレスデータを設定するデータ設定部と、
前記指定減衰量を、前記データ設定部が設定した前記指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得するデータ取得部と、
前記データ取得部が取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得する仮数取得部と、
前記データ取得部が取得した指数と前記仮数取得部が取得した仮数とに基づいて設定された減衰量に従って、前記入力値を減衰させる減衰部と、を備えた、
ことを特徴とするアッテネータ。
【請求項２】
前記仮数取得部は、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係として、数１に従って、前記指定減衰量の仮数を取得するものである、
ことを特徴とする請求項１に記載のアッテネータ。
【数１】
2006005668.tif 000009
【請求項３】
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数とを設定し、各ステップに対応させて仮数部アドレスデータを設定するステップと、
前記指定減衰量を、前記設定した指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得するステップと、
前記取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得するステップと、を備えた、
ことを特徴とするアッテネータの減衰量取得方法。
【請求項４】
コンピュータに、
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数とを設定し、各ステップに対応させて仮数部アドレスデータを設定する手順、
前記指定減衰量を、前記設定した指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得する手順、
前記取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得する手順、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アッテネータ、アッテネータの減衰量取得方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来より、オーディオデータ、通信等のデジタル信号のゲイン量を調節するアッテネータがある（例えば、特許文献１参照）。
【０００３】
従来のアッテネータにおいては、例えば、−９６．０ｄＢから＋９０．０ｄＢのゲインを０．５ｄＢステップでコントロールするものとして、まず、指定されたゲインを指数部の値と仮数部のアドレスとに分割する。
【０００４】
従来のアッテネータは、分割した指数部の値に基づいて、入力データをビットシフトする。これにより、従来のアッテネータは、６ｄＢステップでゲイン量を調節する。また、従来のアッテネータは、分割した仮数部のアドレスに基づいて、設定された係数を、シフトした入力データに乗算している。
【特許文献１】特開２００１−２８２２９６号公報（第４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、１ビットシフトした場合のゲイン量が、２０×ｌｏｇ（２）≒６．０２、２０×ｌｏｇ（１／２）≒−６．０２になるため、ゲイン量が非常に大きい場合や非常に小さい場合において、指定ゲインと実際のゲインとの誤差が大きくなる。
【０００６】
また、仮数部のアドレスに基づいて係数を乗算しただけでは、０〜５．５ｄＢの範囲に設定された仮数を乗算すると、更に誤差が大きくなってしまう。
【０００７】
本発明は、このような従来の問題点に鑑みてなされたもので、指定された減衰量と実際の減衰量との誤差を低減することが可能なアッテネータ、アッテネータの減衰量取得方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するため、本発明の第１の観点に係るアッテネータは、
入力値を指定減衰量に従って減衰させるアッテネータにおいて、
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数を設定し、各ステップに対応させて仮数部アドレスデータを設定するデータ設定部と、
前記指定減衰量を、前記データ設定部が設定した前記指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得するデータ取得部と、
前記データ取得部が取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得する仮数取得部と、
前記データ取得部が取得した指数と前記仮数取得部が取得した仮数とに基づいて設定された減衰量に従って、前記入力値を減衰させる減衰部と、を備えたことを特徴とする。
【０００９】
前記仮数取得部は、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係として、数１に従って、前記指定減衰量の仮数を取得するものであってもよい。
【数１】
2006005668.tif 000003
【００１０】
本発明の第２の観点に係るアッテネータの減衰量取得方法は、
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数とを設定し、各ステップに対応させて仮数部アドレスデータを設定するステップと、
前記指定減衰量を、前記設定した指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得するステップと、
前記取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得するステップと、を備えたことを特徴とする。
【００１１】
本発明の第３の観点に係るプログラムは、
コンピュータに、
浮動小数点表示された前記指定減衰量の精度に基づいて指数と前記指数間のステップ数とを設定し、各ステップに対応させて仮数部アドレスデータを設定する手順、
前記指定減衰量を、前記設定した指数と前記仮数部アドレスデータとに対応させて、前記指定減衰量の指数と仮数部アドレスデータとを取得する手順、
前記取得した指数と仮数部アドレスとから、前記仮数部アドレスデータ毎に予め取得された減衰量の指数と仮数との関係に従い、前記指定減衰量の仮数を取得する手順、
を実行させるためのものである。
【発明の効果】
【００１２】
本発明によれば、指定された減衰量と実際の減衰量との誤差を低減することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態に係るアッテネータを図面を参照して説明する。
本実施形態に係るアッテネータの構成を図１に示す。
本実施形態に係るアッテネータは、以下のような方法に従って、入力データｄｉｎの減衰量を取得するように構成されたものである。
【００１４】
一般に、減衰量を示すゲイン量Ｇａｉｎは、次の数２によって表される。
【数２】
2006005668.tif 000004
【００１５】
また、この数２より、ゲイン量Ｇａｉｎを指定した場合、常用対数の正の小数部である仮数部データｍは、次の数３によって表される。
【数３】
2006005668.tif 000005
【００１６】
この数３に基づいて、仮数部アドレス毎に指数部データｎと仮数部データｍとの関係を求めると、図２に示すようなグラフが得られる。この関係は、実験等によって求められたものであり、次の数４によって近似される。
【数４】
2006005668.tif 000006
【００１７】
従って、仮数部アドレスをＡとして、指数部データｎと仮数部アドレスＡとから、数４に従って仮数部データｍを求めれば、指定されたゲインと実際のゲインとの誤差をより低減することができる。
【００１８】
このため、本実施形態に係るアッテネータは、アドレス生成部１１と、仮数部係数取得部１２と、ビットシフト部１３と、乗算器１４と、を備える。
【００１９】
アドレス生成部１１は、指定ゲインＧＴが供給されて、指数部データｎ、仮数部アドレスＡを生成するものである。ゲイン量を−９６ｄＢ〜＋９５．５ｄＢまで、０．５ｄＢステップで制御する場合、指数部データｎは、５ビットで表され、仮数部アドレスＡは、４ビットで表される。
【００２０】
図３に、指定ゲインＧＴに対する指数部データｎ、仮数部アドレスＡを取得するための表の一例を示す。この表は、図２に示すグラフに基づいて求められた表である。図３に示すように、指数部データｎと指数間のステップ数は、浮動小数点表示された指定ゲインＧＴの精度０．５ｄＢに基づいて設定されている。仮数部アドレスＡは、各ステップに対応させて、０〜１１に設定されている。
【００２１】
例えば、指定ゲインＧＴ＝−９６．０ｄＢが供給されると、アドレス生成部１１は、指数部データｎ＝−１６を取得し、仮数部アドレスＡ＝０を取得する。このアドレス生成部１１は、例えば、データ設定部とデータ取得部とに対応する。
【００２２】
アドレス生成部１１は、この表に基づいて取得した指数部データｎをビットシフト部１３と、仮数部係数取得部１２と、に供給し、仮数部アドレスＡを仮数部係数取得部１２に供給する。
【００２３】
仮数部係数取得部１２は、例えば、仮数部取得部に対応するものであり、アドレス生成部１１から供給された仮数部アドレスＡと指数部データｎとに基づいて仮数部係数ｋ＝（ｍ＋２＾７）を求めるものである。仮数部係数取得部１２は、係数データ取得部２１ａと、仮数部データ取得部２１ｂと、シフトレジスタ２２と、乗算器２３と、加算器２４と、を備える。
【００２４】
係数データ取得部２１ａは、アドレス生成部１１から供給された仮数部アドレスＡに基づいて数４に示す係数ａを取得するものである。係数データ取得部２１ａは、図４に示すような仮数部アドレスＡと係数ａとの関係を示すテーブルを予め記憶する。
【００２５】
このテーブルは、図２に示すグラフに基づいて生成されたものであり、係数ａは、仮数部アドレスＡ毎に設定されるものである。例えば、アドレス生成部１１から、仮数部アドレスＡ＝０が供給されると、係数データ取得部２１ａは、図４に示すテーブルに基づいて係数ａ＝−５を取得する。係数データ取得部２１ａは、取得した係数ａをシフトレジスタ２２に供給する。
【００２６】
仮数部データ取得部２１ｂは、アドレス生成部１１から供給された仮数部アドレスＡに基づいて仮数部データｄ１＝（ｂ＋２＾７）を取得するものである。仮数部データ取得部２１ｂは、図５に示すような仮数部アドレスＡと係数ｂとの関係を示すテーブルを予め記憶する。
【００２７】
このテーブルは、図２に示すグラフに基づいて生成されたものであり、係数ｂは、仮数部アドレスＡ毎に設定されるものである。例えば、アドレス生成部１１から、仮数部アドレスＡ＝０が供給されると、仮数部データ取得部２１ｂは、図５に示すテーブルに基づいて係数ｂ＝０を取得する。仮数部データ取得部２１ｂは、係数ｂを取得して２＾７を加算し、仮数部データｄ１＝（ｂ＋２＾７）を加算器２４に供給する。
【００２８】
シフトレジスタ２２は、係数データ取得部２１ａが取得した係数ａを右に４つシフトして、係数ａを１／１６倍してデータｄ２を生成するものである。シフトレジスタ２２は、生成したデータｄ２を乗算器２３に供給する。
【００２９】
乗算器２３は、シフトレジスタ２２から供給されたデータｄ２とアドレス生成部１１から供給された指数部データｎとを乗算して、データｄ３を生成するものである。乗算器２３は、生成したデータｄ３を加算器２４に供給する。
【００３０】
加算器２４は、乗算器２３から供給されたデータｄ３と仮数部データ取得部２１ｂから供給されたデータｄ１とを加算して、仮数部係数ｋを生成するものである。仮数部係数ｋは、次の数５によって表される。
【数５】
2006005668.tif 000007
仮数部係数取得部１２は、仮数部係数ｋを乗算器１４に供給する。
【００３１】
ビットシフト部１３は、アドレス生成部１１から供給された指数部データｎに基づいて、入力データｄｉｎをビットシフトしてデータｄ４を生成するものである。乗算器１４は、ビットシフト部１３が生成したデータｄ４と仮数部係数取得部１２が出力した仮数部係数ｋとを乗算して、出力データｄｏｕｔを生成するものである。アッテネータは、乗算器１４が生成した出力データｄｏｕｔを出力する。ビットシフト部１３と乗算器１４とが、例えば、減衰部に対応するものである。
【００３２】
次に本実施形態に係るアッテネータの動作を説明する。
アドレス生成部１１に、例えば、指定ゲインＧＴ＝−９６．０ｄＢが供給された場合、アドレス生成部１１は、図３に示す表に基づいて、指数部データｎ＝−１６、仮数部アドレスＡ＝０を生成する。アドレス生成部１１は、生成した指数部データｎ＝−１６、仮数部アドレスＡ＝０を仮数部係数取得部１２に供給する。
【００３３】
仮数部係数取得部１２の係数データ取得部２１ａは、供給された仮数部アドレスＡ＝０に基づいて、図４に示す表から、係数ａ＝−５を生成する。係数データ取得部２１ａは、生成した係数ａ＝−５をシフトレジスタ２２に供給する。
【００３４】
仮数部データ取得部２１ｂは、アドレス生成部１１から供給された仮数部アドレスＡ＝０に基づいて、図５に示す表から、係数ｂ＝０を取得する。仮数部データ取得部２１ｂは、取得した係数ｂ＝０に２＾７を加算して、仮数部データｄ１＝２＾７を生成する。仮数部データ取得部２１ｂは、生成した仮数部データｄ１＝２＾７を加算器２４に供給する。
【００３５】
シフトレジスタ２２は、係数データ取得部２１ａから供給された係数ａ＝−５を右へ４つシフトし、データｄ２＝−５／１６を生成する。シフトレジスタ２２は、生成したデータｄ２＝−５／１６を乗算器２３に供給する。乗算器２３は、アドレス生成部１１から供給された指数部データｎ＝−１６と、シフトレジスタ２２から供給されたデータｄ２＝−５／１６とを乗算し、データｄ３＝５を生成する。乗算器２３は、生成したデータｄ３＝５を加算器２４に供給する。
【００３６】
加算器２４は、乗算器２３から供給されたデータｄ２＝５と仮数部データ取得部２１ｂから供給された仮数部データｄ１＝２＾７とを加算し、仮数部係数ｋ＝５＋２＾７を生成する。仮数部係数取得部１２は、加算器２４が生成した仮数部係数ｋ＝５＋２＾７を乗算器１４に供給する。
【００３７】
一方、ビットシフト部１３は、入力データｄｉｎを指数部データｎ＝−１６だけビットシフトして、データｄ４を生成する。ビットシフト部１３は、生成したデータｄ４を乗算器１３に供給する。
【００３８】
乗算器１４は、ビットシフト部１３から供給されたデータｄ４と仮数部係数取得部１２から供給された仮数部係数ｋ＝５＋２＾７とを乗算して出力データｄｏｕｔを生成する。アッテネータは、乗算器１４が生成した出力データｄｏｕｔを出力する。
【００３９】
加算器２４が生成した仮数部係数ｋ＝５＋２＾７と数５とを比較すると、仮数部データｍ＝５になる。この指定ゲインＧＴ、仮数部データｍとの関係を図６に示す。
【００４０】
実際に求めるゲインをＧＲとして、仮数部データｍ＝５から、数２に従ってゲインＧＲを求めると、図７に示すように、ゲインＧＲ＝−９５．９９７ｄＢになる。
【００４１】
指定ゲインＧＴ＝−９６．０ｄＢに対して、ゲインＧＲ＝−９５．９９７ｄＢであるから、指定ゲインＧＴとゲインＧＲとの誤差は、０．００３ｄＢとなる。従来のアッテネータでは、図８に示すように、指定ゲインＧＴ＝−９６．０ｄＢに対して、ゲインＧＲ＝−９６．３３０ｄＢとなり、その誤差は、０．３３０ｄＢとなり、本実施形態のアッテネータの方が、従来のものと比較して誤差が小さくなっていることが分かる。
【００４２】
図９に示すように、ゲイン量Ｇａｉｎ＝−９６．０〜９６．０の間で本実施形態に係るアッテネータの誤差と従来のものの誤差とを比較すると、従来のアッテネータでは、指定ゲインＧＴ＝０ｄＢ近傍において誤差は小さいものの、指定ゲインＧＴ＝０ｄＢから離れるに従って誤差は大きくなる。これに対して、本実施形態に係るアッテネータでは、−９６．０〜９６．０の間で、指定ゲインＧＴに関わらず誤差は小さくなっている。
【００４３】
以上説明したように、本実施形態によれば、仮数部アドレスＡ毎に指数部データｎと仮数部データｍとの関係を示す式を求め、指定ゲインＧＴに対して、求めた式に従って、仮数部データｍを求め、ゲインＧＲを求めるようにした。
【００４４】
従って、指定ゲインＧＴと実際のゲインＧＲとの誤差を低減することができ、精度良くゲインを制御することができる。
【００４５】
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施の形態に限られるものではない。
例えば、アッテネータは、次の数６に示すような近似式を用いて仮数部係数ｍを取得するようにしてもよい。
【数６】
2006005668.tif 000008
定数ｐ、ｑは、それぞれ、図１０，図１１に示すように、仮数部アドレスＡ毎に設定される係数である。
この近似式を用いる場合、仮数部係数取得部１２の係数データ取得部２１ａは、図１２に示すように、乗算器３１と、シフトレジスタ３２と、定数記憶部３３と、加算器３４と、量子化器３５と、を備える。
【００４６】
乗算器３１は、仮数部アドレスＡに３を乗算し、乗算したデータをシフトレジスタ３２に供給する。シフトレジスタ３２は、乗算器３１から供給されたデータを右に３つシフトして１／８倍し、生成したデータを加算器３４に供給する。定数記憶部３３は、定数４．５を記憶する。
【００４７】
加算器３４は、定数４．５を定数記憶部３３から取得して、取得した定数４．５とシフトレジスタ３２から供給されたデータとを加算する。量子化器３５は、加算器３４が加算した結果のデータに対して量子化を行う。係数データ取得部２１ａは、量子化器３５が量子化したデータを係数ａとして出力する。
【００４８】
また、仮数部データ取得部２１ｂは、図１３に示すように、乗算器４１と、定数記憶部４２と、加算器４３と、シフトレジスタ４４と、定数記憶部４５と、加算器４６と、量子化器４７と、を備える。
【００４９】
乗算器４１は、図１０に示す表を予め記憶し、供給された仮数部アドレスＡに基づいて、この表から係数ｐを取得し、取得した係数ｐを、数６に従って、供給された仮数部アドレスＡに乗算し、加算器４３に供給する。
【００５０】
定数記憶部４２は、図１１に示す表を予め記憶する。加算器４３は、仮数部アドレスＡに基づいて、定数記憶部４２が記憶する図１１に示す表から係数ｑを取得し、取得した係数ｑと乗算器４１から供給されたデータとを加算する。加算器４３は、加算した結果のデータをシフトレジスタ４４に供給する。シフトレジスタ４４は、加算器４３から供給されたデータを、右に２つシフトして１／４倍する。シフトレジスタ４４は、生成したデータを加算器４６に供給する。
【００５１】
定数記憶部４５は、定数として２＾７を記憶する。加算器４６は、定数記憶部４５から、定数２＾７を取得して、取得した定数２＾７と、シフトレジスタ４４から供給されたデータとを加算する。量子化器４７は、加算器４６が加算した結果のデータに対して量子化を行う。仮数部データ取得部２１ｂは、量子化器４７が量子化したデータを仮数部データｄ１として出力する。
【００５２】
また、アッテネータは、プログラムによって構成されてもよい。この場合、このプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【００５３】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施形態に係るアッテネータの構成を示すブロック図である。
【図２】仮数部アドレス毎に指数部データと仮数部データとの関係を示す説明図である。
【図３】指定ゲインＧＴに対する指数部データｎ、仮数部アドレスＡを取得するための表の一例を示す説明図である。
【図４】仮数部アドレス毎に設定された係数ａを示す説明図である。
【図５】仮数部アドレス毎に設定された係数ｂを示す説明図である。
【図６】指定ゲインと仮数部データｍとの関係を示す説明図である。
【図７】本実施形態に係るアッテネータの指定ゲインＧＴと得られたゲインＧＲとの関係を示す説明図である。
【図８】従来のアッテネータの指定ゲインＧＴと得られたゲインＧＲとの関係を示す説明図である。
【図９】本実施形態に係るアッテネータによる誤差と従来のアッテネータによる誤差とを比較した説明図である。
【図１０】本実施形態に係るアッテネータの応用例として、仮数部アドレスと係数ｐとの関係を示す説明図である。
【図１１】本実施形態に係るアッテネータの応用例として、仮数部アドレスと係数ｑとの関係を示す説明図である。
【図１２】本実施形態に係るアッテネータの応用例として、係数データ取得部の構成を示すブロック図である。
【図１３】本実施形態に係るアッテネータの応用例として、仮数部データ取得部の構成を示すブロック図である。
【符号の説明】
【００５５】
１１  アドレス生成部
１２  仮数部係数取得部
１３  ビットシフト部
１４  乗算器
２１ａ  係数データ取得部
２１ｂ  仮数部データ取得部
２２  シフトレジスタ
２３  乗算器
２４  加算器
【図１】
2006005668.tif 000010
【図２】
2006005668.tif 000011
【図３】
2006005668.tif 000012
【図４】
2006005668.tif 000013
【図５】
2006005668.tif 000014
【図６】
2006005668.tif 000015
【図７】
2006005668.tif 000016
【図８】
2006005668.tif 000017
【図９】
2006005668.tif 000018
【図１０】
2006005668.tif 000019
【図１１】
2006005668.tif 000020
【図１２】
2006005668.tif 000021
【図１３】
2006005668.tif 000022