桂妮霞吳海鋒李 毅曾 玉陳躍斌
(1.云南民族大學 電氣信息工程學院,云南 昆明650500;2.云南省高校智能傳感網(wǎng)絡及信息系統(tǒng)科技創(chuàng)新團隊,云南 昆明650500)
無線射頻識別(Radio Frequency Identification,RFID)技術是一種利用無線電波讓標簽和閱讀器可進行數(shù)據(jù)交換的自動識別技術。 RFID 系統(tǒng)根據(jù)標簽的工作方式可分為主動式和被動式,根據(jù)工作頻率不同又可分為30 MHz~300 kHz 的低頻、3 MHz~30 MHz 的高頻和300 MHz~968 MHz 的超高頻(Ultra High Frequency,UHF)系統(tǒng)[1]。 由于被動式UHF 系統(tǒng)具有讀寫距離遠和標簽結構簡單等特點,因此已逐漸成為物聯(lián)網(wǎng)前端傳感部分的主要技術,在物聯(lián)網(wǎng)應用中得到了普遍的關注。
UHF RFID 技術應用于物聯(lián)網(wǎng)時,需要同時識別多個標簽以提高識別效率,由于標簽傳輸數(shù)據(jù)共享同一無線信道,因此標簽沖突難以避免,而防沖突是解決標簽沖突的主要技術之一。 防沖突一般在介質 訪 問 控 制(Media Access Control,MAC) 層 進行[2-5],當發(fā)生沖突時,標簽信號重新發(fā)送,當沖突增多,重發(fā)也增多,因此識別效率并不高。 物理層的分離技術[6]可從沖突信號中直接恢復標簽信號,減少了重發(fā)次數(shù),因此有效地提高了識別效率,近年來也一直被應用于RFID 標簽防沖突中。 信號編碼作為一種通信技術可有效地抵抗干擾信號,而防沖突實質也是一種抗干擾技術,因此良好的編碼可提高RFID 標簽在物理層的防沖突性能。
頻率漂移在無線通信中是一普遍現(xiàn)象,UHF RFID 中發(fā)生頻率漂移同樣難以避免,這使得傳統(tǒng)的匹配濾波器[7]難以完成較好的解碼過程。 作為現(xiàn)存應用較為廣泛的UHF RFID 標準之一,EPC C1 Gen2[8]規(guī)定信號可使用FM0 和Miller 編碼,由于這些解碼主要通過相位是否改變來判斷碼元,而無需確切知道碼元頻率周期,因此可較好地解決頻率漂移的解碼問題[9]。 特別Miller 碼相比FM0 碼,不僅有相位跳變還有副載波,這使得Miller 碼具有更好的抗噪聲性能。 然而,副載波的存在也使Miller 編解碼比FM0 碼更為復雜。
目前,大多RFID 物理層防沖突技術多集中在FM0 碼[10-12],本文將研究優(yōu)化Miller 編解碼來提高RFID 標簽防沖突性能。 張吉興等[13]提出通過計算碼元個數(shù)和周期來進行解碼,然而會受到頻率漂移的影響導致解碼失敗。 Lu 等[14]通過與時鐘信號按位異或來去除副載波,再通過相位跳變進行解碼[15],然而在物理層分離沖突標簽時會產生分離誤差,去除副載波后,分離誤差仍然存在,這使得相位跳變信息不再準確,從而導致誤碼率增高。
針對上述的問題,本文提出一種適用于物理層分離的Miller 解碼方法,利用最大似然的Viterbi 算法完成,來優(yōu)化傳統(tǒng)的Miller 解碼,使該方法在防標簽沖突系統(tǒng)中能得到更好的性能。 在實驗中,采用仿真標簽沖突的模擬數(shù)據(jù)和一組實測Miller 碼的標簽沖突數(shù)據(jù),得到該方法在10dB 時幾乎沒有誤碼,在15 dB 時分離效率能達到100%,吞吐量最終能達到0.55。
MAC 層沖突分解采用隨機多址方法,信號隨機選擇時隙發(fā)送,若發(fā)生沖突則信號會重傳。 然而,MAC 層方法將沖突時隙視為無效時隙,通信效率并不高。 物理層分離可將沖突時隙中的各信號進行恢復。 由于其將沖突時隙視為有效通信時隙,因此通信效率得到了提高。 沖突信號實為各信源信號的疊加信號,圖1(a)中,兩個信源疊加后成為沖突信號。通常,具有N個信源的二進制數(shù)字單極性碼經同相正交相(Inphase Quadrature,IQ)解調后,其采樣點投射至復平面后會呈現(xiàn)J=2N個簇[16],由各簇中心點實部和虛部構成的復數(shù)可表示為
式中:h1,h2,…h(huán)N分別為各信號源衰減復系數(shù)。 經過聚類后,各采樣點可根據(jù)式(1)的中心點分離為N個信源點,即[16]
通過式(1)和式(2),可將沖突信號進行分離。圖1(b)為兩個信號源沖突信號投射至復平面的情形,其中,對于任一采樣點,若其屬于中心點為0,h1,h2或h1+h2的簇,則被分解為00,01,10 或11。
圖1 物理層分離沖突信號示例
另外一種物理層分離方法根據(jù)信源的編碼直接從沖突信號中解碼出各個信源信號,例如FM0 碼,根據(jù)其編碼規(guī)則,有Kim 等[17]利用碼元跳變的位碰撞算法,也有Benbaghdad 等[18]利用信號不同步完成的邊緣檢測算法,但是這些算法存在的問題是需要一些確定信息,當未知周期或信號不同步時,將很難完成。 也有一種方法是可將其看作一個有限狀態(tài)機,利用該狀態(tài)機,Viterbi 算法[19]解碼可從所有搜索路徑中快速尋找一條最大似然路徑,以此消除其他信源對本信源的干擾,然后再用連續(xù)干擾消除逐次解碼各個信源。
除FM0 碼,EPC C1 Gen2 還規(guī)定UHF RFID 可采用Miler 碼,圖2(a)和(b)為Miller 碼狀態(tài)轉化圖及對應的碼型,從圖中可以看到,Miller 碼與FM0 碼一樣可看作一個有限狀態(tài)機圖,但是Miller 碼中每個碼元包含了副載波,如圖2(c),在圖中的例子,碼元序列均為“010”,不同的階數(shù)M表示不同的副載波頻率,數(shù)字越大頻率越高。 傳統(tǒng)的Miller 碼解碼先將信號與其頻率相同的副載波進行異或運算以去除副載波,再由相位跳變原則進行解碼。 圖2(d)給出了用該方法進行解碼的例子,其中M=4,解碼后得到碼元“11”。
圖2 Miller 編碼及解碼圖
沖突信號分離時本身帶有分離噪音,如圖3 中左圖所示,經分離后其信號波形中將帶有一些無效的相位跳變,如圖3 中右圖所示。 若該信號為Miller碼,則通過傳統(tǒng)的異或運算后,這些由分離噪聲所帶來的跳變仍然有部分無法消除。 由于Miller 解碼需要判斷一個碼元中是否有相位跳變,因此這些無效跳變就容易產生誤碼。
圖3 有分離噪聲的Miller 副載波去除
另外,即使分離誤差能夠被解決,但是對沖突信號進行分離仍然存在一些不確定性。 圖3 左圖中兩個沖突標簽信號在復平面形成了四個簇,其中心點從0 開始按順時針順序依次為h1,h2和h1+h2。 然而,由于每個標簽信號的復衰落系數(shù)并未提前預知,其同相或正相端的系數(shù)可大可小,也可正可負,因此四個中心點的排列也可能是逆時針或其他順序。 為確定各中心點的位置,一種直接方法是對信號衰落系數(shù)進行估計,但是無論是導頻估計或者盲估計[20-22]都會增加系統(tǒng)的復雜度。
利用Viterbi 解碼的方法無需先對信號分離,可直接從沖突信號中恢復源標簽信號,但它也存在一些問題。 Viterbi 解碼需要計算觀測信號與搜索信號間的似然距離,通過尋找最大似然路徑來找到幸存路徑。 然而,若信號為單極性碼波形,則搜索的路徑由歸一化的0 或1 表示,而搜索路徑由于并未估計其第n個標簽的衰落系數(shù)hn,其單極性碼波形由0或hn構成,如圖4 所示。 此時,若hn較小,則容易將信號1 誤判為信號0,導致幸存路徑的計算失敗。
圖4 似然距離計算錯誤示例圖
在RFID 系統(tǒng)中,當有N個標簽在同一時隙應答時,閱讀器將會接收到N個標簽的疊加信號,如圖5 所示,該信號經IQ 解調后可表示為一復數(shù)信號,記為
式中:hn表示第n個標簽的信道衰減系數(shù),通常其為一平坦性衰落的時不變信道;ξ(t)是加性高斯白噪聲;L為載波泄露;xn(t)代表第n個標簽信號,表示為
式中:ek,n∈{0,1}K×1表示第n個標簽發(fā)射的第k′個碼元sk′,n∈{0,1}K′×1經編碼后的碼元序列,K為編碼后的碼元塊長,K′=K/2M為標簽原始碼元長度,M為Miller 碼階數(shù),例 如M=2 時,若sk′,n為1時,編 碼 后 的 碼 元e4k′+1,n,e4k′+2,n,…e4(k′+1),n就 為1001;an為調制脈沖波形,gn和bn分別表示碼元周期和時延。
本文算法對接收的沖突信號進行解碼的基本流程如圖5 所示,先對接收信號進行采樣,設T為采樣周期,做I次采樣可得接收信號矢量z=[zi]∈?1×I,其中? 為復數(shù)集,zi=z(iT),i=1,2,…I。 然后,采用分離算法得到N個標簽信號矢量,n=1,2,…N。最后,利用Viterbi 對解碼得到標簽原始碼元序列矢量。
圖5 系統(tǒng)框圖
令D=[dj]∈{0,1}J×N為行向量dj所構成的字典矩陣,其中J=2N,并有dj≠dn當j≠n,那么聚類中心矢量C=[cj]∈?J×1可表示為
對于兩個沖突標簽的情形,字典矩陣D可表示為
由于未知信道系數(shù)H,即使已得到各聚類中心點,也無法確定與聚類中心矢量C中cj的對應關系,因此矢量C仍然未知,理論上其有種排列。為此,我們需要對C進行估計。
標簽在發(fā)射其信號時有一段靜默期[23],此時有載波泄露L,如圖7 所示,經采樣后可確定該簇中心點c′1,表示為
另外,由EPC Gen2 可知,每個標簽在發(fā)射RN16 之前均需有一段相同的前綴信號[8],如圖6,因此對于兩個標簽的情形可確定另一個簇中心點,表示為
圖6 確定聚類中心關系圖
據(jù)此,矢量C中的c1和c4可由下式進行估計
c2和c3可由剩余的兩個聚類中心點確定,分別對應h1和h2,因為沖突標簽數(shù)為兩個,也可分別對應于h2和h1,表示為
由式(9)~式(11)可確定矢量C,進而確定式(5),再由式(5)的字典矩陣D可得到聚類中心cj對應聚類簇Sj中各點和dj間的映射關系fdict(·),表示為
例如,對于兩個標簽,若zi∈S1,fdict(zi)就為[00],若zi∈S2,fdict(zi)就為[10]。 利用式(12)可對信號向量z進行分解,得到一個由行向量ξi構成的信號矩陣∈{0,1}I×N,其中ξi=fdict(yi),該分解過程表示為
建立似然函數(shù)
在式(15)的求解中,若對sn采用窮盡搜索,則搜索次數(shù)為2K′,計算量龐大,可采用Viterbi 解碼減少其搜索次數(shù)。
由于碼元sk′,n,k′=1,2,…,K′相互獨立,因此可將式(15)中的似然距離改寫為
圖7 Miller 碼網(wǎng)格圖和解碼狀態(tài)波形
表1 算法步驟
在本文實驗中,將使用一個閱讀器分離兩個標簽的沖突信號,RFID 閱讀器和標簽遵循EPC C1 Gen2 的標準,通過該通信系統(tǒng)來驗證本文提出的算法,實驗數(shù)據(jù)包含了仿真數(shù)據(jù)和實測數(shù)據(jù)。
仿真數(shù)據(jù)模擬了兩個標簽的沖突信號,由式(3)得到,具體參數(shù)設置如表2 所示。 其中,載波泄露在沖突信號中的表現(xiàn)更像是一個幅值常量[23],而為了更好體現(xiàn)噪聲對分離沖突信號的影響,仿真數(shù)據(jù)中設置的載波泄露為0。 同時,由于衰落系數(shù)的大小對傳統(tǒng)Viterbi 解碼的性能有較大影響,因此仿真數(shù)據(jù)中設置了兩組不同的衰落系數(shù),如表3 所示。
表2 仿真數(shù)據(jù)參數(shù)設置
表3 信號衰落系數(shù)設置
實測數(shù)據(jù)來自電子科技大學信息與通信工程學院射頻集成電路與系統(tǒng)研究中心[24]所提供的超高頻RFID 系統(tǒng)設備,數(shù)據(jù)通過示波器進行采集,表4是實驗設備的相關參數(shù)設置。
表4 實測設備系統(tǒng)設置
4.3.1 算法比較
為驗證本文所提算法的性能,在所有基本參數(shù)設置相同的情況下,仿真實驗比較了四種算法性能,分別為M_Viterbi、F_Viterbi、M_XOR 和N_Viterbi,信號衰落系數(shù)均未知,其中M_Viterbi 為本文提出算法,編碼使用Miller 碼,沖突信號分離后再使用Viterbi 解碼。 F_Viterbi 采用FM0 編碼[10],分離后采用Viterbi 進行解碼[19],將M_Viterbi 與其對比以分析不同編碼性能。 M_XOR 采用Miller 編碼,但分離后采用異或[15]解碼算法,將M_Viterbi 與其對比以分析兩種解碼算法的性能。 N_Viterbi 使用Miller編碼,但不分離沖突信號,直接采用Viterbi 解碼,將M_Viterbi 與其對比,以分析信號分離[16]與否對解碼性能的影響。 以上算法的具體設置如表5 所示。
表5 各算法設置
實測數(shù)據(jù)為M=4 的Miller 碼,實驗中對比了M_Viterbi、M_XOR 和N_Viterbi 三種算法。 由于F_Viterbi采用FM0 解碼,因此實測數(shù)據(jù)中未采用該算法。
4.3.2 性能指標
實驗中,設定以下指標對算法性能進行評價。誤碼率定義為錯誤解碼碼元數(shù)be與總碼元數(shù)bt的比值
分離效率定義為成功解碼標簽數(shù)ns與總標簽數(shù)nt的比值
式中:只有當標簽一次發(fā)送的K′個碼元均被成功解碼才視為該標簽被成功解碼。
吞吐量定義為平均一個幀中成功解碼的標簽數(shù)Ls與該幀長Lt的比值,表示為
以上三種指標中,越小的誤碼率,越高的分離效率與吞吐量值將具有越好的性能。
當信噪比取值-25 dB 到25 dB 時,圖8 給出了四種算法在不同衰落系數(shù)的誤碼率曲線圖、分離效率圖及吞吐量圖來比較說明各算法的性能。 衰落系數(shù)值見表2 所示,表中第1 組的衰落系數(shù)較小,第2組的系數(shù)較大。
圖8(a)和圖8(d)給出誤碼率曲線圖,在信噪比為-20 dB 到5 dB 時,M_Viterbi 算法誤碼率曲線始終低于F_Viterbi 和M_XOR 算法,信噪比在10 dB 以后,M_Viterbi 算法無誤碼。 該結果說明,M_Viterbi 算法的性能在低信噪比下,優(yōu)于F_Viterbi 和M_XOR 算法。 同時,從M_Viterbi 和F_Viterbi 比較可以看出,在相同鏈路頻率下,Miller碼的性能比FM0 碼更好。 另外,M_XOR 算法在信噪比為-5 dB 到10 dB 時,誤碼率大幅下降,這說明當噪聲變小,異或算法能使誤碼率得到降低,但噪聲太大時傳統(tǒng)異或的方法會產生較多的解碼錯誤。 在圖8(a)中,N_Viterbi 算法在衰落系數(shù)很小時,在所有信噪比下均存在大量誤碼,而在圖8(d)中,衰落系數(shù)較大時,N_Viterbi 的誤碼率有一定幅度的降低,說明N_Viterbi 算法的性能與衰落系數(shù)有關。
圖8 各算法性能比較結果圖
圖8(b)和圖8(e)分別給出不同衰落系數(shù)下的分離效率。 與誤碼率曲線類似,M_Viterbi 算法分離效率曲線始終高于F_Viterbi 和M_XOR 算法,而N_Viterbi的分離效率與信道衰落系數(shù)有關,信道衰落系數(shù)較低時Viterbi 算法就會發(fā)生誤判,如圖8(b)。圖8(e)中N_Viterbi 的分離效率隨著信噪比的增大,衰落系數(shù)小于0.5 的標簽始終無法正確解碼,其解碼性效率只能達到約50%,其原因與圖4 分析的一致。
圖8(c)和圖8(f)給出了將各算法嵌入到ALOHA隨機多址所得到的吞吐量,其中在ALOHA中幀長和標簽數(shù)均設為128,當標簽發(fā)生沖突時則執(zhí)行沖突分離解碼算法。 另外,圖中還給出未采用分離型沖突分解的純ALOHA 系統(tǒng)吞吐量,其吞吐量接近理論值0.367[25]。 從圖中可見,當信噪比逐漸增大時,分離型沖突分解算法的吞吐量均大于純ALOHA 系統(tǒng)吞吐量,M_Viterbi、F_Viterbi 和M_XOR算法吞吐量最終均能達到約0.55,這說明分離型沖突分解算法確實可增大ALOHA 系統(tǒng)的吞吐量。圖8(c)中兩個標簽衰落系數(shù)均很小時,N_Viterbi算法的吞吐量與純ALOHA 系統(tǒng)吞吐量相似,只能達到0.367,而圖8(f)中其中一個標簽衰落系數(shù)大于0.5 時能被成功分解,因此吞吐量能達到0.46。
為了得到更可靠的實驗結果,本文隨機取了兩組實測數(shù)據(jù),并分別獨立做了兩組實驗,對實驗結果求均值。 實測數(shù)據(jù)分為I 路和Q 路,圖9 給出了一組I 路信號,其中顯示了部分前綴信號及RN16 信號,從信號圖中可以看出該信號的噪聲很小。 由于實測信號是Miller 編碼, 因此表6 只給出了M_Viterbi、M_XOR 和N_Viterbi 算法實驗結果的均值。 從該表可以看到,M_Viterbi 和M_XOR 兩種算法的誤碼率均為0,可見M_Viterbi 算法在實際應用中也能達到預期的解碼性能,同時,由于實測信號信噪比較小,因此M_XOR 也沒有產生誤碼,獲得了較好的誤碼率性能。 N_Viterbi 算法對信道衰落系數(shù)要求較高,即使標簽數(shù)據(jù)的噪聲很小該算法依然不能將標簽正確解碼,平均吞吐量只有0.365,與純ALOHA 系統(tǒng)吞吐量理論值接近。
圖9 實測數(shù)據(jù)的I 路信號
表6 實測數(shù)據(jù)下各算法性能
本文針對UHF RFID 通信系統(tǒng),利用物理層分離的沖突分解方法對ALOHA 隨機多址中的沖突信號進行分離解碼,以此提高系統(tǒng)的吞吐量。 在本文ALOHA 網(wǎng)絡的仿真實驗中,在10 dB 時,采用本文的M_Viterbi 算法,系統(tǒng)吞吐量達到了0.55。 本文提出的M_Viterbi 算法在與不同編碼同解碼算法、同編碼不同解碼算法以及同編碼同解碼而不分離標簽算法的對比中,都具有5 到10 dB 的更優(yōu)的解碼性能。另外,本文還對實測的UHF RFID 沖突信號進行處理,實驗結果表明本文算法吞吐量達到了0.55,相比傳統(tǒng)的ALOHA 系統(tǒng),吞吐量提高了約0.2。
由于無法估計3 個及3 個以上沖突標簽的信道系數(shù),因此本文算法的理論及驗證實驗僅完成了兩個標簽沖突。 由于在一個動態(tài)幀ALOHA 系統(tǒng)中,幀長和信號源數(shù)目可近似相等,發(fā)生3 個及3 個以上信號源沖突的概率相對較小,因此本文算法可解決該系統(tǒng)中較大一部分的沖突時隙。 從本文實驗結果中也可以看出,分離沖突信號源為2 的沖突時隙可以進一步提高吞吐率。 另外,在本文的實測數(shù)據(jù)實驗中,我們將閱讀器端接收到的沖突信號數(shù)據(jù)采集提取后送至軟件工具中進行處理,以得到各算法的性能指標。 更完整的測試應該是將算法嵌入至閱讀器端,據(jù)此測試算法性能。 因此,在將來的工作中,我們將完成各算法應用至RFID 閱讀器,從而得到更全面的實驗結果。
致謝感謝電子科技大學信息與通信工程學院射頻集成電路與系統(tǒng)研究中心提供的RFID 系統(tǒng)硬件設備和實驗裝置,并感謝研究中心的褚楚博士生幫助采集實驗所需數(shù)據(jù)。