The experiment using this program is introduced on "Interface" No.12, CQ publishing Co.,Ltd, 2014. 本プログラムを使った実験は,CQ出版社のインターフェース 2014年12月号で紹介しています.

Dependencies:   DSProcessingIO mbed

Committer:
CQpub0Mikami
Date:
Tue Jul 29 06:54:25 2014 +0000
Revision:
1:bd300d649b1f
Parent:
0:4498a5360dde
ver.2

Who changed what in which revision?

UserRevisionLine numberNew 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