Margot Rutgers / Mbed 2 deprecated SpaghettiFilter

Dependencies:   HIDScope mbed

Fork of Biquad_Hidscope by Margot Rutgers

Committer:
margotr
Date:
Thu Oct 15 10:29:40 2015 +0000
Revision:
1:15de82403661
Parent:
0:17b00659dfd2
Filter 3 levert een 0 signaal op. Filter 1 en 2 leveren een aardig chill signaal op.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
margotr 0:17b00659dfd2 1
margotr 0:17b00659dfd2 2 #include "mbed.h"
margotr 0:17b00659dfd2 3 #include "HIDScope.h"
margotr 0:17b00659dfd2 4
margotr 0:17b00659dfd2 5
margotr 0:17b00659dfd2 6 Serial pc(USBTX, USBRX);
margotr 0:17b00659dfd2 7
margotr 0:17b00659dfd2 8 HIDScope scope(1);
margotr 0:17b00659dfd2 9 Ticker scopeTimer;
margotr 0:17b00659dfd2 10
margotr 0:17b00659dfd2 11 // Read the analog input
margotr 0:17b00659dfd2 12 AnalogIn ain(A0);
margotr 0:17b00659dfd2 13
margotr 0:17b00659dfd2 14
margotr 0:17b00659dfd2 15 double v1, v2;
margotr 0:17b00659dfd2 16
margotr 0:17b00659dfd2 17
margotr 0:17b00659dfd2 18
margotr 1:15de82403661 19
margotr 1:15de82403661 20 double biquadFilter1() {
margotr 0:17b00659dfd2 21
margotr 1:15de82403661 22 double v = ain.read() - -1.50873319442*v1 - 0.87912966448*v2;
margotr 1:15de82403661 23 double y = 0.939565*v + -1.508733463805113*v1 + 0.939565*v2;
margotr 0:17b00659dfd2 24 v2 = v1;
margotr 0:17b00659dfd2 25 v1 = v;
margotr 0:17b00659dfd2 26 return y;
margotr 0:17b00659dfd2 27
margotr 0:17b00659dfd2 28 };
margotr 0:17b00659dfd2 29
margotr 1:15de82403661 30 double biquadFilter2() {
margotr 1:15de82403661 31
margotr 1:15de82403661 32 double v = biquadFilter1() - -1.48309573229*v1 - 0.93337603426*v2;
margotr 1:15de82403661 33 double y = 0.947499*v + -1.521473712007025*v1 + 0.947499*v2;
margotr 1:15de82403661 34 v2 = v1;
margotr 1:15de82403661 35 v1 = v;
margotr 1:15de82403661 36 return y;
margotr 1:15de82403661 37
margotr 1:15de82403661 38 };
margotr 1:15de82403661 39
margotr 1:15de82403661 40 /*double biquadFilter3() {
margotr 1:15de82403661 41
margotr 1:15de82403661 42 double v = biquadFilter2() - -1.61935587231*v1 - 0.94238300217*v2;
margotr 1:15de82403661 43 double y = 0.987787*v + -1.586167324252884*v1 + 0.987787*v2;
margotr 1:15de82403661 44 v2 = v1;
margotr 1:15de82403661 45 v1 = v;
margotr 1:15de82403661 46 return y;
margotr 1:15de82403661 47
margotr 1:15de82403661 48 }; */
margotr 1:15de82403661 49
margotr 0:17b00659dfd2 50 void scopeSend()
margotr 0:17b00659dfd2 51 {
margotr 1:15de82403661 52 scope.set(0,biquadFilter3b());
margotr 0:17b00659dfd2 53 scope.send();
margotr 0:17b00659dfd2 54
margotr 0:17b00659dfd2 55 }
margotr 0:17b00659dfd2 56
margotr 0:17b00659dfd2 57 int main()
margotr 0:17b00659dfd2 58 {
margotr 0:17b00659dfd2 59
margotr 0:17b00659dfd2 60 // Attach the data read and send function at 100 Hz
margotr 0:17b00659dfd2 61 scopeTimer.attach_us(&scopeSend, 1e4);
margotr 0:17b00659dfd2 62 pc.printf("foo!\n");
margotr 0:17b00659dfd2 63
margotr 0:17b00659dfd2 64 while(1) { }
margotr 0:17b00659dfd2 65 }