![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
working wavelet transform
Dependencies: CMSIS_DSP_5 include mbed
Fork of Nucleo-Heart-Rate by
main.cpp@2:3d6a6b9afee0, 2018-06-20 (annotated)
- Committer:
- xorjoep
- Date:
- Wed Jun 20 09:25:46 2018 +0000
- Revision:
- 2:3d6a6b9afee0
- Parent:
- 0:f39864a2bd26
- Child:
- 3:e44f3e92cb34
- Child:
- 4:8bd1cecf2a2e
now uses vals.h
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xorjoep | 0:f39864a2bd26 | 1 | //#include <math.h> |
xorjoep | 0:f39864a2bd26 | 2 | #include "arm_common_tables.h" |
xorjoep | 0:f39864a2bd26 | 3 | #include "arm_const_structs.h" |
xorjoep | 0:f39864a2bd26 | 4 | #include "arm_math.h" |
xorjoep | 0:f39864a2bd26 | 5 | #include "mbed.h" |
xorjoep | 2:3d6a6b9afee0 | 6 | #include "vals.h" |
xorjoep | 0:f39864a2bd26 | 7 | #include "../header/wavelib.h" |
xorjoep | 0:f39864a2bd26 | 8 | |
xorjoep | 0:f39864a2bd26 | 9 | DigitalOut myled(LED1); |
xorjoep | 0:f39864a2bd26 | 10 | Serial usb_serial(SERIAL_TX, SERIAL_RX); // tx, rx |
xorjoep | 0:f39864a2bd26 | 11 | const int baud_rate = 115200; |
xorjoep | 0:f39864a2bd26 | 12 | // Baud rate. |
xorjoep | 0:f39864a2bd26 | 13 | static float32_t cosSum[320]; |
xorjoep | 0:f39864a2bd26 | 14 | |
xorjoep | 0:f39864a2bd26 | 15 | float32_t *cosArray(int length, int freq, int fs){ |
xorjoep | 0:f39864a2bd26 | 16 | float *p = (float *) malloc(sizeof(float) * length); |
xorjoep | 0:f39864a2bd26 | 17 | double Ts = (double) 1/fs; |
xorjoep | 0:f39864a2bd26 | 18 | double w = 2*PI*freq; |
xorjoep | 0:f39864a2bd26 | 19 | |
xorjoep | 0:f39864a2bd26 | 20 | for(int i = 0; i < length; i++){ |
xorjoep | 0:f39864a2bd26 | 21 | p[i] = arm_cos_f32(w * Ts * i); |
xorjoep | 0:f39864a2bd26 | 22 | } |
xorjoep | 0:f39864a2bd26 | 23 | |
xorjoep | 0:f39864a2bd26 | 24 | return p; |
xorjoep | 0:f39864a2bd26 | 25 | } |
xorjoep | 0:f39864a2bd26 | 26 | |
xorjoep | 0:f39864a2bd26 | 27 | int main() { |
xorjoep | 0:f39864a2bd26 | 28 | usb_serial.baud(baud_rate); // Set serial USB connection baud rate (variable is declared in config part). |
xorjoep | 0:f39864a2bd26 | 29 | |
xorjoep | 0:f39864a2bd26 | 30 | |
xorjoep | 0:f39864a2bd26 | 31 | uint32_t N = 320; |
xorjoep | 0:f39864a2bd26 | 32 | uint32_t fs = 100; |
xorjoep | 0:f39864a2bd26 | 33 | uint32_t freq1 = 1; |
xorjoep | 0:f39864a2bd26 | 34 | uint32_t freq2 = 12; |
xorjoep | 0:f39864a2bd26 | 35 | float32_t *testCos1 = cosArray(N, freq1, fs); |
xorjoep | 0:f39864a2bd26 | 36 | float32_t *testCos2 = cosArray(N, freq2, fs); |
xorjoep | 0:f39864a2bd26 | 37 | |
xorjoep | 0:f39864a2bd26 | 38 | wave_object obj; |
xorjoep | 0:f39864a2bd26 | 39 | wt_object wt; |
xorjoep | 0:f39864a2bd26 | 40 | |
xorjoep | 0:f39864a2bd26 | 41 | double *inp; //,*out,*diff; |
xorjoep | 0:f39864a2bd26 | 42 | int i, J = 3; |
xorjoep | 0:f39864a2bd26 | 43 | |
xorjoep | 0:f39864a2bd26 | 44 | char *name = "db4"; |
xorjoep | 0:f39864a2bd26 | 45 | obj = wave_init(name);// Initialize the wavelet |
xorjoep | 0:f39864a2bd26 | 46 | |
xorjoep | 2:3d6a6b9afee0 | 47 | inp = signal_in; |
xorjoep | 0:f39864a2bd26 | 48 | //out = (double*)malloc(sizeof(double)* N); |
xorjoep | 0:f39864a2bd26 | 49 | // diff = (double*)malloc(sizeof(double)* N); |
xorjoep | 0:f39864a2bd26 | 50 | |
xorjoep | 0:f39864a2bd26 | 51 | myled = !myled; |
xorjoep | 0:f39864a2bd26 | 52 | |
xorjoep | 2:3d6a6b9afee0 | 53 | wt = wt_init(obj, "modwt", N, 3);// Initialize the wavelet transform object |
xorjoep | 0:f39864a2bd26 | 54 | myled = !myled; |
xorjoep | 0:f39864a2bd26 | 55 | |
xorjoep | 0:f39864a2bd26 | 56 | modwt(wt, inp);// Perform MODW |
xorjoep | 0:f39864a2bd26 | 57 | |
xorjoep | 0:f39864a2bd26 | 58 | while(1){ |
xorjoep | 0:f39864a2bd26 | 59 | for (i = 0; i < wt->outlength; ++i) { |
xorjoep | 2:3d6a6b9afee0 | 60 | usb_serial.printf("%d %e \n",i, wt->output[i]); |
xorjoep | 0:f39864a2bd26 | 61 | } |
xorjoep | 0:f39864a2bd26 | 62 | myled = !myled; |
xorjoep | 0:f39864a2bd26 | 63 | } |
xorjoep | 0:f39864a2bd26 | 64 | // setDWTExtension(wt, "sym");// Options are "per" and "sym". Symmetric is the default option |
xorjoep | 0:f39864a2bd26 | 65 | // setWTConv(wt, "direct"); |
xorjoep | 0:f39864a2bd26 | 66 | } |