Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed CMSIS_DSP_5 TextLCD
main.cpp
00001 #include "mbed.h" 00002 #include "arm_math.h" 00003 #include <stdio.h> 00004 #include <string.h> 00005 #include "datos.h" 00006 00007 #define NUM_TAPS 15 00008 #define NUM_STAGES 3 00009 float inDataFloat[frameLength]; 00010 float outDataFloat[frameLength]; 00011 float valorRMSFloat; 00012 float valorRMSSinFiltro; 00013 float valorRMSSinFiltroConvertido; 00014 float valorRMSConvertido; 00015 float meanSinFiltro; 00016 float meanTrasFiltro; 00017 00018 Serial pc(USBTX, USBRX); // tx, rx 00019 00020 float salida[frameLength]; 00021 00022 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 }; 00023 00024 00025 static float32_t iirStateF32[4*NUM_STAGES]; 00026 00027 arm_biquad_casd_df1_inst_f32 S; 00028 00029 /// Tocar funciones de abajo 00030 00031 void init_procesado() 00032 { 00033 arm_biquad_cascade_df1_init_f32(&S, NUM_STAGES, (float32_t *)&iirCoeffs32[0], &iirStateF32[0]); 00034 } 00035 00036 void procesarfloat(float *inData,float *outData,int32_t length) 00037 { 00038 arm_mean_f32(inData, length, &meanSinFiltro); 00039 arm_rms_f32(inData, length, &valorRMSSinFiltro); 00040 valorRMSSinFiltroConvertido = valorRMSSinFiltro*3.3f; 00041 00042 arm_biquad_cascade_df1_f32(&S, inData, outData, length); 00043 00044 arm_rms_f32(outData, length, &valorRMSFloat); 00045 valorRMSConvertido = valorRMSFloat*3.3f; 00046 arm_mean_f32(outData, length, &meanTrasFiltro); 00047 } 00048 00049 // PROGRAMA PRINCIPAL 00050 int main() 00051 { 00052 pc.baud(115200); 00053 init_procesado(); 00054 procesarfloat(datos,salida,frameLength); 00055 pc.printf("*******************************entrada\n"); 00056 for (int n=0; n<frameLength; n++) { 00057 pc.printf("%f\n",datos[n]); 00058 } 00059 pc.printf("********************************salida\n"); 00060 for (int n=0; n<frameLength; n++) { 00061 pc.printf("%f\n",salida[n]); 00062 } 00063 while(1) { 00064 wait(1000); 00065 } 00066 00067 00068 } 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081
Generated on Thu Sep 22 2022 20:21:47 by
1.7.2