剔除毛刺程序和滑动滤波程序

/****************************************************************
    剔除毛刺滤波处理程序
*****************************************************************/
void BurrFilter(BURR_FILTER_STRUCT * filter)
{
    int     m_Deta;

    m_Deta = abs((filter->Input) - (filter->Output));
    if(m_Deta > filter->Err)
    {
        filter->Err = filter->Err << 1;
    }
    else
    {
        filter->Output = filter->Input;
          if(m_Deta < (filter->Err >> 1))
        {
            filter->Err = filter->Err >> 1;
        }
    }
    filter->Err = (filter->Err > filter->Max)?filter->Max:filter->Err;
    filter->Err = (filter->Err < filter->Min)?filter->Min:filter->Err;
}

/****************************************************************
    滑动滤波程序(根据滤波时间常数设定加全平均的数据个数)
*****************************************************************/
void SlipFilter(CUR_LINE_STRUCT_DEF * pCur)
{
    int  m_Index,m_IndexStart,m_Coff,m_TotalCoff;
    long m_Total;
    CUR_LINE_STRUCT_DEF * m_pCur = pCur;

    for(m_Index = 0;m_Index<(16-1);m_Index++)
    {
        m_pCur->Data[m_Index] = m_pCur->Data[m_Index+1];
    }
    m_pCur->Data[15] = m_pCur->Input;

    m_Total = 0;
    m_TotalCoff = 0;
    m_IndexStart = 16 - m_pCur->FilterTime;
    for(m_Coff = 0;m_Coff<(m_pCur->FilterTime);m_Coff++)
    {
        m_Total += (long)m_pCur->Data[m_IndexStart + m_Coff] * (m_Coff +1);
        m_TotalCoff += (m_Coff+1);
    }
    m_pCur->Output = m_Total/m_TotalCoff;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值