bossay_release_out/app/A03_MAX30102_B/include/algorithm.h

64 lines
1.4 KiB
C
Raw Permalink Normal View History

2025-09-24 11:16:14 +08:00
#ifndef __ALGORITHM_H
#define __ALGORITHM_H
#include <stdint.h>
#define FFT_N 512 //<2F><><EFBFBD><EFBFBD><E5B8B5>Ҷ<EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
#define START_INDEX 4 //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
struct compx //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
float real;
float imag;
};
//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
double my_floor(double x);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double my_fmod(double x, double y);
//<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>
double XSin( double x );
//<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>
double XCos( double x );
//<2F><>ƽ<EFBFBD><C6BD>
int qsqrt(int a);
/*******************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ͣ<EFBFBD>struct compx EE(struct compx b1,struct compx b2)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г˷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>a,b
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a<EFBFBD><EFBFBD>b<EFBFBD>ij˻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************/
struct compx EE(struct compx a,struct compx b);
/*****************************************************************
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ͣ<EFBFBD>void FFT(struct compx *xin,int N)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>ٸ<EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD>FFT<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*xin<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD>ַָ<EFBFBD>struct<EFBFBD><EFBFBD>
*****************************************************************/
void FFT(struct compx *xin);
//<2F><>ȡ<EFBFBD><C8A1>ֵ
int find_max_num_index(struct compx *data,int count);
typedef struct
{
float w;
int init;
float a;
}DC_FilterData;
//ֱ<><D6B1><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
int dc_filter(int input,DC_FilterData * df);
typedef struct
{
float v0;
float v1;
}BW_FilterData;
int bw_filter(int input,BW_FilterData * bw);
#endif /*__ALGORITHM_H*/