0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移動(dòng)平均濾波的原理和C代碼

撞上電子 ? 2023-12-04 08:00 ? 次閱讀

移動(dòng)平均濾波是一種簡(jiǎn)單有效的平滑信號(hào)的方法,它通過(guò)計(jì)算一系列數(shù)據(jù)點(diǎn)的平均值來(lái)減小信號(hào)中的波動(dòng)?;镜囊苿?dòng)平均濾波方法有兩種:簡(jiǎn)單移動(dòng)平均(SMA)和指數(shù)加權(quán)移動(dòng)平均(EWMA)。


簡(jiǎn)單移動(dòng)平均濾波(SMA)的原理:

簡(jiǎn)單移動(dòng)平均濾波通過(guò)計(jì)算一定窗口內(nèi)數(shù)據(jù)點(diǎn)的平均值來(lái)平滑信號(hào)。窗口的大小決定了濾波器對(duì)信號(hào)的平滑程度,窗口越大,平滑效果越明顯。對(duì)于第n個(gè)數(shù)據(jù)點(diǎn)(X_n),其簡(jiǎn)單移動(dòng)平均值(SMA_n)可以計(jì)算為:


335c4eee-9238-11ee-9788-92fbcf53809c.png


其中,K是窗口大小。


簡(jiǎn)單移動(dòng)平均濾波的C代碼示例:以下是一個(gè)簡(jiǎn)單移動(dòng)平均濾波的C代碼示例,假設(shè)輸入數(shù)據(jù)存儲(chǔ)在數(shù)組中:

#include

#define WINDOW_SIZE 5

// 函數(shù)原型float simpleMovingAverage(float data[], int dataSize);

int main() { // 輸入數(shù)據(jù) float inputData[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}; int dataSize = sizeof(inputData) / sizeof(inputData[0]);

// 計(jì)算簡(jiǎn)單移動(dòng)平均 float result = simpleMovingAverage(inputData, dataSize);

// 打印結(jié)果 printf("Simple Moving Average: %f\n", result);

return 0;}

// 計(jì)算簡(jiǎn)單移動(dòng)平均float simpleMovingAverage(float data[], int dataSize) { float sum = 0.0;

// 計(jì)算窗口內(nèi)數(shù)據(jù)的和 for (int i = 0; i < WINDOW_SIZE; ++i) { sum += data[i]; }

// 計(jì)算移動(dòng)平均值 float movingAverage = sum / WINDOW_SIZE;

// 返回結(jié)果 return movingAverage;}

在這個(gè)示例中,WINDOW_SIZE 定義了移動(dòng)平均的窗口大小,可以根據(jù)需要調(diào)整。simpleMovingAverage 函數(shù)用于計(jì)算輸入數(shù)據(jù)的簡(jiǎn)單移動(dòng)平均值。這只是一個(gè)基本的示例,實(shí)際應(yīng)用中可能需要根據(jù)具體需求進(jìn)行調(diào)整和優(yōu)化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波
    +關(guān)注

    關(guān)注

    10

    文章

    662

    瀏覽量

    56569
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2773

    瀏覽量

    76539
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    89

    瀏覽量

    14268
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    平均濾波

    平均濾波
    發(fā)表于 07-18 16:37

    求平滑濾波系數(shù)所編的移動(dòng)平均濾波器程序

    用平滑濾波系數(shù)所編的移動(dòng)平均濾波器程序
    發(fā)表于 05-21 23:39

    求基于Verilog的遞推平均濾波程序

    哪位大神有基于Verilog的遞推平均濾波程序?小弟不勝感激
    發(fā)表于 06-28 17:03

    卡爾曼濾波c++代碼

    卡爾曼濾波c++代碼,基于mpu6050的,非常好使。親測(cè)有效。
    發(fā)表于 04-18 14:32

    卡爾曼濾波C代碼

    a往南向北 2019-01-16 20:39:20 11340 收藏 111分類(lèi)專(zhuān)欄: C語(yǔ)言嵌入式 文章標(biāo)簽: 卡爾曼濾波 C代碼卡爾曼濾波
    發(fā)表于 08-17 09:10

    中位值平均濾波法相關(guān)資料分享

    中位值平均濾波濾波法就是通過(guò)連續(xù)采樣N個(gè)數(shù)據(jù),然后對(duì)數(shù)據(jù)從小到大排序,然后去掉最大值和最小值,對(duì)剩余的N-2個(gè)值計(jì)算算數(shù)平均值。也就是中位值濾波
    發(fā)表于 01-11 06:26

    加權(quán)遞推平均濾波法是什么

    加權(quán)遞推平均濾波法是對(duì)遞推平均濾波法的改進(jìn),即不同時(shí)刻的數(shù)據(jù)加以不同的權(quán)。通常是,越接近現(xiàn)時(shí)刻的數(shù)據(jù),權(quán)取得越大。給予新采樣值的權(quán)系數(shù)越大,則靈敏度越高,但信號(hào)平滑度越低。下面直接看
    發(fā)表于 01-11 07:01

    什么是限幅平均濾波

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

    全波整流取平均濾波

    全波整流取平均濾波器 輸入信號(hào)由D1、D2和運(yùn)算
    發(fā)表于 09-17 15:28 ?1521次閱讀
    全波整流取<b class='flag-5'>平均</b>值<b class='flag-5'>濾波</b>器

    移動(dòng)硬盤(pán)的平均尋道時(shí)間

    移動(dòng)硬盤(pán)的平均尋道時(shí)間            平均尋道時(shí)間的英文拼寫(xiě)是Average Seek Time,它是了解硬盤(pán)性能至關(guān)重要的參數(shù)之一。它
    發(fā)表于 01-09 14:37 ?840次閱讀

    C28x Filter Library數(shù)字濾波源代碼

    C28x Filter Library,數(shù)字濾波源代碼。
    發(fā)表于 05-24 09:45 ?19次下載

    淺談移動(dòng)平均濾波C實(shí)現(xiàn)設(shè)計(jì)

    提到平均濾波器,做過(guò)單片機(jī)應(yīng)用開(kāi)發(fā)的朋友,馬上能想到將一些采樣數(shù)據(jù)進(jìn)行加和求平均。
    發(fā)表于 05-03 01:15 ?2017次閱讀
    淺談<b class='flag-5'>移動(dòng)</b><b class='flag-5'>平均</b><b class='flag-5'>濾波</b>器<b class='flag-5'>C</b>實(shí)現(xiàn)設(shè)計(jì)

    非局部平均濾波——NL-Menas的算法理論

    “ 雙邊濾波采用了距離與相似度因素,進(jìn)行權(quán)重的計(jì)算,但在相似度計(jì)算時(shí),僅僅是通過(guò)像素間的均方差(相似度)來(lái)計(jì)算權(quán)重,容易受噪聲影響。而非局部平均濾波采用塊之間的相似度計(jì)算,有效的提高了匹配的準(zhǔn)確度
    的頭像 發(fā)表于 08-10 14:45 ?4957次閱讀
    非局部<b class='flag-5'>平均</b><b class='flag-5'>濾波</b>——NL-Menas的算法理論

    模擬量平均濾波是什么

    的模擬量輸入模塊一般都有平均濾波的功能,例如,S7-200編程軟件的系統(tǒng)塊中模擬量輸入濾波器的“樣本數(shù)日”就是用來(lái)設(shè)置平均濾波的采樣周期的
    發(fā)表于 12-22 11:34 ?1823次閱讀

    深入了解高級(jí)CODAS移動(dòng)平均算法

    DATAQ 儀器的移動(dòng)平均算法在波形濾波應(yīng)用中具有很大的靈活性。它可以用作低通濾波器,以衰減許多類(lèi)型波形中固有的噪聲,或用作高通濾波器以消除
    的頭像 發(fā)表于 12-05 14:45 ?973次閱讀
    深入了解高級(jí)CODAS<b class='flag-5'>移動(dòng)</b><b class='flag-5'>平均</b>算法