精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ADC數據采集波動大,那是你還不知道這些濾波算法

單片機技術宅 ? 來源:單片機技術宅 ? 作者:單片機技術宅 ? 2022-12-05 09:35 ? 次閱讀

NO.1

限幅濾波?

1 方法

根據經驗判斷兩次采樣允許的最大偏差值A

每次采新值時判斷:若本次值與上次值之差<=A,則本次有效;若本次值與上次值之差>A,本次無效,用上次值代替本次。

2 優缺點

克服脈沖干擾,無法抑制周期性干擾,平滑度差。

3 代碼

/* A值根據實際調,Value有效值,new_Value當前采樣值,程序返回有效的實際值 */
# define A 10
char Value;
char filter()
{ 
  char new_Value; 
  new_Value = get_ad(); //獲取采樣值 
  if( abs(new_Value - Value) > A) 
    return Value; //abs()取絕對值函數 
return new_Value;
}

NO.2

中位值濾波

1 方法

連續采樣N次,按大小排列

取中間值為本次有效值

2 優缺點

克服波動干擾,對溫度等變化緩慢的被測參數有良好的濾波效果,對速度等快速變化的參數不宜。

3 代碼

#define N 11
char filter(){ 
  char value_buf[N]; 
  charcount,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[i]>value_buf[i+1]) { 
      temp = value_buf[i]; 
      value_buf[i] = value_buf[i+1]; 
     value_buf[i+1] = temp;
    }  
  return value_buf[(N-1)/2];
}

NO.3

算數平均濾波

1 方法

連續采樣N次,取平均

N較大時平滑度高,靈敏度低

N較小時平滑度低,靈敏度高

一般N=12

2 優缺點

適用于存在隨機干擾的系統,占用RAM多,速度慢。

3 代碼

#define N 12
charfilter(){  
  int sum =0;  
  for(count =0;count

NO.4

遞推平均濾波

1 方法

取N個采樣值形成隊列,先進先出

取均值

一般N=4~12

2 優缺點

對周期性干擾抑制性好,平滑度高

適用于高頻振動系統

靈敏度低,RAM占用較大,脈沖干擾嚴重

3 代碼

#define A 10
char Value;
char filter(){  
  char new_Value;   
  new_Value=get_ad();
   if(abs(new_Value-Value)>A)    
     return Value;   
  return new_Value;
}

NO.5

中位值平均濾波

1 方法

采樣N個值,去掉最大最小

計算N-2的平均值

N= 3~14

2 優缺點

融合了中位值,平均值的優點

消除脈沖干擾

計算速度慢,RAM占用大

3 代碼

char filter(){ 
  char count,i,j;
  char Value_buf[N]; 
  int sum=0;
 for(count=0;countValue_buf[i+1])  {      
     temp= Value_buf[i];  
    Value_buf[i]= Value_buf[i+1];   
    Value_buf[i+1]=temp; 
   } 
 for(count =1;count

NO.6

限幅平均濾波

1 方法

每次采樣數據先限幅后送入隊列

取平均值

2 優缺點

融合限幅、均值、隊列的優點

消除脈沖干擾,占RAM較多

3 代碼

#define A 10
#define N 12
char value,i=0;
char value_buf[N];
char filter(){  
  char new_value,sum=0;  
 new_value=get_ad();
 if(Abs(new_value-value)

NO.7

一階滯后濾波

1 方法

取a=0~1

本次濾波結果=(1-a)* 本次采樣 + a * 上次結果

2 優缺點

良好一直周期性干擾,適用波動頻率較高場合

靈敏度低,相位滯后

3 代碼

/*為加快程序處理速度,取a=0~100*/
#define a 30
char value;
char filter(){  
  char new_value;  
  new_value=get_ad();
  return ((100-a)*value +a*new_value);
}

NO.8

加權遞推平均濾波

1 方法

對遞推平均濾波的改進,不同時刻的數據加以不同權重,通常越新的數據權重越大,這樣靈敏度高,但平滑度低。

2 優缺點

適用有較大滯后時間常數和采樣周期短的系統,對滯后時間常數小,采樣周期長、變化慢的信號不能迅速反應其所受干擾。

3 代碼

/* coe數組為加權系數表 */
#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

NO.9

消抖濾波

1 方法

設置一個濾波計數器

將采樣值與當前有效值比較

若采樣值=當前有效值,則計數器清0

若采樣值不等于當前有效值,則計數器+1

若計數器溢出,則采樣值替換當前有效值,計數器清0

2 優缺點

對變化慢的信號濾波效果好,變化快的不好

避免臨界值附近的跳動,計數器溢出時若采到干擾值則無法濾波

3 代碼

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

NO.10

限幅消抖濾波

1 方法

先限幅,后消抖。

2 優缺點

融合了限幅、消抖的優點

避免引入干擾值,對快速變化的信號不宜

3 代碼

#defineA 10
#defineN 12
char value;
char filter(){ 
  char new_value,count=0; 
  new_value=get_ad();  
  while(value!=new_value) {
   if(Abs(value-new_value)=N)
       return new_value;     
     new_value=get_ad(); 
    }    
    return value;
  }
}

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • adc
    adc
    +關注

    關注

    98

    文章

    6452

    瀏覽量

    544148
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68368
  • 濾波算法
    +關注

    關注

    2

    文章

    88

    瀏覽量

    13710

原文標題:【補】ADC數據采集波動大,那是你還不知道這些濾波算法

文章出處:【微信號:chuxue_MCU,微信公眾號:單片機技術宅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電流型數據采集采集的波形有波動,有什么辦法去除嗎?

    請問一下各位,數據采集采集的信號有0.2毫安的波動不知道用什么方法可以讓采集的波形平穩一點,麻煩有經驗的朋友指點一下
    發表于 06-29 16:16

    數據采集程序 波形顯示出來不準確 不知道問題出在哪里

    這是我做的一個數據采集程序波形顯示出來不準確 不知道問題出在哪里 求大神指點
    發表于 01-16 10:29

    求助用Adam5000進行數據采集,現在需要進行組網不知道到該用什么設備

    進行鏈接,通過控制地址對每一個5000進行數據采集不知道應該選用哪種設備,是否有程序例程可供我參考(現在我都是用ASCII、串口讀回數據的)
    發表于 05-11 11:34

    有什么現成的濾波算法來消除ADC采集溫度的波動

    圖上是adc采集多組原始數據的平均值,隨著溫度漸變也會上下波動,有什么現成的濾波算法來消除
    發表于 07-27 10:23

    Miniplayer小技巧 保證有不知道

    Miniplayer小技巧 保證有不知道的 1,用電源充電完成后先別拔充電器,先按住開關別放再拔開線就不用更新歌曲庫了。
    發表于 02-01 16:38 ?686次閱讀

    90%的人不知道,vivoX9竟還有這些隱藏的功能!

    為了讓用戶使用手機更加方便高效,廠商會在其手機內添加許多實用的功能。而以下這些vivo手機實用的功能,可能卻還不知道!屏幕固定,顧名思義,就是在屏幕上固定當前應用程序的界面。
    發表于 01-13 09:37 ?4.7w次閱讀

    到底知不知道硬件設計是什么?

    想學習硬件電路方面的設計,但不知道怎么入手? 懵懵懂的進入硬件領域,對自己的發展和方向很迷茫? 做了一段時間硬件設計,事業發展和薪資遭遇瓶頸? 有時候必須承認,還不夠優秀!
    的頭像 發表于 05-18 11:27 ?9703次閱讀

    行業內有95%的人還不知道的成單秘訣

    行業內95%的人還不知道的成單秘訣
    的頭像 發表于 02-28 14:18 ?1920次閱讀
    行業內有95%的人<b class='flag-5'>還不知道</b>的成單秘訣

    關于可能不知道的printf

    可能不知道的printf
    的頭像 發表于 02-05 12:28 ?2595次閱讀
    關于<b class='flag-5'>你</b>可能<b class='flag-5'>不知道</b>的printf

    還不知道怎么解決精篩法蘭盤腐蝕沖刷問題?

    還不知道怎么解決精篩法蘭盤腐蝕沖刷問題?
    發表于 06-10 15:29 ?4次下載

    一些也許您還不知道的 TINA-TI 某些資源! (IV)

    一些也許您還不知道的 TINA-TI 某些資源! (IV)
    發表于 11-04 09:52 ?4次下載
    一些也許您<b class='flag-5'>還不知道</b>的 TINA-TI 某些資源! (IV)

    一些也許您還不知道的 TINA -TI 某些資源! (III)

    一些也許您還不知道的 TINA -TI 某些資源! (III)
    發表于 11-07 08:07 ?3次下載
    一些也許您<b class='flag-5'>還不知道</b>的 TINA -TI 某些資源! (III)

    一些也許您還不知道的 TINA-TI 某些資源! (II)

    一些也許您還不知道的 TINA-TI 某些資源! (II)
    發表于 11-07 08:07 ?2次下載
    一些也許您<b class='flag-5'>還不知道</b>的 TINA-TI 某些資源! (II)

    一些也許您還不知道的 TINA-TI 的那些資源!

    一些也許您還不知道的 TINA-TI 的那些資源!
    發表于 11-07 08:07 ?3次下載
    一些也許您<b class='flag-5'>還不知道</b>的 TINA-TI 的那些資源!

    揭秘pcb是什么物質:不知道的“化學戰士”

    揭秘pcb是什么物質:不知道的“化學戰士”
    的頭像 發表于 12-14 10:27 ?982次閱讀