CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使う適応線スペクトル強調器(ALE)のプログラム.ステップサイズパラメータをターミナルから変更できる. http://seminar.cqpub.co.jp/ccm/ES18-0020
Dependencies: F746_GUI F746_SAI_IO mbed
Diff: Filter/GaussRand.hpp
- Revision:
- 0:c8e52f514e03
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Filter/GaussRand.hpp Fri Mar 02 06:43:33 2018 +0000 @@ -0,0 +1,36 @@ +//--------------------------------------------------------- +// 線形合同法による一様乱数を使い,中心極限定理を利用する正規乱数発生 +// <文献> +// 三上直樹:「アルゴリズム教科書」,第11章,CQ出版,1996年. +// +// 2018/03/02, Copyright (c) 2018 MIKAMI, Naoki +//--------------------------------------------------------- + +#include "Random.hpp" + +namespace Mikami +{ + class GaussRand + { + public: + // sigma 標準偏差 + // av 平均値 + GaussRand(float sigma, float av) + : sigma_(sigma), av_(av), rd_(901253) {} + GaussRand(float sigma, float av, uint32_t x) + : sigma_(sigma), av_(av), rd_(x) {} + + // 中心極限定理を利用する正規乱数発生 + float Next() + { + float gauss = 0; + for (int n=0; n<12; n++) gauss += rd_.Next(); + return sigma_*(gauss - 6.0f) + av_; + } + + private: + float sigma_; + float av_; + Mikami::Random rd_; + }; +} \ No newline at end of file