TWI818490B - 低密度奇偶校驗碼的重組式解碼法與裝置 - Google Patents
低密度奇偶校驗碼的重組式解碼法與裝置 Download PDFInfo
- Publication number
- TWI818490B TWI818490B TW111111964A TW111111964A TWI818490B TW I818490 B TWI818490 B TW I818490B TW 111111964 A TW111111964 A TW 111111964A TW 111111964 A TW111111964 A TW 111111964A TW I818490 B TWI818490 B TW I818490B
- Authority
- TW
- Taiwan
- Prior art keywords
- codeword
- symptom
- decoding
- control signal
- flip
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 208000024891 symptom Diseases 0.000 claims description 82
- 230000008521 reorganization Effects 0.000 claims description 24
- 230000006798 recombination Effects 0.000 claims description 4
- 238000005215 recombination Methods 0.000 claims description 4
- 208000011580 syndromic disease Diseases 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
在此揭示一種用於低密度奇偶校驗碼的重組式解碼法與裝置。此重組式解碼裝置包括一傳統位元翻轉式解碼裝置,還有一個判斷模組、一個重組多工器、一個碼字重組模組及一個重組資料選取集合。此解碼法包括一傳統位元翻轉式解碼法,還有一碼字重組程序、一判斷程序。該碼字重組將已收的碼字的特定部分與已翻轉的碼字的特定部分重組後為一完整碼字長度。
Description
本發明關於解碼機制,尤其關於低密度奇偶校驗碼(Low Density Parity Check code:LDPC code)的重組式解碼法與裝置。
在傳統使用低密度奇偶校驗碼的錯誤控制碼系統中,常使用位元翻轉(Bit Flipping:BF)、合併乘積(Sum-Product)或最小值-總和(Min-Sum)解碼演算法。位元翻轉演算法在實現上有快速、面積小與低功號的特色,但就解碼成功率而言大不如乘積演算法或最小值-總和演算法。然而,乘積演算法或最小值-總和演算法在面積、速度與功耗上都須付出許多。因此,解碼法常常依據產生錯誤的個數、分布狀態、系統資源選擇解碼演算法或合併數個解碼演算法。
通常合併使用解碼演算法時,首先使用位元翻轉式解碼法,若解碼失敗,則使用最小值-總合解碼法。但是這種合併方式的解碼器,需要兩個解碼器的電路。雖然這樣的模式在發生錯誤個數相較小的情況下,供耗表現較佳,但整體解碼成功率不會提高,僅與單獨使用最小值-總和的解碼演算法相同。
另外,在低密度奇偶校驗碼的長度上常在資訊部分做縮短(Shortening)或在校驗部分做收縮(Puncturing)的應用。在收縮校驗部分的
情形中,在已收的碼字進入解碼器時,慣用將收縮部分補上全零的數據,換言之也可視為帶來較集中的錯誤在校驗部分。
參考圖3,傳統位元翻轉式解碼器包括輸入暫存器(Input Buffer)10、資料選取多工器(Multiplexer)12、位元翻轉與症狀值更新模組(Bit-Flipping and Syndrome-Updating Module)14、症狀值暫存器(Syndrome Buffer)16、已翻轉碼字暫存器(Data Buffer)18、解碼終止狀態判斷模組(Decoding Termination Logic)20。資料選取多工器12連接輸入暫存器10。位元翻轉與症狀值更新模組14連接資料選取多工器12。症狀值暫存器16雙向地連接位元翻轉與症狀值更新模組14。已翻轉碼字暫存器18有一端連接位元翻轉與症狀值更新模組14,還有一端連接資料選取多工器12。解碼終止狀態判斷模組20連接症狀值暫存器16。
輸入暫存器10暫存收到的碼字。
資料選取多工器12從輸入暫存器10接收碼字,或從輸入已翻轉碼字暫存器18接收已翻轉的碼字。
位元翻轉及症狀值更新模組14為傳統位元翻轉式解碼器的主要運作模組。位元翻轉與症狀值更新模組14計算翻轉函數值以翻轉位元及更新症狀值。位元翻轉及症狀值更新模組14包括各式邏輯電路可分別計算翻轉函數值、產生翻轉位元、計算並更新症狀值。位元翻轉及症狀值更新模組14輸出已更新的症狀值給症狀值暫存器16,並輸出已翻轉的碼字給已翻轉碼字暫存器18。
症狀值暫存器16從位元翻轉及症狀值更新模組14接收已更新的症狀值,並把資料回傳給位元翻轉及症狀值更新模組14,當作
計算翻轉函數值與更新症狀值的依據。症狀值暫存器16還把症狀值傳至解碼終止模組20。
已翻轉碼字暫存器18從位元翻轉及症狀值更新模組14接收已翻轉的碼字並暫存之。
解碼終止模組20從症狀值暫存器16接收數據,並藉以產生控制是否進行解碼或終止解碼的訊號。
參考圖4,一種傳統位元翻轉式解碼法可被執行於圖3所示傳統位元翻轉式解碼器。
在傳統位元翻轉式解碼法中,在S10,接收碼字。
在S14,判斷症狀值是否全為零。若是,則判定解碼成功,並停止程序,否則到S16。
在S16,依據症狀值計算翻轉函數值,並翻轉位元,同時更新症狀值。
在S18,再次判斷症狀值是否全為零,若是,則判定解碼成功,並停止程序,否則到S20。
在S20,判斷是否符合停止解碼條件或達到最高解碼遞迴數MAX_Iter,若是,則判定解碼失敗,否則回到S16。
有鑑於此,本發明之一個目的是提供一種用於低密度奇偶校驗碼的重組式解碼法,以利用現有解碼器增加解碼成功率,在集中錯誤產生時效果尤其顯著。
為達成上述目的,該解碼法包括一碼字(Word)的重組程序、一判斷程序、一適用於低密度奇偶校驗碼的傳統位元翻轉式解碼法。碼字重組將已收的碼字的特定部分與已翻轉的碼字的特定部分重組後為一完整碼字長度。
本發明之另一個目的是提供一個用於低密度奇偶校驗碼的解碼器。
為達成上述目的,該解碼器包括一個適用於低密度奇偶校驗碼的傳統位元翻轉式解碼器、一重組已收的碼字與已翻轉碼字的電路、一個重組位元的位置資訊的電路、一個多工器選取資料來源、一個決定電路供資料選取的多工器所用。
位元翻轉式解碼器在每次遞迴程序後,會輸出一個解碼狀態訊號與一已翻轉碼字,重組電路依據重組位元位置的電路的訊息,重組已收的碼字與已翻轉碼字,多工器依據決定電路的訊號選擇重組的碼字或已翻轉的碼字進入位元翻轉式解碼器,決定電路利用位元翻轉器的遞迴數(Iteration)做為多工器選取資料的依據。
本發明的解碼法及解碼器提高解碼成功率,卻僅增加很少的面積。
10:輸入暫存器
12:資料選取多工器
14:位元翻轉與症狀值更新模組
16:症狀值暫存器
18:已翻轉碼字暫存器
20:解碼終止狀態判斷模組
22:判斷模組
24:資料選擇多工器
26:碼字重組模組
28:重組資料選取集合
S10:接收碼字
S12:產生症狀值
S14:症狀值是否全為零
S16:計算翻轉函數值,翻轉位元,並更新症狀值
S18:症狀值是否全為零
S20:是否符合停止解碼條件或達到最高解碼遞迴數
S22:條件遞迴數是否等於總遞迴數
S24:重組碼字
〔圖1〕本發明之實施例之低密度奇偶校驗碼的重組式解碼器的電路的方塊圖。
〔圖2〕本發明之實施例之低密度奇偶校驗碼的重組式解碼法的流程圖。
〔圖3〕傳統位元翻轉式解碼器的電路的方塊圖。
〔圖4〕傳統位元翻轉式解碼法的流程圖。
以下參照相關圖式進一步說明本發明之實施例之低密度奇偶校驗碼的重組式解碼法與裝置。為便於理解本發明實施方式,以相同符號標示相同或近似的元件。
低密度奇偶校驗碼(Low Density Parity Check codes:LDPC codes)C是一種線性碼,N為碼字長度,K為傳輸資訊長度。用一個奇偶校驗矩陣(parity check matrix)H定義一個LDPC碼。H的維度為M×N,已收的碼字R(received word)有長度N,將R表示為[r 0 ,r 1 ,...,r N-1]。症狀值(syndrome)由算式獲得,R T 代表R的轉置矩陣(transpose matrix),且其維度為M×1。傳統位元翻轉方法包括計算症狀值、計算每個位元的翻轉函數值、比較翻轉函數值與反轉閾值翻轉位元,每次遞迴輸出解碼狀態與一已翻轉的碼字。
在本發明中,用組合不同區段的已收的碼字與已翻轉的碼字data_flipped=[f0,f1,…,fN-1],再進入傳統位元翻轉式解碼器以獲得正確的碼字。
用總遞迴數T*控制選取重組資料的時間。當條件遞迴數Iter_num被T*整除(Iter_num%T*=0),即選取重組資料。總遞迴數T*是可變參數,每次選取重組資料後即累加下次位元翻轉式解碼的最高遞迴數T_BF,即T*=T*+T_BF。若解碼法預計總遞迴數不超過100,且重
組碼字三次,則第一次位元翻轉的最高執行遞迴數T_BF1=5,第二次位元翻轉的最高執行遞迴數T_BF2=10,第三次位元翻轉的最高執行遞迴數T_BF3=85。所以,初始T*=T_BF1=5,當遞迴數Iter_num=5,條件Iter_num=T*成立,選擇重組的碼字(data_into_BF_eng)進位元翻轉式解碼器,且T*=T*+T_BF2=15。當位元翻轉式解碼器總遞迴數Iter_num達最後的T*=T_BF1+T_BF2+T_BF3=100,即終止解碼程序。
重組邏輯產生重組碼字(Reassembly Word)W=[w0,w1,…,wN-1]。實施例中,使用4位元組為每次重組的單位,從最低位元至最高位元。若執行三次的重組,重組資料選擇集合為:data_sel_set={0,4,8}。對應的三次的重組碼字分別為下:
W1=[r0,r1,…,rN-33,fN-32,…,fN-1];
W2=[r0,r1,…,rN-65,fN-64,…,fN-33,rN-32,…,rN-1];且
W3=[r0,r1,…,rN-97,fN-96,…,fN-65,rN-64,…,rN-1]。
參考圖1,本發明之較佳實施例的低密度奇偶校驗碼的重組式解碼器包括圖3所示的傳統位元翻轉式解碼器的元件及模組,還有一個判斷模組22、一個資料選擇多工器24、一個碼字重組模組26及一個重組資料選取集合28。為方便以下說明,將稱多工器12為「翻轉多工器12」,並稱多工器24為「重組多工器24」。
輸入暫存器10有一端連接翻轉多工器12,另一端連接碼字重組模組26。輸入暫存器10暫存一個碼字,並輸出資料到碼字重組模組26。
位元翻轉式解碼器的判斷電路產生控制翻轉多工器12的訊
號。若遞迴數Iter_num=1,則輸出訊號1,否則輸出訊號0。若位元翻轉式解碼器的判斷電路輸出1,則翻轉多工器12把已收的碼字傳至位元翻轉與症狀值更新模組14,否則把重組多工器24輸出結果傳至翻轉位元與症狀值更新模組14。
位元翻轉及症狀值更新模組14包括各式的邏輯電路可分別計算翻轉函數值、產生翻轉位元、計算並更新症狀值,並輸出已更新的症狀值到症狀值暫存器16。位元翻轉及症狀值更新模組14還輸出已翻轉的碼字到已翻轉碼字暫存器18。
症狀值暫存器16暫存位元翻轉及症狀值更新模組14的結果,並把資料回傳給位元翻轉及症狀值更新模組14,當做下次遞迴計算翻轉函數值與更新症狀值的依據。症狀值暫存器16還把症狀值傳至解碼終止模組20。
已翻轉碼字暫存器18有一端連接重組多工器24,還有一端連接碼字重組模組26。已翻轉碼字暫存器18暫存位元翻轉及症狀值更新模組14的已翻轉的碼字。
解碼終止模組20接收症狀值暫存器16的數據,以產生控制是否進行解碼或終止解碼的訊號。
重組判斷電路22產生控制重組多工器24的訊號。若遞迴數Iter_num等於總遞迴數T*,則輸出訊號1,否則輸出訊號0。
若從重組判斷電路22接收的訊號為1,則重組多工器24把碼字重組模組26產生的資料傳至翻轉多工器12,否則把已翻轉碼字暫存器18的資料傳至翻轉多工器12。
碼字重組模組26有一端連接輸入暫存器10,另一端連接已翻轉碼字暫存器18,另一端連接重組多工器24,還有一端連接重組資料選取集合28。碼字重組模組26從輸入暫存器10及已翻轉碼字暫存器18接收資料。然後,依重組資料選取集合28提供的訊號,碼字重組模組26組合碼字,並輸出這個組合碼字至重組多工器24。
重組資料選取集合28紀錄要移植的碼字位置,並把它傳到碼字重組模組26。重組資料選取集合28從多種重組方式擇一,並把選取的重組方式傳到碼字重組模組26。
圖2顯示本發明之一實施例的重組解碼法,它可被執行於圖1所示的重組解碼器中。
在S10,接收碼字。
在S14,判斷症狀值是否全為零。若是,則判定解碼成功,並停止程序,否則到S16。
在S16,依據症狀值計算翻轉函數值,並翻轉位元,同時更新症狀值。
在S18,再判斷症狀值是否全為零,若是,則判定解碼成功,並停止程序,否則到下一步驟。
在S20,判斷是否符合停止解碼條件或達到最高解碼遞迴數MAX_Iter,若是,則判定解碼失敗,否則到S22。
在S22,判斷條件遞迴數Iter_nnm是否等於總遞迴數T*,若是,則到S24,否則回到S16。總遞迴數T*是可變的。
在S24,用資料選擇多工器24、碼字重組模組26、重組資料選取集合28,重組碼字。然後,回到S16。
以上所述者僅為本發明的較佳實施方式,意在明確本發明的特徵,非用以限定本發明實施例的範圍。本技術領域內的一般技術人員根據本發明所作的均等變化,以及本領域內技術人員熟知的改變,仍應屬本發明涵蓋的範圍。
S10:接收碼字
S12:產生症狀值
S14:症狀值是否全為零
S16:計算翻轉函數值,翻轉位元,並更新症狀值
S18:症狀值是否全為零
S20:是否符合停止解碼條件或達到最高解碼遞迴數
S22:條件遞迴數是否等於總遞迴數
S24:重組碼字
Claims (8)
- 一種低密度奇偶校驗碼的重組式解碼法,其包括以下步驟:接收一個碼字(S10);產生多個症狀值(S12);判斷該等症狀值是否全為零(S14);若該等症狀值全為零,則判定解碼成功;若該等症狀值不全為零,則依該等症狀值計算翻轉函數值,翻轉位元,並更新該等症狀值(S16);判斷該等已更新的症狀值是否全為零(S18);若該等已更新的症狀值全為零,則判定解碼成功;若該等已更新的症狀值不全為零,則判斷是否符合停止解碼條件或達到最高解碼遞迴數(S20);若符合停止解碼條件或達到一個最高解碼遞迴數,則判定解碼失敗;若不符合停止解碼條件或達到該最高解碼遞迴數,則提供一個控制訊號,其中該控制訊號是1或0(S22);若該控制訊號是1,則重組該碼字,並回到依據該等症狀值計算翻轉函數值,翻轉位元,並更新症狀值的步驟(S16);及 若該控制訊號是0,則回到依據該等症狀值計算翻轉函數值,翻轉位元,並更新症狀值的步驟(S16)。
- 如請求項1所述之低密度奇偶校驗碼的重組式解碼法,其中該提供該控制訊號的步驟包括以下步驟:判斷條件遞迴數是否等於總遞迴數;若該條件遞迴數等於該總遞迴數,則該控制訊號是1;及若該條件遞迴數不等於該總遞迴數,則該控制訊號是0。
- 如請求項2所述之低密度奇偶校驗碼的重組式解碼法,其中該總遞迴數是可變參數。
- 一種低密度奇偶校驗碼的重組式解碼器,其包括:一個輸入暫存器(10),其接收並暫存一個碼字;一個翻轉多工器(12),其從該輸入暫存器(10)接收該碼字;一個位元翻轉及症狀值更新模組(14),其從該翻轉多工器(12)接收該碼字、計算一個翻轉函數值、翻轉位元、並更新多個症狀值;一個症狀值暫存器(16),其從該位元翻轉及症狀值更新模組(14)接收該等已更新的症狀值;一個已翻轉碼字暫存器(18),其從該位元翻轉及症狀值更新模組(14)接收已翻轉的該碼字; 一個解碼終止狀態判斷模組(20),其從該症狀值暫存器(16)接收該等已更新的症狀值,並據以產生控制一個是否進行解碼或終止解碼的訊號;一個判斷模組(22),其產生一個控制訊號,其中該控制訊號是1或0;一個重組多工器(24),其從該判斷模組(22)接收該控制訊號;及一個碼字重組模組(26),其連接該輸入暫存器(10)、該已翻轉碼字暫存器(18)及該重組多工器(24);其中若該控制訊號是1,則該重組多工器(24)把該碼字重組模組(26)產生的資料傳至該翻轉多工器(12),否則把該已翻轉碼字暫存器(18)的資料傳至該翻轉多工器(12)。
- 如請求項4所述之低密度奇偶校驗碼的重組式解碼器,其中若一個遞迴數等於一個總遞迴數,則該控制訊號是1,否則該控制訊號是0。
- 如請求項5所述之低密度奇偶校驗碼的重組式解碼器,其中該總遞迴數是可變參數。
- 如請求項4所述之低密度奇偶校驗碼的重組式解碼器,其還包括一個重組資料選取集合(28)連接該碼字重組模組(26),其中該重組資料選取集合(28)從多種重組方式擇一,並把選取的重組方式傳到該碼字重組模組(26)。
- 如請求項7所述之低密度奇偶校驗碼的重組式解碼器,其中該重組資料選取集合(28)記錄要重組的碼字位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111111964A TWI818490B (zh) | 2022-03-29 | 2022-03-29 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111111964A TWI818490B (zh) | 2022-03-29 | 2022-03-29 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202339445A TW202339445A (zh) | 2023-10-01 |
TWI818490B true TWI818490B (zh) | 2023-10-11 |
Family
ID=89856281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111111964A TWI818490B (zh) | 2022-03-29 | 2022-03-29 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI818490B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161830A1 (en) * | 2005-01-14 | 2006-07-20 | Yedidia Jonathan S | Combined-replica group-shuffled iterative decoding for error-correcting codes |
TW201735551A (zh) * | 2016-03-17 | 2017-10-01 | 慧榮科技股份有限公司 | 低密度奇偶校驗解碼器以及對其進行省電的方法 |
TW201926911A (zh) * | 2017-11-21 | 2019-07-01 | 慧榮科技股份有限公司 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
US20200162108A1 (en) * | 2018-11-19 | 2020-05-21 | SK Hynix Inc. | Ldpc decoder, semiconductor memory system, and operating method thereof |
-
2022
- 2022-03-29 TW TW111111964A patent/TWI818490B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161830A1 (en) * | 2005-01-14 | 2006-07-20 | Yedidia Jonathan S | Combined-replica group-shuffled iterative decoding for error-correcting codes |
TW201735551A (zh) * | 2016-03-17 | 2017-10-01 | 慧榮科技股份有限公司 | 低密度奇偶校驗解碼器以及對其進行省電的方法 |
TW201926911A (zh) * | 2017-11-21 | 2019-07-01 | 慧榮科技股份有限公司 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
US20200162108A1 (en) * | 2018-11-19 | 2020-05-21 | SK Hynix Inc. | Ldpc decoder, semiconductor memory system, and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW202339445A (zh) | 2023-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6751770B2 (en) | Decoder for iterative decoding of binary cyclic codes | |
US6044116A (en) | Error-floor mitigated and repetitive turbo coding communication system | |
US7184486B1 (en) | LDPC encoder and decoder and method thereof | |
JP5354979B2 (ja) | 低密度パリティ検査畳み込み符号(ldpc−cc)符号化器及びldpc−cc復号器 | |
US6014411A (en) | Repetitive turbo coding communication method | |
US8261170B2 (en) | Multi-stage decoder for error-correcting codes | |
US7689888B2 (en) | Decoding apparatus and method and program | |
TWI758748B (zh) | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 | |
US9214958B2 (en) | Method and decoder for processing decoding | |
US6028897A (en) | Error-floor mitigating turbo code communication method | |
US11177834B2 (en) | Communication method and apparatus using polar codes | |
KR20040101743A (ko) | 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법 | |
US10193568B2 (en) | Optical coherent receiver with forward error correction | |
CN110730011B (zh) | 一种基于部分叠加的递归分组马尔可夫叠加编码方法 | |
TWI818490B (zh) | 低密度奇偶校驗碼的重組式解碼法與裝置 | |
US11515895B2 (en) | Block code encoding and decoding methods, and apparatus therefor | |
Hadavian et al. | Ordered Reliability Direct Error Pattern Testing (ORDEPT) Algorithm | |
US11848687B1 (en) | Acceleration of S-polar ECC throughput by scheduler | |
Hadavian et al. | Ordered Reliability Direct Error Pattern Testing Decoding Algorithm | |
Zolotarev et al. | Usage of divergence within concatenated multithreshold decoding convolutional codes | |
Bellorado et al. | Soft-input, iterative, Reed-Solomon decoding using redundant parity-check equations | |
KR101267756B1 (ko) | 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 | |
CN114884519B (zh) | 一种基于级联方案的cv-qkd残余误码分步消除的方法与装置 | |
Ahmed et al. | An architectural comparison of Reed-Solomon soft-decoding algorithms | |
CN118118037A (zh) | 高吞吐低延时rs码编译码方法和系统 |