The experiment using this program is introduced on "Interface" No.12, CQ publishing Co.,Ltd, 2014. 本プログラムを使った実験は,CQ出版社のインターフェース 2014年12月号で紹介しています.
Dependencies: DSProcessingIO mbed
FIR_Symmetry.hpp@0:4498a5360dde, 2014-07-15 (annotated)
- Committer:
- CQpub0Mikami
- Date:
- Tue Jul 15 08:21:30 2014 +0000
- Revision:
- 0:4498a5360dde
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CQpub0Mikami | 0:4498a5360dde | 1 | //-------------------------------------------------------------- |
CQpub0Mikami | 0:4498a5360dde | 2 | // FIR filter ---- Symmetry structure |
CQpub0Mikami | 0:4498a5360dde | 3 | // Copyright (c) 2014 MIKAMI, Naoki, 2014/06/20 |
CQpub0Mikami | 0:4498a5360dde | 4 | //-------------------------------------------------------------- |
CQpub0Mikami | 0:4498a5360dde | 5 | |
CQpub0Mikami | 0:4498a5360dde | 6 | #ifndef FIR_SYMMETRY_HPP |
CQpub0Mikami | 0:4498a5360dde | 7 | #define FIR_SYMMETRY_HPP |
CQpub0Mikami | 0:4498a5360dde | 8 | |
CQpub0Mikami | 0:4498a5360dde | 9 | #include "mbed.h" |
CQpub0Mikami | 0:4498a5360dde | 10 | #include "FirBaseClass.hpp" |
CQpub0Mikami | 0:4498a5360dde | 11 | |
CQpub0Mikami | 0:4498a5360dde | 12 | namespace Mikami |
CQpub0Mikami | 0:4498a5360dde | 13 | { |
CQpub0Mikami | 0:4498a5360dde | 14 | template<int order> class FirSymmetry : public FirBase<order> |
CQpub0Mikami | 0:4498a5360dde | 15 | { |
CQpub0Mikami | 0:4498a5360dde | 16 | public: |
CQpub0Mikami | 0:4498a5360dde | 17 | using FirBase<order>::xn_; |
CQpub0Mikami | 0:4498a5360dde | 18 | |
CQpub0Mikami | 0:4498a5360dde | 19 | FirSymmetry(const float hk[]) : FirBase<order>(hk) {} |
CQpub0Mikami | 0:4498a5360dde | 20 | |
CQpub0Mikami | 0:4498a5360dde | 21 | virtual float Execute(float xin) |
CQpub0Mikami | 0:4498a5360dde | 22 | { |
CQpub0Mikami | 0:4498a5360dde | 23 | xn_[0] = xin; |
CQpub0Mikami | 0:4498a5360dde | 24 | |
CQpub0Mikami | 0:4498a5360dde | 25 | float acc = hm_[order/2]*xn_[order/2]; |
CQpub0Mikami | 0:4498a5360dde | 26 | for (int k=0; k<order/2; k++) |
CQpub0Mikami | 0:4498a5360dde | 27 | acc = acc + hm_[k]*(xn_[k] + xn_[order-k]); |
CQpub0Mikami | 0:4498a5360dde | 28 | |
CQpub0Mikami | 0:4498a5360dde | 29 | FirBase<order>::Move(); |
CQpub0Mikami | 0:4498a5360dde | 30 | |
CQpub0Mikami | 0:4498a5360dde | 31 | return acc; |
CQpub0Mikami | 0:4498a5360dde | 32 | } |
CQpub0Mikami | 0:4498a5360dde | 33 | }; |
CQpub0Mikami | 0:4498a5360dde | 34 | } |
CQpub0Mikami | 0:4498a5360dde | 35 | #endif // FIR_SYMMETRY_HPP |
CQpub0Mikami | 0:4498a5360dde | 36 |