汉明窗和PPG信号的门限计算

时间:2017-11-27 11:42:20

标签: c++ embedded signals mbed

目前,我正在分析红外和红色传感器的软件来计算氧饱和度和心率。我用于计算SpO2和HR的通式是:

Used Formula

现在我在以下几行失败:

在.h文件中:

#define FS 100
#define BUFFER_SIZE  (FS* 5) 
#define HR_FIFO_SIZE 7
#define MA4_SIZE  4 // DO NOT CHANGE
#define HAMMING_SIZE  5// DO NOT CHANGE
static  int32_t an_dx[ BUFFER_SIZE-MA4_SIZE]; // delta
static  int32_t an_x[ BUFFER_SIZE]; //ir
static  int32_t an_y[ BUFFER_SIZE]; //red

C ++文件:

uint32_t un_ir_mean,un_only_once ;
int32_t k, i,s;

const uint16_t auw_hamm[31]={ 41,    276,    512,    276,     41 }
//Hamm=  long16(512* hamming(5)');
// an_dx[] array with soomthed adc values
...
...
// hamming window (Buffer = 500, Hamming Size = 5, MA4 Size = 4)
    // flip wave form so that we can detect valley with peak detector
    for ( i=0 ; i<BUFFER_SIZE-HAMMING_SIZE-MA4_SIZE-2 ; i++)
    {
        s= 0;
        for( k=i; k<i+ HAMMING_SIZE ; k++)
        {
            s -= an_dx[k] *auw_hamm[k-i] ;
        }
        an_dx[i]= s/ (int32_t)1146; // divide by sum of auw_hamm
    }

这里的信号是如何翻转的? 汉明阵列的数字来自哪里? 我曾在Hamming窗口的理论中工作,但仍然不理解所执行的功能。我希望你们能帮助我。

祝你好运 额敏

1 个答案:

答案 0 :(得分:-1)

我相信他们正在执行卷积运算,并且已经翻转了汉明窗,并以成批的汉明窗尺寸对信号进行了卷积。