一阶滤波算法

/*****************************************************************************
FileName : filter
Function : 一阶滤波算法
Author   : mike
Email    : [email protected]    
Version  : V1.0
Date     : 2019-08-25
Note     :一阶滤波算法-以ADC采样数据为例
*****************************************************************************/
u8 filter_process(u8 group, u8 adc_val)
{
    static u16 buf[8] = {0};    //滤波buf

    u8 tmp = (buf[group] >> 9) - (adc_val >> 1);
    if (tmp & 0x80)
        tmp = -tmp;
    if (tmp <= 0x08)
        buf[group] = (u16)adc_val * 48 + (((u32)buf[group] * 208 + 128) >> 8);
    else
        buf[group] = (u16)adc_val << 8;
    return (buf[group] >> 8);
}

 

你可能感兴趣的:(C语言,算法)