亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著基于模型設計的廣泛應用,模型在環仿真也逐漸多了起來,我們今天介紹幾種嵌入式常用濾波算法的matlab實現。

一、采用數字濾波算法克服隨機干擾的誤差具有以下優點:

  1. 數字濾波無需其他的硬件成本,只用一個計算過程,可靠性高,不存在阻抗匹配問題。尤其是數字濾波可以對頻率很低的信號進行濾波,這是模擬濾波器做不到的。

  2. 數字濾波使用軟件算法實現,多輸入通道可共用一個濾波程序,降低系統開支。

  3. 只要適當改變濾波器的濾波程序或運算,就能方便地改變其濾波特性,這對于濾除低頻干擾和隨機信號會有較大的效果。

  4. 在單片機系統中常用的濾波算法有限幅濾波法、中值濾波法、算術平均濾波法、加權平均濾波法、滑動平均濾波等。

%% 代碼測試框架clearsignal=wgn(1,1000,10);signal=10+signal;signalFited=zeros(1,1000);for i=1:1000signalFited(i)=MyFilter(@LowPasFilter,signal(i)); % 改一下句柄名字就可以了。endplot(signal);hold on;plot(signalFited);function output = MyFilter(fun,input)%MyFilter 濾波測試函數% MyFilter.m output=fun(input);end

二、限幅濾波該運算的過程中將兩次相鄰的采樣相減,求出其增量,然后將增量的絕對值,與兩次采樣允許的最大差值maxErr進行比較。maxErr的大小由被測對象的具體情況而定,如果小于或等于允許的最大差值,則本次采樣有效;否則取上次采樣值作為本次數據的樣本。

限幅濾波法主要用于處理變化較為緩慢的數據,如溫度、物體的位置等。使用時,關鍵要選取合適的門限制maxErr。通常這可由經驗數據獲得,必要時可通過實驗得到。

function out = LimRanFilter(input)%LimRan 限幅度濾波函數% LimRanFilter.mmaxErr=5;%允許最大誤差 persistent last;if isempty(last) last=input;end%上一次的值if((input-last)>maxErr||(last-input)>maxErr) out=last;else out=input;endend

技術分享 | 嵌入式常用濾波算法的matlab實現

三、中值濾波

該運算的過程是對某一參數連續采樣N次(N一般為奇數),然后把N次采樣的值按從小到大排列,再取中間值作為本次采樣值,整個過程實際上是一個序列排序的過程。

中值濾波比較適用于去掉由偶然因素引起的波動和采樣器不穩定而引起的脈動干擾。若被測量值變化比較慢,采用中值濾波法效果會比較好,但如果數據變化比較快,則不宜采用此方法。

function output= MeanFilter(input)%MeanFilter 中值濾波% MeanFilter.mpersistent buff;if isempty(buff) buff=[2 0 0 0 0 0];end%選擇序列if(buff(1)<7) buff(buff(1))=input; buff(buff(1))=buff(buff(1))+1;else for i=2:5 if(buff(i)>buff(i+1)) temp=buff(i); buff(i)=buff(i+1); buff(i+1)=temp; end end buff(2:6)=0; buff(1)=2;end%初始化濾波緩沖區output=buff(4);end

技術分享 | 嵌入式常用濾波算法的matlab實現

四、滑動平均濾波

平均濾波算法有一個特點,即每獲取一個有效采樣值必須連續進行若干次采樣,當采速度慢時,系統的實時得不到保證。這里介紹的滑動平均濾波算法只采樣一次,將一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用。如果取N個采樣值求平均,存儲區中必須開辟N個數據的暫存區。每新采集一個數據便存入暫存區中,同時去掉一個最老數據,保存這N個數據始終是最新更新的數據。采用環型隊列結構可以方便地實現這種數據存放方式。

function output= MovAveFilter(input)%MovAveFilter 滑動平均濾波% ´MovAveFilter.mpersistent buff;if isempty(buff) buff=[ 0 0 0 0 0 ];end%滑動窗口persistent numOfBuff;if isempty(numOfBuff) numOfBuff=0;end%´當前窗口元素persistent k;if isempty(k) k=1;end%計數器buff(k)=input;k=mod((k+1),5)+1;numOfBuff=numOfBuff+1;if(numOfBuff>5) numOfBuff=5;endoutput=sum(buff)/numOfBuff;end

技術分享 | 嵌入式常用濾波算法的matlab實現

五、低通濾波

將普通硬件RC低通濾波器的微分方程用差分方程來表求,變可以采用軟件算法來模擬硬件濾波的功能,經推導,低通濾波算法如下:

Yn=a* Xn+(1-a) *Yn-1式中 Xn——本次采樣值Yn-1——上次的濾波輸出值;a——濾波系數,其值通常遠小于1;Yn——本次濾波的輸出值。

function output= LowPasFilter(input)%LowPasFilter低通濾波% ´LowPasFilter.mpersistent yn0;if isempty(yn0) yn0=0;end%上次輸出值a=0.5;%濾波系數output=inputa+yn0(1-a);yn0=output;end

技術分享 | 嵌入式常用濾波算法的matlab實現

這幾種是使用較多的濾波算法,比較方便進行仿真與編寫,還有擴展卡爾曼等的實現可以根據實際情況來運用,在一般領域這幾種濾波算法已經能夠達到很好的效果了。

  • End -

技術發展的日新月異,阿木實驗室將緊跟技術的腳步,不斷把機器人行業最新的技術和硬件推薦給大家。看到經過我們培訓的學員在技術上突飛猛進,是我們培訓最大的價值。如果你在機器人行業,就請關注我們的公眾號,我們將持續發布機器人行業最有價值的信息和技術。

阿木實驗室致力于前沿IT科技的教育和智能裝備,讓機器人研發更高效!

分享到:
標簽:濾波 算法
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定