一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

單片機(jī)十種常見的濾波算法介紹

硬件攻城獅 ? 來源:嵌入式悅翔園 ? 作者:李斌 ? 2022-11-06 21:41 ? 次閱讀

前言

我們都知道,單片機(jī)的主要作用是控制外圍的器件,并實(shí)現(xiàn)一定的通信和數(shù)據(jù)處理。但在某些特定場合,不可避免地要用到數(shù)學(xué)運(yùn)算,盡管單片機(jī)并不擅長實(shí)現(xiàn)算法和進(jìn)行復(fù)雜的運(yùn)算。

所以,今天將給大家介紹十種常見的濾波算法,希望這篇文章能對大家有所幫助。

一、限幅濾波

1、方法

根據(jù)經(jīng)驗(yàn)判斷兩次采樣允許的最大偏差值A(chǔ)

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

2、優(yōu)缺點(diǎn)

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

3、代碼

/* A值根據(jù)實(shí)際調(diào),Value有效值,new_Value當(dāng)前采樣值,程序返回有效的實(shí)際值*/
#defineA10
charValue;
charfilter()
{
charnew_Value;
new_Value=get_ad();//獲取采樣值
if(abs(new_Value-Value)>A)returnValue;//abs()取絕對值函數(shù)
returnnew_Value;
}

二、中位值濾波

1、方法

連續(xù)采樣N次,按大小排列

取中間值為本次有效值

2、優(yōu)缺點(diǎn)

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

3、代碼

#defineN11
charfilter()
{
charvalue_buf[N];
charcount,i,j,temp;
for(count=0;countvalue_buf[i+1])
{
temp=value_buf[i];
value_buf[i]=value_buf[i+1];
value_buf[i+1]=temp;
}
returnvalue_buf[(N-1)/2];
}

三、算數(shù)平均濾波

1、方法

連續(xù)采樣N次,取平均

N較大時(shí)平滑度高,靈敏度低

N較小時(shí)平滑度低,靈敏度高

一般N=12

2、優(yōu)缺點(diǎn)

適用于存在隨機(jī)干擾的系統(tǒng),占用RAM多,速度慢。

3、代碼

#defineN12
charfilter()
{
intsum=0;
for(count=0;count

四、遞推平均濾波

1、方法

取N個(gè)采樣值形成隊(duì)列,先進(jìn)先出

取均值

一般N=4~12

2、優(yōu)缺點(diǎn)

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

適用于高頻振動(dòng)系統(tǒng)

靈敏度低,RAM占用較大,脈沖干擾嚴(yán)重

3、代碼

/* A值根據(jù)實(shí)際調(diào),Value有效值,new_Value當(dāng)前采樣值,程序返回有效的實(shí)際值*/
#defineA10
charValue;
charfilter()
{
charnew_Value;
new_Value=get_ad();//獲取采樣值
if(abs(new_Value-Value)>A)returnValue;//abs()取絕對值函數(shù)
returnnew_Value;
}

五、中位值平均濾波

1、方法

采樣N個(gè)值,去掉最大最小

計(jì)算N-2的平均值

N= 3~14

2、優(yōu)缺點(diǎn)

融合了中位值,平均值的優(yōu)點(diǎn)

消除脈沖干擾

計(jì)算速度慢,RAM占用大

3、代碼

charfilter()
{
charcount,i,j;
charValue_buf[N];
intsum=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

六、限幅平均濾波

1、方法

每次采樣數(shù)據(jù)先限幅后送入隊(duì)列

取平均值

2、優(yōu)缺點(diǎn)

融合限幅、均值、隊(duì)列的優(yōu)點(diǎn)

消除脈沖干擾,占RAM較多

3、代碼

#defineA10
#defineN12
charvalue,i=0;
charvalue_buf[N];
charfilter()
{
charnew_value,sum=0;
new_value=get_ad();
if(Abs(new_value-value)

七、一階滯后濾波

1、方法

取a=0~1

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

2、優(yōu)缺點(diǎn)

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

靈敏度低,相位滯后

3、代碼

/*為加快程序處理速度,取a=0~100*/
#definea30
charvalue;
charfilter()
{
charnew_value;
new_value=get_ad();
return((100-a)*value+a*new_value);
}

八、加權(quán)遞推平均濾波

1、方法

對遞推平均濾波的改進(jìn),不同時(shí)刻的數(shù)據(jù)加以不同權(quán)重,通常越新的數(shù)據(jù)權(quán)重越大,這樣靈敏度高,但平滑度低。

2、優(yōu)缺點(diǎn)

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

3、代碼

/*coe數(shù)組為加權(quán)系數(shù)表*/
#defineN12
charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};
charcodesum_coe={1+2+3+4+5+6+7+8+9+10+11+12};
charfilter()
{
charcount;
charvalue_buf[N];
intsum=0;
for(count=0;count

九、消抖濾波

1、方法

設(shè)置一個(gè)濾波計(jì)數(shù)器

將采樣值與當(dāng)前有效值比較

若采樣值=當(dāng)前有效值,則計(jì)數(shù)器清0

若采樣值不等于當(dāng)前有效值,則計(jì)數(shù)器+1

若計(jì)數(shù)器溢出,則采樣值替換當(dāng)前有效值,計(jì)數(shù)器清0

2、優(yōu)缺點(diǎn)

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

避免臨界值附近的跳動(dòng),計(jì)數(shù)器溢出時(shí)若采到干擾值則無法濾波

3、代碼

#defineN12
charfilter()
{
charcount=0,new_value;
new_value=get_ad();
while(value!=new_value)
{
count++;
if(count>=N)returnnew_value;
new_value=get_ad();
}
returnvalue;
}

十、限幅消抖濾波

1、方法

先限幅 后消抖

2、優(yōu)缺點(diǎn)

融合了限幅、消抖的優(yōu)點(diǎn)

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

3、代碼

#defineA10
#defineN12
charvalue;
charfilter()
{
charnew_value,count=0;
new_value=get_ad();
while(value!=new_value)
{
if(Abs(value-new_value)=N)returnnew_value;
new_value=get_ad();
}
returnvalue;
}
}
審核編輯:郭婷
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6058

    文章

    44822

    瀏覽量

    644862

原文標(biāo)題:學(xué)習(xí)單片機(jī)AD采樣必知的十大濾波算法!

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    PLC和單片機(jī)到底有什么區(qū)別?

    在自動(dòng)化和嵌入式開發(fā)領(lǐng)域,PLC和單片機(jī)是兩常見的控制系統(tǒng)。雖然它們有許多相似之處,但它們的功能、應(yīng)用范圍、開發(fā)成本等方面也存在顯著差異。本文將從多個(gè)角度詳細(xì)探討這兩者的不同之處,幫助大家更好地理
    的頭像 發(fā)表于 04-07 11:58 ?808次閱讀
    PLC和<b class='flag-5'>單片機(jī)</b>到底有什么區(qū)別?

    十種主流電機(jī)拆解全解析:內(nèi)部結(jié)構(gòu)大揭秘!

    點(diǎn)擊附件查看全文*附件:十種主流電機(jī)拆解全解析:內(nèi)部結(jié)構(gòu)大揭秘!.doc (免責(zé)聲明:本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時(shí)間告知,刪除內(nèi)容?。?
    發(fā)表于 04-01 14:25

    單片機(jī)調(diào)試常見問題與解決方法

    單片機(jī)調(diào)試是嵌入式系統(tǒng)開發(fā)中的一個(gè)重要環(huán)節(jié),它涉及到對單片機(jī)程序的測試和優(yōu)化,以確保系統(tǒng)能夠正常工作。在調(diào)試過程中,開發(fā)者可能會遇到各種問題。 1. 程序無法燒錄到單片機(jī) 問題描述: 在嘗試將程序
    的頭像 發(fā)表于 11-01 14:11 ?2390次閱讀

    如何實(shí)現(xiàn)51單片機(jī)與PC機(jī)的串行通信

    51單片機(jī)與PC機(jī)的串行通信是一常見的通信方式,它允許單片機(jī)通過串行接口與PC機(jī)進(jìn)行數(shù)據(jù)交換。
    的頭像 發(fā)表于 10-21 11:35 ?2104次閱讀

    單片機(jī)的中斷機(jī)制

    單片機(jī)的中斷機(jī)制是一重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機(jī)在各種應(yīng)用
    的頭像 發(fā)表于 10-17 18:03 ?1596次閱讀

    單片機(jī)io口的四工作狀態(tài)

    )是單片機(jī)與外部世界進(jìn)行數(shù)據(jù)交換的接口。每個(gè)I/O口可以配置為輸入或輸出狀態(tài),或者同時(shí)具備這兩功能。I/O口的狀態(tài)可以通過編程來控制,以滿足不同的應(yīng)用需求。 2. 單片機(jī)I/O口的工作原理 I/O口的工作原理涉及到數(shù)字電路的基
    的頭像 發(fā)表于 09-14 14:24 ?3158次閱讀

    單片機(jī)的三總線結(jié)構(gòu)

    單片機(jī)的三總線結(jié)構(gòu)包括地址總線(Address Bus, AB)、數(shù)據(jù)總線(Data Bus, DB)和控制總線(Control Bus, CB)。這三總線在單片機(jī)內(nèi)部及與外部設(shè)備
    的頭像 發(fā)表于 09-10 11:32 ?5945次閱讀

    天學(xué)會單片機(jī)可能嗎?單片機(jī)入門需要多久?

    學(xué)習(xí)單片機(jī)的過程,就像學(xué)習(xí)任何其他技能一樣,不僅在于書本上的知識,更在于實(shí)踐和應(yīng)用的能力。許多人可能會問:天能學(xué)會單片機(jī)嗎?答案是:可以,但這取決于你所定義的“學(xué)會”到什么程度。首先,讓我們明確
    的頭像 發(fā)表于 09-05 08:00 ?1947次閱讀
    <b class='flag-5'>十</b>天學(xué)會<b class='flag-5'>單片機(jī)</b>可能嗎?<b class='flag-5'>單片機(jī)</b>入門需要多久?

    stm32單片機(jī)引腳介紹及功能

    特點(diǎn),廣泛應(yīng)用于工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備、智能家居等領(lǐng)域。本文將介紹STM32單片機(jī)的引腳及其功能。 1. 引腳概述 STM32單片機(jī)的引腳數(shù)量和類型因型號而異,常見的有48引腳、
    的頭像 發(fā)表于 09-02 09:38 ?1.1w次閱讀

    單片機(jī)驅(qū)動(dòng)彩屏最簡方案:單片機(jī)_RA8889最小開發(fā)板驅(qū)動(dòng)控制TFT彩屏介紹(一)

    本文介紹使用單片機(jī)+RA8889來驅(qū)動(dòng)和控制彩屏的最小方案。文章從RA8889的架構(gòu)功能、硬件電路設(shè)計(jì)及軟件設(shè)計(jì)三個(gè)方面來說明。 小編已發(fā)布多篇文章介紹單片機(jī)+RA8889來驅(qū)動(dòng)控
    發(fā)表于 08-22 17:31

    十種常見硬件電路,你都用過沒(下)

    十種電路已經(jīng)列舉完成了,分別是電源電路、放大電路、濾波電路、振蕩電路、調(diào)制解調(diào)電路、邏輯電路、開關(guān)電源電路、傳感器電路、混合信號電路、射頻電路。
    的頭像 發(fā)表于 08-01 18:55 ?3476次閱讀
    <b class='flag-5'>十種</b><b class='flag-5'>常見</b>硬件電路,你都用過沒(下)

    低通濾波器、高通濾波器、帶通濾波器的簡單介紹

    在信號處理領(lǐng)域,濾波器是一重要的電子元件或算法,用于從復(fù)雜信號中提取或抑制特定頻率成分。其中,低通濾波器、高通濾波器和帶通
    的頭像 發(fā)表于 07-09 18:04 ?2.7w次閱讀
    低通<b class='flag-5'>濾波</b>器、高通<b class='flag-5'>濾波</b>器、帶通<b class='flag-5'>濾波</b>器的簡單<b class='flag-5'>介紹</b>

    PLC與單片機(jī)的區(qū)別是什么

    在工業(yè)自動(dòng)化和電子領(lǐng)域中,PLC(Programmable Logic Controller,可編程邏輯控制器)和單片機(jī)(Single-Chip Microcomputer)是兩常見的控制設(shè)備
    的頭像 發(fā)表于 05-28 16:11 ?2774次閱讀

    STM32單片機(jī)有哪幾種常見的開發(fā)環(huán)境?

    STM32單片機(jī)是一款廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)的單片機(jī),針對其開發(fā),有以下幾種常見的方式:STM32單片機(jī)有哪幾種常見的開發(fā)環(huán)境?KeilM
    的頭像 發(fā)表于 05-18 08:04 ?4001次閱讀
    STM32<b class='flag-5'>單片機(jī)</b>有哪幾種<b class='flag-5'>常見</b>的開發(fā)環(huán)境?

    大學(xué)生學(xué)單片機(jī)不能錯(cuò)過的比賽

    單片機(jī)比賽是電子和計(jì)算機(jī)領(lǐng)域的一項(xiàng)重要賽事,旨在提升參賽者的專業(yè)技能、團(tuán)隊(duì)協(xié)作能力和創(chuàng)新思維。以下是一些常見單片機(jī)比賽
    的頭像 發(fā)表于 05-15 09:50 ?2350次閱讀
    大學(xué)生學(xué)<b class='flag-5'>單片機(jī)</b>不能錯(cuò)過的比賽