fghfgh
Dependencies: mbed CMSIS_DSP_5 TextLCD
Diff: main.cpp
- 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); + } + + }