




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一.十一種通用濾波算法(轉)1、限幅濾波法(又稱程序判斷濾波法)A、方法: 根據經驗判斷,確定兩次采樣允許的最大偏差值(設為A) 每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值B、優(yōu)點: 能有效克服因偶然因素引起的脈沖干擾C、缺點 無法抑制那種周期性的干擾 平滑度差2、中位值濾波法A、方法: 連續(xù)采樣
2、N次(N取奇數) 把N次采樣值按大小排列 取中間值為本次有效值B、優(yōu)點: 能有效克服因偶然因素引起的波動干擾 對溫度、液位的變化緩慢的被測參數有良好的濾波效果C、缺點: 對流量、速度等快速變化的參數不宜3、算術平均濾波法A、方法: 連續(xù)取N個采樣值進行算術平均運算 N值較大時:信號平滑度較高,但靈敏度較低 N值較小時:信號平滑度較低,但靈敏度較高 N值的選?。阂话懔髁?,N=12;壓
3、力:N=4B、優(yōu)點: 適用于對一般具有隨機干擾的信號進行濾波 這樣信號的特點是有一個平均值,信號在某一數值范圍附近上下波動C、缺點: 對于測量速度較慢或要求數據計算速度較快的實時控制不適用 比較浪費RAM 4、遞推平均濾波法(又稱滑動平均濾波法)A、方法: 把連續(xù)取N個采樣值看成一個隊列 隊列的長度固定為N 每次采樣到一個新數據放入隊尾,并扔掉原來隊首的一次數據.(先進先出原則)
4、160; 把隊列中的N個數據進行算術平均運算,就可獲得新的濾波結果 N值的選?。毫髁?,N=12;壓力:N=4;液面,N=412;溫度,N=14B、優(yōu)點: 對周期性干擾有良好的抑制作用,平滑度高 適用于高頻振蕩的系統(tǒng) C、缺點: 靈敏度低 對偶然出現的脈沖性干擾的抑制作用較差 不易消除由于脈沖干擾所引起的采樣值偏差 不適用于脈沖干擾比較嚴重的場合 比較浪費RAM
5、5、中位值平均濾波法(又稱防脈沖干擾平均濾波法)A、方法: 相當于“中位值濾波法”+“算術平均濾波法” 連續(xù)采樣N個數據,去掉一個最大值和一個最小值 然后計算N-2個數據的算術平均值 N值的選?。?14B、優(yōu)點: 融合了兩種濾波法的優(yōu)點 對于偶然出現的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差C、缺點: 測量速度較慢,和算術平均濾波法一樣 比較浪費RAM6、限幅平均濾波法A、方法:
6、60; 相當于“限幅濾波法”+“遞推平均濾波法” 每次采樣到的新數據先進行限幅處理, 再送入隊列進行遞推平均濾波處理B、優(yōu)點: 融合了兩種濾波法的優(yōu)點 對于偶然出現的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差C、缺點: 比較浪費RAM7、一階滯后濾波法A、方法: 取a=01 本次濾波結果=(1-a)*本次采樣值+a*上次濾波結果B、優(yōu)點: 對周期性干擾具有良好的抑制作用 適用
7、于波動頻率較高的場合C、缺點: 相位滯后,靈敏度低 滯后程度取決于a值大小 不能消除濾波頻率高于采樣頻率的1/2的干擾信號 8、加權遞推平均濾波法A、方法: 是對遞推平均濾波法的改進,即不同時刻的數據加以不同的權 通常是,越接近現時刻的數據,權取得越大。 給予新采樣值的權系數越大,則靈敏度越高,但信號平滑度越低B、優(yōu)點: 適用于有較大純滯后時間常數的對象 和采樣周期較短的
8、系統(tǒng)C、缺點: 對于純滯后時間常數較小,采樣周期較長,變化緩慢的信號 不能迅速反應系統(tǒng)當前所受干擾的嚴重程度,濾波效果差9、消抖濾波法A、方法: 設置一個濾波計數器 將每次采樣值與當前有效值比較: 如果采樣值當前有效值,則計數器清零 如果采樣值<>當前有效值,則計數器+1,并判斷計數器是否>=上限N(溢出) 如果計數器溢出,則將本次值替換當前有效值,并清計數器B、優(yōu)點:
9、160; 對于變化緩慢的被測參數有較好的濾波效果, 可避免在臨界值附近控制器的反復開/關跳動或顯示器上數值抖動C、缺點: 對于快速變化的參數不宜 如果在計數器溢出的那一次采樣到的值恰好是干擾值,則會將干擾值當作有效值導入系統(tǒng)10、限幅消抖濾波法A、方法: 相當于“限幅濾波法”+“消抖濾波法” 先限幅,后消抖B、優(yōu)點: 繼承了“限幅”和“消抖”的優(yōu)點 改進了“消抖濾波法”中的某些缺陷,避免將干擾值導入系統(tǒng)C、缺點:
10、160; 對于快速變化的參數不宜第11種方法:IIR 數字濾波器 A. 方法:確定信號帶寬, 濾之。Y(n) = a1*Y(n-1) + a2*Y(n-2) + . + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + . + bk*X(n-k)B. 優(yōu)點:高通,低通,帶通,帶阻任意。設計簡單(用matlab)C. 缺點:運算量大。/- 軟件濾波的C程序樣例10種軟件濾波方法的示例程序假定從8位AD中讀取數據(如果是更高位的AD可定義數據類型為int),子程序為get_ad();1、限副濾波/* A值可根據實際情況調整value為有
11、效值,new_value為當前采樣值 濾波程序返回有效的實際值 */#define A 10char value;char filter()char new_value;new_value = get_ad();if ( ( new_value - value > A ) | ( value - new_value > A )return value;return new_value; 2、中位值濾波法/* N值可根據實際情況調整排序采用冒泡法*/#define N 11char filter()char value_bufN;char
12、count,i,j,temp;for ( count=0;count<N;count+)value_bufcount = get_ad();delay();for (j=0;j<N-1;j+)for (i=0;i<N-j;i+) if ( value_buf>value_bufi+1 ) temp = value_buf; value_buf = value_bufi+1;
13、 value_bufi+1 = temp; return value_buf(N-1)/2; 3、算術平均濾波法/*/#define N 12char filter()int sum = 0;for ( count=0;count<N;count+)sum + = get_ad();delay();return (char)(sum/N);4、遞推平均濾波法(又稱滑動平均濾波法)/*/#define N 12 char value_bufN;char i=0;char filter()char count;
14、int sum=0;value_bufi+ = get_ad();if ( i = N ) i = 0;for ( count=0;count<N,count+)sum = value_bufcount;return (char)(sum/N);5、中位值平均濾波法(又稱防脈沖干擾平均濾波法)/*/#define N 12char filter()char count,i,j;char value_bufN;int sum=0;for (count=0;count<N;count+)value_bufcount = get_ad();delay();for (j=0;j<N-
15、1;j+)for (i=0;i<N-j;i+) if ( value_buf>value_bufi+1 ) temp = value_buf; value_buf = value_bufi+1; value_bufi+1 = temp; for(count=1;count<N-1;count+)sum += value
16、count;return (char)(sum/(N-2);6、限幅平均濾波法/*/ 略 參考子程序1、37、一階滯后濾波法/* 為加快程序處理速度假定基數為100,a=0100 */#define a 50char value;char filter()char new_value;new_value = get_ad();return (100-a)*value + a*new_value; 8、加權遞推平均濾波法/* coe數組為加權系數表,存在程序存儲區(qū)。*/#define N 12char code coeN = 1,2,3,4,5,6,7,8,9,10,11,1
17、2;char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;char filter()char count;char value_bufN;int sum=0;for (count=0,count<N;count+)value_bufcount = get_ad();delay();for (count=0,count<N;count+)sum += value_bufcount*coecount;return (char)(sum/sum_coe);9、消抖濾波法#define N 12char filter()char count=0;ch
18、ar new_value;new_value = get_ad();while (value !=new_value);count+;if (count>=N) return new_value; delay();new_value = get_ad();return value; 10、限幅消抖濾波法/*/略 參考子程序1、911、IIR濾波例子int BandpassFilter4(int InputAD4)int ReturnValue; int ii;RESLO=0;RESHI=0;MACS=*PdelIn;OP2=1068; /Fil
19、terCoeff44;MACS=*(PdelIn+1);OP2=8; /FilterCoeff43;MACS=*(PdelIn+2);OP2=-2001;/FilterCoeff42;MACS=*(PdelIn+3);OP2=8; /FilterCoeff41;MACS=InputAD4;OP2=1068; /FilterCoeff40;MACS=*PdelOu;OP2=-7190;/FilterCoeff48;MACS=*(PdelOu+1);OP2=-1973; /FilterCoeff47;MACS=*(PdelOu+2);OP2=-19578;/FilterCoeff46;MACS=*
20、(PdelOu+3);OP2=-3047; /FilterCoeff45;*p=RESLO;*(p+1)=RESHI;mytestmul<<=2;ReturnValue=*(p+1);for (ii=0;ii<3;ii+)DelayInputii=DelayInputii+1;DelayOutputii=DelayOutputii+1; DelayInput3=InputAD4;DelayOutput3=ReturnValue;/ if (ReturnValue<0)/ / ReturnValue=-ReturnValue;/ return ReturnVal
21、ue; 二.在圖像處理中應用到的濾波算法實例:BOOL WINAPI MedianFilter(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, int iFilterH, int iFilterW,
22、160; int iFilterMX, int iFilterMY) / 指向源圖像的指針 unsigned char* lpSrc; / 指向要復制
23、區(qū)域的指針 unsigned char* lpDst; / 指向復制圖像的指針 LPSTR lpNewDIBBits; HLOCAL hNewDIBBits; / 指向濾波器數組的指針 unsigned
24、char * aValue; HLOCAL hArray; / 循環(huán)變量 LONG i; LONG j; LONG k; LONG l; / 圖像每行的字節(jié)數
25、LONG lLineBytes; / 計算圖像每行的字節(jié)數 lLineBytes = WIDTHBYTES(lWidth * 8); / 暫時分配內存,以保存新圖像 hNewDIBBits =
26、0; LocalAlloc(LHND, lLineBytes * lHeight); / 判斷是否內存分配失敗 if (hNewDIBBits = NULL) / 分配內存失敗
27、;return FALSE; / 鎖定內存 lpNewDIBBits = (char * )LocalLock(hNewDIBBits); / 初始化圖像為原始圖像
28、;memcpy(lpNewDIBBits, lpDIBBits, lLineBytes * lHeight); / 暫時分配內存,以保存濾波器數組 hArray = LocalAlloc(LHND, iFilterH * iFilterW);&
29、#160; / 判斷是否內存分配失敗 if (hArray = NULL) / 釋放內存 LocalUnlock(hNewDIBBits); LocalFree(hNewDIBBits); &
30、#160; / 分配內存失敗 return FALSE; / 鎖定內存 aValue = (unsigned char * )LocalLock(hArray); &
31、#160; / 開始中值濾波 / 行(除去邊緣幾行) for(i = iFilterMY; i < lHeight - iFilterH + iFilterMY + 1;
32、; i+) / 列(除去邊緣幾列) for(j = iFilterMX; j < lWidth - iFilterW + iFilterMX + 1; j+)
33、0; / 指向新DIB第i行,第j個象素的指針 lpDst = (unsigned char*)lpNewDIBBits + lLineBytes * (lHeight - 1 - i) +
34、60; j; / 讀取濾波器數組 for (k = 0; k < iFilterH; k+) for (l = 0;
35、160; l < iFilterW; l+) / 指向DIB第i - iFilterMY + k行,第j - iFilterMX + l個象素的指針 lpSrc = &
36、#160; (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i + iFilterMY - k) + j - iFilterMX
37、 + l; / 保存象素值 aValuek * iFilterW + l = *lpSrc; / 獲取中值 * lpDst = GetMedianNum(aValue, iFilterH * iFilterW); / 復制變換后的圖像 memcpy(lpDIBBits
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 詳細說明商業(yè)合同說明文
- 工傷索賠協(xié)議合同
- 咨詢合同解除協(xié)議
- 駕校合同終止協(xié)議
- 合作聘用合同協(xié)議
- 合同補充協(xié)議的聲明函
- 跆拳道館轉讓合同協(xié)議書
- 電器買賣協(xié)議合同
- 服裝合同解除協(xié)議
- 小型潛水泵技術協(xié)議合同
- 一夜長大【主持人尼格買提個人隨筆集】
- 工程欠款起訴書范本標準版
- 【一等獎勞動教育案例】《小艾團,大愛心》勞動教育活動案例
- 泰國落地簽證申請表
- 后牙金屬全冠牙體預備
- GB/T 36362-2018LED應用產品可靠性試驗的點估計和區(qū)間估計(指數分布)
- GB/T 26480-2011閥門的檢驗和試驗
- GB/T 10923-2009鍛壓機械精度檢驗通則
- GA/T 1356-2018國家標準GB/T 25724-2017符合性測試規(guī)范
- 杜威《民主主義與教育》課件
- 2022郵儲銀行綜合柜員(中級)理論考試題庫大全-上(單選、多選題)
評論
0/150
提交評論