(57)【要約】【課題】正規分布乱数列を発生する乱数発生装置に関し、系列間の相関を回避した良質な正規分布乱数列を発生することができるようにする。【解決手段】線形合同法によるデジタル信号からなる３２ビット一様乱数列を並列生成して並列出力する３２ビット一様乱数発生器１−０〜１−５と、３２ビット一様乱数発生器１−０〜１−５から並列出力される６個の３２ビット一様乱数列のビットを並べ替えて１２個の１６ビット一様乱数列を生成するビット並べ替え器２と、ビット並べ替え器２から出力される１２個の１６ビット一様乱数列の同一項を総和演算して１６ビット正規分布乱数列を出力する加算器３を設ける。【選択図】        図１
2005038229.tif 000002
【特許請求の範囲】
【請求項１】
線形合同法による異なる複数の一様乱数列を発生する複数の一様乱数発生器と、
該複数の一様乱数発生器が発生する前記複数の一様乱数列を加算して正規分布乱数列を出力する加算器を有することを特徴とする乱数発生装置。
【請求項２】
線形合同法による異なる複数の一様乱数列を発生する複数の一様乱数発生器と、
該複数の一様乱数発生器が発生する前記複数の一様乱数列のビットを並べ替えて前記複数の一様乱数発生器が発生する前記複数の一様乱数列とは異なる複数の一様乱数列を出力するビット並べ替え器と、
該ビット並べ替え器が出力する複数の一様乱数列を加算して正規分布乱数列を出力する加算器を有することを特徴とする乱数発生装置。
【請求項３】
前記ビット並べ替え器は、前記複数の一様乱数発生器から出力される複数の一様乱数の下位ビットが前記ビット並べ替え器から出力される複数の一様乱数の下位ビットになるようにビットの並べ替えを行うことを特徴とする請求項２記載の乱数発生装置。
【請求項４】
前記加算器が出力する正規分布乱数列に係数を乗じて前記加算器が出力する正規分布乱数列の正規分布特性を可変する正規分布特性可変部を有することを特徴とする請求項１又は２記載の乱数発生装置。
【請求項５】
前記正規分布特性可変部から出力される正規分布乱数列のビット幅を所定幅に制御するリミット処理器を有することを特徴とする請求項４記載の乱数発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正規分布乱数列（正規分布特性を有する乱数列）を発生する乱数発生装置に関する。
【背景技術】
【０００２】
従来、正規分布乱数列を生成する方法として、例えば、Ｎ×Ｍビット長の生成多項式を持つＭ系列符号発生源のシフトレジスタのビットデータをランダムに並べ替え、これからＮビット×Ｍ個の一様乱数を取り出し、これらＮビット×Ｍ個の一様乱数の総和演算により正規分布乱数列を生成するという方法が知られている（例えば、特許文献１〜８参照）。
【特許文献１】特開平６−１３２８２５号公報
【特許文献２】特開平１０−１９７６１０号公報
【特許文献３】特開平１１−８５４７６号公報
【特許文献４】特開平１１−８５４７７号公報
【特許文献５】特開平１１−８５４７４号公報
【特許文献６】特開２００１−１２７５９７号公報
【特許文献７】特開２００３−２９９６４号公報
【特許文献８】特開平０３−１１７２０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
Ｍ系列符号発生源を用いた上述の方法により生成される正規分布乱数列は、完全にランダムな正規分布乱数列ではなく、系列間にある程度の相関が存在するという問題点がある。特に、フィードバックビットが０の間は、シフトレジスタ中の１の数は変化しないため、この場合は、前信号との相関が強くなる傾向がある。
【０００４】
本発明は、かかる点に鑑み、系列間の相関を回避した良質な正規分布乱数列を発生することができる乱数発生装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の乱数発生装置は、線形合同法により発生させた異なる複数の一様乱数列を加算することにより、又は、線形合同法により発生させた異なる複数の一様乱数列のビットを並べ替えた異なる複数の一様乱数列を加算することにより正規特性乱数列を発生するというものである。
【発明の効果】
【０００６】
本発明によれば、一様乱数列の生成方法として線形合同法を用いているので、Ｍ系列符号より生成される一様乱数列よりも良質の一様乱数列を生成することができ、系列間の相関を回避した良質な正規分布乱数列を生成することができる。
【発明を実施するための最良の形態】
【０００７】
（第１実施形態・・図１〜図３）
図１は本発明の第１実施形態の要部を示す回路図である。図１中、１−０〜１−５は線形合同法によるデジタル信号からなる３２ビット一様乱数列を並列生成して並列出力する３２ビット一様乱数発生器である。
【０００８】
２は３２ビット一様乱数発生器１−０〜１−５から並列出力される６個の３２ビット一様乱数列のビットを並べ替えて１２個の１６ビット一様乱数列を生成するビット並べ替え器、３はビット並べ替え器２から出力される１２個の１６ビット一様乱数列の同一項を総和演算して１６ビット正規分布乱数列を出力する加算器である。
【０００９】
３２ビット一様乱数発生器１−０〜１−５は、それぞれ、数１に示す漸化式に基づいて、線形合同法によるデジタル信号からなる３２ビット一様乱数列を並列生成して並列出力するものである。
【００１０】
【数１】
2005038229.tif 000003
【００１１】
但し、３２ビット一様乱数発生器１−０、１−１、１−２、１−３、１−４、１−５の初期値は、それぞれ、Ａnの系列Ａ0〜Ａ4294967299の0/6、1/6、2/6、3/6、4/6、5/6周期にあたるＡ0、Ａ715827883、Ａ1431655766、Ａ2147483649、Ａ2863311532、Ａ3579139415としている。
【００１２】
これは、３２ビット一様乱数発生器１−０〜１−５から出力される３２ビット一様乱数列間に十分な距離を置き、３２ビット一様乱数発生器１−０〜１−５から出力される３２ビット一様乱数列を相関の小さい乱数列とするためである。
【００１３】
図２は３２ビット一様乱数発生器１−０〜１−５の構成を示す回路図であり、３２ビット一様乱数発生器１−０〜１−５は、乗算器４、下位３２ビット選択器５、加算器６、セレクタ７及びレジスタ８を有している。
【００１４】
乗算器４は“1664525”とレジスタ８の保持出力とを乗算するものである。下位３２ビット選択器５は乗算器４の出力から下位３２ビットを選択して出力するものである。加算器６は下位３２ビット選択器５の出力と“1013904223”とを加算するものである。
【００１５】
セレクタ７は、加算器６の出力又は初期値を選択して出力するものであり、動作開始時には初期値を選択し、動作開始後は加算器６の出力を選択するように初期化信号により制御される。
【００１６】
レジスタ８は、その保持出力をセレクタ７の出力で更新するものであり、クロックの立ち上がりタイミングに同期して３２ビット一様乱数を出力する。なお、数１に示す系は、２32の剰余系であるから、剰余演算回路を必要とせず、ハードウエア化に適している。
【００１７】
また、ビット並べ替え器２は、数２に示すビット並べ替え式に基づいて、３２ビット一様乱数発生器１−０〜１−５から並列出力される６個の３２ビット一様乱数列のビットの並べ替えを行い、１２個の１６ビット一様乱数列を出力する。
【００１８】
【数２】
2005038229.tif 000004
【００１９】
数２において、Ｘp［ｑ］（但し、ｐ＝０、１、…、５。ｑ＝０、１、…、３１）は３２ビット一様乱数発生器１−ｐから出力される３２ビット一様乱数のｑビット目の値、Ｙi［ｊ］（但し、ｉ＝０、１、…、１１。ｊ＝０、１、…、１５）はビット並べ替え器２から出力されるｉ番目の１６ビット一様乱数のｊビット目の値、
【００２０】
【数３】
2005038229.tif 000005
【００２１】
はｉ／６の整数部である。なお、Ｘp［ｑ］ではＸp［０］が最下位ビット、Ｙi［ｊ］ではＹi［０］が最下位ビットである。
【００２２】
図３はビット並べ替え器２の出力Ｙ0〜Ｙ11を示す図である。即ち、ビット並べ替え器２では、３２ビット一様乱数発生器１−０〜１−５から出力される６個の３２ビット一様乱数Ｘ0〜Ｘ5の下位ビットが１２個の１６ビット一様乱数Ｙ0〜Ｙ11の下位ビットになるようにしている。
【００２３】
これは、線形合同法による一様乱数は上位ビットと比較して下位ビットの方が乱数列間の相関が大きいという特性を持っているため、６個の３２ビット一様乱数Ｘ0〜Ｘ5の下位ビットが１２個の１６ビット一様乱数Ｙ0〜Ｙ11の下位ビットになるようにしてビット重みを小さくすることにより、加算後の１６ビット正規分布乱数列への影響を小さくするためである。
【００２４】
以上のように、本発明の第１実施形態によれば、３２ビット一様乱数列の生成手段として線形合同法による一様乱数列を生成する３２ビット一様乱数発生器１−０〜１−５を設けているので、Ｍ系列符号より生成される３２ビット一様乱数列よりも良質の３２ビット一様乱数列を生成することができる。
【００２５】
更に、ビット並べ替え器２を設けているので、３２ビット一様乱数発生器１−０〜１−５から出力される３２ビット一様乱数列を更に系列間の相関の小さい１６ビット一様乱数列とすることができる。
【００２６】
したがって、本発明の第１実施形態によれば、Ｍ系列符号より生成される１６ビット一様乱数列よりも良質の１６ビット一様乱数列を生成することができ、系列間の相関を回避した良質な１６ビット正規分布乱数列を生成することができる。
【００２７】
なお、ビット並べ替え器２を設けずに、線形合同法による１６ビット一様乱数列を生成する複数の１６ビット一様乱数発生器を設け、これら複数の１６ビット一様乱数発生器から出力される複数の１６ビット一様乱数列を加算するようにしても良い。
【００２８】
（第２実施形態・・図４）
図４は本発明の第２実施形態の要部を示す回路図である。図４中、９は本発明の第１実施形態からなる正規分布乱数発生部、１０は正規分布乱数発生部９から出力される１６ビット正規分布乱数列を加工して所望の正規分布特性を有する所定ビット幅、例えば、１０ビット幅の正規分布乱数を出力する正規分布乱数加工部であり、１１は乗算器、１２は右シフト・丸め処理器、１３はリミット処理器である。
【００２９】
本実施形態では、正規分布乱数発生部９から出力される１６ビット正規分布乱数に対して所望の正規分布特性に合わせて係数ｋが乗じられる。ここで、正規分布乱数発生部９から出力される１６ビット正規分布乱数列の標準偏差をσs、所望の正規分布特性を持つ１６ビット正規分布乱数列の標準偏差をσとすると、係数ｋは、ｋ＝σ/σsで与えられる。
【００３０】
本実施形態では、乗算器１１と右シフト・丸め処理器１２で正規分布特性可変部が構成されており、正規分布乱数発生部９から出力される１６ビット正規分布乱数に対する係数ｋの乗算は、乗算器１１及び右シフト・丸め処理器１２を用いた固定小数点演算で行われる。
【００３１】
即ち、正規分布乱数加工部１０では、乗算器１１は、正規分布乱数発生部９から出力される１６ビット正規分布乱数に整数SCALEを乗じる。整数SCALEはｎビット幅（例えば、４ビット幅）の整数であり、SCALE＝round(k×２n)で与えられる。但し、round(x)は、xに最も近い整数を求める演算である。
【００３２】
右シフト・丸め処理器１２は乗算器１１の出力を入力してｎビット右シフト処理を行うと共に、乗算器１１の出力のｎ−１ビット目に１を加え、丸め処理（四捨五入）を行う。リミット処理器１３は、右シフト・丸め処理器１２の出力を入力してリミット処理を行い１０ビット正規分布乱数列を出力する。
【００３３】
本発明の第２実施形態によれば、Ｍ系列符号より生成される１６ビット一様乱数列よりも良質の１６ビット一様乱数列を生成することができ、系列間の相関を回避した良質かつ所望の正規分布特性を持つ１０ビット正規分布乱数列を生成することができる。
【００３４】
なお、ビット並べ替え器２を設けずに、線形合同法による１６ビット一様乱数列を生成する複数の１６ビット一様乱数発生器を設け、これら複数の１６ビット一様乱数発生器から出力される複数の１６ビット一様乱数列を加算するようにしても良い。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１実施形態の要部を示す回路図である。
【図２】本発明の第１実施形態が備える３２ビット一様乱数発生器の構成を示す回路図である。
【図３】本発明の第１実施形態が備えるビット並べ替え器の出力を示す図である。
【図４】本発明の第２実施形態の要部を示す回路図である。
【符号の説明】
【００３６】
１−０〜１−５…３２ビット一様乱数発生器
２…ビット並べ替え器
３…加算器
４…乗算器
５…下位３２ビット選択器
６…加算器
７…セレクタ
８…レジスタ
９…正規分布乱数発生部
１０…正規分布乱数加工部
１１…乗算器
１２…右シフト・丸め処理器
１３…リミット処理器
【図１】
2005038229.tif 000006
【図２】
2005038229.tif 000007
【図３】
2005038229.tif 000008
【図４】
2005038229.tif 000009