/* * @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