(57)【特許請求の範囲】
【請求項１】
自乗和が一定値ＴとなるＮ個の乱数値を生成するための乱数発生装置であって、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から読み込んだ１つ以上の乱数値の組を基に生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成されたことを特徴とする乱数生成装置。
【請求項２】
自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置であって、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込み乱数値の順番を変えることでＮ個の乱数値を生成する乱数順序変更部と、前記Ｎ個の乱数値それぞれの正負を無秩序に反転する乱数極性変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成されたことを特徴とする乱数生成装置。
【請求項３】
自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置であって、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込み乱数値の順番を変えることでＮ個の乱数値を生成する乱数順序変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成されたことを特徴とする乱数生成装置。
【請求項４】
自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置であって、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込みＮ個の乱数値を生成する乱数生成部と、前記Ｎ個の乱数値それぞれの正負を無秩序に反転させる乱数極性変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成されたことを特徴とする乱数生成装置。
【請求項５】
前記乱数記憶部が記憶している乱数値が負数を含まないことを特徴とする請求項１〜４のいずれか１項に記載の乱数生成装置。
【請求項６】
前記乱数振幅変更部において（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗の計算を、ＴとＭとＲを定数とし、Ｎを引数とした表参照によって行うことを特徴とする請求項１〜５のいずれか１項に記載の乱数生成装置。
【請求項７】
請求項１〜６のいずれか１項に記載の記載の乱数生成装置を備え、この乱数生成装置用いて所定周波数帯域に所定エネルギの雑音を発生させる機能を持つオーディオ復号装置。
【請求項８】
自乗和が一定値ＴとなるＮ個の乱数値を生成する乱数生成方法において、
自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組、乱数記憶部に記憶しておき、
乱数振幅変更部は、前記乱数記憶部から前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の組をもとにＮ個の乱数値を生成し、生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する、
ことを特徴とする乱数生成方法。
【請求項９】
自乗和が一定値ＴとなるＮ個の乱数値を生成する乱数生成方法において、
自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組、乱数記憶部に記憶しておき、
乱数順序変更部は、前記乱数記憶部から前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の順番を変えることでＮ個の乱数値を生成し、
乱数極性変更部は、前記乱数順序変更部が生成したＮ個の乱数値それぞれの正負を無秩序に反転し、
乱数振幅変更部は、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する、
ことを特徴とする乱数生成方法。
【請求項１０】
自乗和が一定値ＴとなるＮ個の乱数値を生成する乱数生成方法において、
自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組、乱数記憶部に記憶しておき、
乱数順序変更部は、前記乱数記憶部から前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の順番を変えることでＮ個の乱数値を生成し、
乱数振幅変更部は、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する、
ことを特徴とする乱数生成方法。
【請求項１１】
自乗和が一定値ＴとなるＮ個の乱数値を生成する乱数生成方法において、
自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組、乱数記憶部に記憶しておき、
乱数生成部は、前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の組をもとにＮ個の乱数値を生成し、
乱数極性変更部は、前記Ｎ個の乱数値それぞれの正負を無秩序に反転し、
乱数振幅変更部は、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する、
ことを特徴とする乱数生成方法。
【請求項１２】
前記乱数記憶部に記憶している乱数値が負数を含まないことを特徴とする請求項８〜１１のいずれか１項に記載の乱数生成方法。
【請求項１３】
前記乱数振幅変更部は、（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を、ＴとＭとＲを定数とし、Ｎを引数とした表参照によって得ることを特徴とする請求項８〜１２のいずれか１項に記載の乱数生成方法。
【請求項１４】
請求項８〜１３のいずれか１項に記載の乱数生成方法を乱数生成装置に実行させるためのプログラム。
【請求項１５】
請求項８〜１３のいずれか１項に記載の乱数生成方法を用いて所定周波数帯域に所定エネルギの雑音を発生させる過程を含むオーディオ復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は乱数生成装置、乱数生成方法および乱数生成用プログラムを記録した記録媒体に関し、特に、所望のエネルギを持つ乱数系列を小規模装置により生成できる乱数生成装置、乱数生成方法、乱数生成プログラムおよびオーディオ復号装置と復号方法に関する。
【０００２】
【従来の技術】
合計エネルギ（自乗和）がＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）、言い換えれば、Ｑ（１）×Ｑ（１）＋Ｑ（２）×Ｑ（２）＋・・・＋Ｑ（Ｎ）×Ｑ（Ｎ）＝ＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）が必要とされる。
【０００３】
このような乱数は、例えばオーディオ復号装置に利用されている。すなわち、国際標準オーディオ符号化規格であるＭＰＥＧ−４  ＡＡＣ（ Advanced Audio Coding）では、ＰＮＳ（Perceptual Noise Substitute ）と呼ばれる機能を持つ。このＰＮＳを用いた場合、オーディオ符号化装置では所定周波数帯域の詳細情報を符号化せずに、その周波数帯域に含まれる周波数領域信号の総エネルギＥのみを符号化する。オーディオ復号装置では、符号化されている総エネルギＥと等しいエネルギを持つホワイトノイズ（乱数）をその周波数帯域の周波数領域信号とする。このような信号を生成する場合に、本発明のような特定エネルギを持つ乱数系列を発生させる必要がある。
【０００４】
本発明では、後述するように所定の乱数値を予め記憶しておき乱数発生に利用する。乱数発生のために予め乱数を格納しておくこの種の既知技術に関するものとして、例えば特開昭６１−１１４３２６号公報、特許第２６１５７４３号公報、特許第２５６７８１号公報がある。
【０００５】
このような、合計エネルギ（自乗和）がＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）の一般的な生成方法について図７のブロック図を用いて説明する。図７に示す一般的な乱数生成装置は、乱数発生部７０１と、エネルギ計算部７０２と、乱数正規化部７０３とから構成されている。このような構成を持つ一般的な乱数生成装置は次のように動作する。
【０００６】
乱数生成装置には、出力する乱数の個数Ｎと、出力する乱数の有すべきエネルギ値Ｔが入力される。乱数発生部７０１ではＮ個の単なる乱数Ｑ１（１〜Ｎ）を発生しエネルギ計算部７０２と乱数正規化部７０３へ出力する。
【０００７】
エネルギ計算部７０２は、乱数Ｑ１（１〜Ｎ）の合計エネルギＰ、すなわち、Ｑ１（１）×Ｑ１（１）＋Ｑ１（２）×Ｑ１（２）＋・・・＋Ｑ１（Ｎ）×Ｑ１（Ｎ）＝Ｐを計算し、この合計エネルギＰを乱数正規化部７０３へ出力する。
【０００８】
乱数正規化部７０３では、まず正規化係数Ｓを、（Ｔ÷Ｐ）の０．５乗により求める。そして、乱数Ｑ１（１〜Ｎ）に正規化係数Ｓを乗じて合計エネルギがＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）とする。つまり、Ｊ＝１〜ＮについてＱ（Ｊ）＝Ｑ１（Ｊ）×Ｓとして乱数Ｑ（１〜Ｎ）を求める。このようにして求められた乱数Ｑ（１〜Ｎ）が乱数生成装置の最終的出力となる。
【０００９】
上述従来技術においては、エネルギ計算および乱数の正規化の処理が複雑なため乱数生成装置の規模が大きくなってしまう問題点がある。すなわち、回路規模が大きくなったり処理が複雑となってしまい、結果、装置の省スペース性を損なったりコスト的に不利であったりする。その理由は、正規化係数Ｓを求める際に除算および０．５乗の計算が必要となるためである。
【００１０】
【発明が解決しようとする課題】
本発明は、上述した従来の乱数生成技術では乱数生成装置の規模が大きくなる問題点を解消した、装置規模が小さな乱数生成装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
課題解決のために、請求項１の本発明では、自乗和が一定値ＴとなるＮ個の乱数値を生成するための乱数発生装置を、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から読み込んだ１つ以上の乱数値の組を基に生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部を含み構成する。
【００１２】
請求項２の本発明では、自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置を、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込み乱数値の順番を変えることでＮ個の乱数値を生成する乱数順序変更部と、前記Ｎ個の乱数値それぞれの正負を無秩序に反転する乱数極性変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部を含み構成する。
【００１３】
請求項３の本発明では、自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置を、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込み乱数値の順番を変えることでＮ個の乱数値を生成する乱数順序変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成する。
【００１４】
請求項４の本発明では、自乗和がＴとなるＮ個の乱数値を生成するための乱数発生装置を、自乗和がＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておく乱数記憶部と、前記乱数記憶部から乱数値の組を１つ以上読み込みＮ個の乱数値を生成する乱数生成部と、前記Ｎ個の乱数値それぞれの正負を無秩序に反転させる乱数極性変更部と、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する乱数振幅変更部とを含み構成する。
【００１５】
また、請求項５の本発明は、請求項１〜４のいずれか１項に記載の乱数生成装置において、前記乱数記憶部が記憶している乱数値が負数を含まないようにする。請求項６の本発明は、請求項１〜５のいずれか１項に記載の乱数生成装置において、前記乱数振幅変更部における（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗の計算を、ＴとＭとＲを定数とし、Ｎを引数とした表参照によって行うようにする。また、請求項７のオーディオ復号装置は、請求項１〜６のいずれか１項に記載の記載の乱数生成装置を備え構成され、この乱数生成装置用いて所定周波数帯域に所定エネルギの雑音を発生させる。
【００１６】
上記各装置においては、合計エネルギＲが一定数となるような乱数の組を記憶した乱数記憶部を備え、正規化係数Ｓを除算および０．５乗演算を使用せずに簡単な演算で求めるようにしているので、装置規模が小さな装置を得ることができる。
【００１７】
そして、請求項８の本発明の乱数生成方法では、自乗和が一定値ＴとなるＮ個の乱数値を生成することを目的とし、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておき、前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の組をもとにＮ個の乱数値を生成し、生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する。
【００１８】
請求項９の本発明方法では、自乗和が一定値ＴとなるＮ個の乱数値を生成することを目的とし、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておき、前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の順番を変えることでＮ個の乱数値を生成し、生成したＮ個の乱数値それぞれの正負を無秩序に反転し、（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する。
【００１９】
請求項１０の方法では、自乗和が一定値ＴとなるＮ個の乱数値を生成することを目的とし、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておき、前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の順番を変えることでＮ個の乱数値を生成し、前記Ｎ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する。
【００２０】
請求項１１の方法では、自乗和が一定値ＴとなるＮ個の乱数値を生成することを目的とし、自乗和が一定値ＲとなるＭ個（Ｍは前記Ｎの約数）の乱数値の組を複数組記憶しておき、前記乱数値の組を１つ以上読み出し、前記読み出した乱数値の組をもとにＮ個の乱数値を生成し、前記Ｎ個の乱数値それぞれの正負を無秩序に反転し、（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を乗算する。
【００２１】
また、請求項１２の方法では、請求項８〜１１のいずれか１項に記載の乱数生成方法において、前記記憶している乱数値が負数を含まないようにする。請求項１３の方法では、請求項８〜１２のいずれか１項に記載の乱数生成方法において、前記（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗した値を、ＴとＭとＲを定数とし、Ｎを引数とした表参照によって得るようにする。
【００２２】
請求項１４の発明では、請求項８〜１３のいずれか１項に記載の乱数生成方法を乱数生成装置に実行させるためのプログラムである。また、請求項１５のオーディオ復号方法は、請求項８〜１３のいずれか１項に記載の乱数生成方法を用いて所定周波数帯域に所定エネルギの雑音を発生させる過程を含むようにする。
【００２３】
【発明の実施の形態】
次に、合計エネルギ（自乗和）がＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）、言い換えれば、Ｑ（１）×Ｑ（１）＋Ｑ（２）×Ｑ（２）＋・・・＋Ｑ（Ｎ）×Ｑ（Ｎ）＝ＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）を生成する、本発明の実施の形態について図面を参照して詳細に説明する。
【００２４】
本発明の乱数生成装置は、合計エネルギＲが一定数となるような乱数の組を記憶した乱数記憶部を備え、正規化係数Ｓを除算および０．５乗演算を使用せずに簡単な演算で求めるよう動作する。
【００２５】
〔実施の形態：１〕図１を参照すると、本発明の第一の実施の形態に係る乱数生成装置は、乱数記憶部１０１と、乱数順序変更部１０２と、乱数極性変更部１０３と、乱数振幅変更部１０４とから構成される。図示しない制御部が各機能部を制御する。本実施の形態の乱数生成装置は、出力する乱数の個数Ｎと、出力する乱数のエネルギＴを入力とし、合計エネルギ（自乗和）がＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）を出力とする。
【００２６】
乱数記憶部１０１は、事前に計算しておいた自乗和がＲとなるようなＭ個の乱数値の組を、複数組（組数Ｂ）記憶しておく例えば半導体メモリ等の記憶部である。この時、乱数記憶部に予め記憶される乱数値は正、負、ゼロのいずれの値であっても良いし、全て正値であっても構わない。これは後述の乱数極性変更部１０３で乱数値に極性を付加できるからである。
【００２７】
乱数順序変更部１０２は、（Ｎ÷Ｍ）組の乱数値の組を乱数記憶部１０１からランダムに読み出し、読み出したＮ個の乱数値をランダムに配置して乱数Ｑ１（１〜Ｎ）とする。ここで分かるようにＭはＮの約数となるように設定しておくと良い。また、ここでは読み出したＮ個の乱数値をランダムに配置しているが、ランダムではなく読み出した順番通りに配置しても良い。また、読み出す乱数値の組が重複しても差し支えない。乱数Ｑ１（１〜Ｎ）は乱数極性変更部１０３へ出力される。
【００２８】
乱数極性変更部１０３は、乱数Ｑ１（１〜Ｎ）の極性をランダムに設定する。例えば乱数Ｑ１（１〜Ｎ）の各々について１／２の確率で極性を正か負にランダムで設定する。こうして極性を変更して得られた乱数Ｑ１（１〜Ｎ）を乱数振幅変更部１０４へ出力する。
【００２９】
乱数振幅変更部１０４は、乱数Ｑ１（１〜Ｎ）に正規化係数Ｓを乗じて乱数Ｑ（１〜Ｎ）を求める。ここで正規化係数Ｓは（Ｔ×Ｍ÷Ｒ÷Ｎ）を０．５乗することにより求める。また、乱数Ｑ（１〜Ｎ）は、Ｊ＝１〜ＮについてＱ（Ｊ）＝Ｑ１（Ｊ）×Ｓなる乗算を行い求める。
【００３０】
上で説明した各機能部は、独立して形成しても良いが、一般にはＣＰＵやＲＡＭおよびＲＯＭ等を使ったデジタル回路として構成され、適宜のプログラムを実行することにより上述各機能が実現される。
【００３１】
装置規模を小さくするためには正規化係数Ｓの演算を工夫する必要がある。本実施の形態では上述の計算式のとおり正規化係数Ｓは（Ｔ×Ｍ÷Ｒ÷Ｎ）を０．５乗として求められる。ここで、一般には合計エネルギＴ、乱数記憶部１０１に記憶されている各組の乱数値の数Ｍとその自乗和Ｒはいずれも定数になると考えられる。よって、Ｎの取り得る様々な値に対して予め正規化係数Ｓを計算して記憶しておけば、正規化係数ＳをＮを引数とする表参照を行うことによって求めることができる。因みに、従来の一般的方法では正規化係数Ｓを求める際に使用するＰの値が非整数である上にその値域が広いため、正規化係数ＳをＰを引数として表参照で求めることは困難である。これに対して本発明においては、引数となるＮの値が整数であり値域を限定しやすいため、容易に表参照で求めることができる。
【００３２】
続いて、図１及び図２のフローチャートを参照して本発明の第一の実施の形態の動作について説明する。
【００３３】
本処理では、始めに出力する乱数の個数Ｎと、出力する乱数のエネルギＴが入力として与えられる。乱数生成装置では、まず、乱数テーブル（図１での乱数記憶部１０１に相当）から合計Ｎ個の乱数値を読み込みその順番を変え（ステップ２０１：図１での乱数順序変更部１０２の機能）、次に得られた乱数（群）の個々の要素の正負（極性）をランダムに設定する（乱数的に変える）。換言すると、乱数の個々の要素の正負を無秩序に反転させる（ステップ２０２：図１の乱数極性変更部１０３の機能）。さらに、こうして極性をランダムに設定した乱数に、（Ｔ×Ｍ÷Ｒ÷Ｎ）の０．５乗を乗じる（ステップ２０３：図１の乱数振幅変更部１０４の機能）ことにより、自乗和がＴとなるＮ個の乱数を得て出力する（ステップ２０４）。
【００３４】
本発明の概念を要約すると、エネルギが一定な乱数の組を複数組あらかじめ記憶しておき、その中からランダムに乱数の組を取り出し、取り出した組の数に応じて乱数の振幅を変更することで特定エネルギを持つ乱数系列を出力する。この時、乱数系列の乱数性を高めるために、更に乱数値の配置をランダムに入れ替えたり、乱数値の極性をランダムにするなど、エネルギが変わらない範囲での撹拌処理を行う。なお、必要とされる乱数性の度合いに応じて、必要な撹拌の度合いを変えることができる。すなわち、乱数の配置のみ変更し極性を変更しなくても、乱数の極性のみ変更し配置を変更しなくても、更には乱数の配置および極性のどちらも変更しない構成を乱数性に対応して適宜採用すれば良い。
【００３５】
続いて本実施の形態での実際の動作例を具体的数値を用いて説明する。ここでは一例として、合計エネルギが１．０となるような１２個の乱数Ｑ（１〜１２）を求める。乱数記憶部１０１に自乗和が１．０となるような４個の乱数値の組が１６組記憶されているとする。つまり、既述説明におけるＴ＝１．０、Ｎ＝１２、Ｒ＝１．０、Ｍ＝４とする。
【００３６】
乱数記憶部１０１には以下のような４個の乱数値の組が１６組記憶されているものとする。
組１：0.449178, 0.530043, -0.343382, -0.631966
組２：0.523504, -0.515483, 0.468504, -0.490637
組３：-0.677804, -0.575877, -0.279915, -0.361380
組４：-0.612246, -0.182140, 0.010700, -0.769328
組５：-0.432675, 0.461407, 0.568505, -0.526021
組６：-0.586134, -0.565348, 0.493822, 0.304908
組７：0.026400, 0.564321, -0.034952, -0.824392
組８：0.775515, 0.228656, 0.587243, 0.037915
組９：0.572206, 0.581480, -0.013562, -0.578167
組１０：-0.640152, 0.282552, -0.038365, -0.713371
組１１：0.445407, 0.168814, -0.800180, -0.364454
組１２：0.171674, 0.343287, 0.198769, 0.901761
組１３：0.487925, -0.799682, 0.229361, 0.264257
組１４：-0.165260, 0.747040, 0.064510, -0.640671
組１５：0.521080, 0.600138, 0.049803, 0.604839
組１６：0.308102, -0.285716, 0.279905, 0.863188
【００３７】
乱数順序変更部１０２では、Ｎ個の乱数、つまり１２個の乱数を生成するために乱数記憶部１０１からランダムに３つの組の乱数値（合計１２乱数値）を読み出す。ここでは組２、組５、組１４がランダムに選択され順に読み出されたとする。
組２：0.523504, -0.515483, 0.468504, -0.490637
組５：-0.432675, 0.461407, 0.568505, -0.526021
組１４：-0.165260, 0.747040, 0.064510, -0.640671
【００３８】
これらの１２個の乱数値をランダムに並び変えて、１２個の乱数値Ｑ１（１〜１２）を生成する。ここではＱ１（１〜１２）が以下のようになったと仮定する。これが乱数順序変更部１０２の出力となる。
Ｑ１（１）＝0.468504
Ｑ１（２）＝-0.515483
Ｑ１（３）＝0.523504
Ｑ１（４）＝0.064510
Ｑ１（５）＝-0.432675
Ｑ１（６）＝0.461407
Ｑ１（７）＝-0.526021
Ｑ１（８）＝-0.165260
Ｑ１（９）＝0.747040
Ｑ１（１０）＝0.568505
Ｑ１（１１）＝-0.640671
Ｑ１（１２）＝-0.490637
【００３９】
次段の乱数極性変更部１０３では、乱数Ｑ１（１〜１２）の極性のみをランダムに設定する。極性を変更して得られた乱数Ｑ１（１〜１２）を乱数振幅変更部１０４へ出力する。ここでは、Ｑ１（１〜１２）が以下のような値（極性のみランダムに変更）になったとする。
Ｑ１（１）＝0.468504
Ｑ１（２）＝0.515483
Ｑ１（３）＝0.523504
Ｑ１（４）＝-0.064510
Ｑ１（５）＝-0.432675
Ｑ１（６）＝-0.461407
Ｑ１（７）＝0.526021
Ｑ１（８）＝-0.165260
Ｑ１（９）＝-0.747040
Ｑ１（１０）＝-0.568505
Ｑ１（１１）＝ -0.640671
Ｑ１（１２）＝0.490637
【００４０】
乱数振幅変更部１０４は、乱数Ｑ１（１〜１２）に正規化係数Ｓを乗じて乱数Ｑ（１〜１２）を求める。ここで、正規化係数Ｓは（Ｔ×Ｍ÷Ｒ÷Ｎ）を０．５乗して求める。ここでは、Ｔ＝１．０、Ｒ＝１．０、Ｍ＝４は定数であるため、正規化係数Ｓは（１．０×４÷１．０÷Ｎ）の０．５乗、つまり、（４÷Ｎ）の０．５乗として求められる。また、Ｎは正の整数であり、一般的な用途では値域を１〜１００程度の小さな範囲に限定できるため、Ｎの取り得る全ての値に対して予め（４÷Ｎ）の０．５乗を計算してメモリに記憶しておけば、Ｎの値を引数とする表参照で正規化係数Ｓを得ることができる。ここではＮ＝１２であるため、正規化係数Ｓは（１÷３）の０．５乗＝０．５７７３５０が、表参照で得られることとなる。
【００４１】
こうして求めた正規化係数ＳをＱ１（１〜１２）に乗じることにより、合計エネルギが１．０となる、以下のような１２個の乱数Ｑ（１〜１２）を得ることができる。
Ｑ（１）＝0.270491
Ｑ（２）＝0.297614
Ｑ（３）＝0.302245
Ｑ（４）＝-0.037245
Ｑ（５）＝-0.249805
Ｑ（６）＝-0.266393
Ｑ（７）＝0.303698
Ｑ（８）＝-0.095413
Ｑ（９）＝-0.431304
Ｑ（１０）＝-0.328227
Ｑ（１１）＝-0.369892
Ｑ（１２）＝0.283269
【００４２】
以上説明した、実施の形態における効果について説明する。上述実施の形態による乱数生成装置では、合計エネルギＲが一定数となるように決定された乱数の組を複数組記憶した乱数記憶部（図１の１０１）を備え、この乱数記憶部から読み込んだ１つ以上の乱数値の組を基に生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）を０．５乗した値を乗算し出力する構成としたから、従来技術では必要とした正規化係数Ｓを求めるための除算および０．５乗演算を使用せずに簡単な乗算処理のみを用いて、合計エネルギが入力された所望値となる乱数を求めることができ、乱数生成装置の回路規模を小さくできる。
【００４３】
〔実施の形態：２〕次に、本発明の第二の実施の形態を図３のブロック図を用いて説明する。図３を参照すると、本発明の第二の実施の形態は、乱数記憶部３０１と、乱数順序変更部３０２と、乱数振幅変更部３０４とから構成される。既述した第一の実施の形態との違いは、乱数極性変更部１０３が無いことだけである。つまり、本発明の第二の実施の形態では、乱数値の極性をランダムに変更する処理は行わない。その他の処理については、第一の実施の形態と同一である。第二の実施の形態においても、必要とする合計エネルギ（自乗和）がＴとなるようなＮ個の乱数Ｑ（１〜Ｎ）が得られる。個々の機能部についての説明は重複を避け省略する。
【００４４】
図４は本発明の第二の実施の形態の動作を示すフローチャートである。これらの処理過程についても、乱数の正負（極性）を乱数的に変える（無秩序に反転させる）図２のステップ２０２が図３には無い以外、対応する各ステップ（ステップ４０１、４０３、４０４）での処理内容は第一の実施の形態（図２）と同一である。第二の実施の形態の場合には、第一の実施の形態と比較すると乱数性は低くなるが、処理が少なくなっている分だけ乱数生成装置の回路規模をさらに小さくすることができる。
【００４５】
〔実施の形態：３〕更に、本発明の第三の実施の形態について図５のブロック図を用いて説明する。図５を参照すると、本発明の第三の実施の形態は、乱数記憶部５０１と、乱数生成部５０２と、乱数極性変更部５０３と乱数振幅変更部５０４とから構成される。本発明の第一の実施の形態との違いは乱数順序変更部１０２の替わりに乱数生成部５０２を用いていことである。乱数生成部５０２は乱数順序変更機能のみ持たない。つまり、本発明の第三の実施の形態では、乱数値の順序をランダムに変更せず、乱数記憶部５０１から読み出してきた乱数をそのままの順序で使用する。第一の実施の形態と比較すると乱数性は低くなるが、処理が少なくなるために装置規模をさらに小さくすることができる。その他の処理については、第一の実施の形態と同一である。
【００４６】
図６は本発明の第三の実施の形態の動作を示すフローチャートである。こちらについても、ステップ６０１が図２のステップ２０１と比較して乱数の順序を変更する処理を行わない点以外、各ステップ（ステップ６０２、６０３、６０４）での処理内容は第一の実施の形態（図２）と同一である。
【００４７】
以上説明した、本発明の第二・第三の実施の形態においても、乱数生成装置が、合計エネルギＲが一定数となるように決定された乱数の組を複数組記憶した乱数記憶部（図３の３０１、図５の５０１）を備え、この乱数記憶部から読み込んだ１つ以上の乱数値の組を基に生成したＮ個の乱数値に（Ｔ×Ｍ÷Ｒ÷Ｎ）を０．５乗した値を乗算し出力する構成としているので、第一の実施の形態と同様に簡単な乗算処理のみで所望条件のを求めることができ、更には乱数生成装置の回路規模を小さくすることができる。
【００４８】
なお、各実施の形態Ｎの値に対応付けて乗算すべき値を予め求め対応表として保持しておきＮを引数として表参照することで
【００４９】
なお、本発明は以上説明した各実施の形態に限定されず、発明の趣旨の範囲内で発展させた形で適用できることは言うまでもない。例えば、例示した実施の形態では、Ｎの値に対応付けて乗算すべき正規化係数Ｓを予め求め対応表として保持しておきＮを引数として表参照することで決定しているが、表参照によらず演算で求めるようにしても良い。
【００５０】
以上説明した本発明による乱数生成装置を利用して、前述したようなＰＮＳを用いたオーディオ符号化装置を構成しても良く、このような本発明のオーディオ符号化装置は小さな回路規模でＰＮＳ機能を実現でき小形化が可能になる。
【００５１】
【発明の効果】
本発明の効果は、小さな装置規模で所定エネルギを持つ乱数値系列を生成できることにある。その理由は、合計エネルギＲが一定数となるような乱数の組を記憶した乱数記憶部（図１の１０１）を備え、正規化係数Ｓを除算および０．５乗演算を使用せずに簡単な乗算処理で求めているためである。
【図面の簡単な説明】
【図１】本発明の第一の実施の形態を示すブロック図である。
【図２】本発明の第一の実施の形態の動作を示すフローチャートである。
【図３】本発明の第二の実施の形態を示すブロック図である。
【図４】本発明の第二の実施の形態の動作を示すフローチャートである。
【図５】本発明の第三の実施の形態を示すブロック図である。
【図６】本発明の第三の実施の形態の動作を示すフローチャートである。
【図７】従来の一般的な乱数生成装置を示すブロック図である。
【符号の説明】
１０１、３０１、５０１…乱数記憶部
１０２、３０２…乱数順序変更部
１０３、５０３…乱数極性変更部
１０４、３０４、５０４…乱数振幅変更部
５０２…乱数生成部
７０１…乱数発生部
７０２…乱ネルギ計算部
７０３…乱数正規化部
【図１】
0003661663.tif 000002
【図２】
0003661663.tif 000003
【図３】
0003661663.tif 000004
【図４】
0003661663.tif 000005
【図５】
0003661663.tif 000006
【図６】
0003661663.tif 000007
【図７】
0003661663.tif 000008