欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

生成ldpc碼的方法以及采用該ldpc碼的裝置的制作方法

文檔序號(hào):7538591閱讀:376來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):生成ldpc碼的方法以及采用該ldpc碼的裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及糾錯(cuò)碼技術(shù)領(lǐng)域,具體涉及一種用于生成線(xiàn)性糾錯(cuò)碼LDPC碼(低密度奇偶校驗(yàn)碼)的方法以及采用該方法的裝置。
背景技術(shù)
LDPC(Low Density Parity Check)碼是一種具有稀疏校驗(yàn)矩陣的線(xiàn)性糾錯(cuò)碼。因其具有逼近“香農(nóng)限(Shannon Limit)”、系統(tǒng)復(fù)雜度低和易于實(shí)現(xiàn)的優(yōu)點(diǎn),在數(shù)字通信領(lǐng)域中,尤其是在采用正交頻分復(fù)用技術(shù)的無(wú)線(xiàn)通信領(lǐng)域中,LDPC碼已經(jīng)展露出良好的應(yīng)用前景。
由于利用LDPC碼所形成的校驗(yàn)矩陣,不僅可用于對(duì)接收端收到的經(jīng)過(guò)編碼的信息進(jìn)行譯碼,還可通過(guò)特定的轉(zhuǎn)換,例如通過(guò)高斯消元而得到生成矩陣,該生成矩陣可用于對(duì)來(lái)自發(fā)送端的信息進(jìn)行編碼。因此,在當(dāng)前有關(guān)LDPC碼的研究中,多數(shù)的技術(shù)方案都是圍繞著LDPC碼編碼器或LDPC碼譯碼器提出的。
在所提出的LDPC碼編碼器中,例如一種采用準(zhǔn)循環(huán)LDPC碼(quasi-cyclic LDPC codes)的編碼器,由于采用了數(shù)字反饋移位寄存器的形式進(jìn)行編碼,因而該LDPC碼編碼器的復(fù)雜度得到降低。然而,當(dāng)采用由該LDPC碼得到的校驗(yàn)矩陣進(jìn)行譯碼時(shí),卻不能達(dá)到期望的吞吐量(throughput)。這里,吞吐量與編碼率(code rate)、譯碼器中設(shè)置的迭代次數(shù)和采用的時(shí)鐘頻率以及選擇的譯碼電路的并行度有關(guān)。
而在所提出的LDPC碼譯碼器中,例如一種采用并行結(jié)構(gòu)的LDPC碼譯碼器,由于消除了對(duì)同一個(gè)存儲(chǔ)器進(jìn)行尋址以存儲(chǔ)同時(shí)計(jì)算出的數(shù)據(jù)而產(chǎn)生的沖突,因而該LDPC碼譯碼器的吞吐量得到了有效的提高。但是,當(dāng)采用該LDPC碼得到的生成矩陣進(jìn)行編碼時(shí),卻導(dǎo)致了編碼器的設(shè)計(jì)異常復(fù)雜。
因此,如何構(gòu)造一個(gè)合適的LDPC碼,既能夠發(fā)揮LDPC碼糾錯(cuò)能力強(qiáng)的優(yōu)勢(shì),又能夠兼顧編碼的復(fù)雜度和譯碼的吞吐量?jī)蓚€(gè)方面的性能,正在成為目前關(guān)于LDPC碼研究中的熱點(diǎn)問(wèn)題。

發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種用于生成LDPC碼的方法,該方法能夠根據(jù)期望的吞吐量,靈活地設(shè)計(jì)LDPC碼,從而既能夠顯著地提高譯碼器的譯碼速率,又不會(huì)增加LDPC碼編碼器的復(fù)雜度。
本發(fā)明的又一個(gè)目的是提供一種用于LDPC碼譯碼器的方法,該方法充分地利用了譯碼電路中的并行度,既保證了高速的譯碼速率,又節(jié)省了譯碼器中硬件資源的消耗。
本發(fā)明的再一個(gè)目的是提供一種用于LDPC碼編碼器的方法,該方法在確保達(dá)到預(yù)期的吞吐量的前提下,進(jìn)一步降低了LDPC碼編碼器的復(fù)雜度。
按照本發(fā)明的一種用于生成LDPC碼的方法,包括步驟根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;選擇一個(gè)并行度因子;根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成該LDPC碼。
按照本發(fā)明的一種編碼方法,該方法采用的編碼由一種LDPC碼得到的矩陣形成,其中,用于生成該LDPC碼的方法,包括步驟根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;選擇一個(gè)并行度因子;根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該編碼方法,還包括步驟通過(guò)執(zhí)行矩陣運(yùn)算,以使得構(gòu)成該LDPC碼的矩陣的右上角出現(xiàn)一個(gè)對(duì)角陣;利用具有該對(duì)角陣的LDPC碼,對(duì)欲發(fā)送的數(shù)據(jù)進(jìn)行編碼。
按照本發(fā)明的一種譯碼方法,該方法采用的譯碼由一種LDPC碼得到的校驗(yàn)矩陣形成,其中,用于生成該LDPC碼的方法,包括步驟根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;選擇一個(gè)并行度因子;根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該譯碼方法,還包括步驟利用構(gòu)成該LDPC碼的矩陣,得到一個(gè)校驗(yàn)矩陣;采用該校驗(yàn)矩陣,對(duì)接收的數(shù)據(jù)進(jìn)行譯碼。
按照本發(fā)明的一種編碼器,該編碼器采用的編碼由一種LDPC碼得到的矩陣形成,其中,形成該編碼的模塊具有一個(gè)用于生成該LDPC碼的模塊該LDPC碼生成模塊,根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;根據(jù)選擇的并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;和根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該形成編碼的模塊,對(duì)LDPC碼生成模塊所形成的構(gòu)成該LDPC碼的矩陣執(zhí)行矩陣運(yùn)算,以使得構(gòu)成該LDPC碼的矩陣的右上角出現(xiàn)一個(gè)對(duì)角陣;并利用具有該對(duì)角陣的LDPC碼,對(duì)欲發(fā)送的數(shù)據(jù)進(jìn)行編碼。
按照本發(fā)明的一種譯碼器,該譯碼器采用的譯碼由一種LDPC碼得到的校驗(yàn)矩陣形成,其中,形成該譯碼的模塊具有一個(gè)用于生成該LDPC碼的模塊該LDPC碼生成模塊,根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;根據(jù)選擇的并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該形成譯碼的模塊,利用構(gòu)成該LDPC碼的矩陣,得到一個(gè)校驗(yàn)矩陣;采用該校驗(yàn)矩陣,對(duì)接收的數(shù)據(jù)進(jìn)行譯碼。
通過(guò)參考以下結(jié)合附圖的說(shuō)明以及權(quán)利要求書(shū)中的內(nèi)容,并且隨著對(duì)本發(fā)明的更全面的理解,本發(fā)明的其他目的及效果將變得更加清楚和易于理解。


以下將參照附圖,通過(guò)實(shí)施例詳細(xì)地描述本發(fā)明,其中圖1是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法的流程圖;圖2A是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、對(duì)構(gòu)成該LDPC碼的矩陣進(jìn)行分層的示意圖;圖2B是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、將所分的層進(jìn)一步劃分為子層和單元數(shù)據(jù)塊的示意圖;圖3是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、確定每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置的流程圖;圖4是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、確定每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置的流程圖;圖5是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、調(diào)整單元數(shù)據(jù)塊中的非零元素的行位置的流程圖;圖6是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、將該LDPC碼的矩陣的第一層劃分的示意圖。
在所有附圖中,相同的標(biāo)號(hào)表示相似或相應(yīng)的特征或功能。
具體實(shí)施例方式
在本發(fā)明的生成LDPC碼的方法中,當(dāng)構(gòu)造LDPC碼的矩陣時(shí),首先,根據(jù)譯碼器電路中可能采用的并行度,將矩陣劃分為多個(gè)子層和將每個(gè)子層劃分為多個(gè)單元數(shù)據(jù)塊,然后,再根據(jù)預(yù)定的列重(也稱(chēng)為列權(quán)重)和行重(也稱(chēng)為行權(quán)重),確定每個(gè)單元數(shù)據(jù)塊中的非零元素,即具有重量(weight)的元素的位置。由于這種構(gòu)造LDPC碼的方式,充分地考慮了譯碼器電路的并行處理結(jié)構(gòu),因此,能夠有效地提高譯碼時(shí)的吞吐量。
以下,將根據(jù)本發(fā)明的一個(gè)實(shí)施例,結(jié)合附圖詳細(xì)地描述本發(fā)明的上述生成LDPC碼的方法。
圖1是按照本發(fā)明一個(gè)實(shí)施例的用于生成LDPC碼的方法的流程圖。如圖1所示,首先根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成LDPC碼的矩陣的行數(shù)和列數(shù)(步驟S10)。對(duì)于LDPC碼,編碼率R通常由下述表達(dá)式(1)表示R=1-K/N=1-x/y ------表達(dá)式(1)其中,N表示矩陣的列數(shù),其數(shù)值取決于預(yù)定的LDPC碼的約束長(zhǎng)度;K表示矩陣的行數(shù),其數(shù)值取決于預(yù)定的編碼率和約束長(zhǎng)度;x表示預(yù)定的該矩陣的列重,即在該矩陣的每一列中包含的非零元素“1”的個(gè)數(shù);y表示預(yù)定的該矩陣的行重,即在該矩陣的每一行中包含的非零元素“1”的個(gè)數(shù)。
接著,根據(jù)列重x,將該矩陣劃分為多個(gè)層(步驟S20)??紤]到譯碼速率,在步驟S20中,應(yīng)當(dāng)最好使得在每一層的每一列中僅有一個(gè)列重量,即將該矩陣劃分為x層,且每一層的每一列中有且僅有一個(gè)非零元素。劃分為x層后的矩陣可參見(jiàn)附圖2A。
之后,根據(jù)期望的吞吐量(throughput),選擇并行度因子(步驟S30)。由于吞吐量與編碼率、譯碼器中設(shè)置的迭代次數(shù)和采用的時(shí)鐘頻率有關(guān),因此,在選擇并行度因子(parallelization factor)時(shí),應(yīng)使得并行度因子M滿(mǎn)足下述表達(dá)式(2)M≥(T·L)/(R·F) ------表達(dá)式(2)其中,T表示期望的吞吐量,L表示譯碼器中設(shè)置的迭代次數(shù),R是編碼率,F(xiàn)是譯碼器中采用的時(shí)鐘頻率。
根據(jù)選擇的并行度因子M,將上述x層中的至少一個(gè)層劃分為多個(gè)子層,并將每一個(gè)子層進(jìn)一步劃分為多個(gè)單元數(shù)據(jù)塊(步驟S40)。這里,多個(gè)子層包括2個(gè)或2個(gè)以上的子層。具體的當(dāng)Mod(K,x·M)=0時(shí),將每一層,沿著矩陣的行方向,劃分為M個(gè)子層;并將每一個(gè)子層,沿著矩陣的列方向,進(jìn)一步劃分為N/M個(gè)單元數(shù)據(jù)塊。
經(jīng)過(guò)上述劃分后,在每個(gè)子層中,具有K/x/M行和N列的元素,即每個(gè)子層的大小為(K/x/M)·N;而在每個(gè)單元數(shù)據(jù)塊中,具有K/x/M行和M列的元素,即每個(gè)單元數(shù)據(jù)塊的大小為(K/x/M)·M。
附圖2B示出了其中第二層被劃分為M個(gè)子層和其中的每個(gè)子層被劃分為N/M個(gè)單元數(shù)據(jù)塊的示意圖。
然后,根據(jù)預(yù)定的列重x和行重y,確定每個(gè)單元數(shù)據(jù)塊中的非零元素,即具有重量的元素的位置,以形成該LDPC碼(步驟S50)??紤]到譯碼速率,應(yīng)當(dāng)盡可能使得行重量和列重量均勻地分布在每個(gè)單元數(shù)據(jù)塊中。在本發(fā)明的優(yōu)選實(shí)施例中,每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素,即每個(gè)單元數(shù)據(jù)塊中,只具有一個(gè)非零元素。
以下,將結(jié)合附圖3和4,描述本發(fā)明的確定在每個(gè)單元數(shù)據(jù)塊中、非零元素的列位置和行位置。
圖3是按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、確定每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置的流程圖。如圖3所示,首先,將被劃分為多個(gè)子層的一個(gè)層(例如上述實(shí)施例中的被劃分為M個(gè)子層的第二層)中的單元數(shù)據(jù)塊,沿著矩陣的列方向,劃分為多個(gè)組,每一組中包括分別處于不同子層中的一個(gè)單元數(shù)據(jù)塊(步驟S110)。
例如,假定第二層被劃分成為M個(gè)子層和N/M個(gè)單元數(shù)據(jù)塊,則沿著矩陣的列方向,將處于第一個(gè)子層中的第1個(gè)單元數(shù)據(jù)塊、處于第二個(gè)子層中的第1個(gè)單元數(shù)據(jù)塊....與處于第M個(gè)子層中的第1個(gè)單元數(shù)據(jù)塊一起構(gòu)成第一組;處于第一個(gè)子層中的第2個(gè)單元數(shù)據(jù)塊、處于第二個(gè)子層中的第2個(gè)單元數(shù)據(jù)塊....與處于第M個(gè)子層中的第2個(gè)單元數(shù)據(jù)塊一起構(gòu)成第二組;
處于第一個(gè)子層中的第N/M個(gè)單元數(shù)據(jù)塊、處于第二個(gè)子層中的第N/M個(gè)單元數(shù)據(jù)塊....與處于第M個(gè)子層中的第N/M個(gè)單元數(shù)據(jù)塊一起構(gòu)成第N/M組。
這種沿著矩陣的列方向進(jìn)行劃分而形成的多個(gè)組,其中的每個(gè)組,在本發(fā)明中,可被稱(chēng)為一個(gè)列標(biāo)志組。每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier)。
經(jīng)過(guò)上述劃分而形成的多個(gè)列標(biāo)志組,可用二維數(shù)組a[i][j]表示,其中,i用于標(biāo)識(shí)單元數(shù)據(jù)塊,在本實(shí)施例中取值范圍為i∈[1...N/M],j用于標(biāo)識(shí)子層,在本實(shí)施例中取值范圍為j∈[1...M]。
這樣,a[1][j]、a[2][j]、a[3][j]...a[N/M][j]分別表示不同的列標(biāo)志組;在每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,即i值相同而j值不同的數(shù)組,表示處于不同子層中的單元數(shù)據(jù)塊。
按照上述定義,在該實(shí)施例中,處于不同子層中的第1個(gè)單元數(shù)據(jù)塊構(gòu)成列標(biāo)志組a[1][j],處于不同子層中的第2個(gè)單元數(shù)據(jù)塊構(gòu)成列標(biāo)志組a[2][j]...處于不同子層中的第N/M個(gè)單元數(shù)據(jù)塊構(gòu)成列標(biāo)志組a[N/M][j],即總共N/M個(gè)列標(biāo)志組。由于j的取值范圍是j∈[1...M],因此,每個(gè)列標(biāo)志組中包括M個(gè)列標(biāo)志。
從而,例如列標(biāo)志組a[2][j],表示由a[2][1]、a[2][2]、a[2][3]...a[2][M]共M個(gè)列標(biāo)志組成,其中的每個(gè)列標(biāo)志表示分別處于第一個(gè)子層、第二個(gè)子層、第三個(gè)子層...第M個(gè)子層中的第二個(gè)數(shù)據(jù)塊。
在按照上述方式,將多個(gè)單元數(shù)據(jù)塊、沿著所述矩陣的列方向、劃分為多個(gè)列標(biāo)志組后,根據(jù)并行度因子M,生成M個(gè)列位置指示(步驟S120)。每個(gè)列位置指示(indicator),對(duì)應(yīng)于在一個(gè)單元數(shù)據(jù)塊中非零元素的列位置。
由于在一個(gè)單元數(shù)據(jù)塊中,共有1,2...M列,因此,在步驟S120中所生成的M個(gè)列位置指示,分別取數(shù)值1,2...M,以用于標(biāo)識(shí)在一個(gè)單元數(shù)據(jù)塊中非零元素的列位置。
然后,將多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置(步驟S130)。即將多個(gè)列位置指示1,2...M,分別分配給列標(biāo)志組a[1][j]、a[2][j]...a[N/M][j]中的各個(gè)列標(biāo)志,以得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置。
由于不同的列位置指示是對(duì)應(yīng)于單元數(shù)據(jù)塊中不同的列位置,并且每個(gè)列標(biāo)志組中的每個(gè)列標(biāo)志分別標(biāo)識(shí)的是處于不同子層中的單元數(shù)據(jù)塊,因此,在步驟S130中,在將不同的列位置指示分配給不同的列標(biāo)志時(shí),在同一個(gè)列標(biāo)志組中的處于不同子層中的單元數(shù)據(jù)塊,將分配得到不同的列位置;從而,在步驟S130中,所述分配無(wú)論是采取隨機(jī)的方式,還是某一特定的方式,都能夠滿(mǎn)足預(yù)定的列重以及本實(shí)施例前述中“每一層的每一列中僅有一個(gè)列重量”和“每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素”的特定方案。
在確定了每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置后,以下將結(jié)合附圖4,描述按照本發(fā)明一個(gè)實(shí)施例的生成LDPC碼的方法、確定每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置的過(guò)程。
如圖4所示,首先,將每一層中的單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)組,每一組中包括處于同一子層中的單元數(shù)據(jù)塊(步驟S210)。
仍舊以第二層為例。假定處于第一個(gè)子層中的單元數(shù)據(jù)塊構(gòu)成第一組、處于第二個(gè)子層中的單元數(shù)據(jù)塊構(gòu)成第二組...處于第M個(gè)子層中的單元數(shù)據(jù)塊構(gòu)成第M組,則在步驟S210中,將得到M個(gè)組。
這種沿著矩陣的行方向進(jìn)行劃分而形成的多個(gè)組,其中的每個(gè)組,在本發(fā)明中,可被稱(chēng)為一個(gè)行標(biāo)志組。每個(gè)行標(biāo)志組中包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志(identifier)。
經(jīng)過(guò)上述劃分而形成的多個(gè)行標(biāo)志組,可用二維數(shù)組b[i][j]表示,其中,i用于標(biāo)識(shí)子層,在本實(shí)施例中取值范圍為i∈[1...M],j用于標(biāo)識(shí)單元數(shù)據(jù)塊,在本實(shí)施例中取值范圍為j∈[1...N/M]。
這樣,b[1][j]、b[2][j]、...b[M][j]分別表示不同的行標(biāo)志組;在每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,即i值相同而j值不同的數(shù)組,表示處于同一子層中的單元數(shù)據(jù)塊。
按照上述定義,在該實(shí)施例中,處于第一個(gè)子層中的第1,2...N/M共計(jì)N/M個(gè)單元數(shù)據(jù)塊構(gòu)成行標(biāo)志組b[1][j],處于第二個(gè)子層中的第1,2...N/M共計(jì)N/M個(gè)單元數(shù)據(jù)塊構(gòu)成行標(biāo)志組b[2][j],...,處于第M個(gè)子層中的第1,2...N/M共計(jì)N/M個(gè)單元數(shù)據(jù)塊構(gòu)成行標(biāo)志組b[M][j],即總共M個(gè)行標(biāo)志組。由于j的取值范圍是j∈[1...N/M],因此,每個(gè)行標(biāo)志組中包括N/M個(gè)行標(biāo)志。
從而,例如行標(biāo)志組b[2][j],表示由b[2][1]、b[2][2]、...b[2][N/M]共計(jì)N/M個(gè)行標(biāo)志組成,其中的每個(gè)行標(biāo)志表示處于第二個(gè)子層中的第1個(gè)單元數(shù)據(jù)塊、第2個(gè)單元數(shù)據(jù)塊...第N/M個(gè)數(shù)據(jù)塊。
在按照上述方式,將多個(gè)單元數(shù)據(jù)塊、沿著所述矩陣的行方向、劃分為多個(gè)行標(biāo)志組后,根據(jù)并行度因子M和列數(shù)N,生成N/M個(gè)整數(shù)(步驟S220),若用z表示所生成的整數(shù),則z的數(shù)值分別為1,2...N/M。
然后,根據(jù)每個(gè)單元數(shù)據(jù)塊中的行數(shù)(在本實(shí)施例中,每個(gè)單元數(shù)據(jù)塊中的行數(shù)為K/x/M),對(duì)所生成的整數(shù)z進(jìn)行模數(shù)運(yùn)算,以轉(zhuǎn)換成為與一個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志相對(duì)應(yīng)的行位置指示(步驟S230)。每個(gè)行位置指示(indicator),對(duì)應(yīng)于在一個(gè)單元數(shù)據(jù)塊中非零元素的行位置。
例如與第n個(gè)子層的行標(biāo)志組b[n][j]中的行標(biāo)志相對(duì)應(yīng)的行位置指示,可以由下述的表達(dá)式(3)計(jì)算得到b[n][j]=Mod(z,K/x/M)+1------表達(dá)式(3)可以看到,由于整數(shù)z的最大數(shù)值為N/M,則按照表達(dá)式(3),將得到(N/M)/(K/x/M)組、每組數(shù)值都是1,2...K/x/M的行位置指示。
然后,將通過(guò)表達(dá)式(3)得到的行位置指示,分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置(步驟S240)。
即將上述(N/M)/(K/x/M)組、每組數(shù)值都是1,2...K/x/M的行位置指示,分別分配給行標(biāo)志組b[1][j]、b[2][j]...b[M][j]中的各個(gè)行標(biāo)志,以得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置。
由于每個(gè)行標(biāo)志組中的每個(gè)行標(biāo)志分別標(biāo)識(shí)的是處于同一個(gè)子層中的不同的單元數(shù)據(jù)塊,因此,在步驟S240中,在將不同的行位置指示分配給不同的行標(biāo)志時(shí),滿(mǎn)足本實(shí)施例前述中“每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素”的特定方案;并且,由前述表達(dá)式(1)可知K/N=x/y,上述產(chǎn)生的(N/M)/(K/x/M)組的行位置指示,即為y組行位置指示,因此,在步驟S240中,所述分配無(wú)論是采取隨機(jī)的方式,還是某一特定的方式,都能夠符合預(yù)定的行重。
上述結(jié)合附圖3和4描述的確定在每個(gè)單元數(shù)據(jù)塊中、非零元素的列位置和行位置的過(guò)程,僅是一種較佳的實(shí)施例。在構(gòu)造LDPC矩陣時(shí),根據(jù)預(yù)定的行重和列重,還可以構(gòu)造出其他的矩陣,例如不一定限制每個(gè)層中的每一列僅有一個(gè)列重量,也不一定限制每個(gè)單元數(shù)據(jù)塊中僅有一個(gè)具有重量的元素。
而且,按照該較佳實(shí)施例中的“每一層的每一列中僅有一個(gè)列重量”和“每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素”的特定方案,也可以采取不同于上述結(jié)合附圖3和4所述的方式,來(lái)確定每個(gè)單元數(shù)據(jù)塊中、非零元素的列位置和行位置。
為了進(jìn)一步描述本發(fā)明的上述用于生成LDPC碼的方法,以下,將結(jié)合具體參數(shù),描述按照本發(fā)明的上述較佳實(shí)施例而構(gòu)造的LDPC矩陣。其中,在選定參數(shù)時(shí),若矩陣列數(shù)N與并行度因子M和行重y滿(mǎn)足下述表達(dá)式(4),則能夠得到較好的構(gòu)造結(jié)果N≥M·y·6------表達(dá)式(4)所設(shè)置的具體參數(shù),包括并行度因子M=2,矩陣列數(shù)N=72,行數(shù)K=36,列重x=3,行重y=6,編碼率R=0.5。
首先,根據(jù)列重x=3,將該矩陣劃分為3個(gè)層,并按照上述較佳實(shí)施例,設(shè)定在每個(gè)層中的每一列里僅有1個(gè)非零元素;接著,根據(jù)并行度因子M=2,沿著矩陣的行方向,將矩陣中的例如第二層劃分為2個(gè)子層;又根據(jù)并行度因子M=2,沿著矩陣的列方向,將第二層中的每個(gè)子層劃分為36個(gè)單元數(shù)據(jù)塊(36=N/M=72/2)。
從而,在第二層中,存在2個(gè)子層,且每個(gè)子層的大小為6行和72列;每個(gè)子層,包括36個(gè)單元數(shù)據(jù)塊,且每個(gè)數(shù)據(jù)塊中的大小為6行和2列。
然后,確定在第二層中的每個(gè)單元數(shù)據(jù)塊內(nèi)、非零元素的列位置和行位置。
(1)確定在每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置首先,根據(jù)并行度因子M=2,沿著矩陣的列方向,將第二層中的單元數(shù)據(jù)塊劃分成36個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括2個(gè)列標(biāo)志。即按照上述較佳實(shí)施例,對(duì)于列標(biāo)志組a[i][j],i的取值范圍為1到36,j的取值是1和2;且列標(biāo)志a[1][1]和a[1][2]構(gòu)成一個(gè)列標(biāo)志組,列標(biāo)志a[2][1]和a[2][2]構(gòu)成一個(gè)列標(biāo)志組...列標(biāo)志a[36][1]和a[36][2]構(gòu)成一個(gè)列標(biāo)志組,共計(jì)36個(gè)列標(biāo)志組。
接著,根據(jù)并行度因子M=2,生成2個(gè)列位置指示,且這兩個(gè)列位置指示的取值分別為1和2,以分別對(duì)應(yīng)于每個(gè)單元數(shù)據(jù)塊中的第1列和第2列。
將這兩個(gè)列標(biāo)志指示,隨機(jī)地分配給每個(gè)列標(biāo)志組中的2個(gè)列標(biāo)志,從而得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的列位置。
(2)確定在每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置首先,根據(jù)并行度因子M=2,沿著矩陣的行方向,將第二層中的單元數(shù)據(jù)塊劃分成2個(gè)行標(biāo)志組,每個(gè)行標(biāo)志組中包括36個(gè)行標(biāo)志。即按照上述較佳實(shí)施例,對(duì)于行標(biāo)志組b[i][j],i的取值為1和2,j的取值范圍是1到36;且行標(biāo)志b[1][1]、b[1][2]...b[1][36]構(gòu)成一個(gè)行標(biāo)志組,行標(biāo)志b[2][1]、b[2][2]...b[2][36]構(gòu)成一個(gè)行標(biāo)志組,共計(jì)2個(gè)行標(biāo)志組。
接著,根據(jù)并行度因子M=2和列數(shù)N=72,生成36個(gè)整數(shù)(36=N/M),用z表示這36個(gè)整數(shù),則z的數(shù)值分別為1,2...36。
然后,根據(jù)每個(gè)單元數(shù)據(jù)塊中的行數(shù)6,利用上述表達(dá)式(3),對(duì)所生成的整數(shù)z進(jìn)行模數(shù)運(yùn)算,以轉(zhuǎn)換成為與一個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志相對(duì)應(yīng)的行位置指示。
對(duì)于第1個(gè)子層,由b[n][1]=Mod(z,6)+1,將得到6組,每組數(shù)值都是1到6的共36個(gè)行位置指示。其中,每組中的數(shù)值1到6,分別對(duì)應(yīng)于每個(gè)單元數(shù)據(jù)塊中的第1行到第6行。
將得到的36個(gè)行位置指示,隨機(jī)分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,從而得到在每個(gè)單元數(shù)據(jù)塊中的非零元素的行位置。
如上述較佳實(shí)施例中所述,按照這種方式構(gòu)造的矩陣,不僅符合預(yù)定的行重為6、列重為3,而且還滿(mǎn)足“每一層的每一列中僅有一個(gè)列重量”和“每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素”的較佳實(shí)施例的設(shè)計(jì)方案。
在上述確定了在每個(gè)單元數(shù)據(jù)塊中、非零元素的列位置和行位置后,為了便于譯碼電路中的硬件的實(shí)現(xiàn)以及提高譯碼時(shí)的時(shí)鐘速度和節(jié)省譯碼中占用的硬件資源,還可以進(jìn)一步調(diào)整單元數(shù)據(jù)塊中非零元素的行位置,以使得沿著矩陣的行方向的相鄰單元數(shù)據(jù)塊中的非零元素處于不同的行位置。
以下,將結(jié)合附圖5,描述按照本發(fā)明一個(gè)實(shí)施例的調(diào)整單元數(shù)據(jù)塊中的非零元素的行位置的過(guò)程。
如圖5所示,以第n個(gè)子層為例。首先,比較該子層中第1個(gè)單元數(shù)據(jù)塊中非零元素與第2個(gè)單元數(shù)據(jù)塊中非零元素,是否位于同一行中(步驟S310)。
若第1個(gè)和第2個(gè)單元數(shù)據(jù)塊中非零元素位于同一行中,則檢查在同一子層中的與第2個(gè)單元數(shù)據(jù)塊不相鄰的另一個(gè)單元數(shù)據(jù)塊(假定為第m個(gè)單元數(shù)據(jù)塊)中的非零元素的行位置(步驟S320)。
若第m個(gè)單元數(shù)據(jù)塊中的非零元素的行位置不同于第2個(gè)單元數(shù)據(jù)塊中的非零元素的行位置,則將第2個(gè)單元數(shù)據(jù)塊中的非零元素的行位置與第m個(gè)單元數(shù)據(jù)塊中的非零元素的行位置進(jìn)行交換(步驟S330)。
即假定初始時(shí)在第1和第2個(gè)單元數(shù)據(jù)塊中的非零元素均在第1行位置,在第m個(gè)單元數(shù)據(jù)塊中的非零元素在第3行位置,則進(jìn)行該行位置交換后,第2個(gè)單元數(shù)據(jù)塊中的非零元素在第3行位置,在第m個(gè)單元數(shù)據(jù)塊中的非零元素在第1行位置。
而若第m個(gè)單元數(shù)據(jù)塊中的非零元素與第2個(gè)單元數(shù)據(jù)塊中的非零元素也處于同一行中,則再檢查另一個(gè)單元數(shù)據(jù)塊(步驟S340)、例如第m+1個(gè)單元數(shù)據(jù)塊中的非零元素的行位置,以判斷該單元數(shù)據(jù)塊中的非零元素的行位置是否不同于第2個(gè)單元數(shù)據(jù)塊中的非零元素的行位置,以與第2個(gè)單元數(shù)據(jù)塊中的非零元素的行位置進(jìn)行交換。
在確定第1個(gè)和第2個(gè)單元數(shù)據(jù)塊中非零元素位于不同行位置之后,再接著判斷第2個(gè)和第3個(gè)單元數(shù)據(jù)塊、以及同一子層中后續(xù)的處于相鄰位置的兩個(gè)單元數(shù)據(jù)塊中非零元素是否位于同一行中,從而使得經(jīng)過(guò)上述調(diào)整過(guò)程,在每個(gè)子層中,相鄰單元數(shù)據(jù)塊中的非零元素均處于不同的行位置(步驟S350)。
在本發(fā)明的優(yōu)選實(shí)施例中,為了進(jìn)一步降低了LDPC碼編碼器的復(fù)雜度,在上述構(gòu)造LDPC矩陣的過(guò)程中,還可以將該矩陣的第一層按照下述方式構(gòu)造。
具體的,首先,根據(jù)預(yù)定的行重,將第一層沿著矩陣的列方向,劃分為相應(yīng)的多個(gè)數(shù)據(jù)塊。在本發(fā)明的實(shí)施例中,行重為y,因此,將分成y個(gè)數(shù)據(jù)塊。
對(duì)于本實(shí)施例中的K行和N列的矩陣而言,根據(jù)列重為x,則每個(gè)數(shù)據(jù)塊的大小為K/x行和N/y列。
按照“每一層的每一列中僅有一個(gè)列重量”的特定方案,在每個(gè)數(shù)據(jù)塊中,即K/x行和N/y列的子矩陣中,沿著該子矩陣的對(duì)角線(xiàn)設(shè)置非零元素,從而構(gòu)造出如附圖6所示的LDPC矩陣的第一層中有y個(gè)子矩陣、且在每個(gè)子矩陣的對(duì)角線(xiàn)上布置有非零元素“1”的示意圖。
在通過(guò)上述方法構(gòu)造了本發(fā)明的LDPC碼后,由該LDPC碼,可得到一個(gè)校驗(yàn)矩陣,該校驗(yàn)矩陣用于在譯碼器中進(jìn)行譯碼;而對(duì)由該LDPC碼形成的矩陣,采用RU算法或遞歸算法進(jìn)行處理,可以得到用于LDPC碼編碼器中使用的編碼。其中,該RU算法,在有關(guān)信息理論的IEEE學(xué)報(bào)的第2001年、第47卷的第657-670頁(yè)、作者為T(mén).Richardson和R.Urbanke的題目為“低密度奇偶校驗(yàn)碼的有效編碼”的文章中有詳細(xì)記載。
在本發(fā)明的優(yōu)選實(shí)施例中,在設(shè)計(jì)LDPC碼編碼器時(shí),采用了基于上述方式而得到的LDPC碼、并對(duì)構(gòu)成該LDPC的矩陣進(jìn)行常規(guī)矩陣運(yùn)算的方式,例如可采用讓矩陣中的行與行的位置互換、或列與列的位置互換、以及將行進(jìn)行模2相加等運(yùn)算方式,使得該LDPC矩陣的右上角出現(xiàn)一個(gè)對(duì)角陣,并將得到的具有該對(duì)角陣的LDPC碼作為L(zhǎng)DPC編碼器中使用的編碼,從而進(jìn)一步簡(jiǎn)化LDPC碼編碼器的設(shè)計(jì)。在該對(duì)角陣中包含的行和列越多,LDPC碼編碼器的實(shí)現(xiàn)復(fù)雜度越低。
在發(fā)送端一側(cè),利用具有該對(duì)角陣的LDPC碼,對(duì)欲發(fā)送的數(shù)據(jù)進(jìn)行編碼,并將編碼后的數(shù)據(jù)發(fā)送出去。
而在接收端一側(cè),利用該LDPC碼形成的校驗(yàn)矩陣,在譯碼器譯碼過(guò)程中,將所接收到的該編碼后的數(shù)據(jù)進(jìn)行解碼,以得到發(fā)送端所發(fā)送的數(shù)據(jù)。
有益效果按照本發(fā)明的用于生成LDPC碼的方法,由于在構(gòu)造該LDPC矩陣時(shí),采用了根據(jù)譯碼器電路中可能采用的并行度、將矩陣進(jìn)一步劃分為子層和將每個(gè)子層又進(jìn)一步劃分為單元數(shù)據(jù)塊的方式,然后按照預(yù)定的行重和列重,通過(guò)確定每個(gè)單元數(shù)據(jù)塊中的非零元素的位置而形成LDPC矩陣。因此,采用該LDPC矩陣,不僅可以靈活地設(shè)計(jì)用于譯碼的校驗(yàn)矩陣,而且能夠在譯碼時(shí)取得高速的譯碼速率以達(dá)到期望的吞吐量;此外,這種將LDPC矩陣劃分為單元數(shù)據(jù)塊的方式,在采用該LDPC碼進(jìn)行編碼時(shí),亦不會(huì)增加編碼器的復(fù)雜度。
并且,按照本發(fā)明的用于生成LDPC碼的方法,在確定每個(gè)單元數(shù)據(jù)塊中的非零元素的位置時(shí),通過(guò)將在每個(gè)子層中的相鄰單元數(shù)據(jù)塊里的非零元素調(diào)整為不同的行位置,還能夠在用于譯碼時(shí),提高譯碼器時(shí)鐘速度,節(jié)省譯碼器中硬件資源的消耗。
此外,按照本發(fā)明的用于生成LDPC碼的方法,通過(guò)將LDPC矩陣的右上角生成對(duì)角陣,能夠進(jìn)一步降低LDPC碼編碼器的復(fù)雜度。
由于LDPC碼所體現(xiàn)的優(yōu)秀的糾錯(cuò)功能(編碼增益),因此,基于本發(fā)明生成的LDPC碼而得到的編碼和譯碼,應(yīng)當(dāng)不僅僅局限在無(wú)線(xiàn)通信領(lǐng)域中,在有線(xiàn)通信網(wǎng)絡(luò)、數(shù)字廣播電視系統(tǒng)、包括硬盤(pán)信號(hào)處理電路在內(nèi)的存儲(chǔ)媒體系統(tǒng)等諸多技術(shù)領(lǐng)域,都有良好的應(yīng)用前景,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,對(duì)上述本發(fā)明所公開(kāi)的生成LDPC碼的方法,還可以在不脫離本發(fā)明內(nèi)容的基礎(chǔ)上做出各種改進(jìn)。因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)由所附的權(quán)利要求書(shū)的內(nèi)容確定。
權(quán)利要求
1.一種用于生成LDPC碼(低密度奇偶校驗(yàn)碼)的方法,包括步驟(a)根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);(b)根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;(c)選擇一個(gè)并行度因子;(d)根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;(e)根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成該LDPC碼。
2.如權(quán)利要求1所述的方法,其中,步驟(b)進(jìn)一步包括根據(jù)所述列重,將所述矩陣劃分為相應(yīng)的多個(gè)所述層,以使得當(dāng)每一層中的每一列里僅存在一個(gè)列重量時(shí),所述矩陣的各列的列重符合所述預(yù)定的列重。
3.如權(quán)利要求2所述的方法,其中,在步驟(c)中,根據(jù)下列因素中的至少一個(gè),選擇所述并行度因子所述編碼率、預(yù)定的譯碼中采用的迭代次數(shù)和/或時(shí)鐘頻率、以及期望的吞吐量。
4.如權(quán)利要求3所述的方法,其中,步驟(d)包括根據(jù)所述并行度因子,將所述層劃分為相應(yīng)的多個(gè)子層;和根據(jù)所述并行度因子和所述矩陣的列數(shù),將每一個(gè)所述子層劃分為相應(yīng)的多個(gè)單元數(shù)據(jù)塊,以使得每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素時(shí),所述子層中的各行的行重符合所述預(yù)定的行重。
5.如權(quán)利要求4所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的列方向,劃分為多個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier);根據(jù)所述并行度因子,生成相應(yīng)的多個(gè)列位置指示(indicator),該列位置指示用于標(biāo)識(shí)在所述單元數(shù)據(jù)塊中具有重量的元素的列位置;將所述多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的列位置。
6.如權(quán)利要求4或5所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)行標(biāo)志組,該行標(biāo)志組包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志;根據(jù)所述并行度因子和所述列數(shù),生成相應(yīng)的多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字;根據(jù)所述單元數(shù)據(jù)塊中的行數(shù),將所述多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字進(jìn)行模數(shù)運(yùn)算,以得到多個(gè)行位置指示,該行位置指示用于表示在所述單元數(shù)據(jù)塊中具有重量的元素的行位置;將所述多個(gè)行位置指示分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的行位置。
7.如權(quán)利要求6所述的方法,其中,步驟(e)還包括調(diào)整在所述每個(gè)單元數(shù)據(jù)塊中的所述具有重量的元素的行位置,以使得至少相鄰單元數(shù)據(jù)塊中的具有重量的元素處于不同的行位置。
8.如權(quán)利要求1到7中任意一個(gè)權(quán)利要求所述的方法,還包括步驟根據(jù)所述行重,將所述層中的第一層劃分為相應(yīng)的多個(gè)數(shù)據(jù)塊;將處于所述各個(gè)數(shù)據(jù)塊中對(duì)角線(xiàn)位置上的元素,設(shè)置為所述具有重量的元素。
9.一種編碼方法,該方法采用的編碼由一種LDPC碼得到的矩陣形成,其中,用于生成該LDPC碼的方法,包括步驟(a)根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);(b)根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;(c)選擇一個(gè)并行度因子;(d)根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;(e)根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該編碼方法,還包括步驟通過(guò)執(zhí)行矩陣運(yùn)算,以使得構(gòu)成該LDPC碼的矩陣的右上角出現(xiàn)一個(gè)對(duì)角陣;利用具有該對(duì)角陣的LDPC碼,對(duì)欲發(fā)送的數(shù)據(jù)進(jìn)行編碼。
10.如權(quán)利要求9所述的方法,其中,步驟(b)進(jìn)一步包括根據(jù)所述列重,將所述矩陣劃分為相應(yīng)的多個(gè)所述層,以使得當(dāng)每一層中的每一列里僅存在一個(gè)列重量時(shí),所述矩陣的各列的列重符合所述預(yù)定的列重。
11.如權(quán)利要求10所述的方法,其中,步驟(d)包括根據(jù)所述并行度因子,將所述層劃分為相應(yīng)的多個(gè)子層;和根據(jù)所述并行度因子和所述矩陣的列數(shù),將每一個(gè)所述子層劃分為相應(yīng)的多個(gè)單元數(shù)據(jù)塊,以使得每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素時(shí),所述子層中的各行的行重符合所述預(yù)定的行重。
12.如權(quán)利要求11所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的列方向,劃分為多個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier);根據(jù)所述并行度因子,生成相應(yīng)的多個(gè)列位置指示(indicator),該列位置指示用于標(biāo)識(shí)在所述單元數(shù)據(jù)塊中具有重量的元素的列位置;將所述多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的列位置。
13.如權(quán)利要求11或12所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)行標(biāo)志組,該行標(biāo)志組包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志;根據(jù)所述并行度因子和所述列數(shù),生成相應(yīng)的多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字;根據(jù)所述單元數(shù)據(jù)塊中的行數(shù),將所述多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字進(jìn)行模數(shù)運(yùn)算,以得到多個(gè)行位置指示,該行位置指示用于表示在所述單元數(shù)據(jù)塊中具有重量的元素的行位置;將所述多個(gè)行位置指示分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的行位置。
14.一種譯碼方法,該方法采用的譯碼由一種LDPC碼得到的校驗(yàn)矩陣形成,其中,用于生成該LDPC碼的方法,包括步驟(a)根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);(b)根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;(c)選擇一個(gè)并行度因子;(d)根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;(e)根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該譯碼方法,還包括步驟利用構(gòu)成該LDPC碼的矩陣,得到一個(gè)校驗(yàn)矩陣;采用該校驗(yàn)矩陣,對(duì)接收的數(shù)據(jù)進(jìn)行譯碼。
15.如權(quán)利要求14所述的方法,其中,步驟(b)進(jìn)一步包括根據(jù)所述列重,將所述矩陣劃分為相應(yīng)的多個(gè)所述層,以使得當(dāng)每一層中的每一列里僅存在一個(gè)列重量時(shí),所述矩陣的各列的列重符合所述預(yù)定的列重。
16.如權(quán)利要求15所述的方法,其中,步驟(d)包括根據(jù)所述并行度因子,將所述層劃分為相應(yīng)的多個(gè)子層;和根據(jù)所述并行度因子和所述矩陣的列數(shù),將每一個(gè)所述子層劃分為相應(yīng)的多個(gè)單元數(shù)據(jù)塊,以使得每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素時(shí),所述子層中的各行的行重符合所述預(yù)定的行重。
17.如權(quán)利要求16所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的列方向,劃分為多個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier);根據(jù)所述并行度因子,生成相應(yīng)的多個(gè)列位置指示(indicator),該列位置指示用于標(biāo)識(shí)在所述單元數(shù)據(jù)塊中具有重量的元素的列位置;將所述多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的列位置。
18.如權(quán)利要求16或17所述的方法,其中,步驟(e)包括將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)行標(biāo)志組,該行標(biāo)志組包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志;根據(jù)所述并行度因子和所述列數(shù),生成相應(yīng)的多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字;根據(jù)所述單元數(shù)據(jù)塊中的行數(shù),將所述多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字進(jìn)行模數(shù)運(yùn)算,以得到多個(gè)行位置指示,該行位置指示用于表示在所述單元數(shù)據(jù)塊中具有重量的元素的行位置;將所述多個(gè)行位置指示分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的行位置。
19.如權(quán)利要求18所述的方法,其中,步驟(e)還包括調(diào)整在所述每個(gè)單元數(shù)據(jù)塊中的所述具有重量的元素的行位置,以使得至少相鄰單元數(shù)據(jù)塊中的具有重量的元素處于不同的行位置。
20.一種編碼器,該編碼器采用的編碼由一種LDPC碼得到的矩陣形成,其中,形成該編碼的模塊具有一個(gè)用于生成該LDPC碼的模塊該LDPC碼生成模塊,根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;根據(jù)選擇的并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;和根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該形成編碼的模塊,對(duì)LDPC碼生成模塊所形成的構(gòu)成該LDPC碼的矩陣執(zhí)行矩陣運(yùn)算,以使得構(gòu)成該LDPC碼的矩陣的右上角出現(xiàn)一個(gè)對(duì)角陣;并利用具有該對(duì)角陣的LDPC碼,對(duì)欲發(fā)送的數(shù)據(jù)進(jìn)行編碼。
21.如權(quán)利要求20所述的編碼器,其中,所述LDPC碼生成模塊,根據(jù)所述列重,將所述矩陣劃分為相應(yīng)的多個(gè)所述層,以使得當(dāng)每一層中的每一列里僅存在一個(gè)列重量時(shí),所述矩陣的各列的列重符合所述預(yù)定的列重。
22.如權(quán)利要求21所述的編碼器,其中,所述LDPC碼生成模塊根據(jù)所述并行度因子,將所述層劃分為相應(yīng)的多個(gè)子層;和根據(jù)所述并行度因子和所述矩陣的列數(shù),將每一個(gè)所述子層劃分為相應(yīng)的多個(gè)單元數(shù)據(jù)塊,以使得每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素時(shí),所述子層中的各行的行重符合所述預(yù)定的行重。
23.如權(quán)利要求22所述的編碼器,其中,所述LDPC碼生成模塊將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的列方向,劃分為多個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier);根據(jù)所述并行度因子,生成相應(yīng)的多個(gè)列位置指示(indicator),該列位置指示用于標(biāo)識(shí)在所述單元數(shù)據(jù)塊中具有重量的元素的列位置;將所述多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的列位置。
24.如權(quán)利要求22或23所述的編碼器,其中,所述LDPC碼生成模塊將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)行標(biāo)志組,該行標(biāo)志組包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志;根據(jù)所述并行度因子和所述列數(shù),生成相應(yīng)的多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字;根據(jù)所述單元數(shù)據(jù)塊中的行數(shù),將所述多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字進(jìn)行模數(shù)運(yùn)算,以得到多個(gè)行位置指示,該行位置指示用于表示在所述單元數(shù)據(jù)塊中具有重量的元素的行位置;將所述多個(gè)行位置指示分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的行位置。
25.一種譯碼器,該譯碼器采用的譯碼由一種LDPC碼得到的校驗(yàn)矩陣形成,其中,形成該譯碼的模塊具有一個(gè)用于生成該LDPC碼的模塊該LDPC碼生成模塊,根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;根據(jù)選擇的并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成構(gòu)成該LDPC碼的矩陣;該形成譯碼的模塊,利用構(gòu)成該LDPC碼的矩陣,得到一個(gè)校驗(yàn)矩陣;采用該校驗(yàn)矩陣,對(duì)接收的數(shù)據(jù)進(jìn)行譯碼。
26.如權(quán)利要求25所述的譯碼器,其中,所述LDPC碼生成模塊,根據(jù)所述列重,將所述矩陣劃分為相應(yīng)的多個(gè)所述層,以使得當(dāng)每一層中的每一列里僅存在一個(gè)列重量時(shí),所述矩陣的各列的列重符合所述預(yù)定的列重。
27.如權(quán)利要求26所述的譯碼器,其中,所述LDPC碼生成模塊根據(jù)所述并行度因子,將所述層劃分為相應(yīng)的多個(gè)子層;和根據(jù)所述并行度因子和所述矩陣的列數(shù),將每一個(gè)所述子層劃分為相應(yīng)的多個(gè)單元數(shù)據(jù)塊,以使得每個(gè)單元數(shù)據(jù)塊中僅存在一個(gè)具有重量的元素時(shí),所述子層中的各行的行重符合所述預(yù)定的行重。
28.如權(quán)利要求27所述的譯碼器,其中,所述LDPC碼生成模塊將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的列方向,劃分為多個(gè)列標(biāo)志組,每個(gè)列標(biāo)志組中包括用于標(biāo)識(shí)處于不同子層中的單元數(shù)據(jù)塊的多個(gè)列標(biāo)志(identifier);根據(jù)所述并行度因子,生成相應(yīng)的多個(gè)列位置指示(indicator),該列位置指示用于標(biāo)識(shí)在所述單元數(shù)據(jù)塊中具有重量的元素的列位置;將所述多個(gè)列位置指示分別分配給每個(gè)列標(biāo)志組中的各個(gè)列標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的列位置。
29.如權(quán)利要求27或28所述的譯碼器,其中,所述LDPC碼生成模塊將所述多個(gè)單元數(shù)據(jù)塊,沿著所述矩陣的行方向,劃分為多個(gè)行標(biāo)志組,該行標(biāo)志組包括用于標(biāo)識(shí)處于同一子層中的單元數(shù)據(jù)塊的多個(gè)行標(biāo)志;根據(jù)所述并行度因子和所述列數(shù),生成相應(yīng)的多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字;根據(jù)所述單元數(shù)據(jù)塊中的行數(shù),將所述多個(gè)可轉(zhuǎn)換為行位置指示的數(shù)字進(jìn)行模數(shù)運(yùn)算,以得到多個(gè)行位置指示,該行位置指示用于表示在所述單元數(shù)據(jù)塊中具有重量的元素的行位置;將所述多個(gè)行位置指示分別分配給每個(gè)行標(biāo)志組中的各個(gè)行標(biāo)志,以得到在各所述單元數(shù)據(jù)塊中的具有重量的元素的行位置。
30.如權(quán)利要求29所述的譯碼器,其中,所述LDPC碼生成模塊調(diào)整在所述每個(gè)單元數(shù)據(jù)塊中的所述具有重量的元素的行位置,以使得至少相鄰單元數(shù)據(jù)塊中的具有重量的元素處于不同的行位置。
全文摘要
一種用于生成LDPC碼(低密度奇偶校驗(yàn)碼)的方法,包括步驟根據(jù)預(yù)定的編碼率和約束長(zhǎng)度,確定構(gòu)成該LDPC碼的矩陣的行數(shù)和列數(shù);根據(jù)預(yù)定的列重,將該矩陣劃分為多個(gè)層;選擇一個(gè)并行度因子;根據(jù)該并行度因子,將該矩陣中的至少一個(gè)所述層劃分為多個(gè)子層和將每一個(gè)所述子層劃分為多個(gè)單元數(shù)據(jù)塊;根據(jù)所述列重和預(yù)定的行重,確定每個(gè)單元數(shù)據(jù)塊中的具有重量的元素的位置,以形成該LDPC碼。
文檔編號(hào)H03M13/00GK101034892SQ20061005670
公開(kāi)日2007年9月12日 申請(qǐng)日期2006年3月6日 優(yōu)先權(quán)日2006年3月6日
發(fā)明者潘宇, 施惠豐, 徐友云, 張海濱, 蘭普·馬蒂爾斯 申請(qǐng)人:西門(mén)子(中國(guó))有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
榕江县| 平南县| 宜春市| 曲阜市| 武川县| 湘潭市| 清苑县| 铜陵市| 深圳市| 陕西省| 南开区| 印江| 无棣县| 巴彦淖尔市| 大连市| 磐安县| 沂水县| 柳林县| 临邑县| 滨海县| 浦东新区| 娱乐| 哈密市| 竹山县| 墨脱县| 江西省| 米脂县| 顺平县| 房山区| 兖州市| 柳江县| 彰武县| 定州市| 景德镇市| 西吉县| 子长县| 咸宁市| 上栗县| 合山市| 白城市| 内黄县|