本發明涉及一種改進的噴泉碼度分布算法,是關于信息通信領域中利用噴泉碼對信號進行編碼時所使用的編碼度分布的構造方法,屬于通信技術領域。
背景技術:
基于tcp/ip協議的arq是基于反饋通道的傳輸機制,然而很多通信系統如廣播系統并不存在反饋信道,這在資源有限的情況下是一種極大的浪費。在數據傳輸方案中,接收端如果接收不到足夠多的編碼數據包,或者在僅差一個數據包的情況下,采用arq機制的傳輸方案就需要對編碼包進行重新獲取,直到接收的數據包數量達到要求。為了解決大規模的數據傳送及可靠廣播等問題,michaelluby等人于1998年提出了數字噴泉碼(digitalfountain)的概念。
2002年luby提出了第一種現實可行的噴泉碼-lt碼(lubytransform)。lt碼具有無固定碼率、魯棒性、高效性、較低的編譯碼復雜度、無需反饋信道來確保傳輸的可靠性和適應實時變化的信道等優點。其編碼過程為:發送端原始數據由k個數據包組成,根據某一編碼度分布隨機產生每個編碼數據包的度d,然后從k個原始數據包中任意地選擇d個數據包,再將這d個數據包進行異或運算,從而生成一個編碼數據包。編碼器重復操作這個過程就可以產生無限長的編碼數據包流。lt碼的譯碼一般采用置信傳播譯碼算法,其過程為將接收到的一定數量的編碼數據包與源數據包建立對應的雙向圖,任意地選取一個度為1的數據包開始進行譯碼。由于度為1數據包就是對源數據包的復制,所以通過簡單的復制運算,就能恢復源數據包。然后,對已經恢復的源數據包,將它與其有關聯的所有編碼數據包進行異或運算,更新這些編碼數據包的值,再將恢復的源數據包和與它有關聯的編碼數據包在tanner圖中所對應的邊刪除,使這些編碼數據包的度數減1。以此循環下去直到恢復所有原始數據為止。
常用的編碼度分布為:
1、理想孤波度分布(idealsolitondistribution)
理想孤波度分布理論上使每一個編碼數據包在每一次譯碼迭代中釋放的概率相同,保證在每次迭代過程中有且只有一個度為1的編碼數據包出現,完成每一次迭代恢復一個源數據包,同時又有一個度為1的編碼數據包出現。其度分布函數為:
理想孤波度分布是一種設計優良的概率分布函數。然而這種度概率分布只存在于理想狀態下,在實際應用中,譯碼性能會受到干擾噪聲的影響。具體影響表現在,如果在譯碼過程中受到輕微擾動,那么將無法尋找到度為1的編碼包符號,從而出現譯碼終止的情況。
2、魯棒孤波度分布(robustsolitondistribution)
魯棒孤波度分布引入了兩個參數c和δ用來保證譯碼過程中度為1編碼包的個數。
定義
魯棒孤波度分布為
其中,
式中,參數δ是概率約束參數,該參數值決定了編譯碼的失敗概率大小;參數c是大小可調的常數。在實際應用中,可通過調節c的不同取值以此獲得較優的譯碼性能性能。
采用魯棒孤波度分布進行編碼時,產生的編碼數據包多為度較大的編碼數據包,具有較高的覆蓋性,但因此增加了冗余度,造成譯碼效率的降低,而且產生度1和其他小度編碼數據包的數量較少。
技術實現要素:
本發明的目的在于給出一種改進的噴泉碼度分布算法,以得到一種有較好性能的度分布。
本發明的技術方案如下:
基于以上內容,本發明具體包括以下步驟:
步驟1,結合源信息的度分布與編碼包的度分布(rsd),在lt(lubytransform)碼編碼器中,將rsd度分布(robustsolitondistribution,魯棒孤波度分布)中度為1的編碼包與瞬時度值最大的源信息包相連,優化了可譯集大小從而得到mbrsd度分布;
步驟2,在mbrsd度分布的基礎上運用插值算法,即mbrsd度分布(memory-basedrsd,記憶性的魯棒孤波度分布)中等距離地插入少量度值為1的編碼包,通過分別調整編碼包度值為1所占概率η和度值非1所占概率
步驟3,根據imbrsd度分布對源信息進行編碼發送,直到收到接收端發送的確認信息。
與現有技術相比,本發明的有益技術效果在于:
采用lt碼編碼器與自適應編碼器相結合的方式,不僅沒有增加系統編碼的時間,而且提高了譯碼效率。
本方法將mbrsd度分布算法與插值算法進行有機結合,通過優化可譯集合值來進一步優化度分布函數,得到imbrsd度分布。運用imbrsd度分布對源數據進行噴泉編碼,可以減少譯碼開銷,提高譯碼效率,使噴泉碼能夠更好地應用在各個通信領域。
附圖說明
圖1是自適應lt碼編碼器結構;
圖2是lt碼的二分圖(k=4);
圖3是恢復邊數快慢與譯碼步驟的關系圖;
圖4是譯碼冗余與誤碼率關系圖;
圖5是不同刪除概率下的譯碼性能;
圖6是不同度分布下的可譯集大小譯碼步驟的關系。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步的詳細描述:
本發明提出一種改進的噴泉碼度分布算法,其首先控制度為1編碼包與源信息包的連接方式,使lt碼編碼器與自適應編碼器采用串行工作方式,其中在整個過程中只添加了一個自適應編碼器,如圖1所示。采用lt編碼器與自適應編碼器相結合的方式,不僅沒有增加系統編碼的時間,而且提高了譯碼效率,優化了可譯集大小從而減少了譯碼時間得到mbrsd度分布。
其次,由于mbrsd度分布算法中缺少度為1的編碼包且其分布不均勻,通過把增加度為1編碼包的插值算法與mbrsd度分布算法相結合,提出了imbrsd度分布算法。
改進的imbrsd度分布算法,包括以下步驟:
步驟1,在lt(lubytransform)碼編碼器中,將rsd度分布(robustsolitondistribution,魯棒孤波度分布)中度為1的編碼包與瞬時度值最大的源信息包相連,優化了可譯集大小從而得到mbrsd度分布。隨著譯碼的進行,每次都有新的元素加入和舊的元素被刪除來維持這個可譯集的大小直到譯碼結束。譯碼開始時,可譯集僅僅由度為1的編碼包組成。很明顯,與度為1編碼包相連的源信息包可以直接譯出,因為度為1編碼包的值和其對應的源信息包是相等的,此時可譯集被直接譯出,這些度為1的編碼包對應的源信息包重新組成可譯集集合。
步驟2,在mbrsd度分布(memory-basedrsd,記憶性的魯棒孤波度分布)中等距離地插入少量度值為1的編碼包,通過分別調整編碼包度值為1所占概率η和度值非1所占概率
具體地,在rsd中隨機選取度d;
如果d=1,那么選擇瞬時度值最大的源信息包與該編碼包相連;
如果d≠1,在源信息中隨機地選取d個源信息與之相連;
把選取的d個源信息包進行異或,得到編碼包
統計并記錄輸出編碼包的度值大小,如果在連續接收m個編碼包后仍然沒有度為1的編碼包,那么就插入一個度為1的編碼包,插入編碼包的值可以是組成第m個編碼包的某個源信息,以此完成至少一次的譯碼迭代過程;
在圖2二分圖中,清晰地描述mbrsd度分布的編碼過程,當出現度為1的編碼包時,如圖中的cn,則將其與此時度值最大的源信息包相連,如圖中的u1。(其中c是編碼包,u是源信息包)
步驟3,根據imbrsd度分布對源信息進行編碼發送,直到收到接收端發送的確認信息。
圖3模擬了二分圖中解碼邊數釋放快慢的理論最大值,并仿真了rsd、mbrsd以及imbrsd度分布下的lt碼的解碼邊數與譯碼步驟的關系。以rsd度分布下的lt碼譯碼性能作對比,發現改進后的imbrsd度分布譯碼速度更快,減少了譯碼的時間。
以k=1024,m=100為例,對其進行仿真。
圖4、5和6是對rsd、mbrsd以及imbrsd三種度分布下的lt碼譯碼性能的仿真,其中,圖4是譯碼冗余與誤碼率關系圖;圖5是不同刪除概率下的譯碼性能;圖6是不同度分布下的可譯集大小譯碼步驟的關系。由圖可知,相同條件下,改進的度分布算法imbrsd的誤碼率比mbrsd、rsd下的誤碼率更低、需要的譯碼包最少、譯碼速度更快,使噴泉碼能夠更好的應用在各個通信領域。
以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的保護范圍。