




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、隨機(jī)誤差是有隨機(jī)干攪引起的,其特點是在相同條件下測量同一個量時,其大小和符號做無規(guī)則變化而無法預(yù)測,但多次測量結(jié)果符合統(tǒng)計規(guī)律。為克服隨機(jī)干攪引入的誤差,硬件上可采用濾波技術(shù),軟件上可以采用軟件算法實現(xiàn)數(shù)字濾波,其算法往往是系統(tǒng)測控算法的一個重要組成部分,實時性很強(qiáng),采用匯編語言來編寫。采用數(shù)字濾波算法克服隨機(jī)干攪引入的誤差具有以下幾個優(yōu)點:(1)數(shù)字濾波無須硬件,只用一個計算過程,可靠性高,不存在阻抗匹配問題,尤其是數(shù)字濾波可以對頻率很高或很低的信號進(jìn)行濾波,這是模擬濾波器做不到的。(2)數(shù)字濾波是用軟件算法實現(xiàn)的,多輸入通道可用一個軟件“濾波器”從而降低系統(tǒng)開支。(3)只要適當(dāng)改變軟件濾波
2、器的濾波程序或運(yùn)行參數(shù),就能方便地改變其濾波特性,這個對于低頻、脈沖干攪、隨機(jī)噪聲等特別有效。常用的數(shù)字濾波器算法有程序判斷法、中值判斷法、算術(shù)平均值法、加權(quán)濾波法、滑動濾波法、低通濾波法和復(fù)合濾波法。1 程序判斷法:程序判斷法又稱限副濾波法,其方法是把兩次相鄰的采樣值相減,求出其增量(以絕對值表示)。然后與兩次采樣允許的最大差值Y進(jìn)行比較,Y的大小由被測對象的具體情況而定,若小于或等于4丫,則取本次采樣白值。若大于Y,則取上次采樣值作為本次采樣值,即yn-yn-1|0¥,則yn有效,yn-yn-1|>¥,則yn-1有效。式中yn第n次采樣的值。Yn-1第(n-1)次
3、采樣的值。Y相鄰兩次采樣值允許的最大偏差。設(shè)R1和R2為內(nèi)部RAMI元,分別存放yn-1和yn,濾波值也存放在R2單元,采用MCS-51單片機(jī)指令編寫的程序判斷法子程序如下:付表2.中值濾波法即對某一參數(shù)連續(xù)采樣N次(一般N為奇數(shù)),然后把N次采樣值按從小到大排隊,再取中間值作為本次采樣值。設(shè)DATA%存放采樣值的內(nèi)存單元首地址,SAM次存放濾波值的內(nèi)存單元地址,N為采樣值個數(shù),用MCS-51指令編寫的中值濾波子程序如下:副表3算術(shù)平均值濾波算法CTGS-資料文件算術(shù)平均濾波法就是連續(xù)取N次采樣值進(jìn)行算術(shù)平均,其數(shù)學(xué)表達(dá)式是:Y=Eyiy=1/N£yii=1N式中yN個采樣值的算術(shù)平
4、均值。Yi第i個采樣值。設(shè)8次采樣值依次存放在地址DATAF始的連續(xù)單元中,濾波結(jié)果保留在累加器A中,程序如下:副表4. 加權(quán)平均濾波法算術(shù)平均濾波法存在前面所說的平滑和靈敏度之間的矛盾。采樣次數(shù)太少,平滑效果差,次數(shù)太多,靈敏度下降,對參數(shù)的變化趨勢不敏感。協(xié)調(diào)兩者關(guān)系,可采用加權(quán)平均濾波,對連續(xù)N次采樣值,分別乘上不同的加權(quán)系數(shù)之后再求累加和,加權(quán)系數(shù)一般先小后大,以突出后面若干采樣的效果,加強(qiáng)系統(tǒng)對參數(shù)的變化趨勢的辯識,各個加權(quán)系數(shù)均為小于1的小數(shù),且滿足總和等于1的約束條件,這樣,加權(quán)運(yùn)算之后的累加和即為有效采樣值。為方便計算,可取各個加權(quán)系數(shù)均為整數(shù),且總和為256,加權(quán)運(yùn)算后的累加
5、和除以256(即舍去低字節(jié))后便是有效采樣值。設(shè)每批采樣8個數(shù)據(jù),依次存放在地址DATAF始的單元中,各加權(quán)系數(shù)是用一個表格存放在ROW,MCS-51旨令編寫的算術(shù)平均濾波程序如下:副表5. 滑動平均濾波法:以上推薦的各種平均濾波算法有一個共同點,即每取得一個有效采樣值必須連續(xù)進(jìn)行若干次采樣,當(dāng)采樣速度較慢(如雙積分型A/D轉(zhuǎn)換)或目標(biāo)參數(shù)變化較快時,系統(tǒng)的實時性不能保證,滑動平均濾波算法只采樣一次,將這一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用,如果取N個采樣值求平均,RAMfr必須開辟N個數(shù)據(jù)的暫存區(qū)。每新采樣一個數(shù)據(jù)便存入暫存區(qū),同時去掉一個最老的數(shù)據(jù),保持這
6、N個數(shù)據(jù)始終是最近的數(shù)據(jù),這種數(shù)據(jù)存放方式可以用環(huán)行隊列結(jié)構(gòu)方便的實現(xiàn)。設(shè)環(huán)行隊列為40H-4FH連續(xù)16個單元,RO作為隊尾指針,濾波程序如下:副表6. 低通濾波法:將普通硬件RC低通濾波器的微分方程用差分方程來表求,變可以采用軟件算法來模擬硬件濾波的功能,經(jīng)推導(dǎo),低通濾波算法如下:Yn=a*Xn+(1-a)*Yn-1式中Xn本次采樣值Yn-1上次的濾波輸出值。1。Yn-本次濾波的輸出值。由上式可以看出,本次濾波的輸出值主要取決于上次濾波的輸出值(注意不是上次的采樣值,這和加權(quán)平均濾波是有本質(zhì)區(qū)別的),本次采樣值對濾波輸出的貢獻(xiàn)是比較小的,但多少有些修正作用,這種算法便模擬了具體有教大慣性的
7、低通濾波器功能。濾波算法的截止頻率可用以下式計算:fL=a/2Pitpi為圓周率3.14式中a濾波系數(shù)。t采樣間隔進(jìn)度。例如:當(dāng)t=0.5s(即每秒2次),a=1/32時。fL=(1/32)/(2*3.14*0.5)=0.01Hz當(dāng)目標(biāo)參數(shù)為變化很慢的物理量時,這是很有效的。另外一方面,它不能濾除高于1/2采樣頻率的干攪信號,本例中采樣頻率為2Hz,故對1Hz以上的干攪信號應(yīng)采用其他方式濾除,低通濾波算法程序于加權(quán)平均濾波相似,但加權(quán)系數(shù)只有兩個:a和1-a。為計算方便,a取一整數(shù),1-a用256-a,來代替,計算結(jié)果舍去最低字節(jié)即可,因為只有兩項,a和1-a,均以立即數(shù)的形式編入程序中,不另
8、外設(shè)表格。雖然采樣值為單元字節(jié)(8位A/D)o為保證運(yùn)算精度,濾波輸出值用雙字節(jié)表示,其中一個字節(jié)整數(shù),一字節(jié)小數(shù),否則有可能因為每次舍去尾數(shù)而使輸出不會變化。設(shè)Yn-1存放在30H(整數(shù))和31H(小數(shù))兩單元中,Yn存放在32H(整數(shù))和33H(小數(shù))中。濾波程序如下:副表結(jié)束語:微型計算機(jī)在儀器儀表系統(tǒng)中的成功應(yīng)用,使傳統(tǒng)的電子儀器以及復(fù)雜的跟蹤測量裝置發(fā)生了許多革命性變化。其中一個突出表現(xiàn)就是一個系統(tǒng)中包含了智能性運(yùn)作。微機(jī)具有很強(qiáng)的分析和運(yùn)算能力,智能系統(tǒng)可完成復(fù)雜的數(shù)據(jù)處理,智能系統(tǒng)采用軟件硬件想結(jié)合的方法進(jìn)行隨機(jī)誤差的數(shù)字濾波和系統(tǒng)誤差的修正,可以實現(xiàn)實時修正,較準(zhǔn)測量數(shù)據(jù),這些
9、都是傳統(tǒng)儀器難以比擬的。#include<stdio.h>#include<absacc.h>#include<intrins.h>#include<./Atmel/at89x52.h>#include"source.hmain()filter_1();filter_2();filter_3();filter_4();filter_5();filter_6();filter_7();filter_8();filter_9();filter_10();unsignedcharget_ad(void)staticunsignedchari;
10、returni+;voiddelay(void)unsignedchari=0;while(1)i+;if(i>20)return;#defineA10/設(shè)置兩次采樣允許的最大偏差值charvalue;/上次采用后的有效值變量charfilter_1(void)charnew_value;/本次采樣值變量new_value=get_ad();/讀入本次采樣值if(new_value-value>A)|(value-new_value>A)/比較是否超出最大偏差值returnvalue;/如果超出,返回上次的有效值作為本次的有效值returnnew_value;/如果沒有超出,
11、返回本次的采樣值作為本次的有效值#defineN11/設(shè)置連續(xù)采樣的次數(shù)charfilter_2(void)charvalue_bufN;/緩存N次采樣值的存儲變量charcount,i,j,temp;/i,j是冒泡排序的下標(biāo)變量,count是采樣數(shù)據(jù)讀入的下標(biāo)變量/temp是臨時變量for(count=0;count<N;count+)/連續(xù)讀入N個采樣值value_bufcount=get_ad();delay();for(j=0;j<N;j+)/氣泡排序,由小到大for(i=0;i<N-j;i+)if(value_bufi>value_bufi+1)temp=va
12、lue_bufi;value_bufi=value_bufi+1;value_bufi+1=temp;returnvalue_buf(N-1)/2;將排序后N個采樣值的中間值作為最后結(jié)果返回#undefN#defineN12/設(shè)置每組參與平均運(yùn)算的采樣值個數(shù)charfilter_3()intsum=0;/求和變量,用于存儲采樣值的累加值charcount;/采樣數(shù)據(jù)讀入的下標(biāo)變量for(count=0;count<N;count+)/連續(xù)讀入N個采樣值,并累力口sum+=get_ad();delay();return(char)(sum/N);/講累加值進(jìn)行平均計算作為返回值#undef
13、N#defineN12/設(shè)置FIFO隊列的長度charvalue_bufN;/FIFO隊列變量chari=0;/隊列的下標(biāo)變量charfilter_4()charcount;intsum=0;value_bufi+=get_ad();if(i=N)i=0;for(count=0;count<N;count+)sum+=value_bufcount;return(char)(sum/N);#undefN#defineN12/設(shè)置每組采樣值的數(shù)量charfilter_5()charcount,i,j,temp;/i,j是冒泡排序的下標(biāo)變量,count是采樣數(shù)據(jù)讀入的下標(biāo)變量charvalue
14、_bufN;緩沖N個采樣值的存儲變量intsum=0;/求和變量,用于存儲采樣值的累加值for(count=0;count<N;count+)/連續(xù)讀入N個采樣值value_bufcount=get_ad();delay();for(j=0;j<N-1;j+)/氣泡排序,由小到大for(i=0;i<N-j;i+)if(value_bufi>value_bufi+1)temp=value_bufi;value_bufi=value_bufi+1;value_bufi+1=temp;for(count=1;count<N-1;count+)sum+=value_buf
15、count;/去掉兩端的最小和最大采樣值,對中間的N-2個采樣值求和return(char)(sum/(N-2);/返回中間N-2個采樣值的平均值#undefA#undefN# defineA10/設(shè)置兩次采樣允許的最大偏差值# defineN12/設(shè)置每組參與平均運(yùn)算的采樣值個數(shù)charvalue;/上次采用后的有效值變量charfilter_6()charnew_value;/本次采樣值變量intsum=0;/求和變量,用于存儲采樣值的累加值charcount;/采樣數(shù)據(jù)讀入的下標(biāo)變量for(count=0;count<N;count+)new_value=get_ad();/讀入本
16、次采樣值if(new_value-value>A)|(value-new_value>A)/比較是否超出最大偏差值new_value=value;/如果超出,返回上次的有效值作為本次的有效值sum+=new_value;/累加采樣的有效值value=new_value;delay();CTGS-資料文件return(char)(sum/N);/將累加值進(jìn)行平均計算作為返回值# defineCOE50/定義加權(quán)系數(shù)charvalue;/上一個采樣值變量charfilter_7()charnew_value;/本次采樣值變量new_value=get_ad();return(100-C
17、OE)*value+COE*new_value;/返回的本次濾波結(jié)果#undefN# defineN12/設(shè)置FIFO隊列的長度charcodecoeN=1,2,3,4,5,6,7,8,9,10,11,12;/加權(quán)系數(shù)charcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter_8()charcount;/采樣數(shù)據(jù)讀入的下標(biāo)變量charvalue_bufN;/CTGS-資料文件緩存N個采樣值的存儲變量intsum=0;/求和變量,用于存儲采樣值的累加值for(count=0;count<N;count+)value_bufcount=get_
18、ad();/讀入采樣值delay();for(count=0;count<N;count+)sum+=value_bufcount*coecount;/累加采樣值和系數(shù)的乘積return(char)(sum/sum_coe);/累加值與系數(shù)和相除作為返回結(jié)果#undefN#defineN12/設(shè)置計數(shù)器溢出值charfilter_9()charcount=0;/計數(shù)變量charnew_value;/本次采樣值變量new_value=get_ad();/讀入本次采樣值while(value!=new_value);count+;/計數(shù)器加1if(count>=N)returnnew_value;/如果本次采樣值與當(dāng)前有效值不相等,/且計數(shù)器溢出,返回本次采樣值delay();new_value=get_ad();returnvalue;/如果本次采樣值與當(dāng)前有效值相等,則返回當(dāng)前有效值#undefA#undefN#defineA10/設(shè)置兩次采樣允許的最大偏差值#defineN12/設(shè)置計數(shù)器溢出值charvalue;/有效值變量charfilter_10()charcount=0;/計數(shù)變量charnew_value;/本次采樣值變量n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 配送流程合同范本
- 中醫(yī)院內(nèi)科醫(yī)生年終總結(jié)
- 加盟學(xué)習(xí)產(chǎn)品合同范本
- 可研報合同范本
- 北京整車銷售合同范本
- 七年級英語教學(xué)的工作總結(jié)
- 七年級數(shù)學(xué)上冊教學(xué)計劃
- 醫(yī)院購銷耗材合同范本
- 五清四建合同范本
- 單票運(yùn)輸合同范本
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 《ISO 56000-2025創(chuàng)新管理 基礎(chǔ)和術(shù)語》之1:“引言+范圍+術(shù)語和定義”專業(yè)深度解讀與應(yīng)用指導(dǎo)材料(雷澤佳編寫2025A0)-1-150
- DB37-T4817-2025 瀝青路面就地冷再生技術(shù)規(guī)范
- 2025年公共營養(yǎng)師三級理論試題及答案
- 提高設(shè)備基礎(chǔ)預(yù)埋螺栓一次安裝合格率
- 2024年科技節(jié)小學(xué)科普知識競賽題及答案(共100題)
- 常見焊接缺陷以及其處理方法PPT
- 《子宮脫垂護(hù)理查房》
- 關(guān)于對項目管理的獎懲制度
- A320主起落架收放原理分析及運(yùn)動仿真
- 2. SHT 3543-2017施工過程文件表格
評論
0/150
提交評論