fghfgh

Dependencies:   mbed CMSIS_DSP_5 TextLCD

Revision:
7:4dd3ef163f65
Parent:
6:1e45b5f30b87
Child:
8:05a125e4eee0
--- a/main.cpp	Thu Nov 21 16:28:20 2019 +0000
+++ b/main.cpp	Thu Nov 21 16:49:56 2019 +0000
@@ -1,35 +1,74 @@
 #include "mbed.h"
 #include "arm_math.h"
-#include <Ticker.h>
 #include <stdio.h>
 #include <string.h>
-#include <AnalogIn.h>
 #include "datos.h"
-#include "TextLCD.h"
+
+#define frameLength 2048
+#define NUM_TAPS              15
+#define NUM_STAGES            3
+float inDataFloat[frameLength];
+float outDataFloat[frameLength];
+float valorRMSFloat;
+float valorRMSSinFiltro;
+float valorRMSSinFiltroConvertido;
+float valorRMSConvertido;
+float meanSinFiltro;
+float meanTrasFiltro;
+
+
+float  salida[frameLength];
+
+const float32_t iirCoeffs32[NUM_TAPS] = {
+    8.9618e-05,-1.439e-11,-8.9619e-05,1.8954,-0.91178,
+    1,2,0.99999,1.9116,-0.94211,
+    1,-2,0.99999,1.9588,-0.96799
+};
 
 
+static float32_t iirStateF32[4*NUM_STAGES];
 
-float Vrms;
+arm_biquad_casd_df1_inst_f32 S;
+
+/// Tocar funciones de abajo
+
+void init_procesado()
+{
+    arm_biquad_cascade_df1_init_f32(&S, NUM_STAGES, (float32_t *)&iirCoeffs32[0], &iirStateF32[0]);
+}
 
+void procesarfloat(float *inData,float *outData,int32_t length)
+{
+    arm_mean_f32(inData, length, &meanSinFiltro);
+    arm_rms_f32(inData, length, &valorRMSSinFiltro);
+    valorRMSSinFiltroConvertido = valorRMSSinFiltro*3.3f;
+
+    arm_biquad_cascade_df1_f32(&S, inData, outData, length);
+
+    arm_rms_f32(outData, length, &valorRMSFloat);
+    valorRMSConvertido = valorRMSFloat*3.3f;
+    arm_mean_f32(outData, length, &meanTrasFiltro);
+}
 
 // PROGRAMA PRINCIPAL
 int main()
 {
-  
-    
-        
-        //1.Vrms
-        arm_rms_f32(datosV,500,&(Vrms));
-    
-        printf("datos entrada\n");
-        for (int n=0;n<500;n++){
-           printf("%f\n",datosV[n]);
-           }
-           
-           printf("RMS: %f\n",Vrms);
-                 
-           
-    
+
+    init_procesado();
+    procesarfloat(datos,salida,frameLength);
+    printf("*******************************entrada\n");
+    for (int n=0; n<frameLength; n++) {
+        printf("%f\n",datos[n]);
+    }
+    printf("********************************salida\n");
+    for (int n=0; n<frameLength; n++) {
+        printf("%f\n",salida[n]);
+    }
+    while(1) {
+        wait(1000);
+    }
+
+
 }