Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope mbed-dsp mbed
Fork of P5-2 by
Revision 12:8a30e43337bb, committed 2014-10-16
- Comitter:
- DominiqueC
- Date:
- Thu Oct 16 10:11:07 2014 +0000
- Parent:
- 11:a598cb27907f
- Child:
- 13:1f0ac2425368
- Commit message:
- lowpass toegevoegd
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Oct 16 09:47:54 2014 +0000
+++ b/main.cpp Thu Oct 16 10:11:07 2014 +0000
@@ -25,9 +25,14 @@
float notch_states[4];
arm_biquad_casd_df1_inst_f32 highpass;
//constants for 5Hz highpass
-float highpass_const[] = {0.8948577513857248, -1.7897155027714495, 0.8948577513857248, 0.8008009266036016};
+float highpass_const[] = {0.8948577513857248, -1.7897155027714495, 0.8948577513857248, -1.7786300789392977, 0.8008009266036016};
//state values
float highpass_states[4];
+//constants for 80Hz lowpass
+arm_biquad_casd_df1_inst_f32 lowpass;
+float lowpass_const[] = {0.6389437261127493, 1.2778874522254986, 0.6389437261127493, 1.1429772843080919, 0.41279762014290533};
+//state values
+float lowpass_states[4];
void looper()
@@ -39,6 +44,7 @@
float filtered_emg_abs;
float filtered_emg_env;
float emg_value_f32;
+ float filtered_emg_lowpass;
/*put raw emg value both in red and in emg_value*/
emg_value = emg0.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
emg_value_f32 = emg0.read();
@@ -46,14 +52,15 @@
//process emg
arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32, &filtered_emg, 1 );
arm_biquad_cascade_df1_f32(¬ch, &filtered_emg, &filtered_emg_notch, 1 );
- filtered_emg_abs = fabs(filtered_emg_notch);
+ arm_biquad_cascade_df1_f32(¬ch, &filtered_emg_notch, &filtered_emg_lowpass, 1 );
+ filtered_emg_abs = fabs(filtered_emg_lowpass);
scope.set(0,emg_value); //uint value
scope.set(1,filtered_emg); //processed float
scope.set(2,filtered_emg_notch);
scope.set(3,filtered_emg_abs);
- scope.set(4,avg1);
+ scope.set(4,filtered_emg_lowpass);
scope.send();
}
@@ -63,6 +70,7 @@
//set up filters. Use external array for constants
arm_biquad_cascade_df1_init_f32(¬ch,1 , notch_const, notch_states);
arm_biquad_cascade_df1_init_f32(&highpass,1 ,highpass_const,highpass_states);
+ arm_biquad_cascade_df1_init_f32(&lowpass,1 ,lowpass_const,lowpass_states);
log_timer.attach(looper, 0.005);
while(1) //Loop
