TW202143657A - 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 - Google Patents
以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 Download PDFInfo
- Publication number
- TW202143657A TW202143657A TW109115069A TW109115069A TW202143657A TW 202143657 A TW202143657 A TW 202143657A TW 109115069 A TW109115069 A TW 109115069A TW 109115069 A TW109115069 A TW 109115069A TW 202143657 A TW202143657 A TW 202143657A
- Authority
- TW
- Taiwan
- Prior art keywords
- check
- check matrix
- code
- matrix
- bits
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1174—Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1182—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the structure of the parity-check matrix is obtained by reordering of a random parity-check matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本發明提供一種以低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,包括以下步驟:提供低密度奇偶校驗碼的一檢查矩陣,其中檢查矩陣的大小為(m1+m2)×(n1+n2)。於一送訊端,根據檢查矩陣,藉由一編碼器對K位元的一輸入資料進行編碼,以產生區塊長度為為(n1+n2)位元的一第一區塊碼。透過一傳輸通道,自送訊端傳輸第一區塊碼的n1位元至一接收端,其中第一區塊碼的n2位元不傳送。由接收端接收n1位元的第一區塊碼,且藉由一解碼器利用檢查矩陣對所接收的第一區塊碼進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼。此外,本發明亦提供上述資料傳輸方法中的一種資料解碼方法。
Description
本發明是有關於一種資料解碼與傳輸方法,且特別是有關於一種以低密度奇偶校驗碼作為錯誤更正碼的解碼方法及應用其之通訊裝置。
在通訊系統中,編碼與解碼是不可或缺的技術。其中,低密度奇偶校驗碼(Low-density parity check code, LDPC code)的解碼技術近年來受到重視,將應用於現今所發展的5G的通訊系統中。
LDPC Code是一種線性區塊碼,因此在編碼及解碼時會將一連串的來源訊息分段處理。編碼時將此訊息段與生成矩陣相乘後得到加入檢查位元的碼字(Code word)。編碼後的資料經由傳輸通道傳輸到接收端,再利用同位檢查矩陣檢查收到的碼是否正確並加以修正。
如下表(S. Lin and D. J. Costello, Error Correction Codes (2nd Edition), p20
) 所列出AWGN通道極限值,在通道編碼理論中已知,當編碼率(Code Rate)在0.89左右時,微小的編碼率變化可以有明顯的通道極限變異。其中碼率由0.50增加到0.51時,增加0.01的碼率造成向農極限(Shannon limit) 0.043dB的變化。然而,當碼率由0.894提高到0.907時,即碼率增加0.013時向農極限有 0.198dB的變化。
Code Rate R | Eb/N0 (dB) |
0.50 | 0.188 |
0.51 | 0.233 |
… | … |
0.894 | 3.114 |
0.907 | 3.312 |
因此,利用打洞(puncture)將部分編碼位元捨棄不傳送,可以提高通訊系統實際編碼率。也就是說,藉由定義不同的打洞比例可以達到不同的編碼率選擇。當打洞實施至以LDPC碼進行編碼的通訊系統時,打洞位元位置若沒有配合特別的檢查矩陣設計,可能造成效能的損失。因此,習知針對配合不同編碼率的應用環境,需要設計對應的檢查矩陣與電路來提高效能。
然而,習知的檢查矩陣往往只能適用特定的電路與特定編碼率的應用環境,一但編碼率的需求改變,就需要選擇另外的檢查矩陣以及對應的電路。因此,不但使用上相當不彈性,電路設計的複雜度與成本也相當高。
本發明提供一種低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法,能夠彈性地調整檢查矩陣,以符合多種編碼率的需求。
本發明提供一種以低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,包括以下步驟:提供低密度奇偶校驗碼的一檢查矩陣,其中檢查矩陣的大小為(m1+m2)×(n1+n2)。於一送訊端,根據檢查矩陣,藉由一編碼器對K位元的一輸入資料進行編碼,以產生區塊長度為為(n1+n2)位元的一第一區塊碼。透過一傳輸通道,自送訊端傳輸第一區塊碼的n1位元至一接收端,其中第一區塊碼的n2位元不傳送。由接收端接收n1位元的第一區塊碼,且藉由一解碼器利用檢查矩陣對所接收的第一區塊碼進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼。K、m1、m2、n1、n2為正整數,且K小於(n1+n2)。解碼器以包括一符號與一數值的一有符號數表示第一區塊碼每一位元的一可靠度資訊,且對未傳送的n2位元的第一區塊碼分別給定一預定符號以及一預定數值。在解碼運算過程中,若可靠度資訊的數值為預定數值時,僅預定符號參與疊代運算。在解碼運算過程中,若可靠度資訊的數值非預定數值時,則符號與數值皆參與疊代運算。
在本發明的一實施例中,當檢查矩陣以一坦納圖表示時,其中n1位元對應檢查矩陣中的n1個變數節點,且行權重的範圍介於[r1, r2],其中n2位元對應檢查矩陣中的n2個變數節點,且行權重的範圍介於[s1, s2],其中r1、 r2、s1、s2皆為大於等於0的整數,且s1 ≥ r2。
在本發明的一實施例中,檢查矩陣包括多個區域矩陣,且進行解碼運算的步驟包括以下子步驟:分別利用這些區域矩陣的每一個進行疊代運算,以運算出多個區域碼。當這些區域碼解出後,利用整個的檢查矩陣進行疊代運算,以疊代出(n1+n2)位元的第二區塊碼。
在本發明的一實施例中,檢查矩陣更包括一廣域矩陣,其中這些區域矩陣位於前n1×(m1+m2)的範圍內且沿一對角排列,廣域矩陣為後n2×(m1+m2)的範圍。
在本發明的一實施例中,檢查矩陣更包括一廣域矩陣,其中這些區域矩陣位於(n1+n2)×前m1的範圍內且沿一對角排列,廣域矩陣為(n1+n2)×後m2的範圍,且這些區域矩陣兩二階段鄰者具有一重疊部分。
在本發明的一實施例中,未傳送的n2位元為隨機選出。
在本發明的一實施例中,檢查矩陣包括多個非零元素以及多個零元素,這些非零元素設在檢查矩陣中行與行之間彼此不相鄰的位置,或是設在列與列之間彼此不相鄰的位置。
在本發明的一實施例中,檢查矩陣包括多個子矩陣,各子矩陣包括多個非零元素以及多個零元素,各子矩陣中的每個行與每個列中最多只有一個非零元素。
本發明再提供一種以低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,包括以下步驟:提供低密度奇偶校驗碼的一檢查矩陣,其中檢查矩陣的大小為(m1+m2)×(n1+n2)位元。接收n1位元的一第一區塊碼,且藉由一解碼器利用檢查矩陣對所接收的第一區塊碼進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼。K、m1、m2、n1、n2為正整數,且K小於(n1+n2)。解碼器以包括一符號與一數值的一有符號數表示第一區塊碼每一位元的一可靠度資訊,且對未傳送的n2位元的第一區塊碼分別給定一預定符號以及一預定數值。在解碼運算過程中,若可靠度資訊的數值為預定數值時,僅預定符號參與疊代運算。在解碼運算過程中,若可靠度資訊的數值非預定數值時,則符號與數值皆參與疊代運算。
在本發明的一實施例中,當檢查矩陣以一坦納圖表示時,其中n1位元對應檢查矩陣中的n1個變數節點,且行權重的範圍介於[r1, r2],其中n2位元對應檢查矩陣中的n2個變數節點,且行權重的範圍介於[s1, s2],其中r1、 r2、s1、s2皆為大於等於0的整數,且s1 ≥ r2。
在本發明的一實施例中,檢查矩陣包括多個區域矩陣,且進行解碼運算的步驟包括以下步驟:分別利用這些區域矩陣的每一個進行疊代運算,以運算出多個區域碼。當這些區域碼解出後,利用整個的檢查矩陣進行疊代運算,以疊代出(n1+n2)位元的第二區塊碼。
在本發明的一實施例中,檢查矩陣更包括一廣域矩陣,其中這些區域矩陣位於前n1×(m1+m2)的範圍內且沿一對角排列,廣域矩陣為後n2×(m1+m2)的範圍。
在本發明的一實施例中,檢查矩陣更包括一廣域矩陣。這些區域矩陣位於(n1+n2)×前m1的範圍內且沿一對角排列,廣域矩陣為(n1+n2)×後m2的範圍,且這些區域矩陣兩二階段鄰者具有一重疊部分。
在本發明的一實施例中,未傳送的n2位元為隨機選出。
在本發明的一實施例中,檢查矩陣包括多個非零元素以及多個零元素,這些非零元素設在檢查矩陣中行與行之間彼此不相鄰的位置,或是設在列與列之間彼此不相鄰的位置。
在本發明的一實施例中,檢查矩陣包括多個子矩陣,各子矩陣包括多個非零元素以及多個零元素,各子矩陣中的每個行與每個列中最多只有一個非零元素。
基於上述,本發明實施例的低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法,能夠藉由打洞來決定n2的比例,而能調整編碼區塊的編碼率,達到多編碼率設計。
底下藉由具體實施例配合所附的圖式詳加說明,當更容易瞭解本發明之目的、技術內容、特點及其所達成之功效。
圖1繪示為本發明一實施例之以LDPC code 作為錯誤更正碼的資料傳輸方法所應用之一通訊系統。請先參考圖1,通訊系統100包括一送訊端110、一接收端120以及一傳輸通道130。送訊端110包括一編碼器112,用於對一輸入資料D進行編碼成一第一區塊碼C0。傳輸通道130連接於送訊端110與接收端120之間,用於將n位元的第一區塊碼C1傳送至接收端120。由於在傳輸過程可能會受到雜訊N等干擾,故傳輸通道130送出可能包含雜訊的第一區塊碼C1’至接收端120。接收端120包括一解碼器,用於對第一區塊碼C1’進行解碼運算,獲得一第二區塊碼C0’。
圖2繪示為本發明一實施例之以LDPC code 作為錯誤更正碼的資料傳輸方法的流程圖。為了方便說明,以下將配合圖1的通訊系統100來進行說明圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法。
圖3為應用於圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法的檢查矩陣的示意圖。請參考圖2與圖3,首先進行步驟S110,提供LDPC code的一檢查矩陣H0,其中檢查矩陣的大小為(m1+m2)×(n1+n2)。舉例來說,檢查矩陣H0可包含三部分H1、H2、H3。假設H0為LDPC code區塊碼 C0之檢查矩陣,H1為LDPC code區塊碼 C1之檢查矩陣。對區塊碼C0而言,編碼率為R0,且R0≥1-(m1+m2)/(n1+n2)。而對區塊碼C1,編碼率R1≥1-m1/n1,其中m1、m2、n1、n2為正整數。因此,R1–R0 > 0。
也就是說,區塊碼C1的編碼率高於區塊碼C0的編碼率。在通訊系統100中,便可利用此結構的檢查矩陣H0,加上打洞技巧來提高傳輸資料的編碼率。檢查矩陣H0可包括多個非零元素以及多個零元素。在本實施例中,非零元素可設在檢查矩陣H0中行與行之間彼此不相鄰的位置,或是設在列與列之間彼此不相鄰的位置。如此一來,經實驗證明會有較好的錯誤更正能力。簡而言之,檢查矩陣H0中相鄰的行沒有共同的非零位置,或者相鄰的列沒有共同的非零位置。
接著進行步驟S120,於送訊端110,根據檢查矩陣H0,藉由編碼器112對K位元的輸入資料D進行編碼,以產生區塊長度為為(n1+n2)位元的一第一區塊碼C0。也就是說,在編碼時首先產生長度為(n1 + n2)的區塊碼C0,以C0 = [C1 P ]T
向量表示,此時碼率為R0。在本實施例中,K為正整數,且K小於(n1+n2)。此外,P為n2位元的向量,用以表示被打洞的位元。
接下來進行步驟S130,透過傳輸通道130,自送訊端110傳輸第一區塊碼C0的n1位元(即C1)至一接收端,其中第一區塊碼C0的n2位元不傳送。亦即,第一區塊碼C0對應到P的n2位元不傳送,此時碼率提高到R1,且此步驟稱作打洞。雖然本實施例n2是對應檢查矩陣H0的最後幾行的檢查矩陣H2,但在另一實施例中,未傳送的n2位元的對應位置亦可為隨機選出。
然後進行步驟S140,由接收端120接收n1位元的第一區塊碼C1’(即包含雜訊N的第一區塊碼C1),且藉由解碼器122利用檢查矩陣H0對所接收的第一區塊碼C1’進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼C0’。舉例來說,解碼時,可利用信度傳播演算法(belief propagation algorithm)解碼,或化簡之最小和解碼演算法(min-sum decoding algorithm)解碼。
進一步來說,解碼器122以包括一符號(sign bit)與一數值的一有符號數表示第一區塊碼C0每一位元的一可靠度資訊,且對未傳送的n2位元的第一區塊碼分別給定一預定符號以及一預定數值。在解碼運算過程中,若可靠度資訊的數值為預定數值時,僅預定符號參與疊代運算。在解碼運算過程中,若可靠度資訊的數值非預定數值時,則符號與數值皆參與疊代運算。例如,捨棄之n2位元需先做特別處理。以最小和解碼演算法為例,首先將捨棄n2位元之可靠度資訊(例如通道的log likelihood ratio值)全設為+0,其中預定數值為0,預定符號為正號。在最小和解碼演算法的計算中排除所有數值為0的排序運算。
附帶一提的是,本領域具有通常知識者可以理解,步驟S110與步驟S140亦可歸納出一實施例之以LDPC code 作為錯誤更正碼的資料解碼方法。
圖4為圖3之檢查矩陣表示為坦納圖的示意圖。請參考圖4,當檢查矩陣H0以一坦納圖T表示時,其中n1位元對應檢查矩陣中的n1個變數節點VN(variable node),n2位元對應檢查矩陣H0中的n2個變數節點VN,m1+m2則對應坦納圖T的檢查節點CN(check node)。
須說明的是,由編碼理論可知,長度n1之區塊碼C0與長度為n1+n2之區塊碼C0比較,後者有較大區塊碼長且有較低碼率,因此可期待有較佳的錯誤更正能力。然而經過打洞過程所遺失之資訊,可能降低錯誤更正能力,若未經特殊設計之LDPC檢查矩陣直接實施此種打洞步驟,可能造成C0錯誤更正能力低於C0錯誤更正能力之情況。
因此,在設計上,本實施例提出在建構檢查矩陣H0時,可加入以下條件:對應到被捨棄的n2位元其 (column weight , 即一行中非零個數)需大於或等於n1位元所對應的檢查矩陣 [H1T
H3T
]T
行權重。亦即,n1部分對應的行權重範圍以[r1, r2]表示,而n2部分對應的行權重範圍以[s1, s2]表示,檢查矩陣行權重分配滿足:
s1 ≥ r2,
其中r1、 r2、s1、s2皆為大於等於0的整數。
藉由上述條件,能夠進一步確保檢查矩陣H0經過打洞後,保有區塊碼C0維持較佳的錯誤更正能力。也就是說,藉由此高行權重(high column weight)的條件確保了信度傳播解碼過程的首次疊代運算中,經由打洞所遺失的資訊可以快速由其他連結的位元補償得到。此外,打洞所捨棄之n2位元個數,亦是另一影響資訊回復收斂的參數。本申請案例如可經由以下兩種方法決定參數:
1. 模擬實驗法:逐漸增加n2數值直到解碼器122無法正確解碼為止。
2. 數值分析實驗法:以隨機資訊產生區塊碼,統計疊代解碼過程中的第一次疊代運算後,打洞的n2位元的可靠度被更改為正確的符號(sign bit)比例或估計其機率模型,以此得到最佳n2所對應的行權重數值組合[s1, s2]。
進一步來說,上述概念所描述的檢查矩陣H0,可視為一種廣域耦合(global-coupled, GC)的LDPC檢查矩陣特例。當GC-LDPC檢查矩陣具備如圖6或圖7之結構時,還可利用其結構高行權重比例,在行權重較高之位元位置實施打洞以調整碼率並維持較佳之錯誤更正能力。GC-LDPC最大特色在於,可以將一個LDPC碼視為多個較短的LDPC區塊碼(local codes)。因此可進行廣域-區域的二階段解碼(global-local two-phase decoding)。
圖5為應用於圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法的一種二階段解碼運算的流程圖,圖6為本發明一實施例之應用於圖5之二階段解碼運算的檢查矩陣的示意圖。請參考圖5與圖6,檢查矩陣H0’包括多個區域矩陣HL1~HLt以及一廣域矩陣HG,這些區域矩陣HL1~HLt位於前n1×(m1+m2)的範圍內且沿一對角排列,廣域矩陣Hg為後n2×(m1+m2)的範圍,t為大於0的正整數。若以坦納圖來表示的話(未繪示),n1位元對應t個區域變數節點(local variable nodes),而n2位元對應於n2個廣域變數節點(global variable nodes),其中n1變數節點的行權重範圍介於[r1, r2],n2位元對應檢查矩陣中n2變數節點的行權重介於[s1, s2],且s1 ≥ r2。
舉例來說,解碼運算S140的步驟可包括子步驟S142以及S144。首先進行步驟S142,分別利用這些區域矩陣HL1~HLt的每一個進行疊代運算,以運算出多個區域碼(local code)。詳細來說,在採用二階段解碼時,解碼器122首先針對子矩陣HL1對應的列所構成的區域碼1解碼,隨後依序解出子矩陣HL2到子矩陣HLt所對應的區域碼2到區域碼t,過程中逐漸地更新打洞bits資訊(HG所對應位元)。
然後進行步驟S144,當這些區域碼1~t解出後,利用整個的檢查矩陣H0’進行疊代運算,以疊代出(n1+n2)位元的第二區塊碼C0’。亦即,以完整檢查矩陣H0’進行廣域解碼(global decoding),經過幾次疊代完成錯誤更正解碼。
圖7為本發明另一實施例之應用於圖5之二階段解碼運算的檢查矩陣的示意圖。在本實施例中,檢查矩陣H0”包括多個區域矩陣HL1’~HLt’以及一廣域矩陣HG’,其中這些區域矩陣HL1’~HLt’位於(n1+n2)×前m1的範圍內且沿一對角排列,廣域矩陣HG’為(n1+n2)×後m2的範圍,且這些區域矩陣HL1’~HLt’兩二階段鄰者具有一重疊部分W。若以坦納圖來表示的話(未繪示),m1個區域檢查節點(local check nodes)構成t個區域碼,而m2區域檢查節點構成m2個廣域檢查節點(global check nodes)。每兩個區域碼至少有一個相同的變數節點。區域碼間共有的變數節點共有n2個,其變數節點的行權重範圍介於[s1, s2];剩下不共用的變數節點共有n1個,行權重範圍介於[r1, r2], 且s1 ≥ r2。
類似地,在本實施例中,圖7結構的GC-LDPC碼也可以同樣以圖5之二階段解碼的方式進行解碼,依序更新打洞位元資訊,在此不再贅述。
在另一未繪示的實施例中,圖1之通訊系統以及圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法,亦可採用Quasi-cyclic (QC) LDPC codes構造的檢查矩陣,以讓硬體實作較有效率。所謂的QC-LDPC的檢查矩陣可由多個較小方陣(square matrix)的子矩陣所構成,而打洞的位置可以是整數或小數倍的方陣長度。每個子矩陣即為一循環位移單位矩陣(cyclic shifted identity matrix)。或者,一個循環位移矩陣亦可稱為一個循環置換矩陣(circulant permutation matrix, CPM)。
舉例來說,一個CPM的大小是128×128的方陣,且包括多個非零元素以及多個零元素。在這個方陣中每個行與每個列中最多只有一個非零元素,所以對整數個方陣打洞的長度就是128位元的整數倍。若打洞的位置為小數倍的方陣長度,例如0.5 個方陣長度,就是打洞 64位元的長度。
圖8A為區塊碼的錯誤位元數與解碼後區塊錯誤率的模擬數據折線圖,圖8B為區塊碼的錯誤位元數與解碼後位元錯誤率的模擬數據折線圖。請參考圖8A與圖8B,兩圖中橫軸代表在一個區塊碼的錯誤位元數,縱軸代表平均的解碼後錯誤率。在每一次模擬中,會在編碼後的區塊沒有被打洞的位置隨機挑選n個錯誤位元,所以圖的橫軸就是不同的n值,縱軸就是在這個n值所對應的平均錯誤。
在圖8A中,縱軸為區塊錯誤率(block error rate, BLER),區塊錯誤率的計算是:(錯誤區塊數)/ (模擬區塊總數),其中錯誤區塊的定義是只要解碼後有一個位元解錯,就算一個區塊錯誤。在圖8B中,縱軸為位元錯誤率(bit error rate, BER)。位元錯誤率的計算是:(錯誤位元總數)/ (區塊長×模擬區塊總數)。
進一步來說,圖8A與圖8B中有很多條線,分別是指一個大的檢查矩陣,依序打洞32位元(即,4位元組(bytes))的結果。因此,會有不同的(n1, K)和編碼率R的組合。因此,本實施可藉由預先模擬的結果,依據編碼率以及錯誤率的需求來選擇打洞的數量(即,不傳送的n2位元),便可達到所需的編碼率以及錯誤率,而無須選擇特定的檢查矩陣或是重新設計電路。
綜合上述,一般NAND快閃記憶體的LDPC碼設計,著重於大區塊碼長(block length)與高編碼率兩種需求;前者確保了優異的錯誤更正能力,而後者降低資料的位元儲存成本。本發明的上述實施例,提出一種廣域耦合的LDPC檢查矩陣的產生方法,利用打洞方式搭配特殊解碼,與其他相同編碼率之LDPC碼比較,有更佳錯誤更正能力。此外,本發明的上述實施例,特色包含:
1. 保有廣域耦合結構性檢查矩陣特徵,適用於有高速編碼解碼吞吐量(throughput)需求,如NAND快閃記憶體之應用。
2. 檢查矩陣針對打洞位置設計不同行權重(一行中非零元素個數),並搭特定解碼方式,可得到較佳的錯誤更正能力。
3. 能夠將較低編碼率R0經由打洞將編碼率提高至R1,即R0< R1。相較於習知直接設計一個編碼率為R1的LDPC碼的情況,由於本發明上述實施例經由打洞的LDPC碼有較多的同位元檢查方程式(parity check equation),故有機會達到較好的錯誤更正效果。
4. 藉由區域/全域二階段解碼(local/global two-phase decoding),能夠逐漸更新修正因打洞遺失的位元資訊。
5.藉由 QC-LDPC結構化檢查矩陣設計,檢查矩陣由多個較小方陣的子矩陣所構成,而打洞的位置可以是整數或小數的子矩陣長度,可讓硬體實作較有效率。
6. 能夠藉由打洞來決定n2的比例,而能調整編碼區塊的編碼率,達到多編碼率設計。
以上所述之實施例僅係為說明本發明之技術思想及特點,其目的在使熟習此項技藝之人士能夠瞭解本發明之內容並據以實施,當不能以之限定本發明之專利範圍,即大凡依本發明所揭示之精神所作之均等變化或修飾,仍應涵蓋在本發明之專利範圍內。
100:通訊系統
110:送訊端
112:編碼器
120:接收端
122:解碼器
130:傳輸通道
C0、C0’、C1、C1’:區塊碼
CN:檢查節點
D:輸入資料
H0、H0’、 H0”:檢查矩陣
H1、H2、H3:部分
HG、HG’:廣域矩陣
HL1~HLt、HL1’~HLt’:區域矩陣
N:雜訊
S110~S140、S142、S144:步驟
T:坦納圖
VN:變數節點
W:重疊部分
圖1繪示為本發明一實施例之以LDPC code 作為錯誤更正碼的資料傳輸方法所應用之一通訊系統。
圖2繪示為本發明一實施例之以LDPC code 作為錯誤更正碼的資料傳輸方法的流程圖。
圖3為應用於圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法的檢查矩陣的示意圖。
圖4為圖3之檢查矩陣表示為坦納圖的示意圖。
圖5為應用於圖2之以LDPC code 作為錯誤更正碼的資料傳輸方法的一種二階段解碼運算的流程圖。
圖6為本發明一實施例之應用於圖5之二階段解碼運算的檢查矩陣的示意圖。
圖7為本發明另一實施例之應用於圖5之二階段解碼運算的檢查矩陣的示意圖。
圖8A為區塊碼的錯誤位元數與解碼後區塊錯誤率的模擬數據折線圖。
圖8B為區塊碼的錯誤位元數與解碼後位元錯誤率的模擬數據折線圖。
S110~S140:步驟
Claims (16)
- 一種以低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,包括: 提供低密度奇偶校驗碼的一檢查矩陣,其中該檢查矩陣的大小為(m1+m2)×(n1+n2); 於一送訊端,根據該檢查矩陣,藉由一編碼器對K位元的一輸入資料進行編碼,以產生區塊長度為為(n1+n2)位元的一第一區塊碼; 透過一傳輸通道,自該送訊端傳輸該第一區塊碼的n1位元至一接收端,其中該第一區塊碼的n2位元不傳送;以及 由該接收端接收n1位元的該第一區塊碼,且藉由一解碼器利用該檢查矩陣對所接收的該第一區塊碼進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼, 其中K、m1、m2、n1、n2為正整數,且K小於(n1+n2); 其中該解碼器以包括一符號與一數值的一有符號數表示該第一區塊碼每一位元的一可靠度資訊,且對未傳送的n2位元的該第一區塊碼分別給定一預定符號以及一預定數值, 在該解碼運算過程中,若該可靠度資訊的該數值為該預定數值時,僅該預定符號參與疊代運算;以及 在該解碼運算過程中,若該可靠度資訊的該數值非該預定數值時,則該符號與該數值皆參與疊代運算。
- 如請求項1所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中當該檢查矩陣以一坦納圖表示時,其中n1位元對應該檢查矩陣中的n1個變數節點,且行權重的範圍介於[r1, r2],其中n2位元對應該檢查矩陣中的n2個變數節點,且行權重的範圍介於[s1, s2],其中r1、 r2、s1、s2皆為大於等於0的整數,且s1 ≥ r2。
- 如請求項1所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中該檢查矩陣包括多個區域矩陣,且進行該解碼運算的步驟包括: 分別利用該些區域矩陣的每一個進行疊代運算,以運算出多個區域碼;以及 當該些區域碼解出後,利用整個的該檢查矩陣進行疊代運算,以疊代出(n1+n2)位元的該第二區塊碼。
- 如請求項3所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中該檢查矩陣更包括一廣域矩陣,其中該些區域矩陣位於前n1×(m1+m2)的範圍內且沿一對角排列,該廣域矩陣為後n2×(m1+m2)的範圍。
- 如請求項3所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中該檢查矩陣更包括一廣域矩陣,其中該些區域矩陣位於(n1+n2)×前m1的範圍內且沿一對角排列,該廣域矩陣為(n1+n2)×後m2的範圍,且該些區域矩陣兩二階段鄰者具有一重疊部分。
- 如請求項1所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中未傳送的該n2位元為隨機選出。
- 如請求項1所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中該檢查矩陣包括多個非零元素以及多個零元素,該些非零元素設在該檢查矩陣中行與行之間彼此不相鄰的位置,或是設在列與列之間彼此不相鄰的位置。
- 如請求項1所述之低密度奇偶校驗碼作為錯誤更正碼的資料傳輸方法,其中該檢查矩陣包括多個子矩陣,各該子矩陣包括多個非零元素以及多個零元素,各該子矩陣中的每個行與每個列中最多只有一個非零元素。
- 一種以低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,包括: 提供低密度奇偶校驗碼的一檢查矩陣,其中該檢查矩陣的大小為(m1+m2)×(n1+n2)位元; 接收n1位元的一第一區塊碼,且藉由一解碼器利用該檢查矩陣對所接收的該第一區塊碼進行一解碼運算,以疊代出(n1+n2)位元的一第二區塊碼, 其中K、m1、m2、n1、n2為正整數,且K小於(n1+n2); 其中該解碼器以包括一符號與一數值的一有符號數表示該第一區塊碼每一位元的一可靠度資訊,且對未傳送的n2位元的該第一區塊碼分別給定一預定符號以及一預定數值, 在該解碼運算過程中,若該可靠度資訊的該數值為該預定數值時,僅該預定符號參與疊代運算;以及 在該解碼運算過程中,若該可靠度資訊的該數值非該預定數值時,則該符號與該數值皆參與疊代運算。
- 如請求項9所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中當該檢查矩陣以一坦納圖表示時,其中n1位元對應該檢查矩陣中的n1個變數節點,且行權重的範圍介於[r1, r2],其中n2位元對應該檢查矩陣中的n2個變數節點,且行權重的範圍介於[s1, s2],其中r1、 r2、s1、s2皆為大於等於0的整數,且s1 ≥ r2。
- 如請求項9所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中該檢查矩陣包括多個區域矩陣,且進行該解碼運算的步驟包括: 分別利用該些區域矩陣的每一個進行疊代運算,以運算出多個區域碼;以及 當該些區域碼解出後,利用整個的該檢查矩陣進行疊代運算,以疊代出(n1+n2)位元的該第二區塊碼。
- 如請求項11所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中該檢查矩陣更包括一廣域矩陣,其中該些區域矩陣位於前n1×(m1+m2)的範圍內且沿一對角排列,該廣域矩陣為後n2×(m1+m2)的範圍。
- 如請求項11所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中該檢查矩陣更包括一廣域矩陣,其中該些區域矩陣位於(n1+n2)×前m1的範圍內且沿一對角排列,該廣域矩陣為(n1+n2)×後m2的範圍,且該些區域矩陣兩二階段鄰者具有一重疊部分。
- 如請求項9所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中未傳送的該n2位元為隨機選出。
- 如請求項9所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中該檢查矩陣包括多個非零元素以及多個零元素,該些非零元素設在該檢查矩陣中行與行之間彼此不相鄰的位置,或是設在列與列之間彼此不相鄰的位置。
- 如請求項9所述之低密度奇偶校驗碼作為錯誤更正碼的資料解碼方法,其中該檢查矩陣包括多個子矩陣,各該子矩陣包括多個非零元素以及多個零元素,各該子矩陣中的每個行與每個列中最多只有一個非零元素。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109115069A TWI712269B (zh) | 2020-05-06 | 2020-05-06 | 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 |
US16/992,359 US11031954B1 (en) | 2020-05-06 | 2020-08-13 | Data decoding method using LDPC code as error correction code and data transmitting method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109115069A TWI712269B (zh) | 2020-05-06 | 2020-05-06 | 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI712269B TWI712269B (zh) | 2020-12-01 |
TW202143657A true TW202143657A (zh) | 2021-11-16 |
Family
ID=74669861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109115069A TWI712269B (zh) | 2020-05-06 | 2020-05-06 | 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11031954B1 (zh) |
TW (1) | TWI712269B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101208546B1 (ko) * | 2004-08-09 | 2012-12-05 | 엘지전자 주식회사 | 저밀도 패리티 체크 행렬을 이용한 부호화 및 복호화 방법 |
JP4601675B2 (ja) * | 2006-02-09 | 2010-12-22 | 富士通株式会社 | Ldpc検査行列生成方法及び検査行列生成器並びに符号再送方法 |
KR100833515B1 (ko) * | 2006-12-05 | 2008-05-29 | 한국전자통신연구원 | 가변 정보 길이 및 가변 부호율을 가진 ldpc 부호의패리티 검사 행렬 생성 방법, 부/복호화 방법 및 이를이용하는 장치 |
KR101492634B1 (ko) * | 2007-08-28 | 2015-02-17 | 삼성전자주식회사 | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 데이터 송수신 장치 및 방법 |
KR20100061409A (ko) * | 2007-09-28 | 2010-06-07 | 에이저 시스템즈 인크 | 복잡성이 감소된 데이터 프로세싱을 위한 시스템들 및 방법들 |
JP2009100222A (ja) * | 2007-10-16 | 2009-05-07 | Toshiba Corp | 低密度パリティ検査符号の復号装置およびその方法 |
US8429512B2 (en) * | 2008-06-23 | 2013-04-23 | Romat At Tel Aviv University Ltd. | Reduced complexity LDPC decoder |
US8516351B2 (en) * | 2009-07-21 | 2013-08-20 | Ramot At Tel Aviv University Ltd. | Compact decoding of punctured block codes |
US10784901B2 (en) | 2015-11-12 | 2020-09-22 | Qualcomm Incorporated | Puncturing for structured low density parity check (LDPC) codes |
US9793923B2 (en) * | 2015-11-24 | 2017-10-17 | Texas Instruments Incorporated | LDPC post-processor architecture and method for low error floor conditions |
CN106374940A (zh) * | 2016-11-14 | 2017-02-01 | 中国电子科技集团公司第五十四研究所 | 一种多进制ldpc译码方法及译码器 |
-
2020
- 2020-05-06 TW TW109115069A patent/TWI712269B/zh active
- 2020-08-13 US US16/992,359 patent/US11031954B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11031954B1 (en) | 2021-06-08 |
TWI712269B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11616514B2 (en) | Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code | |
US7992066B2 (en) | Method of encoding and decoding using low density parity check matrix | |
EP3457575B1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
US7458009B2 (en) | Method for encoding low-density parity check code | |
CN106685586B (zh) | 生成用于在信道中传输的低密度奇偶校验码的方法及设备 | |
US7934146B2 (en) | Method, apparatus and computer program product providing for data block encoding and decoding | |
US11057049B2 (en) | Generalized low-density parity check codes in digital communication system | |
US20080270877A1 (en) | Method of Encoding and Decoding Using Low Density Parity Check Code | |
CN101252360A (zh) | 一种高围长低码率多进制ldpc码的结构化构造方法 | |
Sridharan et al. | Convergence analysis for a class of LDPC convolutional codes on the erasure channel | |
JP4832447B2 (ja) | チャネルコードを用いた復号化装置及び方法 | |
Xie et al. | Design of rate-compatible protograph-based LDPC codes with mixed circulants | |
CN106685432A (zh) | 一种基于完备循环差集的大围长Type‑II QC‑LDPC码构造方法 | |
TWI712269B (zh) | 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 | |
Andreadou et al. | Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications | |
WO2018084732A1 (en) | Ldpc codes for incremental redundancy harq (ir-harq) schemes | |
Enad et al. | Performance Evaluation and Assessment of LDPC Codec over DVB-S2 and WLAN802. 11n Applications | |
EP3771105B1 (en) | Transmitter, receiver, communication system, and coding rate revision method | |
Wang | The ldpc code and rateless code for wireless sensor network | |
US11777524B2 (en) | Method for supporting rate-compatible non-binary LDPC code, and wireless terminal using same | |
Zaheer et al. | Improved regular and semi-random rate-compatible low-density parity-check codes with short block lengths | |
Zhang et al. | Construction and Decoding of Rate‐Compatible Globally Coupled LDPC Codes | |
Konfé et al. | Enhancing 5G Forward Error Correction Codes for URLLC by Spatial Coupling | |
He et al. | Spatially Coupled Generalized LDPC Codes Over Burst Erasure Channels | |
NG et al. | Design and Performance Evaluation of Error Detection and Correction Using Concatenated BCH and LDPC Coding Scheme for Data Streams in Satellite Communication |