在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)10種軟件濾波程序

            單片機(jī)10種軟件濾波程序

            作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
            假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類(lèi)型為int),子程序?yàn)間et_ad();

            1、限副濾波

            #define A 10

            char value;

            char filter()
            {
            charnew_value;
            new_value = get_ad();
            if ( ( new_value - value> A ) || ( value - new_value> A )
            return value;
            return new_value;

            }

            2、中位值濾波法

            #define N11

            char filter()
            {
            char value_buf[N];
            char count,i,j,temp;
            for ( count=0;count{
            value_buf[count] = get_ad();
            delay();
            }
            for (j=0;j{
            for (i=0;i{
            if ( value_buf>value_buf[i+1] )
            {
            temp = value_buf;
            value_buf = value_buf[i+1];
            value_buf[i+1] = temp;
            }
            }
            }
            return value_buf[(N-1)/2];
            }

            3、算術(shù)平均濾波法


            #define N 12

            char filter()
            {
            intsum = 0;
            for ( count=0;count{
            sum + = get_ad();
            delay();
            }
            return (char)(sum/N);
            }

            4、遞推平均濾波法(又稱(chēng)滑動(dòng)平均濾波法)

            #define N 12

            char value_buf[N];
            char i=0;

            char filter()
            {
            char count;
            intsum=0;
            value_buf[i++] = get_ad();
            if ( i == N )i = 0;
            for ( count=0;countsum = value_buf[count];
            return (char)(sum/N);
            }

            5、中位值平均濾波法(又稱(chēng)防脈沖干擾平均濾波法)

            #define N 12

            char filter()
            {
            char count,i,j;
            char value_buf[N];
            intsum=0;
            for(count=0;count{
            value_buf[count] = get_ad();
            delay();
            }
            for (j=0;j{
            for (i=0;i{
            if ( value_buf[i]>value_buf[i+1] )
            {
            temp = value_buf[i];
            value_buf[i] = value_buf[i+1];
            value_buf[i+1] = temp;
            }
            }
            }
            for(count=1;countsum += value[count];
            return (char)(sum/(N-2));
            }

            6、限幅平均濾波法

            略 參考子程序1、3

            7、一階滯后濾波法


            #define a 50

            char value;

            char filter()
            {
            charnew_value;
            new_value = get_ad();
            return (100-a)*value + a*new_value;
            }

            8、加權(quán)遞推平均濾波法


            #define N 12

            char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};
            char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;

            char filter()
            {
            char count;
            char value_buf[N];
            intsum=0;
            for (count=0,count{
            value_buf[count] = get_ad();
            delay();
            }
            for (count=0,countsum += value_buf[count]*coe[count];
            return (char)(sum/sum_coe);
            }

            9、消抖濾波法

            #define N 12

            char filter()
            {
            char count=0;
            char new_value;
            new_value = get_ad();
            while (value !=new_value);
            {
            count++;
            if (count>=N)return new_value;
            delay();
            new_value = get_ad();
            }
            return value;
            }

            10、限幅消抖濾波法

            略 參考子程序1、9

            11、IIR濾波例子

            intBandpassFilter4(int InputAD4)
            {
            intReturnValue;
            intii;
            RESLO=0;
            RESHI=0;
            MACS=*PdelIn;
            OP2=1068; //FilterCoeff4[4];
            MACS=*(PdelIn+1);
            OP2=8;//FilterCoeff4[3];
            MACS=*(PdelIn+2);
            OP2=-2001;//FilterCoeff4[2];
            MACS=*(PdelIn+3);
            OP2=8;//FilterCoeff4[1];
            MACS=InputAD4;
            OP2=1068; //FilterCoeff4[0];
            MACS=*PdelOu;
            OP2=-7190;//FilterCoeff4[8];
            MACS=*(PdelOu+1);
            OP2=-1973; //FilterCoeff4[7];
            MACS=*(PdelOu+2);
            OP2=-19578;//FilterCoeff4[6];
            MACS=*(PdelOu+3);
            OP2=-3047; //FilterCoeff4[5];
            *p=RESLO;
            *(p+1)=RESHI;
            mytestmul<<=2;
            ReturnValue=*(p+1);
            for(ii=0;ii<3;ii++)
            {
            DelayInput[ii]=DelayInput[ii+1];
            DelayOutput[ii]=DelayOutput[ii+1];
            }
            DelayInput[3]=InputAD4;
            DelayOutput[3]=ReturnValue;


            return ReturnValue;
            }


            關(guān)鍵詞: 單片機(jī)軟件濾

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉