CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使うプログラム.1次IIRフィルタの係数をターミナルから変更できる. http://seminar.cqpub.co.jp/ccm/ES18-0020

Dependencies:   mbed Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG

Filter/IIR1_Variable.hpp

Committer:
MikamiUitOpen
Date:
2017-11-08
Revision:
2:aa11055138a2
Parent:
0:47718d3154d9

File content as of revision 2:aa11055138a2:

//---------------------------------------------------
//  一次の IIR フィルタ ― 係数可変
//
//  2017/09/24, Copyright (c) 2017 MIKAMI, Naoki
//---------------------------------------------------

#ifndef IIR_1ST_VARIABLE_HPP
#define IIR_1ST_VARIABLE_HPP

#include "mbed.h"

class Iir1Variable
{
public:
    Iir1Variable(float a1)
        : a1_(a1), b0_(1.0f - a1), yn_(0) {}

    // フィルタ処理を実行する
    int16_t Execute(int16_t xn)
    {
        yn_ = a1_*yn_ + b0_*xn;

        return (int16_t)yn_;
    }
    
    void SetCoefs(float a1)
    {
        a1_ = a1;
        b0_ = 1.0f - a1;
    }

private:
    float a1_;  // 係数
    float b0_;  // 係数
    float yn_;
};
#endif  // IIR_1ST_VARIABLE_HPP