本發明涉及無線通信領域,特別涉及一種基于度優化的Raptor碼部分除環編碼方法。
背景技術:
隨著通信技術的不斷發展,信道編碼技術也在日益進步,在二十一世紀科技發展加快,這對通信技術有了更高的要求。為了能夠在廣播和多播中保證大量數據傳輸的可靠性,1998年,Luby等人提出了一種基于刪除信道的無碼率的糾錯碼,即數字噴泉碼。其主要思想為:在發送端將原始數據分為任意數量K的編碼分組,而接收方只要收到其中任意N個編碼分組就可以高概率恢復原始數據,而無需知道所接收到的分組具體是哪些。一般情況下,N略大于K時就可以恢復出原始數據。
2002年Luby首次提出了實用的可變碼率數字噴泉碼——LT(LubyTransform)碼。LT碼是第一個將數字噴泉的概念全面實現的碼字,能夠滿足在可變信道的條件中傳輸,但LT碼存在譯碼成功恢復原始數據所需的運算量與原始數據長度k無法滿足線性關系等局限性。為了改善LT碼的局限性,性能更佳一種數字噴泉碼Raptor碼被提出。Raptor碼是一種級聯碼,它將一種性能良好的傳統信道編碼與LT碼級聯,從而提高了其譯碼效率。如圖3所示Raptor碼編碼時首先進行預編碼,再對于預編碼生成的中間碼進行LT編碼。Raptor碼的優勢在于譯碼時預編碼的糾錯能力可以輔助LT碼譯碼,同時引入預編碼也使得Raptor碼的編譯碼運算量與原始編碼長度保持線性關系。
如圖2所示,LT碼的生成矩陣是一個稀疏矩陣,生成矩陣中的每一列的“1”的數量或者與輸出節點相連接的輸入節點的個數表示生成一個碼字所需要的原始數據包的數目,我們稱其數目為度(Degree),度所服從的概率函數稱為度分布函數(常用的有理想孤波分布、魯棒孤波分布和泊松度分布等等)。生成矩陣每列中“1”的行位置表示該輸入符號參與了本列所代表的輸出符號的生成。LT碼編碼首先根據度分布函數產生一個度數d,然后完全隨機地從長度為k的原始數據包中選出其中d個進行異或運算產生一個生成碼字,如此循環。故LT碼的生成矩陣的結構及度分布函數直接影響LT碼的性能。由于LT碼采用隨機編碼方式,故其Tanner圖中信源節點與編碼節點之間常常會出現短環,如圖3中所示的長度為4的短環a,短環b及跨輸入符號和輸出符號之間由箭頭表示的長度為4的短環c,類似于4環等短環的存在導致譯碼時從一個節點傳出的信息經過短環后又回到原節點,破壞了節點之間信息傳遞的獨立性,最終導致編譯碼性能的下降。所以,Raptor碼中編碼Tanner圖中短環消除一直是研究者們重點關注的問題。
然而,如果在Raptor碼中的LT編碼過程中加入短環消除算法,雖然會使Raptor碼的性能得到一定程度的提升,但同時短環消除的加入也會破壞LT編碼的隨機性,而LT編碼的性能很大程度是由其隨機性決定的,所以這兩者是矛盾的。因此,Raptor碼除環編碼算法仍然具有一定的性能提升空間,我們需要性能進一步提升,計算復雜度進一步降低的Raptor碼除環編碼方法。
技術實現要素:
為了克服現有技術存在的缺點與不足,本發明提供一種基于度優化的Raptor碼部分除環編碼方法,本方法主要針對Raptor碼中跨輸入符號和輸出符號之間的短環,如圖3中短環c,因為該類短環的消除對Raptor碼性能影響很大程度上由預編碼的特性決定,對該類短環的消除算法進行度優化具有較大的伸縮性和性能提升空間。
本發明采用如下技術方案:
一種基于度優化的Raptor碼部分除環編碼方法,包括如下步驟:
S1對Raptor碼進行預編碼,得到預編碼的tanner圖,并根據預編碼的特性生成度選擇優化條件;
S2根據度分布函數隨機生成一個度d,且d≥1,如果d=1,則隨機選擇一個中間符號作為輸出編碼符號,否則進入S3;
S3對度d進行篩選,判斷d是否滿足S1的度選擇優化條件,如果滿足則進入S4,否則返回S2;
S4隨機選擇d個中間符號作為生成輸出編碼符號的備選符號,并更新Raptor編碼Tanner圖;
S5判斷更新后的Raptor編碼Tanner圖是否存在跨輸入符號與輸出符號的短環,如果存在短環,則進行短環消除,再進入S6;否則,直接進入S6;
S6根據所選d個中間符號生成輸出編碼符號;
S7重復S2-S6,直至完成所有輸出編碼符號的生成。
所述根據預編碼的特性生成度選擇優化條件,具體為:
如果預編碼列重是小于3的或者非規則的LDPC碼,所有的度均滿足度選擇優化條件,所有度數的編碼符號都進行短環消除;
如果預編碼列重是大于2且同時為規則的LDPC碼,則選擇度數較高的編碼符號進行短環消除。
根據適當的反饋機制即根據接收端的譯碼性能對度選擇優化條件進行調整。
S2中所述度分布函數具體為泊松度分布函數。
本發明的有益效果:
(1)該編碼算法優化了原短環消除算法也就是完全除環,度選擇優化后的Raptor碼相比于原短環消除算法有了一定的編碼增益,對不同碼字有不同的效果。
(2)該發明的核心是短環消除的度選擇優化,通過對度數的篩選來提高性能的同時,相比于完全除環算法降低了計算復雜度。
附圖說明
圖1是本發明的工作流程圖;
圖2是本發明背景技術中Raptor碼中LT碼編碼過程示意圖;
圖3是本發明背景技術中Raptor碼編碼過程及Tanner圖中短環分布示意圖;
圖4是本發明Raptor碼短環消除編碼符號的生成過程分析圖;
圖5為本發明的仿真驗證圖:以碼率為90%,校驗矩陣H列重為3的(1000,900)規則LDPC碼作為Raptor碼預編碼時采用不同除環度數的誤塊率對比示意圖;
圖6為本發明的仿真驗證圖:以碼率為90%的(1000,900)非規則LDPC碼作為Raptor碼預編碼時采用不同除環度數的誤塊率對比示意圖;
圖7為本發明的仿真驗證圖:以碼率為90%,校驗矩陣H列重為2的(1000,900)規則LDPC碼作為Raptor碼預編碼時采用不同除環度數的誤塊率對比示意圖;
圖8為本發明的仿真驗證圖:以碼率為95%,校驗矩陣H列重為3的(5000,4750)規則LDPC碼作為Raptor碼預編碼時采用不同除環度數的誤塊率對比示意圖。
具體實施方式
下面結合實施例及附圖,對本發明作進一步地詳細說明,但本發明的實施方式不限于此。
實施例
如圖1-圖4所示,一種基于度優化的Raptor碼部分除環編碼方法,包括如下步驟:
本實施例中Raptor碼預編碼選用LDPC碼,N表示碼字長度,K表示信息比特長度,碼率R=K/N。
S1對Raptor碼進行預編碼,得到預編碼的tanner圖,并根據預編碼的特性生成度選擇優化條件;
S2根據泊松度分布函數隨機生成一個度d,且d≥1,如果d=1,則隨機選擇一個中間符號作為輸出編碼符號,否則進入S3;
S3對度d進行篩選,判斷d是否滿足S1的度選擇優化條件,如果滿足則進入S4,否則返回S2;
S4隨機選擇d個中間符號作為生成輸出編碼符號的備選符號,并更新Raptor編碼Tanner圖;
S5判斷更新后的Raptor編碼Tanner圖是否存在跨輸入符號與輸出符號的短環,如果存在短環,則進行短環消除,再進入S6;否則,直接進入S6;
S6根據所選d個中間符號生成輸出編碼符號;
S7重復S2-S6,直至完成所有輸出編碼符號的生成。
所述Raptor編碼Tanner圖為如圖3的整體編碼Tanner圖。
所述的泊松度分布函數為:
Ω(x)=0.007969x+0.49357x2+0.16622x3+0.002764x4
+0.082558x5+0.056058x8+0.0037229x9
+0.05559x19+0.025023x65+0.003135x66
從而可能出現的度數為1,2,3,4,5,8,9,19,65或66,不同度數出現的概率不同。泊松度分布函數x的指數表示度數,對應的系數表示該度數出現的概率。
所述根據預編碼的特性生成度選擇優化條件,具體為:
如果預編碼列重是小于3的或者非規則的LDPC碼,所有的度均滿足度選擇優化條件,所有度數的編碼符號都進行短環消除;
如果預編碼列重是大于2且同時為規則的LDPC碼,則選擇度數較高的編碼符號進行短環消除。
其中度選擇優化條件可以根據預編碼的特性的校驗節點和變量節點的度數分布特點、碼長和碼率進行適當的細化增加。
根據適當的反饋機制即根據接收端的譯碼性能對度選擇優化提交進行調整。
由于校驗矩陣H列重為2的LDPC碼中短環存在對Raptor碼性能危害較大,故如果對該Raptor碼所有度數的編碼符號都將進行短環消除編碼將得到最好的性能;同樣當預編碼為非規則LDPC碼對所有短環消除將得到最好的性能;而當預編碼是校驗矩陣H列重為2以上的規則LDPC碼時,短環存在對Raptor碼性能的負影響較小,如果此時對所有度數的編碼符號進行短環消除,會造成編碼隨機性下降,從而導致了Raptor碼性能的降低,隨機性下降的負效應將大于短環消除對Raptor碼所帶來的正效應,故總體效應上Raptor碼的性能將會降低。因此,由于度數較小的編碼輸出符號出現的概率較大,對Raptor碼編碼隨機性影響較大,所以我們將篩選出概率較小、度數較大的編碼符號進行短環消除編碼,此時可以達到更佳的Raptor碼性能。需要強調的是,預編碼的特性對Raptor碼短環消除算法的影響具有復雜性與多樣性,度選擇優化條件不僅限于如上所述,同時可加入適當的反饋機制來達到最好的折中性能。
在高斯白噪聲(AWGN)信道及BPSK調制的情況下,采用Raptor碼的BP全局迭代譯碼算法。以碼率為90%,校驗矩陣H列重為3的(1000,900)規則LDPC碼、碼率為90%的(1000,900)規則LDPC碼、碼率為90%的(1000,900)非規則LDPC碼、以碼率為90%,校驗矩陣H列重為2的(1000,900)非規則LDPC碼作為Raptor碼預編碼為例,對比原算法與采用不同除環度數的算法性能。不同除環度數的算法中性能最佳的即為基于度優化的Raptor碼部分除環編碼算法。(如果預編碼為中短碼(本例中為(1000,900)LDPC碼),對度數為65,66的編碼符號進行編碼時無法完全除環,故本實施例均不考慮對中短碼中度數為65,66的編碼符號進行除環)
(1)如圖5所示:以碼率為90%,校驗矩陣H列重為3的(1000,900)規則LDPC碼作為Raptor碼預編碼,編碼后Raptor碼的碼率設置為2/3,當對所有度數的編碼符號進行除環編碼時,其性能比原算法(無除環)差;當對度數較高的4,5,8,9,19的編碼符號進行除環編碼時,在誤塊率為10-2附近,其性能比原算法(無除環)有0.2dB的增益;當只對度數更高的8,9,19的編碼符號進行除環編碼時,在誤塊率為10-3附近,其性能比原算法(無除環)有1.5dB的增益;當只對度數最高的19的編碼符號進行除環編碼時,在誤塊率為10-3附近,其性能比原算法(無除環)有1dB的增益,但比只對度數更高的8,9,19的編碼符號進行除環編碼時相比降低了一部分性能。仿真結果說明對于該特定的校驗矩陣H列重為3的規則LDPC碼作為預編碼時,選擇度數較大的編碼符號進行短環消除編碼,此時可以達到更佳的Raptor碼性能。
(2)如圖6所示:以碼率為90%的(1000,900)非規則LDPC碼作為Raptor碼預編碼時,編碼后Raptor碼的碼率設置為2/3,當對所有度數的編碼符號進行除環編碼時,在誤塊率為10-2附近,其性能比原算法(無除環)有0.5dB的增益;當只對度數較高的編碼符號進行除環編碼時,其性能比原算法(無除環)提升不明顯甚至更差,仿真結果說明對于該特定的非規則LDPC碼作為預編碼時,對所有短環消除將得到最好的Raptor碼性能。
(3)如圖7所示:以碼率為90%,校驗矩陣H列重為2的(1000,900)規則LDPC碼作為Raptor碼預編碼時,編碼后Raptor碼的碼率設置為2/3,當對所有度數的編碼符號進行除環編碼時,在誤塊率為10-3附近,其性能比原算法(無除環)有大于1.5dB的增益;當只對度數較高的編碼符號進行除環編碼時,其性能比原算法(無除環)有0.5-1dB的增益,但仍小于對所有度數的編碼符號進行除環編碼時的編碼增益。仿真結果說明對于該特定的校驗矩陣H列重為2的LDPC碼作為預編碼時,對所有短環消除將得到最好的Raptor碼性能。
(4)如圖8所示:以碼率為95%,校驗矩陣H列重為3的(5000,4750)規則LDPC碼作為Raptor碼預編碼,編碼后Raptor碼的碼率設置為2/3,當對所有度數的編碼符號進行除環編碼時,其性能比原算法(無除環)差;當對度數較高的4,5,8,9,19,65,66的編碼符號進行除環編碼時,在誤塊率為10-3附近,其性能比原算法(無除環)有0.25dB的增益;當只對度數更高的8,9,19,65,66的編碼符號進行除環編碼時,在誤塊率為10-3附近,其性能比原算法(無除環)相差不大;仿真結果說明對于該特定的校驗矩陣H列重為3的規則LDPC碼作為預編碼時,選擇度數較大的編碼符號進行短環消除編碼,此時可以達到更佳的Raptor碼性能。
從仿真結果可以看出,該編碼算法優化了原短環消除算法(完全除環),度選擇優化后的Raptor碼相比于原短環消除算法有了一定的編碼增益,對不同碼字有不同的效果。該發明的核心是短環消除的度選擇優化,通過對度數的篩選來提高性能的同時,相比于完全除環算法降低了計算復雜度。
本發明的工作原理:
Raptor碼編碼矩陣中類似于4環等短環的存在導致譯碼時從一個節點傳出的信息經過短環后又回到原節點,破壞了節點之間信息傳遞的獨立性,最終導致編譯碼性能的下降。通過Raptor碼編碼過程中對短環的消除可以大大提升編譯碼性能,但加上短環消除算法約束的度分布編碼也犧牲了一部分隨機編碼的性能,所以有關短環消除算法的Raptor編碼其實存在著一定的折中關系,我們可以從下面的例子中理解這個折中關系。如圖4所示為Raptor碼編碼生成矩陣,假設長度為5的輸入信源符號x1,x2,…,xn,Raptor編碼后生成長度為5的輸出編碼符號b1,b2,…,bN,現在我們研究第5個輸出符號b5的生成。假設度分布函數產生的度為2,我們隨機選擇了一個輸入符號x1作為生成b5的第一個符號,即此時a0=1,接著我們選擇生成b5的第二個符號,此時假如隨機選擇了作為第二個符號x5,即此時a4=1,我們可以發現編碼矩陣G中形成一個四環,如a虛線方框所示,故如果要避免產生四環,我們可以重新在x2,x3,x4中隨機選擇一個作為生成b5的第二個符號,但同時編碼的隨機性也就降低了。假設度分布函數產生的度大于2,當已經選擇了x1,x2作為生成b5的前兩個符號,如圖4所示此時a0=1,a1=1,為了使避開a和b虛線所示的四環,第三個符號的選擇只能是x3,但第四個符號無論如何選擇都會形成四環。以上例子說明了Raptor編碼中短環消除和編碼的隨機性選擇是一種相互矛盾的關系,短環消除可以提高Raptor碼的性能,而同時編碼隨機性的降低又會降低Raptor碼的性能,故這兩者之間存在一種折中關系。
本發明提出的基于度優化的Raptor碼部分除環編碼算法的主要思路是處理好Raptor編碼中短環消除和編碼的隨機性選擇對Raptor碼性能影響的折中關系,研究分析預編碼對短環消除中度選擇的影響,在進行短環消除編碼之前根據預編碼的特性對度進行篩選優化,或者加入一定適當的反饋機制,使加入限制的部分除環算法能最大程度地提升Raptor碼的性能。
上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受所述實施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護范圍之內。