fghfgh

Dependencies:   mbed CMSIS_DSP_5 TextLCD

Committer:
jvicente
Date:
Thu Nov 21 18:15:20 2019 +0000
Revision:
8:05a125e4eee0
Parent:
7:4dd3ef163f65
hg

Who changed what in which revision?

UserRevisionLine numberNew contents of line
javiervicente 0:0d5a524c7d25 1 #include "mbed.h"
jvicente 6:1e45b5f30b87 2 #include "arm_math.h"
jvicente 6:1e45b5f30b87 3 #include <stdio.h>
jvicente 6:1e45b5f30b87 4 #include <string.h>
javiervicente 0:0d5a524c7d25 5 #include "datos.h"
jvicente 7:4dd3ef163f65 6
jvicente 7:4dd3ef163f65 7 #define NUM_TAPS 15
jvicente 7:4dd3ef163f65 8 #define NUM_STAGES 3
jvicente 7:4dd3ef163f65 9 float inDataFloat[frameLength];
jvicente 7:4dd3ef163f65 10 float outDataFloat[frameLength];
jvicente 7:4dd3ef163f65 11 float valorRMSFloat;
jvicente 7:4dd3ef163f65 12 float valorRMSSinFiltro;
jvicente 7:4dd3ef163f65 13 float valorRMSSinFiltroConvertido;
jvicente 7:4dd3ef163f65 14 float valorRMSConvertido;
jvicente 7:4dd3ef163f65 15 float meanSinFiltro;
jvicente 7:4dd3ef163f65 16 float meanTrasFiltro;
jvicente 7:4dd3ef163f65 17
jvicente 8:05a125e4eee0 18 Serial pc(USBTX, USBRX); // tx, rx
jvicente 7:4dd3ef163f65 19
jvicente 7:4dd3ef163f65 20 float salida[frameLength];
jvicente 7:4dd3ef163f65 21
jvicente 8:05a125e4eee0 22 const float32_t iirCoeffs32[NUM_TAPS] = {0.04475,-2.2348e-08,-0.044751,1.8954,-0.91178,0.04475,0.089501,0.04475,1.9116,-0.94211,0.04475,-0.089501,0.04475,1.9588,-0.96799 };
javiervicente 2:69827542e976 23
javiervicente 0:0d5a524c7d25 24
jvicente 7:4dd3ef163f65 25 static float32_t iirStateF32[4*NUM_STAGES];
jvicente 6:1e45b5f30b87 26
jvicente 7:4dd3ef163f65 27 arm_biquad_casd_df1_inst_f32 S;
jvicente 7:4dd3ef163f65 28
jvicente 7:4dd3ef163f65 29 /// Tocar funciones de abajo
jvicente 7:4dd3ef163f65 30
jvicente 7:4dd3ef163f65 31 void init_procesado()
jvicente 7:4dd3ef163f65 32 {
jvicente 7:4dd3ef163f65 33 arm_biquad_cascade_df1_init_f32(&S, NUM_STAGES, (float32_t *)&iirCoeffs32[0], &iirStateF32[0]);
jvicente 7:4dd3ef163f65 34 }
jvicente 6:1e45b5f30b87 35
jvicente 7:4dd3ef163f65 36 void procesarfloat(float *inData,float *outData,int32_t length)
jvicente 7:4dd3ef163f65 37 {
jvicente 7:4dd3ef163f65 38 arm_mean_f32(inData, length, &meanSinFiltro);
jvicente 7:4dd3ef163f65 39 arm_rms_f32(inData, length, &valorRMSSinFiltro);
jvicente 7:4dd3ef163f65 40 valorRMSSinFiltroConvertido = valorRMSSinFiltro*3.3f;
jvicente 7:4dd3ef163f65 41
jvicente 7:4dd3ef163f65 42 arm_biquad_cascade_df1_f32(&S, inData, outData, length);
jvicente 7:4dd3ef163f65 43
jvicente 7:4dd3ef163f65 44 arm_rms_f32(outData, length, &valorRMSFloat);
jvicente 7:4dd3ef163f65 45 valorRMSConvertido = valorRMSFloat*3.3f;
jvicente 7:4dd3ef163f65 46 arm_mean_f32(outData, length, &meanTrasFiltro);
jvicente 7:4dd3ef163f65 47 }
jvicente 6:1e45b5f30b87 48
jvicente 6:1e45b5f30b87 49 // PROGRAMA PRINCIPAL
javiervicente 0:0d5a524c7d25 50 int main()
javiervicente 0:0d5a524c7d25 51 {
jvicente 8:05a125e4eee0 52 pc.baud(115200);
jvicente 7:4dd3ef163f65 53 init_procesado();
jvicente 7:4dd3ef163f65 54 procesarfloat(datos,salida,frameLength);
jvicente 8:05a125e4eee0 55 pc.printf("*******************************entrada\n");
jvicente 7:4dd3ef163f65 56 for (int n=0; n<frameLength; n++) {
jvicente 8:05a125e4eee0 57 pc.printf("%f\n",datos[n]);
jvicente 7:4dd3ef163f65 58 }
jvicente 8:05a125e4eee0 59 pc.printf("********************************salida\n");
jvicente 7:4dd3ef163f65 60 for (int n=0; n<frameLength; n++) {
jvicente 8:05a125e4eee0 61 pc.printf("%f\n",salida[n]);
jvicente 7:4dd3ef163f65 62 }
jvicente 7:4dd3ef163f65 63 while(1) {
jvicente 7:4dd3ef163f65 64 wait(1000);
jvicente 7:4dd3ef163f65 65 }
jvicente 7:4dd3ef163f65 66
jvicente 7:4dd3ef163f65 67
javiervicente 1:bdbd76df2103 68 }
javiervicente 1:bdbd76df2103 69
jvicente 6:1e45b5f30b87 70
jvicente 6:1e45b5f30b87 71
jvicente 6:1e45b5f30b87 72
jvicente 6:1e45b5f30b87 73
jvicente 6:1e45b5f30b87 74
javiervicente 1:bdbd76df2103 75
jvicente 6:1e45b5f30b87 76
jvicente 6:1e45b5f30b87 77
jvicente 6:1e45b5f30b87 78
jvicente 6:1e45b5f30b87 79
jvicente 6:1e45b5f30b87 80
jvicente 6:1e45b5f30b87 81