濾波演算法 遞推平均濾波法

2021-09-24 09:29:25 字數 1236 閱讀 8648

基本方法:採用佇列作為測量資料儲存器,設佇列的長度為n ,每進行一次測量,把測量結果放於隊尾,而扔掉原來隊首的乙個資料,這樣在佇列中始終就有n最新的資料。當計算平均值時,只要把佇列中的n個資料進行算數平均,就可得到新的算數平均值。這樣每進行一次測量,就可得到乙個新的算術平均值。

其程式如下所示:

#include // 定義濾波資料型別

typedef int filter_type;

// 函式宣告

filter_type filter(filter_type value_buf, filter_type new_value, int num);

// 遞推平均濾波函式

filter_type filter(filter_type value_buf, filter_type new_value, int num)

{ static int i;

int count;

filter_type sum = 0;

value_buf[i++] = new_value;

// 除錯資訊

/*for (count=0; count程式結果:

(0+2+3+4+5)/5 = 2.8;(0+8+3+4+5)/5 = 4;(0+8+16+4+5)/5 = 6.6;全部整型輸出分別為2、4、6

數字濾波 遞推平均濾波

define rm buf len 10 遞推陣列的長度 uint16 t rm filter buf rm buf len 儲存資料的遞推陣列 uint16 t adcx recursive mean filter uint16 t get adc rm filter buf rm buf len...

滑動平均濾波

滑動平均濾波,視窗長度為6 matlab視窗長度6進行濾波,輸入為512點,輸出為507點,最後幾個點未進行處理 滑動平均後,波形中的小波動消失 用於平滑雜訊 matlab code function t1 huadong d temp untitled summary of this functi...

c語言 算術平均濾波法 算術平均濾波C程式

檔名 arithmeticfilter.c 功能描述 算術平均濾波,乙個週期內取樣 n次資料,取n 次取樣值的算術平均值做為這個週期的取樣值 include define uchar unsigned char define uint unsigned int 取樣次數 define n 4 次取樣...