CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使う適応線スペクトル強調器(ALE)のプログラム.ステップサイズパラメータをターミナルから変更できる. http://seminar.cqpub.co.jp/ccm/ES18-0020

Dependencies:   F746_GUI F746_SAI_IO mbed

Filter/GaussRand.hpp

Committer:
MikamiUitOpen
Date:
2018-09-04
Revision:
4:bde47691ec93
Parent:
0:c8e52f514e03

File content as of revision 4:bde47691ec93:

//---------------------------------------------------------
// 線形合同法による一様乱数を使い,中心極限定理を利用する正規乱数発生
//      <文献>
//      三上直樹:「アルゴリズム教科書」,第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_;
    };    
}