initial

Dependencies:   mbed BSP_DISCO_F746NG mbed-dsp

Revision:
3:51e15bd15778
Parent:
2:89234085faae
Child:
4:99de9b4005d2
--- a/signal_processing.cpp	Thu Feb 20 18:33:14 2020 +0000
+++ b/signal_processing.cpp	Mon Mar 02 23:33:16 2020 +0000
@@ -20,6 +20,8 @@
 #include "arm_const_structs.h"
 #include "filter_coefficients.h"
 #include "our_filter.h"
+#include "windowed.h"
+#include "signal_processing.h"
 
 
 /* ---------------------------------------------------------------------- 
@@ -38,9 +40,9 @@
 float32_t l_buf[BUFFER_LENGTH];
 float32_t r_buf[BUFFER_LENGTH];
 
-float32_t* l_buf_head = &l_buf;
+float32_t* l_buf_head = l_buf;
 uint16_t l_buf_head_idx = 0;
-float32_t* r_buf_head = &r_buf;
+float32_t* r_buf_head = r_buf;
 uint16_t r_buf_head_idx = 0;
 
 arm_fir_instance_f32 filter_left;
@@ -133,7 +135,7 @@
 void filter(float32_t* buffer_begin, float32_t* buffer_head, uint16_t buffer_head_idx, float32_t* d_in, float32_t* d_out, uint16_t sig_length, uint16_t buf_length)
 {
     float32_t* data_sample = d_in+sig_length-1;
-    float32_t* filter_sample = filter;
+    float32_t* filter_sample = win_filter_coeffs;
     float32_t result = 0;
     uint16_t conv_length = 0;
     float32_t* buffer_data_location = buffer_head;
@@ -142,22 +144,22 @@
     for(uint16_t shift = 0; shift < buf_length; shift++)
     {
         //shift
-        if(shift < sig_lenth)
+        if(shift < sig_length)
         {
             conv_length = shift + 1;
         }
-        else if(shift >= sig_lenth && shift < filt_length)
+        else if(shift >= sig_length && shift < WIN_NUM_TAPS)
         {
-            conv_length = sig_lenth;
+            conv_length = sig_length;
         }
-        else if(shift >= filt_length)
+        else if(shift >= WIN_NUM_TAPS)
         {
-            conv_length = sig_lenth - (shift - filt_length + 1)
+            conv_length = sig_length - (shift - WIN_NUM_TAPS + 1);
         }
         
         result = 0;
         //multiply-add
-        for(i=0; i<conv_length; i++)
+        for(int i=0; i<conv_length; i++)
         {
             result += (*filter_sample) * (*data_sample);
             filter_sample++;
@@ -179,7 +181,7 @@
     
     //copy from buffer to d_out
     buffer_data_location = buffer_head;
-    for(int i=0; i < sig_lenth; i++)
+    for(int i=0; i < sig_length; i++)
     {
         d_out[i] = *buffer_data_location;
         *buffer_data_location = 0;
@@ -203,4 +205,5 @@
         l_buf[i] = 0;
         r_buf[i] = 0;
     }
+    return;
 }