我使用数据采集卡采集到的信号,但是当信号比较弱的时候就会出现数据噪声,我想找一个可以处理数据的,画成平画曲线,请大家帮帮忙。最好有源代码偶。谢谢拉

解决方案 »

  1.   

    用一些滤波算法。 switch(m_SmoothMode)
    {
    case 0: //三点线性            
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (m_pfDataArray[i-1]+m_pfDataArray[i]+m_pfDataArray[i+1])/3;
    }
    break;
    case 1://五点二次滤波         
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (12*(m_pfDataArray[i-1]+m_pfDataArray[i+1])
    -3*(m_pfDataArray[i-2]+m_pfDataArray[i+2])
    +17*m_pfDataArray[i])/35;
    }
    break;
    case 2://三点钟形滤波       
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (short)(0.212f*m_pfDataArray[i-1]+0.576f*m_pfDataArray[i]
    +0.212f*m_pfDataArray[i+1]);
    }
    break;
    case 3://五点钟形滤波       
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (short)(0.11f*(m_pfDataArray[i-2]+m_pfDataArray[i+2])
    +0.24f*(m_pfDataArray[i-1]+m_pfDataArray[i+1])
    +0.3f*m_pfDataArray[i]);
    }
    break;
    case 4://三点汉明滤波         
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (short)(0.07f*m_pfDataArray[i-1]+0.86f*m_pfDataArray[i]
    +0.07f*m_pfDataArray[i+1]);
    }
    break;
    default://五点汉明滤波         
    for(i=2+offsetpos;i<datanum-2;i++)
    {
    m_pfDataArray[i] = (short)(0.04f*(m_pfDataArray[i-2]+m_pfDataArray[i+2])
    +0.24f*(m_pfDataArray[i-1]+m_pfDataArray[i+1])
    +0.44f*m_pfDataArray[i]);
    }
    break;
    }
      

  2.   

     GIS上用的道格拉斯算法,应该刚好解决这个问题