first test of done filter
Dependencies: biquadFilter mbed HIDScope
main.cpp@0:eb47e42019a4, 2016-10-18 (annotated)
- Committer:
- s1604554
- Date:
- Tue Oct 18 12:12:15 2016 +0000
- Revision:
- 0:eb47e42019a4
- Child:
- 1:e7cf79380e24
Filter done for 20hz and 50hz
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
s1604554 | 0:eb47e42019a4 | 1 | #include "mbed.h" |
s1604554 | 0:eb47e42019a4 | 2 | #include "BiQuad.h" |
s1604554 | 0:eb47e42019a4 | 3 | #include "stdlib.h" |
s1604554 | 0:eb47e42019a4 | 4 | #include <iostream> |
s1604554 | 0:eb47e42019a4 | 5 | #include <cmath> |
s1604554 | 0:eb47e42019a4 | 6 | #include <string> |
s1604554 | 0:eb47e42019a4 | 7 | |
s1604554 | 0:eb47e42019a4 | 8 | int main() |
s1604554 | 0:eb47e42019a4 | 9 | { |
s1604554 | 0:eb47e42019a4 | 10 | |
s1604554 | 0:eb47e42019a4 | 11 | BiQuadChain bqc; |
s1604554 | 0:eb47e42019a4 | 12 | BiQuad bq1( 9.84534e-01, -1.59301e+00, 9.84534e-01, -1.59301e+00, 9.69067e-01 ); |
s1604554 | 0:eb47e42019a4 | 13 | BiQuad bq2( 9.75180e-01, -9.75170e-01, 0.00000e+00, -9.75178e-01, 0.00000e+00 ); |
s1604554 | 0:eb47e42019a4 | 14 | BiQuad bq3( 1.00000e+00, -2.00001e+00, 1.00001e+00, -1.97456e+00, 9.75182e-01 ); |
s1604554 | 0:eb47e42019a4 | 15 | |
s1604554 | 0:eb47e42019a4 | 16 | bqc.add( &bq1 ).add( &bq2 ).add( &bq3 ); |
s1604554 | 0:eb47e42019a4 | 17 | bqc.add( &bq1 ); |
s1604554 | 0:eb47e42019a4 | 18 | |
s1604554 | 0:eb47e42019a4 | 19 | //high pass and notch |
s1604554 | 0:eb47e42019a4 | 20 | |
s1604554 | 0:eb47e42019a4 | 21 | |
s1604554 | 0:eb47e42019a4 | 22 | |
s1604554 | 0:eb47e42019a4 | 23 | //testing the MA filter |
s1604554 | 0:eb47e42019a4 | 24 | double M [10] = {0.351351, 0.8513684, 0.163153, -0.2653, -0.65235, 1.234, -1.0002, 0.069785, 0.9431, -0.65234}; |
s1604554 | 0:eb47e42019a4 | 25 | int N = 4; |
s1604554 | 0:eb47e42019a4 | 26 | double x = 2; |
s1604554 | 0:eb47e42019a4 | 27 | |
s1604554 | 0:eb47e42019a4 | 28 | |
s1604554 | 0:eb47e42019a4 | 29 | double average; |
s1604554 | 0:eb47e42019a4 | 30 | |
s1604554 | 0:eb47e42019a4 | 31 | for (int i = N;i<=10;i++) |
s1604554 | 0:eb47e42019a4 | 32 | { |
s1604554 | 0:eb47e42019a4 | 33 | average = sqrt((pow(abs(M[i-3]),x)+pow(abs(M[i-2]),x)+pow(abs(M[i-1]),x)+pow(abs(M[i]),x)/static_cast<double>(N))); |
s1604554 | 0:eb47e42019a4 | 34 | std::cout << average<< "\n\r" ; |
s1604554 | 0:eb47e42019a4 | 35 | } |
s1604554 | 0:eb47e42019a4 | 36 | //Full wave rectifier, moving average, and RMS |
s1604554 | 0:eb47e42019a4 | 37 | |
s1604554 | 0:eb47e42019a4 | 38 | return 0; |
s1604554 | 0:eb47e42019a4 | 39 | } |
s1604554 | 0:eb47e42019a4 | 40 | |
s1604554 | 0:eb47e42019a4 | 41 |