Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Committer:
Bartvaart
Date:
Tue Oct 06 13:18:52 2015 +0000
Revision:
3:344b173f85fe
Parent:
2:ae55928ff00f
gaat goed maar nog veel ruis

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bartvaart 0:557b1ff83a8a 1 #include "Filter.h"
Bartvaart 0:557b1ff83a8a 2
Bartvaart 2:ae55928ff00f 3 double Filter(double u, double &v1, double &v2, const double a1, const double a2, const double b0, const double b1, const double b2, const double gain){
Bartvaart 0:557b1ff83a8a 4 // volgens direct form 2, uit de embedded filtering and control sheets van T.J.W. Lankhorst
Bartvaart 0:557b1ff83a8a 5 // u = ingangssignaal (zonder filter)
Bartvaart 0:557b1ff83a8a 6 // v = tussentap
Bartvaart 0:557b1ff83a8a 7 // v1 = v bij u(x-1), dus v van 1 geleden
Bartvaart 0:557b1ff83a8a 8 // v2 = v bij u(x-2), dus v van 2 geleden
Bartvaart 0:557b1ff83a8a 9 // a1 en a2 variabele uit ASN filter, a0 =1
Bartvaart 0:557b1ff83a8a 10 // b0, b1, b2 variabele uit ASN filter
Bartvaart 0:557b1ff83a8a 11 // y = uitgangssignaal (gefilterd)
Bartvaart 0:557b1ff83a8a 12
Bartvaart 0:557b1ff83a8a 13 double v = u - a1 * v1 - a2 * v2;
Bartvaart 2:ae55928ff00f 14 double y = gain * (b0 * v + b1 * v1 + b2 * v2);
Bartvaart 0:557b1ff83a8a 15
Bartvaart 3:344b173f85fe 16 v2 = v1; // signalen doorschuiven, zodat bij de volgende input, de vorige waardes van v worden onthouden
Bartvaart 0:557b1ff83a8a 17 v1 = v;
Bartvaart 0:557b1ff83a8a 18
Bartvaart 0:557b1ff83a8a 19 return y;
Bartvaart 0:557b1ff83a8a 20 }