Yoichi Nagashima
/
CQ_nagasm_10_Lissajous
NucleoF401RE EMG seneor with Lissajous Analysis
notch.hpp@1:42b57bfcc750, 2014-12-20 (annotated)
- Committer:
- nagasm
- Date:
- Sat Dec 20 02:09:52 2014 +0000
- Revision:
- 1:42b57bfcc750
- Parent:
- 0:418c739a67df
revised
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nagasm | 0:418c739a67df | 1 | /* |
nagasm | 0:418c739a67df | 2 | #include <stdio.h> |
nagasm | 0:418c739a67df | 3 | #include <stdlib.h> |
nagasm | 0:418c739a67df | 4 | #include <math.h> |
nagasm | 0:418c739a67df | 5 | int main(){ |
nagasm | 0:418c739a67df | 6 | int fs = 10000; |
nagasm | 0:418c739a67df | 7 | double B0, a1, a2, b1, c0, F0, T; |
nagasm | 0:418c739a67df | 8 | F0 = 60; // or 50 |
nagasm | 0:418c739a67df | 9 | B0 = 100.; |
nagasm | 0:418c739a67df | 10 | T = 1./fs; |
nagasm | 0:418c739a67df | 11 | a1 = 2. * exp(-M_PI * B0 * T) * cos(2. * M_PI * F0 * T); |
nagasm | 0:418c739a67df | 12 | a2 = -exp(-2. * M_PI * B0 * T); |
nagasm | 0:418c739a67df | 13 | b1 = -2. * cos(2. * M_PI * F0 * T); |
nagasm | 0:418c739a67df | 14 | c0 = (1-a1-a2)/(2+b1); |
nagasm | 0:418c739a67df | 15 | printf("a1 = %f\n", a1); |
nagasm | 0:418c739a67df | 16 | printf("a2 = %f\n", a2); |
nagasm | 0:418c739a67df | 17 | printf("b1 = %f\n", b1); |
nagasm | 0:418c739a67df | 18 | printf("c0 = %f\n", c0); |
nagasm | 0:418c739a67df | 19 | return 0; |
nagasm | 0:418c739a67df | 20 | } |
nagasm | 0:418c739a67df | 21 | 60Hz |
nagasm | 0:418c739a67df | 22 | a1 = 1.936768 |
nagasm | 0:418c739a67df | 23 | a2 = -0.939101 |
nagasm | 0:418c739a67df | 24 | b1 = -1.998579 |
nagasm | 0:418c739a67df | 25 | c0 = 1.642174 |
nagasm | 0:418c739a67df | 26 | 50Hz |
nagasm | 0:418c739a67df | 27 | a1 = 1.937188 |
nagasm | 0:418c739a67df | 28 | a2 = -0.939101 |
nagasm | 0:418c739a67df | 29 | b1 = -1.999013 |
nagasm | 0:418c739a67df | 30 | c0 = 1.938304 |
nagasm | 0:418c739a67df | 31 | */ |
nagasm | 0:418c739a67df | 32 | |
nagasm | 0:418c739a67df | 33 | float notch_filter1(float data){ |
nagasm | 0:418c739a67df | 34 | y1[0] = data + a1*y1[1] + a2*y1[2]; |
nagasm | 0:418c739a67df | 35 | float reault = y1[0] + b1*y1[1] + y1[2]; |
nagasm | 0:418c739a67df | 36 | y1[2] = y1[1]; |
nagasm | 0:418c739a67df | 37 | y1[1] = y1[0]; |
nagasm | 0:418c739a67df | 38 | return(reault); |
nagasm | 0:418c739a67df | 39 | } |
nagasm | 0:418c739a67df | 40 | |
nagasm | 0:418c739a67df | 41 | float notch_filter2(float data){ |
nagasm | 0:418c739a67df | 42 | y2[0] = data + a1*y2[1] + a2*y2[2]; |
nagasm | 0:418c739a67df | 43 | float reault = y2[0] + b1*y2[1] + y2[2]; |
nagasm | 0:418c739a67df | 44 | y2[2] = y2[1]; |
nagasm | 0:418c739a67df | 45 | y2[1] = y2[0]; |
nagasm | 0:418c739a67df | 46 | return(reault); |
nagasm | 0:418c739a67df | 47 | } |