TWI540844B - 雙重準循環低密度同位校驗碼 - Google Patents

雙重準循環低密度同位校驗碼 Download PDF

Info

Publication number
TWI540844B
TWI540844B TW102110934A TW102110934A TWI540844B TW I540844 B TWI540844 B TW I540844B TW 102110934 A TW102110934 A TW 102110934A TW 102110934 A TW102110934 A TW 102110934A TW I540844 B TWI540844 B TW I540844B
Authority
TW
Taiwan
Prior art keywords
matrix
cyclic
parity check
quasi
sub
Prior art date
Application number
TW102110934A
Other languages
English (en)
Other versions
TW201438406A (zh
Inventor
吳仁銘
吳昇翰
Original Assignee
國立清華大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立清華大學 filed Critical 國立清華大學
Priority to TW102110934A priority Critical patent/TWI540844B/zh
Priority to US13/934,213 priority patent/US9312884B2/en
Publication of TW201438406A publication Critical patent/TW201438406A/zh
Application granted granted Critical
Publication of TWI540844B publication Critical patent/TWI540844B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

雙重準循環低密度同位校驗碼
本案是有關於一種通訊編碼及電子元件,特別是有關於一種準循環低密度同位校驗碼及其相應處理器。
隨著編碼技術的發展,錯誤更正碼(error correcting code)已廣泛地使用在各式不同的資料傳輸領域,如DVB數位廣播系統、數位電視、數位機上盒、平板電腦、智慧型手機、NAND型快閃記憶體等。
一般而言,在通道處於低訊雜比(signal-to-noise,SNR)時,錯誤更正碼中的低密度同位校驗碼(low density parity check code,LDPC code)具有優於BCH碼(Bose-Chaudhuri-Hocquenghem code)、R-S碼(Reed-Solomon Code)、捲積碼(convolutional code)的編碼增益(coding gain)。低密度同位校驗碼的同位校驗矩陣(parity-check matrix)中0和1的排列方式會顯著影響錯誤更正能力的優劣。然而在實現上,目前同位校驗矩陣的設計多數採用隨機性的0和1組合,使得編/解碼器的複雜度增加。
有鑑於此,一種具備較高規則性的準循環低密度同位校驗碼的同位校驗矩陣當被提出。
本發明之一樣態為一雙重準循環低密度同位校驗碼 (double quasi-cyclic low density parity check code,DQC-LDPC)與其相應之處理器。根據本發明一實施例,循環低密度同位校驗處理器包括一輸入端用以接收一輸入訊號;一輸出端用以發出一輸出訊號;以及,一處理模組用以相應於循環低密度同位校驗碼的一同位校驗矩陣(parity-check matrix)處理該輸入訊號,並產生該輸出訊號。該同位校驗矩陣包括一雙重準循環矩陣,該雙重準循環矩陣包括複數個子矩陣,該些子矩陣以陣列方式排列,每一該些子矩陣包括複數個元素(entry),且每一該些子矩陣為以相應的該些元素為循環子(circulant)之循環矩陣(circulant matrix)。該雙重準循環矩陣係為以該些子矩陣為循環子的循環矩陣(circulant matrix of circulants)。
根據本發明一實施例,其中在該雙重準循環矩陣中,一列子矩陣係為相鄰於該列子矩陣之次一列子矩陣以該些子矩陣為循環子之左向循環位移(left circular shift)。
根據本發明一實施例,其中在該雙重準循環矩陣中,一列子矩陣係為相鄰於該列子矩陣之次一列子矩陣以該些子矩陣為循環子之右向循環位移(right circular shift)。
根據本發明一實施例,其中該循環低密度同位校驗矩陣具有n×q行元素以及m×q列元素可用於編碼之碼字長度n×q,校驗碼長度m×q。其包含該雙重準循環矩陣(DQC)具有m×q行元素以及m×q列元素,每一該些子矩陣具有q行元素以及q列元素,該雙重準循環矩陣表示為DQC,該雙重準循環矩陣中的該些元素符合下式: DQC[((i±x)mod m)×q+((j±y)mod q)][x×q +y]=DQC[i×q+j][0]
其中i、j、x、y為整數,且0≦i<m、0≦j<q、0≦x<m、0≦y<q。該式描寫雙重準循環矩陣裡第0行與第x×q+y行中元素的對應關係。
根據本發明一實施例,其中該雙重準循環矩陣相應於該輸出訊號或該輸入訊號的一同位位元(parity bits)。
根據本發明一實施例,其中該雙重準循環矩陣為方陣。
根據本發明一實施例,其中該雙重準循環矩陣的每一行元素之行重(column weight)彼此相等,該雙重準循環矩陣的每一列元素之列重(row weight)彼此相等,且該雙重準循環矩陣的每一行元素之行重與該雙重準循環矩陣的每一列元素之列重彼此相等。
根據本發明一實施例,其中該輸入訊號為一訊息(message),該處理模組編碼該輸入訊號並產生一低密度同位校驗碼碼字(LDPC codeword)作為該輸出訊號。
根據本發明一實施例,其中該輸入訊號為一低密度同位校驗碼碼字,該處理模組解碼該輸入訊號並產生一解碼訊息(decoded message)作為該輸出訊號。
根據本發明一實施例,該處理模組包括一循環外電路(cyclic outer circuit)以及一互斥閘陣列(xor array)。該循環外電路包括複數級循環內電路(cyclic inner circuit)以及複數級第二多工器。每一級循環內電路包括複數個移位暫存器(shift register)以及複數個第一多工器。移位暫存器用以接收一時鐘訊號(clock)並暫存一資訊。第一多工器用以接收並根據一循環致能(shift_enable)訊號準循環(quasi-cycle) 暫存於該些移位暫存器中的該資訊。第二多工器用以接收一初始訊號,並根據該初始訊號區塊準循環(block quasi-cycle)暫存於該些循環內電路的該些移位暫存器中的該資訊,並輸出暫存於該些循環內電路的該些移位暫存器中的該資訊。互斥閘陣列(xor array)包括複數個互斥閘(xor gate)其中該些互斥閘相應於該雙重準循環矩陣的反矩陣設置,該互斥閘陣列用以接收該些第二多工器輸出的該資訊,並用以根據該些第二多工器輸出的該資訊以及該雙重準循環矩陣的反矩陣,邏輯計算並輸出該低密度同位校驗碼碼字的複數個同位位元。
根據本發明一實施例,其中該同位校驗矩陣在進行等效列交換後,不實質改變該處理模組的編碼結果。
根據本發明一實施例,每一該些級第二多工器包括一第一輸入端、一第二輸入端、一控制端以及一輸出端,每一該些級第二多工器的第一輸入端電性連接該些級循環內電路中的對應一者,每一該些級第二多工器的輸出端電性連接該互斥閘陣列以及該些級循環內電路中的對應另一者,每一該些級第二多工器的控制端接收該初始訊號。
根據本發明一實施例,該些級第二多工器的該第二輸入端用以接收複數個徵狀向量(syndrome vectors)。
綜上所述,透過應用上述的實施例,一種具備較高規則性的低密度同位校驗碼的同位校驗矩陣可被實現。藉由利用上述同位校驗矩陣,可有效節省記憶體的使用量,並顯著地降低硬體的複雜度。
以下將以圖式及詳細敘述清楚說明本揭示內容之精神,任何所屬技術領域中具有通常知識者在瞭解本揭示內容之較佳實施例後,當可由本揭示內容所教示之技術,加以改變及修飾,其並不脫離本揭示內容之精神與範圍。
第1圖為根據本發明一實施例所繪示的雙重準循環低密度同位校驗(double quasi-cyclic low density parity check,DQC-LDPC)處理器100之示意圖。循環低密度同位校驗處理器100包括輸入端102、輸出端104以及處理模組110。輸入端102用以接收一輸入訊號(例如是碼字(codeword)或是訊息(message))。輸出端104用以發出一輸出訊號(例如是碼字(codeword)或是訊息(message))。處理模組110用以相應於循環低密度同位校驗碼的同位校驗矩陣(parity-check matrix)H處理(例如是編碼或是解碼)輸入訊號,並產生輸出訊號。
第2圖為根據本發明一實施例所繪示的同位校驗矩陣H之示意圖。同位校驗矩陣H包括複數個(例如是m×n個)子矩陣P0,0-Pm-1,n-1,其中每一子矩陣P0,0-Pm-1,n-1皆為方陣(square matrix)並包括複數個元素(entry)(例如是q×q個)。同位校驗矩陣H可包括一雙重準循環矩陣DQC,其係由子矩陣P0,0-Pm-1,n-1中的相應一部份子矩陣P0,x-Pm-1,x+m-1所組成。雙重準循環矩陣DQC係為以子矩陣P0,x-Pm-1,x+m-1為循環子(circulant)的循環矩陣(circulant matrix),且其中每一子矩陣P0,x-Pm-1,x+m-1皆為以其中相應的元素為循環子的循環矩陣(circulant matrix of circulants)。另一方面,當注意到,雙重準循環矩陣DQC可從同位校驗矩陣H的任一位置起始。
為便於理解,以下以第3-6圖為例說明前述之循環矩陣。
參照第3圖,在一實施例中,雙重準循環矩陣DQC例如係一向右(或向下)位移的循環矩陣。雙重準循環矩陣DQC中的每一列子矩陣(例如為第3圖的Q0-Qm-1)以子矩陣Q0、Q1、…、Qm-1為循環子一列接一列(row-by-row)向右循環位移,亦即,次一列子矩陣係前一列子矩陣的右循環位移(right circular shift)。舉例而言,第1列子矩陣[Qm-1 Q0 Q1…Qm-3 Qm-2]係第0列子矩陣[Q0 Q1 Q2…Qm-2 Qm-1]的右循環位移;第2列子矩陣[Qm-2 Qm-1 Q0…Qm-4 Qm-3]係第1列子矩陣[Qm-1 Q0 Q1…Qm-3 Qm-2]的右循環位移。以另一角度而言,雙重準循環矩陣DQC中的每一行子矩陣係以子矩陣Q0、Q1、…、Qm-1為循環子一行接一行(column-by-column)向下循環位移。
參照第4圖,在另一實施例中,雙重準循環矩陣DQC例如係一向左(或向上)位移的循環矩陣。雙重準循環矩陣DQC中的每一列子矩陣以子矩陣Q0、Q1、…、Qm-1為循環子一列接一列向左循環位移。舉例而言,以另一角度而言,雙重準循環矩陣DQC中的每一行子矩陣係以子矩陣Q0、Q1、…、Qm-1為循環子一行接一行向上循環位移。
參照第5圖,在一實施例中,於第3、4圖中的子矩陣Qp(0≦p≦m-1,p為整數)例如係一向右(或向下)位移的循環矩陣。子矩陣Qp包括複數個元素(如e0(p)-eq-1(p)),其 中元素e0(p)-eq-1(p)可分別為數值「0」或「1」。子矩陣Qp中每一列元素以元素e0(p)、e1(p)、…、eq-1(p)為循環子一列接一列向右循環位移,亦即,次一列元素係前一列元素的右循環位移。舉例而言,第1列元素[eq-1(p) e0(p) e1(p)…eq-3(p) eq-2(p)]係第0列元素[e0(p) e1(p) e2(p)…eq-2(p) eq-1(p)]的右循環位移;第2列元素[eq-2(p) eq-1(p) e0(p)…eq-4(p) eq-3(p)]係第1列元素[eq-1(p) e0(p) e1(p)…eq-3(p) eq-2(p)]的右循環位移。以另一角度而言,子矩陣Qp中的每一行元素係以元素e0(p)、e1(p)、…、eq-1(p)為循環子一行接一行向下循環位移。
參照第6圖,在另一實施例中,子矩陣Qp例如係一向左(或向上)位移的循環矩陣。子矩陣Qp中的每一列元素以元素e0(p)、e1(p)、…、eq-1(p)為循環子一列接一列向左循環位移。以另一角度而言,子矩陣Qp中的每一行元素係以元素e0(p)、e1(p)、…、eq-1(p)為循環子一列接一行向上循環位移。
當注意到,在上述的實施例中,子矩陣Q1、Q2、…、Qm可分別為任何形式的循環矩陣,例如可分別為零矩陣(其中所有元素皆為數值「0」)、單位矩陣(identity matrix)、所有元素皆為數值「1」之矩陣、或經循環位移(circular shifted)的單元矩陣等。子矩陣Q1、Q2、…、Qm可分別具有0、q、2×q、…、或q×q個數值「1」。
透過上述的設置,雙重準循環矩陣DQC的每一行元素之行重(column weight)(即每一行元素數值「1」的數量)彼此相等,雙重準循環矩陣DQC的每一列元素之列重(row weight)(即每一列元素數值「1」的數量)彼此相等,且雙重準循環矩陣DQC的每一行元素之行重與雙重準循環矩陣DQC的每一列元素之列重彼此相等。
另外,透過上述的設置,雙重準循環矩陣DQC的第1行子矩陣為第0行子矩陣以子矩陣為循環子向下(或向上)循環位移1個子矩陣;雙重準循環矩陣DQC的第2行子矩陣為第0行子矩陣以子矩陣為循環子向下(或向上)循環位移2個子矩陣;雙重準循環矩陣DQC的第m-1行子矩陣為第0行子矩陣以子矩陣為循環子向下(或向上)循環位移m-1個子矩陣。換言之,任一行子矩陣皆可由第0行子矩陣推得。同樣地,任一列子矩陣皆可由第0列子矩陣推得。另一方面,在所有子矩陣中,第1行元素為第0行以元素為循環子向下(或向上)循環位移1個元素;第2行元素為第0行以元素為循環子向下(或向上)循環位移2個元素;第q-1行元素為第0行以元素為循環子向下(或向上)循環位移q-1個元素。換言之,任一子矩陣中的任一行元素可由子矩陣第0行元素推得。同樣地,任一子矩陣中的任一列元素可由子矩陣第0列元素推得。因此,在雙重準循環矩陣DQC中任一行子矩陣可由雙重準循環矩陣DQC中的第0行子矩陣之第0行元素推得。在雙重準循環矩陣DQC中任一行子矩陣可由雙重準循環矩陣DQC中的第0行子矩陣區塊(block column)推得其對應關係。
在一實施例中,循環低密度同位校驗矩陣H具有n×q行元素以及m×q列元素,雙重準循環矩陣DQC具有m×q行元素以及m×q列元素,每一子矩陣P1,1-Pm,n具有q行 元素以及q列元素,雙重準循環矩陣DQC中的元素符合下式:DQC[((i±x)mod m)×q+((j±y)mod q)][x×q+y]=DQC[i×q+j][0]-------式1
其中i、j、x、y為整數,且0≦i<m、0≦j<q、0≦x<m、0≦y<q。該式描寫雙重準循環矩陣裡第0行與第x×q+y行中元素的對應關係。
在式1中,第一個運算元「±」相應於雙重準循環矩陣DQC係向右位移的循環矩陣(如第3圖所示),或係向左位移的循環矩陣(如第4圖所示);第一個運算元「±」相應於子矩陣Qp係向右位移的循環矩陣(如第5圖所示),或係向左位移的循環矩陣(如第6圖所示)。
舉例而言,在雙重準循環矩陣DQC係向右位移的循環矩陣且在子矩陣Qp係向右位移的循環矩陣的情況下,式1可如下表示:DQC[((i+x)mod m)×q+((j+y)mod q)][x×q+y]=DQC[i×q+j][0]
在雙重準循環矩陣DQC係向左位移的循環矩陣且在子矩陣Qp係向右位移的循環矩陣的情況下,式(1)可如下表示:DQC[((i-x)mod m)×q+((j+y)mod q)][x×q+y]=DQC[i×q+j][0]
在雙重準循環矩陣DQC係向右位移的循環矩陣且在子矩陣Qp係向左位移的循環矩陣的情況下,式(1)可如下表示: DQC[((i+x)mod m)×q+((j-y)mod q)][x×q+y]=DQC[i×q+j][0]
在雙重準循環矩陣DQC係向左位移的循環矩陣且在子矩陣Qp係向左位移的循環矩陣的情況下,式(1)可如下表示:DQC[((i-x)mod m)×q+((j-y)mod q)][x×q+y]=DQC[i×q+j][0]
為便於理解,以下以第7圖為例說明上述式1。
第7圖為根據本發明一實施例所繪示的雙重準循環矩陣DQC之示意圖。在第7圖中,黑點「●」代表數值「1」,其餘部份代表數值「0」。在本實施例中,雙重準循環矩陣DQC係向右位移的循環矩陣,且雙重準循環矩陣DQC的子矩陣Q1、Q2、…、Qm皆係向右位移的循環矩陣。雙重準循環矩陣DQC的子矩陣Q1、Q2、…、Qm可分別為q×q(例如q=7)的方陣,其中Q1例如是向右循環位移量(shift value)為4的單位矩陣,Q2例如是零矩陣,Q3例如是向右循環位移量為2的單位矩陣,Q4例如是向右循環位移量為0的單位矩陣,Qm例如是零矩陣。
舉例而言,當x為3且y為3時,x×q+y=24,第24行的元素可由第0行的元素推得。例如:DQC[((i+3)mod m)×7+((j+3)mod 7)][24]=DQC[i×7+j][0]
其中i、j為整數,且0≦i<m、0≦j<q。該式描寫雙重準循環矩陣裡第0行與第24行中元素的對應關係。
以下段落將更進一步說明循環低密度同位校驗碼處理 器100的編碼與解碼操作。
在一實施例中,循環低密度同位校驗碼處理器100可為循環低密度同位校驗碼編碼器(LDPC encoder)。輸入訊號為一訊息(message),處理模組110可利用相應於同位校驗矩陣H的生成矩陣G對訊息進行編碼,並產生低密度同位校驗碼碼字(LDPC codeword)作為輸出訊號。其中用以計算低密度同位校驗碼碼字中的同位位元(parity bits)的雙重準循環矩陣DQC之反矩陣DQC-1可預先算出。而由於雙重準循環矩陣DQC之反矩陣DQC-1亦具有與雙重準循環矩陣DQC相同的性質(亦即反矩陣DQC-1中的每一子矩陣為以其中元素為循環子之循環矩陣,且反矩陣DQC-1為以子矩陣為循環子之循環矩陣),因此,循環低密度同位校驗碼處理器100可僅儲存第0行反矩陣DQC-1,並例如可由單純的移位暫存器(shift register)與互斥閘(xor gate)所實現,從而有效地節省記憶體使用量並降低硬體的複雜度。另一方面,以反矩陣DQC-1計算同位位元僅需線性時間。
同時參照第8、9圖。第8圖為根據本發明一實施例所繪示的處理模組110的示意圖。第9圖為根據本發明一實施例所繪示的循環內電路1121的示意圖。在本實施例中,處理模組110(例如用以執行編碼功能)包括一循環外電路(cyclic outer circuit)112以及一互斥閘陣列(xor array)114。循環外電路112包括複數級第二多工器M1-Mm以及複數級循環內電路(cyclic inner circuit)1121-112m。循環內電路1121-112m分別包括複數個移位暫存器R11-Rmq以及複數個第一多工器M11-Mmq,例如,循環內電路1121包括移 位暫存器R11-R1q以及第一多工器M11-M1q,循環內電路112m包括移位暫存器Rm1-Rmq以及第一多工器Mm1-Mmq。
在本實施例中,移位暫存器R11-Rmq用以接收一時鐘訊號(clock)clk並暫存相應於輸入訊號的資訊(例如是徵狀向量(syndrome vector))。第一多工器M11-Mmq用以接收並根據循環致能(shift_enable)訊號S_E準循環(quasi-cycle)(亦即向左或向右循環位移)暫存於移位暫存器R11-Rmq中的資訊。
第二多工器M1-Mm用以接收初始訊號ini,並根據初始訊號ini區塊準循環(block quasi-cycle)暫存於循環內電路1121-112m的移位暫存器R11-Rmq中的資訊(亦即,以暫存於各別循環內電路1121-112m的資訊為循環子進行向左或向右循環位移),並輸出暫存於循環內電路1121-112m的移位暫存器R11-Rmq中的資訊。
互斥閘陣列114,包括複數個互斥閘(xor gate),其中互斥閘相應於雙重準循環矩陣DQC的反矩陣DQC-1的第0行設置。互斥閘陣列114用以接收第二多工器M1-Mm輸出的資訊,並用以根據第二多工器M1-Mm輸出的資訊以及雙重準循環矩陣DQC的反矩陣DQC-1,邏輯計算並輸出低密度同位校驗碼碼字(亦即輸出訊號)的複數個同位位元par。換言之,在每一時鐘訊號clk週期中,循環外電路112可分別透過第一多工器M11-Mmq與第二多工器M1-Mm對暫存器R11-Rmq中的資訊進行準循環與區塊準循環,並循序輸出暫存器R11-Rmq中的資訊至互斥閘陣列114進行邏輯 計算,以產生低密度同位校驗碼碼字的同位位元par。
另一方面,在本實施例中,每一級第二多工器M1-Mm可包括一第一輸入端、一第二輸入端、一控制端以及一輸出端。每一級第二多工器M1-Mm的第一輸入端可電性連接循環內電路1121-112m中的對應一者的輸出端,例如是同一級的循環內電路1121-112m的輸出端。每一級第二多工器M1-Mm的輸出端可電性連接互斥閘陣列114以及循環內電路1121-112m中的對應另一者的輸入端,例如是次一級的循環內電路1121-112m的輸入端。每一級第二多工器M1-Mm的控制端可接收初始訊號ini。舉例而言,第二多工器M1的第一輸入端可電性連接循環內電路1121的輸出端,第二多工器M1的輸出端可電性連接循環內電路1122的輸入端。
再者,在本實施例中每一級第二多工器M1-Mm的第一輸入端可接收徵狀向量synd。如此一來,可透過初始訊號ini控制循環外電路112的初始徵狀向量。
當注意到,循環外電路112及互斥閘陣列114的數量並不限於一個,亦即,在每一時鐘訊號clk的週期中,可循環一或多個資訊並產生一或多個同位位元。
另一方面,在其它實施例中,第一多工器、第二多工器兩類硬體個數可依設計需求進行合併、增加或是減少,而不以上述實施例為限。
此外,熟習本領域者當可了解,上述循環外電路112及循環內電路1121-112m可透過進一步設計,而在每一時鐘訊號clk的週期進行多次(或多位元)循環位移,以產生多 個同位位元。
當注意到,透過第8圖所示的處理模組110,同位校驗矩陣H可進行等效列交換(如第0列與第3列交換),而不實質影響處理模組110進行編碼後的結果。
在另一實施例中,循環低密度同位校驗碼處理器100可為循環低密度同位校驗碼解碼器(LDPC decoder)。輸入訊號為為一低密度同位校驗碼碼字(LDPC codeword),處理模組110可利用具有雙重準循環矩陣DQC的同位校驗矩陣H解碼輸入訊號(例如將同位校驗矩陣H與輸入訊號相乘),並產生解碼訊息(decoded message)作為輸出訊號。其中雙重準循環矩陣DQC可用以解碼低密度同位校驗碼碼字的同位位元。類似地,循環低密度同位校驗碼處理器100僅需儲存第0行雙重準循環矩陣DQC,因此可有效地節省記憶體使用量。
於數學上,在本發明一實施例中,同位校驗矩陣H係由循環子(circulant)排列形狀,可實施等效行排列並將同位校驗矩陣H分成兩個部分,其中一部分為規則性雙重準循環矩陣DQC,另一部分則否。以數學符號表達其同位校驗矩陣H=[Hi Hp],其中Hi是長方形矩陣(即非具雙重準循環特性之矩陣),Hp是方陣(例如是雙重準循環矩陣DQC矩陣)。根據雙重準循環矩陣特性,Hp反矩陣(反矩陣Hp -1)亦符合雙重準循環特性。
當一個合法的低密度同位校驗碼碼字(codeword)根據同位校驗矩陣H的分類,同步分成兩部分c=[I P],其中c為合法碼字,I是相應於訊息的資訊碼,P是校驗碼(即同 位位元)。根據碼字定義,同位校驗矩陣H乘同位校驗碼字是徵狀值synd,為全零向量(Hc=0)。代入上式,即Hi I+H-p P=0。欲求校驗碼P=Hp -1 HiI,其中HiI為部份徵狀值synd,而Hp -1為雙重準循環矩陣。
在一實施例中,在每一級第二多工器M1-Mm的第一輸入端輸入徵狀值synd,即為HiI。如此一來,在計算Hp -1矩陣乘法時,即可利用循環內電路1121-112m、循環外電路112與互斥閘陣列114進行計算,達到降低複雜度的功效。
第10圖為根據本發明一實施例的所繪示的同位校驗矩陣H_ex1、H_ex2與H_ex3之示意圖。在第8圖中,同位校驗矩陣H_ex1、H_ex2與H_ex3中的每一方格代表一個子矩陣,方格中的數字代表子矩陣的循環位移量。例如,在本實施例中,單位矩陣以數字為0的方格表示,向右或向左循環位移量為1的單位矩陣以數字為1的方格表示。另外,在本實施例中,0矩陣以標示為符號「*」的方格表示。同位校驗矩陣H_ex1、H_ex2與H_ex3各自具有位於不同的位置的雙重準循環矩陣DQC_ex1、DQC_ex2與DQC_ex3,其中雙重準循環矩陣DQC_ex1、DQC_ex2與DQC_ex3所在的位置相應於低密度同位校驗碼碼字中同位位元的所在位置。當注意到,雖然上述H_ex1、H_ex2與H_ex3中,非雙重準循環特性之部份之子矩陣仍以循環矩陣排列,然實施上非雙重準循環特性之部份之子矩陣可以任意形式排列,不以上述實施例為限。
第11圖為第10圖中的同位校驗矩陣H_ex1、H_ex2 與H_ex3的錯誤更正能力(correctability)示意圖。如圖所示,透過分別具有雙重準循環矩陣DQC_ex1、DQC_ex2與DQC_ex3的同位校驗矩陣H_ex1、H_ex2與H_ex3進行編/解碼,其訊框錯誤率(block error rate)與位元錯誤率(bit error rate)皆相當接近,顯示應用同位校驗矩陣H_ex1、H_ex2與H_ex3進行編/解碼的循環低密度同位校驗碼處理器100的良好更正能力。
雖然本案已以實施例揭露如上,然其並非用以限定本案,任何熟習此技藝者,在不脫離本案之精神和範圍內,當可作各種之更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧處理器
102‧‧‧輸入端
104‧‧‧輸出端
110‧‧‧處理模組
112‧‧‧循環外電路
1121-112m‧‧‧循環內電路
114‧‧‧互斥閘陣列
H、H_ex1、H_ex2、H_ex3‧‧‧同位校驗矩陣
G‧‧‧生成矩陣
DQC-1‧‧‧反矩陣
clk‧‧‧時鐘訊號
DQC、DQC_ex1、DQC_ex2、DQC_ex3‧‧‧雙重準循環矩陣
P0,0-Pm-1,n-1‧‧‧子矩陣
Q0-Qm-1、Qp‧‧‧子矩陣
e0(p)-eq-1(p)‧‧‧元素
M1-Mm‧‧‧第二多工器
M11-Mmq‧‧‧第一多工器
par‧‧‧同位位元
synd‧‧‧徵狀向量
ini‧‧‧初始訊號
S_E‧‧‧循環致能訊號
R11-Rmq‧‧‧暫存器
第1圖為根據本發明一實施例所繪示的雙重準循環低密度同位校驗處理器的示意圖;第2圖為根據本發明一實施例所繪示的同位校驗矩陣之示意圖;第3圖為根據本發明一實施例所繪示的雙重準循環矩陣的示意圖;第4圖為根據本發明另一實施例所繪示的雙重準循環矩陣的示意圖;第5圖為根據本發明一實施例所繪示的雙重準循環矩陣之子矩陣的示意圖;第6圖為根據本發明另一實施例所繪示的雙重準循環矩陣之子矩陣的示意圖; 第7圖為根據本發明再一實施例所繪示的雙重準循環矩陣之示意圖;第8圖為根據本發明一實施例所繪示之處理模組示意圖;第9圖為根據本發明一實施例所繪示的循環內電路的示意圖;第10圖為根據本發明一實施例的所繪示的同位校驗矩陣之示意圖;以及第11圖為第10圖中的同位校驗矩陣的錯誤更正能力(correctability)示意圖。
100‧‧‧處理器
102‧‧‧輸入端
104‧‧‧輸出端
110‧‧‧處理模組

Claims (12)

  1. 一種雙重準循環低密度同位校驗碼(double quasi-cyclic low density parity check code,DQC-LDPC code)之相應處理器,包括:一輸入端,用以接收一輸入訊號;一輸出端,用以發出一輸出訊號;以及一處理模組,用以相應於循環低密度同位校驗碼的一同位校驗矩陣(parity-check matrix)處理該輸入訊號,並產生該輸出訊號;其中該同位校驗矩陣包括一雙重準循環矩陣,該雙重準循環矩陣包括複數個子矩陣,該些子矩陣以陣列方式排列,每一該些子矩陣包括複數個元素(entry),且每一該些子矩陣為以相應的該些元素為循環子(circulant)之循環矩陣(circulant matrix),其中該雙重準循環矩陣係為以該些子矩陣為循環子的循環矩陣(circulant matrix of circulants);其中該循環低密度同位校驗矩陣具有n×q行元素以及m×q列元素,該雙重準循環矩陣具有m行子矩陣以及m列子矩陣,每一該些子矩陣具有q行元素以及q列元素,即該雙重準循環矩陣具有m×q行元素以及m×q列元素,該雙重準循環矩陣表示為DQC,該雙重準循環矩陣中的該些元素符合下式:DQC[((i±x)mod m)×q+((j±y)mod q)][x×q+y]=DQC[i×q+j][0]其中i、j、x、y為整數,且0≦i<m、0≦j<q、0≦x<m、 0≦y<q。
  2. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中在該雙重準循環矩陣中,一列子矩陣係為相鄰於該列子矩陣之次一列子矩陣以該些子矩陣為循環子之左向循環位移(left circular shift)。
  3. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中在該雙重準循環矩陣中,一列子矩陣係為相鄰於該列子矩陣之次一列子矩陣以該些子矩陣為循環子之右向循環位移(right circular shift)。
  4. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中該雙重準循環矩陣相應於該輸出訊號或該輸入訊號的複數個同位位元(parity bits)。
  5. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中該雙重準循環矩陣為方陣。
  6. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中該雙重準循環矩陣的每一行元素之行重(column weight)彼此相等,該雙重準循環矩陣的每一列元素之列重(row weight)彼此相等,且該雙重準循環矩陣的每一行元素之行重與該雙重準循環矩陣的每一列元素之列重彼此相等。
  7. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中該輸入訊號為一訊息(message),該處理模組編碼該輸入訊號並產生一低密度同位校驗碼碼字(LDPC codeword)作為該輸出訊號。
  8. 如請求項7所述的雙重準循環低密度同位校驗碼之相應處理器,其中該處理模組包括:一循環外電路(cyclic outer circuit)包括:複數級循環內電路(cyclic inner circuit),其中每一級循環內電路包括:複數個移位暫存器(shift register),用以接收一時鐘訊號(clock)並暫存一資訊;以及複數個第一多工器,用以接收並根據一循環致能(shift_enable)訊號準循環(quasi-cycle)暫存於該些移位暫存器中的該資訊;以及複數級第二多工器,用以接收一初始訊號,並根據該初始訊號區塊準循環(block quasi-cycle)暫存於該些循環內電路的該些移位暫存器中的該資訊,並輸出暫存於該些循環內電路的該些移位暫存器中的該資訊;以及一互斥閘陣列(xor array),包括複數個互斥閘(xor gate)其中該些互斥閘相應於該雙重準循環矩陣的反矩陣設置,該互斥閘陣列用以接收該些第二多工器輸出的該資訊,並用以根據該些第二多工器輸出的該資訊以及該雙重準循環矩陣的反矩陣,邏輯計算並輸出該低密度同位校驗碼碼字 的複數個同位位元。
  9. 如請求項8所述的雙重準循環低密度同位校驗碼之相應處理器,其中該同位校驗矩陣在進行等效列交換後,不實質改變該處理模組之編碼結果。
  10. 如請求項8所述的雙重準循環低密度同位校驗碼之相應處理器,其中每一該些級第二多工器包括一第一輸入端、一第二輸入端、一控制端以及一輸出端,每一該些級第二多工器的第一輸入端電性連接該些級循環內電路中的對應一者,每一該些級第二多工器的輸出端電性連接該互斥閘陣列以及該些級循環內電路中的對應另一者,每一該些級第二多工器的控制端接收該初始訊號。
  11. 如請求項8所述的雙重準循環低密度同位校驗碼之相應處理器,其中該些級第二多工器的該第二輸入端用以接收複數個徵狀向量(syndrome vectors)。
  12. 如請求項1所述的雙重準循環低密度同位校驗碼之相應處理器,其中該輸入訊號為一低密度同位校驗碼碼字,該處理模組解碼該輸入訊號並產生一解碼訊息(decoded message)作為該輸出訊號。
TW102110934A 2013-03-27 2013-03-27 雙重準循環低密度同位校驗碼 TWI540844B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102110934A TWI540844B (zh) 2013-03-27 2013-03-27 雙重準循環低密度同位校驗碼
US13/934,213 US9312884B2 (en) 2013-03-27 2013-07-02 Double QC-LDPC code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102110934A TWI540844B (zh) 2013-03-27 2013-03-27 雙重準循環低密度同位校驗碼

Publications (2)

Publication Number Publication Date
TW201438406A TW201438406A (zh) 2014-10-01
TWI540844B true TWI540844B (zh) 2016-07-01

Family

ID=51622084

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102110934A TWI540844B (zh) 2013-03-27 2013-03-27 雙重準循環低密度同位校驗碼

Country Status (2)

Country Link
US (1) US9312884B2 (zh)
TW (1) TWI540844B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9369151B2 (en) * 2014-09-25 2016-06-14 Ali Misfer ALKATHAMI Apparatus and method for resource allocation
US9692450B2 (en) * 2015-05-11 2017-06-27 Maxio Technology (Hangzhou) Ltd. Systems and methods for early exit of layered LDPC decoder
CN108712174B9 (zh) * 2017-06-27 2019-08-30 华为技术有限公司 信息处理的方法、装置和通信设备
CN109150196A (zh) 2017-06-27 2019-01-04 华为技术有限公司 信息处理的方法、装置和通信设备
CN109600141B (zh) * 2019-01-10 2023-06-27 珠海妙存科技有限公司 一种多通道共享ldpc编码器的方法
US10838811B1 (en) * 2019-08-14 2020-11-17 Silicon Motion, Inc. Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052594A1 (en) * 2006-07-28 2008-02-28 Yedidia Jonathan S Method and system for replica group-shuffled iterative decoding of quasi-cyclic low-density parity check codes
WO2009143375A2 (en) * 2008-05-21 2009-11-26 The Regents Of The University Of Calfornia Lower-complexity layered belief propagation deconding ldpc codes
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法

Also Published As

Publication number Publication date
TW201438406A (zh) 2014-10-01
US20140298132A1 (en) 2014-10-02
US9312884B2 (en) 2016-04-12

Similar Documents

Publication Publication Date Title
TWI540844B (zh) 雙重準循環低密度同位校驗碼
EP2957038B1 (en) Design for lifted ldpc codes having high parallelism, low error floor, and simple encoding principle
US7543212B2 (en) Low-density parity-check (LDPC) encoder
US8095859B1 (en) Encoder for low-density parity check codes
US7657816B2 (en) Low-complexity hybrid LDPC code encoder
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
US9104589B1 (en) Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions
WO2013189274A1 (zh) 一种用于并行bch编码的电路、编码器及方法
KR102519667B1 (ko) 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
US10367529B2 (en) List decode circuits
US6263471B1 (en) Method and apparatus for decoding an error correction code
Yathiraj et al. Implementation of BCH code (n, k) encoder and decoder for multiple error correction control
Li et al. Modified GII-BCH codes for low-complexity and low-latency encoders
Mohammed et al. Design and implementation of 2 bits BCH error correcting codes using FPGA
Van Nghia Development of the parallel BCH and LDPC encoders architecture for the second generation digital video broadcasting standards with adjustable encoding parameters on FPGA
Rohith et al. FPGA Implementation of (15, 7) BCH encoder and decoder for text message
Lu et al. An efficient majority-logic based message-passing algorithm for non-binary LDPC decoding
Mondal et al. Efficient hardware design architectures for BCH product codes in the frequency domain
CN111628783A (zh) 一种eg-ldpc译码器
Mohammed et al. FPGA implementation of 3 bits BCH error correcting codes
EP3771105B1 (en) Transmitter, receiver, communication system, and coding rate revision method
JP6532636B2 (ja) 中継装置
Brauchle et al. A systematic Reed-Solomon encoder with arbitrary parity positions
Fujiwara et al. Parallel decoding for burst error control codes