Changeset 147 in flair-src for trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp
- Timestamp:
- 02/28/17 12:45:08 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairFilter/src/ButterworthLowPass_impl.cpp
r15 r147 47 47 f = new PoleFilter(order); 48 48 49 if (T->Value() != 0) 49 if (T->Value() != 0) { 50 50 f->setup(1. / T->Value(), cutoff->Value()); 51 } 52 51 53 f->reset(); 52 54 53 55 first_update = true; 56 this->order=order; 54 57 } 55 58 … … 59 62 float result; 60 63 cvmatrix *input = (cvmatrix *)data; 61 62 if (T->ValueChanged() || cutoff->ValueChanged()) { 64 float delta_t; 65 66 if (T->ValueChanged()) { 63 67 if (T->Value() != 0) { 64 68 f->setup(1. / T->Value(), cutoff->Value()); 65 } else { 66 first_update = true; 69 settingsChanged(input->Value(0, 0)); 67 70 } 68 71 } 69 72 73 if (T->Value() == 0) { 74 delta_t = (float)(data->DataTime() - previous_time) / 1000000000.; 75 f->setup(1. / delta_t, cutoff->Value()); 76 } else { 77 delta_t=T->Value(); 78 } 79 70 80 // on prend une fois pour toute les mutex et on fait des accès directs 71 81 output->GetMutex(); 72 82 input->GetMutex(); 73 83 74 if (T->Value() == 0) { 75 float delta_t = (float)(data->DataTime() - previous_time) / 1000000000.; 84 if (cutoff->ValueChanged()) { 76 85 f->setup(1. / delta_t, cutoff->Value()); 86 settingsChanged(input->ValueNoMutex(0, 0)); 77 87 } 78 88 … … 90 100 previous_time = data->DataTime(); 91 101 } 102 103 //ne gere pas les oscillations (s'arrete des qu'une valeure est bonne a 5%) 104 void ButterworthLowPass_impl::settingsChanged(float inputValue) { 105 float result=f->filter(inputValue); 106 107 while(result<inputValue*0.95 || result>inputValue*1.05) { 108 result=f->filter(inputValue); 109 } 110 }
Note:
See TracChangeset
for help on using the changeset viewer.