Job_SignsPads/STM32/Code/STM32F405/Application/cwt/MyAlgorithm.h
2025-04-22 10:29:37 +08:00

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