版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、幾種簡單的數(shù)字濾波假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序為get_ad();1、限副濾波/* A值可根據(jù)實際情況調(diào)整 value為有效值,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、中位值濾波法/
2、* N值可根據(jù)實際情況調(diào)整 排序采用冒泡法*/#define N 11char filter() char value_bufN; char 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_bufi>value_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp;
3、 return value_buf(N-1)/2; 3、算術(shù)平均濾波法/*/#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; int sum=0; value_bufi+ = get_ad(); if ( i = N ) i = 0;
4、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-1;j+) for (i=0;i<N-j;i+) if ( value_bufi
5、>value_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp; for(count=1;count<N-1;count+) sum += valuecount; return (char)(sum/(N-2);6、限幅平均濾波法/*/ 略 參考子程序1、37、一階滯后濾波法/* 為加快程序處理速度假定基數(shù)為100,a=0100 */#define a 50char value;char filter() char new_value; new_value = get_ad(); r
6、eturn (100-a)*value + a*new_value; 8、加權(quán)遞推平均濾波法/* coe數(shù)組為加權(quán)系數(shù)表,存在程序存儲區(qū)。*/#define N 12char code coeN = 1,2,3,4,5,6,7,8,9,10,11,12;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
7、(count=0,count<N;count+) sum += value_bufcount*coecount; return (char)(sum/sum_coe);9、消抖濾波法#define N 12char filter() char count=0; char new_value; new_value = get_ad(); while (value !=new_value); count+; if (count>=N) return new_value; delay(); new_value = get_ad(); return value; *數(shù)字濾波算法 因為工程里
8、面要做個流量調(diào)節(jié),所以打算對流量進行濾波,綜合一下,考慮這么做:分兩步:1、對每次測量值的過濾目的:過濾掉偶然的突變值方法:根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為X) 每次檢測到新值時判斷: 如果本次值與上次值之差<=X,則本次值有效 如果本次值與上次值之差>X,則本次值無效,放棄本次值,用上次值代替本次值 如果連續(xù)被丟棄,則應當考慮為有效值2、綜合過濾目的:抑制周期性干擾方法:把連續(xù)取N個采樣值看成一個隊列 隊列的長度固定為N 每次采樣到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù).(先進先出原則) 把隊列中的N個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果 “如果連續(xù)被
9、丟棄,則應當考慮為有效值”是自己考慮再三加上得,其他都是抄襲以下算法滴,哈哈:從網(wǎng)上收集了各類濾波算法:1、限幅濾波法(又稱程序判斷濾波法) A、方法: 根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設(shè)為A) 每次檢測到新值時判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值 B、優(yōu)點: 能有效克服因偶然因素引起的脈沖干擾 C、缺點 無法抑制那種周期性的干擾 平滑度差 2、中位值濾波法 A、方法: 連續(xù)采樣N次(N取奇數(shù)) 把N次采樣值按大小排列 取中間值為本次有效值 B、優(yōu)點: 能有效克服因偶然因素引起的波動
10、干擾 對溫度、液位的變化緩慢的被測參數(shù)有良好的濾波效果 C、缺點: 對流量、速度等快速變化的參數(shù)不宜 3、算術(shù)平均濾波法 A、方法: 連續(xù)取N個采樣值進行算術(shù)平均運算 N值較大時:信號平滑度較高,但靈敏度較低 N值較小時:信號平滑度較低,但靈敏度較高 N值的選?。阂话懔髁?,N=12;壓力:N=4 B、優(yōu)點: 適用于對一般具有隨機干擾的信號進行濾波 這樣信號的特點是有一個平均值,信號在某一數(shù)值范圍附近上下波動 C、缺點: 對于測量速度較慢或要求數(shù)據(jù)計算速度較快的實時控制不適用 比較浪費RAM 4、遞推平均濾波法(又稱滑動平均濾波法) A、方法: 把連續(xù)取N個采樣值看成一個隊列 隊列的長度固定為N
11、 每次采樣到一個新數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù).(先進先出原則) 把隊列中的N個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果 N值的選取:流量,N=12;壓力:N=4;液面,N=412;溫度,N=14 B、優(yōu)點: 對周期性干擾有良好的抑制作用,平滑度高 適用于高頻振蕩的系統(tǒng) C、缺點: 靈敏度低 對偶然出現(xiàn)的脈沖性干擾的抑制作用較差 不易消除由于脈沖干擾所引起的采樣值偏差 不適用于脈沖干擾比較嚴重的場合 比較浪費RAM 5、中位值平均濾波法(又稱防脈沖干擾平均濾波法) A、方法: 相當于“中位值濾波法”+“算術(shù)平均濾波法” 連續(xù)采樣N個數(shù)據(jù),去掉一個最大值和一個最小值 然后計算N-2個
12、數(shù)據(jù)的算術(shù)平均值 N值的選取:314 B、優(yōu)點: 融合了兩種濾波法的優(yōu)點 對于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差 C、缺點: 測量速度較慢,和算術(shù)平均濾波法一樣 比較浪費RAM 6、限幅平均濾波法 A、方法: 相當于“限幅濾波法”+“遞推平均濾波法” 每次采樣到的新數(shù)據(jù)先進行限幅處理, 再送入隊列進行遞推平均濾波處理 B、優(yōu)點: 融合了兩種濾波法的優(yōu)點 對于偶然出現(xiàn)的脈沖性干擾,可消除由于脈沖干擾所引起的采樣值偏差 C、缺點: 比較浪費RAM 7、一階滯后濾波法 A、方法: 取a=01 本次濾波結(jié)果=(1-a)*本次采樣值+a*上次濾波結(jié)果 B、優(yōu)點: 對周期性干擾具有
13、良好的抑制作用 適用于波動頻率較高的場合 C、缺點: 相位滯后,靈敏度低 滯后程度取決于a值大小 不能消除濾波頻率高于采樣頻率的1/2的干擾信號 8、加權(quán)遞推平均濾波法 A、方法: 是對遞推平均濾波法的改進,即不同時刻的數(shù)據(jù)加以不同的權(quán) 通常是,越接近現(xiàn)時刻的數(shù)據(jù),權(quán)取得越大。 給予新采樣值的權(quán)系數(shù)越大,則靈敏度越高,但信號平滑度越低 B、優(yōu)點: 適用于有較大純滯后時間常數(shù)的對象 和采樣周期較短的系統(tǒng) C、缺點: 對于純滯后時間常數(shù)較小,采樣周期較長,變化緩慢的信號 不能迅速反應系統(tǒng)當前所受干擾的嚴重程度,濾波效果差 9、消抖濾波法 A、方法: 設(shè)置一個濾波計數(shù)器 將每次采樣值與當前有效值比較
14、: 如果采樣值當前有效值,則計數(shù)器清零 如果采樣值<>當前有效值,則計數(shù)器+1,并判斷計數(shù)器是否>=上限N(溢出) 如果計數(shù)器溢出,則將本次值替換當前有效值,并清計數(shù)器 B、優(yōu)點: 對于變化緩慢的被測參數(shù)有較好的濾波效果, 可避免在臨界值附近控制器的反復開/關(guān)跳動或顯示器上數(shù)值抖動 C、缺點: 對于快速變化的參數(shù)不宜 如果在計數(shù)器溢出的那一次采樣到的值恰好是干擾值,則會將干擾值當作有效值導入系統(tǒng) 10、限幅消抖濾波法 A、方法: 相當于“限幅濾波法”+“消抖濾波法” 先限幅,后消抖 B、優(yōu)點: 繼承了“限幅”和“消抖”的優(yōu)點 改進了“消抖濾波法”中的某些缺陷,避免將干擾值導入
15、系統(tǒng) C、缺點:*微機控制系統(tǒng)的數(shù)字濾波算法 摘 要:分析了采用數(shù)字濾波消除隨機干擾的優(yōu)點,詳細論述了微機控制系統(tǒng)中常用的8種數(shù)字濾波算法,并討論了各種數(shù)字濾波算法的適用范圍。 關(guān)鍵詞:數(shù)字濾波;控制系統(tǒng);隨機干擾;數(shù)字濾波算法1 引言 在微機控制系統(tǒng)的模擬輸入信號中,一般均含有各種噪聲和干擾,他們來自被測信號源本身、傳感器、外界干擾等。為了進行準確測量和控制,必須消除被測信號中的噪聲和干擾。噪聲有2大類:一類為周期性的,其典型代表為50 Hz的工頻干擾,對于這類信號,采用積分時間等于20 ms整倍
16、數(shù)的雙積分A/D轉(zhuǎn)換器,可有效地消除其影響;另一類為非周期的不規(guī)則隨機信號,對于隨機干擾,可以用數(shù)字濾波方法予以削弱或濾除。所謂數(shù)字濾波,就是通過一定的計算或判斷程序減少干擾信號在有用信號中的比重,因此他實際上是一個程序濾波。 數(shù)字濾波器克服了模擬濾波器的許多不足,他與模擬濾波器相比有以下優(yōu)點: (1)數(shù)字濾波器是用軟件實現(xiàn)的,不需要增加硬設(shè)備,因而可靠性高、穩(wěn)定性好,不存在阻抗匹配問題。 (2)模擬濾波器通常是各通道專用,而數(shù)字濾波器則可多通道共享,從而降低了成本。 (3)數(shù)字濾波器可以對頻率很低(如0.01 Hz)的信號進行濾波,而模擬濾波器
17、由于受電容容量的限制,頻率不可能太低。 (4)數(shù)字濾波器可以根據(jù)信號的不同,采用不同的濾波方法或濾波參數(shù),具有靈活、方便、功能強的特點。2 常用數(shù)字濾波算法 數(shù)字濾波器是將一組輸入數(shù)字序列進行一定的運算而轉(zhuǎn)換成另一組輸出數(shù)字序列的裝置。設(shè)數(shù)字濾波器的輸入為X(n),輸出為Y(n),則輸入序列和輸出序列之間的關(guān)系可用差分方程式表示為:其中:輸入信號X(n)可以是模擬信號經(jīng)采樣和A/D變換后得到的數(shù)字序列,也可以是計算機的輸出信號。具有上述關(guān)系的數(shù)字濾波器的當前輸出與現(xiàn)在的和過去的輸入、過去的輸出有關(guān)。由這樣的差分方程式組成的濾波器稱為遞歸型數(shù)字濾波
18、器。如果將上述差分方程式中bK取0,則可得: 說明輸出只和現(xiàn)在的輸入和過去的輸入有關(guān)。這種類型的濾波器稱為非遞歸型數(shù)字濾波器。 參數(shù)aK、bK的選擇不同,可以實現(xiàn)低通、高通、帶通、帶阻等不同的數(shù)字濾波器。2.1 算術(shù)平均值濾波 算術(shù)平均值濾波是要尋找一個Y,使該值與各采樣值X(K)(K=1N)之間誤差的平方和為最小,即:這時,可滿足式(3)。式(4)便是算術(shù)平均值濾波的算法。 設(shè)第二次測量的測量值包含信號成分Si和噪聲成分Ci,則進行N次測量的信號成分之和為: 噪聲的強度是用均方根來衡量的,當噪聲為隨機信號時,
19、進行N次測量的噪聲強度之和為:式(5)和式(6)中,S、C分別表示進行N次測量后信號和噪聲的平均幅度。 這樣對N次測量進行算術(shù)平均后的信噪比為:其中,SC是求算術(shù)平均值前的信噪比。因此采用算術(shù)平均值后,使信噪比提高了倍。 算術(shù)平均值法適用于對一般具有隨機干擾的信號進行濾波,這種信號的特點是有一個平均值,信號在某一數(shù)值范圍附近作上下波動,此時僅取一個采樣值作依據(jù)顯然是不準確的,如壓力、流量、液平面等信號的測量。但對脈沖性干擾的平滑作用尚不理想,因此他不適用于脈沖性干擾比較嚴重的場合。由式(7)可知,算術(shù)平均值法對信號的平滑濾波程度完全取決于N。當N較大時,平滑度高,但靈敏
20、度低,即外界信號的變化對測量計算結(jié)果Y的影響??;當N較小時,平滑度低,但靈敏度高。應視具體情況選取N,以便既少占用計算時間,又達到最好的效果,如對一般流量測量,可取N=816,對壓力等測量,可取N=4。2.2 加權(quán)平均值濾波 算術(shù)平均值法對每次采樣值給出相同的加權(quán)系數(shù),即1N。但有些場合為了改進濾波效果,提高系統(tǒng)對當前所受干擾的靈敏度,需要增加新采樣值在平均值中的比重,即將各采樣值取不同的比例,然后再相加,此方法稱為加權(quán)平均值法。一個N項加權(quán)平均式為: 常數(shù)C1,C2,CN的選取是多種多樣的,其中常用的是加權(quán)系數(shù)法,即: 加權(quán)平均值法
21、適用于系統(tǒng)純滯后時間常數(shù)較大、采樣周期較短的過程,他給不同的相對采樣時間得到的采樣值以不同的權(quán)系數(shù),以便能迅速反應系統(tǒng)當前所受干擾的嚴重程度。但采用加權(quán)平均值法需要測試不同過程的純滯后時間,同時要不斷計算各權(quán)系數(shù),增加了計算量,降低了控制速度,因而他的實際應用不如算術(shù)平均值法廣泛。2.3 滑動平均值濾波 以上平均濾波算法有一個共同點,即每計算1次有效采樣值必須連續(xù)采樣N次。對于采樣速度較慢或要求數(shù)據(jù)計算速率較高的實時系統(tǒng),這些方法是無法使用的。例如AD數(shù)據(jù),數(shù)據(jù)采樣速率為每秒10次,而要求每秒輸入4次數(shù)據(jù)時,則N不能大于2。滑動平均值法只采樣1次,將本次采樣值和以前的N1次采樣值一
22、起求平均,得到當前的有效采樣值。 滑動平均值法把N個采樣數(shù)據(jù)看成一個隊列,對列的長度固定為N,每進行一次新的采樣,把采樣結(jié)果放入隊尾,而扔掉原來隊首的一個數(shù)據(jù),這樣在隊列中始終有N個“最新”的數(shù)據(jù)。計算濾波值時,只要把隊列中的N個數(shù)據(jù)進行平均,就可得到新的濾波值。 滑動平均值法對周期性干擾有良好的抑制作用,平滑度高,靈敏度低;但對偶然出現(xiàn)的脈沖性干擾的抑制作用差,不易消除由于脈沖干擾引起的采樣值的偏差。因此他不適用于脈沖干擾比較嚴重的場合,而適用于高頻振蕩系統(tǒng)。通過觀察不同N值下滑動平均的輸出響應來選取N值,以便既少占用時間,又能達到最好的濾波效果。其工程經(jīng)驗值為:流量
23、N取12,壓力N取4,液面N取412,溫度N取14。2.4 中值濾波 中值濾波是對某一被測參數(shù)連續(xù)采樣N次(一般N取奇數(shù)),然后把N次采樣值從小到大,或從大到小排隊,再取其中間值作為本次采樣值。 中值濾波對于去掉偶然因素引起的波動或采樣器不穩(wěn)定而造成的誤差所引起的脈沖干擾比較有效,對溫度、液位等變化緩慢的被測參數(shù)采用此法能收到良好的濾波效果,但對流量、速度等快速變化的參數(shù)一般不易采用。2.5 防脈沖干擾平均值濾波 在脈沖干擾比較嚴重的場合,若采用一般的平均值法,則干擾將“平均”到計算結(jié)果中去,故平均值法不易消除由于脈沖干擾而引起的采樣值偏差。防脈沖干擾平均值
24、法先對N個數(shù)據(jù)進行比較,去掉其中的最大值和最小值,然后計算余下的N-2個數(shù)據(jù)的算術(shù)平均值。即: 在實際應用中,N可取任何值,但為了加快測量計算速度,N一般不能太大,常取為4,即為四取二再取平均值法。他具有計算方便、速度快、存儲量小等特點,故得到了廣泛應用。2.6 程序判斷濾波 工程實踐表明,許多物理量的變化都需要一定的時間,相鄰兩次采樣值之間的變化有一定的限度。程序判斷濾波就是根據(jù)實踐經(jīng)驗確定出相鄰兩次采樣信號之間可能出現(xiàn)的最大偏差Y,若超出此偏差值,則表明該輸入信號是干擾信號,應該去掉;若小于此偏差值,可將信號作為本次采樣值。 當采樣信號由于隨機干擾,如大
25、功率用電設(shè)備的啟動或停止,造成電流的尖峰干擾或誤檢測,以及變送器不穩(wěn)定而引起的嚴重失真等,可采用程序判斷法進行濾波。 程序判斷濾波根據(jù)濾波方法的不同,可分為限幅濾波和限速濾波2種。2.6.1 限幅濾波 限幅濾波把兩次相鄰的采樣值相減,求出其增量(以絕對值表示),然后與兩次采樣允許的最大差值(由被控對象的實際情況決定)Y進行比較,若小于或等于Y,則取本次采樣值;若大于Y,則仍取上次采樣值作為本次采樣值。即: 限幅濾波主要用于變化比較緩慢的參數(shù),如溫度、物理位置等測量系統(tǒng)。具體應用時,關(guān)鍵的問題是最大允差Y的選取,Y太大,各種干擾信號將“乘虛而入”,使系統(tǒng)誤差增大;Y太小,又會使某些有用信號被“拒之門外”,使計算機采樣效率變低。因此,門限值Y的選取是非常重要的。通??筛鶕?jù)經(jīng)驗數(shù)據(jù)獲得,必要時也可由實驗得出。2.6.2 限速濾波 限速濾波最多可用3次采樣值來決定采樣結(jié)果,設(shè)順序采樣時刻t1,t2,t3的采樣值分別為Y(1),Y(2),Y(3),則 限速濾波較為折中,既照顧了采樣的實時性,又顧及了采樣值變化的連續(xù)性。但這種方法也有明顯的缺點:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球PCA輸液泵行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國結(jié)構(gòu)型包裝用蜂窩行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球自主最后一英里送貨機器人行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國可見光超透鏡行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球鈑金沖焊型液力變矩器行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球教育行業(yè)CRM軟件行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球艾氏劑行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球卡車液力變矩器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國鈷鐵合金軟磁材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球高速RDF制粒機行業(yè)調(diào)研及趨勢分析報告
- 小學六年級數(shù)學上冊《簡便計算》練習題(310題-附答案)
- 地理標志培訓課件
- 2023行政主管年終工作報告五篇
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學研究報告-銀發(fā)經(jīng)濟專題
- 培訓如何上好一堂課
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)下冊教案全冊
- 2024醫(yī)療銷售年度計劃
- 稅務局個人所得稅綜合所得匯算清繳
- 人教版語文1-6年級古詩詞
- 上學期高二期末語文試卷(含答案)
- 人教版英語七年級上冊閱讀理解專項訓練16篇(含答案)
評論
0/150
提交評論