ファンクション・ジェネレータ

Dependencies:   mbed SerialTxRxIntr MyTicker7 Array_Matrix

Committer:
MikamiUitOpen
Date:
Wed Dec 23 01:07:09 2020 +0000
Revision:
1:ea5aa7f3d68c
Parent:
0:17c762b41fc7
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:17c762b41fc7 1 //---------------------------------------------------
MikamiUitOpen 0:17c762b41fc7 2 // 縦続形 IIR フィルタ(ヘッダ)
MikamiUitOpen 0:17c762b41fc7 3 //
MikamiUitOpen 0:17c762b41fc7 4 // 2020/05/30, Copyright (c) 2020 MIKAMI, Naoki
MikamiUitOpen 0:17c762b41fc7 5 //---------------------------------------------------
MikamiUitOpen 0:17c762b41fc7 6
MikamiUitOpen 0:17c762b41fc7 7 #ifndef IIR_CASCADE_HPP
MikamiUitOpen 0:17c762b41fc7 8 #define IIR_CASCADE_HPP
MikamiUitOpen 0:17c762b41fc7 9
MikamiUitOpen 0:17c762b41fc7 10 #include "Biquad.hpp"
MikamiUitOpen 0:17c762b41fc7 11 #include "Array.hpp" // Array クラスが定義されている
MikamiUitOpen 0:17c762b41fc7 12
MikamiUitOpen 0:17c762b41fc7 13 namespace Mikami
MikamiUitOpen 0:17c762b41fc7 14 {
MikamiUitOpen 0:17c762b41fc7 15 class IirCascade
MikamiUitOpen 0:17c762b41fc7 16 {
MikamiUitOpen 0:17c762b41fc7 17 public:
MikamiUitOpen 0:17c762b41fc7 18 // コンストラクタ
MikamiUitOpen 0:17c762b41fc7 19 IirCascade(int order = 0, const Biquad::Coefs ck[] = NULL,
MikamiUitOpen 0:17c762b41fc7 20 float g0 = 1);
MikamiUitOpen 0:17c762b41fc7 21
MikamiUitOpen 0:17c762b41fc7 22 // フィルタ処理を実行する
MikamiUitOpen 0:17c762b41fc7 23 float Execute(float xn);
MikamiUitOpen 0:17c762b41fc7 24
MikamiUitOpen 0:17c762b41fc7 25 // 係数の設定
MikamiUitOpen 0:17c762b41fc7 26 void SetCoefs(int order, const Biquad::Coefs ck[], float g0);
MikamiUitOpen 0:17c762b41fc7 27
MikamiUitOpen 0:17c762b41fc7 28 // 内部変数(遅延器)のクリア
MikamiUitOpen 0:17c762b41fc7 29 void Clear()
MikamiUitOpen 0:17c762b41fc7 30 { for (int k=0; k<hOrder_; k++) bq_[k].Clear(); }
MikamiUitOpen 0:17c762b41fc7 31
MikamiUitOpen 0:17c762b41fc7 32 private:
MikamiUitOpen 0:17c762b41fc7 33 int hOrder_; // 次数/2
MikamiUitOpen 0:17c762b41fc7 34 Array<Biquad> bq_; // Biquad クラスのオブジェクトの配列
MikamiUitOpen 0:17c762b41fc7 35 float g0_; // 利得定数
MikamiUitOpen 0:17c762b41fc7 36
MikamiUitOpen 0:17c762b41fc7 37 // コピー・コンストラクタ,代入演算子禁止禁止のため
MikamiUitOpen 0:17c762b41fc7 38 IirCascade(const IirCascade&);
MikamiUitOpen 0:17c762b41fc7 39 IirCascade& operator=(const IirCascade&);
MikamiUitOpen 0:17c762b41fc7 40 };
MikamiUitOpen 0:17c762b41fc7 41 }
MikamiUitOpen 0:17c762b41fc7 42 #endif // IIR_CASCADE_HPP