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


/*
A、名稱:遞推平均濾波法(又稱滑動平均濾波法)
B、方法:
把連續取得的N個采樣值看成一個隊列,隊列的長度固定為N,
每次采樣到一個新數據放入隊尾,並扔掉原來隊首的一次數據(先進先出原則),
把隊列中的N個數據進行算術平均運算,獲得新的濾波結果。
N值的選取:流量,N=12;壓力,N=4;液面,N=4-12;溫度,N=1-4。
C、優點:
對周期性干擾有良好的抑制作用,平滑度高;
適用於高頻振盪的系統。
D、缺點:
靈敏度低,對偶然出現的脈沖性干擾的抑制作用較差;
不易消除由於脈沖干擾所引起的采樣值偏差;
不適用於脈沖干擾比較嚴重的場合;
比較浪費RAM。
E、整理:jeffasd
*/

#include <iostream>
using namespace std;

// 遞推平均濾波法(又稱滑動平均濾波法)
#define FILTER_N 5

int Get_AD(void)
{
    int foo;
    scanf("%d",&foo);
    return foo;
}


int filter_buf[FILTER_N + 1];
int Filter() 
{
    int i;
    int filter_sum = 0;
    filter_buf[FILTER_N] = Get_AD();    //AD轉換的值賦給數組最后一個值
    for(i = 0; i < FILTER_N; i++) 
    {
        filter_buf[i] = filter_buf[i + 1]; // 所有數據左移,低位仍掉
        filter_sum += filter_buf[i];
    }
    return (int)(filter_sum / FILTER_N);
}

//int Filter(); 


int main()
{
    int foo;
    while(1)
    {
        foo = Filter();
        printf("the Filter is %d\n",foo);
    }
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM