乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      實(shí)現(xiàn)種軟件濾波方法及其示例程序c

       ylw527 2010-09-16

      1、限幅濾波法(又稱程序判斷濾波法)

      A、方法:
      根據(jù)經(jīng)驗(yàn)判斷,確定兩次采樣允許的最大偏差值(設(shè)為A)
      每次檢測到新值時判斷:
      如果本次值與上次值之差<=A,則本次值有效
      如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值

      B、優(yōu)點(diǎn):
      能有效克服因偶然因素引起的脈沖干擾

      C、缺點(diǎn)
      無法抑制那種周期性的干擾
      平滑度差

      2、中位值濾波法

      A、方法:
      連續(xù)采樣N次(N取奇數(shù))
      把N次采樣值按大小排列
      取中間值為本次有效值

      B、優(yōu)點(diǎn):
      能有效克服因偶然因素引起的波動干擾
      對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果

      C、缺點(diǎn):
      對流量、速度等快速變化的參數(shù)不宜


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

      A、方法:
      連續(xù)取N個采樣值進(jìn)行算術(shù)平均運(yùn)算
      N值較大時:信號平滑度較高,但靈敏度較低
      N值較小時:信號平滑度較低,但靈敏度較高
      N值的選?。阂话懔髁浚琋=12;壓力:N=4

      B、優(yōu)點(diǎn):
      適用于對一般具有隨機(jī)干擾的信號進(jìn)行濾波
      這樣信號的特點(diǎn)是有一個平均值,信號在某一數(shù)值范圍附近上下波動

      C、缺點(diǎn):
      對于測量速度較慢或要求數(shù)據(jù)計(jì)算速度較快的實(shí)時控制不適用
      比較浪費(fèi)RAM

      4、遞推平均濾波法(又稱滑動平均濾波法)

      A、方法:
      把連續(xù)取N個采樣值看成一個隊(duì)列
      隊(duì)列的長度固定為N
      每次采樣到一個新數(shù)據(jù)放入隊(duì)尾,并扔掉原來隊(duì)首的一次數(shù)據(jù).(先進(jìn)先出原則)
      把隊(duì)列中的N個數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果
      N值的選取:流量,N=12;壓力:N=4;液面,N=4~12;溫度,N=1~4


      B、優(yōu)點(diǎn):
      對周期性干擾有良好的抑制作用,平滑度高
      適用于高頻振蕩的系統(tǒng)

      C、缺點(diǎn):
      靈敏度低
      對偶然出現(xiàn)的脈沖性干擾的抑制作用較差
      不易消除由于脈沖干擾所引起的采樣值偏差
      不適用于脈沖干擾比較嚴(yán)重的場合
      比較浪費(fèi)RAM

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

      A、方法:
      相當(dāng)于“中位值濾波法”+“算術(shù)平均濾波法”
      連續(xù)采樣N個數(shù)據(jù),去掉一個最大值和一個最小值
      然后計(jì)算N-2個數(shù)據(jù)的算術(shù)平均值
      N值的選?。?~14

      B、優(yōu)點(diǎn):
      融合了兩種濾波法的優(yōu)點(diǎn)
      對于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差

      C、缺點(diǎn):
      測量速度較慢,和算術(shù)平均濾波法一樣
      比較浪費(fèi)RAM

      6、限幅平均濾波法

      A、方法:
      相當(dāng)于“限幅濾波法”+“遞推平均濾波法”
      每次采樣到的新數(shù)據(jù)先進(jìn)行限幅處理,
      再送入隊(duì)列進(jìn)行遞推平均濾波處理

      B、優(yōu)點(diǎn):
      融合了兩種濾波法的優(yōu)點(diǎn)
      對于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差

      C、缺點(diǎn):
      比較浪費(fèi)RAM


      7、一階滯后濾波法

      A、方法:
      取a=0~1
      本次濾波結(jié)果=(1-a)*本次采樣值+a*上次濾波結(jié)果

      B、優(yōu)點(diǎn):
      對周期性干擾具有良好的抑制作用
      適用于波動頻率較高的場合

      C、缺點(diǎn):
      相位滯后,靈敏度低
      滯后程度取決于a值大小
      不能消除濾波頻率高于采樣頻率的1/2的干擾信號

       

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

      A、方法:
      是對遞推平均濾波法的改進(jìn),即不同時刻的數(shù)據(jù)加以不同的權(quán)
      通常是,越接近現(xiàn)時刻的數(shù)據(jù),權(quán)取得越大。
      給予新采樣值的權(quán)系數(shù)越大,則靈敏度越高,但信號平滑度越低

      B、優(yōu)點(diǎn):
      適用于有較大純滯后時間常數(shù)的對象
      和采樣周期較短的系統(tǒng)

      C、缺點(diǎn):
      對于純滯后時間常數(shù)較小,采樣周期較長,變化緩慢的信號
      不能迅速反應(yīng)系統(tǒng)當(dāng)前所受干擾的嚴(yán)重程度,濾波效果差


      9、消抖濾波法

      A、方法:
      設(shè)置一個濾波計(jì)數(shù)器
      將每次采樣值與當(dāng)前有效值比較:
      如果采樣值=當(dāng)前有效值,則計(jì)數(shù)器清零
      如果采樣值<>當(dāng)前有效值,則計(jì)數(shù)器+1,并判斷計(jì)數(shù)器是否>=上限N(溢出)
      如果計(jì)數(shù)器溢出,則將本次值替換當(dāng)前有效值,并清計(jì)數(shù)器

      B、優(yōu)點(diǎn):
      對于變化緩慢的被測參數(shù)有較好的濾波效果,
      可避免在臨界值附近控制器的反復(fù)開/關(guān)跳動或顯示器上數(shù)值抖動

      C、缺點(diǎn):
      對于快速變化的參數(shù)不宜
      如果在計(jì)數(shù)器溢出的那一次采樣到的值恰好是干擾值,則會將干擾值當(dāng)作有效值導(dǎo)
      入系統(tǒng)


      10、限幅消抖濾波法

      A、方法:
      相當(dāng)于“限幅濾波法”+“消抖濾波法”
      先限幅,后消抖

      B、優(yōu)點(diǎn):
      繼承了“限幅”和“消抖”的優(yōu)點(diǎn)
      改進(jìn)了“消抖濾波法”中的某些缺陷,避免將干擾值導(dǎo)入系統(tǒng)

      C、缺點(diǎn):
      對于快速變化的參數(shù)不宜



      假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序?yàn)間et_ad();

      1、限副濾波
      /* A值可根據(jù)實(shí)際情況調(diào)整
      value為有效值,new_value為當(dāng)前采樣值
      濾波程序返回有效的實(shí)際值 */

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

      }

      2、中位值濾波法
      /* N值可根據(jù)實(shí)際情況調(diào)整
      排序采用冒泡法*/

      #define N 11
      char filter()
      {
      char value_buf[N];
      char count,i,j,temp;
      for ( count=0;count<N;count++)
      {
      value_buf[count] = get_ad();
      delay();
      }
      for (j=0;j<N-1;j++)
      {
      for (i=0;i<N-j;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()
      {
      int sum = 0;
      for ( count=0;count<N;count++)
      {
      sum + = get_ad();
      delay();
      }
      return (char)(sum/N);
      }

      4、遞推平均濾波法(又稱滑動平均濾波法)
      /*
      */

      #define N 12
      char value_buf[N];
      char i=0;
      char filter()
      {
      char count;
      int sum=0;
      value_buf[i++] = get_ad();
      if ( i == N ) i = 0;
      for ( count=0;count<N,count++)
      sum = value_buf[count];
      return (char)(sum/N);
      }

      5、中位值平均濾波法(又稱防脈沖干擾平均濾波法)
      /*
      */

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

      6、限幅平均濾波法
      /*
      */
      略 參考子程序1、3


      7、一階滯后濾波法
      /* 為加快程序處理速度假定基數(shù)為100,a=0~100 */

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


      8、加權(quán)遞推平均濾波法
      /* coe數(shù)組為加權(quán)系數(shù)表,存在程序存儲區(qū)。*/

      #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];
      int sum=0;
      for (count=0,count<N;count++)
      {
      value_buf[count] = get_ad();
      delay();
      }
      for (count=0,count<N;count++)
      sum += 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;
      }

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多