working wavelet transform
Dependencies: CMSIS_DSP_5 include mbed
Fork of Nucleo-Heart-Rate by
Diff: main.cpp
- Revision:
- 4:8bd1cecf2a2e
- Parent:
- 2:3d6a6b9afee0
- Child:
- 5:182ee08ee2b0
diff -r 3d6a6b9afee0 -r 8bd1cecf2a2e main.cpp --- a/main.cpp Wed Jun 20 09:25:46 2018 +0000 +++ b/main.cpp Wed Jun 20 09:46:38 2018 +0000 @@ -7,60 +7,36 @@ #include "../header/wavelib.h" DigitalOut myled(LED1); -Serial usb_serial(SERIAL_TX, SERIAL_RX); // tx, rx -const int baud_rate = 115200; - // Baud rate. -static float32_t cosSum[320]; +DigitalOut myled2(LED2); -float32_t *cosArray(int length, int freq, int fs){ - float *p = (float *) malloc(sizeof(float) * length); - double Ts = (double) 1/fs; - double w = 2*PI*freq; - - for(int i = 0; i < length; i++){ - p[i] = arm_cos_f32(w * Ts * i); - } - - return p; -} +Serial usb_serial(SERIAL_TX, SERIAL_RX); // tx, rx +const int baud_rate = 115200; // Baud rate. int main() { - usb_serial.baud(baud_rate); // Set serial USB connection baud rate (variable is declared in config part). - - - uint32_t N = 320; - uint32_t fs = 100; - uint32_t freq1 = 1; - uint32_t freq2 = 12; - float32_t *testCos1 = cosArray(N, freq1, fs); - float32_t *testCos2 = cosArray(N, freq2, fs); - - wave_object obj; - wt_object wt; + usb_serial.baud(baud_rate); + // Set serial USB connection baud rate (variable is declared in config part). + wave_object wave_init_obj; + wt_object wavelet; + + int N_samples = 2000; + int wt_scale = 3; + int i; - double *inp; //,*out,*diff; - int i, J = 3; + double *inp = signal_in; //,*out,*diff; - char *name = "db4"; - obj = wave_init(name);// Initialize the wavelet + char *m_wavelet = "db4"; + wave_init_obj = wave_init(m_wavelet);// Initialize the wavelet - inp = signal_in; //out = (double*)malloc(sizeof(double)* N); -// diff = (double*)malloc(sizeof(double)* N); - - myled = !myled; - wt = wt_init(obj, "modwt", N, 3);// Initialize the wavelet transform object - myled = !myled; + wavelet = wt_init(wave_init_obj, "modwt", N_samples, wt_scale);// Initialize the wavelet transform object - modwt(wt, inp);// Perform MODW + modwt(wavelet, inp);// Perform MODW while(1){ - for (i = 0; i < wt->outlength; ++i) { - usb_serial.printf("%d %e \n",i, wt->output[i]); + for (i = 0; i < wavelet->outlength; ++i) { + usb_serial.printf("%d %e \n",i, wavelet->output[i]); } myled = !myled; } -// setDWTExtension(wt, "sym");// Options are "per" and "sym". Symmetric is the default option -// setWTConv(wt, "direct"); }