CQエレクトロニクス・セミナ「実習・マイコンを動かしながら学ぶディジタル・フィルタ」で使うプログラム.1次IIRフィルタの係数をターミナルから変更できる. http://seminar.cqpub.co.jp/ccm/ES18-0020
Dependencies: mbed Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG
Diff: Filter/IIR1_Variable.hpp
- Revision:
- 0:47718d3154d9
diff -r 000000000000 -r 47718d3154d9 Filter/IIR1_Variable.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Filter/IIR1_Variable.hpp Mon Oct 09 02:36:11 2017 +0000 @@ -0,0 +1,37 @@ +//--------------------------------------------------- +// 一次の 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 \ No newline at end of file