filter functions within a filter class, plus corresponding h file to be included in main programme

Dependencies:   mbed

Committer:
NickDGreg
Date:
Fri Oct 16 09:37:58 2015 +0000
Revision:
2:2fce57d3d64a
Parent:
read_emg_sensors.h@0:fe10b6dc2ba1
changed names of files to match include statements

Who changed what in which revision?

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