(57)【特許請求の範囲】
【請求項１】
Ｌビットのデータを受け、該データで指定される位相の所定周期関数の振幅データを出力する振幅データ出力手段と、
所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを前記振幅データ出力手段に出力するシフト加算回路とを備えた周波数シンセサイザ。
【請求項２】
Ｌビットのデータを受け、該データで指定される位相の所定周期関数の振幅データを出力する振幅データ出力手段と、
所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを出力するシフト加算回路と、
前記振幅データ出力手段に入力されるＬビットのデータをラッチ信号を受ける毎にラッチするラッチ回路と、
前記シフト加算回路の出力と前記ラッチ回路の出力とを加算し、該加算結果の下位Ｌビットを前記振幅データ出力手段に出力する加算回路と、
前記周波数設定手段によって設定される周波数データが変更される毎に、前記カウンタを値１またはその近傍値に初期化するとともに、該初期化した値に対応するＬビットのデータが前記シフト加算器から出力されるタイミングに合わせて前記ラッチ回路にラッチ信号を出力して、前記振幅データ出力手段から出力される振幅データの周波数変更直前の位相値と周波数変更直後の位相値とをほぼ連続させる制御回路とを備えた周波数シンセサイザ。
【請求項３】
前記シフト加算回路は、
前記総数データを複数組に分け、各組毎のシフト加算を並行して行う並列処理と、該並列処理に対するシフト加算処理をカスケードに行う直列処理とを組合せて、前記各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを得ることを特徴とする請求項１または請求項２記載の周波数シンセサイザ。
【請求項４】
周波数が異なる複数の正弦波を生成する正弦波生成部を有し、該正弦波生成部が生成した複数の正弦波を加算合成してガウス性の雑音信号を発生するガウス雑音発生装置において、
前記正弦波生成部は、
Ｌビットのデータを受け、該データで指定される位相の正弦波関数の振幅データを出力する振幅データ出力手段と、
前記正弦波の数より大きい整数ｕについてのｕ次代数的整数を公比とする等比級数のなかから選択した周波数を所定のクロック信号の周波数で除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを前記振幅データ出力手段に出力するシフト加算回路とを含み、
前記ｕ次代数的整数を公比とする等比級数のなかから重複せずに選択した複数の周波数の正弦波を発生するように構成されていることを特徴とするガウス雑音発生装置。
【請求項５】
前記シフト加算回路は、
前記総数データを複数組に分け、各組毎のシフト加算を並行して行う並列処理と、該並列処理に対するシフト加算処理をカスケードに行う直列処理とを組合せて、前記各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを得ることを特徴とする請求項４記載のガウス雑音発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広帯域で高い周波数分解能を有する周波数シンセサイザおよびこれを用いたガウス雑音発生装置に関する。
【０００２】
【従来の技術】
周波数が安定した周期関数信号を発生できる周波数シンセサイザとして、従来からＤＤＳ（ダイレクトディジタルシンセサイザ）が用いられている。
【０００３】
図１４はこのＤＤＳ１０の構成を示すものであり、波形メモリ１１には、周期関数（例えば正弦波関数）の振幅データがＬビットのアドレス信号で指定可能な記憶領域に１周期分記憶されており、アドレス信号で指定されたアドレスに記憶されている振幅データを順次出力する。
【０００４】
周波数設定手段１２は、波形メモリ１１から振幅データを読み出すアドレス間隔（位相間隔）を指定するための周波数データＡを設定する。
【０００５】
加算器１３は、周波数設定手段１２によって設定された周波数データＡと、ラッチ回路１４の出力とを加算し、その加算結果をラッチ回路１４へ出力する。ラッチ回路１４は、クロック信号ＣＫを受ける毎に加算器１３の出力をラッチし、このラッチ出力を位相を指定するデータとして加算器１３および波形メモリ１１へ出力する。
【０００６】
Ｄ／Ａ変換器１５は、波形メモリ１１から出力される振幅データをアナログ信号に変換して出力する。
【０００７】
このように構成されたＤＤＳ１０では、波形メモリ１１に対するアドレス信号が、クロック信号ＣＫに同期してＡ、２Ａ、３Ａ、…というようにＡ間隔で増加し、波形メモリ１１からは、各アドレスに対応する振幅データＤ（Ａ）、Ｄ（２Ａ）、Ｄ（３Ａ）、…が順番に読み出されてアナログ信号に変換されて周期関数信号が連続して出力される。
【０００８】
ここで、周波数設定手段１２から設定される周波数データＡのビット数Ｍをアドレス信号のビット数Ｌと等しいとすると、出力周波数Ｆはｆｃ・Ａ／２Ｌとなり、発生できる周波数はｆｃ・１／２Ｌ〜ｆｃ・２Ｌ−１／２Ｌまでの２Ｌ−１通りとなる。
【０００９】
しかし、この方式では出力できる周波数の設定分解能が波形メモリ１１のアドレスのビット数Ｌで制限されてしまうという問題がある。
【００１０】
このため、より高い設定分解能が要求されるＤＤＳでは、Ｍビットの周波数データＡをＬビットの整数部とｍビットの小数部とで構成し、加算器１３およびラッチ回路１４をＬ＋ｍビットの加算およびラッチが可能となるように構成するとともに、ラッチ回路１４のＬ＋ｍビットの出力の上位Ｌビットをアドレス信号として波形メモリ１１に出力して、波形メモリ１１のアドレスビット数Ｌに制限されない周波数分解能で信号を発生できるようにしていた。
【００１１】
【発明が解決しようとする課題】
ところが、上記ＤＤＳ１０を用いて、例えば周波数精度が１０−１５の水素メーザ発振器の出力（例えば１００ＭＨｚ）を基準のクロック信号ＣＫとして任意の周波数の信号を発生させようとすると、ＤＤＳ１０には１６桁以上の周波数分解能が要求される。
【００１２】
この場合、ｌｏｇ２１０１６はほぼ２５４であるから、加算器１３として５４ビットの２進加算器を用いる必要がある。
【００１３】
しかしながら、このようにビット数が多い加算処理を行うと、加算器１３の桁上げ処理による遅延時間がクロック信号ＣＫの周期を超えてしまい、実用にならない。
【００１４】
即ち、加算器１３の１ビット当たりのキャリー伝搬遅延時間をＴａとすると、加算器１３全体の最大遅延時間は（Ｌ−１）Ｔａとなり、この最大遅延時間がクロック信号の周期１／ｆｃより短いことが要求されるが、現状の加算器では、このようにビット数の多い加算処理を、高いクロック周波数（１００ＭＨｚ）で行うことはできず、結局、クロック周波数を下げて、発生できる周波数の上限を下げざるを得なかった。
【００１５】
本発明は、この問題を解決し、広帯域で高い周波数分解能が得られる周波数シンセサイザおよびこれを用いたガウス雑音発生装置を提供することを目的としている。
【００１６】
【課題を解決するための手段】
前記目的を達成するために、本発明の請求項１の周波数シンセサイザは、
Ｌビットのデータを受け、該データで指定される位相の所定周期関数の振幅データを出力する振幅データ出力手段と、
所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを前記振幅データ出力手段に出力するシフト加算回路とを備えている。
【００１７】
また、本発明の請求項２の周波数シンセサイザは、
Ｌビットのデータを受け、該データで指定される位相の所定周期関数の振幅データを出力する振幅データ出力手段と、
所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを出力するシフト加算回路と、
前記振幅データ出力手段に入力されるＬビットのデータをラッチ信号を受ける毎にラッチするラッチ回路と、
前記シフト加算回路の出力と前記ラッチ回路の出力とを加算し、該加算結果の下位Ｌビットを前記振幅データ出力手段に出力する加算回路と、
前記周波数設定手段によって設定される周波数データが変更される毎に、前記カウンタを値１またはその近傍値に初期化するとともに、該初期化した値に対応するＬビットのデータが前記シフト加算器から出力されるタイミングに合わせて前記ラッチ回路にラッチ信号を出力して、前記振幅データ出力手段から出力される振幅データの周波数変更直前の位相値と周波数変更直後の位相値とをほぼ連続させる制御回路とを備えている。
また、本発明の請求項３の周波数シンセサイザは、請求項１または請求項２記載の周波数シンセサイザにおいて、
前記シフト加算回路は、
前記総数データを複数組に分け、各組毎のシフト加算を並行して行う並列処理と、該並列処理に対するシフト加算処理をカスケードに行う直列処理とを組合せて、前記各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを得ることを特徴とする。
【００１８】
また、本発明の請求項４のガウス雑音発生装置は、
周波数が異なる複数の正弦波を生成する正弦波生成部を有し、該正弦波生成部が生成した複数の正弦波を加算合成してガウス性の雑音信号を発生するガウス雑音発生装置において、
前記正弦波生成部は、
Ｌビットのデータを受け、該データで指定される位相の正弦波関数の振幅データを出力する振幅データ出力手段と、
前記正弦波の数より大きい整数ｕについてのｕ次代数的整数を公比とする等比級数のなかから選択した周波数を所定のクロック信号の周波数で除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、
前記クロック信号を計数するＫビットのカウンタと、
前記周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、前記カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、
前記Ｌ組の積和演算回路によって求められた各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを前記振幅データ出力手段に出力するシフト加算回路とを含み、
前記ｕ次代数的整数を公比とする等比級数のなかから重複せずに選択した複数の周波数の正弦波を発生するように構成されていることを特徴とする。
また、本発明の請求項５のガウス雑音発生装置は、請求項４記載のガウス雑音発生装置において、
前記シフト加算回路は、
前記総数データを複数組に分け、各組毎のシフト加算を並行して行う並列処理と、該並列処理に対するシフト加算処理をカスケードに行う直列処理とを組合せて、前記各総数データＶｊ（ｊ＝０〜Ｌ−１）を、それぞれｊビットずつ上位側にシフトして加算した結果の下位Ｌビットを得ることを特徴とする。
【００１９】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施形態の周波数シンセサイザ２０の構成を示している。
【００２０】
この周波数シンセサイザ２０の振幅データ出力手段としての波形メモリ２１には、任意の周期関数、例えば正弦波関数の振幅データがＬビットのアドレス信号で指定可能な領域に１周期分アドレス順に記憶されており、アドレス信号で指定されたアドレス（位相）に記憶されている振幅データを出力する。
【００２１】
Ｄ／Ａ変換器２２は、波形メモリ２１から出力される振幅データをアナログの電圧信号に順次変換して出力する。なお、シンセサイザ出力としてアナログ信号が要求されない場合には、Ｄ／Ａ変換器２２を省略して波形メモリ２１からの振幅データをそのままシンセサイザ出力としてもよい。
【００２２】
周波数設定手段２３は、所望の出力周波数Ｆをクロック信号ＣＫの周波数ｆｃで除算して得られるＫ＋Ｌ−１ビットのデータ（クロック周波数で正規化した所望周波数データ）を周波数データＢとして後述する乗算量子化回路２５へ設定する。
【００２３】
カウンタ２４は、クロック信号ＣＫを計数するための２Ｋ進のカウンタであり、Ｋビットの計数出力Ｎを乗算量子化回路２５へ出力する。
【００２４】
乗算量子化回路２５は、カウンタ２４のＫビットの計数出力Ｎと、周波数設定手段２３から設定されたＫ＋Ｌ−１ビットの周波数データＢとの乗算を行い、その乗算結果をＬビットのアドレス信号に量子化してメモリ２１に出力する。
【００２５】
ここで、この乗算量子化の原理について説明する。
カウンタ２４のＫビットの計数出力Ｎをビットデータで示すと、
Ｎ＝〔ｎ０，ｎ１，ｎ２，…，ｎＫ−２，ｎＫ−１〕ＭＳＢ
となり、その値（標本番号）は次の通りである。
【００２６】
Ｎ＝ｐ＝０ΣＫ−１（ｎｐ２ｐ）
ただし、記号Ｘ＝ＣΣＤは、Ｘ＝ＣからＸ＝Ｄまでの総和を示す（以下同様）。
【００２７】
また、クロック周波数で正規化した周波数データＢをビットデータで示すと、
Ｂ＝〔ｂ１，ｂ２，ｂ３，…，ｂＫ＋Ｌ−３，ｂＫ＋Ｌ−２，ｂＫ＋Ｌ−１〕ＬＳＢ
となり、その値は２進数の小数表示で表せば、次のようになる。
Ｂ＝ｉ＝１ΣＫ＋Ｌ−１（ｂｉ２−ｉ）
【００２８】
よって、周波数データＢと計数出力Ｎの積Ｑは、
Ｑ＝ｐ＝０ΣＫ−１（ｎｐ２ｐ）・ｉ＝１ΣＫ＋Ｌ−１（ｂｉ２−ｉ）
となる。
【００２９】
ここで、上式の２ｐ・ｉ＝１ΣＫ＋Ｌ−１（ｂｉ２−ｉ）の部分は、次のように整数部と小数部との和で表すことができる。
ｉ＝０Σｐ−１（ｂｐ−ｉ２ｉ）＋ｉ＝１ΣＫ＋Ｌ−１（ｂｐ＋ｉ２−ｉ）
【００３０】
したがって、積Ｑは、
Ｑ＝ｐ＝０ΣＫ−１ｎｐ〔ｉ＝０Σｐ−１（ｂｐ−ｉ２ｉ）＋ｉ＝１ΣＫ＋Ｌ−１（ｂｐ＋ｉ２−ｉ）〕
＝｛ｉ＝０Σｐ−１２ｉｐ＝０ΣＫ−１ｎｐｂｐ−ｉ｝
＋｛ｉ＝１ΣＫ＋Ｌ−１２−ｉｐ＝０ΣＫ−１ｎｐｂｐ＋ｉ｝……（１）
となる。
【００３１】
ここで、上式（１）の第１項は、不要な整数項（オーバーフロー成分）であり、必要とする小数項の第２項に２Ｌを乗じて、Ｌビットの整数項を含む式で表すと、次のようになる。
Ｑ′＝ｉ＝１ΣＫ＋Ｌ−１２Ｌ−ｉｐ＝０ΣＫ−１ｎｐｂｐ＋ｉ
【００３２】
このデータＱ′の上位Ｌビットの整数項が量子化されたデータとなる。
ここで、ｊ＝Ｌ−ｉとおけば、Ｑ′の整数項はｊが０〜Ｌ−１の範囲の値となる。よって、周波数データＢと計数出力Ｎの積をＬビットに量子化して得られる量子化データｑは、
ｑ＝ｊ＝０ΣＬ−１（２ｊｖｊ）…（２）
ただし、ｖｊ＝ｐ＝０ΣＫ−１（ｎｐｂｐ＋Ｌ−ｊ）
と表される。
【００３３】
上式（２）の各ｖｊの値は、ｐ＝０ΣＫ−１（ｎｐｂｐ＋Ｌ−ｊ）の積和演算を各ｊの値毎に行うことで得ることができるが、これら各ｖｊの値は、周波数設定手段２３からの（Ｋ＋Ｌ−１）ビットの周波数データＢを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分け、各組のＫビットデータとカウンタ２４のＫビットの計数出力Ｎとのビット単位の論理積の演算結果が１となるビットの総数をそれぞれ示している。
【００３４】
また、量子化データｑは、これらの積和演算によって得られた各ｖｊにそれぞれ２ｊを乗算して加算する、即ち図２に示すように、各総数データｖｊをそれぞれｊビットずつ上位側にシフトして加算し、その加算結果の下位側のＬビットデータを抽出することによって得ることができる。
【００３５】
実施形態の乗算量子化回路２５は上記原理に基づいて構成されたものであり、図１に示しているように、Ｌ個の積和演算回路２６（１）〜２６（Ｌ）と、シフト加算回路３０によって構成されている。
【００３６】
各積和演算回路２６（１）〜２６（Ｌ）は、図２に示しているように、Ｋ個のアンド回路２７と加算器２８とによって構成されており、周波数設定手段２３からの（Ｋ＋Ｌ−１）ビットの周波数データＢを、先頭データが互いに１ビットずつずれたＬ組のＫビットデータ（ｂ１〜ｂＫ）、（ｂ２〜ｂＫ＋１）、…、（ｂＬ−１〜ｂＬ＋Ｋ−２）、（ｂＬ〜ｂＬ＋Ｋ−１）に分けて、これらのＫビットデータとカウンタ２４のＫビットの計数出力Ｎとのビット単位の論理積をアンド回路２７によって演算し、その演算結果が１となるビットの総数ｖｊを加算器２８によって各組毎にそれぞれ求めている。
【００３７】
各積和演算回路２６（１）〜２６（Ｌ）によって得られる総数データｖｊのビット数Ｈは、２ＨがＫ以上となる最小の値であり、周波数データＢのビット数Ｋ＋Ｌ−１に比べて格段に少なくて済むので、この加算による遅延は問題とならない。例えばＫ＝６２、Ｌ＝１６の場合、総数データｖｊのビット数Ｈは６となり、周波数データＢのビット数Ｋ＋Ｌ−１＝７７に比べて非常に小さい。
【００３８】
各積和演算回路２６（１）〜２６（Ｌ）によって得られた各総数データｖｊは、シフト加算回路３０によって１ビットずつシフトされて加算される。
【００３９】
このシフト加算回路３０は、例えば図４に示すように、Ｌ個のシフト加算器３１（１）〜３１（Ｌ）を用いて構成することができる。なお、シフト加算器３１（１）〜３１（Ｌ）におけるデータのシフト処理とは、単にデータをその桁をずらして入力させ、ずらした桁分だけ下位側に０を付加しているだけであり、その処理時間はかからない。また、図４および後述する図５、図６において、Ｓの値がシフトするビット数を示している。
【００４０】
シフト加算器３１（１）は、総数データｖ０と、総数データｖ１を１ビット上位側にシフトしたデータ（下位に０を１ビット付加したデータ）とを加算し、シフト加算器３１（２）は、シフト加算器３１（１）の出力と、総数データｖ２を２ビット上位側にシフトしたデータ（下位に０を２ビット付加したデータ）とを加算する。
【００４１】
以下同様に、総数データｖｊのシフト加算を行い、最終段のシフト加算器３１（Ｌ）からＬビットに量子化された量子化データｑを出力する。
【００４２】
ただし、実際にシフト加算回路３０を構成する場合には、図４のようにＬ個Ｋシフト加算器３１（１）〜３１（Ｌ）を単純にカスケード接続すると、加算段数がＬ段となって速度の点で不利になるので、後述するシフト加算回路３０のように、並列にシフト加算処理を行うことが望ましい。
【００４３】
即ち、前記量子化データｑの式（２）は次のように展開できる。
（Ｌが偶数のとき）
ｑ＝（ｖ０＋２ｖ１）＋２２（ｖ２＋２ｖ３）＋２４（ｖ４＋２ｖ５）
＋…＋２Ｌ−４（ｖＬ−４＋２ｖＬ−３）＋２Ｌ−２（ｖＬ−２＋２ｖＬ−１）…（２）
【００４４】
（Ｌが奇数のとき）
ｑ＝（ｖ０＋２ｖ１）＋２２（ｖ２＋２ｖ３）＋２４（ｖ４＋２ｖ５）
＋…＋２Ｌ−３（ｖＬ−３＋２ｖＬ−２）＋２Ｌ−１ｖＬ−１…（３）
【００４５】
上式（２）、（３）は、さらに２Ｘでまとめることができるが、ここでは、一例として式（２）に対応したシフト加算回路３０を図５に示す。
【００４６】
図５のシフト加算回路３０では、Ｌ／２個のシフト加算器３１（１）〜３１（Ｒ）（Ｒ＝Ｌ／２）によって、総数データｖを２組ずつシフト加算し、それらの出力をＲ−１個のシフト加算器３１（Ｒ＋１）〜３１（２Ｒ−１）によってシフト加算して、Ｌビットの量子化データｑを得るようにしている。
【００４７】
このように並列処理を含めることで、加算段数を図４の場合の半分に減らすことができ、高速処理が可能となる。なお、前記したように、式（２）または式（３）をさらに２Ｘでまとめることで、さらに加算段数を減らすことができるが、これについては次の実際の動作説明の項で説明する。
【００４８】
次に、この実施形態の動作を例えばＫ＝６２、Ｌ＝１６の場合で説明する。
周波数設定手段２３から７７ビットの周波数データＢ（ｂ１〜ｂ７７）が設定されると、各積和演算回路２６（１）〜２６（１６）は、カウンタ２４の６２ビットの計数出力Ｎ（ｎ０〜ｎ６１）に対して、
ｖ０＝ｐ＝０Σ６１（ｎｐｂｐ＋１６）
ｖ１＝ｐ＝０Σ６１（ｎｐｂｐ＋１５）
ｖ２＝ｐ＝０Σ６１（ｎｐｂｐ＋１４）
……
ｖ１５＝ｐ＝０Σ６１（ｎｐｂｐ＋１）
の演算を行い、各総数データｖ０〜ｖ１５を求めて、シフト加算回路３０へ出力する。なお、この場合、前記したように、各総数データｖ０〜ｖ１５のビット数Ｈは６ビットである。
【００４９】
シフト加算回路３０は、総数データｖ０〜ｖ１５に対するシフト加算処理を次の式に基づいて行う。
ｑ＝〔ｖ０＋２ｖ１＋２２ｖ２＋…＋２１４ｖ１４＋２１５ｖ１５〕ｍｏｄ１６
＝〔ｖ０＋２ｖ１＋２２ｖ２＋…＋２１０ｖ１０〕ｍｏｄ１６
＋〔２１１ｖ１１〕ｍｏｄ１６＋〔２１２ｖ１２〕ｍｏｄ１６
＋〔２１３ｖ１３〕ｍｏｄ１６＋〔２１４ｖ１４〕ｍｏｄ１６
＋〔２１５ｖ１５〕ｍｏｄ１６
ただし、括弧記号〔Ｙ〕ｍｏｄ１６は、データＹを１６ビット化したデータを示す。
【００５０】
ここで、６ビットのデータｖｊを１１ビットシフト（下位側に０を１１ビット付ける）して下位側の１６ビットを取って生成したデータは、元の６ビットデータｖｊの下位の５ビットのデータＶｊを１１ビットシフトしたものと等しい。
【００５１】
したがって、ｖ１１の下位５ビットをＶ１１、ｖ１２の下位４ビットをＶ１２、ｖ１３の下位３ビットをＶ１３、ｖ１４の下位２ビットをＶ１４、ｖ１５の下位１ビット（ＬＳＢ）をＶ１５とすると、量子化データｑは、
ｑ＝〔ｖ０＋２ｖ１＋２２ｖ２＋…＋２１０ｖ１０〕ｍｏｄ１６
＋〔２１１Ｖ１１〕ｍｏｄ１６＋〔２１２Ｖ１２〕ｍｏｄ１６
＋〔２１３Ｖ１３〕ｍｏｄ１６＋〔２１４Ｖ１４〕ｍｏｄ１６
＋〔２１５Ｖ１５〕ｍｏｄ１６
＝〔｛（ｖ０＋２ｖ１）＋２２（ｖ２＋２ｖ３）｝
＋２４｛（ｖ４＋２ｖ５）＋２２（ｖ６＋２ｖ７）｝
＋２８｛（ｖ８＋２ｖ９）＋２２ｖ１０｝〕ｍｏｄ１６
＋〔２１１｛（Ｖ１１＋２Ｖ１２）
＋２２（Ｖ１３＋２Ｖ１４）＋２４Ｖ１５｝〕ｍｏｄ１６
となる。
【００５２】
シフト加算回路３０は、この演算を図６に示すように１５個のシフト加算器３１（１）〜３１（１５）によって行う。
【００５３】
このシフト加算回路３０の加算段数は最大で５段で済み、また各シフト加算器３１も最大で１６ビットの加算処理しか行わない。
【００５４】
また、クロック信号ＣＫを計数するカウンタ２４の速度も、従来のＭビット加算器等と比べてはるかに高速なので、クロック周波数が例えば１００ＭＨｚと高い場合でも、７７ビットの分解能で周波数設定が行え、広帯域で高い周波数分解能を実現できる。
【００５５】
このように、実施形態の周波数シンセサイザ２０は、広帯域で高い周波数分解能を有しているため、一般的な信号発生装置の信号源として利用でき、また、前記したように、周波数精度が１０−１５の水素メーザ発振器の出力（例えば１００ＭＨｚ）を基準のクロック信号ＣＫとして任意の周波数の信号を発生させる場合のように、１６桁以上の周波数分解能が要求される場合でも問題なく使用できる。
【００５６】
また、この周波数シンセサイザ２０は周波数設定分解能が非常に高いので、振幅分布がガウス分布に高い精度で近似するガウス性雑音を発生する場合の正弦波発生部として使用することができる。
【００５７】
次に、この周波数シンセサイザを用いてガウス性の雑音信号を発生するガウス雑音発生装置について説明する。
【００５８】
なお、以下に説明するガウス雑音発生装置は、複数の正弦波の各周波数が、その正弦波の数より大きい整数ｕについてのｕ次代数的整数を公比とする等比数列のなかから重複せずに選出されているとき、その複数の正弦波を合成した合成波の標本値の分布がガウス分布に近づくという知見に基づいたものである（この証明方法については詳述しない）。
【００５９】
ここで、ｕ次代数的整数とは、次の多項式Ｕ（ｘ）、
Ｕ（ｘ）＝ｘｕ＋ｍｕ−１ｘｕ−１＋…＋ｍ１ｘ＋ｍ０
（係数ｍ０〜ｍｕ−１は整数）
の根であって、Ｕ（ｘ）は整数係数の範囲で既約、即ちＵ（ｘ）が因数分解できないとする。
【００６０】
例えば、値Ｅ１／ｕが上記多項式Ｕ（ｘ）の根、即ち、ｕ次代数的整数であれば、この値Ｅ１／ｕを公比とする等比数列
Ｅ１／ｕ／Ｇ，Ｅ２／ｕ／Ｇ，Ｅ３／ｕ／Ｇ，…，Ｅ（ｕ−１）／ｕ／Ｇ
（Ｇは１以上の整数）
のなかから、各正弦波の周波数を重複せずに選ぶことにより、ガウス性の雑音信号を得ることができる。
【００６１】
図７は、前記した周波数シンセサイザ２０の波形メモリ２１、周波数設定手段２３および乗算量子化回路２５を複数用いて周波数が異なる複数の正弦波を並列に発生する正弦波発生部を構成し、これらの複数の正弦波を加算合成してガウス性の雑音信号を発生する雑音信号発生装置５０を示している。
【００６２】
この雑音発生装置５０には振幅データ出力手段としてＷ個（Ｗは１以上ｕ未満の整数）の波形メモリ２１（１）〜２１（Ｗ）が設けられており、各波形メモリ２１（１）〜２１（Ｗ）には、同一の正弦波形データが１周期分Ｌビットのアドレス信号で指定可能な領域に予め記憶されている。
【００６３】
この正弦波データは、アドレスを指定するＬビットの量子化データをｑとすると、
ｃｏｓ（２πｑ／２Ｌ）
と表される（ｓｉｎ（２πｑ／２Ｌ）としてもよい）。
【００６４】
各周波数設定手段２３（１）〜２３（Ｗ）は、前記したｕ次代数的整数を公比とする等比数列のなかから重複せずに選出された周波数に対応する周波数データＢ１〜ＢＷをそれぞれ乗算量子化回路２５（１）〜２５（Ｗ）に設定する。
【００６５】
例えば上限周波数ｆａ、下限周波数ｆｂの帯域内にスペクトラムが分布する雑音信号を発生させる場合には、クロック周波数ｆｃで正規化した周波数ｆａ／ｆｃ、ｆａ／ｆｃの範囲内で、各周波数データＢ１〜ＢＷを、以下のように設定する。
【００６６】
Ｂ１＝Ｅ１／ｕ／Ｇ
Ｂ２＝Ｅ２／ｕ／Ｇ
Ｂ３＝Ｅ３／ｕ／Ｇ
……
ＢＷ＝ＥＷ／ｕ／Ｇ
【００６７】
各乗算量子化回路２５（１）〜２５（Ｗ）は、周波数設定手段２３（１）〜２３（Ｗ）からそれぞれ設定された周波データＢ１〜ＢＷとカウンタ２４の計数出力Ｎとを前記同様に乗算してＬビットに量子化し、その量子化データｑ１〜ｑＷをそれぞれの波形メモリ２１（１）〜２１（Ｗ）へアドレス信号として出力する。
【００６８】
乗算器５１（１）〜５１（Ｗ）は、各波形メモリ２１（１）〜２１（Ｗ）から出力される振幅データＤ１〜ＤＷに対して、振幅設定手段５２から設定された振幅係数Ｓ１〜ＳＷをそれぞれ乗算し、その乗算結果を合成回路５３へ出力する。
【００６９】
合成回路５３は、各乗算器５１（１）〜５１（Ｗ）の出力を加算合成し、その加算結果を雑音信号Ｎｇとして出力する。
【００７０】
なお、アナログの雑音信号を必要とする場合には、合成回路５３のディジタル出力をＤ／Ａ変換器（図示せず）によってアナログ信号に変換して出力する。
【００７１】
このように構成されたガウス雑音発生装置５０では、前記同様に各乗算量子化回路２５（１）〜２５（Ｗ）によって、Ｋ＋Ｌ−１ビットの周波数データＢ１〜ＢＷとカウンタ２４のＫビットの計数出力Ｎとの乗算および量子化がなされ、Ｌビットの量子化データｑ１〜ｑＷが各波形メモリ２１（１）〜２１（Ｗ）に出力される。
【００７２】
このため、各波形メモリ２１（１）〜２１（Ｗ）からは、
Ｄ１＝ｃｏｓ（２πｑ１／２Ｌ）
Ｄ２＝ｃｏｓ（２πｑ２／２Ｌ）
Ｄ３＝ｃｏｓ（２πｑ３／２Ｌ）
……
ＤＷ＝ｃｏｓ（２πｑＷ／２Ｌ）
の振幅データＤ１〜ＤＷが１クロック毎に並列出力される。
【００７３】
そして、これらの振幅データＤ１〜ＤＷに振幅係数Ｓ１〜ＳＷが乗算され、その乗算結果
Ｄ１′＝Ｓ１ｃｏｓ（２πｑ１／２Ｌ）
Ｄ２′＝Ｓ２ｃｏｓ（２πｑ２／２Ｌ）
Ｄ３′＝Ｓ３ｃｏｓ（２πｑ３／２Ｌ）
……
ＤＷ′＝ＳＷｃｏｓ（２πｑＷ／２Ｌ）
が合成回路５３に出力され、これらの乗算結果を加算合成したデータが雑音データ信号Ｎｇとして出力される。
【００７４】
ここで、振幅設定手段５２によって、例えば全ての振幅係数Ｓ１〜ＳＷを等しい値に設定すれば、図８の（ａ）に示すように、設定した周波数範囲ｆａ〜ｆｂでほぼ一様にスペクトラムが分布する白色ガウス性雑音を得ることができる。
【００７５】
また、振幅設定手段５２によって、例えば周波数ｆａ〜ｆ１の範囲で周波数に反比例して振幅係数が減少し、周波数ｆ１〜ｆ２の範囲では振幅係数が一定で、周波数ｆ２〜ｆｂの範囲で周波数に比例して振幅係数が増加するように設定すれば、図８の（ｂ）に示すようにスペクトラムの分布が一様でない有色ガウス性雑音を得ることができる。
【００７６】
前記したガウス雑音発生装置５０は、前記した周波数シンセサイザを用いて複数の正弦波を並列に生成して合成しているため、動作速度が高く、高周波帯までガウス雑音を発生することができる。
【００７７】
前記したガウス雑音発生装置５０は、正弦波の数に応じて回路規模が大きくなるので、正弦波の数が少なくてよい場合、例えば比較的狭帯域で高い周波数帯のガウス雑音信号を発生する場合に有利であるが、正弦波の数が多い場合には、図９に示すガウス雑音発生装置６０のように、一組の周波数シンセサイザで周波数データと係数とを高速に切り換えるようにすれば、簡単な回路構成で広帯域なガウス雑音を発生することができる。
【００７８】
このガウス雑音発生装置６０は、前記した複数の正弦波の周波数データＢ１〜ＢＷ（Ｋ＋Ｌ−１ビット）をアドレス順に予め記憶している周波数データメモリ６１と、係数Ｓ１〜ＳＷをアドレス順に予め記憶している係数データメモリ６２と、これらのメモリからデータを順番に読み出すためのアドレスカウンタ６３とを有している。
【００７９】
アドレスカウンタ６３は（Ｗ＋１）進のカウンタであり、前記したクロック周波数ｆｃの（Ｗ＋１）倍の周波数のクロック信号ＣＫ′を計数し、クロック信号ＣＫ′が１〜Ｗクロック入力されるまでの計数出力で周波数データメモリ６１と係数データメモリ６２のアドレスを指定して、周波数データＢ１〜ＢＷおよび係数Ｓ１〜ＳＷをクロック信号ＣＫ′に同期して一つずつ読み出し、Ｗ＋１クロック目が入力されたときにカウンタ２４へクロック信号ＣＫを１クロック出力する。なお、このクロック信号ＣＫは後述するラッチ回路６５へのリセット信号としても用いられる。
【００８０】
カウンタ２４はアドレスカウンタ６３からのクロック信号ＣＫを計数し、そのＫビットの計数出力Ｎを、前記同様に乗算量子化回路２５に入力する。
【００８１】
乗算量子化回路２５は、カウンタ２４の計数出力Ｎと、周波数データメモリ６１から順次出力されるＫ＋Ｌ−１ビットの周波数データＢ１〜ＢＷとの乗算および量子化を行い、同一の計数出力ＮについてＬビットの量子化データｑ１〜ｑＷをアドレス信号として波形メモリ２１に順次出力する。
【００８２】
波形メモリ２１は、各量子化データｑ１〜ｑＷで指定されたアドレスの振幅データＤ１〜ＤＷを乗算器５１へ順次出力する。
【００８３】
乗算器５１は、クロック信号ＣＫ′に同期して波形メモリ２１から順次読み出される各振幅データＤ１〜ＤＷに、クロック信号ＣＫ′に同期して係数データメモリ６２から順次読み出される係数Ｓ１〜ＳＷをそれぞれ乗算し、その乗算結果Ｓ１・Ｄ１〜ＳＷ・ＤＷを加算器６４へ順次出力する。
【００８４】
加算器６４は、乗算器５１の出力とラッチ回路６５の出力とを加算し、その加算結果をラッチ回路６５に入力する。
【００８５】
ラッチ回路６５は、加算器６４の出力をクロック信号ＣＫ′を受ける毎にラッチして、そのラッチ出力を加算器６４に入力している。
【００８６】
このため、アドレスカウンタ６３の計数結果がＷに達したとき、ラッチ回路６５には、カウンタ２４の計数結果Ｎの一つについて得られた各周波数の乗算結果Ｓ１・Ｄ１〜ＳＷ・ＤＷの総和が記憶されることになる。
【００８７】
なお、このラッチ回路６５は、クロック信号ＣＫをリセット信号として受けて記憶内容を０に戻す。
【００８８】
ラッチ回路６６は、クロック信号ＣＫを受けたときにラッチ回路６５にラッチされていたデータをラッチして、これを雑音信号データＮｇとして出力する。
【００８９】
このように構成されたガウス雑音発生装置６０では、アドレスカウンタ６３の計数値が１つ歩進する毎に一つの周波数の振幅データが生成され、計数値がＷ歩進して周波数が異なるＷ種類の振幅データが１つずつ得られた後に、それらを加算した雑音信号データが出力されるとともに、カウンタ２４の計数出力Ｎが１つ歩進するという動作が繰り返されて、前記ガウス雑音発生装置５０と同様のガウス性雑音信号を発生する。
【００９０】
このガウス雑音発生装置６０では、カウンタ２４が１つ歩進する間に、周波数データＢ１〜ＢＷと係数Ｓ１〜ＳＷと順番に切り換えて、各周波数毎の雑音信号データを生成しているので、正弦波の周波数が多い場合でも構成が簡単で済む。
【００９１】
また、アドレスカウンタ６３やラッチ回路６５、６６としては非常に高速なデバイスが実現されており、また、加算器６４のビット数は、出力する雑音信号データの振幅分解能で決まり、一般的には２０ビット以下なので、その遅延は問題とならない。
【００９２】
また、前記したガウス雑音発生装置５０、７０を組み合わせて、ガウス雑音発生装置５０より回路規模が小さく、ガウス雑音発生装置７０より高速動作が可能なガウス雑音発生装置を構成することも可能である。
【００９３】
例えば、Ｗが偶数の場合、図１０に示すガウス雑音発生装置７０のように、波形メモリ２１、乗算量子化回２５および乗算器５１を例えば２組（３組や４組でもよい）設ける。
【００９４】
そして、周波数データメモリ６１′には、１つのアドレス指定で２つの周波数データを出力できるように記憶しておき、係数データメモリ６２′にも、１つのアドレス指定で周波数データメモリ６１から出力される２つの周波数データにそれぞれ対応する２つの係数を出力できるように記憶しておく。
【００９５】
例えば、周波数データメモリ６１′から、一方の乗算量子化回路２５（１）には周波数データＢ１〜ＢＷ／２を順番に出力し、他方の乗算量子化回路２５（２）には周波数データＢ１＋Ｗ／２〜ＢＷを順番に出力させる。
【００９６】
また、同様に係数データメモリ６２′から、一方の乗算器５１（１）には計数Ｓ１〜ＳＷ／２を順番に出力し、他方の乗算器５１（２）には係数Ｓ１＋Ｗ／２〜ＳＷを順番に出力させる。
【００９７】
なお、クロック信号ＣＫ′の周波数は（１＋Ｗ／２）ｆｃとし、アドレスカウンタ６３′は、このクロック信号ＣＫ′が１〜Ｗ／２クロック入力されるまでの間は、その計数出力で周波数データメモリ６１′、係数データメモリ６２′のアドレスを指定し、１＋Ｗ／２クロック目にカウンタ２４へクロック信号ＣＫを出力する。
【００９８】
また、乗算器５１（１）、５１（２）の出力は、一旦加算器７１によって加算され、その加算結果が加算器６４に出力される。
【００９９】
このように構成されたガウス雑音発生装置７０では、アドレスカウンタ６３′の計数値が１つ歩進する毎に２つの異なる周波数の振幅データが生成され、計数値がＷ／２まで歩進して周波数が異なるＷ種類の振幅データが１つずつ得られた後に、それらを加算した雑音信号データが出力されるとともに、カウンタ２４の計数出力が１つ歩進するという動作が繰り返されて、前記同様のガウス性雑音信号を発生する。
【０１００】
したがって、このガウス雑音発生装置７０は、前記ガウス雑音発生装置６０のほぼ２倍の速度で動作可能となり、また、ガウス雑音発生装置５０に比べて構成が簡単である。
【０１０１】
上記実施の形態では、Ｌビットのデータで指定される位相の正弦波を含む周期関数の振幅データを出力する振幅データ出力手段として、振幅データを予め記憶している波形メモリ２１を用いていたが、これは、本発明を限定するものでなく、Ｌビットのデータに対して所定の近似演算を行って周期関数の振幅データを出力するようにしてもよい。
【０１０２】
例えば、波形精度の高さが要求されない高い周波数帯の正弦波信号を出力するような場合には、正弦波を台形波や三角波で近似した関数の演算によって振幅データを出力する。
【０１０３】
即ち、三角波で近似する場合、Ｌビットのデータｑが０〜（２Ｌ／４）−１の範囲では、入力されたデータｑをそのまま振幅データとして出力し、Ｌビットのデータｑが（２Ｌ／４）〜（２Ｌ／２）−１の範囲では、（２Ｌ／２）−１から入力されたデータｑを減じた値を振幅データとして出力し、Ｌビットのデータｑが（２Ｌ／２）〜（３・２Ｌ／４）−１の範囲では、（２Ｌ／２）から入力されたデータｑを減じた値を振幅データとして出力し、Ｌビットのデータｑが（３・２Ｌ／４）〜（２Ｌ−１）の範囲では、入力されたデータｑから２Ｌを減じた値を振幅データとして出力する。
【０１０４】
また、台形波で近似する場合には、前記した三角波の振幅データのうち、Ｌビットのデータｑが（２Ｌ／４）−１の前後の所定範囲および（３・２Ｌ／４）−１の前後の所定範囲で、固定の振幅データを出力するようにする。
【０１０５】
このように三角波や台形波等で近似した振幅データを演算出力する振幅データ出力手段では、その演算処理が非常に簡単なので極めて高速に周期関数信号を出力できる。なお、この近似信号に対してフィルタを用いて帯域制限すれば、出力波形を正弦波にすることができる。
【０１０６】
一方、周波数が低くても波形精度の高さが要求されるような場合には、以下のような近似式の演算を行う。
【０１０７】
即ち、ａの絶対値が１／４以下の範囲で例えば正弦関数ｓｉｎ（２πａ）に対し、２×１０−４の精度を持つ近似式は、
ｆ（ａ）＝２πａ〔１−０．１６６０５（２πａ）２＋０．００７６１（２πａ）４〕
ただし、ａ＝ｑ／（２Ｌ−１）
と表される。
【０１０８】
したがって、Ｌビットのデータｑが０〜（２Ｌ／４）−１の範囲では、
ｆ（ｑ／２Ｌ）×（２Ｌ−１−１）
の演算結果を整数化して得られる振幅データを出力する。
【０１０９】
また、Ｌビットのデータｑが（２Ｌ／４）〜（３・２Ｌ／４）−１の範囲では、
ｆ（１／２−ｑ／２Ｌ）×（２Ｌ−１−１）
の演算結果を整数化して得られる振幅データを出力する。
【０１１０】
また、Ｌビットのデータｑが（３・２Ｌ／４）〜（２Ｌ−１）の範囲では、
ｆ（ｑ／２Ｌ−１）×（２Ｌ−１−１）
の演算結果を整数化して得られる振幅データを出力する。
【０１１１】
なお、上記したガウス雑音発生装置７０は、前記周波数シンセサイザ２０を周波数固定の信号源として用いてものであるが、周波数シンセサイザの使用形態として、周波数掃引あるいは手動操作で出力信号の周波数を頻繁に変更する場合もある。
【０１１２】
このように出力信号の周波数を頻繁に変更する周波数シンセサイザでは、周波数変更時の位相不連続による雑音の発生が問題となる。
【０１１３】
図１１は、この位相不連続による雑音の発生を抑えることができる周波数シンセサイザ８０の構成を示している。
【０１１４】
この周波数シンセサイザ８０は、前記周波数シンセサイザ２０と同様に、振幅データ出力手段としての波形メモリ２１、周波数設定手段２３、カウンタ２４および乗算量子化回路２５を有しており、乗算量子化回路２５のシフト加算回路３０と波形メモリ２１との間にＬビットの加算回路８１が設けられ、この加算回路８１から波形メモリ２１に入力されるＬビットのデータを、ラッチ回路８２がラッチ信号ＬＨを受けてラッチし、そのラッチ出力Ｒを加算回路８１に入力するように構成されている。
【０１１５】
また、制御回路８３は、周波数設定手段２３によって周波数データが変更される毎に、カウンタ２４にセット信号ＳＥＴを出力してカウンタ２４の計数出力Ｎを値１（またはその近傍値）に初期化するとともに、この初期化されたカウンタ２４の出力に対応したＬビットデータがシフト加算回路３０から出力されるタイミングに合わせてラッチ回路８２にラッチ信号ＬＨを出力して、波形メモリ２１から出力される振幅データの周波数変更直前の位相値と周波数変更直後の位相値とをほぼ連続させる。
【０１１６】
このように構成された周波数シンセサイザ８０では、図１２の（ａ）に示すクロック信号ＣＫが入力される毎に、カウンタ２４の計数出力Ｎが図１２の（ｂ）のように１ずつ増加し、その計数出力Ｎと周波数設定手段２３からの周波数データＢとの積和演算が前記同様に積和演算回路２６（１）〜２６（Ｌ）によってなされて各総数データｖｊが求められ、この総数データｖｊに対するシフト加算処理が前記したようにシフト加算回路３０によって行われ、図１２の（ｄ）に示すように、シフト加算回路３０の加算段数に応じたクロック数分（この例では５クロック分）だけ遅れて、計数出力Ｎに対する量子化データｑ（Ｎ，Ｂ）が出力される。
【０１１７】
この量子化データｑ（Ｎ，Ｂ）は、図１２の（ｆ）のようにラッチ回路８２にラッチされているラッチ出力Ｒ（ｊ）とともに加算回路８１に入力され、その加算結果の下位Ｌビットのデータｒ（Ｎ，Ｂ）が図１２の（ｇ）のように波形メモリ２１に出力され、波形メモリ２１からはデータｒ（Ｎ，Ｂ）で指定されるアドレス（位相）の振幅データＤ（ｒ）が出力される。
【０１１８】
上記動作は周波数データＢが変更されるまで繰り返され、図１３に示すように、クロック信号ＣＫが１クロック入力される毎に、波形メモリ２１に入力されるＬビットのデータｒ（Ｎ，Ｂ）が、周波数データＢによって決まる所定の間隔Δφずつ更新され、そのデータｒ（Ｎ，Ｂ）で指定されたアドレス（位相）の振幅データＤ（ｒ）が順次出力される。
【０１１９】
ここで、カウンタ２４の計数出力Ｎがｉの時刻ｔ０に、周波数設定手段２３によって周波数データが例えばＢより小さいＢ′に変更されると、図１２の（ｃ）に示すように、制御回路８３から次のクロック入力時ｔ１にカウンタ２４に対してセット信号ＳＥＴが出力され、カウンタ２４の計数結果Ｎが図１２の（ｂ）のように１に初期化される。
【０１２０】
このため、この計数結果１に対する量子化データｑ（１，Ｂ′）が、図１２の（ｄ）のように、その前段階の量子化データｑ（ｉ，Ｂ）に続いて前記した加算段数に応じたクロック数分遅れたｔ２時にシフト加算回路３０から出力される。
【０１２１】
また、このｔ２時には、制御回路８３から図１２の（ｅ）に示すようにラッチ信号ＬＨがラッチ回路８２に出力され、ラッチ回路８２の出力Ｒ（ｊ＋１）は、その前段階に波形メモリ２１に入力されていたＬビットのデータｒ（ｉ，Ｂ）と等しい値に更新される。
【０１２２】
このため、加算回路８１からは、図１２の（ｇ）に示すように、ｒ（ｉ，Ｂ）＋ｑ（１，Ｂ′）の下位Ｌビットのデータｒ（１，Ｂ′）が出力されることになり、以後クロック信号ＣＫが１クロック入力される毎に、ｒ（ｉ，Ｂ）＋ｑ（２，Ｂ′）、ｒ（ｉ，Ｂ）＋ｑ（３，Ｂ′）、……の下位Ｌビットのデータｒ（２，Ｂ′）、ｒ（３，Ｂ′）、……が出力される。
【０１２３】
ここで、周波数データＢ′についての最初のデータｒ（１，Ｂ′）は、周波数データＢについての最終のデータｒ（ｉ，Ｂ）に量子化データｑ（１，Ｂ′）を加算してＬビット化したものであり、量子化データｑ（１，Ｂ′）は、周波数データＢ′で振幅データを読み出すためのアドレス間隔Δφ′を示している。
【０１２４】
したがって、図１３に示しているように、周波数データＢ′についての振幅データの位相は、周波数データＢで出力される振幅データの最終位相ｒ（ｉ，Ｂ）を初期位相として間隔Δφ′ずつ増加していくことになり、周波数データの変更による位相の不連続は発生せず、この位相不連続による雑音も発生しない。
【０１２５】
また、前記周波数シンセサイザ２０と同様に、設定する周波数データのビット数が多い場合でも、従来のＤＤＳ方式のものに比べて、少ない遅延時間で振幅データの位相の指定が行え、クロック周波数を下げることなく、高い周波数分解能を実現できる。
【０１２６】
なお、ここではカウンタ２４を１に初期化していたが、カウンタ２４を１の近傍値に初期化した場合でも、位相不連続によって発生する雑音のレベルを低減することができる。
【０１２７】
例えばカウンタ２４の計数出力Ｎを０に初期化した場合には、周波数データＢ′について最初に得られる量子化データｑ（０，Ｂ′）が０となり、加算回路８１の出力が前段階の出力値と等しくなるため、図１３でＪａに示すように、同一の振幅データが２回連続で出力されることになる。また、カウンタ２４の計数出力Ｎを２に初期化した場合には、周波数データＢ′について最初に得られる量子化データがｑ（２，Ｂ′）となるため、図１３でＪｂに示すように、周波数データＢの最終の振幅データの位相に対して周波数データＢ′の最初の振幅データが２Δφ′増加する。
【０１２８】
このように、初期化する値を１の近傍値に設定した場合には、位相の完全な連続性は失われるが、その位相差が少ないので発生する雑音のレベルが小さくて済む。なお、この初期値の範囲は、波形メモリ２１の入力ビット数Ｌに対する割合で限定する必要がある。初期値がＫよりも十分小さければ、発生する雑音は十分小さい。例えば初期値を２Ｌ′としたとき、発生する雑音のピーク値は、初期値を１にしたときよりも６Ｌ′ｄＢ劣化する。
【０１２９】
また、この周波数シンセサイザ８０の場合でも、前記周波数シンセサイザ２０で説明したように、波形メモリ２１の代わりにＬビットのデータに対して所定の近似演算を行って周期関数の振幅データを出力する振幅データ出力手段を用いてもよい。
【０１３０】
【発明の効果】
以上説明したように、本発明の請求項１の周波数シンセサイザは、Ｌビットのデータで指定された位相の所定周期関数の振幅データを出力する振幅データ出力手段と、所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、クロック信号を計数するＫビットのカウンタと、周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、カウンタのＫビットの計数出力とビット単位の論理積を演算し、その演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、Ｌ組の積和演算回路によって求められた各総数データを、ビットシフトして加算し、その加算結果の下位Ｌビットを振幅データ出力手段に出力するシフト加算回路とを備えている。
【０１３１】
このため、設定する周波数データのビット数が多い場合でも、従来のＤＤＳ方式のものに比べて、少ない遅延時間で振幅データの位相の指定が行え、クロック周波数を下げることなく、高い周波数分解能を実現できる。
【０１３２】
また、本発明の請求項２の周波数シンセサイザは、
Ｌビットのデータを受け、該データで指定される位相の所定周期関数の振幅データを出力する振幅データ出力手段と、所定のクロック信号の周波数で所望の出力周波数を除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、クロック信号を計数するＫビットのカウンタと、周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、カウンタのＫビットの計数出力とビット単位の論理積を演算し、該演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、Ｌ組の積和演算回路によって求められた各総数データを、ビットシフトして加算し、該加算結果の下位Ｌビットを出力するシフト加算回路と、振幅データ出力手段に入力されるＬビットのデータをラッチ信号を受ける毎にラッチするラッチ回路と、シフト加算回路の出力とラッチ回路の出力とを加算し、該加算結果の下位Ｌビットを振幅データ出力手段に出力する加算回路と、周波数設定手段によって設定される周波数データが変更される毎に、カウンタを値１またはその近傍値に初期化するとともに、該初期化した値に対応するＬビットのデータがシフト加算器から出力されるタイミングに合わせてラッチ回路にラッチ信号を出力して、振幅データ出力手段から出力される振幅データの周波数変更直前の位相値と周波数変更直後の位相値とをほぼ連続させる制御回路とを備えている。
【０１３３】
このため、設定する周波数データのビット数が多い場合でも、従来のＤＤＳ方式のものに比べて、少ない遅延時間で振幅データの位相の指定が行え、クロック周波数を下げることなく、高い周波数分解能を実現でき、しかも周波数変更時の位相不連続による雑音の発生を抑制できる。
【０１３４】
また、本発明の請求項３のガウス雑音発生装置は、周波数が異なる複数の正弦波を生成する正弦波生成部を有し、この正弦波生成部が生成した複数の正弦波を加算合成してガウス性の雑音信号を発生するガウス雑音発生装置において、正弦波生成部は、Ｌビットのデータで指定された位相の正弦波関数の振幅データを出力する振幅データ出力手段と、正弦波の数より大きい整数ｕについてのｕ次代数的整数を公比とする等比級数のなかから選択した周波数を所定のクロック信号の周波数で除算して得られる（Ｋ＋Ｌ−１）ビットのデータを周波数データとして設定するための周波数設定手段と、クロック信号を計数するＫビットのカウンタと、周波数設定手段からの（Ｋ＋Ｌ−１）ビットの周波数データを先頭ビットが１ビットずつずれたＬ組のＫビットデータに分けて、カウンタのＫビットの計数出力とビット単位の論理積を演算し、その演算結果が１となるビットの総数を各組毎にそれぞれ求めるＬ組の積和演算回路と、Ｌ組の積和演算回路によって求められた各総数データを、ビットシフトして加算し、その加算結果の下位Ｌビットを振幅データ出力手段に出力するシフト加算回路とを含み、ｕ次代数的整数を公比とする等比級数のなかから重複せずに選択した複数の周波数の正弦波を発生するように構成されている。
【０１３５】
このため、振幅がガウス分布に極めて近似した高精度なガウス雑音信号を発生することができる。
【図面の簡単な説明】
【図１】本発明の周波数シンセサイザの実施の形態の構成を示すブロック図
【図２】本発明の要部の動作原理を説明するための図
【図３】実施形態の要部の回路構成例を示す図
【図４】実施形態の要部の回路構成例を示す図
【図５】実施形態の要部の回路構成例を示す図
【図６】実施形態の要部の回路構成例を示す図
【図７】本発明のガウス雑音発生装置の実施の形態の構成を示すブロック図
【図８】実施形態のガウス雑音発生装置の出力のスペクトラムの例を示す図
【図９】本発明のガウス雑音発生装置の他の実施の形態の構成を示すブロック図
【図１０】本発明のガウス雑音発生装置の他の実施の形態の構成を示すブロック図
【図１１】本発明の周波数シンセサイザの他の実施の形態の構成を示すブロック図
【図１２】図１１の実施の形態の動作を説明するためのタイミング図
【図１３】図１１の実施の形態の動作を説明するための図
【図１４】従来装置の構成を示すブロック図
【符号の説明】
２０、８０  周波数シンセサイザ
２１  波形メモリ
２２  Ｄ／Ａ変換器
２３  周波数設定手段
２４  カウンタ
２５  乗算量子化回路
２６  積和演算回路
２７  アンド回路
２８  加算器
３０  シフト加算回路
３１  シフト加算器
５０、６０、７０  ガウス雑音発生装置
５１  乗算器
５２  係数設定手段
５３  合成回路
６１、６１′  周波数データメモリ
６２、６２′  係数データメモリ
６３、６３′  アドレスカウンタ
６４  加算器
６５、６６  ラッチ回路
７１  加算器
８１  加算回路
８２  ラッチ回路
８３  制御回路
【図１】
0004520586.tif 000002
【図２】
0004520586.tif 000003
【図３】
0004520586.tif 000004
【図４】
0004520586.tif 000005
【図５】
0004520586.tif 000006
【図６】
0004520586.tif 000007
【図７】
0004520586.tif 000008
【図８】
0004520586.tif 000009
【図９】
0004520586.tif 000010
【図１０】
0004520586.tif 000011
【図１１】
0004520586.tif 000012
【図１２】
0004520586.tif 000013
【図１３】
0004520586.tif 000014
【図１４】
0004520586.tif 000015