#define MAX_COUNT 16
static float buf[MAX_COUNT]; /* 數(shù)據(jù)緩沖區(qū) */
static float sum; /* N個(gè)數(shù)據(jù)的算術(shù)和 */
static int cnt; /* 數(shù)據(jù)個(gè)數(shù) */
static int pos; /* 緩沖區(qū)位置 */
/*
* 滑動(dòng)平均值濾波。
* 每次新進(jìn)來(lái)一個(gè)數(shù)據(jù),就將最早進(jìn)來(lái)的數(shù)據(jù)丟掉,然后計(jì)算包括新數(shù)據(jù)在內(nèi)的N個(gè)數(shù)據(jù)的算術(shù)平均值。
*
* 每調(diào)用一次,就加入一個(gè)新數(shù)據(jù),并得到當(dāng)前的濾波值。
*/
float alg(float new_val)
{
/* 用一個(gè)減法,就做了"丟棄最舊的數(shù)據(jù),加入最新的數(shù)據(jù)"這一操作 */
sum += (new_val - buf[pos]);
buf[pos] = new_val;
/* pos,cnt可能可以合在一起,但用兩個(gè)變量,更清晰一些 */
// pos &= 0xf;
pos = (pos + 1) % MAX_COUNT;
/* 個(gè)數(shù)不足時(shí),cnt是實(shí)際個(gè)數(shù),個(gè)數(shù)足夠時(shí),cnt最多也只是MAX_COUNT */
//if (cnt < MAX_COUNT)
// cnt++;
cnt += (cnt < MAX_COUNT);
return sum / cnt;
}
滑動(dòng)平均值濾波
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- (1)、算數(shù)平均值法求權(quán)重 步驟: 判斷矩陣按列求和,得到新矩陣a_axis_0_sum 把判斷矩陣中的每一個(gè)數(shù)都...
- 從輸入任意個(gè)整型數(shù),統(tǒng)計(jì)其中的負(fù)數(shù)個(gè)數(shù)并求所有非負(fù)數(shù)的平均值,結(jié)果保留一位小數(shù),如果沒(méi)有非負(fù)數(shù),則平均值為0 本題...
- 形式 含義 算術(shù)平均數(shù)( arithmetic mean),又稱(chēng)均值,是統(tǒng)計(jì)學(xué)中最基本、最常用的一種平均指標(biāo),分為...
- 首先在我的電腦上找到需要 求平均值 的excel文檔,雙擊打開(kāi)或者右鍵點(diǎn)擊選擇’打開(kāi)‘該文檔,如圖示例打開(kāi) 測(cè)試0...