newest version,

Dependencies:   QEI mbed

Committer:
NickDGreg
Date:
Fri Oct 23 13:14:57 2015 +0000
Revision:
0:fc6fa085d591
Child:
1:5c1fc4e9401a
move_motor compiles, working on filter.  Cannot pass AnalogIn as input, says no default constructor. Cannot pass as pinName as analogIn declared in constructor cannot be seen  by methods; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
NickDGreg 0:fc6fa085d591 1 /*
NickDGreg 0:fc6fa085d591 2 * read_filter_emg.h
NickDGreg 0:fc6fa085d591 3 *
NickDGreg 0:fc6fa085d591 4 * Created on: Oct 14, 2015
NickDGreg 0:fc6fa085d591 5 * Author: User
NickDGreg 0:fc6fa085d591 6 */
NickDGreg 0:fc6fa085d591 7
NickDGreg 0:fc6fa085d591 8 #ifndef READ_FILTER_EMG_H_
NickDGreg 0:fc6fa085d591 9 #define READ_FILTER_EMG_H_
NickDGreg 0:fc6fa085d591 10
NickDGreg 0:fc6fa085d591 11 class EMG {
NickDGreg 0:fc6fa085d591 12 public:
NickDGreg 0:fc6fa085d591 13 //create instance of the EMG class
NickDGreg 0:fc6fa085d591 14 EMG(PinName aI_, double &v1_, double &v2_);
NickDGreg 0:fc6fa085d591 15 double v1;
NickDGreg 0:fc6fa085d591 16 double v2;
NickDGreg 0:fc6fa085d591 17 double input_sample;
NickDGreg 0:fc6fa085d591 18 double filtered_sample;
NickDGreg 0:fc6fa085d591 19
NickDGreg 0:fc6fa085d591 20 //reads emg value and saves as input_sample
NickDGreg 0:fc6fa085d591 21 void sample();
NickDGreg 0:fc6fa085d591 22
NickDGreg 0:fc6fa085d591 23 /*general biquad function to be used in the filtering
NickDGreg 0:fc6fa085d591 24 biquad coefficients are in the filter functions */
NickDGreg 0:fc6fa085d591 25 double biquad(double u, double &v1, double &v2, const double a1,
NickDGreg 0:fc6fa085d591 26 const double a2, const double b0, const double b1, const double b2);
NickDGreg 0:fc6fa085d591 27
NickDGreg 0:fc6fa085d591 28 //20 hz highpass filter contains 3 biquads. Returns filtered value
NickDGreg 0:fc6fa085d591 29 double highpass_filter(double hpInput);
NickDGreg 0:fc6fa085d591 30
NickDGreg 0:fc6fa085d591 31 //Rectify the input (take absolute value). Input is output of highpass
NickDGreg 0:fc6fa085d591 32 double rectify(double rcInput);
NickDGreg 0:fc6fa085d591 33
NickDGreg 0:fc6fa085d591 34 //6 hz low pass filter, contains 3 biquads, input output of rectify
NickDGreg 0:fc6fa085d591 35 double lowpass_filter(double lpInput);
NickDGreg 0:fc6fa085d591 36
NickDGreg 0:fc6fa085d591 37 //function containing all three filter steps. Input raw signal value, output is filtered envelope value
NickDGreg 0:fc6fa085d591 38 double filter(double input);
NickDGreg 0:fc6fa085d591 39 };
NickDGreg 0:fc6fa085d591 40
NickDGreg 0:fc6fa085d591 41 #endif /* READ_FILTER_EMG_H_ */
NickDGreg 0:fc6fa085d591 42