LDPC碼的設(shè)計(jì)以及在無(wú)線傳感器網(wǎng)絡(luò)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:LDPC碼是眾所周知的優(yōu)秀信道編碼,性能接近香農(nóng)信道容量的極限。討論了在無(wú)線傳感器網(wǎng)絡(luò)中LDPC碼的設(shè)計(jì)和實(shí)際應(yīng)用,并提供了解決方案,以降低解碼復(fù)雜度,節(jié)省內(nèi)存占用量,提高了系統(tǒng)的誤碼率性能。結(jié)果表明,短碼長(zhǎng)的LDPC碼可以在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上應(yīng)用并能獲得較為理想的性能,具有很好的應(yīng)用前景。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);低密度奇偶校驗(yàn)碼;硬解碼;誤碼率
0 引言
無(wú)線傳感器網(wǎng)絡(luò)(WSN)屬于多學(xué)科高度交叉的前沿研究領(lǐng)域,綜合了傳感器、嵌入式計(jì)算、網(wǎng)絡(luò)及通信、分布式信息處理等技術(shù)。由于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)部署在惡劣的環(huán)境中,為了提高通信系統(tǒng)的可靠性,有必要進(jìn)行信道編碼。本文設(shè)計(jì)和實(shí)現(xiàn)的低密度校驗(yàn)(LDPC)碼應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)。選擇了采用LDPC碼的信道編碼方案,方案中使用了Turbo解碼器,解碼復(fù)雜度低,有較出色的表現(xiàn)。
LDPC碼是一種奇偶校驗(yàn)矩陣為稀疏矩陣的線性分組碼,最初由Gallager發(fā)現(xiàn)。1996年,MacKay和Neal發(fā)現(xiàn)LDPC碼的性能可以接近香農(nóng)極限,校驗(yàn)矩陣含有“0”的個(gè)數(shù)遠(yuǎn)遠(yuǎn)大于非“0”元素,這是LDPC碼性能優(yōu)越的重要保證。LDPC碼是漸進(jìn)好碼,其最小漢明距離隨著碼長(zhǎng)的增加而線性增加。LDPC碼的特點(diǎn)是,具有較大靈活性和較低的差錯(cuò)平底特性,描述簡(jiǎn)單,對(duì)嚴(yán)格的理論分析具有可驗(yàn)證性,且可實(shí)現(xiàn)完全的并行操作,硬件復(fù)雜度低,因而適合硬件實(shí)現(xiàn),吞吐量大,極具高速譯碼潛力。
在無(wú)線傳感器網(wǎng)絡(luò)中,對(duì)LDPC碼編碼器而言,實(shí)現(xiàn)并不困難。在實(shí)施的LDPC解碼算法的無(wú)線傳感器網(wǎng)絡(luò)需要考慮的問(wèn)題是,選擇合適的解碼算法,采用串行或并行算法,此外還有LDPC碼長(zhǎng)度的選取。
1 LDPC簡(jiǎn)介
LDPC碼可以由一個(gè)稀疏的校驗(yàn)矩陣來(lái)描述,如圖1所示。
1.1 LDPC的編碼
LDPC碼可以由一個(gè)稀疏的校驗(yàn)矩陣來(lái)描述。
一個(gè)長(zhǎng)度為N,信息位長(zhǎng)為K的二進(jìn)制低密度奇偶校驗(yàn)碼表示為(N,K,λ,ρ),它具有一個(gè)(N-K)×N的奇偶校驗(yàn)矩陣和一個(gè)生成矩陣G。校驗(yàn)矩陣H的平均列碼重為λ,平均行碼重為ρ。在校驗(yàn)矩陣H中,絕大多數(shù)位置上為0,極少數(shù)位置上為1,1的位置是隨機(jī)分布的。相應(yīng)的Tanner圖(見(jiàn)圖2)由N個(gè)變量節(jié)點(diǎn)和N-K個(gè)檢查節(jié)點(diǎn),以及一定數(shù)量的邊組成。N個(gè)變量節(jié)點(diǎn)對(duì)應(yīng)低密度奇偶校驗(yàn)碼的碼長(zhǎng)N,N-K個(gè)檢查節(jié)點(diǎn)對(duì)應(yīng)的N-K個(gè)校驗(yàn)限制,一個(gè)變量節(jié)點(diǎn)和一個(gè)檢查節(jié)點(diǎn)之間當(dāng)且僅當(dāng)校驗(yàn)矩陣相應(yīng)的位置是1的時(shí)候,會(huì)有一條邊存在。如果奇偶校驗(yàn)矩陣每一行包含相同數(shù)量的1,每一列包含相同數(shù)量的1,則被稱(chēng)為規(guī)則低密度奇偶校驗(yàn)碼,否則,它就是不規(guī)則低密度奇偶校驗(yàn)碼。相對(duì)于稀疏的校驗(yàn)矩陣H,生成矩陣G是稠密的。因此,低密度奇偶校驗(yàn)碼的編碼復(fù)雜度與代碼長(zhǎng)度的平方成正比。
一般而言,檢驗(yàn)矩陣采用隨機(jī)的方法構(gòu)造。通過(guò)高斯消元法后,得到:
1.2 LDPC的解碼
LDPC碼的解碼算法可以分為硬判決譯碼和軟判決譯碼兩大類(lèi)。幾乎所有的LDPC碼譯碼算法都是迭代算法。一般而言,實(shí)現(xiàn)LDPC碼譯碼器,主要需要考慮以下的三個(gè)問(wèn)題:
(1)碼字的糾錯(cuò)性能;
(2)碼字實(shí)現(xiàn)所需的硬件資源;
(3)系統(tǒng)所要求達(dá)到的吞吐率與信息傳輸速率。
此三個(gè)條件相互制約,在實(shí)際應(yīng)用的過(guò)程當(dāng)中,要找到一個(gè)比較理想的折中方案。
2 無(wú)線傳感器網(wǎng)絡(luò)下設(shè)計(jì)方案
無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)是低功耗低價(jià)格微型嵌入式設(shè)備,其能量供應(yīng)和無(wú)線通信帶寬十分受限。無(wú)線傳感器網(wǎng)絡(luò)由數(shù)量龐大的節(jié)點(diǎn)以自組織方式構(gòu)成,節(jié)點(diǎn)的體積微小,存儲(chǔ)和處理數(shù)據(jù)的能力低下,且大部分節(jié)點(diǎn)由電池供電,能量受到極大的限制。對(duì)計(jì)算量和存儲(chǔ)量的要求很高,由此對(duì)運(yùn)算的種類(lèi)要求也很高,例如,盡量不使用乘除這類(lèi)運(yùn)算,而運(yùn)算過(guò)程中盡量少出現(xiàn)實(shí)數(shù),盡量使用整數(shù)。結(jié)合這些特點(diǎn),所以采用硬解碼,選擇合適的判決門(mén)限,對(duì)硬解碼諸算法仿真,當(dāng)然相應(yīng)地帶來(lái)解碼效率下降,而且解碼迭代次數(shù)也不能太多,設(shè)定為兩次,這也降低了硬解碼效率(對(duì)次數(shù)的仿真),可以有效地降低重傳率,減少由多個(gè)節(jié)點(diǎn)傳輸帶來(lái)的累積錯(cuò)誤,使系統(tǒng)具有一定的糾錯(cuò)能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發(fā)生。在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),內(nèi)置芯片CC1000。在NESC環(huán)境下,包括應(yīng)用層、網(wǎng)絡(luò)層和傳輸層并為一層,而物理層和數(shù)據(jù)鏈路層并為一層,所以把LDPC編解碼加入到底層模塊中。
在無(wú)線傳感器環(huán)境下實(shí)現(xiàn)LDPC編譯碼,首先需要考慮的是錯(cuò)誤校正能力和處理能力的權(quán)衡。在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)中,通常采用基帶信號(hào)處理的低功耗微控制器單元(MCU)。LDPC解碼算法可以分為兩類(lèi):軟解碼算法和硬解碼算法。軟解碼算法需要的浮點(diǎn)計(jì)算能力通常由功耗很高的MCU支持,而LDPC碼的硬解碼算法具有較低的糾錯(cuò)能力。這是人所共知的,LDPC碼譯碼算法可以在一個(gè)并行方式下執(zhí)行這樣的解碼且速度快。然而,實(shí)現(xiàn)并行解碼算法需要的FPGA器件功率消耗比較高。因此,選擇串行解碼算法更合適。目前,用于無(wú)線傳感器網(wǎng)絡(luò)低功耗微控制器的處理速度比較低。因此,需要盡可能提高解碼速度。如果增加碼長(zhǎng)度,解碼時(shí)延也會(huì)相應(yīng)增加。此外,解碼算法需要校驗(yàn)的信息矩陣也會(huì)變得更大更復(fù)雜,而且校驗(yàn)矩陣的增加是代碼長(zhǎng)度呈指數(shù)的增加。一般來(lái)說(shuō),無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)具有相對(duì)較小的內(nèi)存。因此,如何保存校驗(yàn)矩陣是一個(gè)問(wèn)題。另一方面,如果代碼長(zhǎng)度過(guò)小,相對(duì)較低的LDPC碼糾錯(cuò)能力也是不容忽視的問(wèn)題。
在編碼過(guò)程中,只有生成矩陣G需要事先保存在節(jié)點(diǎn)內(nèi)存中。由于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的內(nèi)存大小相對(duì)較小,它需要的內(nèi)存也應(yīng)該盡可能少。因此,在內(nèi)存中只存儲(chǔ)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)矩陣P,此外,需要轉(zhuǎn)換成二進(jìn)制8B字符進(jìn)行保存。
3 Matlab下的仿真結(jié)果
利用Matlab進(jìn)行仿真,仿真結(jié)果如圖3所示。
由圖3可知,LDPC硬解碼方案可以大幅改善信號(hào)抗噪聲性能,而通過(guò)解碼迭代次數(shù)的對(duì)比,發(fā)現(xiàn)迭代3次效果已經(jīng)相當(dāng)理想,而迭代50次并不能大幅提高解碼效果。
4 結(jié)語(yǔ)
討論了在無(wú)線傳感器網(wǎng)絡(luò)環(huán)境下LDPC編解碼的設(shè)計(jì)問(wèn)題,并提出了降低解碼復(fù)雜度和節(jié)省內(nèi)存的方案。證實(shí)短碼長(zhǎng)的LDPC碼應(yīng)用到無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上可以提高系統(tǒng)的誤碼率性能。