spa演算法
⑴ LDPC碼的碼的構造
對LDPC碼來說,不考慮碼長和次數分布的情況下,校驗矩陣的結構就成了影響其性能的重要因素,反映在二分圖上對編碼性能有重要影響的就是圖中環的長度分布,需要採用一定的方法對校驗矩陣進行構造,獲得好的編碼。
目前LDPC碼的構造方法主要可以分為兩大類:隨機或偽隨機構造方法和代數的構造方法。
隨機或偽隨機的構造方法主要考慮的是碼的性能,在碼長比較長(接近或超過10000) 時,性能非常接近香農限。代數的構造方法通常考慮的是降低編譯碼的復雜度,在碼長比較短的時候更有優勢。
1. Gallager LDPC碼
用和乘積演算法(SPA:Sum-pordcuct algorithm)進行解碼取得最大後驗概率的解碼性能的條件是二分圖中沒有小的環,即girth為4的環,無4環的條件反映到二分圖中就是任意兩行中1的交迭數目不超過1個。無4環的二元高比特率LDPc碼可以通過隨機生成行構成,一般來說,這種方法不能生成固定行重量的矩陣。
Gallaegr提出了一種替代的方法:採用隨機置換的方法來構造規則LDPC碼。對於碼長為N的(j,k)正則碼,將M*N矩陣H通過j個大小為(M/j)*N的子矩陣構成,每個子矩陣本身也是LDPC矩陣,列重量為1,行重量為k,第一個子矩陣為階梯型,即第1行的k個1的列號是從(i-1)*k l到1*k,而其他子矩陣都是第一個子矩陣的隨機列置換,這樣每個子矩陣每行都有k個1,每列都有1個1。這種構造方法要求M必須是j的整數倍。
(20,3,4)LDPC碼的校驗矩陣
Gallager曾給出了一個碼長為20的規則(3,4)LDPC碼的校驗矩陣,如圖所示。圖中的第一個子矩陣就是一個階梯型矩陣,而第2個和第3個矩陣都是第一個子矩陣的列置換。
Gallager同時證明了隨機置換得到的GaHager LDPC碼的最小漢明距離能夠隨著碼長的增加而線性增加,而且在對稱無記憶信道中,採用最大似然解碼時,其誤碼率隨著碼長的增加而呈指數形式下降,這說明隨機置換得到的Gallager LDPC碼是一類相當好的碼。
但是,Gallager在構造LDPC碼時採用的是隨機置換,這就給實現帶來了麻煩,就需要大量的存儲單元來存儲校驗矩陣中這些1的位置。
2. 確定性結構的LDPC碼
確定性結構的DLPC碼也稱為准循環LDPC碼。相對於隨機結構的矩陣是很容易獲得的確定性結構的矩陣,這種矩陣可以通過更少的參數來定義LDPC碼。確定性結構的LDPC碼的構造方法基於「陣列碼」(Array Code)。陣列碼是用來檢測和糾正突發差錯的二維碼。
通過三個參數定義LDPC碼。一個基本參數p和兩個整數j和k。令H為jp*kp的矩陣,定義為:
LDPC碼
其中這里的I是p*p的單位陣,Bi.j是Ip*p的左循環移位Bm.n或右循環移位Bm.n的置換矩陣。顯然,H矩陣中1的分布就只與循環位數Bm.n有關。對LDPC碼的分析就可以轉換為對Bm.n的分析。
將各小矩陣的循環移動位數寫成一個矩陣為
LDPC碼
上面的校驗矩陣提供了一個可以用於SAP解碼的稀疏矩陣。而且,這個校驗矩陣結構上沒有四線循環。
⑵ 演算法設計策略有哪些
演算法設計策略如下:
1、分治html
分治法的設計思想是,將一個難以直接解決的大問題,分割成k個規模較小的子問題,這些子問題相互獨立,且與原問題相同,而後各個擊破,分而治之。演算法。
5、分支限界
回溯法是對解空間進行深度優先搜索,事實上任何搜索遍整個解空間的演算法都可解決問題。因此採用通用圖搜索的任何實現做為搜索策略都可解決問題,只要作到窮舉便可。除了深度優先搜索以外,咱們還可採用廣度優先搜索,而分支限界法則是對解空間進行優先順序優先搜索。