專利名稱:低密度奇偶校驗(yàn)解碼器及其解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng),更具體地,本發(fā)明涉及通信系統(tǒng)內(nèi)信號(hào)的解碼。
背景技術(shù):
數(shù)據(jù)通信系統(tǒng)已經(jīng)得到多年的持續(xù)發(fā)展。最近引起重大關(guān)注的一種通信系統(tǒng)是使用渦輪碼(turbo code)的通信系統(tǒng)。另一種使用低密度奇偶校驗(yàn)(LowDensity Parity Check,LDPC)碼的通信系統(tǒng)也備受關(guān)注。這些類別的通信系統(tǒng)均能實(shí)現(xiàn)相對(duì)較低的誤碼率(BER)。
這個(gè)領(lǐng)域發(fā)展的持續(xù)和主要方向是繼續(xù)努力降低通信系統(tǒng)內(nèi)的誤碼平臺(tái)(error floor)。理想的目標(biāo)是達(dá)到通信信道中的香農(nóng)極限(Shannon’s limit)。香農(nóng)極限可視為一通信信道中使用的數(shù)據(jù)率,具有一特定的信噪比(SNR),可實(shí)現(xiàn)通過該通信信道的無誤碼傳輸。換句話說,對(duì)給定的調(diào)制率和編碼率來說,香農(nóng)極限是信道容量的理論界限。
LDPC編碼經(jīng)常以多種方式被提及。例如,可用多種方式實(shí)現(xiàn)LDPC編碼的交互式軟解碼,包括基于信度傳播(Belief Propagation,BP)算法、和積(Sum-Product,SP)算法和/或消息傳送(Message-Passing,MP)算法;MP算有時(shí)又稱為和積/信度傳播組合算法。雖然已經(jīng)對(duì)LDPC編碼做出了大量的關(guān)注和努力,但是不管在特定的情況下使用哪一種特殊方式的交互式解碼算法(如上列舉的三種BP、SP和MP),在通信設(shè)備內(nèi)為完成這種解碼而進(jìn)行的執(zhí)行和處理中仍有改進(jìn)的空間。例如,必須執(zhí)行多種相對(duì)復(fù)雜和數(shù)字煩累的計(jì)算、數(shù)據(jù)管理和處理,以完成LDPC編碼信號(hào)的精確解碼。
LDPC碼已表明可提供出色的解碼性能,在某些情況下可達(dá)到香農(nóng)極限。例如,某些LDPC解碼器已表明在理論香農(nóng)極限的0.3dB(分貝)范圍內(nèi)。雖然這一例子使用長度為一百萬的不規(guī)則LDPC碼來實(shí)現(xiàn),它仍然證明了LDPC碼在通信系統(tǒng)內(nèi)的應(yīng)用非常有前景。
當(dāng)解碼收到的信號(hào)時(shí),在進(jìn)行計(jì)算的過程中,解碼器普遍在自然對(duì)數(shù)域(即基是e的對(duì)數(shù)域)內(nèi)進(jìn)行運(yùn)算,有時(shí)候?qū)⑦@簡單地稱為“對(duì)數(shù)域”。LDPC解碼器屬于這一類別。通過在對(duì)數(shù)域中的運(yùn)算,將所有的乘法轉(zhuǎn)換成加法,除法轉(zhuǎn)換成減法,并完全消除指數(shù),而不影響B(tài)ER性能。
自然對(duì)數(shù)域內(nèi)比較困難的計(jì)算包括計(jì)算如下所述的指數(shù)的和In(ea+eb+ec+…)使用如下所示的雅可比公式(Jacobian formula)可顯著減小這種計(jì)算的復(fù)雜性max*(a,b)=ln(ea+eb)=max(a,b)+ln(1+e-|a-b|)這種計(jì)算經(jīng)常被稱為max*計(jì)算或max*運(yùn)算。要注意的是,以上等式的雅可比公式簡化僅給出了兩個(gè)變量a和b的max*運(yùn)算。當(dāng)試圖計(jì)算更長的指數(shù)和時(shí),這種計(jì)算可一遍遍重復(fù)。例如,為了計(jì)算In(ea+eb+ec),可以執(zhí)行以下兩個(gè)max*運(yùn)算max*(a.b)=ln(ea+eb)=max(a,b)+ln(1+e-|a-b|)=xmax*(a,b,c)=max*(x,c)=ln(ex+ec)=max(x,c)+ln(1+e-|x-c|)雖然LDPC碼環(huán)境內(nèi)有了很大的發(fā)展,但是執(zhí)行解碼所必須的大量處理和計(jì)算是極其繁重的。以上提供的計(jì)算指數(shù)和的例子便解釋了當(dāng)執(zhí)行這種信號(hào)的解碼時(shí)潛在的復(fù)雜性和所需的繁重計(jì)算。有時(shí),處理要求如此繁重,使得在設(shè)計(jì)預(yù)算很緊的系統(tǒng)內(nèi)只能禁止這一執(zhí)行。
已經(jīng)有一些非最佳的方法來處理所要求的繁重的計(jì)算。例如,在執(zhí)行基礎(chǔ)max*運(yùn)算時(shí),某些解碼器完全除去對(duì)數(shù)校正因子ln(1+e-|a-b|),并只使用max(a,b)結(jié)果,其可在數(shù)字信號(hào)處理器(DSP)內(nèi)的單個(gè)指令內(nèi)實(shí)現(xiàn)。但是,這必然會(huì)降低解碼器的性能,使計(jì)算不精確。大多數(shù)尋求計(jì)算改進(jìn)的常用方法要么在計(jì)算精確度方面抄近路,要么不能充分降低計(jì)算的復(fù)雜度以調(diào)整其積分。一個(gè)妨礙LDPC碼的實(shí)現(xiàn)的因素是內(nèi)在的計(jì)算復(fù)雜性以及與之相關(guān)的所要求的存儲(chǔ)量。
在對(duì)數(shù)域內(nèi)運(yùn)算的解碼器中做計(jì)算如max*運(yùn)算時(shí),仍然需要提供更有效的解決方法。
LDPC編碼信號(hào)正應(yīng)用在許多新的應(yīng)用領(lǐng)域中。一種這樣的應(yīng)用領(lǐng)域是數(shù)字視頻廣播。數(shù)字視頻廣播組織(DVB)是一個(gè)工業(yè)領(lǐng)導(dǎo)聯(lián)盟,包括超過35個(gè)國家內(nèi)的超過206家廣播公司、制造廠商、網(wǎng)絡(luò)運(yùn)營公司、軟件開發(fā)公司、管理團(tuán)體和其它實(shí)體,專門開發(fā)數(shù)字電視和數(shù)據(jù)服務(wù)全球傳送的全球統(tǒng)一標(biāo)準(zhǔn)。關(guān)于DVB的相關(guān)信息可以從以下因特網(wǎng)地址獲得“http://www.dvb.org/”DVB-S2(即DVB-衛(wèi)星第2版(DVB-Satellite Version 2))草案標(biāo)準(zhǔn)也可以通過這個(gè)因特網(wǎng)地址獲得,DVB-S2草案標(biāo)準(zhǔn)可從以下因特網(wǎng)地址以AdobePDF格式下載“http://www.dvb.org/documents//en302307.v1.1.1.draft.pdf”因此,DVB-S2草案標(biāo)準(zhǔn)的全部內(nèi)容,即“草案ETSI EN 302307V1.1.1(2004-06),數(shù)字視頻廣播(DVB);第二代幀結(jié)構(gòu),廣播的信道編碼和調(diào)制系統(tǒng),交互式服務(wù),消息收集和其它的寬帶衛(wèi)星的應(yīng)用”(Draft ETSI EN 302307 V1.1.1(2004-06),Digital Video Broadcasting(DVB);Second generationframing structure,channel coding and modulation systems for Broadcasting,Interactive Services,News Gathering and other broadband satellite applicatons),在此全文引用并構(gòu)成本申請(qǐng)公開的一部分。
此外,標(biāo)準(zhǔn)“ETSI EN 302 307 V1.1.1(2005-03),數(shù)字視頻廣播(DVB);第二代幀結(jié)構(gòu),廣播的信道編碼和調(diào)制系統(tǒng),交互式服務(wù),消息收集和其它的寬帶衛(wèi)星的應(yīng)用”在2005年3月被ETSI(歐洲電信標(biāo)準(zhǔn)協(xié)會(huì))正式批準(zhǔn)。因此該標(biāo)準(zhǔn)的全文在本申請(qǐng)中整體引用,并構(gòu)成本申請(qǐng)公開的一部分。
遵從DVB-S2的系統(tǒng)中所使用的信號(hào)的資料在這一DVB-S2標(biāo)準(zhǔn)中有詳細(xì)的介紹。該DVB-S2標(biāo)準(zhǔn)主要集中在傳輸系統(tǒng)的描述和其中的子系統(tǒng),包括模式適配、流適配、FEC編碼(包括BCH外編碼和LDPC內(nèi)編碼)、位映射到群集(constellation)、物理層幀以及基帶整形和正交調(diào)制。
DVB-S2是DVB-S(數(shù)字視頻廣播組織提出的第一個(gè)標(biāo)準(zhǔn))的高級(jí)版本。DVB-S2試圖提供比DVB-S更高的效率。DVB-S2計(jì)劃執(zhí)行4種不同的調(diào)制QPSK(正交相移鍵控)、8PSK(相移鍵控)、16APSK(不對(duì)稱相移鍵控)以及32APSK。一般說來,QPSK和8PSK調(diào)制類型通過接近飽和的非線性衛(wèi)星發(fā)射機(jī)應(yīng)答器傳播應(yīng)用;16APSK和32APSK調(diào)制類型主要面向需要半線性發(fā)射機(jī)應(yīng)答器的專業(yè)應(yīng)用。
此外,DVB-S2使用強(qiáng)大的基于BCH(博斯-喬赫里-霍克文黑姆)外編碼與LDPC內(nèi)編碼相結(jié)合的前向糾錯(cuò)(Forward Error Correction,F(xiàn)EC)系統(tǒng)。結(jié)果是性能有時(shí)距香農(nóng)極限僅0.7dB。FEC參數(shù)的選擇取決于系統(tǒng)要求。使用VCM(可變編碼和調(diào)制)和ACM(自適應(yīng)編碼和調(diào)制),以一幀一幀為基礎(chǔ),編碼率可動(dòng)態(tài)改變。
接收設(shè)備包括解碼器遵循DVB-S2所必須執(zhí)行的多個(gè)運(yùn)算參數(shù)已由傳輸系統(tǒng)說明中的運(yùn)算參數(shù)清楚地列出。但是,只要接收設(shè)備包括解碼器遵從DVB-S2標(biāo)準(zhǔn)中規(guī)定的這些運(yùn)算參數(shù),就允許實(shí)現(xiàn)方法具有較大的選擇范圍。通信信道的發(fā)射端的信號(hào)的生成已在DVB-S2標(biāo)準(zhǔn)中清楚列出,執(zhí)行這種信號(hào)(在通信信道的接收端)的接收處理的方法向設(shè)計(jì)者廣泛開放。很顯然,這種接收設(shè)備的關(guān)鍵設(shè)計(jì)約束在于提供DVB-S2信號(hào)的適應(yīng)性,同時(shí)提供很高的性能而只占用相對(duì)較小的面積,并有相對(duì)較低的復(fù)雜度。
使用LDPC編碼信號(hào)的另外一個(gè)應(yīng)用領(lǐng)域是由IEEE(電氣電子工程師協(xié)會(huì))規(guī)定和管理的各種通信系統(tǒng)和應(yīng)用領(lǐng)域。例如,LDPC編碼信號(hào)的使用在IEEE P802.3an(10GBASE-T)任務(wù)組中非常重要。IEEE P802.3an(10GBASE-T)任務(wù)組由IEEE創(chuàng)建,從事銅線10千兆位以太網(wǎng)標(biāo)準(zhǔn)的開發(fā)和標(biāo)準(zhǔn)化,銅線10千兆位以太網(wǎng)標(biāo)準(zhǔn)根據(jù)IEEE 802.3CSMA/CD以太網(wǎng)協(xié)議通過雙絞線電纜實(shí)現(xiàn)。載波偵聽多路訪問/沖突檢測(CSMA/CD)是以太網(wǎng)網(wǎng)絡(luò)中載波傳輸訪問的協(xié)議。IEEE 802.3an(10GBASE-T)是在4根雙絞線上運(yùn)作的10Gbps以太網(wǎng)的新標(biāo)準(zhǔn)。關(guān)于IEEE P802.3an(10GBASE-T)的更多公開信息從以下因特網(wǎng)地址獲得“http://www.ieee802.org/3/an”.
這種應(yīng)用中提供的高數(shù)據(jù)率相對(duì)接近100米電纜的最壞情況下的理論最大率。實(shí)現(xiàn)10Gbps操作需要接近的容量實(shí)現(xiàn)糾錯(cuò)碼。使用常規(guī)鏈接碼可能帶來的潛在約束會(huì)阻礙它們在該應(yīng)用中的使用。
LDPC編碼信號(hào)的典型編碼和調(diào)制通過生成一包括有符號(hào)的信號(hào)來執(zhí)行,每個(gè)符號(hào)具有共同的編碼率并被映射至單調(diào)制(例如,一個(gè)單群集形狀(singular constellation shape)具有其內(nèi)各群集點(diǎn)的一個(gè)單映射)。也就是說,這種LDPC編碼調(diào)制信號(hào)的所有符號(hào)都有相同的編碼率和相同的調(diào)制(相同的群集形狀,其群集點(diǎn)具有單映射)。通常,這種現(xiàn)有技術(shù)的設(shè)計(jì)實(shí)現(xiàn)來最大化硬件和處理效率,用來生成LDPC編碼信號(hào),其內(nèi)的所有符號(hào)具有單個(gè)編碼率和單個(gè)調(diào)制。
但是,在某些最近的LDPC通信系統(tǒng)中,LDPC編碼器的設(shè)計(jì)已經(jīng)在尋求提供生成多重類型的LDPC編碼信號(hào)的能力。在這些通信系統(tǒng)中,任何給定的LDPC區(qū)塊中的所有符號(hào)的編碼率和調(diào)制類型都是相同的。也就是說,整個(gè)區(qū)塊有與之對(duì)應(yīng)的特定的編碼率和調(diào)制類型。不過,編碼器可用來生成不同的LDPC區(qū)塊,使得第一LDPC區(qū)塊具有第一編碼率和與其相關(guān)的第一調(diào)制類型,第二LDPC區(qū)塊具有第二編碼率和與其相關(guān)的第二調(diào)制類型。
用來解碼這種信號(hào)的解碼器必須能夠兼容它所接收的各種LDPC區(qū)塊類型。目前,現(xiàn)有技術(shù)中的LDPC解碼器設(shè)計(jì)需要相對(duì)較大的面積,并有相對(duì)較高的復(fù)雜度。因而現(xiàn)有技術(shù)中需要提供一種能兼容這些信號(hào)同時(shí)又能提供較高的性能且只面積小、復(fù)雜度低的LDPC解碼器。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)上述現(xiàn)有技術(shù)的不足,提出一種解碼LDPC(低密度奇偶校驗(yàn))編碼信號(hào)的解碼器及解碼LDPC編碼信號(hào)的方法。
根據(jù)本發(fā)明的一個(gè)方面,提出一種解碼LDPC編碼信號(hào)的解碼器,所述解碼器包括一個(gè)量度發(fā)生器,用于接收對(duì)應(yīng)LDPC編碼信號(hào)第一符號(hào)的第一I、Q(同相、正交)值,并從中生成第一組多個(gè)位量度(bit metric);接收對(duì)應(yīng)LDPC編碼信號(hào)第二符號(hào)的第二I、Q值,并從中生成第二組多個(gè)位量度;一個(gè)量度存儲(chǔ)器,用于存儲(chǔ)所述第一組多個(gè)位量度和所述第二組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在從所述量度發(fā)生器接收所述第二組多個(gè)位量度的同時(shí)輸出所述第一組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在從所述量度發(fā)生器接收第三組多個(gè)位量度的同時(shí)輸出所述第二組多個(gè)位量度;多個(gè)位/校驗(yàn)處理器,用于連續(xù)地接收所述第一組多個(gè)位量度、所述第二組多個(gè)位量度和所述第三組多個(gè)位量度;執(zhí)行位節(jié)點(diǎn)處理,包括更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)消息傳送存儲(chǔ)器,用于在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)桶形移位器,用于對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的位節(jié)點(diǎn)處理。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)輸出處理器,用于從對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)校正子計(jì)算功能塊,用于從與最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息相對(duì)應(yīng)的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并確定用于生成LDPC編碼信號(hào)的LDPC碼的多個(gè)校正子中的每一個(gè)是否等于零。
優(yōu)選地,所述量度存儲(chǔ)器、所述多個(gè)位/校驗(yàn)處理器以及所述消息傳送存儲(chǔ)器形成包含有多個(gè)宏塊的第一個(gè)宏塊;所述多個(gè)宏塊中的每一個(gè)宏塊還包括有對(duì)應(yīng)的量度存儲(chǔ)器、對(duì)應(yīng)的多個(gè)位/校驗(yàn)處理器以及對(duì)應(yīng)的消息傳送存儲(chǔ)器;所述桶形移位器與所述多個(gè)宏塊中的每一個(gè)宏塊內(nèi)的每一個(gè)對(duì)應(yīng)的消息傳送存儲(chǔ)器通信連接。
優(yōu)選地,所述量度存儲(chǔ)器為乒乓式存儲(chǔ)結(jié)構(gòu),包括兩個(gè)分開的量度存儲(chǔ)器。
優(yōu)選地,所述量度存儲(chǔ)器是虛擬雙端口量度存儲(chǔ)器。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以符號(hào)數(shù)值格式存儲(chǔ)在所述消息傳送存儲(chǔ)器中;所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以2的補(bǔ)碼格式存儲(chǔ)在所述消息傳送存儲(chǔ)器中。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息包括對(duì)應(yīng)信息位的第一組多個(gè)邊消息和對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息;所述對(duì)應(yīng)信息位的第一組多個(gè)邊消息和所述對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息均存儲(chǔ)在所述消息傳送存儲(chǔ)器中。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min**(min-double-star)處理和min**-(min-double-star-minus)處理。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min(min-double-dagger)處理和min-(min-dagger-minus)處理。
優(yōu)選地,所述LDPC編碼信號(hào)是可變編碼率信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一編碼率;所述LDPC編碼信號(hào)的第二符號(hào)具有第二編碼率。
優(yōu)選地,所述LDPC編碼信號(hào)是可變調(diào)制信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一調(diào)制,包括有第一群集形狀(constellation shape)和對(duì)應(yīng)的第一映射(mapping);所述LDPC編碼信號(hào)的第二符號(hào)具有第二調(diào)制,包括有第二群集形狀和對(duì)應(yīng)的第二映射。
優(yōu)選地,所述解碼器解碼LDPC編碼信號(hào),所述LDPC編碼信號(hào)遵從DVB-S2(Digital Video Broadcasting Project-Satellite Version 2)標(biāo)準(zhǔn)和IEEEP802.3an(10GBASE-T)任務(wù)組提供的推薦規(guī)程中的至少一個(gè)。
根據(jù)本發(fā)明的一個(gè)方面,提出一種解碼LDPC編碼信號(hào)的解碼器,所述解碼器包括多個(gè)位/校驗(yàn)處理器,用于接收多個(gè)位量度;執(zhí)行位節(jié)點(diǎn)處理,包括更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)消息傳送存儲(chǔ)器,用于在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)桶形移位器,用于對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的位節(jié)點(diǎn)處理。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)量度發(fā)生器,接收對(duì)應(yīng)LDPC編碼信號(hào)的多個(gè)符號(hào)的I、Q(同相、正交)值,并從中生成多個(gè)位量度。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)輸出處理器,用于從對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)校正子計(jì)算功能塊,用于從與最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息相對(duì)應(yīng)的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并確定用于生成LDPC編碼信號(hào)的LDPC碼的多個(gè)校正子中的每一個(gè)是否等于零。
優(yōu)選地,所述解碼器進(jìn)一步包括一個(gè)量度存儲(chǔ)器,存儲(chǔ)所述多個(gè)位量度并隨后輸出所述多個(gè)位量度給所述所述多個(gè)位/校驗(yàn)處理器,其中所述量度存儲(chǔ)器、所述多個(gè)位/校驗(yàn)處理器以及所述消息傳送存儲(chǔ)器形成包含有多個(gè)宏塊的第一個(gè)宏塊;所述多個(gè)宏塊中的每一個(gè)宏塊還包括有對(duì)應(yīng)的量度存儲(chǔ)器、對(duì)應(yīng)的多個(gè)位/校驗(yàn)處理器以及對(duì)應(yīng)的消息傳送存儲(chǔ)器;所述桶形移位器與所述多個(gè)宏塊中的每一個(gè)宏塊內(nèi)的每一個(gè)對(duì)應(yīng)的消息傳送存儲(chǔ)器通信連接。
優(yōu)選地,所述量度存儲(chǔ)器為乒乓式存儲(chǔ)結(jié)構(gòu),包括兩個(gè)分開的量度存儲(chǔ)器。
優(yōu)選地,所述量度存儲(chǔ)器是虛擬雙端口量度存儲(chǔ)器。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以符號(hào)數(shù)值格式存儲(chǔ)在所述消息傳送存儲(chǔ)器中;所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以2的補(bǔ)碼格式存儲(chǔ)在所述消息傳送存儲(chǔ)器中。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息包括對(duì)應(yīng)信息位的第一組多個(gè)邊消息和對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息;所述對(duì)應(yīng)信息位的第一組多個(gè)邊消息和所述對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息均存儲(chǔ)在所述消息傳送存儲(chǔ)器中。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min**(min-double-star)處理和min**-(min-double-star-minus)處理。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min(min-double-dagger)處理和min-(min-dagger-minus)處理。
優(yōu)選地,所述LDPC編碼信號(hào)是可變編碼率信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一編碼率;所述LDPC編碼信號(hào)的第二符號(hào)具有第二編碼率。
優(yōu)選地,所述LDPC編碼信號(hào)是可變調(diào)制信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一調(diào)制,包括有第一群集形狀(constellation shape)和對(duì)應(yīng)的第一映射(mapping);所述LDPC編碼信號(hào)的第二符號(hào)具有第二調(diào)制,包括有第二群集形狀和對(duì)應(yīng)的第二映射。
優(yōu)選地,所述解碼器解碼LDPC編碼信號(hào),所述LDPC編碼信號(hào)遵從DVB-S2(Digital Video Broadcasting Project-Satellite Version 2)標(biāo)準(zhǔn)和IEEEP802.3an(10GBASE-T)任務(wù)組提供的推薦規(guī)程中的至少一個(gè)。
根據(jù)本發(fā)明的一個(gè)方面,提出一種解碼LDPC編碼信號(hào)的方法,所述方法包括接收對(duì)應(yīng)LDPC編碼信號(hào)第一符號(hào)的第一I、Q(同相、正交)值,并從中生成第一組多個(gè)位量度;接收對(duì)應(yīng)LDPC編碼信號(hào)第二符號(hào)的第二I、Q值,并從中生成第二組多個(gè)位量度;存儲(chǔ)所述第一組多個(gè)位量度和所述第二組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在接收所述第二組多個(gè)位量度的同時(shí)輸出所述第一組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在接收第三組多個(gè)位量度的同時(shí)輸出所述第二組多個(gè)位量度;連續(xù)地接收所述第一組多個(gè)位量度、所述第二組多個(gè)位量度和所述第三組多個(gè)位量度;執(zhí)行包括位節(jié)點(diǎn)處理,更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;將所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息移位至合適的配置以進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;將所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息移位至合適的配置以進(jìn)行隨后的位節(jié)點(diǎn)處理。
優(yōu)選地,所述方法進(jìn)一步包括接收對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
優(yōu)選地,所述方法進(jìn)一步包括接收對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的軟輸出;確定用于生成LDPC編碼信號(hào)的LDPC碼的多個(gè)校正子中的每一個(gè)是否等于零。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以符號(hào)數(shù)值格式存儲(chǔ);所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息以2的補(bǔ)碼格式存儲(chǔ)。
優(yōu)選地,所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息包括對(duì)應(yīng)信息位的第一組多個(gè)邊消息和對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息;所述方法進(jìn)一步包括將所述對(duì)應(yīng)信息位的第一組多個(gè)邊消息和對(duì)應(yīng)奇偶校驗(yàn)位的第二組多個(gè)邊消息中的每一個(gè)均存儲(chǔ)在一個(gè)存儲(chǔ)設(shè)備中。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min**(min-double-star)處理和min**-(min-double-star-minus)處理。
優(yōu)選地,所述校驗(yàn)節(jié)點(diǎn)處理包括min(min-double-dagger)處理和min-(min-dagger-minus)處理。
優(yōu)選地,所述LDPC編碼信號(hào)是可變編碼率信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一編碼率;所述LDPC編碼信號(hào)的第二符號(hào)具有第二編碼率。
優(yōu)選地,所述LDPC編碼信號(hào)是可變調(diào)制信號(hào);所述LDPC編碼信號(hào)的第一符號(hào)具有第一調(diào)制,包括有第一群集形狀(constellation shape)和對(duì)應(yīng)的第一映射(mapping);所述LDPC編碼信號(hào)的第二符號(hào)具有第二調(diào)制,包括有第二群集形狀和對(duì)應(yīng)的第二映射。
優(yōu)選地,所述解碼器解碼LDPC編碼信號(hào),所述LDPC編碼信號(hào)遵從DVB-S2(Digital Video Broadcasting Project-Satellite Version 2)標(biāo)準(zhǔn)和IEEEP802.3an(10GBASE-T)任務(wù)組提供的推薦規(guī)程中的至少一個(gè)。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的通信系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明另一個(gè)實(shí)施例的通信系統(tǒng)的示意圖;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC編碼二分圖的示意圖;圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例使用位量度的LDPC解碼操作的示意圖;圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例(當(dāng)執(zhí)行n次迭代時(shí))使用位量度的LDPC解碼操作的示意圖;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC解碼的示意圖;圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC解碼的示意圖;圖8是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC解碼的示意圖;圖9是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC解碼的示意圖;圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的量度發(fā)生器的示意圖;圖11是根據(jù)本發(fā)明一個(gè)實(shí)施例的QPSK群集及其對(duì)應(yīng)的二進(jìn)制映射和其內(nèi)采用的QPSK系數(shù)的示意圖;圖12是根據(jù)本發(fā)明一個(gè)實(shí)施例的8PSK群集及其對(duì)應(yīng)的二進(jìn)制映射和其內(nèi)使用的8PSK系數(shù)的示意圖;圖13是根據(jù)本發(fā)明一個(gè)實(shí)施例的16QAM群集及其對(duì)應(yīng)的十六進(jìn)制映射和其內(nèi)使用的16QAM系數(shù)的示意圖;圖14是根據(jù)本發(fā)明一個(gè)實(shí)施例的16APSK群集及其對(duì)應(yīng)的十六進(jìn)制映射和其內(nèi)使用的16APSK系數(shù)的示意圖;圖15是根據(jù)本發(fā)明一個(gè)實(shí)施例的調(diào)制系數(shù)表的示意圖;圖16是根據(jù)本發(fā)明一個(gè)實(shí)施例的量度發(fā)生器的結(jié)構(gòu)示意圖;圖17是根據(jù)本發(fā)明一個(gè)實(shí)施例的量度發(fā)生器的結(jié)構(gòu)示意圖;圖18是根據(jù)本發(fā)明一個(gè)實(shí)施例的量度發(fā)生器的結(jié)構(gòu)示意圖;圖19是根據(jù)本發(fā)明一個(gè)實(shí)施例的位節(jié)點(diǎn)處理的示意圖;圖20是根據(jù)本發(fā)明一個(gè)實(shí)施例的校驗(yàn)節(jié)點(diǎn)處理的示意圖;圖21是根據(jù)本發(fā)明一個(gè)實(shí)施例的校驗(yàn)節(jié)點(diǎn)處理的示意圖;圖22是根據(jù)本發(fā)明一個(gè)實(shí)施例的校驗(yàn)節(jié)點(diǎn)處理的示意圖;圖23是根據(jù)本發(fā)明一個(gè)實(shí)施例的校驗(yàn)節(jié)點(diǎn)處理的示意圖;
圖24是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*處理的示意圖;圖25是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*對(duì)數(shù)表的示意圖;圖26是根據(jù)本發(fā)明另一個(gè)實(shí)施例的min*處理的示意圖;圖27是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*-處理的示意圖;圖28是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*-對(duì)數(shù)表的示意圖;圖29是根據(jù)本發(fā)明另一個(gè)實(shí)施例的min*-處理的示意圖;圖30是根據(jù)本發(fā)明又一個(gè)實(shí)施例的min*-處理的示意圖;圖31是根據(jù)本發(fā)明一個(gè)實(shí)施例的校正子計(jì)算功能塊的示意圖;圖32是根據(jù)本發(fā)明一個(gè)實(shí)施例的LDPC解碼方法的流程圖;圖33是根據(jù)本發(fā)明一個(gè)實(shí)施例的迭代LDPC解碼方法的流程圖。
具體實(shí)施例方式
本發(fā)明提出一種執(zhí)行LDPC編碼信號(hào)解碼的設(shè)備。在某些情況下,本發(fā)明提出的解碼方法和功能性可解碼和處理已生成的遵從DVB-S2(即DVB-Satellite Version 2)標(biāo)準(zhǔn)的信號(hào)。另外,本發(fā)明提出的解碼方法和功能性還可解碼和處理已成生的遵從由IEEE P802.3an(10GBASE-T)任務(wù)組提供的草案標(biāo)準(zhǔn)和推薦規(guī)程的信號(hào)。
總的來說,本發(fā)明提出的解碼方法和功能性可應(yīng)用于各種執(zhí)行LDPC編碼信號(hào)和/或其它類別的編碼信號(hào)的處理的設(shè)備中。有時(shí),這些設(shè)備既可以執(zhí)行LDPC編碼信號(hào)的發(fā)送處理(包括編碼),也可以執(zhí)行LDPC編碼信號(hào)的接收處理(包括解碼)。在其他情況下,這些設(shè)備只能執(zhí)行LDPC編碼信號(hào)的接收處理(包括解碼)。
本發(fā)明的解碼方法能適用于具有可變調(diào)制和/或可變編碼率的LDPC信號(hào)的解碼。例如,DVB-S2標(biāo)準(zhǔn)明確地描述了通過產(chǎn)生各種符合DVB-S2標(biāo)準(zhǔn)的LDPC信號(hào)來實(shí)現(xiàn)VCM(可變編碼和調(diào)制)和ACM(自適應(yīng)編碼和調(diào)制)的方法。通常,這種遵從DVB-S2的信號(hào)的編碼率和調(diào)制的改變在逐幀的基礎(chǔ)上進(jìn)行。本發(fā)明提出的解碼方法和功能性能處理和解碼編碼率和/或調(diào)制基于逐幀頻繁變化的信號(hào)。此外,本發(fā)明提出的解碼方法和功能性還能夠處理和解碼編碼率和/或調(diào)制基于逐個(gè)區(qū)塊頻繁變化的信號(hào)。例如,一個(gè)區(qū)塊可被看作是一幀內(nèi)的一個(gè)符號(hào)群。在某些情況下,一幀包括多個(gè)區(qū)塊。
此外,本發(fā)明提出的解碼方法和功能性還適用于其內(nèi)所有符號(hào)采用單一編碼率和/或單一調(diào)制的LDPC信號(hào)的解碼。例如,對(duì)于其所有的符號(hào)具有共同的編碼率和共同的調(diào)制(群集和映射)的LDPC信號(hào)來說,本申請(qǐng)中介紹的(并在以下給出更詳細(xì)的描述)的各種LDPC解碼方法都可用來解碼這種LDPC編碼信號(hào)。
圖1和圖2分別是根據(jù)本發(fā)明不同實(shí)施例的通信系統(tǒng)的100和200的示意圖。
如圖1所示,通信系統(tǒng)100包括一個(gè)通信信道199,將位于通信信道199一端的通信設(shè)備110(包括帶有編碼器114的發(fā)送器112和帶有解碼器118的接收器116)與位于通信信道199另一端的另一個(gè)通信設(shè)備120(包括帶有編碼器128的發(fā)送器126和帶有解碼器124的接收器122)通信連接。在某些實(shí)施例中,通信設(shè)備110和120均可僅包括一個(gè)發(fā)送器或一個(gè)接收器。通信信道199可通過幾種不同類型的媒介來實(shí)現(xiàn)(例如,利用圓盤式衛(wèi)星電視天線132和134的衛(wèi)星通信信道130,利用塔142與144和/或本地天線152和154的無線通信信道140,有線通信信道150,和/或利用電-光(E/O)接口162和光-電(O/E)接口164的光纖通信信道106)。另外,可以通過一種以上的媒介連接在一起從而形成通信信道199。
如圖2所示的通信系統(tǒng)200中,在通信信道299的發(fā)送端,信息位201提供給發(fā)送器297,發(fā)送器297可使用一個(gè)編碼器和符號(hào)映射器200(可分別視為是不同的功能塊222和224)執(zhí)行對(duì)這些信息位201的編碼,從而生成一個(gè)離散值調(diào)制符號(hào)序列203,然后提供給發(fā)送驅(qū)動(dòng)器230,發(fā)送驅(qū)動(dòng)器230使用DAC(數(shù)模轉(zhuǎn)換器)232生成一個(gè)連續(xù)時(shí)間發(fā)送信號(hào)204,然后通過發(fā)送濾波器234,生成充分適合通信信道299的濾波后連續(xù)時(shí)間發(fā)送信號(hào)205。在通信信道299的接收端,連續(xù)時(shí)間接收信號(hào)206被提供給AFE(模擬前端)260,AFE 206包括接收濾波器262(生成濾波后連續(xù)時(shí)間接收信號(hào)207)和ADC(模數(shù)轉(zhuǎn)換器)264(生成離散時(shí)間接收信號(hào)208)。量度發(fā)生器270計(jì)算符號(hào)量度209,解碼器280使用符號(hào)量度209對(duì)離散值調(diào)制符號(hào)和編碼在其內(nèi)的信息位做出最佳估算210。
前述實(shí)施例中的解碼器具有本發(fā)明的各種特征。另外,以下的一些附圖和相關(guān)的描述將介紹支持本發(fā)明的設(shè)備、系統(tǒng)、功能性和/或方法的其他和特定實(shí)施例(某些實(shí)施例的介紹更加詳細(xì))。根據(jù)本發(fā)明處理的一種特定類型的信號(hào)是LDPC編碼信號(hào)。在給出更詳細(xì)的介紹之前,先對(duì)LDPC碼進(jìn)行概要描述。
圖3是LDPC碼二分圖300的示意圖?,F(xiàn)有技術(shù)中,LDPC二分圖也被稱為Tanner圖。LDPC碼被看作是具有二進(jìn)制奇偶校驗(yàn)矩陣從而使矩陣的幾乎所有元素都為零值(例如,該二進(jìn)制奇偶校驗(yàn)矩陣稀疏)的代碼。例如,H=(hi,j)M×N被看作是區(qū)塊長度為N的LDPC碼的奇偶校驗(yàn)矩陣。
奇偶校驗(yàn)矩陣的第i列中1的數(shù)量表示為dv(i),奇偶校驗(yàn)矩陣的第j行中的1的數(shù)量表示為dc(j)。如果對(duì)所有的i,dv(i)=dv,對(duì)所有的j,dc(j)=dc,那么這種LDPC碼被稱為規(guī)則LDPC碼,否則被稱為不規(guī)則LDPC碼。
關(guān)于LDPC碼的介紹請(qǐng)參考以下兩份引用文件[1]R.Gallager,Low-Dentisy Parity-Check Codes,Cambridge,MAMITPress,1963[2]M.Luby,M.Mitzenmacher,A.Shokrollahi,D.Spielman,and V.Stemann,“Practical loss-resilient codes”,1997規(guī)則LDPC碼可表示為二分圖300,其奇偶校驗(yàn)矩陣的左側(cè)節(jié)點(diǎn)為代碼位變量(或?yàn)榻獯aLDPC編碼信號(hào)的位解碼方法中的“變量節(jié)點(diǎn)”(或“位節(jié)點(diǎn)”)310),右側(cè)節(jié)點(diǎn)為校驗(yàn)方程(或“校驗(yàn)節(jié)點(diǎn)”320)。由H定義的LDPC碼的二分圖300可由N個(gè)變量節(jié)點(diǎn)(例如,N位節(jié)點(diǎn))和M個(gè)校驗(yàn)節(jié)點(diǎn)來定義。N個(gè)變量節(jié)點(diǎn)310中的每個(gè)變量節(jié)點(diǎn)都具有精確的dv(i)個(gè)邊(如邊330)連接位節(jié)點(diǎn)例如Vi312與一個(gè)或多個(gè)校驗(yàn)節(jié)點(diǎn)(M個(gè)校驗(yàn)節(jié)點(diǎn)內(nèi))。圖中所示的邊330連接位節(jié)點(diǎn)vi312與校驗(yàn)節(jié)點(diǎn)cj322。該邊(如dy314所示)的數(shù)量dv被稱為變量節(jié)點(diǎn)i的度(degree)。類似地,M個(gè)校驗(yàn)節(jié)點(diǎn)320中的每個(gè)校驗(yàn)節(jié)點(diǎn)都有精確的dc(j)個(gè)邊(如dc324所示),連接該節(jié)點(diǎn)與一個(gè)或多個(gè)變量節(jié)點(diǎn)(或位節(jié)點(diǎn))310。該邊的數(shù)量dc被稱為校驗(yàn)節(jié)點(diǎn)j的度。
變量節(jié)點(diǎn)vi(或位節(jié)點(diǎn)bi)312與校驗(yàn)節(jié)點(diǎn)cj322之間的邊330可定義為e=(i,j),但是,另一方面,假定邊e=(i,j),則該邊的節(jié)點(diǎn)可表示為e=(v(e),c(e))(或e=(b(e),c(e)))。假定給出變量節(jié)點(diǎn)vi(或位節(jié)點(diǎn)bi),可將從節(jié)點(diǎn)vi(或位節(jié)點(diǎn)bi)發(fā)射的一組邊定義為Ev(i)={e|v(e)=i}(或Eb(i)={e|b(e)=i})。假定給出校驗(yàn)節(jié)點(diǎn)cj,可將從節(jié)點(diǎn)cj發(fā)射的一組邊定義為Ec(j)={e |c(e)=j(luò)}。接著,導(dǎo)出的結(jié)果是|Ev(i)|=dv(或|Eb(i)|=db)以及|Ec(j)|=dc。
一般說來,任何可用二分圖表示的代碼,其特征都是圖形碼。要注意的是,不規(guī)則LDPC碼也可用二分圖表示。但是,不規(guī)則LDPC碼內(nèi)的每組節(jié)點(diǎn)的度可根據(jù)某些分布進(jìn)行選擇。因此,對(duì)于不規(guī)則LDPC碼的兩個(gè)不同變量節(jié)點(diǎn)vi1和vi2,|Ev(i1)|不等于|Ev(i2)|。對(duì)于兩個(gè)校驗(yàn)節(jié)點(diǎn)也是這種關(guān)系。不規(guī)則LDPC碼的概念最早在上述的引用文件[2]中給出了介紹。
一般說來,通過LDPC碼的圖示,LDPC碼的參數(shù)可由分布的度來定義,如M.Luby等在上述引用文件[2]中所述,以下的引用文件中也有相關(guān)的描述[3]T.J.Richardson and R.L.Urbanke,“The capacity of low-densityparity-check code under message-passing decoding”,IEEE Trans.Inform.Theory,Vol.47,pp.599-618,F(xiàn)eb.2001這種分布可描述如下用λi表示從i度變量節(jié)點(diǎn)發(fā)射的邊的數(shù)量,ρi表示從i度校驗(yàn)節(jié)點(diǎn)發(fā)射的邊的數(shù)量,則度分布對(duì)(λ,ρ)定義如下λ(x)=Σi=2Mvλixi-1]]>和ρ(x)=Σi=2Mcρixi-1,]]>其中Mv和Mc分別表示變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)的最大度。
雖然在此描述的多個(gè)實(shí)施例采用規(guī)則LDPC碼,但是要注意的是本發(fā)明的特征既適用于規(guī)則LDPC碼,也適用于不規(guī)則LDPC碼。
LDPC碼的LLR(對(duì)數(shù)相似值比)解碼方法可大致描述如下當(dāng)1實(shí)際被發(fā)送時(shí),計(jì)算接收的矢量內(nèi)的位實(shí)際值等于1的概率。同樣地,當(dāng)0實(shí)際被發(fā)送時(shí),計(jì)算接收的矢量內(nèi)的位實(shí)際值等于0的概率。這些概率通過利用LDPC碼的奇偶校驗(yàn)矩陣來計(jì)算,該奇偶校驗(yàn)矩陣被用來校驗(yàn)所述接收的矢量的奇偶性。LLR是所計(jì)算的兩個(gè)概率的比的對(duì)數(shù)。LLR能反映傳送信號(hào)的通信通道對(duì)矢量內(nèi)的位產(chǎn)生不利影響的度。
LDPC碼的LLR解碼可在數(shù)學(xué)上表示如下首先C={v|v=(v0,...,vN-1),vHT=0}是LDPC碼,且發(fā)送的信號(hào)內(nèi)的接收矢量y=(y0,...,yN-1)的形式為((-1)v0,...,(-1)vN-1),則該信道的量度可定義為p(yi|vi=0),p(yi|vi=1),i=0,...,N-1。然后該量度的LLR即Lmetric(i)可定義如下Lmetric(i)=lnp(yi|vi=0)p(yi|vi=1)]]>要注意的是,各個(gè)數(shù)學(xué)表達(dá)式中描述的“l(fā)n”指的是基數(shù)為e的自然對(duì)數(shù)。
對(duì)于每個(gè)變量節(jié)點(diǎn)vi,其LLR信息值可定義如下lnp(vi=0|yi)p(vi=1|yi)=Lmetric(i)+lnp(vi=0)p(vi=1)]]>由于變量節(jié)點(diǎn)vi位于LDPC代碼字內(nèi),則這些值的比值lnp(vi=0)p(vi=1)]]>可由下式代替lnp(vi=0,vHT=0|y)p(vi=1,vHT=0|y)=Σ(i,j)∈Ev(i)lnp(vi=0,vhjT=0|y)p(vi=1,vhjT=0|y)]]>其中Ev(i)是如上所述定義的一組從vi開始的邊。
當(dāng)執(zhí)行上述的BP(信度傳播)解碼方法時(shí),ln=p(vi=0,vhjT=0|y)p(vi=1,vhjT=0|y)]]>的值可用以下關(guān)系式替代Lcheck(i,j)=lnp(ΣvV(e)e∈Ec(j)\{(i,j)}=0|y)p(Σvv(e)e∈Ec(j)\{(i,j)}=1|y)]]>Lcheck(i,j)是與邊(i,j)相關(guān)的校驗(yàn)節(jié)點(diǎn)cj的外來(EXT)信息。此外,要注意的是e∈Ec(j)\{(i,j)}表示從校驗(yàn)節(jié)點(diǎn)cj發(fā)射的所有的邊,但從校驗(yàn)節(jié)點(diǎn)cj發(fā)射至變量節(jié)點(diǎn)vi的邊除外。外來信息值被計(jì)算來協(xié)助對(duì)生成接收矢量內(nèi)的實(shí)際信息位值的最佳估計(jì)值。同樣在BP方法中,與邊(i,j)有關(guān)的變量節(jié)點(diǎn)vi的外來信息可定義如下 圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例使用位量度400的LDPC解碼功能的示意圖。為了對(duì)具有m-位信號(hào)序列的LDPC編碼信號(hào)進(jìn)行解碼,可以使用如圖所示的功能性(functionality)。在符號(hào)節(jié)點(diǎn)處接收了信號(hào)的I、Q(同相、正交)值401后,m-位符號(hào)量度發(fā)生器410計(jì)算相應(yīng)的符號(hào)量度411。在該符號(hào)節(jié)點(diǎn)處,這些符號(hào)量度411隨后被傳遞到符號(hào)節(jié)點(diǎn)計(jì)算器功能塊420,功能塊420利用這些收到的符號(hào)量度411來計(jì)算對(duì)應(yīng)這些符號(hào)的位量度421。然后根據(jù)LDPC碼二分圖,將這些位量度421傳遞給與符號(hào)節(jié)點(diǎn)相連的位節(jié)點(diǎn),LDPC碼信號(hào)通過該LDPC碼二分圖產(chǎn)生,并通過該LDPC碼二分圖進(jìn)行解碼。
之后在位節(jié)點(diǎn)處,位節(jié)點(diǎn)處理器430計(jì)算位的相應(yīng)軟信息。然后,按照迭代解碼處理450,位節(jié)點(diǎn)處理器430從校驗(yàn)節(jié)點(diǎn)處理器440處接收與該校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec441,并用從符號(hào)節(jié)點(diǎn)計(jì)算器功能塊420接收位量度421更新與該位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431。這些與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431在更新后被傳遞給校驗(yàn)節(jié)點(diǎn)處理器440。
在校驗(yàn)節(jié)點(diǎn)處,隨后校驗(yàn)節(jié)點(diǎn)處理器440接收與上述位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431(來自位節(jié)點(diǎn)處理器430),并相應(yīng)地更新它們,從而生成與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息的下一個(gè)更新版本Medgec441;這一操作在功能塊442中示出。更新后的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec441隨后被傳回給位節(jié)點(diǎn)(例如,傳回給位節(jié)點(diǎn)處理器430),在此使用位量度421和與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431的當(dāng)前迭代值來計(jì)算位的軟輸出,這一操作在功能塊434中示出。其后,使用剛計(jì)算出的位的軟輸出(如軟輸出435)和與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431的前一值(從前一次迭代中得到的),位節(jié)點(diǎn)處理器430更新與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431;這一操作在功能塊432中示出。依據(jù)用于解碼和生成解碼信號(hào)的LDPC碼二分圖,迭代解碼處理450在位節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)之間(即位節(jié)點(diǎn)處理器450和校驗(yàn)節(jié)點(diǎn)處理器440之間)繼續(xù)。
由位節(jié)點(diǎn)處理器430和校驗(yàn)節(jié)點(diǎn)處理器440執(zhí)行的迭代解碼處理步驟將重復(fù)預(yù)定數(shù)量的迭代(例如,重復(fù)n次,其中n是可選的)??蛇x擇地,這些迭代解碼處理步驟可一直重復(fù),直至LDPC碼的校正子全部等于零。
軟輸出435在每次解碼迭代過程中在位節(jié)點(diǎn)處理器430內(nèi)生成。圖4所示的實(shí)施例中,軟輸出435可提供給做出硬判決的硬限幅器460,而且硬判決信息可提供給校正子計(jì)算器470以確定LDPC碼的校正子是否都等于零。當(dāng)校正子不等于零時(shí),再繼續(xù)迭代解碼處理450,適當(dāng)?shù)卦谖还?jié)點(diǎn)處理器430和校驗(yàn)節(jié)點(diǎn)處理器440之間更新和傳遞邊消息。例如,與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431從位節(jié)點(diǎn)處理器430傳遞給校驗(yàn)節(jié)點(diǎn)處理器440。類似地,與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec441從校驗(yàn)節(jié)點(diǎn)處理器440傳遞到位節(jié)點(diǎn)處理器430。在某些實(shí)施例中,軟輸出435和校正子計(jì)算器470執(zhí)行的校正子計(jì)算都在每個(gè)解碼迭代過程中執(zhí)行。
執(zhí)行完迭代解碼處理450的所有步驟后,基于位的軟輸出輸出位的最佳估計(jì)值(如位估計(jì)值471)。圖4所示的實(shí)施例的方法中,通過符號(hào)節(jié)點(diǎn)計(jì)算器功能塊420計(jì)算的位量度值是固定值,并在更新位節(jié)點(diǎn)值時(shí)被反復(fù)使用。
圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例(當(dāng)執(zhí)行n次迭代時(shí))使用位量度500的LDPC解碼操作的示意圖。該實(shí)施例中示出了當(dāng)執(zhí)行預(yù)定次數(shù)的解碼迭代,如n次時(shí),如何執(zhí)行圖4中所示的迭代解碼處理450。如果解碼迭代的次數(shù)已經(jīng)預(yù)先知道,如在預(yù)定數(shù)量解碼迭代的實(shí)施例中,如預(yù)定次數(shù)的解碼迭代實(shí)施例,位節(jié)點(diǎn)處理器430可使用位量度421自身(而不是前一實(shí)施例中上述的軟輸出435)來更新其對(duì)應(yīng)的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb431。這一處理在除最后一次迭代外的所有解碼迭代中都執(zhí)行(例如,從迭代1至n-1)。但是,在最后一次迭代中,位節(jié)點(diǎn)處理器430計(jì)算軟輸出435。然后將軟輸出435提供給硬限幅器460,在硬限幅器460中做出位的硬判決。這一實(shí)施例中不必計(jì)算校正子,因?yàn)橹粓?zhí)行預(yù)定數(shù)量的解碼迭代。
通常,在實(shí)際的通信設(shè)備和硬件中實(shí)現(xiàn)LDPC解碼功能性時(shí),設(shè)計(jì)時(shí)關(guān)鍵需要考慮的就是如何實(shí)現(xiàn)硬件以使計(jì)算能盡可能快地執(zhí)行,同時(shí)具有盡可能高的精確度。同樣,這種LDPC解碼功能性的硬件可在對(duì)數(shù)域內(nèi)實(shí)現(xiàn)。該硬件實(shí)現(xiàn)有時(shí)還可以進(jìn)行簡化,將乘法處理簡化成加法,除法處理簡化成減法。通常,執(zhí)行實(shí)現(xiàn)LDPC解碼處理所必要的計(jì)算的難點(diǎn)在于校驗(yàn)節(jié)點(diǎn)處理所必要的計(jì)算的執(zhí)行很難。例如,在校驗(yàn)節(jié)點(diǎn)處理器(或者執(zhí)行校驗(yàn)節(jié)點(diǎn)處理的位校驗(yàn)處理器)內(nèi)執(zhí)行的計(jì)算通常要求從一組可能的值中確定最小值(或最大值)。當(dāng)在實(shí)際的在對(duì)數(shù)域內(nèi)執(zhí)行計(jì)算的硬件中執(zhí)行這些計(jì)算時(shí),通常會(huì)以損失某些精確度的代價(jià)來確定最小值(或最大值)。也就是說,不在計(jì)算中使用某些對(duì)數(shù)校正因數(shù),因而導(dǎo)致精確度的損失。即使是在對(duì)數(shù)域內(nèi)執(zhí)行時(shí),某些現(xiàn)有技術(shù)中的解碼方法只從一定量的可能值中選擇最小值(或最大值),而不使用任何對(duì)數(shù)校正因數(shù)。因而在對(duì)數(shù)域內(nèi)運(yùn)算時(shí),從一組可能值中選擇最小值(或最大值)時(shí),必然會(huì)引入了一些不精確性。
以下將結(jié)合對(duì)輸入值“x”和輸入值“y”的操作介紹幾個(gè)上述的計(jì)算。該輸入值可視為與位節(jié)點(diǎn)相關(guān)的不同邊消息Medgeb。例如,輸入值“x”可視為與位節(jié)點(diǎn)相關(guān)的第一邊消息Medgeb(1),輸入值“y”可視為與位節(jié)點(diǎn)相關(guān)的第二邊消息Medgeb(2),或反之亦然。這些與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的校驗(yàn)節(jié)點(diǎn)處理使用了在此給出的各種可能的實(shí)施例,用來生成對(duì)應(yīng)的與校驗(yàn)節(jié)點(diǎn)相關(guān)的更新后邊消息Medgec。
發(fā)明人已經(jīng)開發(fā)出了多種執(zhí)行這些計(jì)算的不同方法,能在執(zhí)行校驗(yàn)節(jié)點(diǎn)處理的同時(shí)仍然保持高的精確度。這些計(jì)算包括min*處理、min*-處理、min**處理、min**-處理。此外,以上每一種處理方法均有一個(gè)對(duì)應(yīng)的最大相關(guān)函數(shù)min*處理、min*-處理、min**處理、min**-處理。此外,還可使用其它的處理方法,包括min’處理、min處理、min-處理、min處理。以下將結(jié)合對(duì)輸入值“x”和輸入值“y”的操作介紹幾個(gè)上述的計(jì)算。
min*處理和min*-處理min*(x,y)=min(x,y)-ln(1+exp(-|x-y|))min*-(x,y)=min(x,y)-ln(1-exp(-|x-y|))max*處理和max*-處理max*(x,y)=max(x,y)+ln(1+exp(-|x-y|))max*-(x,y)=max(x,y)+ln(1-exp(-|x-y|))min**處理和min**-處理min**(x,y)=min(x,y)-ln(1+exp(-|x-y|))+ln(1+exp(-(x+y)))min**-(x,y)=min(x,y)-ln(1-exp(-|x-y|))+ln(1-exp(-(x+y)))
max**處理和max**-處理max**(x,y)=max(x,y)+ln(1+exp(-|x-y|))-ln(1+exp(-(x+y)))max**-(x,y)=max(x,y)+ln(1-exp(-|x-y|))-ln(1+exp(-(x+y)))min’處理 min處理 min-處理 以下結(jié)合附圖介紹上述各種不同類別的處理的功能性和處理。關(guān)于min處理,min處理有些類似于min*處理,還帶有最小值比較處理的附加功能性。如以下的一個(gè)實(shí)施例中所示,當(dāng)運(yùn)算的值以符號(hào)數(shù)值格式實(shí)現(xiàn)時(shí),可實(shí)現(xiàn)min處理內(nèi)的最小值比較處理。這種符號(hào)數(shù)值格式使其能更容易從多個(gè)值中找出最小值。
本發(fā)明提供了執(zhí)行上述計(jì)算的快速效率的硬件實(shí)現(xiàn),可在解碼LDPC編碼信號(hào)時(shí)執(zhí)行校驗(yàn)節(jié)點(diǎn)處理。此外,以下的各種結(jié)構(gòu)將解釋上述各種計(jì)算如何在解碼處理操作內(nèi)執(zhí)行,在哪里執(zhí)行。
圖6、圖7、圖8和圖9分別是本發(fā)明LDPC解碼功能性的不同實(shí)施例的示意圖。
如圖6所示的LDPC解碼功能性600中,接收的符號(hào)的I、Q(同相、正交)值被提供給量度發(fā)生器603(即圖中所示的MG 603)。這些I、Q值可看作是來自一個(gè)通信設(shè)備內(nèi)的預(yù)處理功能塊,該預(yù)處理功能塊對(duì)從通信信道接收的連續(xù)時(shí)間信號(hào)執(zhí)行初步處理。例如,該預(yù)處理可包括頻率轉(zhuǎn)換、接收濾波、數(shù)字取樣、增益調(diào)節(jié)和/或均衡。這些I、Q值與從連續(xù)時(shí)間信號(hào)中生成的離散時(shí)間信號(hào)相對(duì)應(yīng)。
量度發(fā)生器603計(jì)算對(duì)應(yīng)至少一個(gè)將被解碼的符號(hào)的位量度。量度發(fā)生器603執(zhí)行符號(hào)量度計(jì)算并將其轉(zhuǎn)換成位量度。在某些上述的實(shí)施例中,采用兩個(gè)分開的功能塊來執(zhí)行這種功能性首先從接收的I、Q值計(jì)算符號(hào)量度,然后從符號(hào)量度計(jì)算位量度。
然后位量度從量度發(fā)生器603提供給乒乓存儲(chǔ)結(jié)構(gòu)605(如圖所示的PPMS605)。乒乓存儲(chǔ)結(jié)構(gòu)605包括兩個(gè)分開的量度存儲(chǔ)器606和607(如圖所示的MM 606和MM 607)。當(dāng)量度發(fā)生器603正將對(duì)應(yīng)一個(gè)或一群符號(hào)的位量度提供給乒乓存儲(chǔ)結(jié)構(gòu)605的量度存儲(chǔ)器606時(shí),較早提供的位量度從乒乓存儲(chǔ)結(jié)構(gòu)605的量度存儲(chǔ)器606中輸出。一般說來,在乒乓存儲(chǔ)結(jié)構(gòu)605中,當(dāng)從量度存儲(chǔ)器607中讀取第二組位量度時(shí),將第一組位量度寫入量度存儲(chǔ)器606。該第一組位量度與第一符號(hào)幀內(nèi)的每個(gè)符號(hào)的位量度相對(duì)應(yīng),該第二組位量度與第二符號(hào)幀內(nèi)的每個(gè)符號(hào)的位量度相對(duì)應(yīng)。
然后合適的位量度從乒乓存儲(chǔ)結(jié)構(gòu)605中輸出并提供給一組位/校驗(yàn)處理器610(如圖所示的BCP 610)。一組位/校驗(yàn)處理器610包括多個(gè)位/校驗(yàn)處理器,如BCP 611,...,和BCP 612。要注意的是,根據(jù)本發(fā)明,一個(gè)單組的處理塊,即位/檢驗(yàn)處理器組610,既能執(zhí)行位節(jié)點(diǎn)處理,也能執(zhí)行校驗(yàn)節(jié)點(diǎn)處理。也就是說,當(dāng)解碼LDPC編碼信號(hào)時(shí),可使用多個(gè)位/檢驗(yàn)處理器610內(nèi)完全相同的硬件來執(zhí)行位節(jié)點(diǎn)處理和校驗(yàn)節(jié)點(diǎn)處理。這可以通過使用桶形移位器615(如圖所示的BS 615)結(jié)合信息傳送存儲(chǔ)器620(如圖所示的MPM 620)來部分的實(shí)現(xiàn)。要注意的是,通過使用有效率尋址方案(其更多細(xì)節(jié)在下面介紹),消息傳送存儲(chǔ)器620可存儲(chǔ)兩種類型的與多個(gè)位節(jié)點(diǎn)相關(guān)的邊消息(即(1)對(duì)應(yīng)信息位的邊消息;(2)對(duì)應(yīng)奇偶校驗(yàn)位的邊消息)。這一點(diǎn)是與現(xiàn)有技術(shù)的重要區(qū)別,通?,F(xiàn)有技術(shù)中采用兩個(gè)分開的存儲(chǔ)結(jié)構(gòu)/設(shè)備來存儲(chǔ)這兩種不同類型的與多個(gè)位節(jié)點(diǎn)相關(guān)的邊消息。但是,本發(fā)明中的單個(gè)存儲(chǔ)設(shè)備(即消息傳送存儲(chǔ)器620)可存儲(chǔ)這兩種類型的邊消息。
當(dāng)多個(gè)位/校驗(yàn)處理器610正在執(zhí)行位節(jié)點(diǎn)處理(即,更新與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb),且這些更新后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb已經(jīng)寫入消息傳送存儲(chǔ)器620后,接下來,桶形移位器615確保這些邊消息是以特定和受控的方式從消息傳送存儲(chǔ)器620中讀出的,以便其在校驗(yàn)節(jié)點(diǎn)處理的下一個(gè)迭代中使用(即,更新與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec)。
桶形移位器615控制從消息傳送存儲(chǔ)器620中讀取與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec方式,以使其能夠從消息傳送存儲(chǔ)器620中合適地讀出,以便相同的多個(gè)位/校驗(yàn)處理器610使用在隨后的校驗(yàn)節(jié)點(diǎn)處理中(即,更新與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec)。在消息傳送存儲(chǔ)器620之后使用桶形移位器615使得使用相同的功能塊(即,多個(gè)位/節(jié)點(diǎn)處理器610的相同硬件)能夠執(zhí)行校驗(yàn)節(jié)點(diǎn)處理和位節(jié)點(diǎn)處理兩者。這使用于執(zhí)行LDPC編碼信號(hào)的解碼的實(shí)際通信設(shè)備在尺寸和復(fù)雜度上有了顯著的減小。
還要注意的是,桶形移位器615還可以另一種連接通路放置在多個(gè)位/校驗(yàn)處理器610和消息傳送存儲(chǔ)器620之間。以下將詳細(xì)介紹這種實(shí)施例。
不管桶形移位器615位于哪個(gè)位置,多個(gè)位/檢驗(yàn)處理器610、桶形移位器615和消息傳送存儲(chǔ)器620可協(xié)作運(yùn)行,以執(zhí)行LDPC編碼信號(hào)的迭代解碼處理,從而使用最近更新的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb來生成解碼位的軟輸出。然后將對(duì)應(yīng)該解碼位的軟輸出的硬判決(在上一次解碼迭代后產(chǎn)生或當(dāng)所有的校正子等于零時(shí)產(chǎn)生)提供給SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器)660(如如所示的SRAM 660)。這些存儲(chǔ)在SRAM 660中的硬判決是基于被解碼信號(hào)最初接收的I、Q值的解碼位的最佳估計(jì)值。在上一次解碼迭代之前或在所有的校正子等于零之前,編碼位的軟輸出被提供給SRAM 660。
解碼位的軟輸出被提供給一組功能塊,該組功能塊通過使用最初產(chǎn)生LDPC編碼信號(hào)的LDPC碼的奇偶校驗(yàn)協(xié)作地執(zhí)行校正子校驗(yàn),以確定解碼位是否是有效代碼字的一部分。適當(dāng)?shù)剌斎胲涊敵鋈缓髲腟RAM 660輸出后,該軟輸出傳遞通過另一個(gè)桶形移位器662(如圖所示地BS 662),隨后被傳送給校正子計(jì)算功能塊664(如圖所示的SYNCALC 664)。如果該校正子通過(即,給校正子計(jì)算功能塊664的所有輸入都等于零),則告知控制器650(如圖所示的CON 650)迭代解碼處理結(jié)束。關(guān)于控制器650的更多詳細(xì)介紹在以下給出。
此外,控制器650可被執(zhí)行來根據(jù)選擇的LDPC碼651提供控制信號(hào)652。例如,LDPC解碼功能性600可用來解碼多種LDPC編碼信號(hào),包括遵從DVB-S2的編碼信號(hào)。如遵從DVB-S2的信號(hào)的例子中,包括有VCM(可變編碼和調(diào)制)和ACM(適應(yīng)性編碼和調(diào)制)功能性,LDPC編碼信號(hào)的編碼率(以及調(diào)制類型)可基于逐幀動(dòng)態(tài)改變。也就是說,第一幀使用第一編碼率和第一調(diào)制類型編碼,第二幀使用第二編碼率和第二調(diào)制類型編碼。基于選擇的LDPC碼651,控制器650將合適的解碼控制信號(hào)652提供給LDPC解碼功能性600內(nèi)的其它功能塊。這可以確保在量度發(fā)生器603內(nèi)為接收的I、Q值計(jì)算合適的位量度。此外,根據(jù)解碼控制信號(hào)652,多個(gè)位/校驗(yàn)處理器610、桶形移位器615以及消息傳送存儲(chǔ)器620也都可根據(jù)在通信信道的發(fā)射端產(chǎn)生信號(hào)的方式來協(xié)作執(zhí)行對(duì)接收的信號(hào)的LDPC解碼,其中該通信信道提供連續(xù)時(shí)間信號(hào),I、Q值最終從該連續(xù)時(shí)間信號(hào)中提取并提供給LDPC解碼功能性600以便后續(xù)的解碼。
解碼控制信號(hào)652將特定的信號(hào)類型和屬性通知給多個(gè)位/校驗(yàn)處理器610、桶形移位器615和消息傳送存儲(chǔ)器620,以便在解碼接收的信號(hào)時(shí)使用合適的奇偶校驗(yàn)矩陣。解碼控制信號(hào)652還指示桶形移位器615對(duì)與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb(以及與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec-取決于何時(shí)查看LDPC解碼功能性600)執(zhí)行適當(dāng)程度的移位。由于桶形移位器615執(zhí)行了這兩種邊消息的合適移位,與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb(以及與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec)都以一種方式存儲(chǔ)在消息傳送存儲(chǔ)器620中,使得它們能夠從中取回,以便多個(gè)位/校驗(yàn)節(jié)點(diǎn)處理器610執(zhí)行迭代解碼處理中的后續(xù)步驟時(shí)使用。還要注意的是,對(duì)于信息位和奇偶校驗(yàn)位來說,在多個(gè)位/校驗(yàn)處理器610內(nèi)的校驗(yàn)節(jié)點(diǎn)處理之后、下一個(gè)位節(jié)點(diǎn)處理步驟之前,桶形移位器615不得對(duì)其執(zhí)行移位。由此可見,使用桶形移位器615后可允許相同的硬件(即,多個(gè)位/校驗(yàn)處理器610)來執(zhí)行位節(jié)點(diǎn)處理和校驗(yàn)節(jié)點(diǎn)處理兩者。例如,解碼一組X個(gè)位時(shí),如果在進(jìn)行校驗(yàn)節(jié)點(diǎn)處理前執(zhí)行移位N,則需要執(zhí)行X-N的桶形移位,以在進(jìn)行位節(jié)點(diǎn)處理之前使被移位的位回到它們的初始位置。
假設(shè)有一組特定的LDPC編碼信號(hào)將由LDPC解碼功能性600進(jìn)行解碼,桶形移位器615執(zhí)行的移位量可在一個(gè)ROM(只讀存儲(chǔ)器)設(shè)備中實(shí)現(xiàn)。這在解碼實(shí)際信號(hào)時(shí)能提供非??焖俚倪\(yùn)算和處理。存儲(chǔ)在ROM內(nèi)的移位值可基于產(chǎn)生LDPC編碼信號(hào)的LDPC二分圖中的位節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)之間的邊的連接性來選擇。
控制器650的使用確保了LDPC解碼功能性600可解碼各種LDPC編碼信號(hào),遵從DVB-S2的信號(hào)便是其中的一種。但是,LDPC解碼功能性600也可用來執(zhí)行其它LDPC編碼信號(hào)的解碼。另外,使用控制器650提供的功能,LDPC解碼功能600還能夠執(zhí)行編碼率和/或調(diào)制(包括群集形狀和映射)基于逐塊頻繁改變的LDPC編碼信號(hào)的解碼。例如,一個(gè)區(qū)塊可視為一幀內(nèi)的一個(gè)符號(hào)群。在某些情況下,一幀可包括多個(gè)區(qū)塊。遵從DVB-S2的信號(hào)一般在一幀內(nèi)的所有符號(hào)具有共同的編碼率和調(diào)制(包括群集形狀和映射),且編碼率和/或調(diào)制僅基于逐幀改變。
如上所述,多個(gè)位/校驗(yàn)處理器610包括一組位/校驗(yàn)處理器,如BCP 611,...,和BCP 612。在多個(gè)位/校驗(yàn)處理器610中實(shí)現(xiàn)多少個(gè)位/校驗(yàn)處理器可由設(shè)計(jì)者選擇。設(shè)計(jì)者可根據(jù)多個(gè)因素來選擇使用多少個(gè)位/校驗(yàn)處理器,包括被解碼的位的數(shù)量、多個(gè)位/校驗(yàn)處理器610中位/校驗(yàn)處理器的數(shù)量、理想的吞吐速度以及需要占用的總面積。選擇在位/校驗(yàn)處理器610內(nèi)實(shí)現(xiàn)越多的位/校驗(yàn)處理器將導(dǎo)致更多的并行類處理。
還要注意的是,可實(shí)現(xiàn)宏塊699的幾個(gè)示例(如圖所示的MB 699)來支持進(jìn)一步的并行處理。在這個(gè)實(shí)施例中,宏塊699包括有乒乓存儲(chǔ)結(jié)構(gòu)605、多個(gè)位/校驗(yàn)處理器610和消息傳送存儲(chǔ)器620。以下將介紹的其他實(shí)施例中采用了宏塊的多個(gè)示例來支持更有效的實(shí)現(xiàn)而耗用更小的總面積。一般說來,選擇的宏塊的總數(shù)量應(yīng)確保設(shè)備的總面積盡可能最小。關(guān)于宏塊699,還要注意的是,其內(nèi)不必實(shí)現(xiàn)桶形移位器615。在這個(gè)實(shí)施例中,桶形移位器實(shí)際上實(shí)現(xiàn)在宏塊699外部,用來服務(wù)于多個(gè)宏塊699。但是,桶形移位器615也可在宏塊內(nèi)部實(shí)現(xiàn)而不脫離本發(fā)明的范圍和實(shí)質(zhì)(如下述的其它實(shí)施例中將會(huì)介紹)。但是,一般說來,最好將桶形移位器615放在宏塊699的外面,因?yàn)檫@樣不會(huì)拖延或減慢消息傳送存儲(chǔ)器620(可利用RAM(只讀存儲(chǔ)器)來實(shí)現(xiàn))的存取時(shí)間。當(dāng)桶形移位器615位于宏塊699外部時(shí),需要使用管線寄存器(pipeline register)來保證至/從消息傳送存儲(chǔ)器620的訪問同步。
而且,LDPC解碼功能性600的各個(gè)功能塊實(shí)現(xiàn)(通過使用桶形移位器615結(jié)合消息傳送存儲(chǔ)器620的單個(gè)功能塊)的方式,允許消息傳送存儲(chǔ)器620使用單個(gè)端口的存儲(chǔ)設(shè)備;這必然占用比雙端口存儲(chǔ)設(shè)備更少的面積,同時(shí)也比雙端口存儲(chǔ)設(shè)備耗用更少的能量。
如上所述,使用LDPC解碼功能性600可以解碼各種不同類型的LDPC編碼信號(hào)。以下將提供一個(gè)位與字寬的具體例子,以及多個(gè)位/校驗(yàn)處理器610內(nèi)的位/校驗(yàn)處理器的數(shù)量,以示出它們在特定情況下的關(guān)系。提供給量度發(fā)生器603的I、Q值每個(gè)為7位。量度發(fā)生器603使用7位I、Q值生成的位量度每個(gè)為6位。因此,兩個(gè)單獨(dú)的量度存儲(chǔ)器606和607中的每一個(gè)都運(yùn)算180×360×6位的值;這需要DVB-S2區(qū)塊的長度為64,800位。
在設(shè)計(jì)能夠解碼遵從DVB-S2信號(hào)的結(jié)構(gòu)時(shí),從量度發(fā)生器630輸出的位量度需要有360×6位;也就是說,有360個(gè)不同的值,每個(gè)值為6位。這些位量度可提供給并行配置的360個(gè)單獨(dú)的位/校驗(yàn)處理器。更具體地,該多個(gè)位/校驗(yàn)處理器610包括BCP 611(第1個(gè)位校驗(yàn)處理器),...,和BCP 612(第360個(gè)位/校驗(yàn)處理器)。從該360個(gè)單獨(dú)的位/校驗(yàn)處理器中輸出的邊消息為6位值。因此,360個(gè)單獨(dú)的位/校驗(yàn)處理器的總輸出是360×6位;每個(gè)位/校驗(yàn)處理器輸出6位的邊消息。類似地,桶形移位器615內(nèi)的適當(dāng)移位的邊消息也是每個(gè)6位。因此,桶形移位器的輸出也共有360×6位。同樣,解碼遵從DVB-S2的信號(hào)時(shí),消息傳送存儲(chǔ)器620將傳送多達(dá)792×360×6位的值。因此有360個(gè)解碼位從SRAM 660中輸出。
還要注意的是,上述描述中的位值僅僅是實(shí)現(xiàn)LDPC解碼功能性600的一個(gè)可能實(shí)施例。根據(jù)本發(fā)明,對(duì)上述實(shí)施例中的各個(gè)值使用不同數(shù)量的位寬,還可以實(shí)現(xiàn)多個(gè)不同的實(shí)施例。
如圖7所示的實(shí)施例中LDPC解碼功能性700與圖6中的LDPC解碼功能性600的完全類似,除了使用虛擬雙端口量度存儲(chǔ)器705(如圖所示的PDPMM 705)代替乒乓存儲(chǔ)結(jié)構(gòu)605。虛擬雙端口量度存儲(chǔ)器705可支持雙端口存儲(chǔ)管理,即使它是一個(gè)單端口存儲(chǔ)設(shè)備。通過使用圖7中的虛擬雙端口量度存儲(chǔ)器705代替圖6中的乒乓存儲(chǔ)結(jié)構(gòu)605(包括雙端口存儲(chǔ)結(jié)構(gòu)),與LDPC解碼功能性600相比,LDPC解碼功能性700可顯著節(jié)省空間。在圖7所示的實(shí)施例中,處理與圖6中的描述類似的遵從DVB-S2的信號(hào)時(shí),虛擬雙端口量度存儲(chǔ)器705運(yùn)算180×360×6位的值。
如圖8所示的實(shí)施例中LDPC解碼功能性800中,I、Q輸入、量度發(fā)生器803(如圖所示的MG 803)、控制器850以及對(duì)應(yīng)的基于選擇的LDPC碼851的控制信號(hào)852與圖6所示的LDPC解碼功能性600中的非常相似。但是,與圖6中的宏塊699相比,LDPC解碼功能性800包括一個(gè)稍微修改的宏塊899(如圖所示的MB 899)。宏塊899可被復(fù)制一定的次數(shù),以協(xié)助提供比之前的實(shí)施例更有效的LDPC解碼功能性。宏塊899包括有所有的功能性,可被復(fù)制以實(shí)現(xiàn)更加并行的處理結(jié)構(gòu)。
圖8所示的實(shí)施例中,桶形移位器815包括在宏塊899內(nèi)部。這個(gè)實(shí)施例中的桶形移位器815與前述實(shí)施例中的桶形移位器615或桶形移位器715的不同之處在于,這個(gè)實(shí)施例中的桶形移位器815僅服務(wù)于它所在的實(shí)際宏塊899內(nèi)的部件。相反,桶形移位器615或桶形移位器715每個(gè)都服務(wù)于各自實(shí)施例中宏塊699和宏塊799的所有示例。因而桶形移位器815沒有桶形移位器615或桶形移位器715那么復(fù)雜。
由于桶形移位器815的位置與桶形移位器615或桶形移位器715不同,必須小心,以確保對(duì)邊消息進(jìn)行適當(dāng)?shù)匾莆灰员愣鄠€(gè)位/校驗(yàn)處理器810內(nèi)的后續(xù)校驗(yàn)節(jié)點(diǎn)處理或位節(jié)點(diǎn)處理。同樣,由于桶形移位器815的位置與桶形移位器615或桶形移位器715不同,需要對(duì)桶形移位器862和SARM860進(jìn)行重新配置以兼容這種不同順序的處理。
一種能夠解碼遵從DVB-S2信號(hào)的設(shè)計(jì)中包括18個(gè)單獨(dú)的宏塊示例。提供給量度發(fā)生器803的I、Q值每個(gè)7位。量度發(fā)生器803使用7位的I、Q值生成的位量度是每個(gè)為6位的值。
但是,圖8中宏塊899的每個(gè)塊的實(shí)現(xiàn)都與圖6中的宏塊699不同。乒乓存儲(chǔ)結(jié)構(gòu)805(如圖所示的PPMS 805)包括有量度存儲(chǔ)器806和807(如圖所示的MM 805和MM 807),在180×120位上運(yùn)算。這120個(gè)位每個(gè)都以20×6位實(shí)現(xiàn);也就是說,有20個(gè)單獨(dú)的值,每個(gè)值6位。從乒乓存儲(chǔ)結(jié)構(gòu)805輸出的位量度也具有120位(即,每個(gè)為20×6位)。
提供給多個(gè)位/檢驗(yàn)處理器810的這些位量度可提供給位于每個(gè)宏塊內(nèi)的并行配置的20個(gè)單獨(dú)的位/校驗(yàn)處理器。更具體地,多個(gè)位/校驗(yàn)處理器810包括BCP 811(第1個(gè)位/校驗(yàn)處理器),...,以及BCP 812(第20個(gè)位/校驗(yàn)處理器)。從這20個(gè)單獨(dú)的位/校驗(yàn)處理器810中,適當(dāng)?shù)剡呄⒁?20位輸出(即,每個(gè)為20×6位)。因此,每個(gè)宏塊899內(nèi)的20個(gè)單獨(dú)的位/校驗(yàn)處理器共有120位的輸出(即,20×6位)。多個(gè)位/校驗(yàn)處理器810的20個(gè)位/校驗(yàn)處理器中的每一個(gè)均輸出6位的邊消息。類似地,桶形移位器815內(nèi)適當(dāng)移位后的邊消息也是120位(即,20×6位)。因此,桶形移位器815也共有120位(即,20×6位)的輸出。同樣,解碼遵從DVB-S2的信號(hào)時(shí),消息傳送存儲(chǔ)器820需傳送792×120位的值。因而有120位(即,20×6位)的解碼位從SARM860中輸出。
與其它實(shí)施例一樣,要注意的是,桶形移位器815可在任何宏塊899的內(nèi)部或外部實(shí)現(xiàn)。如果桶形移位器815在宏塊899外部實(shí)現(xiàn),單個(gè)桶形移位器可運(yùn)算360×6位的邊消息值。但是,當(dāng)桶形移位器815在宏塊899內(nèi)部實(shí)現(xiàn)時(shí),那么將會(huì)有18個(gè)單獨(dú)的桶形移位器(即,每一個(gè)宏塊899中一個(gè)),運(yùn)算120位(即,20×6位)的邊消息值。
還要注意的是,宏塊899的數(shù)量可進(jìn)行選擇,以使LDPC解碼功能性800的總面積盡可能小。例如,為了解碼遵從DVB-S2的信號(hào),宏塊的數(shù)量乘以每個(gè)宏塊899的多個(gè)位/校驗(yàn)處理器內(nèi)的位/校驗(yàn)處理器的數(shù)量應(yīng)該等于360。例如,可選擇360個(gè)并行處理器來支持解碼遵從DVB-S2的信號(hào)所要求的吞吐量。為了支持更高的吞吐量,需要的并行處理器更多。
如圖9所示的實(shí)施例中LDPC解碼功能性900中,I、Q輸入、量度發(fā)生器903(如圖所示的MG 903)、控制器950以及對(duì)應(yīng)的基于選擇的LDPC碼951的控制信號(hào)952與圖7所示的LDPC解碼功能性700中的非常相似。但是,與圖7中的宏塊799相比,LDPC解碼功能性900包括有稍微修改后的宏塊999(如圖所示的MB 999)。
如9所示的實(shí)施例中,桶形移位器915包括在宏塊999內(nèi)部。這個(gè)實(shí)施例中的桶形移位器915與前述實(shí)施例中的桶形移位器615或桶形移位器715的不同之處在于,這個(gè)實(shí)施例中的桶形移位器915僅服務(wù)于它所在的實(shí)際宏塊999內(nèi)的部件。相反,桶形移位器615或桶形移位器715每個(gè)都服務(wù)于它們各自的實(shí)施例中的宏塊699和宏塊799的所有示例。因而桶形移位器915沒有桶形移位器615或桶形移位器715那么復(fù)雜。
由于桶形移位器915的位置與桶形移位器615或桶形移位器715不同,必須小心,以確保對(duì)邊消息進(jìn)行適當(dāng)?shù)匾莆灰员愣鄠€(gè)位/校驗(yàn)處理器910內(nèi)的后續(xù)校驗(yàn)節(jié)點(diǎn)處理或位節(jié)點(diǎn)處理。同樣,由于桶形移位器915的位置與桶形移位器615或桶形移位器715不同,需要對(duì)桶形移位器962和SARM 960進(jìn)行重新配置以兼容這種不同順序的處理。
與圖8中的實(shí)施例相似,圖9中的宏塊999可被復(fù)制預(yù)定的次數(shù),以協(xié)助提供比之前的實(shí)施例更有效的LDPC解碼功能性。宏塊999包括有所有的功能,可被復(fù)制以實(shí)現(xiàn)更加并行的處理結(jié)構(gòu)。
一種能夠解碼遵從DVB-S2信號(hào)的設(shè)計(jì)中包括18個(gè)單獨(dú)的宏塊示例。提供給量度發(fā)生器903的I、Q值每個(gè)7位。量度發(fā)生器903使用7位的I、Q值生成的位量度是每個(gè)為6位的值。
但是,圖9中宏塊999的每個(gè)塊的實(shí)現(xiàn)都與圖7中的宏塊799不同。虛擬雙端口量度存儲(chǔ)器905(如圖所示的PDPMM 905)在180×120位上運(yùn)算。這120個(gè)位每個(gè)都以20×6位實(shí)現(xiàn);也就是說,有20個(gè)單獨(dú)的值,每個(gè)值6位。從虛擬雙端口量度存儲(chǔ)器905輸出的位量度也具有120位(即,每個(gè)為20×6位)。
提供給多個(gè)位/檢驗(yàn)處理器910的這些位量度可提供給位于每個(gè)宏塊內(nèi)的并行配置的20個(gè)單獨(dú)的位/校驗(yàn)處理器。更具體地,多個(gè)位/校驗(yàn)處理器910包括BCP 911(第1個(gè)位/校驗(yàn)處理器),...,以及BCP 912(第20個(gè)位/校驗(yàn)處理器)。從這20個(gè)單獨(dú)的位/校驗(yàn)處理器910中,適當(dāng)?shù)剡呄⒁?20位輸出(即,每個(gè)為20×6位)。因此,每個(gè)宏塊999內(nèi)的20個(gè)單獨(dú)的位/校驗(yàn)處理器共有120位的輸出(即,20×6位)。多個(gè)位/校驗(yàn)處理器910的20個(gè)位/校驗(yàn)處理器中的每一個(gè)均輸出6位的邊消息。類似地,桶形移位器915內(nèi)適當(dāng)移位后的邊消息也是120位(即,20×6位)。因此,桶形移位器915也共有120位(即,20×6位)的輸出。同樣,解碼遵從DVB-S2的信號(hào)時(shí),消息傳送存儲(chǔ)器920需傳送792×120位的值。因而有120位(即,20×6位)的解碼位從SARM960中輸出。
與其它實(shí)施例一樣,要注意的是,桶形移位器915可在任何宏塊999的內(nèi)部或外部實(shí)現(xiàn)。如果桶形移位器915在宏塊999外部實(shí)現(xiàn),單個(gè)桶形移位器可運(yùn)算360×6位的邊消息值。但是,當(dāng)桶形移位器915在宏塊999內(nèi)部實(shí)現(xiàn)時(shí),那么將會(huì)有18個(gè)單獨(dú)的桶形移位器(即,每一個(gè)宏塊999中一個(gè)),運(yùn)算120位(即,20×6位)的邊消息值。
還要注意的是,宏塊999的數(shù)量可進(jìn)行選擇,以使LDPC解碼功能性900的總面積盡可能小。例如,為了解碼遵從DVB-S2的信號(hào),宏塊的數(shù)量乘以每個(gè)宏塊999的多個(gè)位/校驗(yàn)處理器910內(nèi)的位/校驗(yàn)處理器的數(shù)量應(yīng)該等于360。例如,可選擇360個(gè)并行處理器來支持解碼遵從DVB-S2的信號(hào)所要求的吞吐量。為了支持更高的吞吐量,需要的并行處理器更多。
這里還要注意的是,上述各個(gè)實(shí)施例中的控制器給其它的每個(gè)解碼功能塊提供同步信息。更具體地,這包括為每個(gè)對(duì)應(yīng)的量度發(fā)生器、量度存儲(chǔ)器、多個(gè)位/校驗(yàn)處理器、桶形移位器和消息傳送存儲(chǔ)器生成定時(shí)信號(hào)。這些定時(shí)信號(hào)提供給這些功能塊中的每一個(gè),不管這些功能塊在特定的實(shí)施例中是怎樣實(shí)現(xiàn)的。如果必要,可對(duì)這些定時(shí)信號(hào)進(jìn)行適當(dāng)?shù)男薷?,以適合給定的功能塊的實(shí)現(xiàn)方式。例如,根據(jù)桶形移位器是否在宏塊內(nèi)部或外部實(shí)現(xiàn),需要對(duì)定時(shí)信號(hào)進(jìn)行不同地處理。
同樣,如上所述,上述各實(shí)施例中每個(gè)不同的LDPC解碼功能性都能夠處理和解碼不同類型的LDPC編碼信號(hào),包括使用不同的奇偶校驗(yàn)矩陣產(chǎn)生的LDPC編碼信號(hào),以及具有不同的編碼率和/或調(diào)制類型且會(huì)基于逐幀甚至逐塊變化的LDPC編碼信號(hào)。例如,一個(gè)區(qū)塊可視為一幀內(nèi)的一個(gè)符號(hào)群。在某些情況下,一幀可包括多個(gè)區(qū)塊。
上述各實(shí)施例中的控制器還可對(duì)每個(gè)LDPC碼使用可編程和可選擇的參數(shù)。這些可編程和可選擇的參數(shù)包括每個(gè)LDPC二分圖的位節(jié)點(diǎn)度和校驗(yàn)節(jié)點(diǎn)度。此外,這些可編程和可選擇的參數(shù)還包括信息傳遞存儲(chǔ)器尋址和桶形移位器選擇參數(shù)。
例如,對(duì)于信息位節(jié)點(diǎn),為位+1提供了校驗(yàn)+q。同樣,對(duì)于奇偶校驗(yàn)位節(jié)點(diǎn),為位+q提供了校驗(yàn)+q。通過這樣做,可確保兩者能存儲(chǔ)在相同的存儲(chǔ)設(shè)備中(例如,相同的RAM中)。這是可能的,因?yàn)槠媾夹r?yàn)位節(jié)點(diǎn)的位+q是可容許的,因?yàn)樗鼈兪?1或+q值都沒有任何關(guān)系(注這些在輸出處理中不使用)。奇偶校驗(yàn)位節(jié)點(diǎn)的位+q不像信息位節(jié)點(diǎn),信息位節(jié)點(diǎn)要求按照用于輸出處理的多個(gè)并行處理引擎的順序+1。例如,實(shí)現(xiàn)如上所述的解碼遵從DVB-S2的信號(hào)的實(shí)施例時(shí),可有360個(gè)并行處理引擎用于輸出處理。例如,該360個(gè)并行處理引擎將處理對(duì)應(yīng)360個(gè)校驗(yàn)節(jié)點(diǎn)(即,0,q,2q,3q,...)的360個(gè)信息位節(jié)點(diǎn)(例如,節(jié)點(diǎn)0至節(jié)點(diǎn)359)。對(duì)于奇偶校驗(yàn)位節(jié)點(diǎn),這360個(gè)處理引擎將處理360個(gè)位節(jié)點(diǎn)(例如,n,n+q,n+2q,n+3q,...)。這些奇偶校驗(yàn)位節(jié)對(duì)應(yīng)該360個(gè)校驗(yàn)節(jié)點(diǎn)(例如,m,m+q,m+2q,m+3q,...)。通過這樣做,所有360個(gè)邊消息存儲(chǔ)在存儲(chǔ)設(shè)備的相同位置內(nèi),可在校驗(yàn)節(jié)點(diǎn)處理和位節(jié)點(diǎn)處理過程中使用。不這樣做,則需要2個(gè)單獨(dú)的存儲(chǔ)設(shè)備(一個(gè)存儲(chǔ)設(shè)備存儲(chǔ)對(duì)應(yīng)信息位節(jié)點(diǎn)的邊消息,另一個(gè)存儲(chǔ)設(shè)備存儲(chǔ)對(duì)應(yīng)奇偶校驗(yàn)位節(jié)點(diǎn)的邊消息)。
這種兼容不同類型的LDPC編碼信號(hào)的自適應(yīng)性使得上述各種實(shí)施例中的LDPC解碼功能性都能夠解碼遵從DVB-S2的LDPC編碼信號(hào)。
圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的量度發(fā)生器功能性1000的示意圖。如圖所示,量度發(fā)生器(如圖所示的MG)接收將為之計(jì)算量度的相關(guān)符號(hào)的I、Q值。該I、Q分量是單獨(dú)分開的,并分別提供給符號(hào)量度計(jì)算器功能塊(如圖所示的SMC)內(nèi)的I處理通道和Q處理通道。更具體地,接收的I分量(如圖所示的Rx_I)提供給I處理通道,接收的Q分量(如圖所示的Rx_Q)提供給Q處理通道。沿著這些各自的處理通道,確定該接收值與其對(duì)應(yīng)的系數(shù)(與生成該特定符號(hào)使用的適當(dāng)?shù)卣{(diào)制相關(guān))之間的差值。更具體地,在I處理通道中,從接收的I分量(即,Rx_I)中減去I系數(shù)(如圖所示的I_Coefj)。類似地,在Q處理通道中,從接收的Q分量(即,Rx_Q)中減去Q系數(shù)(如圖所示的Q_Coefj)。然后將每一個(gè)生成的差值進(jìn)行平方(即,自己與自己相乘)。接下來將生成的這些平方差值相加,并使用方差因子(用VF表示,其值等于1/(2σ2),其中σ是標(biāo)準(zhǔn)偏差雜訊系數(shù))進(jìn)行調(diào)整。然后符號(hào)量度計(jì)算器功能塊輸出符號(hào)量度(如圖所示的sym_metric(i)),隨后將該符號(hào)量度提供給位量度計(jì)算器功能塊。
將這些符號(hào)量度提供給位量度計(jì)算器功能塊后,便可計(jì)算每個(gè)期望的位(bit of interest)的位量度。如圖所示為計(jì)算位m的位量度。首先,使用位值m為0的所有生成的符號(hào)量度來執(zhí)行min*處理。同樣,也可以首先使用位值m為1的所有生成的符號(hào)量度來執(zhí)行min*處理。一旦確定了每一個(gè)min*處理的結(jié)果后,接下來確定它們之間的差值。還要注意的是,可使用直接的min處理代替min*處理?,F(xiàn)有技術(shù)中使用符號(hào)量度計(jì)算位量度的方法未采用min處理或min*處理。這是與現(xiàn)有技術(shù)的方法的重要區(qū)別,這也使性能相對(duì)于現(xiàn)有技術(shù)得到了更好的改善。
量度發(fā)生器執(zhí)行的計(jì)算可用數(shù)學(xué)式表示。符號(hào)量度的計(jì)算sym_metric(i)按照下式執(zhí)行sym_metric(i)=1/(2σ2)×[(Rx_I-I_Coefj)2+(Rx_Q-Q_Coefj)2]這一計(jì)算在圖中所示的符號(hào)量度計(jì)算器功能塊(SMC)內(nèi)發(fā)生。
然后,特定位m的位量度計(jì)算如下bit_met(bit m)=min*[all sym_metric(i)with bit m=0]-min*[all sym_metric(i)with bit m=1]這一計(jì)算在圖中所示的位量度計(jì)算器功能塊(BMC)內(nèi)發(fā)生。
還要注意的是,位量度計(jì)算器功能塊內(nèi)執(zhí)行的計(jì)算也可以僅使用與min*處理相對(duì)的min處理來執(zhí)行。
如上所述,在此描述的各種解碼實(shí)施例都適用于解碼各種不同類型的LDPC編碼信號(hào),包括其調(diào)制和/或編碼率基于逐塊頻繁變化的LDPC編碼信號(hào)。這種LDPC編碼信號(hào)包括遵從DVB-S2標(biāo)準(zhǔn)的LDPC編碼信號(hào)。
以下的4個(gè)圖示出了不同系數(shù)的使用,這些系數(shù)用來為與不同調(diào)制(即,每一個(gè)都包括有一個(gè)群集形狀和一個(gè)對(duì)應(yīng)的其內(nèi)群集點(diǎn)的映射的調(diào)制)相關(guān)的符號(hào)計(jì)算合適的量度。
圖11是根據(jù)本發(fā)明一個(gè)實(shí)施例的QPSK(正交相移鍵控)群集1100及其對(duì)應(yīng)的二進(jìn)制映射和其內(nèi)采用的QPSK系數(shù)的示意圖。
每個(gè)群集點(diǎn)(constellation point)被適當(dāng)標(biāo)記。例如,QPSK群集圖上的群集點(diǎn)標(biāo)記如下0群集點(diǎn)00,1群集點(diǎn)01,2群集點(diǎn)10,3群集點(diǎn)11。
圖中其它群集點(diǎn)的標(biāo)記可類似地執(zhí)行,并可在圖中示意性地示出。
這些群集點(diǎn)中的每一個(gè)都可以使用系數(shù)表示,從I、Q原點(diǎn)沿著二維圖的I、Q軸延伸。由于該群集形狀關(guān)于I、Q原點(diǎn)對(duì)稱,因而只需兩個(gè)系數(shù)來表示圖中的所有群集點(diǎn)。因?yàn)檫@種對(duì)稱,這兩個(gè)系數(shù)可看作是相同的值,但符號(hào)相反。因而描述QPSK形狀的群集內(nèi)的所有4個(gè)點(diǎn)只需要兩個(gè)不同的系數(shù)值。
更具體地,群集中每個(gè)點(diǎn)的笛卡爾坐標(biāo)形式可描述如下0群集點(diǎn)00→笛卡爾坐標(biāo)(P_1,P_1),1群集點(diǎn)01→笛卡爾坐標(biāo)(P_1,P_3),2群集點(diǎn)10→笛卡爾坐標(biāo)(P_3,P_1),3群集點(diǎn)12→笛卡爾坐標(biāo)(P_3,P_3)。
圖12是根據(jù)本發(fā)明一個(gè)實(shí)施例的8PSK(相移鍵控)群集1200及其對(duì)應(yīng)的二進(jìn)制映射和其內(nèi)使用的8PSK系數(shù)的示意圖。
這種群集中的每個(gè)點(diǎn)也可以使用系數(shù)表示,從I、Q原點(diǎn)分別沿著二維圖的I、Q軸延伸。該8PSK群集形狀也使用4個(gè)群集點(diǎn),但這4個(gè)群集點(diǎn)關(guān)于I、Q原點(diǎn)的位置比上圖中QPSK群集形狀內(nèi)的要小。由此可見,與前述實(shí)施例的QPSK調(diào)制內(nèi)的一樣,也可以使用某些相同的系數(shù)來描述8PSK調(diào)制內(nèi)的群集點(diǎn)。描述8PSK形狀的群集內(nèi)的所有8個(gè)點(diǎn)只需要4個(gè)不同的系數(shù)值。
更具體地,該群集中每個(gè)點(diǎn)的笛卡爾坐標(biāo)可描述如下
0群集點(diǎn)000→笛卡爾坐標(biāo)(P_1,P_1),1群集點(diǎn)001→笛卡爾坐標(biāo)(P_0,P_0),2群集點(diǎn)010→笛卡爾坐標(biāo)(0,P_2),3群集點(diǎn)011→笛卡爾坐標(biāo)(P_3,P_3),4群集點(diǎn)100→笛卡爾坐標(biāo)(0,P_0),5群集點(diǎn)101→笛卡爾坐標(biāo)(P_1,P_3),6群集點(diǎn)110→笛卡爾坐標(biāo)(P_3,P_1),7群集點(diǎn)111→笛卡爾坐標(biāo)(0,P_2)。
圖13是根據(jù)本發(fā)明一個(gè)實(shí)施例的16QAM群集1300及其對(duì)應(yīng)的十六進(jìn)制映射和其內(nèi)使用的16QAM系數(shù)的示意圖。
與上述的實(shí)施例類似,該群集中每個(gè)點(diǎn)也可以使用系數(shù)表示,從I、Q原點(diǎn)分別沿著二維圖的I、Q軸延伸。由于該16QAM調(diào)制的群集點(diǎn)的對(duì)稱性,因而只需4個(gè)不同的系數(shù)值便可描述該16QAM形狀的群集內(nèi)的所有16個(gè)系數(shù)。
更具體地,該群集內(nèi)每個(gè)點(diǎn)的笛卡爾坐標(biāo)可描述如下0群集點(diǎn)0000→笛卡爾坐標(biāo)(Q_1,Q_1),1群集點(diǎn)0001→笛卡爾坐標(biāo)(Q_1,Q_2),2群集點(diǎn)0010→笛卡爾坐標(biāo)(Q_0,Q_1),3群集點(diǎn)0011→笛卡爾坐標(biāo)(Q_0,Q_0),4群集點(diǎn)0100→笛卡爾坐標(biāo)(Q_3,Q_1),5群集點(diǎn)0101→笛卡爾坐標(biāo)(Q_2,Q_1),6群集點(diǎn)0110→笛卡爾坐標(biāo)(Q_3,Q_0),7群集點(diǎn)0111→笛卡爾坐標(biāo)(Q_2,Q_0)。
8群集點(diǎn)1000→笛卡爾坐標(biāo)(Q_3,Q_3),9群集點(diǎn)1001→笛卡爾坐標(biāo)(Q_2,Q_3),A群集點(diǎn)1010→笛卡爾坐標(biāo)(Q_3,Q_2),B群集點(diǎn)1011→笛卡爾坐標(biāo)(Q_2,Q_2),C群集點(diǎn)1100→笛卡爾坐標(biāo)(Q_1,Q_3),
D群集點(diǎn)1101→笛卡爾坐標(biāo)(Q_0,Q_3),E群集點(diǎn)1110→笛卡爾坐標(biāo)(Q_1,Q_2),F(xiàn)群集點(diǎn)0111→笛卡爾坐標(biāo)(Q_0,Q_2)。
圖14是根據(jù)本發(fā)明一個(gè)實(shí)施例的16APSK群集1400及其對(duì)應(yīng)的十六進(jìn)制映射和其內(nèi)使用的16APSK系數(shù)的示意圖。
與上述實(shí)施例類似,該群集內(nèi)每個(gè)點(diǎn)也可以使用系數(shù)表示,從I、Q原點(diǎn)分別沿著二維圖的I、Q軸延伸。更具體地,該群集內(nèi)每個(gè)點(diǎn)的笛卡爾坐標(biāo)可描述如下0群集點(diǎn)0000→笛卡爾坐標(biāo)(A_5,A_5),1群集點(diǎn)0001→笛卡爾坐標(biāo)(A_5,A_7),2群集點(diǎn)0010→笛卡爾坐標(biāo)(A_7,A_5),3群集點(diǎn)0011→笛卡爾坐標(biāo)(A_7,A_7),4群集點(diǎn)0100→笛卡爾坐標(biāo)(A_1,A_0),5群集點(diǎn)0101→笛卡爾坐標(biāo)(A_1,A_2),6群集點(diǎn)0110→笛卡爾坐標(biāo)(A_3,A_0),7群集點(diǎn)0111→笛卡爾坐標(biāo)(A_3,A_2)。
8群集點(diǎn)1000→笛卡爾坐標(biāo)(A_0,A_1),9群集點(diǎn)1001→笛卡爾坐標(biāo)(A_0,A_3),A群集點(diǎn)1010→笛卡爾坐標(biāo)(A_2,A_1),B群集點(diǎn)1011→笛卡爾坐標(biāo)(A_2,A_3),C群集點(diǎn)1100→笛卡爾坐標(biāo)(A_4,A_4),D群集點(diǎn)1101→笛卡爾坐標(biāo)(A_4,A_6),E群集點(diǎn)1110→笛卡爾坐標(biāo)(A_6,A_4),F(xiàn)群集點(diǎn)0111→笛卡爾坐標(biāo)(A_6,A_6)。
也要注意的是,這些調(diào)制的每一種(QPSK、8PSK、16QAM以及16APSK)也可用在DVB-S2標(biāo)準(zhǔn)中。
圖15是根據(jù)本發(fā)明一個(gè)實(shí)施例的調(diào)制系數(shù)表的示意圖。這個(gè)表示出了如何基于使用的調(diào)制選擇合適的系數(shù)來計(jì)算其中相關(guān)的量度。由表可見,對(duì)于每種調(diào)制,選擇不同的值用作系數(shù)。因而可有多達(dá)8個(gè)系數(shù)(例如,對(duì)于16APSK調(diào)制),4個(gè)系數(shù)(對(duì)8PSK或16QAM調(diào)制),或者少達(dá)2個(gè)系數(shù)(例如,對(duì)于QPSK調(diào)制)。如果想要服務(wù)于另一個(gè)實(shí)施例中的其它調(diào)制,則需要選擇不同數(shù)量的系數(shù)。
通過使用這個(gè)表,可以非常有效的設(shè)計(jì)量度發(fā)生器計(jì)算功能性。更具體地,可使用單個(gè)設(shè)計(jì)來計(jì)算與任何調(diào)制相關(guān)的量度,只要選擇合適的系數(shù)(即,適合給定的調(diào)制)用于量度的計(jì)算。
例如,當(dāng)計(jì)算與具有QPSK調(diào)制的一個(gè)符號(hào)相關(guān)的量度時(shí),分別選擇Coef_1和Coef_3的值為P_1和P_3。類似地,當(dāng)計(jì)算與具有8PSK調(diào)制的符號(hào)相關(guān)的量度時(shí),Coef_0、Coef_1、Coef_2和Coef_3的值可分別選擇為P_0、P_1、P_2和P_3。對(duì)于表中描述的其它調(diào)制類型,考慮到群集形狀和對(duì)應(yīng)該特定類型的調(diào)制的映射,可以采用類似的方式來選擇系數(shù)值(例如,Coef_0至Coef_7)。通過使用這種方法,系數(shù)值可基于想要的調(diào)制進(jìn)行選擇,因而可以采用單個(gè)量度發(fā)生器結(jié)構(gòu)來為多種調(diào)制類型執(zhí)行量度計(jì)算。以下將結(jié)合附圖描述這種量度發(fā)生器結(jié)構(gòu)的幾個(gè)實(shí)施例。
圖16,圖17,和圖18是根據(jù)本發(fā)明幾個(gè)實(shí)施例的量度發(fā)生器的結(jié)構(gòu)示意圖。
如圖16所示的量度發(fā)生器結(jié)構(gòu)1600,其功能性可分成符號(hào)量度計(jì)算器功能塊(如圖所示的SMC)和位量度計(jì)算器功能塊(如圖所示的BMC)。符號(hào)量度計(jì)算器功能塊計(jì)算多個(gè)符號(hào)量度(如圖所示的sym_metrics),位量度計(jì)算功能塊使用這多個(gè)符號(hào)量度來計(jì)算多個(gè)位量度(如圖所示的bit_metrics)。量度發(fā)生器結(jié)構(gòu)1600可以是硬件,執(zhí)行上述的數(shù)學(xué)計(jì)算,并具有兼容多個(gè)不同的編碼率和/或調(diào)制的能力。
根據(jù)本發(fā)明的可變編碼率功能性,為了支持多種編碼率和/或調(diào)制,使用了多個(gè)I、Q系數(shù),接收符號(hào)的I值(Rx_I)與多個(gè)I系數(shù)(如圖所示的I_Coef_0,...以及I_Coef_7)之間的“差值”都被同時(shí)計(jì)算。類似地,接收符號(hào)的Q值(Rx_Q)與多個(gè)Q系數(shù)(如圖所示的Q_Coef_0,...以及Q_Coef_7)之間的“差值”都被同時(shí)計(jì)算。在某些實(shí)施例中這些值的精度為9位。要注意的是,這些“差值”都通過使用上述群集的對(duì)稱性來計(jì)算,其中僅做加法,不做減法,從而節(jié)省了硬件。
然后對(duì)每一個(gè)這種差值(通過執(zhí)行加法以及基于群集形狀的對(duì)稱性合適選擇的系數(shù)生成)進(jìn)行平方運(yùn)算。在某些實(shí)施例中這些平方值的精度為18位。隨后對(duì)這些平方值進(jìn)行舍入運(yùn)算。因而,在某些實(shí)施例中這些值的精度四舍五入至9位。然后,這些舍入后的值被傳送給相應(yīng)的寄存器(如圖所示的REG)。
在其相應(yīng)的寄存器內(nèi)放置預(yù)定的時(shí)間后(例如,一個(gè)時(shí)鐘周期),當(dāng)從總的剩余位數(shù)中選擇出預(yù)定數(shù)量的有效位時(shí),每個(gè)寄存器的輸出被傳送給相應(yīng)的飽和功能塊(如圖所示的SAT)。每個(gè)飽和功能塊的輸出表示為I值(即,Sq_x0,Sq_x1,...,Sq_x7),以及Q值(即,Sq_y0,Sq_y1,...,Sq_y7)。某些實(shí)施例中這些值的精度是7位。然后將這些輸出提供給平方輸出復(fù)用器(MUX),或者平方輸出MUX(如圖所示的SO MUX)。
從平方輸出MUX中選擇值,這種選擇由一個(gè)控制器(如圖所示的CON)提供的調(diào)制和/或編碼率支配。如上面的其它實(shí)施例中所描述的,該控制器可根據(jù)被解碼的LDPC編碼信號(hào)的符號(hào)的編碼率和/或調(diào)制來控制LDPC解碼功能性的某些功能塊的操作。
在平方輸出MUX中通過使用控制器提供的信號(hào)進(jìn)行適當(dāng)選擇后,合適的項(xiàng)從平方輸出MUX中輸出,并被選擇和相加。例如,項(xiàng)(Rx_I+I_Coef_0)^2,如圖中Sq_I0out所示,與項(xiàng)(Rx_Q+Q_Coef_0)^2,如圖中Sq_Q0 out所示,被相加。從平方輸出MUX中輸出的I相關(guān)輸出指示出了I軸距離,將接收信號(hào)的I分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定I系數(shù)分開。
類似地,從平方輸出MUX中輸出的Q相關(guān)輸出指示出了Q軸距離,將接收信號(hào)的Q分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定Q系數(shù)分開。
選擇來自平方輸出MUX的適當(dāng)輸出相加獲得的相加值,接下來被傳遞給相應(yīng)的寄存器(如圖中REG所示),并在寄存器中停留預(yù)定的時(shí)間段(例如,一個(gè)時(shí)鐘周期)。然后對(duì)對(duì)應(yīng)的每個(gè)值進(jìn)行方差因子縮放(如圖中VF 1/(2σ2)所示)并最后進(jìn)行四舍五入,得到具有理想位精度的值。σ是接收的信號(hào)的標(biāo)準(zhǔn)雜訊的標(biāo)準(zhǔn)偏差。
然后,符號(hào)量度計(jì)算器功能塊(如圖中sym_metrics所示)產(chǎn)生的符號(hào)量度從符號(hào)量度計(jì)算器功能塊中輸出,并提供給位量度計(jì)算器功能塊。位量度計(jì)算器功能塊計(jì)算相應(yīng)的位量度(如圖中bit_metrics所示)。對(duì)于符號(hào)內(nèi)的每個(gè)位(bi),基于編碼率和/或調(diào)制(由控制器提供的信號(hào)所確定和控制,如圖中CON所示),位量度計(jì)算器功能塊對(duì)所有bi=1的符號(hào)量度(即,sym_metric值)執(zhí)行min*處理。也就是說,位量度計(jì)算器功能塊為符號(hào)的每個(gè)位位置中位值為1的所有符號(hào)量度執(zhí)行min*處理。類似地,位量度計(jì)算器功能塊對(duì)所有bi=0的符號(hào)量度(即,sym_metric值)執(zhí)行min*處理。也就是說,位量度計(jì)算器功能塊為符號(hào)的每個(gè)位位置中位值為0的所有的符號(hào)量度執(zhí)行min*處理。然后確定這兩個(gè)單獨(dú)的min*處理結(jié)果之間的差值,從而生成對(duì)應(yīng)的位量度(如圖中bit_metrics所示)。
可選擇地,在其它的實(shí)施例中,位量度之計(jì)算器功能塊可執(zhí)行直接的min處理(沒有對(duì)數(shù)校正因數(shù))。這種情況下,可確定這兩個(gè)單獨(dú)的直接min處理結(jié)果之間的差值,從而生成對(duì)應(yīng)的位量度(如圖中bit_metrics所示。)如以下描述的兩個(gè)其它可能的量度發(fā)生器結(jié)構(gòu)所示,還有許多其它可能的方法來實(shí)現(xiàn)量度發(fā)生器功能性,而不脫離本發(fā)明的范圍和精神。每個(gè)這些不同的量度發(fā)生器結(jié)構(gòu)都可支持變量編碼率和/或調(diào)制信號(hào)。
在量度發(fā)生器結(jié)構(gòu)1600中,對(duì)平方輸出MUX的輸出信號(hào)執(zhí)行方差因子縮放??蛇x擇地,信號(hào)因子縮放可在處理中更早階段執(zhí)行。在某些情況下,這種方法提供了更好和更有效的實(shí)現(xiàn)。
如圖17所示的量度發(fā)生器結(jié)構(gòu)1700,符號(hào)量度計(jì)算器功能塊(如圖中SMC所示)的運(yùn)算與前述實(shí)施例中的量度發(fā)生器結(jié)構(gòu)1600不同。位量度計(jì)算器功能塊(如圖中BMC所示)與前述實(shí)施例的量度發(fā)生器結(jié)構(gòu)1600類似。與前述實(shí)施例的量度發(fā)生器結(jié)構(gòu)1600類似,量度發(fā)生器結(jié)構(gòu)1700從一個(gè)控制器(如圖中CON所示)接收編碼率和/或調(diào)制控制信號(hào),以控制量度發(fā)生器結(jié)構(gòu)1700的不同功能塊的操作。
與上述量度發(fā)生器結(jié)構(gòu)1600的實(shí)施例類似,為了支持多種編碼率和/或調(diào)制,量度發(fā)生器結(jié)構(gòu)1700使用了多個(gè)I、Q系數(shù)。接收信號(hào)的I值(Rx_I)和多個(gè)I系數(shù)(如圖中I_Coef_0,...以及I_Coef_7所示)之間的差值都被同時(shí)計(jì)算。類似地,接收信號(hào)的Q值(Rx_Q)和多個(gè)Q系數(shù)(如圖中Q_Coef_0,...以及Q_Coef_7所示)之間的差值都被同時(shí)計(jì)算。在某些實(shí)施例中,這些值的精度是9位。要注意的是,可通過使用上述群集的對(duì)稱性來計(jì)算所有的這些“差值”,其中可僅執(zhí)行加法,不執(zhí)行減法,因而節(jié)省了硬件。
然后對(duì)每一個(gè)這種“差值”(通過執(zhí)行加法以及基于群集形狀的對(duì)稱性適當(dāng)選擇的系數(shù)所生成)進(jìn)行絕對(duì)值運(yùn)算。之后,將這些值傳遞給相應(yīng)的寄存器(如圖中REG所示)。在其相應(yīng)的寄存器內(nèi)停留預(yù)定的時(shí)間段后(例如,一個(gè)時(shí)鐘周期),接下來對(duì)每個(gè)相應(yīng)寄存器的輸出進(jìn)行西格馬因子縮放(如圖中SF(0.7071/σ)所示)。西格馬,σ’是接收信號(hào)的標(biāo)準(zhǔn)雜訊的標(biāo)準(zhǔn)偏差。進(jìn)行西格馬縮放后,繼續(xù)對(duì)這些值進(jìn)行舍入運(yùn)算,并隨后傳遞給寄存器(仍如圖中REG所示)。在寄存器中停留預(yù)定的時(shí)間段后(例如,一個(gè)時(shí)鐘周期),每個(gè)輸出被傳遞給相應(yīng)的絕對(duì)值和平方功能塊。然后對(duì)相應(yīng)的絕對(duì)值和平方功能塊的輸出進(jìn)行舍入運(yùn)算,然后將之傳遞給相應(yīng)的寄存器(如圖中REG所示)。每個(gè)寄存器的輸出表示為I值(即,Sq_x0,Sq_x1,...Sq_x7)以及Q值(即,Sq_y0,Sq_y1,...Sq_y7)。然后將這些輸出提供給平方輸出復(fù)用器(MUX),或平方輸出MUX(如圖中SO MUX所示)。
從平方輸出MUX中選擇值,這種選擇由一個(gè)控制器(如圖所示的CON)提供的調(diào)制和/或編碼率支配。如上面的其它實(shí)施例中所描述的,該控制器可根據(jù)被解碼的LDPC編碼信號(hào)的符號(hào)的編碼率和/或調(diào)制來控制LDPC解碼功能性的某些功能塊的操作。
在平方輸出MUX中通過使用控制器提供的信號(hào)進(jìn)行適當(dāng)選擇后,合適的項(xiàng)從平方輸出MUX中輸出,并被選擇和相加。例如,項(xiàng)(Rx_I+I_Coef_0)^2,如圖中Sq_I0 out所示,與項(xiàng)(Rx_Q+Q_Coef_0)^2,如圖中Sq_Q0 out所示,被相加。從平方輸出MUX中輸出的I相關(guān)輸出指示出了I軸距離,將接收信號(hào)的I分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定I系數(shù)分開。
類似地,從平方輸出MUX中輸出的Q相關(guān)輸出指示出了Q軸距離,將接收信號(hào)的Q分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定Q系數(shù)分開。
進(jìn)行相加運(yùn)算后,在從符號(hào)量度計(jì)算器功能塊輸出至位量度計(jì)算器功能塊之前,對(duì)這些值進(jìn)行相應(yīng)的舍入操作。量度發(fā)生器結(jié)構(gòu)1700內(nèi)的位量度計(jì)算器功能塊的運(yùn)算與前述實(shí)施例中量度發(fā)生器結(jié)構(gòu)1600中的位量度計(jì)算器功能塊的運(yùn)算類似。
如圖18所示的量度發(fā)生器結(jié)構(gòu)1800,該符號(hào)量度計(jì)算器功能塊(如圖8中SMC所示)與前述實(shí)施例的量度發(fā)生器結(jié)構(gòu)1600以及前述實(shí)施例的量度發(fā)生器1700不同,位量度計(jì)算器功能塊(如圖8中BMC所示)的運(yùn)算與前述實(shí)施例的量度發(fā)生器結(jié)構(gòu)1600以及前述實(shí)施例的量度發(fā)生器1700類似。同樣與前述實(shí)施例的量度發(fā)生器結(jié)構(gòu)1600以及前述實(shí)施例的量度發(fā)生器1700類似的,量度發(fā)生器1800從一個(gè)控制器(如圖8中CON所示)處接收編碼率和/或調(diào)制控制信號(hào),以控制量度發(fā)生器結(jié)構(gòu)1800的不同功能塊的運(yùn)算。
在量度發(fā)生器結(jié)構(gòu)1800的中,接收的I、Q值先進(jìn)行西格馬因子縮放。接收的I、Q值傳遞給寄存器(如圖中REG所示)。在寄存器內(nèi)停留預(yù)定的時(shí)間段后(例如,一個(gè)時(shí)鐘周期),對(duì)這些輸入I、Q值進(jìn)行西格馬因子縮放(如圖中SF(0.7071/σ)所示)。其中西格馬,σ’是接收信號(hào)的標(biāo)準(zhǔn)雜訊的標(biāo)準(zhǔn)偏差。在進(jìn)行西格馬因子縮放后,對(duì)這些值進(jìn)行舍入運(yùn)算,并接下來被傳遞給寄存器(如圖中REG所示)。在寄存器中停留預(yù)定的時(shí)間段后(例如,一個(gè)時(shí)鐘周期),接下來將這些縮放后的I、Q值傳遞給相應(yīng)的求和塊。
與上述量度發(fā)生器結(jié)構(gòu)1600的實(shí)施例以及量度發(fā)生器結(jié)構(gòu)1700的實(shí)施例類似,為了支持多種編碼率和/或調(diào)制,量度發(fā)生器結(jié)構(gòu)1800使用了多個(gè)縮放的I、Q系數(shù)。接收信號(hào)的I值(Rx_I)和多個(gè)I系數(shù)(如圖中I_Coef_0,...以及I_Coef_7所示)之間的差值都被同時(shí)計(jì)算。類似地,接收信號(hào)Q值(Rx_Q)和多個(gè)Q系數(shù)(如圖中Q_Coef_0,...以及Q_Coef_7所示)之間的差值都被同時(shí)計(jì)算。在某些實(shí)施例中,這些值的精度是9位。要注意的是,通過使用上述群集的對(duì)稱性來計(jì)算所有的這些“差值”,其中僅需執(zhí)行加法,不執(zhí)行減法,因而節(jié)省了硬件。
然后對(duì)每一個(gè)這種“差值”(通過執(zhí)行加法以及基于群集形狀的對(duì)稱性適當(dāng)選擇的系數(shù)所生成)進(jìn)行絕對(duì)值運(yùn)算。之后,將這些值傳遞給相應(yīng)的寄存器(如圖中REG所示)。在其相應(yīng)的寄存器內(nèi)停留預(yù)定的時(shí)間段后(例如,一個(gè)時(shí)鐘周期),接下來每個(gè)相應(yīng)寄存器的輸出被傳遞給相應(yīng)的絕對(duì)值和平方功能塊。然后對(duì)相應(yīng)的絕對(duì)值和平方功能塊的輸出進(jìn)行舍入運(yùn)算,然后將之傳遞給相應(yīng)的寄存器(如圖中REG所示)。每個(gè)寄存器的輸出表示為I值(即,Sq_x0,Sq_x1,...Sq_x7)以及Q值(即,Sq_y0,Sq_y1,...Sq_y7)。然后將這些輸出提供給平方輸出復(fù)用器(MUX),或平方輸出MUX(如圖中SO MUX所示)。
從平方輸出MUX中選擇值,這種選擇由一個(gè)控制器(如圖所示的CON)提供的調(diào)制和/或編碼率支配。如上面的其它實(shí)施例中所描述的,該控制器可根據(jù)被解碼的LDPC編碼信號(hào)的符號(hào)的編碼率和/或調(diào)制來控制LDPC解碼功能性的某些功能塊的操作。
在平方輸出MUX中通過使用控制器提供的信號(hào)進(jìn)行適當(dāng)選擇后,合適的項(xiàng)從平方輸出MUX中輸出,并被選擇和相加。例如,項(xiàng)(Rx_I+I_Coef_0)^2,如圖中Sq_I0 out所示,與項(xiàng)(Rx_Q+Q_Coef_0)^2,如圖中Sq_Q0 out所示,被相加。從平方輸出MUX中輸出的I相關(guān)輸出指示出了I軸距離,將接收信號(hào)的I分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定I系數(shù)分開。
類似地,從平方輸出MUX中輸出的Q相關(guān)輸出指示出了Q軸距離,將接收信號(hào)的Q分量與對(duì)應(yīng)基于適當(dāng)編碼率和/或調(diào)制的適當(dāng)群集的群集點(diǎn)的預(yù)定Q系數(shù)分開。
進(jìn)行相加運(yùn)算后,在從符號(hào)量度計(jì)算器功能塊輸出至位量度計(jì)算器功能塊之前,對(duì)這些值進(jìn)行相應(yīng)的舍入操作。量度發(fā)生器結(jié)構(gòu)1800內(nèi)的位量度計(jì)算器功能塊的運(yùn)算與前述實(shí)施例中量度發(fā)生器結(jié)構(gòu)1600中的位量度計(jì)算器功能塊以及前述實(shí)施例中量度發(fā)生器結(jié)構(gòu)1700中的位量度計(jì)算器功能塊的運(yùn)算類似。
如上其它實(shí)施例所述,解碼LDPC編碼信號(hào)時(shí)執(zhí)行的迭代解碼處理一般包括位節(jié)點(diǎn)處理和校驗(yàn)節(jié)點(diǎn)處理,二者可選擇地執(zhí)行也可以連續(xù)執(zhí)行。位節(jié)點(diǎn)處理包括更新和計(jì)算與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb。在第一次迭代(在其中使用了預(yù)定值)的初始化后,使用最近更新的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC來執(zhí)行與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的更新與計(jì)算。
校驗(yàn)節(jié)點(diǎn)處理包括更新與計(jì)算與校驗(yàn)節(jié)點(diǎn)MedgeC相關(guān)的邊消息。使用最近更新的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb來執(zhí)行與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC的更新與計(jì)算。
在執(zhí)行這些計(jì)算的過程中,硬件實(shí)現(xiàn)通常都在對(duì)數(shù)域(其中乘法被簡化成加法,除法被簡化成減法)中執(zhí)行。以下將結(jié)合附圖詳細(xì)介紹位節(jié)點(diǎn)處理和校驗(yàn)節(jié)點(diǎn)處理的各個(gè)不同實(shí)施例。
圖19是根據(jù)本發(fā)明一個(gè)實(shí)施例的位節(jié)點(diǎn)處理功能性1900的示意圖。與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC以及位量度(如圖中bit_metrics所示)都被輸入到位節(jié)點(diǎn)處理功能性1900中。與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC還同時(shí)提供給累加器(如圖中ACC所示)和FIFO(先進(jìn)先出)功能塊。位量度也提供給累加器,在其內(nèi)位量度被提供給多路復(fù)用器(如圖中累加器內(nèi)的MUX所示)。在位節(jié)點(diǎn)處理過程中,第一次接收的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息,如MedgeC(0),與位量度相加。之后,這次相加的和(例如,MedgeC(0)與位量度的和)與第二次接收的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息,如,MedgeC(1),相加。在下一個(gè)時(shí)鐘周期中,第二次相加的和(例如,MedgeC(0)、MedgeC(1)與位量度的和)與第三次接收的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息,如MedgeC(2)相加。通過這種方式求和,生成總和值時(shí)可節(jié)省一個(gè)時(shí)鐘周期。
兩個(gè)寄存器(一個(gè)位于累加器內(nèi)和一個(gè)位于累加器外)用來提供總和值,該總和值包括所有與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC以及期望的位量度(即,∑(MedgeC)+bit_metric)。這個(gè)值,∑(MedgeC)+bit_metric,可被看作是位節(jié)點(diǎn)處理功能性1900內(nèi)的軟輸出。然后將該軟輸出提供給最重要的位輸出處理器(如圖中MSB OP所示)。
然后將FIFO的輸出提供給減法功能塊,并從FIFO的輸出(僅僅是合適順序的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC)中減去軟輸出(由累加器提供)。減法功能塊的輸出結(jié)果便是更新后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb。該更新后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb包括所有與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息MedgeC(被計(jì)算的特殊邊消息除外)與位量度的和。在后續(xù)的迭代解碼處理過程中執(zhí)行校驗(yàn)節(jié)點(diǎn)處理時(shí),這些更新后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb由符號(hào)數(shù)值格式處理器(如圖中SMFP所示)以符號(hào)數(shù)值格式輸出,以便于min**處理。符號(hào)數(shù)值格式處理器的輸出中最重要的位指示符號(hào),剩余的位指示實(shí)際值。與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb以符號(hào)數(shù)值格式存儲(chǔ)在存儲(chǔ)器中。要注意的是,與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec以2的補(bǔ)碼格式存儲(chǔ),以便于后續(xù)的迭代解碼處理過程中的位節(jié)點(diǎn)處理。
如上所述,根據(jù)本發(fā)明,可采用多種可能的手段來實(shí)現(xiàn)校驗(yàn)節(jié)點(diǎn)處理功能性。
圖20、圖21、圖22和圖23是根據(jù)本發(fā)明幾個(gè)實(shí)施例的校驗(yàn)節(jié)點(diǎn)處理功能性的示意圖。
如圖20所示的校驗(yàn)節(jié)點(diǎn)處理功能性2000中,通過與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb來更新與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec時(shí),使用min**處理和min**-處理。最近更新的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb被同時(shí)提供給min**處理功能塊和FIFO(先進(jìn)先出)塊。隨著后續(xù)的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb提供給min**處理功能塊,一個(gè)寄存器(如圖中REG所示)和一個(gè)反饋通道被操作來執(zhí)行所有與位節(jié)點(diǎn)有關(guān)的邊消息Medgeb的min**處理。然后從另一個(gè)寄存器(如圖中REG所示)輸出的min**處理的最后結(jié)果提供給min**-處理功能塊,且適當(dāng)排序后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb也從FIFO中提供給該min**-處理功能塊。min**-處理功能塊的輸出便是更新后的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec。
如圖21所示的校驗(yàn)節(jié)點(diǎn)處理功能性2100中,通過與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb來更新與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec時(shí),使用了min處理和min-處理。最近更新的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb被同時(shí)提供給min處理功能塊和FIFO(先進(jìn)先出)塊。隨著后續(xù)的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb提供給min處理功能塊,一個(gè)寄存器(如圖中REG所示)和一個(gè)反饋通道被操作來執(zhí)行所有與位節(jié)點(diǎn)有關(guān)的邊消息Medgeb的min處理。然后從另一個(gè)寄存器(如圖中REG所示)輸出的min處理的最后結(jié)果提供給min-處理功能塊,且適當(dāng)排序后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb也從FIFO中提供給該min-處理功能塊。min-處理功能塊的輸出便是更新后的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec。
要注意的是,min功能塊的功能性可看成是執(zhí)行一種帶有最小值比較處理的min*處理。
以下將詳細(xì)介紹執(zhí)行min處理的實(shí)施例。還要注意的是,對(duì)于每個(gè)宏塊的所有預(yù)定數(shù)量的處理器僅需要一個(gè)FIFO塊。也就是說,上述每個(gè)實(shí)施例包括多個(gè)支持LDPC解碼功能性的宏塊,這些實(shí)施例可利用校驗(yàn)節(jié)點(diǎn)處理功能性2000或校驗(yàn)節(jié)點(diǎn)處理功能性2100來實(shí)現(xiàn),并且每個(gè)實(shí)施例中僅需要一個(gè)FIFO。在某些例子中,LDPC解碼功能性的每個(gè)宏塊中的所有20個(gè)處理器只需要一個(gè)FIFO。以下介紹的校驗(yàn)節(jié)點(diǎn)處理功能性2200和校驗(yàn)節(jié)點(diǎn)處理功能性2300也是如此。
如圖22所示的校驗(yàn)節(jié)點(diǎn)處理功能性2200是實(shí)現(xiàn)校驗(yàn)節(jié)點(diǎn)處理功能性2000的一種可能的方式。
從更高的角度來看,校驗(yàn)節(jié)點(diǎn)處理功能性2200的功能性與校驗(yàn)節(jié)點(diǎn)處理功能性2000非常類似。圖22中提供了min**處理功能塊和min**-處理功能塊的更多細(xì)節(jié)。min**處理功能塊接收與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb作為輸入,Medgeb在圖中也表示為x。min**處理功能塊的運(yùn)算包括計(jì)算兩個(gè)單獨(dú)的對(duì)數(shù)校正因子,如圖中l(wèi)n(1+e-|+x+y|)和-ln(1+e-|x-y|)所示,以及確定兩個(gè)單獨(dú)的值之間的最小值(即,x和y的最小值)。確定哪個(gè)值是兩個(gè)(x或y)中的最小值由多路復(fù)用器(MUX)來執(zhí)行。為此,min**處理功能塊計(jì)算x-y和x+y這兩個(gè)單獨(dú)的值。然后將這些值分別提供給其對(duì)應(yīng)的塊以計(jì)算其對(duì)應(yīng)的對(duì)數(shù)校正值。
min**處理功能塊的輸出是該最小值(x或y)與兩個(gè)對(duì)數(shù)校正因子的和。y值作為min**功能塊的輸出,反饋回給相同的min**功能塊進(jìn)行后續(xù)的計(jì)算。
min**-處理功能塊的運(yùn)算與min**處理功能塊有點(diǎn)類似。但是,min**-處理功能塊對(duì)min**處理功能塊的結(jié)果(其輸出示為z)以及FIFO提供的適當(dāng)排序后的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb(如x所示)進(jìn)行運(yùn)算。值z可視為是所有與位節(jié)點(diǎn)相關(guān)的邊消息的min**處理結(jié)果(即,min**(all Medgeb))。
min**-處理功能塊的運(yùn)算包括計(jì)算兩個(gè)單獨(dú)的對(duì)數(shù)校正因子,如圖中的ln(1+e-|z+x|)和-ln(1+e-|z-x|),以及確定兩個(gè)單獨(dú)值之間的最小值(即,z和x的最小值)。確定哪個(gè)值是兩個(gè)(z或x)中的最小值由多路復(fù)用器(MUX)來執(zhí)行。為此,min**-處理功能塊計(jì)算z-x和z+x的這兩個(gè)值,然后將這些值分別提供給其對(duì)應(yīng)的塊計(jì)算其對(duì)應(yīng)的對(duì)數(shù)校正值。
從min**處理功能塊和min**-處理功能塊的輸出的最終結(jié)果便是更新后的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec。要注意的是,可利用LUT(查詢表)來確定每個(gè)min**處理功能塊和min**-處理功能塊中的對(duì)數(shù)校正值,該LUT可使用一些其它類型的存儲(chǔ)結(jié)構(gòu)來實(shí)現(xiàn)。為此,需在每個(gè)min**處理功能塊和min**-處理功能塊中實(shí)現(xiàn)兩個(gè)單獨(dú)的LUT。
如圖23所示的校驗(yàn)節(jié)點(diǎn)處理功能性2300是實(shí)現(xiàn)校驗(yàn)節(jié)點(diǎn)處理功能性2100的一種可能的方式。該圖中使用min處理和min-處理通過與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb來更新與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec。
從更高的角度來看,校驗(yàn)節(jié)點(diǎn)處理功能性2300的功能與校驗(yàn)節(jié)點(diǎn)處理功能性2100非常類似。圖23中提供了min處理功能塊和min-處理功能塊的更多細(xì)節(jié)。
在min處理功能塊內(nèi),接收的與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb立即進(jìn)行絕對(duì)值確定運(yùn)算并轉(zhuǎn)換成符號(hào)數(shù)值格式,使得所有輸入的最小值更容易找到。這個(gè)操作在數(shù)值比較功能塊(如MAG COM所示)內(nèi)進(jìn)行。所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的最小值(如min所示)和最大值(如max所示)。所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的最大值從數(shù)值比較功能塊中輸出,然后傳遞給min處理功能塊內(nèi)的min*處理功能塊。min處理功能塊的最終輸出便是所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的min*處理結(jié)果(如Ms_all所示)以及除最小輸入值外的所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的min*處理結(jié)果(如Ms min所示)。
min-處理功能塊接收每個(gè)min*處理結(jié)果(Ms_all和Ms_min)。min-處理功能塊也從FIFO接收x的絕對(duì)值,即|x |。min-處理功能塊內(nèi)的min*-處理功能塊對(duì)接收的x的絕對(duì)值即|x|以及min處理功能塊提供的所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的min*處理結(jié)果(如Ms_all所示)進(jìn)行運(yùn)算。min-處理功能塊內(nèi)的min*-處理功能塊的結(jié)果提供給min-處理功能塊內(nèi)的MUX作為一個(gè)輸入,除最小輸入值外的所有與位節(jié)點(diǎn)相關(guān)的邊消息Medgeb的min*處理結(jié)果(如Ms_min所示)作為另一個(gè)輸入提供給min-處理功能塊內(nèi)的MUX。MUX的選擇輸出表示為min-處理功能塊內(nèi)的X。兩個(gè)單獨(dú)的賦值用來從X值生成Y和其后的Z。
Y=XifX≥0OifX<0]]>Z=YifS=0-YifS=1]]>S是FIFO提供的MSB(最高有效位)?;谏鲜龅闹礩和Z的規(guī)則和賦值,S值可幫助確定更新的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec的最終值。
上述的各種執(zhí)行校驗(yàn)節(jié)點(diǎn)處理以實(shí)現(xiàn)校驗(yàn)節(jié)點(diǎn)處理功能性的實(shí)施例都可以在包括有可用來解碼LDPC編碼信號(hào)的LDPC解碼功能性的通信設(shè)備內(nèi)實(shí)現(xiàn)。
以下的實(shí)施例將介紹幾種可用于執(zhí)行校驗(yàn)節(jié)點(diǎn)處理的計(jì)算的可能的非常有效的方法。某些實(shí)施例示出了min*處理,這些設(shè)計(jì)經(jīng)過稍微的修改便可適用于max*處理。這些微小的修改是為了與硬件相一致,以執(zhí)行想要類型的處理所必要的計(jì)算。上面已經(jīng)介紹了幾種進(jìn)行校驗(yàn)節(jié)點(diǎn)處理時(shí)采用的處理。例如,min*處理的不同實(shí)施例可很容易地用來執(zhí)行max*處理。類似地,min*-處理的不同實(shí)施例也可很容易地用來執(zhí)行max*-處理。
圖24是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*處理功能性2400的示意圖。圖中的min*處理對(duì)兩個(gè)輸入即x和y進(jìn)行運(yùn)算。x和y之間的差值z被確定(即z=x-y)。每個(gè)輸入x和y還提供給MUX。x和y之間的差值MSB,即z,被用來選擇輸入x或y中哪一個(gè)是最小值(即,min(x,y))。
同樣,確定的x和y之間的差值,即z,也提供給對(duì)數(shù)校正因子計(jì)算功能塊計(jì)算-ln(l+e-|x-y|);該對(duì)數(shù)校正值表示為log_out。最終的min*處理結(jié)果為x或y中的最小值與該對(duì)數(shù)校正值(即,log_out)的和。
圖25是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*對(duì)數(shù)表的示意圖。如上其它實(shí)施例所述,LUT(查詢表)可用來基于z的值快速提供預(yù)定(或預(yù)先計(jì)算)的值。該表可基于x和y之間的差值即z的不同值提供對(duì)數(shù)校正因子、log_out(二進(jìn)制),還可以提供項(xiàng)-ln(1+e-|x-y|)的實(shí)際值以及該項(xiàng)的二進(jìn)制賦值(log_out)。由此可見,當(dāng)x和y之間的差值z相對(duì)大于一個(gè)特定的閾值(即,相對(duì)較大的正值數(shù)字)或相對(duì)小于一個(gè)特定的閾值(即,相對(duì)較大的負(fù)值數(shù)字)時(shí),則log_out的值飽和并被設(shè)為000。本實(shí)施例中的min*對(duì)數(shù)表中的二進(jìn)制log_out值的精度為3位,當(dāng)然也可以采用其它的精度,而不脫離本發(fā)明的范圍和精神。表中有一個(gè)log_out的增益區(qū),該區(qū)中的值以z的函數(shù)發(fā)生變化。例如,當(dāng)z從大約+1.25變化至-1.25時(shí),log_out的值實(shí)際上以z的函數(shù)發(fā)生改變。但是,當(dāng)z大于+1.25時(shí),log_out的值飽和。同樣,當(dāng)z的值小于-1.25時(shí),log_out的值也飽和。
由于對(duì)數(shù)校正值的這種特性,可以更有效、更快地實(shí)現(xiàn)min*處理,用于校驗(yàn)節(jié)點(diǎn)處理過程中。類似地,各種值可預(yù)定(或預(yù)先計(jì)算)并存儲(chǔ)在使用不同類型的存儲(chǔ)器來實(shí)現(xiàn)的LUT中,以在使用LDPC解碼功能性的通信設(shè)備中提供更快的計(jì)算和處理,用于校驗(yàn)節(jié)點(diǎn)處理中的其它計(jì)算也從中受益。
圖26是根據(jù)本發(fā)明另一個(gè)實(shí)施例的min*處理功能性2600的示意圖。圖26所示的功能性也能執(zhí)行min*處理,但是采用了比前述實(shí)施例更快的方式。在某些方面,這個(gè)實(shí)施例與上面描述的實(shí)施例類似。但是,圖26中采用了兩個(gè)單獨(dú)且同時(shí)運(yùn)算的對(duì)數(shù)校正因子計(jì)算功能塊。
該圖中的min*處理也對(duì)兩個(gè)輸入即x和y進(jìn)行運(yùn)算。x和y之間的差值z被確定(即z=x-y)。每個(gè)輸入x和y還提供給MUX。y的值是兩個(gè)其它值的和,即前次迭代中x或y的最小值(如min(x,y)k-1所示)與前次迭代中的對(duì)數(shù)校正因子(log_outk-1)的和。x和y之間的差值MSB,即z,被用來選擇輸入x或y中哪一個(gè)是本次迭代的最小值(即,min(x,y)k)。
同樣,確定的x和y之間的差值,即z,也分別提供給兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊計(jì)算-ln(1+e-|z|)和-ln(1+e+|z|);這兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊的計(jì)算結(jié)果值被提供給另一個(gè)MUX。x與y之間的差值MSB,即z,被用來選擇這兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊輸出的值中哪一個(gè)將被用作本次迭代的實(shí)際對(duì)數(shù)校正值。最終選擇的本次迭代的對(duì)數(shù)校正值表示為log_outk。最后min*處理的結(jié)果被看作是x或y中的最小值(即,min(x,y)k)與對(duì)數(shù)校正值(即,log_outk)的和。但是,在這個(gè)實(shí)施例中,這兩個(gè)值保持分開,便于執(zhí)行后續(xù)的計(jì)算步驟。如果需要的話,這兩個(gè)值可選擇性地加在一起。
圖27是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*-處理功能性2700的示意圖。該圖中的功能性與min*處理功能性2400有些類似。
圖中的min*-處理對(duì)兩個(gè)輸入即x和y進(jìn)行運(yùn)算。x和y之間的差值z被確定(即z=x-y)。每個(gè)輸入x和y還提供給MUX。x和y之間的差值MSB,即z,被用來選擇輸入x或y中哪一個(gè)是最小值(即,min(x,y))。
同樣,確定的x和y之間的差值,即z,也提供給對(duì)數(shù)校正因子計(jì)算功能塊計(jì)算-ln(1-e-|x-y|);該對(duì)數(shù)校正值表示為log_out。最終的min*-處理結(jié)果為x或y中的最小值與該對(duì)數(shù)校正值(即,log_out)的和。
圖28是根據(jù)本發(fā)明一個(gè)實(shí)施例的min*-對(duì)數(shù)表的示意圖。如上其它實(shí)施例所述,LUT(查詢表)可用來基于z的值快速提供預(yù)定(或預(yù)先計(jì)算)的值。該表可基于x和y之間的差值即z的不同值提供對(duì)數(shù)校正因子、log_out(二進(jìn)制),還可以提供項(xiàng)-ln(1-e-|x-y|)的實(shí)際值以及該項(xiàng)的二進(jìn)制賦值(log_out)。由此可見,當(dāng)x和y之間的差值z相對(duì)大于一個(gè)特定的閾值(即,相對(duì)較大的正值數(shù)字)或相對(duì)小于一個(gè)特定的閾值(即,相對(duì)較大的負(fù)值數(shù)字)時(shí),則log_out的值飽和并被設(shè)為00000。本實(shí)施例中的min*對(duì)數(shù)表中的二進(jìn)制log_out值的精度為5位,當(dāng)然也可以采用其它的精度,而不脫離本發(fā)明的范圍和精神。表中有一個(gè)log_out的增益區(qū),該區(qū)中的值以z的函數(shù)發(fā)生變化。例如,當(dāng)z從大約+1.5變化至-1.5時(shí),log_out的值實(shí)際上以z的函數(shù)發(fā)生改變。但是,當(dāng)z大于+1.5時(shí),log_out的值飽和。同樣,當(dāng)z的值小于-1.5時(shí),log_out的值也飽和。
關(guān)于min*-處理中l(wèi)og_out的值,當(dāng)z=0時(shí),則可使用log_out的預(yù)定值(如二進(jìn)制01000所示,并用星號(hào)*標(biāo)識(shí))。這是由于如果對(duì)數(shù)字0取自然對(duì)數(shù)(即,ln(0))時(shí)將產(chǎn)生非法值。因此,這種情況下將使用預(yù)定的較大值估計(jì),如min*-對(duì)數(shù)表中所示。
由于對(duì)數(shù)校正值的這種特性,可以更有效、更快地實(shí)現(xiàn)min*-處理,用于校驗(yàn)節(jié)點(diǎn)處理過程中。類似地,各種值可預(yù)定(或預(yù)先計(jì)算)并存儲(chǔ)在使用不同類型的存儲(chǔ)器來實(shí)現(xiàn)的LUT中,以在使用LDPC解碼功能性的通信設(shè)備中提供更快的計(jì)算和處理,用于校驗(yàn)節(jié)點(diǎn)處理中的其它計(jì)算也從中受益。
圖29和圖30是根據(jù)本發(fā)明實(shí)施例的min*-處理功能性的的示意圖。
如圖29所示的min*-處理功能性2900,與min*處理功能性2600類似。圖29所示的功能性也能執(zhí)行min*-處理,但是采用了比前述實(shí)施例更快的方式。在某些方面,這個(gè)實(shí)施例與上面描述的執(zhí)行min*-處理的實(shí)施例類似。但是,本實(shí)施例采用了兩個(gè)單獨(dú)且同時(shí)運(yùn)算的對(duì)數(shù)校正因子計(jì)算功能塊。
該圖中的min*-處理也對(duì)兩個(gè)輸入即x和y進(jìn)行運(yùn)算。x和y之間的差值z被確定(即z=x-y)。每個(gè)輸入x和y還提供給MUX。y的值是兩個(gè)其它值的和,即前次迭代中x或y的最小值(如min(x,y)k-1所示)與前次迭代中的對(duì)數(shù)校正因子(log_outk-1)的和。x和y之間的差值MSB,即z,被用來選擇輸入x或y中哪一個(gè)是本次迭代的最小值(即,min(x,y)k)。
同樣,確定的x和y之間的差值,即z,也分別提供給兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊計(jì)算-ln(1-e-|z|)和-ln(1-e+|z|);這兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊的計(jì)算結(jié)果值被提供給另一個(gè)MUX。x與y之間的差值MSB,即z,被用來選擇這兩個(gè)單獨(dú)的對(duì)數(shù)校正因子計(jì)算功能塊輸出的值中哪一個(gè)將被用作本次迭代的實(shí)際對(duì)數(shù)校正值。最終選擇的本次迭代的對(duì)數(shù)校正值表示為log_outk。最后min*-處理的結(jié)果被看作是x或y中的最小值(即,min(x,y)k)與對(duì)數(shù)校正值(即,log_outk)的和。但是,在這個(gè)實(shí)施例中,這兩個(gè)值保持分開,便于執(zhí)行后續(xù)的計(jì)算步驟。
如圖30所示的min*-處理功能性3000與min*-處理功能性2900非常類似,除了接收x和y的值,從而y是前次迭代中x或y的最小值(如min(x,y)k-1所示)與前次迭代中的對(duì)數(shù)校正因子(log_outk-1)的和的合并項(xiàng),也就是說,y以y=min(x,y)k-1+log_outk-1的形式接收。
上述的各個(gè)不同實(shí)施例中的位數(shù)精度(bit degree precision)可由設(shè)計(jì)者采用和選擇。雖然某些實(shí)施例中提供了位數(shù)精度,但是很明顯還可以采用其他位數(shù)精度,而不脫離本發(fā)明的范圍和精神。
圖31是根據(jù)本發(fā)明一個(gè)實(shí)施例中校正子計(jì)算功能性3100的示意圖。對(duì)于執(zhí)行LDPC解碼的各種不同方法來說,將解碼位的最近估計(jì)值提供給部分校正子校驗(yàn)功能塊(partial syndrome check functional block)(如PSC所示),以確定解碼位的奇偶校驗(yàn)。該解碼位的最近估計(jì)值被傳遞給XOR(OR除外)邏輯門,并隨后傳遞給兩個(gè)順序連接的寄存器(如REG所示)。第一個(gè)寄存器的輸出被反饋給XOR邏輯門。然后,將確定的奇偶校驗(yàn)傳遞給后續(xù)的功能塊,以確定是否所有的校正子(即,部分校正子校驗(yàn)功能塊輸出的所有奇偶校驗(yàn))都等于零。當(dāng)所有的校正子實(shí)際上都等于零時(shí),則通過該解碼位,且LDPC解碼功能性使用該解碼位的最近估計(jì)值作為該位的最佳估計(jì)值。
圖32是根據(jù)本發(fā)明一個(gè)實(shí)施例的執(zhí)行LDPC解碼方法3200的流程圖。在方框3220中,接收區(qū)塊1的I、Q值(例如,Rx/Ry)并生成區(qū)塊1的位量度。該方法允許并行和同時(shí)處理接收的第一區(qū)塊的I、Q值,同時(shí)執(zhí)行第一區(qū)塊的位量度計(jì)算。
然后,在方框3230中,接收區(qū)塊2的I、Q值(例如,Rx/Ry),并生成區(qū)塊2的位量度。此外,如方框3230中所示,該方法同時(shí)包括迭代解碼區(qū)塊1。這時(shí),便能在迭代解碼前一接收區(qū)塊(例如,區(qū)塊1)的同時(shí)并行和同時(shí)處理一個(gè)區(qū)塊(例如,區(qū)塊2)的接收和量度計(jì)算。
然后,在方框3240中,該方法包括接收區(qū)塊3的I、Q值(例如,Rx/Ry),并生成區(qū)塊3的位量度。此外,如方框3240中所示,該方法同時(shí)包括迭代解碼區(qū)塊2。與方框3230中所示的操作一樣,在迭代解碼前一接收區(qū)塊(例如,區(qū)塊2)的同時(shí)并行和同時(shí)處理一個(gè)區(qū)塊(例如,區(qū)塊3)的接收和量度計(jì)算。
圖33是根據(jù)本發(fā)明一個(gè)實(shí)施例的迭代LDPC解碼方法3300的流程圖。在方框3310中,該方法包括使用與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec執(zhí)行位節(jié)點(diǎn)處理,進(jìn)行初始化,設(shè)置為預(yù)定的值。與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息Medgec在某些實(shí)施例中可設(shè)置為0值。
接下來,執(zhí)行迭代解碼處理操作。在迭代#13320中,該方法執(zhí)行校驗(yàn)節(jié)點(diǎn)處理和校正子計(jì)算,如方框3322所示。在迭代#13320中,該方法還執(zhí)行位節(jié)點(diǎn)處理,如方框3324所示。
在迭代#23330中,該方法執(zhí)行校驗(yàn)節(jié)點(diǎn)處理和校正子計(jì)算,如方框3332所示。在迭代#23330中,該方法還執(zhí)行位節(jié)點(diǎn)處理,如方框3334所示。
本發(fā)明可執(zhí)行各種次數(shù)的解碼迭代,而不脫離本發(fā)明的范圍和精神。圖33中用省略號(hào)表示(即...)。
在最后的迭代3340中,該方法執(zhí)行校驗(yàn)節(jié)點(diǎn)處理和校正子計(jì)算,如方框3342所示。在最后的迭代3340中,如果校正子通過(或者達(dá)到解碼迭代的最大次數(shù)),該方法還執(zhí)行位節(jié)點(diǎn)處理并輸出解碼數(shù)據(jù),如方框3344所示。
要注意的是,以上介紹的方法還可以在各種合適的系統(tǒng)和/或設(shè)備設(shè)計(jì)(通信系統(tǒng)、通信發(fā)送機(jī)、通信接收機(jī)、通信收發(fā)機(jī)和/或其內(nèi)的功能性)中實(shí)現(xiàn),而不脫離本發(fā)明的范圍和精神。
此外,還要注意的是,以上各個(gè)實(shí)施例中介紹的各種功能性、系統(tǒng)和/或設(shè)備設(shè)計(jì)和方法都可以執(zhí)行各種對(duì)數(shù)域內(nèi)的計(jì)算(例如,log域),從而可使用加法來執(zhí)行乘法運(yùn)算,使用減法來執(zhí)行除法運(yùn)算。
根據(jù)上述結(jié)合附圖和實(shí)施例對(duì)本發(fā)明的詳細(xì)介紹,很明顯還可以對(duì)本發(fā)明作出其他修改和變更而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種解碼LDPC編碼信號(hào)的解碼器,所述解碼器包括一個(gè)量度發(fā)生器,用于接收對(duì)應(yīng)LDPC編碼信號(hào)第一符號(hào)的第一I、Q值,并從中生成第一組多個(gè)位量度;接收對(duì)應(yīng)LDPC編碼信號(hào)第二符號(hào)的第二I、Q值,并從中生成第二組多個(gè)位量度;一個(gè)量度存儲(chǔ)器,用于存儲(chǔ)所述第一組多個(gè)位量度和所述第二組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在從所述量度發(fā)生器接收所述第二組多個(gè)位量度的同時(shí)輸出所述第一組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在從所述量度發(fā)生器接收第三組多個(gè)位量度的同時(shí)輸出所述第二組多個(gè)位量度;多個(gè)位/校驗(yàn)處理器,用于連續(xù)地接收所述第一組多個(gè)位量度、所述第二組多個(gè)位量度和所述第三組多個(gè)位量度;執(zhí)行位節(jié)點(diǎn)處理,包括更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)消息傳送存儲(chǔ)器,用于在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)桶形移位器,用于對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的位節(jié)點(diǎn)處理。
2.根據(jù)權(quán)利要求1所述的解碼器,其特征在于,所述解碼器進(jìn)一步包括一個(gè)輸出處理器,用于從對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
3.根據(jù)權(quán)利要求1所述的解碼器,其特征在于,所述解碼器進(jìn)一步包括一個(gè)校正子計(jì)算功能塊,用于從與最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息相對(duì)應(yīng)的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并確定用于生成LDPC編碼信號(hào)的LDPC碼的多個(gè)校正子中的每一個(gè)是否等于零。
4.根據(jù)權(quán)利要求1所述的解碼器,其特征在于所述量度存儲(chǔ)器、所述多個(gè)位/校驗(yàn)處理器以及所述消息傳送存儲(chǔ)器形成包含有多個(gè)宏塊的第一個(gè)宏塊;所述多個(gè)宏塊中的每一個(gè)宏塊還包括有對(duì)應(yīng)的量度存儲(chǔ)器、對(duì)應(yīng)的多個(gè)位/校驗(yàn)處理器以及對(duì)應(yīng)的消息傳送存儲(chǔ)器;所述桶形移位器與所述多個(gè)宏塊中的每一個(gè)宏塊內(nèi)的每一個(gè)對(duì)應(yīng)的消息傳送存儲(chǔ)器通信連接。
5.一種解碼LDPC編碼信號(hào)的解碼器,所述解碼器包括多個(gè)位/校驗(yàn)處理器,用于接收多個(gè)位量度;執(zhí)行位節(jié)點(diǎn)處理,包括更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)消息傳送存儲(chǔ)器,用于在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;在所述多個(gè)位/校驗(yàn)處理器內(nèi)經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;一個(gè)桶形移位器,用于對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;對(duì)從所述消息傳送存儲(chǔ)器中讀出的所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息進(jìn)行移位;將所述移位后的與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息提供給所述多個(gè)位/校驗(yàn)處理器進(jìn)行隨后的位節(jié)點(diǎn)處理。
6.根據(jù)權(quán)利要求5所述的解碼器,其特征在于,所述解碼器進(jìn)一步包括一個(gè)量度發(fā)生器,接收對(duì)應(yīng)LDPC編碼信號(hào)的多個(gè)符號(hào)的I、Q值,并從中生成多個(gè)位量度。
7.根據(jù)權(quán)利要求5所述的解碼器,其特征在于,所述解碼器進(jìn)一步包括一個(gè)輸出處理器,用于從對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的所述多個(gè)位/校驗(yàn)處理器中接收軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
8.一種解碼LDPC編碼信號(hào)的方法,所述方法包括接收對(duì)應(yīng)LDPC編碼信號(hào)第一符號(hào)的第一I、Q值,并從中生成第一組多個(gè)位量度;接收對(duì)應(yīng)LDPC編碼信號(hào)第二符號(hào)的第二I、Q值,并從中生成第二組多個(gè)位量度;存儲(chǔ)所述第一組多個(gè)位量度和所述第二組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在接收所述第二組多個(gè)位量度的同時(shí)輸出所述第一組多個(gè)位量度;支持雙端口存儲(chǔ)器管理,從而在接收第三組多個(gè)位量度的同時(shí)輸出所述第二組多個(gè)位量度;連續(xù)地接收所述第一組多個(gè)位量度、所述第二組多個(gè)位量度和所述第三組多個(gè)位量度;執(zhí)行包括位節(jié)點(diǎn)處理,更新與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息,和校驗(yàn)節(jié)點(diǎn)處理,包括更新與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;經(jīng)過位節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;經(jīng)過校驗(yàn)節(jié)點(diǎn)處理后,存儲(chǔ)所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息;將所述與多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息移位至合適的配置以進(jìn)行隨后的校驗(yàn)節(jié)點(diǎn)處理;將所述與多個(gè)校驗(yàn)節(jié)點(diǎn)相關(guān)的多個(gè)邊消息移位至合適的配置以進(jìn)行隨后的位節(jié)點(diǎn)處理。
9.根據(jù)權(quán)利要求8所述的解碼方法,其特征在于,所述方法進(jìn)一步包括接收對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的軟輸出,并隨后作出硬判決,從而生成所述LDPC編碼信號(hào)第一符號(hào)和第二符號(hào)中的至少一個(gè)的位最佳估計(jì)值。
10.根據(jù)權(quán)利要求8所述的解碼方法,其特征在于,所述方法進(jìn)一步包括接收對(duì)應(yīng)最近更新的與所述多個(gè)位節(jié)點(diǎn)相關(guān)的多個(gè)邊消息的軟輸出;確定用于生成LDPC編碼信號(hào)的LDPC碼的多個(gè)校正子中的每一個(gè)是否等于零。
全文摘要
本發(fā)明公開了一種LDPC解碼器及解碼LDPC編碼信號(hào)的方法。本發(fā)明提供的解決方案比其它可能的解決方案更簡單、更小,復(fù)雜度更低。在解碼器的前端附近使用乒乓存儲(chǔ)結(jié)構(gòu)(或虛擬雙端口存儲(chǔ)結(jié)構(gòu))結(jié)合量度發(fā)生器,可實(shí)現(xiàn)并行的位/校驗(yàn)節(jié)點(diǎn)處理。智能運(yùn)算的桶形移位器與消息傳送存儲(chǔ)器配合,該消息傳送存儲(chǔ)器可存儲(chǔ)更新后的與校驗(yàn)節(jié)點(diǎn)相關(guān)的邊消息以及更新后的與位節(jié)點(diǎn)相關(guān)的邊消息。使用有效的尋址方案可以允許在同一存儲(chǔ)結(jié)構(gòu)中存儲(chǔ)兩種與位節(jié)點(diǎn)相關(guān)的邊消息(1)對(duì)應(yīng)信息位的邊消息;(2)對(duì)應(yīng)奇偶校驗(yàn)位的邊消息。此外,智能設(shè)計(jì)的硬件宏塊可在解碼器設(shè)計(jì)內(nèi)進(jìn)行多次初始化,以支持更高的設(shè)計(jì)效率。
文檔編號(hào)H03M13/00GK1822509SQ200510108919
公開日2006年8月23日 申請(qǐng)日期2005年9月28日 優(yōu)先權(quán)日2004年10月4日
發(fā)明者豪·西恩·特, 凱利·布賴恩·卡梅倫, 巴中·申 申請(qǐng)人:美國博通公司