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

Dependencies:   F746_GUI F746_SAI_IO mbed

Committer:
MikamiUitOpen
Date:
Tue Sep 04 05:52:44 2018 +0000
Revision:
4:bde47691ec93
Parent:
0:c8e52f514e03
5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:c8e52f514e03 1 //-------------------------------------------------------------
MikamiUitOpen 0:c8e52f514e03 2 // 線形合同法による一様乱数発生
MikamiUitOpen 0:c8e52f514e03 3 // <文献>
MikamiUitOpen 0:c8e52f514e03 4 // 三上直樹:「アルゴリズム教科書」,第11章,CQ出版,1996年.
MikamiUitOpen 0:c8e52f514e03 5 // float 型のビット配置が IEEE の浮動小数点数と同じ場合にのみ有効
MikamiUitOpen 0:c8e52f514e03 6 //
MikamiUitOpen 0:c8e52f514e03 7 // 2018/02/15, Copyright (c) 2018 MIKAMI, Naoki
MikamiUitOpen 0:c8e52f514e03 8 //-------------------------------------------------------------
MikamiUitOpen 0:c8e52f514e03 9
MikamiUitOpen 0:c8e52f514e03 10 #include "mbed.h"
MikamiUitOpen 0:c8e52f514e03 11
MikamiUitOpen 0:c8e52f514e03 12 namespace Mikami
MikamiUitOpen 0:c8e52f514e03 13 {
MikamiUitOpen 0:c8e52f514e03 14 class Random
MikamiUitOpen 0:c8e52f514e03 15 {
MikamiUitOpen 0:c8e52f514e03 16 public:
MikamiUitOpen 0:c8e52f514e03 17 Random() : seed_(901253) {}
MikamiUitOpen 0:c8e52f514e03 18 Random(uint32_t x) : seed_(x) {}
MikamiUitOpen 0:c8e52f514e03 19
MikamiUitOpen 0:c8e52f514e03 20 // 0 以上 1 未満の一様乱数生成
MikamiUitOpen 0:c8e52f514e03 21 float Next()
MikamiUitOpen 0:c8e52f514e03 22 {
MikamiUitOpen 0:c8e52f514e03 23 seed_ = 1664525*seed_ + 1013904223;
MikamiUitOpen 0:c8e52f514e03 24 var.usl = seed_ >> 9; // 指数部を 0 にする
MikamiUitOpen 0:c8e52f514e03 25 var.usl |= 0x3f800000; // 指数部: 1~2 の値に対応
MikamiUitOpen 0:c8e52f514e03 26 return var.flt - 1.0f;
MikamiUitOpen 0:c8e52f514e03 27 }
MikamiUitOpen 0:c8e52f514e03 28
MikamiUitOpen 0:c8e52f514e03 29 private:
MikamiUitOpen 0:c8e52f514e03 30 uint32_t seed_; // 乱数の種
MikamiUitOpen 0:c8e52f514e03 31 union bit32w { uint32_t usl; float flt; } var;
MikamiUitOpen 0:c8e52f514e03 32 };
MikamiUitOpen 0:c8e52f514e03 33 }