TWI400890B - 解碼ldpc編碼信號的解碼器及方法 - Google Patents

解碼ldpc編碼信號的解碼器及方法 Download PDF

Info

Publication number
TWI400890B
TWI400890B TW097116785A TW97116785A TWI400890B TW I400890 B TWI400890 B TW I400890B TW 097116785 A TW097116785 A TW 097116785A TW 97116785 A TW97116785 A TW 97116785A TW I400890 B TWI400890 B TW I400890B
Authority
TW
Taiwan
Prior art keywords
bit
message
check
edge message
modified
Prior art date
Application number
TW097116785A
Other languages
English (en)
Other versions
TW200913509A (en
Inventor
J Blanksby Andrew
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW200913509A publication Critical patent/TW200913509A/zh
Application granted granted Critical
Publication of TWI400890B publication Critical patent/TWI400890B/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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6588Compression or short representation of variables
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6591Truncation, saturation and clamping
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

Landscapes

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

Description

解碼LDPC編碼信號的解碼器及方法
本發明涉及通信系統,更具體地說,涉及通信系統內低密度奇偶校驗(Low Density Parity Check,簡稱LDPC)編碼信號的解碼。
資料通信系統已經持續發展了多年,近年來,採用疊代改錯碼的通信系統是研究者們關注的焦點。其中最受關注的是採用LDPC碼的通信系統。在同一信噪比情況下,使用疊代碼的通信系統的誤碼率通常低於使用其他編碼的通信系統。
該領域的一個持續和主要的發展方向是降低通信系統中的信噪比以達到特定的誤碼率。理想的目標是嘗試研究通信通道中的山農限度(Shannon's limit),山農限度可以看作是用在具有特定信噪比的通道中使用的資料傳輸率,通過該通道可實現無誤碼傳輸。換句話說,山農限度是在給定調製和編碼率情況下通道容量的理論限度。
LDPC碼已被證實在某些情況下可以提供接近山農限度的非常好的解碼性能。理論上,某些LDPC解碼器被證實可以達到離山農限度0.3分貝的性能。長度為一百萬的不規則LDPC碼曾達到該性能,它證實了在通信系統中應用LDPC碼是非常有希望的。
LDPC編碼信號的使用繼續被應用於許多新的領域。可採用LDPC編碼信號的幾種可能的通信系統的例子包括用於高速乙太網應用的採用4對雙絞線電纜的通信系統(例如依據IEEE 802.3an的10Gbps(吉位元/秒)乙太網操作(10GBASE-T))以及無線環境內 運行的通信系統(例如在包括IEEE 802.11n新興標準的IEEE 802.11環境空間內)。
對於這些特殊的通信系統應用領域,非常期望有能夠實現接近容量的改錯碼。因使用傳統的鏈結碼而引入的潛在限制(latency constraints),妨礙了他們在高資料率通信系統應用領域內的使用。
一般來講,在採用LDPC碼的通信系統環境內,在通信通道的一端有一個具有編碼器能力的第一通信設備,在通信通道的另一端有一個具有解碼器能力的第二通信設備。多數情況下,這兩個通信設備其一或兩者都具有編碼器和解碼器能力(例如在雙向通信系統內)。LDPC碼還可以應用于各種其他應用中,包括那些採用某種形式的資料存儲(例如,硬碟驅動器HDD應用和其他存儲設備)的應用,其中資料在寫入存儲媒介之前被編碼,然後資料在從該資料媒介中讀出/取出後被解碼。
在許多這樣的現有通信設備中,設計解碼LDPC編碼信號的有效設備和/或通信設備的一個最大的困難在於存儲和管理在疊代解碼過程中(例如,在校驗引擎和位元引擎之間來回存儲和傳遞校驗邊消息和位元邊消息時)被更新和使用的所有位元邊消息(bit edge message)和校驗邊消息(check edge message)所需的大面積和記憶體。在LDPC碼環境中處理相對較大的塊尺寸時,處理這些校驗邊消息和位元邊消息所需的記憶體要求和記憶體管理將是非常難於處理的。因而本技術領域需要並將繼續需要有一種更好的手段來解碼LDPC編碼信號以提取出編碼在其內的資訊。
根據本發明的一個方面,本發明提供一種解碼LDPC編碼信號的解碼器,所述解碼器包括:校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其: 縮放(scale)所述第二校驗邊消息從而生成縮放後的第二校驗邊消息;採用所述縮放後的第二校驗邊消息更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
優選地,所述校驗引擎還縮放第四位元邊消息從而生成縮放後的第四位元邊消息;以及採用所述縮放後的第四位元邊消息更新第三校驗邊消息,從而生成第四校驗邊消息。
優選地,在第一次解碼疊代過程中,所述位元引擎依據第一縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息;且在第二次解碼疊代過程中,所述位元引擎依據第二縮放參數縮放第三校驗邊消息從而生成縮放後的第三校驗邊消息。
優選地,在第一時鐘周期中,所述位元引擎依據第一縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息;且在第二時鐘周期中,所述位元引擎依據第二縮放參數縮放第三校驗邊消息從而生成縮放後的第三校驗邊消息。
優選地,在解碼疊代的第一子疊代過程中,所述校驗引擎依據第一縮放參數縮放所述第一位元邊消息;且在解碼疊代的第二子疊代過程中,所述位元引擎依據第二縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息。
優選地,在第一次解碼疊代過程中,所述校驗引擎依據第一縮放參數縮放所述第一位元邊消息;且在第二次解碼疊代過程中,所述校驗引擎依據第二縮放參數縮放所述第三位元邊消息。
優選地,所述校驗引擎還給所述第一位元邊消息減去或加上一個值從而生成修改後的第一位元邊消息;以及採用所述修改後的第一位元邊消息更新所述第一校驗邊消息,從而生成所述第二校驗邊消息。
優選地,所述位元引擎還給所述縮放後的第二校驗邊消息減去或加上一個值從而生成修改且縮放後的第二校驗邊消息;以及採用所述修改且縮放後的第二校驗邊消息更新所述第二位元邊消息,從而生成第三位元邊消息。
優選地,所述校驗引擎還給所述第一位元邊消息進行移位元或捨入從而生成修改後的第一位元邊消息;以及採用所述修改後的第一位元邊消息更新所述第一校驗邊消息,從而生成所述第二校驗邊消息。
優選地,所述位元引擎還給所述縮放後的第二校驗邊消息進行移位元或捨入從而生成修改且縮放後的第二校驗邊消息;以及採用所述修改且縮放後的第二校驗邊消息更新所述第二位元邊消息,從而生成第三位元邊消息。
優選地,所述位元引擎還給所述第二校驗邊消息減去或加上一個值從而生成修改後的第二校驗邊消息;縮放所述修改後的第二校驗邊消息從而生成所述縮放後的第二校驗邊消息;以及採用所述縮放後的第二校驗邊消息更新所述第二位元邊消息,從而生成所述第三位元邊消息。
優選地,所述位元引擎還接收與編碼在所述LDPC編碼信號內的資訊位元相對應的對數似然比(LLR);通過給所述LLR增加一個值、減去一個值以及縮放所述LLR中的至少一個操作修改所述LLR,從而生成修改後的LLR;以及採用所述修改後的LLR更新所述第二位元邊消息,從而生成所述第三位元邊消息。
優選地,所述位元引擎還通過給所述第三位元邊消息增加一個值或減去一個值、縮放所述第三位元邊消息、對所述第三位元 邊消息進行移位元以及捨入中的至少一個操作修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;以及將所述修改後的第三位元邊消息傳送給所述校驗引擎。
優選地,所述位元引擎還壓縮所述第三位元邊消息從而生成壓縮後的第三位元邊消息;將所述修改後的第三位元邊消息傳送給所述校驗引擎;且所述校驗引擎解壓縮所述壓縮後的第三位元邊消息,從而恢復出所述第三位元邊消息以用於更新至少一個其他的校驗邊消息。
優選地,所述校驗引擎還接收壓縮後的位元邊消息;並解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述校驗引擎還接收壓縮後的位元邊消息;解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息;壓縮所述第二校驗邊消息從而生成壓縮後的第二校驗邊消息;傳送所述壓縮後的第二校驗邊消息給位元引擎;且所述位元引擎接收所述壓縮後的第二校驗邊消息;並解壓縮所述壓縮後的第二校驗邊消息從而恢復出所述第二校驗邊消息。
優選地,所述校驗引擎使用2的冪函數(a powers of two function)壓縮所述第二校驗邊消息從而生成壓縮後的第二校驗邊消息;傳送所述壓縮後的第二校驗邊消息給位元引擎;且所述位元引擎接收所述壓縮後的第二校驗邊消息;並解壓縮所述壓縮後的第二校驗邊消息從而恢復出所述第二校驗邊消息。
優選地,所述校驗引擎接收壓縮後的位元邊消息;並使用2的冪函數解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述解碼器實現在用於從通信通道接收所述LDPC 編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個系統內。
根據本發明的一個方面,本發明還提供一種解碼LDPC編碼信號的解碼器,所述解碼器包括:校驗引擎,其:採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;通過執行給所述第二校驗邊消息增加一個值或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息;以及位元引擎,其:接收所述修改後的第二校驗邊消息;若修改後的第二校驗邊消息已由校驗引擎進行了壓縮,解壓縮所述修改後的第二校驗邊消息從而生成解壓縮且修改後的第二校驗邊消息;採用所述修改後的第二校驗邊消息或所述解壓縮且修改後的第二校驗邊消息來更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
優選地,所述位元引擎:接收所述修改後的第二校驗邊消息; 通過執行給所述修改後的第二校驗邊消息增加至少一個額外的值或減去至少一個額外的值、縮放所述修改後的第二校驗邊消息、解壓縮所述修改後的第二校驗邊消息中的至少一個操作,修改所述修改後的第二校驗邊消息從而生成二次修改後的第二校驗邊消息;採用所述二次修改後的第二校驗邊消息來更新第二位元邊消息,從而生成第三位元邊消息。
優選地,所述值是第一值;所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述值是第一值;在第一次解碼疊代過程中,所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;在第二次解碼疊代過程中,所述校驗引擎:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;採用所述修改後的第三位元邊消息更新至少一個額外的(additional)校驗邊消息。
優選地,所述位元引擎:接收與編碼在所述LDPC編碼信號內的資訊位元相對應的 對數似然比(LLR);通過給所述LLR增加一個值、減去一個值以及縮放所述LLR中的至少一個操作修改所述LLR,從而生成修改後的LLR;採用所述修改後的LLR更新所述第二位元邊消息,從而生成所述第三位元邊消息。
優選地,所述值是第一值;所述位元引擎:通過給所述第三位元邊消息增加或減去第二值、縮放所述第三位元邊消息和壓縮所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;傳送所述修改後的第三位元邊消息給校驗引擎。優選地,壓縮所述第二校驗邊消息通過使用2的冪函數來執行。
優選地,所述解碼器實現在用於從通信通道接收所述LDPC編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個系統內。
根據本發明的一個方面,本發明還提供一種解碼LDPC編碼信號的解碼器,所述解碼器包括:校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:通過執行給所述第二校驗邊消息增加一個值或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和解壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息;採用所述修改後的第二校驗邊消息來更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於 編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
優選地,所述值是第一值;所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述值是第一值;在第一次解碼疊代過程中,所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;在第二次解碼疊代過程中,所述校驗引擎:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息。
優選地,所述值是第一值;在第一時鐘周期中,所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息; 採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;在第二時鐘周期中,所述校驗引擎:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息。
優選地,所述值是第一值;在第一子疊代過程中,所述校驗引擎:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;在第二子疊代過程中,所述校驗引擎:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息。
優選地,所述位元引擎:接收與編碼在所述LDPC編碼信號內的資訊位元相對應的對數似然比(LLR);通過給所述LLR增加一個值、減去一個值以及縮放所述LLR中的至少一個操作修改所述LLR,從而生成修改後的LLR;採用所述修改後的LLR更新所述第二位元邊消息,從而生成所述第三位元邊消息。
優選地,所述位元引擎:通過給所述第三位元邊消息增加或減去至少一個額外的值、縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;傳送所述修改後的第三位元邊消息給校驗引擎。
優選地,所述位元引擎壓縮所述第三位元邊消息從而生成壓縮後的第三位元邊消息;將所述修改後的第三位元邊消息傳送給所述校驗引擎;且所述校驗引擎解壓縮所述壓縮後的第三位元邊消息,從而恢復出所述第三位元邊消息以用於更新至少一個額外的(additional)校驗邊消息。
優選地,所述校驗引擎接收壓縮後的位元邊消息;並解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述校驗引擎接收壓縮後的位元邊消息;並使用2的冪函數解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述校驗引擎接收壓縮後的位元邊消息;解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息;壓縮所述第二校驗邊消息從而生成壓縮後的第二校驗邊消息;傳送所述壓縮後的第二校驗邊消息給位元引擎;且所述位元引擎接收所述壓縮後的第二校驗邊消息;並解壓縮所述壓縮後的第二校驗邊消息從而恢復出所述第二校驗邊消息。
優選地,所述校驗引擎使用2的冪函數壓縮所述第二校驗邊消息從而生成壓縮後的第二校驗邊消息;傳送所述壓縮後的第二校驗邊消息給位元引擎。
優選地,所述解碼器實現在用於從通信通道接收所述LDPC 編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個系統內。
根據本發明的一個方面,本發明還提供一種解碼LDPC編碼信號的方法,所述方法包括:通過採用第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理;通過執行給所述第二校驗邊消息增加或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和解壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息;採用所述修改後的第二校驗邊消息來更新第二位元邊消息從而生成第三位元邊消息來執行位元節點處理;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;使用所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
優選地,所述值是第一值;所述方法進一步包括:通過給所述第一位元邊消息增加或減去第二值和縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;通過採用所述修改後的第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理。
優選地,所述值是第一值;所述方法進一步包括:在第一次解碼疊代過程中:通過給所述第一位元邊消息增加或減去第二值和依據第 一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;通過採用所述修改後的第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理;在第二次解碼疊代過程中:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;通過採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息來執行校驗節點處理。
優選地,所述值是第一值;所述方法進一步包括:在第一時鐘周期中:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;通過採用所述修改後的第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理;在第二時鐘周期中:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;通過採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息來執行校驗節點處理。
優選地,所述值是第一值;所述方法進一步包括:在第一子疊代過程中:通過給所述第一位元邊消息增加或減去第二值和依據第一縮放參數縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息; 通過採用所述修改後的第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理;在第二子疊代過程中:通過給所述第三位元邊消息增加或減去第三值和依據第二縮放參數縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息;通過採用所述修改後的第三位元邊消息更新至少一個額外的校驗邊消息來執行校驗節點處理。
優選地,所述方法進一步包括:接收與編碼在所述LDPC編碼信號內的資訊位元相對應的對數似然比(LLR);通過給所述LLR增加一個值、減去一個值以及縮放所述LLR中的至少一個操作修改所述LLR,從而生成修改後的LLR;通過採用所述修改後的LLR更新所述第二位元邊消息從而生成所述第三位元邊消息來執行位元節點處理。
優選地,所述方法進一步包括:通過給所述第三位元邊消息增加或減去至少一個額外的值、縮放所述第三位元邊消息中的至少一個操作來修改所述第三位元邊消息,從而生成修改後的第三位元邊消息。
優選地,所述方法進一步包括:壓縮所述第三位元邊消息從而生成壓縮後的第三位元邊消息;傳送所述壓縮後的第三位元邊消息以用於校驗節點處理;解壓縮所述壓縮後的第三位元邊消息,從而恢復出所述第三位元邊消息以用於更新至少一個額外的校驗邊消息。
優選地,所述方法進一步包括:接收壓縮後的位元邊消息; 解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息。
優選地,所述方法進一步包括:接收壓縮後的位元邊消息;解壓縮所述壓縮後的位元邊消息,從而恢復出第一位元邊消息以用於更新第一校驗邊消息,從而生成第二校驗邊消息;壓縮所述第二校驗邊消息從而生成壓縮後的第二校驗邊消息;傳送所述壓縮後的第二校驗邊消息以用於位元節點處理;接收所述壓縮後的第二校驗邊消息;解壓縮所述壓縮後的第二校驗邊消息從而恢復出所述第二校驗邊消息。
優選地,所述方法在解碼器內實現;所述解碼器實現在用於從通信通道接收所述LDPC編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個系統內。
本發明的各種優點、各個方面和創新特徵,以及其中所示例的實施例的細節,將在以下的描述和附圖中進行詳細介紹。
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發送器
114‧‧‧編碼器
116‧‧‧接收器
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收器
124‧‧‧解碼器
126‧‧‧發送器
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧圓盤式衛星接收天線
140‧‧‧無線通信通道
142、144‧‧‧塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電-光(E/O)介面
164‧‧‧光-電(O/E)介面
199‧‧‧通信通道
200‧‧‧通信系統
201‧‧‧資訊位元
203‧‧‧離散值調製符號序列
204‧‧‧連續時間發送信號
205‧‧‧濾波後連續時間發送信號
206‧‧‧連續時間接收信號
207‧‧‧濾波後連續時間接收信號
208‧‧‧離散時間接收信號
209‧‧‧符號量度(symbol metrics)
210‧‧‧最佳估算
222、224‧‧‧功能塊
230‧‧‧發送驅動器
232‧‧‧DAC(數模轉換器)
234‧‧‧發送濾波器
260‧‧‧AFE(類比前端)
262‧‧‧接收濾波器
264‧‧‧ADC(模數轉換器)
270‧‧‧量度生成器(metric generator)
280‧‧‧解碼器
297‧‧‧發送器
299‧‧‧通信通道
300‧‧‧LDPC碼二分圖
310‧‧‧位元節點
312‧‧‧位元節點vi
314‧‧‧邊dv
320‧‧‧校驗節點
322‧‧‧校驗節點cj
324‧‧‧邊dc
330‧‧‧邊
401‧‧‧從通信通道接收的連續時間信號
410‧‧‧AFE(採樣、濾波、增益調整等)
411‧‧‧數位/基帶/離散時間信號
420‧‧‧度量生成器(例如LLR)
421‧‧‧位元度量/LLR
430‧‧‧位元引擎(例如,變數引擎)
431‧‧‧位元邊消息
432‧‧‧軟資訊
435‧‧‧迭代解碼處理
440‧‧‧校驗引擎
441‧‧‧校驗邊消息
450‧‧‧硬限幅器
451‧‧‧硬/最佳估計
460‧‧‧校正子計算器
501‧‧‧從通信通道接收的連續時間信號
510‧‧‧AFE(採樣、濾波、增益調整等)
511‧‧‧數位/基帶/離散時間信號
520‧‧‧度量生成器(例如LLR)
521‧‧‧修改後的位元度量/LLR
530‧‧‧位元引擎(例如,變數引擎)
531‧‧‧修改後的位元邊消息
532‧‧‧修改後的軟資訊
535‧‧‧迭代解碼處理
540‧‧‧校驗引擎
541‧‧‧修改後的校驗邊消息
550‧‧‧硬限幅器
551‧‧‧硬/最佳估計
560‧‧‧校正子計算器
601‧‧‧從通信通道接收的連續時間信號
610‧‧‧AFE(採樣、濾波、增益調整等)
611‧‧‧數位/基帶/離散時間信號
620‧‧‧度量生成器(例如LLR)
621‧‧‧修改後的位元度量/LLR
630‧‧‧位元引擎(例如,變數引擎)
631‧‧‧位元邊消息和/或修改後的位元邊消息
632‧‧‧軟資訊和/或修改後的軟資訊
635‧‧‧迭代解碼處理
640‧‧‧校驗引擎
641‧‧‧校驗邊消息和/或修改後的校驗邊消息
650‧‧‧硬限幅器
651‧‧‧硬/最佳估計
660‧‧‧校正子計算器
720‧‧‧度量生成器(例如LLR)
721‧‧‧位元度量/LLR
722‧‧‧操作參數修改模組
723‧‧‧修改後的位元度量/LLR
730‧‧‧位元引擎(例如,變數引擎)
731‧‧‧位元邊消息
732‧‧‧軟資訊
733‧‧‧修改後的位元邊消息
738‧‧‧操作參數修改模組
740‧‧‧校驗引擎
741‧‧‧校驗邊消息
742‧‧‧操作參數修改模組
743‧‧‧修改後的校驗邊消息
820‧‧‧度量生成器(例如LLR)
822‧‧‧操作參數修改模組
823‧‧‧修改後的位元度量/LLR
830‧‧‧位元引擎(例如,變數引擎)
832‧‧‧軟資訊
833‧‧‧修改後的位元邊消息
838‧‧‧操作參數修改模組
840‧‧‧校驗引擎
842‧‧‧操作參數修改模組
843‧‧‧修改後的校驗邊消息
920‧‧‧度量生成器(例如LLR)
922‧‧‧操作參數修改模組
923‧‧‧修改後的位元度量/LLR
930‧‧‧位元引擎(例如,變數引擎)
932‧‧‧軟資訊
933‧‧‧修改後的位元邊消息
938‧‧‧操作參數修改模組
940‧‧‧校驗引擎
942‧‧‧操作參數修改模組
943‧‧‧修改後的校驗邊消息
945‧‧‧出站
1010‧‧‧記憶體
1020‧‧‧處理模組
1030‧‧‧通信設備
1040‧‧‧通信系統
1110‧‧‧記憶體
1120‧‧‧處理模組
1130‧‧‧通信設備
1140‧‧‧通信系統
圖1是通信系統的一個實施例的示意圖;圖2是通信系統的另一實施例的示意圖;圖3是LDPC碼二分圖(bipartite graph)的一個實施例的示意圖;圖4是LDPC解碼功能的一個實施例的示意圖;圖5至圖9分別是LDPC解碼功能的至少一部分的各個不同實施例的示意圖; 圖10是執行LDPC解碼處理的裝置的一個實施例的示意圖;圖11是執行LDPC解碼處理的裝置的另一實施例的示意圖;圖12是LDPC解碼所採用的一些操作參數的示意圖;圖13是作為根據LDPC解碼進行的解碼疊代的一個功能的操作參數修改的一個實施例的示意圖;圖14至圖18分別是作為根據LDPC解碼進行的解碼疊代的一個功能的操作參數修改的各個不同實施例的示意圖;圖19是處理LDPC編碼信號(涉及操作參數修改)的方法的一個實施例的示意圖;圖20至圖22分別是處理LDPC編碼信號(涉及操作參數修改)的方法的各個實施例的示意圖;圖23至27分別是執行操作參數修改的方法的各個實施例的示意圖,其中操作參數修改是根據LDPC解碼進行的解碼疊代的一個功能;圖28是根據LDPC解碼的校驗節點量度(magnitude)更新功能的實施例的示意圖;圖29是校驗輸入和輸出函數逼近的實施例的示意圖;圖30是根據LDPC解碼的位元(例如變數)節點更新功能的實施例的示意圖。
LDPC(低密度奇偶校驗)碼是容量逼近前向改錯碼(ECC),正被大量通信標準(例如IEEE 802.3an、IEEE 802.11n、802.20、DVB-S2)所採用。相關的應用領域包括磁記錄、無線、通過銅纜和光纖的高速資料傳輸。
一個實施例中,使用疊代解碼方法來執行LDPC解碼處理,其中,在執行校驗節點處理和位元節點處理時將來回傳遞消息(例如,校驗邊消息和位元邊消息)。某些時候,這被稱為消息傳遞解碼處理,在編碼的圖形標示上(例如,LDPC二分圖)操作。其中的 一個關鍵的硬體實現難點是在每次解碼器疊代過程中必須交換的大量消息的管理。因此需採用各種方法來減少表示每個消息所需的位元數量而又不會犧牲編碼性能。此外,還提出了新的方法,可以對在執行LDPC編碼信號的解碼時所採用的各種元素中的一者或多者(例如,校驗邊消息、位元邊消息、LLR、軟資訊等等)進行操作參數修改。
注意,本申請中以下描述的任意實施例和方法都是可以適用的,不管整個LDPC解碼器的架構如何,例如,在架構/硬體實現上是否是完全並行的、部分並行的或串列的。
數位通信系統的目標是從一個位置或子系統無錯地或以可接受的低錯誤率發送數位資料到另一個位置或子系統。如圖1所示,資料可通過多種通信系統內的各種通信通道來傳輸:磁媒介、有線、無線、光纖、銅纜和其他類型的媒介。
圖1和圖2分別是根據本發明不同實施例的通信系統的100和200的示意圖。
如圖1所示,通信系統100包括一個通信通道199,將位於通信通道199一端的通信設備110(包括帶有編碼器114的發送器112和帶有解碼器118的接收器116)與位於通信通道199另一端的另一個通信設備120(包括帶有編碼器128的發送器126和帶有解碼器124的接收器122)通信連接。在某些實施例中,通信設備110和120均可僅包括一個發送器或一個接收器。通信通道199可通過各種不同類型的媒介來實現(例如,利用圓盤式衛星接收天線132和134的衛星通信通道130、利用塔142與144和/或本地天線152和154的無線通信通道140、有線通信通道150和/或利用電-光(E/O)介面162和光-電(O/E)介面164的光纖通信通道160)。另外,可以通過一種以上的媒介連接在一起從而形成通信通道199。
為了減少通信系統內不期望出現的傳輸錯誤,通常採用糾錯和通道編碼方案。一般,這些糾錯和通道編碼方案包括發送器端編碼器的使用以及接收器端解碼器的使用。
如圖2所示的通信系統200中,在通信通道299的發送端, 資訊位元201被提供給發送器297,發送器297可使用編碼器和符號映射器200(可分別視為是不同的功能塊222和224)執行對這些資訊位元201的編碼,從而生成一個離散值調製符號序列203,然後提供給發送驅動器230。發送驅動器230使用DAC(數模轉換器)232生成一個連續時間發送信號204,然後通過發送濾波器234,生成充分適合通信通道299的濾波後連續時間發送信號205。在通信通道299的接收端,連續時間接收信號206被提供給AFE(類比前端)260,APE 260包括接收濾波器262(生成濾波後連續時間接收信號207)和ADC(模數轉換器)264(生成離散時間接收信號208)。量度生成器(metric generator)270計算符號量度(symbol metrics)209,解碼器280使用符號量度209做出對離散值調製符號和編碼在其內的資訊位元的最佳估算210。
前述實施例中的解碼器具有本發明的各種特徵。另外,以下的一些附圖和相關的描述將介紹支援本發明的設備、系統、功能性和/或方法的其他和特定實施例(某些實施例的介紹更加詳細)。根據本發明處理的一種特定類型的信號是LDPC編碼信號。在給出更詳細的介紹之前,先對LDPC碼進行概要描述。
圖3是LDPC碼二分圖300的示意圖。在業內,LDPC二分圖也被稱為Tanner圖(坦納圖)。LDPC碼被看作是具有二進位奇偶校驗矩陣從而使矩陣的幾乎所有元素都為零值(例如,該二進位奇偶校驗矩陣是稀疏矩陣)的代碼。例如,H =(h i,j ) MxN 被看作是區塊長度為N 的LDPC碼奇偶校驗矩陣。
LDPC碼是線性區塊碼,因此所有碼字的集合x C 分佈在奇偶校驗矩陣H的零空間內。
對於LDPC碼,Hm×n 維的稀疏二進位矩陣。H 的每行對應於一個奇偶校驗,一組元素h ij 表示資料符號j 參與奇偶校驗iH 的每列對應於碼字元號。
對於每個碼字x ,有n 個符號,其中m 個是奇偶符號。因此,編碼率r 給定為:r =(n-m)/n (2)
行和列的權重分別定義為H 的給定行或列的集合元素的數量。H 的集合元素選定為滿足編碼的性能需求。奇偶校驗矩陣的第i 列中1的數量表示為d v (i) ,奇偶校驗矩陣的第j 行中的1的數量表示為d c (j) 。如果對所有的id v (i) =d v ,對所有的j,d c (j) =d c ,那麽這種LDPC碼被稱為(d v ,d c )規則LDPC碼,否則被稱為不規則LDPC碼。
關於LDPC碼的介紹請參考以下兩份參考文件:
[1]R.Gallager,Low-Dentisy Parity-Check Codes,Cambridge,MA:MIT Press,1963.
[2]M.G.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,and V.Stemann,"Practical Loss-Resilient Codes",Proc.29th Symp.On Theory of Computing,1997,pp.150-159.
規則LDPC碼可表示為二分圖300,其奇偶校驗矩陣的左側節點為代碼位元變數(或為解碼LDPC編碼信號的位元解碼方法中的“變數節點”(或“位元節點”)310),右側節點為校驗方程(或“校驗節點”320)。由H 定義的LDPC碼的二分圖300(或稱為坦納圖300)可由N 個變數節點(例如,N 個位元節點)和M 個校驗節點來定義。N 個變數節點310中的每個變數節點都具有精確的d v (i) 個邊(如邊330),連接位元節點例如v i 312與一個或多個校驗節點(M 個校驗節點內)。圖中所示的邊330連接位節點v i 312與校驗節點c j 322。該d v 個邊(如d v 314所示)的數量d v 被稱為變數節點的度i 。類似地,M 個校驗節點320中的每個校驗節點都有精確的dc (j)個邊(如d c 324所示),連接該節點與一個或多個變數節點(或位元節點)310。該邊的數量d c 被稱為校驗節點的度j
變數節點v i (或位元節點b i )312與校驗節點c j 322之間的邊330可被定義為e =(i,j) 。但是,另一方面,給定邊e =(i,j) ,則該邊的節點可表示為e =(v(e),c(e)) (或e =(b(e),c(e)) )。或者,二分圖中的邊對應于H 的集合元素,其中,集合元素h ji 表示一條邊連接位元(例如,變數)節點i 和奇偶校驗節點j
假定給出變數節點v i (或位元節點b i ),可將從節點vi (或位元節點b i )發射出的一組邊定義為E v (i) ={e |v(e) =i} (或E b (i) ={e |b(e) =i} )。這些邊被稱為位元邊,而對應於這些位元邊的消息被稱為位元邊消息。
假定給出校驗節點c j ,可將從節點c j 發射出的一組邊定義為E c (j) ={e |c(e) =j} 。這些邊被稱為校驗邊,而對應于這些校驗邊的消息被稱為校驗邊消息。接著,導出的結果是|E v (i) |=d v (或|E b (i) |=d b )以及|E c (j) |=d c
一般說來,任何可用二分圖表示的代碼,其特徵都是圖形碼。要注意的是,不規則LDPC碼也可用二分圖表示。但是,不規則LDPC碼內的每組節點的度可根據某些分佈進行選擇。因此,對於不規則LDPC碼的兩個不同變數節點,|E v (i 1 ) |可能會不等於|E v (i 2 ) |。對於兩個校驗節點也是這種關係。不規則LDPC碼的概念最早在上述的參考文件[2]中給出了介紹。
總之,通過LDPC碼的圖示,LDPC碼的參數可由分佈的度來定義,如M.Luby等在上述參考文件[2]中所述,以下的參考文件中也有相關的描述:
[3]T.J.Richardson and R.L.Urbanke,"The capacity of low-density parity-check code under message-passing decoding",IEEE Trans.Inform.Theory,Vol.47,No.2,Feb.2001,pp.599-618.
這種分佈可描述如下:用λ i 表示從度為i 的變數節點發射的邊的分數,ρ i 表示從度為i 的校驗節點發射的邊的分數,則度分佈對(λ,ρ )定義如下: ,其中M v M c 分別表示變數節點和校驗節點的最大度。
雖然在此描述的多個實施例採用規則LDPC碼,但是要注意的是本發明的特徵既適用於規則LDPC碼,也適用於不規則LDPC 碼。
還要注意的是,本申請中描述的多數實施例採用“位元節點”和“位元邊消息”或等效的表述這樣的命名。但是通常在LDPC解碼的現有技術中,“位元節點”和“位元邊消息”又被稱為“變數節點”和“變數邊消息”,因此,位元值(或變數值)是那些試圖被估算的值。這兩種命名都可以被本申請所採用。
圖4示出了LDPC解碼功能400的一個實施例。為了執行具有m位元信號序列的LDPC編碼信號的解碼,採用了圖4所示的功能塊。一般來說,從通信通道接收到連續時間信號(continuous-time signal),如附圖標號401所示。該通信通道可以是任何類型的通道,包括但不限於有線通信通道、無線通信通道、光纖通信通道、HDD的讀通道或能夠傳送已使用LDPC碼編碼的連續時間信號的其他類型的通信通道。
類比前端(AFE)410對該連續時間信號執行任何初始處理(例如,通過執行濾波(類比和/或數位濾波)、增益調節等一種或多種處理)並進行數位採樣,從而生成離散時間信號411。該離散時間信號411又被稱為數位信號、基帶信號或現有技術中已知的其他命名。通常,離散時間信號411被分成信號的I、Q(同相、正交)值。
度量生成器420接收離散時間信號411(例如,其包括有I、Q值),並計算對應的位元度量和/或對數似然比(LLR)421,其對應於離散時間信號411內的接收值。某些實施例中,這些位元度量/LLR符號度量421的計算是兩個步驟的處理,其中,度量生成器420首先計算對應於離散時間信號411的符號的符號度量,然後度量生成器再採用該符號度量來分解這些符號度量為位元度量/LLR 421。然後由位元引擎430使用這些位元度量/LLR 421來初始化位元邊消息(例如,如附圖標號429所示),在執行LDPC編碼信號的疊代解碼處理435(例如,如位元引擎430和校驗引擎440所執行的)時將使用該位元邊消息。
對數似然比(LLR)的值為λ i ,對應的接收符號的值為y i 的情況下,針對每個變數節點i 的位元邊消息的初始化可以定義為如下:
同樣,在位元節點處,位元引擎430使用最近更新的位元邊消息計算該位元的對應軟資訊(例如,如軟資訊432所示)。然而,通常要執行多次解碼疊代,因而經初始化的位元邊消息被傳送給校驗引擎440,在其中,第一次解碼疊代過程中,校驗引擎440採用該初始化的位元邊消息更新校驗邊消息。
在每個校驗節點處,LDPC解碼處理在入站消息的正負號(sign)上形成奇偶校驗結果(XOR)。這通過找出每個出站消息的正負號作為具有該奇偶校驗結果的對應入站消息的正負號的XOR來執行。
然後,依據下式計算從校驗節點j到位元(例如,變數)節點i的出站消息可靠性:
某些期望的實施例中,這一計算在對數域內執行,以將乘法轉換成加法,如下:
此後,位元引擎430從校驗引擎440接收經更新的邊消息(例如,如校驗邊消息441所示),並利用他們更新位元邊消息。同樣,位元引擎430還在依據LDPC解碼執行位元邊消息的更新時使用從度量生成器420接收的位元度量/LLR 421。然後,這些經更新的校驗邊消息441被傳送回位元節點(例如,位元引擎430),在此使用位元度量/LLR 421和校驗邊消息的當前疊代值計算出該位元的軟資訊432。在每個位元(例如,變數)節點處,軟資訊的計算包括形成來自校驗節點的入站消息(例如,校驗邊消息441)內的接收 符號的LLR的和。解碼出的位元由求出的總和的正負號_sign來給出。用於下一次解碼疊代的每個出站消息通過從該總和中減去對應的入站消息來計算得到。為了繼續疊代解碼處理435,這些位元邊消息431在被更新後,被傳送給校驗引擎440。
然後執行再一次解碼疊代。在校驗節點處,校驗引擎440接收從位元節點(例如,從位元節點430)發送來的經更新的位元邊消息431,並據此更新校驗邊消息。然後,將經更新的校驗邊消息441傳送回位元節點(例如,位元引擎430),在此使用位元度量/LLR 421和校驗邊消息的當前疊代值計算出位元的軟資訊432。此後,使用這一剛剛計算出的位元的軟資訊432,位元引擎430再次使用校驗邊消息的前一值(來自剛剛的前次疊代)更新位元邊消息。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理435在位元節點和校驗節點之間繼續進行。
位元節點引擎430和校驗節點引擎440所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準,如附圖標號461所示(例如,已經執行了預定的或自適應確定的疊代次数後,LDPC碼的所有校正子都等於零後(例如,所有的奇偶校驗均滿足),和/或已經滿足其他的停止標準)。LDPC解碼停止的另一種方式是當LDPC碼字的當前估計值滿足以下關係時停止:
每次解碼疊代過程中,軟資訊432會在位元引擎430中生成。圖中所示的這個實施例中,可將軟資訊432提供給做出硬判決的硬限幅器(hard limiter)450,而且硬資訊(例如,硬/最佳估計值451)可提供給校正子計算器460以確定LDPC碼的校正子是否都等於零。也就是說,校正子計算器460基於LDPC碼字的當前估計值確定是否與LDPC碼相關的每個校正子都等於零。
當校正子不等於零時,再繼續疊代解碼處理435,適當地在位元節點引擎430和校驗節點引擎440之間更新和傳遞位元邊消息和校驗邊消息。執行完疊代解碼處理的所有步驟後,基於軟資訊 432輸出該位元的硬/最佳估計值451。
還需要注意的是,為了很好的解碼性能,二分圖中迴圈周期的長度盡可能的長是很重要的。短的迴圈周期,例如4迴圈,可能會降低用於解碼LDPC編號信號的消息傳遞解碼方法的性能。
雖然消息傳遞解碼方法的數學計算包括雙曲線函數和對數函數(參見等式(5)),在硬體實現中,這些函數也可通過查找表(LUT)逼近或直接通過邏輯門實現。數學計算僅涉及加法、減法和XOR操作。固定點實現中所需的位元的數量由所需的編碼性能、解碼器收斂的速度以及是否必需壓制誤碼平層(error floor)(如參考文件[4]所描述)來確定。
[4]Zhang,T.,Wang,Z.,and Parhi,K.,"On finite precision implementation of low density parity check codes decoder",Proceedingsof ISCAS ,Sydney,Australia,May 2001,pp 202-205.
執行消息傳遞解碼處理以解碼LDPC碼的一個主要的挑戰是管理消息的傳遞。其中的一些關鍵問題包括必需交換大量的消息以及消息所需的訪問形式。
具有平均列權重Λ ave 的LDPC碼的消息帶寬M bw 在如下列出的參考文件[5]中給出並列出如下;
[5]Andrew J.Blanksby and Chris J.Howland,"A 690-mW 1-Gb/s 1024-b,rate-1/2 low density parity-check code decoder",IEEE Journal of Solid-State Circuits ,Vol.37,No.3,March 2002,pp 404-412.
M bw =2Λ ave WNT (6)
其中,W 是用於表示每個消息的位元的數量,N 是解碼器疊代的次數,T 是以位元/秒為單位的目標編碼吞吐量,因數2包括變數和校驗消息兩者。需要注意,消息帶寬獨立于編碼的長度n。作為一個示例,對於10G Base-T(802.3an)應用,編碼位元吞吐量是6.4 Gbit/s,平均列權重是6,並假設是8位元消息,20次解碼器疊代,那麽所需的消息帶寬是12288 Gbit/s(或1536 Gbyte/s)。
高的消息帶寬轉化為實現所需的讀/寫速度所需的記憶體架構的複雜度。對於中等吞吐量的應用,需要多組記憶體和大的多工器,如參考文件[6]所描述的。然而對於高吞吐量的應用,記憶體太慢,消息必需存儲在寄存器中。高消息帶寬同樣對應于高的動態功耗。
[6]Yeo.,E,Pakzad,P.,Nikolic,B.,and Anantharam,V.,"VLSI architectures for iterative decoders in magnetic recording channels",IEEE Transactions on Magnetics ,Vol.37,No.2,2001,pp 748-755.
對於LDPC碼為了實現好的編碼性能,編碼架構可以是隨機的,也可以是基於複雜的置換的。這導致消息訪問方式缺乏規律性。對於基於記憶體的架構,必需開發互連結構和調度表,並且調度表本身的存儲需求也是明顯地,如參考文件[7]所述。對於並行或部分並行的架構,其中消息表示為連線(wire)和寄存器,編碼結構將帶來路由選擇的複雜度,如上述參考文件[5]中所述。
[7]Shimizu,K.,Ishikawa,T.,Togawa,N.,Ikenaga,T.,and Goto,S.,"Partially-parallel LDPC decoder based on high-efficiency message-passing algorithm,"Proceedings of the 2005 Intersational Conference on Computer Design(ICCD'05) ,2005,8pages.
看等式(6),列權重通過滿足編碼性能所需的編碼結構來確定,吞吐量通過標準來固定。可能被改變以降低消息帶寬的唯一兩個參數是解碼器疊代的次數和用於表示每個消息的位元的數量。
解碼器疊代的平均次數可通過在每次疊代後測試等式(1)以確定該演算法是否已經收斂到正確的碼字來減少。然而,對於最壞的情況,如果要編碼性能沒有任何損失,還是必須將解碼器設計成執行最大次數的疊代。
減少執行每次消息所需的位元數量的技術必須最小化任何編碼性能損失,不降低解碼器收斂的速度,並且不引入參考文件[8]中描述的誤碼平層。實際應用中使用的多數LDPC碼的相對較短 的區塊長度n意味著編碼結構中的短迴圈周期是不可避免的,這反映了該消息傳遞解碼演算法不是最優的。降低表達消息的精度會加劇這一問題,並會妨礙解碼器收斂到正確的碼字,反之則將受制於極限周期。
[8]Manyuan Shen,Huaning Niu,Hui Liu,and J.A.Ritcey,J.A.,"Finite precision implementation of LDPC coded M-ary modulation over wireless channels,"Conference Record of theThirty-Seventh Asilomar Conference on Signals,Systems and Computers ,2003,Publication Date:9-12 Nov.2003,Volume:1,pp.114-118,Vol.1 ISSN:ISBN:0-7803-8104-1.
圖5、圖6、圖7、圖8和圖9示出了LDPC解碼功能的至少一部分的各個實施例。這些實施例與圖4中的LDPC解碼功能400相比具有至少一些類似的特徵。
參見圖5所示的LDPC解碼功能500,這個實施例也從通信通道接收連續時間信號,如附圖標號501所示。此後,AFE 510從其生成離散時間信號511。
然而,當使用離散時間信號511計算位元度量/LLR時,度量生成器520計算修改後的位元度量/LLR 521。這些修改後的位元度量/LLR 521不同於前一實施例中的位元度量/LLR 421,由此,度量生成器520計算位元度量/LLR(例如,以與前一實施例相似的方式),但是接著度量生成器520修改這些初始計算出來的位元度量/LLR,從而生成修改後的位元度量/LLR 521。這一修改使用各種方式來執行,包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或其他方式。
然後位元引擎530使用這些修改後的位元度量/LLR 521來初始化位元邊消息(例如,如附圖標號529所示),該位元邊消息在執行LDPC編碼信號的疊代解碼處理535(例如,如位元引擎530和校驗引擎540所執行的)時使用。
又,在位元節點處,位元引擎530使用最近更新的位元邊消息計算位元的對應修改後軟資訊(例如,所示的修改後軟資訊 532)。這一修改後軟資訊532可被視為不同於前一實施例的軟資訊432,因此,修改後軟資訊532依據各種方法經受了一些修改,這些方法包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或其他方式。
再次,與前一實施例一樣,同樣要執行多次解碼疊代,因此將初始的(且經修改的,若需要)位元邊消息傳遞給校驗引擎540,在此,第一次解碼疊代過程中,校驗引擎540採用該初始的(且某些時候經修改的)位元邊消息來更新校驗邊消息。此後,位元引擎530從校驗引擎540接收修改後經更新的邊消息(例如,圖示的修改後的校驗邊消息541),並利用他們更新位元邊消息。該修改後的校驗邊消息541在校驗邊消息依據各種方法經受了一些修改後生成,這些方法包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或其他方式。
又,位元引擎530在依據LDPC解碼執行位元邊消息的更新時,採用從度量生成器520接收的修改後的位元度量/LLR 521。又,這些更新後的修改後的校驗邊消息541然後被傳回位元節點(例如,位元引擎530),在此使用修改後的位元度量/LLR 521以及校驗邊消息的當前疊代值計算出修改後軟資訊532。為了繼續疊代解碼處理535,這些修改後位元邊消息531在經過更新後,接著傳送給校驗引擎540。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理535在位元節點和校驗節點之前繼續進行。
位元節點引擎530和校驗節點引擎540所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準,如附圖標號561所示(例如,已經執行了預定的或自適應確定的疊代次數後,LDPC碼的所有校正子都等於零後,和/或已經滿足其他的停止標準)。
每次解碼疊代過程中,修改後軟資訊532會在位元引擎530中生成。圖中所示的這個實施例中,可將修改後軟資訊532提供給做出硬判決的硬限幅器550,而且硬資訊(例如,硬/最佳估計值551)可提供給校正子計算器560以確定LDPC碼的校正子是否都等於零。也就是說,校正子計算器560基於LDPC碼字的當前估計 值確定是否與LDPC碼相關的每個校正子都等於零。
當校正子不等於零時,再繼續疊代解碼處理535,適當地在位元引擎530和校驗引擎540之間更新和傳遞位元邊消息和校驗邊消息。執行完疊代解碼處理的所有步驟後,基於軟資訊532輸出該位元的硬/最佳估計值551。
圖5所示的實施例與圖4所示的實施例的不同之處至少在於,各個引擎、處理模組等之間傳遞的資訊是經“修改”的資訊。再次,這樣的修改可以是各種方式中一種或多種的結合,包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或其他方式。
圖6所示的以下實施例與圖5的實施例有一些類似,其至少一個區別在於,針對每個引擎、處理模組等內計算的每種類型的資訊,該資訊(未經過修改)或該資訊的修改版本可傳遞給隨後的引擎、處理模組等,以用於解碼處理。也就是說,圖6所示的實施例中,可從每個引擎、處理模組等中選擇性的提供資訊或修改後的資訊。
參見圖6所示的LDPC解碼功能600,這個實施例也從通信通道接收連續時間信號,如附圖標號601所示。此後,AFE 610從其生成離散時間信號611。
然而,當使用離散時間信號611計算位元度量/LLR時,度量生成器620計算位元度量/LLR和修改後的位元度量/LLR 621其中一者或者兩者都計算。這些修改後的位元度量/LLR 621不同於前一實施例中的位元度量/LLR 421,由此,度量生成器620計算位元度量/LLR(例如,以與前一實施例相似的方式),但是接著度量生成器620修改這些初始計算出來的位元度量/LLR,從而生成修改後的位元度量/LLR 621。這一修改使用各種方式來執行,包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或其他方式。
然後位元引擎630使用位元度量/LLR和/或修改後的位元度量/LLR 621來初始化位元邊消息(例如,如附圖標號629所示),該 位元邊消息在執行LDPC編碼信號的疊代解碼處理635(例如,如位元引擎630和校驗引擎640時所執行的)時使用。某些實施例中,度量生成器620可僅計算位元度量/LLR或修改後的位元度量/LLR 621其中之一(即,要麽僅計算位元度量/LLR,要麽僅計算修改後的位元度量/LLR 621),以節省計算資源、時間或一些其他的系統資源。
又,在位元節點處,位元引擎630使用最近更新的位元邊消息(和/或經修改的位元邊消息)計算位元的對應軟資訊和修改後軟資訊其中之一或兩者(例如,所示的軟資訊和/或修改後軟資訊632)。
再次,與前面的實施例一樣,同樣要執行多次解碼疊代,因此將初始的(且經修改的,若需要)位元邊消息傳遞給校驗引擎640,在此,第一次解碼疊代過程中,校驗引擎640採用該初始的位元邊消息(和/或經修改的位元邊消息)來更新校驗邊消息。此後,位元引擎630從校驗引擎640接收經更新的(修改後的,若需要)邊消息(例如,圖示的校驗邊消息和/或修改後的校驗邊消息641),並利用他們更新位元邊消息(和/或修改後的位元邊消息)。
又,位元引擎630在依據LDPC解碼執行位元邊消息的更新時,採用從度量生成器620接收的位元度量/LLR和/或修改後的位元度量/LLR 621。又,這些更新後的校驗邊消息或修改後的校驗邊消息641然後被傳回位元節點(例如,位元引擎630),在此使用位元度量/LLR和/或修改後的位元度量/LLR 621以及校驗邊消息的當前疊代值計算出軟資訊和/或修改後軟資訊632。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理635在位元節點和校驗節點之間繼續進行。
位元節點引擎630和校驗節點引擎640所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準,如附圖標號661所示(例如,已經執行了預定的或自適應確定的疊代次數後,LDPC碼的所有校正子都等於零後,和/或已經滿足其他的停止標準)。
每次解碼疊代過程中,軟資訊和/或修改後軟資訊632會在位 元引擎630中生成。圖中所示的這個實施例中,可將該軟資訊和/或修改後軟資訊632提供給做出硬判決的硬限幅器650,而且硬資訊(例如,硬/最佳估計值651)可提供給校正子計算器660以確定LDPC碼的校正子是否都等於零。也就是說,校正子計算器660基於LDPC碼字的當前估計值確定是否與LDPC碼相關的每個校正子都等於零。
當校正子不等於零時,再繼續疊代解碼處理635,適當地在位元引擎630和校驗引擎640之間更新和傳遞位元邊消息和校驗邊消息。執行完疊代解碼處理的所有步驟後,基於軟資訊632輸出該位元的硬/最佳估計值651。
比較圖7、圖8和圖9所示的實施例與前面的一些實施例,雖然沒有明確地示出AFE、硬限幅器或校正子計算器,讀者可以知道,這些器件可以包括在內而不脫離本發明的保護範圍和精神實質。
參見圖7所示的LDPC解碼功能700,這個實施例也從通信通道接收連續時間信號,並且AFE生成離散時間信號,提供給度量生成器720,從其中計算出位元度量/LLR 721。操作參數修改模組722被實現並用來處理位元度量/LLR 721,以及修改這些原始計算出來的位元度量/LLR 721,從而生成修改後的位元度量/LLR 723。操作參數修改模組722所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
然後位元引擎730使用這些修改後的位元度量/LLR 723來初始化位元邊消息(例如,如附圖標號731所示),該位元邊消息在執行LDPC編碼信號的疊代解碼處理(例如,如位元引擎730和校驗引擎740所執行的)時使用。
又,在位元節點處,位元引擎730使用最近更新的位元邊消息(和/或修改後的位元邊消息)計算位元的軟資訊(例如,所示的軟資訊732)。
再次,與前一實施例一樣,同樣要執行多次解碼疊代,因此 將初始的位元邊消息731傳遞給操作參數修改模組738,由操作參數修改模組738處理該位元邊消息731並修改這些原始計算出的位元邊消息731從而生成修改後的位元邊消息733。操作參數修改模組738所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
修改後的位元邊消息733被傳遞給校驗引擎740,在此,第一次解碼疊代過程中,校驗引擎740採用該初始的經修改的位元邊消息733來更新校驗邊消息。這些更新後的校驗邊消息741被傳遞給操作參數修改模組742,由操作參數修改模組742處理校驗邊消息741並修改這些原始計算出的校驗邊消息741,從而生成修改後的校驗邊消息743。操作參數修改模組742所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
此後,位元引擎730接收修改後的校驗邊消息743並利用他們更新位元邊消息。
又,位元引擎730在依據LDPC解碼執行位元邊消息的更新時,採用修改後的位元度量/LLR 723。又,這些修改後的校驗邊消息743然後被傳回位元節點(例如,位元引擎730),在此使用修改後的位元度量/LLR 723以及校驗邊消息的當前疊代值計算出該位元的軟資訊732。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理在位元節點和校驗節點之間繼續進行。
位元節點引擎730和校驗節點引擎740所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準。
每次解碼疊代過程中,軟資訊732會在位元引擎730中生成。圖中所示的這個實施例中,可將軟資訊732提供給做出硬判決的硬限幅器,而且硬資訊可提供給校正子計算器以確定LDPC碼的校正子是否都等於零。
參見圖8所示的LDPC解碼功能800,這個實施例與圖7所示的前一實施例有一些類似,其至少一個區別在於,任一“操作參 數修改模組”是嵌入在其他模組、功能塊等內的,或是其一部分。
圖8所示的實施例也從通信通道接收連續時間信號,並且AFE生成離散時間信號,提供給度量生成器820,從其中計算出位元度量/LLR。操作參數修改模組822被實現為度量生成器820的一部分,可用來處理位元度量/LLR,以及修改這些原始計算出來的位元度量/LLR從而生成修改後的位元度量/KLR 823。操作參數修改模組822所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
然後位元引擎830使用這些修改後的位元度量/LLR 823來初始化位元邊消息並從中生成修改後的位元邊消息833(使用嵌入的操作參數修改模組838),該修改後的位元邊消息在執行LDPC編碼信號的疊代解碼處理(例如,如位元引擎830和校驗引擎840所執行的)時使用。與其他實施例一樣,操作參數修改模組838所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
又,在位元節點處,位元引擎830使用最近更新的位元邊消息(和/或修改後的位元邊消息)計算位元的軟資訊(例如,所示的軟資訊832)。
再次,與前面的實施例一樣,同樣要執行多次解碼疊代,因此將初始的修改後的位元邊消息833傳遞給校驗引擎840,在此,第一次解碼疊代過程中,校驗引擎840採用該初始的經修改的位元邊消息833來更新校驗邊消息。這些更新後的校驗邊消息然後被嵌入的操作參數修改模組842處理並修改這些原始計算出的校驗邊消息,從而生成修改後的校驗邊消息843。操作參數修改模組842所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
此後,位元引擎830接收修改後的校驗邊消息843並利用他 們更新位元邊消息。
又,位元引擎830在依據LDPC解碼執行位元邊消息的更新時,採用修改後的位元度量/LLR 823。又,這些修改後的校驗邊消息843然後被傳回位元節點(例如,位元引擎830),在此使用修改後的位元度量/LLR 823以及校驗邊消息的當前疊代值計算出該位元的軟資訊832。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理在位元節點和校驗節點之間繼續進行。
位元引擎830和校驗引擎840所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準。
每次解碼疊代過程中,軟資訊832會在位元引擎830中生成。圖中所示的這個實施例中,可將軟資訊832提供給做出硬判決的硬限幅器,而且硬資訊可提供給校正子計算器以確定LDPC碼的校正子是否都等於零。
以下圖9所示的實施例與圖8所示的實施例有一些類似,其至少一個區別在於,入站資訊(隨後被使用)的修改和出站資訊的隨後修改(若期望進行該修改)可以是不同的。例如,資訊可由處理模組接收,並且該資訊可被修改以用於執行該模組內的解碼處理的合適步驟,並且若期望的話,計算出的資訊還可再經過修改再從該處理模組發送出去。
參見圖9所示的LDPC解碼功能900,這個實施例也從通信通道接收連續時間信號,並且AFE生成離散時間信號,提供給度量生成器920,從其中計算出位元度量/LLR。操作參數修改模組922被實現為度量生成器920的一部分,可用來處理位元度量/LLR,以及修改這些原始計算出來的位元度量/LLR從而生成修改後的位元度量/LLR 923。操作參數修改模組922所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。此外,在依據第一方式(例如,使用入站修改924)計算原始計算出的位元度量/LLR之前,操作參數修改模組922可首先依據第一方式修改接收的離散時間信號,然後在計算原始計算出的位元度量/LLR之後, 操作參數修改模組922可依據第二方式(例如,使用出站修改925)修改原始計算出的位元度量/LLR,從而生成修改後的位元度量/LLR 923。
然後位元引擎930使用這些修改後的位元度量/LLR 923來初始化位元邊消息並從中生成修改後的位元邊消息933(使用嵌入的操作參數修改模組938),該修改後的位元邊消息在執行LDPC編碼信號的疊代解碼處理(例如,如位元引擎930和校驗引擎940所執行的)時使用。與其他實施例一樣,操作參數修改模組938所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。此外,在計算位元的軟資訊(例如,所示的軟資訊932)或下一更新後的位元邊消息或修改後的位元邊消息933之前,操作參數修改模組938可依據第一(和/或第二)方式修改接收到的修改後的位元度量/LLR 923(和/或接收到的修改後的校驗邊消息943)。與上述的其他模組一樣,操作參數修改模組938可依據第一方式(例如,使用入站修改934)修改任何接收到的資訊,然後在計算或更新資訊之後,操作參數修改模組938可依據第二方式(例如,使用出站修改935)修改該資訊,從而生成出站資訊。位元引擎930可提供修改後的位元邊消息933給校驗引擎940。
又,在位元節點處,位元引擎930使用最近更新的位元邊消息(和/或修改後的位元邊消息)計算位元的軟資訊(例如,所示的軟資訊932)。
再次,與前面的實施例一樣,同樣要執行多次解碼疊代,因此將初始的修改後的位元邊消息933傳遞給校驗引擎940,在此,第一次解碼疊代過程中,校驗引擎940採用該初始的經修改的位元邊消息933來更新校驗邊消息。這些更新後的校驗邊消息然後被嵌入的操作參數修改模組942處理並修改這些原始計算出的校驗邊消息,從而生成修改後的校驗邊消息943。操作參數修改模組942所執行的修改可以是依據任何方式的任何修改,這些方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一 些其他方式。與以上描述的其他模組一樣,操作參數修改模組942可依據第一方式(例如,使用入站修改944)修改接收到的資訊,然後在計算或更新資訊之後,操作參數修改模組942可依據第二方式(例如,使用出站修改945)修改該資訊,從而生成出站資訊。校驗引擎940可提供修改後的校驗邊消息943給位元引擎930。此後,位元引擎930接收修改後的校驗邊消息943並利用他們更新位元邊消息。
又,位元引擎930在依據LDPC解碼執行位元邊消息的更新時,採用修改後的位元度量/LLR 923。又,這些修改後的校驗邊消息943然後被傳回位元節點(例如,位元引擎930),在此使用修改後的位元度量/LLR 923以及校驗邊消息的當前疊代值計算出該位元的軟資訊932。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理在位元節點和校驗節點之間繼續進行。
位元節點引擎930和校驗節點引擎940所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準。
每次解碼疊代過程中,軟資訊932會在位元引擎930中生成。圖中所示的這個實施例中,可將軟資訊932提供給做出硬判決的硬限幅器,而且硬資訊可提供給校正子計算器以確定LDPC碼的校正子是否都等於零。
圖10示出了執行LDPC解碼處理的裝置1000的一個實施例。裝置1000包括處理模組1020和記憶體1010。記憶體1010連接至處理模組1020,並且記憶體1010用於存儲能使處理模組1020執行各種功能的操作指令。處理模組1020用於執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式。
處理模組1020可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體 1010可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備1020通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。
某些實施例中若期望如此,執行LDPC解碼處理的方式(例如,將執行哪種方式的操作參數修改,該操作參數修改將對哪些參數執行,是否針對不同的解碼疊代執行不同的操作參數修改,等等)可從裝置1000提供給使用預期的LDPC碼執行LDPC編碼的通信系統1040。例如,對應於被使用的LDPC碼的資訊(例如,LDPC碼的奇偶校驗矩陣)也可從處理模組1020提供給通信系統1040內的任意通信設備1030。此外,通信系統1040內的任一通信設備1030內將執行的LDPC碼將以哪種方式執行,也可從處理模組1020提供。
若想要,處理模組1020可被設計成生成依據多個需求和/或預期生成多種執行LDPC解碼的方式。某些實施例中,處理模組1020選擇性的提供不同的資訊(例如,對應於不同LDPC碼、不同操作參數修改等的資訊)給不同的通信設備和/或通信系統。因而,不同通信設備之間的不同通信鏈結可採用不同的LDPC碼和/或執行LDPC解碼的方式(例如,採用不同的操作參數修改)。顯然,處理模組1020還能提供相同的資訊給每個不同的通信設備和/或通信系統而不會脫離本發明的保護範圍和精神實質。
圖11示出了另一實施例的執行LDPC解碼處理的裝置1100。裝置1100包括處理模組1120和記憶體1110。記憶體1110連接至處理模組1120,並且記憶體1110用於存儲能使處理模組1120執行各種功能的操作指令。處理模組1120(由記憶體1110服務的)可實現為能夠執行此處所描述的各種模組和/或功能塊的任意功能的設備。例如,處理模組1120(由記憶體1110服務的)可實現為用於 執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式的設備。
處理模組1120可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體1110可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備1120通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。
某些實施例中若期望如此,裝置1100可以是任意一種通信設備1130,或這樣的通信設備1130中的任意部分。包括有處理模組1120和記憶體1110的通信設備1130可實現在任意通信系統1140內。還要注意,本申請中的LDPC解碼處理和/或依據LDPC解碼處理進行的操作參數修改的各個實施例及其各種等效實施例,可應用於多種類型的通信系統和/或通信設備。
圖12示出了進行LDPC解碼所採用的一些操作參數1200的一個實施例。如上結合其他實施例所述,進行LDPC解碼所採用的位元度量/LLR、校驗邊消息、位元邊消息或其他操作參數中的任意一個或多個,在LDPC解碼處理之前、進行過程中和/或之後,都可能會經歷修改。例如,可將附圖標號1210所示的操作參數調整應用於位元度量/LLR、校驗邊消息和/或位元邊消息中的一者或多者。這一修改可通過縮放1211、壓縮1212、解壓縮(例如,擴張)1213、增加第一值1214、減去第二值1215、分別將位元邊消息偏移第一量和/或將校驗邊消息偏移第二量1216、上捨入或下捨入位元邊消息和/或校驗邊消息1217、採用某些其他函數1218(例 如,可通過閉合式(closed form expression)、查找表實現的非線性函數、以及其各種結合或其他方法)和/或任何其他修改來實現。
此處實行的多數操作可在有限精確度域(例如,當處理數位信號時)內執行。這種情況下,移位元操作可被視為在某些實施例中執行迴圈移位(例如,經過迴圈移位後,向量1100 可變成0110 )。上捨入或下捨入1217可執行到任意想要的精確度(例如,1.65 可被上捨入為1.72.0 ,或被下捨入為1.61.0 )。此外,其他函數1218(例如,非線性函數)可以是任何期望的函數以修改Medge c (校驗邊消息)和/或Medge b (位元邊消息)中的一者或兩者(例如,f(Medge c ) =(Medge c ) 2 ,f(Medge b ) =(Medge b ) 2 , 等等)。
任何以上這些修改方式及其各種結合,都可以應用於LDPC解碼所採用的任何操作參數。
圖13示出了一個實施例中作為依據LDPC解碼進行的解碼疊代的一個功能的操作參數修改1300。在第一次解碼疊代過程中(解碼疊代1,如附圖標號1311所示),對進行LDPC解碼所採用的一個或多個操作參數應用第一操作參數修改(如附圖標號1321所示)。
在第二次解碼疊代過程中(解碼疊代2,如附圖標號1312所示),對進行LDPC解碼所採用的一個或多個操作參數應用第二操作參數修改(如附圖標號1322所示)。
在第三次解碼疊代過程中(解碼疊代3,如附圖標號1313所示),沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1323所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在第n次解碼疊代過程中(解碼疊代n,如附圖標號1319所示),對進行LDPC解碼所採用的一個或多個操作參數應用第m操作參數修改 (如附圖標號1329所示)。
圖14、圖15、圖16、圖17和圖18示出了作為依據LDPC解碼進行的解碼疊代的一個功能的操作參數修改的各個實施例。
參見圖14的實施例1400,在第一多個解碼疊代過程中(解碼疊代1到a,如附圖標號1411所示),對進行LDPC解碼所採用的一個或多個操作參數應用第一操作參數修改(如附圖標號1421所示)。
在第二多個解碼疊代過程中(解碼疊代a+1到b,如附圖標號1412所示),對進行LDPC解碼所採用的一個或多個操作參數應用第二操作參數修改(如附圖標號1422所示)。
在第三多個解碼疊代過程中(解碼疊代b+1到c,如附圖標號1413所示),沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1423所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在最後多個解碼疊代過程中(解碼疊代z-y到z,如附圖標號1419所示),對進行LDPC解碼所採用的一個或多個操作參數應用第m操作參數修改(如附圖標號1429所示)。
雖然圖13和圖14的實施例一般性地描述了執行操作參數修改的一些可能的方式,以下的實施例給出了更具體的描述以幫助讀者理解本發明。圖15的實施例的操作也可應用於在第一多個解碼疊代、第二多個解碼疊代等等中的每次疊代過程中採用不同的操作參數修改的實施例而不脫離本發明的保護範圍和精神實質。
參見圖15的實施例1500,在第一次解碼疊代過程中(解碼疊代1,如附圖標號1511所示),使用第一縮放參數對位元邊消息進行縮放(如附圖標號1521所示)。同樣,通過減去第一值修改LLR,如附圖標號1531所示。又,位元邊消息經歷壓縮(在被傳送以用於校驗節點處理之前),然後經歷解壓縮(例如,擴張)以恢復出校驗節點處理內的位元邊消息,如附圖標號1541所示。壓縮/解壓縮的方法是一種針對每個位元邊消息傳遞較少的資訊從而有利於減少記憶體管理需求及處理功耗等的方法。
在第二次解碼疊代過程中(解碼疊代2,如附圖標號1512所示),使用第二縮放參數對校驗邊消息進行縮放,如附圖標號1522所示。又,位元邊消息經歷壓縮(在被傳送以用於校驗節點處理之前),然後經歷解壓縮(例如,擴張)以恢復出校驗節點處理內的位元邊消息,如附圖標號1542所示。
在第三次解碼疊代過程中(解碼疊代3,如附圖標號1513所示),除了位元邊消息經歷壓縮(在被傳送以用於校驗節點處理之前)然後經歷解壓縮(例如,擴張)以恢復出校驗節點處理內的位元邊消息(如附圖標號1543所示)之外,沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1523所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在第n次解碼疊代過程中(解碼疊代n,如附圖標號1519所示),使用第三縮放參數對校驗邊消息進行縮放,如附圖標號1529所示。又,這次疊代中經過縮放的校驗邊消息然後又經歷操作參數修改,即,將第二值加入縮放後的校驗邊消息中,如附圖標號1539所示。位元邊消息經歷壓縮(在被傳送以用於校驗節點處理之前),然後經歷解壓縮(例如,擴張)以恢復出校驗節點處理內的位元邊消息,如附圖標號1549所示。
參見圖16的實施例1600,基於時鐘周期執行操作參數修改(例如,與前述實施例中的以解碼疊代為基礎或以多次解碼疊代為基礎相對)。在第一時鐘周期中(時鐘周期1,如附圖標號1611所示),對進行LDPC解碼所採用的一個或多個操作參數應用第一操作參數修改(如附圖標號1621所示)。
在第二時鐘周期中(時鐘周期2,如附圖標號1612所示),對進行LDPC解碼所採用的一個或多個操作參數應用第二操作參數修改(如附圖標號1622所示)。
在第三時鐘周期中(時鐘周期3,如附圖標號1613所示),沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1623所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在第n 時鐘周期中(時鐘周期n,如附圖標號1619所示),對進行LDPC解碼所採用的一個或多個操作參數應用第m操作參數修改(如附圖標號1629所示)。
參見圖17的實施例1700,基於多個時鐘周期執行操作參數修改(例如,與前述實施例中的以解碼疊代為基礎、以多次解碼疊代為基礎或僅僅以單個時鐘周期為基礎相對)。在第一多個時鐘周期中(時鐘周期1到a,如附圖標號1711所示),對進行LDPC解碼所採用的一個或多個操作參數應用第一操作參數修改(如附圖標號1721所示)。
在第二多個時鐘周期中(時鐘周期a+1到b,如附圖標號1712所示),對進行LDPC解碼所採用的一個或多個操作參數應用第二操作參數修改(如附圖標號1722所示)。
在第三多個時鐘周期中(時鐘周期b+1到c,如附圖標號1713所示),沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1723所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在最後多個時鐘周期中(時鐘周期z-y到z,如附圖標號1719所示),對進行LDPC解碼所採用的一個或多個操作參數應用第m操作參數修改(如附圖標號1729所示)。
需要注意,圖17中表示為"a、b、c、y、z"的與“時鐘周期”相關的變數,實際上其值可與圖14中表示為"a、b、c、y、z"的與“疊代”相關的變數的值不同。
參見圖18所示的實施例1800,基於子疊代(sub-iteration)執行操作參數修改。在這種情況下,子疊代可看作是校驗節點處理或位元節點處理(例如,變數節點處理)。在第一次子疊代過程中(例如校驗節點處理子疊代,如附圖標號1811所示),對進行LDPC解碼所採用的一個或多個操作參數應用第一操作參數修改(如附圖標號1821所示)。
在第二子疊代過程中(例如位元節點處理子疊代,如附圖標號1812所示),對進行LDPC解碼所採用的一個或多個操作參數應用 第二操作參數修改(如附圖標號1822所示)。
需要注意,第一子疊代(校驗節點處理1811)和第二子疊代(位元節點處理1812)構成一次解碼疊代1801。
在第三子疊代過程中(例如校驗節點處理子疊代,如附圖標號1813所示),沒有對進行LDPC解碼所採用的任何操作參數應用任何操作參數修改(如附圖標號1823所示)。
該疊代解碼處理繼續進行其他的解碼疊代操作,然後,在最後子疊代過程中(例如,如果位元節點處理子疊代剛剛完成,則是校驗節點處理子疊代;或者若校驗節點處理子疊代剛剛完成,則是位元節點處理子疊代,如附圖標號1819所示),對進行LDPC解碼所採用的一個或多個操作參數應用第m操作參數修改(如附圖標號1829所示)。
圖19示出了處理LDPC編碼信號的方法1900,其涉及操作參數修改。方法1900一開始接收連續時間信號,如步驟1910所示。連續時間信號的接收和處理還包括對第一連續時間信號執行任何必需的下變頻轉換,從而生成第二連續時間信號,如步驟1912所示。需要執行的任何頻率轉換可通過從載波頻率到基帶頻率的直接轉換來執行。這一頻率轉換還可通過IF(中頻)來執行。不管哪個實施例中,在執行此方法時,接收的連續時間信號都被降頻到基帶連續時間信號。此外,還可對接收的連續時間信號執行某些類型的增益調節/增益控制。
方法1900還採樣第一(或第二)連續時間信號從而生成連連續時間信號並從中提取出I、Q成分,如步驟1920所示。這一採樣可使用ADC(模數轉換器)或等效的手段來執行,以從經過合適的降頻轉換(可能的話,還經過濾波、增益調節等等)的連續時間信號生成離散時間信號。該離散時間信號的各個採樣樣本的I、Q成分也在這個步驟中提取出來。然後方法1900解調I、Q成分並執行I、Q成分的符號映射(例如映射到具有星座點分佈圖的星座圖形),從而生成離散值調製符號序列,如步驟1930所示。
方法1900的下一步驟執行邊消息的更新,直到滿足停止條件 (例如,預定的疊代次數,直到所有校正子都等於零,或直到滿足某些其他的停止條件),如步驟1940所示。這一步驟可看作是依據前述的各個實施例執行LDPC解碼。該LDPC解碼一般包括用於更新位元邊消息(例如,變數邊消息)的位元引擎處理(如步驟1942所示)以及用於更新校驗邊消息的校驗引擎處理(如步驟1944所示)。此外,方法1900的LDPC解碼還包括修改用於位元邊消息、校驗邊消息和/或LLR的至少一個操作參數,如步驟1946所示。步驟1946的修改可以是依據各種方式進行的任何修改,該方式包括縮放、增加第一偏移量和/或減去第二偏移量、壓縮、擴張和/或一些其他方式。
停止條件滿足之後,方法1900基於對應于最近更新的位元邊消息的軟資訊做出硬決策,如步驟1950所示。最後方法1900輸出從接收的連續時間信號中提取出的LDPC編碼位元(LDPC碼字,或LDPC碼塊)(其包含有資訊位元)的最佳估計值,如步驟1960所示。
在本申請所公開的內容中,需要注意的是,一旦低密度奇偶校驗矩陣H 可用於通信通道接收端的解碼處理,便可從該低密度奇偶校驗矩陣H 中直接生成LDPC碼的對應的生成矩陣G 。有了這一資訊,設計者便可在通信通道的發送端執行編碼處理(使用LDPC碼的生成矩陣G ),並在該通信信號的接收端執行解碼處理(使用LDPC碼的低密度奇偶校驗矩陣H )。實際上,從低密度奇偶校驗矩陣H 中直接定義LDPC碼是現有技術中常用的。換句話說,低密度奇偶校驗矩陣H 包含有定義LDPC碼所需的所有資訊。
圖20、圖21和圖22示出了涉及操作參數修改的處理LPDC編碼信號的方法的各個不同實施例。
參見圖20所示的方法2000,方法2000在步驟2010中接收LLR。然後,方法2000使用該LLR初始化位元邊消息,如步驟2020所示。方法2000在步驟2030中通過採用該初始化的位元邊消息執行校驗節點處理,以更新校驗邊消息。
步驟2040中,方法2000修改更新後的校驗邊消息(例如,使 用縮小和/或增加第一值或減去第二值等等),然後傳送該修改且更新後的校驗邊消息以用於位元節點處理。
步驟2050中,方法2000通過採用該修改且更新後的校驗邊消息執行位元節點處理,以更新位元邊消息。這還包括採用LLR執行位元節點處理以更新位元邊消息,如步驟2052所示。此外,若步驟2040的修改中校驗邊消息經過了壓縮,那麽步驟2054中,方法2000還包括在用這些校驗邊消息更新位元邊消息之前先對其解壓縮(例如,擴張)。
步驟2060中,方法2000還採用最近更新的位元邊消息執行校驗節點處理,以更新校驗邊消息。
參見圖21所示的方法2100,方法2100在步驟2110中接收LLR。然後,方法2100使用該LLR初始化位元邊消息,如步驟2120所示。方法2100在步驟2130中通過採用該初始化的位元邊消息執行校驗節點處理,以更新校驗邊消息。
步驟2140中,方法2000通過採用該更新後的校驗邊消息執行位元節點處理,以更新位元邊消息。這還包括採用LLR執行位元節點處理以更新位元邊消息,如步驟2142所示。
然後,步驟2150中,方法2100修改更新後的位元邊消息(例如,使用縮小和/或增加第一值或減去第二值等等),然後傳送該修改且更新後的位元邊消息以用於校驗節點處理。
步驟2160中,方法2100還採用最近修改且更新後的位元邊消息執行校驗節點處理,以更新校驗邊消息。
此外,若步驟2150的修改中位元邊消息經過了壓縮,那麽步驟2162中,方法2100還包括在用這些位元邊消息更新校驗邊消息之前先對其解壓縮(例如,擴張)。
參見圖22所示的方法2200,方法2200在步驟2210中接收LLR。然後,方法2200使用該LLR初始化位元邊消息,如步驟2220所示。然後,步驟2230中,方法2200修改初始化的位元邊消息(例如,使用縮小和/或增加第一值或減去第二值等等),然後傳送該修改且初始化後的位元邊消息以用於校驗節點處理。
方法2200在步驟2240中通過採用該修改且初始化後的位元邊消息執行校驗節點處理,以更新校驗邊消息。若步驟2230的修改中該修改且初始化後的位元邊消息經過了壓縮,那麽步驟2242中,方法2200還包括在用其更新校驗邊消息之前先解壓縮(例如,擴張)這些修改且初始化後的位元邊消息。
步驟2250中,方法2200修改更新後的校驗邊消息(例如,使用縮小和/或增加第一值或減去第二值等等),然後傳送該修改且更新後的校驗邊消息以用於位元節點處理。
步驟2260中,方法2200通過採用該修改且更新後的校驗邊消息執行位元節點處理,更新位元邊消息。這還包括採用LLR執行位元節點處理以更新位元邊消息,如步驟2262所示。或者,步驟2260中還可修改LLR然後用其進行位元節點處理以更新位元邊消息,如步驟2266所示。若步驟2250的修改中該修改後的校驗邊消息經過了壓縮,那麽步驟2264中,方法2200還包括在用其更新位元邊消息之前先解壓縮(例如,擴張)這些修改後的校驗邊消息。
步驟2270中,方法2200還採用最近修改且更新後的位元邊消息執行校驗節點處理,以更新校驗邊消息。
還要注意的是,圖19至圖22中的實施例只是可依據本發明實現的一些可能的實施例的示例。這些實施例並非是窮盡的,還可實現這些實施例的各種變形而不脫離本發明的保護範圍和精神實質。
圖23至圖27示出了執行操作參數修改的方法的各個實施例,其中操作參數修改是根據LDPC解碼進行的解碼疊代的一個功能。
參見圖23所示的方法2300,步驟2310中,方法2300在第一次解碼疊代過程中,使用第一操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。然後,步驟2320中,方法2300在第二次解碼疊代過程中,使用第二操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/ 或校驗邊消息。步驟2330中,方法2300還在第三次解碼疊代過程中,使用第三操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。
參見圖24所示的方法2400,步驟2410中,方法2400在第一多個解碼疊代過程中,使用第一操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。然後,步驟2420中,方法2400在第二多個解碼疊代過程中,使用第二操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。然後,步驟2430中,方法2400還在第三多個解碼疊代過程中,使用第三操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。
參見圖25所示的方法2500,步驟2510中,方法2500在第一時鐘周期中,使用第一操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。然後,步驟2520中,方法2500在第二時鐘周期中,使用第二操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。步驟2530中,方法2500還在第三時鐘周期中,使用第三操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。
參見圖26所示的方法2600,步驟2610中,方法2600在第一多個時鐘周期中,使用第一操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。然後,步驟2620中,方法2600在第二多個時鐘周期中,使用第二操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。步驟2630中,方法2600還在第三多個時鐘周期中,使用第三操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。
參見圖27所示的方法2700,步驟2710中,方法2700在第一子疊代(例如,校驗節點處理)過程中,使用第一操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊 消息。然後,步驟2720中,方法2700在第二子疊代(例如,位元節點處理)過程中,使用第二操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。步驟2730中,方法2700還在第三子疊代(例如,校驗節點處理)過程中,使用第三操作參數修改(可包括一個或多個操作參數修改)修改LLR、位元邊消息和/或校驗邊消息。
以下描述的一些實施例意味著,在較寬的操作信噪比(SNR)範圍內,能夠減少(例如,通過壓縮)表達消息所需的位元數量而又很少或不損失編碼性能。這是通過優化解碼處理的每個階段的固定點形式以匹配動態範圍需求並改變各次疊代中的解碼處理屬性來實現的。
圖28示出了一個實施例中依據LDPC解碼的校驗節點量度(check note magnitude)更新功能2800。實施例2800對校驗節點量度更新處理提出了一些改進。這個實施例2800中,用於表示從位元節點(例如,變數節點)發送到校驗節點的位元邊消息的位元的數量表示為w vc 。每個校驗節點內使用的表示每個校驗邊消息的位元的數量為w c 。用於表示送回位元節點(例如,變數節點)的校驗邊消息的位元的數量為w cv
校驗輸入函數近似於以下等式(7),其中的下標表示用於表達函數輸入和輸出的位元的數量。為了減少輸入消息精確度,可近似計算等式(7)使得w c >>w vc
校驗輸出函數近似於以下等式(8)。為了減少輸出消息的請確度,可近似計算等式(8)以便w c >>w cv
若需要,可選擇對等式(7)和等式(8)的近似計算,以使得w c >>w vc =w vc
該校驗輸入和輸出函數可實現為查找表或直接以邏輯門實現。
導致非常有效的邏輯門實現的校驗輸入函數和校驗輸出函數的一種近似法是如下描述的“2的冪(power of two)”函數。例如,若w vc =w vc =3 位元,且wc =8 位元,等式(7)按如下表1逼近,等式(8)按如下表2逼近。
校驗邊消息的壓縮可使用表1所示的2的冪的方法來執行(例如,執行校驗節點處理之前)。隨後的更新後的校驗邊消息的解壓縮/擴張可使用表2所示的2的冪的方法來執行(例如,執行校驗節點處理之後且傳送這些更新後的校驗邊消息以用於位元節點處理之前)。
此外,以上描述的校驗輸入和輸出函數逼近法在圖29中示出。
圖30示出了依據LDPC解碼的位元(例如,變數)節點更新功能的實施例3000。實施例3000對位元(例如,變數)節點更新處理提出了一些改進。這個實施例3000中,用於表示從校驗節點發送到位元節點(例如,變數節點)的校驗邊消息的位元的數量表示為w cv 。每個位元節點內使用的表示每個位元邊消息的位元的數量為w v 。用於表示送回校驗節點的位元邊消息的位元的數量為w vc
輸入縮放用於縮放從校驗節點發送到位元節點的校驗邊消息。此外,接收的值(例如,從接收的信號計算出的LLR)內也執行縮放。輸出縮放用於縮放從位元節點送回校驗節點的更新後的位元邊消息。
以上結合圖28(以及圖29中改進的功效)描述的實施例和實現方案的技術效果是明顯地降低解碼器實現複雜度,但在某些情況下又會導致解碼性能的損失。
為了在使用或不使用圖28(以及圖29)的實施例和實現方案的情況下進一步改善解碼性能,LDPC解碼處理可在其進行疊代時執行操作參數修改。例如,LDPC解碼處理可基於每次疊代、基於多個疊代、基於每個時鐘周期、基於多個時鐘周期和/或基於每個子疊代,依據以下任意操作或全部操作或其各種結合來改變解碼處理:
1、在校驗節點更新時改變校驗輸入函數
2、在校驗節點更新時改變校驗輸出函數
3、在變數節點更新時(例如,位元節點更新)改變輸入消息的縮放;
4、在變數節點更新時(例如,位元節點更新)改變輸出消息的縮放;
5、在變數節點更新時(例如,位元節點更新)改變接收的對數似然比值的縮放;
6、給任意校驗或變數節點消息加入或減去一個數
7、改變變數節點(例如,位元節點)決策邏輯
8、基於每次疊代、基於多個疊代、基於每個時鐘周期、基於多個時鐘周期和/或基於每個子疊代單獨地修改這些操作參數中的任意一個(例如,這些操作參數可以全部以相同或不同的方式進行修改)
9.a、以不同的方式修改不同的變數節點(例如,位元節點)更新
9.b、以不同的方式修改不同的校驗節點更新
需要注意的是,本申請中所描述的各個模組(例如,編碼模組、解碼模組、位元引擎、校驗引擎等)可以是單個處理設備或多個處理設備。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。操作指令可存儲在記憶體中。該記憶體可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。這樣的實施例中,記憶體存儲操作指令,處理模組連接至記憶體以執行操作指令,該操作指令對應於以上描述的步驟和/或功能中的至少一部分。
本發明通過借助方法步驟展示了本發明的特定功能及其關係。所述方法步驟的範圍和順序是為了便於描述任意定義的。只要能夠執行特定的功能和順序,也可應用其他界限和順序。任何所述或選的界限或順序因此落入本發明的範圍和精神實質。
本發明還借助功能模組對某些重要的功能進行了描述。所述功能模組的界限和各種功能模組的關係是為了便於描述任意定義的。只要能夠執行特定的功能,也可應用其他的界限或關係。所述其他的界限或關係也因此落入本發明的範圍和精神實質。
本領域普通技術人員還可知,本申請中的功能模組和其他展示性模組和元件可實現為離散元件、專用積體電路、執行恰當軟體的處理器和前述的任意組合。
此外,儘管以上是通過一些實施例對本發明進行的描述,本領域技術人員知悉,本發明不局限於這些實施例,在不脫離本發明的精神和範圍的情況下,可以對這些特徵和實施例進行各種改變或等效替換。本發明的保護範圍僅由本申請的申請專利範圍來 限定。
401‧‧‧從通信通道接收的連續時間信號
410‧‧‧AFE(採樣、濾波、增益調整等)
411‧‧‧數位/基帶/離散時間信號
420‧‧‧度量生成器(例如LLR)
421‧‧‧位元度量/ILR
430‧‧‧位元引擎(例如,變數引擎)
431‧‧‧位元邊消息
432‧‧‧軟資訊
435‧‧‧迭代解碼處理
440‧‧‧校驗引擎
441‧‧‧校驗邊消息
450‧‧‧硬限幅器
451‧‧‧硬/最佳估計
460‧‧‧校正子計算器

Claims (10)

  1. 一種解碼LDPC編碼信號的解碼器,其特徵在於,所述解碼器包括:校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:縮放所述第二校驗邊消息從而生成縮放後的第二校驗邊消息;採用所述縮放後的第二校驗邊消息更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
  2. 如申請專利範圍第1項所述的解碼器,其中,所述校驗引擎還縮放第四位元邊消息從而生成縮放後的第四位元邊消息;以及採用所述縮放後的第四位元邊消息更新第三校驗邊消息,從而生成第四校驗邊消息。
  3. 如申請專利範圍第1項所述的解碼器,其中,在第一次解碼疊代過程中,所述位元引擎依據第一縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息;且在第二次解碼疊代過程中,所述位元引擎依據第二縮放參數縮放第三校驗邊消息從而生成縮放後的第三校驗邊消息。
  4. 如申請專利範圍第1項所述的解碼器,其中,在第一時鐘周期中,所述位元引擎依據第一縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息;且在第二時鐘周期中,所述位元引擎依據第二縮放參數縮放第三校驗邊消息從而 生成縮放後的第三校驗邊消息。
  5. 如申請專利範圍第1項所述的解碼器,其中,在解碼疊代的第一子疊代過程中,所述校驗引擎依據第一縮放參數縮放所述第一位元邊消息;且在解碼疊代的第二子疊代過程中,所述位元引擎依據第二縮放參數縮放所述第二校驗邊消息從而生成所述縮放後的第二校驗邊消息。
  6. 如申請專利範圍第1項所述的解碼器,其中,在第一次解碼疊代過程中,所述校驗引擎依據第一縮放參數縮放所述第一位元邊消息;且在第二次解碼疊代過程中,所述校驗引擎依據第二縮放參數縮放所述第三位元邊消息。
  7. 一種解碼LDPC編碼信號的解碼器,其特徵在於,所述解碼器包括:校驗引擎,其:採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;通過執行給所述第二校驗邊消息增加一個值或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息;以及位元引擎,其:接收所述修改後的第二校驗邊消息;若修改後的第二校驗邊消息已由校驗引擎進行了壓縮,解壓縮所述修改後的第二校驗邊消息從而生成解壓縮且修改後的第二校驗邊消息;採用所述修改後的第二校驗邊消息或所述解壓縮且修改後的第二校驗邊消息來更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中: 所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
  8. 一種解碼LDPC編碼信號的解碼器,其特徵在於,所述解碼器包括:校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:通過執行給所述第二校驗邊消息增加一個值或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和解壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息;採用所述修改後的第二校驗邊消息來更新第二位元邊消息,從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
  9. 一種解碼LDPC編碼信號的方法,其特徵在於,所述方法包括:通過採用第一位元邊消息更新第一校驗邊消息從而生成第二校驗邊消息來執行校驗節點處理;通過執行給所述第二校驗邊消息增加或減去一個值、縮放所述第二校驗邊消息、對所述第二校驗邊消息進行移位元、對所述第二校驗邊消息捨入、和解壓縮所述第二校驗邊消息中的至少一個操作,修改所述第二校驗邊消息從而生成修改後的第二校驗邊消息; 採用所述修改後的第二校驗邊消息來更新第二位元邊消息從而生成第三位元邊消息來執行位元節點處理;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;使用所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計。
  10. 如申請專利範圍第9項所述的方法,其中,所述值是第一值;所述方法進一步包括:通過給所述第一位元邊消息增加或減去第二值和縮放所述第一位元邊消息中的至少一個操作來修改所述第一位元邊消息,從而生成修改後的第一位元邊消息;通過採用所述修改後的第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息來執行校驗節點處理。
TW097116785A 2007-05-07 2008-05-07 解碼ldpc編碼信號的解碼器及方法 TWI400890B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92795607P 2007-05-07 2007-05-07
US11/807,885 US8151171B2 (en) 2007-05-07 2007-05-30 Operational parameter adaptable LDPC (low density parity check) decoder

Publications (2)

Publication Number Publication Date
TW200913509A TW200913509A (en) 2009-03-16
TWI400890B true TWI400890B (zh) 2013-07-01

Family

ID=39720186

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097116785A TWI400890B (zh) 2007-05-07 2008-05-07 解碼ldpc編碼信號的解碼器及方法

Country Status (6)

Country Link
US (2) US8151171B2 (zh)
EP (1) EP1990921A3 (zh)
KR (1) KR20080099191A (zh)
CN (2) CN102098060B (zh)
HK (1) HK1158391A1 (zh)
TW (1) TWI400890B (zh)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
TWI390856B (zh) * 2007-11-26 2013-03-21 Sony Corp Data processing device and data processing method
US8219878B1 (en) 2007-12-03 2012-07-10 Marvell International Ltd. Post-processing decoder of LDPC codes for improved error floors
US8738841B2 (en) 2007-12-27 2014-05-27 Sandisk Enterprise IP LLC. Flash memory controller and system including data pipelines incorporating multiple buffers
US8230312B1 (en) 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
JP5276173B2 (ja) * 2008-08-15 2013-08-28 エルエスアイ コーポレーション ニア・コードワードのromリスト復号
KR101473046B1 (ko) 2009-03-05 2014-12-15 엘에스아이 코포레이션 반복 복호기들을 위한 개선된 터보-등화 방법들
CN102077173B (zh) 2009-04-21 2015-06-24 艾格瑞系统有限责任公司 利用写入验证减轻代码的误码平层
US8675693B2 (en) * 2009-04-27 2014-03-18 Qualcomm Incorporated Iterative decoding with configurable number of iterations
CN101594152B (zh) * 2009-07-03 2013-05-08 清华大学 实现水平运算和垂直运算同时运行的ldpc码译码方法
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US9362933B1 (en) 2011-07-12 2016-06-07 Marvell International Ltd. Noise-predictive detector adaptation with corrected data
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US8543891B2 (en) * 2011-09-21 2013-09-24 Apple Inc. Power-optimized decoding of linear codes
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8996952B2 (en) 2012-01-04 2015-03-31 Marvell World Trade Ltd. High-throughput iterative decoding's defect scan in retry mode of storage system channel
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US10797728B1 (en) * 2012-07-25 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
US9064575B2 (en) * 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8649118B1 (en) 2012-09-25 2014-02-11 Lsi Corporation Pattern-dependent LLR manipulation
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9231619B2 (en) * 2013-02-04 2016-01-05 SK Hynix Inc. LDPC decoder with a variable node updater which uses a scaling constant
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9513989B2 (en) 2013-03-26 2016-12-06 Seagate Technology Llc Priori information based post-processing in low-density parity-check code decoders
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
WO2015035550A1 (en) * 2013-09-10 2015-03-19 Qualcomm Incorporated Method and apparatus of 128-dsq de-mapping in 10gbase-t system
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
KR102265220B1 (ko) 2015-03-09 2021-06-16 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10374639B2 (en) 2016-12-06 2019-08-06 Western Digital Technologies, Inc. Adaptive bit-flipping decoder based on dynamic error information
US10284233B2 (en) 2016-12-06 2019-05-07 Western Digital Technologies, Inc. ECC adjustment based on dynamic error information
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
CN109308928B (zh) * 2017-07-28 2020-10-27 华邦电子股份有限公司 存储器装置的行解码器
KR102415974B1 (ko) 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
CN109361403A (zh) * 2018-08-06 2019-02-19 建荣半导体(深圳)有限公司 Ldpc译码方法、ldpc译码器及其存储设备
CN116436474B (zh) * 2023-06-13 2023-11-17 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种信道编解码方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200534600A (en) * 2004-01-12 2005-10-16 Intel Corp Method and apparatus for decoding forward error correction codes
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
TW200614684A (en) * 2004-04-05 2006-05-01 Broadcom Corp LDPC(low density parity check) coded signal decoding using parallel and simultaneous bit node and check node processing
TW200623651A (en) * 2004-05-03 2006-07-01 Broadcom Corp Decoding LDPC (Low Density Parity Check) code and graphs using multiplication (or addition in log-domain) on both sides of bipartite graph
US20060282742A1 (en) * 2005-05-20 2006-12-14 Juntan Zhang 2D-normalized min-sum decoding for ECC codes

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
CN1008316B (zh) * 1985-05-08 1990-06-06 索尼公司 纠错码的译码方法和系统
JPH0895710A (ja) * 1994-09-26 1996-04-12 Fujitsu Ltd Adコンバータの制御装置及び制御方法
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6567465B2 (en) 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7246304B2 (en) 2001-09-01 2007-07-17 Dsp Group Inc Decoding architecture for low density parity check codes
KR100891782B1 (ko) 2002-06-11 2009-04-07 삼성전자주식회사 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
KR20040101743A (ko) * 2003-05-26 2004-12-03 삼성전자주식회사 통신 시스템에서 저밀도 패리티 검사 코드의 복호 장치 및방법
US7174495B2 (en) * 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
US8196025B2 (en) * 2005-08-03 2012-06-05 Qualcomm Incorporated Turbo LDPC decoding
US8151171B2 (en) * 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200534600A (en) * 2004-01-12 2005-10-16 Intel Corp Method and apparatus for decoding forward error correction codes
TW200614684A (en) * 2004-04-05 2006-05-01 Broadcom Corp LDPC(low density parity check) coded signal decoding using parallel and simultaneous bit node and check node processing
TW200623651A (en) * 2004-05-03 2006-07-01 Broadcom Corp Decoding LDPC (Low Density Parity Check) code and graphs using multiplication (or addition in log-domain) on both sides of bipartite graph
US20060085720A1 (en) * 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
US20060282742A1 (en) * 2005-05-20 2006-12-14 Juntan Zhang 2D-normalized min-sum decoding for ECC codes

Also Published As

Publication number Publication date
CN101388746B (zh) 2012-06-27
CN102098060B (zh) 2013-09-04
EP1990921A3 (en) 2013-05-22
US20080282129A1 (en) 2008-11-13
KR20080099191A (ko) 2008-11-12
US8683303B2 (en) 2014-03-25
CN101388746A (zh) 2009-03-18
HK1158391A1 (en) 2012-07-13
EP1990921A2 (en) 2008-11-12
US8151171B2 (en) 2012-04-03
TW200913509A (en) 2009-03-16
CN102098060A (zh) 2011-06-15
US20120198301A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
TWI400890B (zh) 解碼ldpc編碼信號的解碼器及方法
TWI406508B (zh) 解碼ldpc編碼信號的解碼器
US9075738B2 (en) Efficient LDPC codes
US8341492B2 (en) Quasi-cyclic LDPC (low density parity check) code construction
US8010869B2 (en) Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
KR101093313B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
US8230298B2 (en) Overlapping sub-matrix based LDPC (low density parity check) decoder
US8392787B2 (en) Selective merge and partial reuse LDPC (Low Density Parity Check) code construction for limited number of layers Belief Propagation (BP) decoding
US8291292B1 (en) Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes
US20090013239A1 (en) LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
US8245119B2 (en) Source-channel approach to channel coding with side information
US8386906B2 (en) Multi-CSI (cyclic shifted identity) sub-matrix based LDPC (low density parity check) codes
US20180351585A1 (en) Non-concatenated fec codes for ultra-high speed optical transport networks
CN110830050B (zh) 一种ldpc译码方法、系统、电子设备及存储介质
TWI407703B (zh) 解碼器
WO2020008005A1 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
Karimi‐Lenji et al. A high‐performance belief propagation decoding algorithm for codes with short cycles
Paulissen et al. Reducing the Error Floor of the Sign-Preserving Min-Sum LDPC Decoder via Message Weighting of Low-Degree Variable Nodes
WO2002037731A2 (en) Decoding of low density parity check codes

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees