55 lines
1.5 KiB
C
55 lines
1.5 KiB
C
/*
|
|
* @Description:
|
|
* @Version: 1.0
|
|
* @Author: lzc
|
|
* @Date: 2023-07-24 09:56:30
|
|
* @LastEditors: lzc
|
|
* @LastEditTime: 2024-12-26 17:03:50
|
|
*/
|
|
|
|
#ifndef __MY_ALGORITHM_H
|
|
#define __MY_ALGORITHM_H
|
|
|
|
#define TYPE_HEART 1
|
|
#define TYPE_BREATH 0
|
|
|
|
#define HEART_ARRAY_LENGTH 45
|
|
#define BREATH_ARRAY_LENGTH 12
|
|
|
|
extern int outPut_HeartBeat;
|
|
|
|
extern uint8_t BreathRate;
|
|
extern uint8_t HeartBeatRate;
|
|
extern uint8_t BreathRate_Record;
|
|
extern uint8_t HeartBeatRate_Record;
|
|
extern uint16_t fft_HeartBeatCurrentFilter;
|
|
|
|
extern float32_t HeartValueRes2Peaks[4];
|
|
extern float stash_Ratio[ARRAY_NUMBER];
|
|
extern float32_t FFT_HeartRateRes[2];
|
|
extern float32_t InitData[600];
|
|
extern uint32_t FFT_Size;
|
|
extern arm_rfft_fast_instance_f32 FFT_Struct;
|
|
|
|
extern float KalmarFilter(float inData);
|
|
/****************** fft ******************/
|
|
float32_t fft_Output(float32_t *Input, int Length, char type);
|
|
void fft_heartDataPostProcessing(float32_t data);
|
|
void fft_breathDataPostProcessing(float32_t data);
|
|
/************* cooley_tukey **************/
|
|
float32_t myFFT_Output(float32_t *Input, int Length, char type);
|
|
|
|
void myTestHeartOut(void);
|
|
void myTestBreathOut(void);
|
|
// 算法心率部分计算
|
|
void cwt_getHeartBeat_Test(void);
|
|
void cwt_getHeartBeat(float32_t *Input);
|
|
void cwt_getHeartBeat_immediately(float32_t *Input);
|
|
// 算法呼吸部分计算
|
|
void cwt_getBreath_Test(void);
|
|
void cwt_getBreathRate(float32_t *Input);
|
|
// 测试数组 心率
|
|
__weak float cwtTestBuffer[100];
|
|
// 测试数组 呼吸
|
|
__weak float cwtBreathBuffer[100];
|
|
#endif |