卡爾曼濾波在電容觸摸屏坐標定位中的應用
摘要:電容觸摸屏在數據采集過程中不可避免地會產生系統噪聲,為了提高觸摸屏坐標定位的精確度,在對原始數據進行定位分析前,首先采用卡爾曼濾波方法對數據進行處理,再將數據在MATLAB中用定位算法計算出觸摸屏的坐標值,并繪制坐標點圖。結果表明,卡爾曼濾波確實能夠有效去除噪聲,從而提高觸摸屏坐標定位的準確性,具有很高的實用性。
本文引用地址:http://www.j9360.com/article/201609/310487.htm引言
隨著信息時代的到來,人們對信息的檢索、查詢需求逐漸增多,因此,方便快捷的人機交互界面不可或缺,而其中首當其沖的應用技術便是觸摸屏。觸摸屏作為一種新的智能設備輸入裝置,其技術已經比較成熟,常見的類型可分為紅外線、表面聲波、電阻式和電容式等[1-2]。其中電容觸摸屏中使用較廣泛的是投射電容式觸摸屏,其根據制作、布線工藝和掃描方式不同又分為互電容和自電容。本文描述的是自電容,即分別由X、Y掃描電極與地或人構成自電容,掃描時,一端接地,另一端接激勵或采樣電路,分別對M+N個電極進行掃描,檢測自電容[3-4]。在自電容的檢測中,系統噪聲會干擾到電容的檢測,因而直接影響到后續觸摸點坐標的確定。為此,針對主要影響因素——系統噪聲進行濾波,還原初始數據的有效信號有利于提高觸摸屏的坐標定位準確度。在眾多的濾波方法中,經過實驗分析和對比,最終證實,卡爾曼濾波在還原原始數據和算法實現方面都有較好的優勢。
1 電容觸摸屏坐標定位原理和卡爾曼濾波原理
1.1 電容觸摸屏坐標定位原理
對于投射式電容觸摸屏的定位來說,自電容是觸摸屏感應塊相對地之間的電容,當人體在觸摸屏上施加激勵信號時,就相當于一個接地的導體與感應塊之間形成一個耦合電容[5-7]。自電容Cs與人體耦合電容Cp成并聯關系,因此,總的電容值C=Cs+Cp,具體模型如圖1所示。在觸摸檢測時,依次分別檢測27個X軸和18個Y軸電極數組,根據觸摸前后所有自電容量的變化值確定手指所在的X坐標和Y坐標,最后組合成平面的觸摸坐標[8]。總共需掃描X+Y次,電容變化的差值在觸摸中心點最大,隨著觸摸區域的擴散電容變化差值逐漸減小,整個區域電容值的變化整體上類似正態分布。
1.2 卡爾曼濾波原理
卡爾曼濾波是一種利用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。能有效地從一組有限的包含噪聲的數據中預測出物體的坐標位置。
卡爾曼濾波主要是通過如下五個核心公式迭代得出某一時刻最優估計[9]:
上述方程組中,X(k+1|K)是上一狀態的預測結果, X(k)是上一狀態的最優結果,P(k+1|K)是X(k+1|K)對應的協方差,P(k)是X(k)對應的協方差。W(k)和V(k)分別是過程噪聲和觀測噪聲,兩者一般均視為高斯白噪聲。Q、R為W(k)、V(k)相應的協方差,Kg為卡爾曼增益。狀態估計是卡爾曼濾波的重要部分,一般情況下,受噪聲干擾的隨機狀態量很難精確測得,但可進行一系列觀測,并依據一組觀測值按某種統計觀點進行估計,以盡可能接近真實值。
2 電容參數值的測量和觸摸區域的確定
2.1 電容參數值的測量
在觸碰未發生前,觸摸屏每個通道都有一個可直接測得的基準電容Crefi,該值在一定范圍內波動,且每個通道的值不盡相同,如圖2所示,每個條形代表一個通道。同時,需要為未觸碰前的每個通道的電容值設置一個閾值,表示基準電容值的最高波動范圍。每個通道閾值因基準值不同而不同,與基準電容值的關系定義如下:
(6)
T_Valuei表示第i個通道的電容閾值。
觸碰后,中心觸摸區域的電容值會快速發生較大的變化,邊緣觸摸區域有細微的變化,而未觸摸的區域電容值未變。此時,根據測得的實時電容Ci,可以計算出電容變化差值。
以上是觸摸前后X通道各種電容值的測量方法,Y通道的電容值測量方式與X通道一樣。
2.2 電容觸摸屏觸摸區域的確定
當觸摸發生時,為確定發生觸摸的區域,需對每個通道差值電容和閾值電容進行比較。當存在連續通道的差值電容值Cdiff大于或等于閾值電容T_Value,則將這樣的通道稱為觸摸發生所覆蓋的中心通道,如圖2括號區間所示。這是因為可能存在瞬時噪聲脈沖引起的其它某個通道的差值電容也大于閾值電容,因此,連續性保證了觸摸中心通道區域的唯一性,從而排除了瞬時噪聲的干擾。
在觸摸中心通道的左右相鄰區域會存在差值電容值Cdiff小于閾值電容T_Value的通道,稱為觸摸邊緣通道,如圖2所示。同一方向的觸摸中心通道和觸摸邊緣通道共同組成該方向上的實際觸摸通道。由X方向的實際觸摸通道與Y方向的實際觸摸通道相交的區間即為觸摸區域,如圖3所示。其中小圓代表觸摸中心區域,大圓代表整體觸摸區域,兩者之間的部分為觸摸邊緣區域。
3 具體設計實現
試驗時,使用27*18規格的觸摸膜,選取觸摸點經硬件電路采集數據保存到計算機。數據采集芯片需通過A/D轉換方式采集模擬信號,當干擾作用于模擬信號后,A/D轉換結果就會偏離真實值,必須多次采樣,才能得到可信度較高的結果。之后,將硬件電路所采集數據作為卡爾曼濾波狀態方程和觀測方程的輸入值,經過計算,在保證均方根誤差較小的情況下,取得系數a=1.05,b=1.12。使用上述的卡爾曼核心公式進行迭代濾波,MATLAB實現代碼為:
for t=2:count %s count代表通道數。
s(t|t-1)=a*s(t-1);%s(t|t-1)是t-1時刻的估計值,s(t-1)是t-1時刻最優估計。
p(t|t-1)=a^2*p(t-1)+Q;%p(t-1)是s(t-1)的協方差,Q是W噪聲的協方差。
kg(t)=b*p(t|t-1)/(b^2*p(t|t-1)+R);% kg(t)增益,R是V噪聲的協方差。
s(t)=s(t|t-1)+kg(t)*(Y(t)-b*s(t|t-1));%s(t)是t時刻狀態最優估算值,Y(t)為觀測數據。
p(t)=(1-c*kg(t))*p(t|t-1);%p(t)是t時刻s(t)的協方差。
end
經過濾波的數據在2.2部分確定的觸摸區域基礎上,給觸摸中心區域和觸摸邊緣區域的通道加上不同的權重系數β1和 β2,兩者的關系為:
β1+β2=1,β1>β2 (7)
為了提高坐標定位的準確度,應該加大中心區域通道的權重系數,弱化邊緣區域的權重系數。在使用改進的權重算法求坐標時,將電容變化差值Cdiff與該通道權重系數的乘積作為通道i的實際權重系數ωi,ωi的具體取值為:
(8)
定義xj和yj為第j組數據的觸摸定位坐標。因此,可以寫出如下坐標定位公式:
(9)
(10)
本文來源于中國科技期刊《電子產品世界》2016年第9期第37頁,歡迎您寫論文時引用,并注明出處。
評論