專利名稱:用于降低復(fù)雜度的低密度奇偶校驗解碼的系統(tǒng)和方法
技術(shù)領(lǐng)域:
這里所描述的實施例涉及用于低密度奇偶校驗解碼的方法,并且更具體地,涉及降低低密度奇偶校驗解碼器的復(fù)雜度的方法。
背景技術(shù):
低密度奇偶校驗(LDPC)碼是一種糾錯碼,其提供了用于通過有噪聲的傳輸信道發(fā)送消息的方法。盡管LDPC技術(shù)不能保證完美的傳輸,但是可以使丟失信息的概率變得非常小。事實上,LDPC碼是第一個非常接近香農(nóng)極限(Shannon Limit)理論最大值的速率傳輸數(shù)據(jù)的碼。LDPC技術(shù)使用稀疏奇偶校驗矩陣(例如大部分為零的矩陣),因此將其術(shù)語化為低密度。該稀疏矩陣是以稀疏約束為條件而隨機生成的。
可以將LDPC碼定義為矩陣和圖形兩種形式。LDPC矩陣將具有一定行數(shù)(M)和列數(shù)(N)。也可以通過每行中1的數(shù)目(wr)和每列中1的數(shù)目(wc)來定義該矩陣。對于被認(rèn)為是低密度的矩陣,應(yīng)滿足下面的條件wc<<N且wr<<M。LDPC矩陣可以是正則(regular)的或非正則(irregular)的。在正則LDPC矩陣中,對于每列來說,wc是固定的,且wr=wc*(M/N)對于每行來說也是固定的。如果矩陣是低密度的,但是每行或每列中的1的數(shù)目不是固定的,則將這樣的代碼稱為非正則LDPC碼。
可以理解通過其相應(yīng)的Tanner圖來圖形化地定義所述LDPC碼。這樣的圖不只提供對代碼的完整描述,其也有助于描述下面將更詳細(xì)解釋的解碼算法。Tanner圖包括節(jié)點和邊(edge)。所述節(jié)點被分成兩個不同的組或類型,并且所述邊連接兩個不同類型的節(jié)點。Tanner圖中的兩類節(jié)點被稱為變量節(jié)點(v-節(jié)點)和校驗節(jié)點(c-節(jié)點)(或奇偶節(jié)點)。因而,Tanner圖將包括M個校驗節(jié)點(奇偶位的數(shù)目)和N個變量節(jié)點(碼字中的位數(shù))。然后,如果在LDPC矩陣的相應(yīng)元素中存在1,則將校驗節(jié)點連接到變量節(jié)點。
可以將信息位的數(shù)目描述為(K)。然后,可以根據(jù)下述來定義生成矩陣(Generator Matrix)(GK×N)
cN×1=GN×KdK×1,其中dK×1=消息或數(shù)據(jù)字,以及cN×1=碼字。
可以看出,通過將消息乘以生成矩陣而生成碼字cN×1。下標(biāo)是矩陣注釋,分別指代行數(shù)和列數(shù)。因而,數(shù)據(jù)字和碼字可以被表示為分別具有K行和N行的單列矩陣。
奇偶校驗矩陣可以被定義為HM×NcN×1=0。
因此,圖1是用于說明包括發(fā)送器和接收器的系統(tǒng)100的圖。為了簡單,只示出了發(fā)送器部分102和接收器部分110。參考圖1,編碼器104通過應(yīng)用生成矩陣GK×N而將數(shù)據(jù)字dK×1轉(zhuǎn)換成碼字cN×1??梢耘渲谜{(diào)制器106,以便然后將碼字cN×1調(diào)制到載波上,從而使得該碼字可以通過信道108被無線發(fā)送到接收器。
在接收器部分110中,可以將解調(diào)器112配置為從所接收的信號中除去載波;然而,信道108將增加信道效應(yīng)和噪聲,這樣,由解調(diào)器112產(chǎn)生的信號可以具有下述形式rN×1=2/σ2(1-2cN×1)+wN×1,其中r是多級信號。作為噪聲和信道效應(yīng)的結(jié)果,某些數(shù)據(jù)位d在傳輸中將丟失。為了盡可能多地恢復(fù)數(shù)據(jù),可以將解碼器114配置為使用奇偶校驗矩陣HM×N來產(chǎn)生數(shù)據(jù)的估計d’K×1,該估計d’K×1非常接近于原始數(shù)據(jù)dK×1。應(yīng)當(dāng)理解,解碼器114可以是硬判決解碼器或軟判決解碼器。軟判決解碼器是更準(zhǔn)確的,但是通常也需要更多資源。
為了說明LDPC碼的運算,描述下面的示例H3×6=101010010101110001]]>如可以看到的,該示范性奇偶校驗矩陣H是低密度或稀疏的。矩陣H的第一行定義了第一奇偶校驗節(jié)點或等式。如可以看到的,第一奇偶校驗節(jié)點將校驗所接收的樣本r0、r2、和r4,記住,r是由接收器中的解調(diào)器112產(chǎn)生的多級(multilevel)信號。第二奇偶校驗節(jié)點(即H的第二行)校驗所接收的樣本r1、r3、和r5,而第三奇偶校驗節(jié)點校驗樣本r0、r1、和r5。在本示例中,存在三個奇偶校驗節(jié)點和六個樣本。第一和第二奇偶校驗節(jié)點被認(rèn)為是正交的,因為它們互相包括樣本的排他組(exclusive set)。
如果假定K=3且M=3,則下面為真H3×6c6×1=0⇔H3×6d3×1p3×1=0⇔101010010101110001d0d1d2p0p1p2=0]]>這產(chǎn)生了下面的等式d0+d2+p1=0d1+p0+p2=0d0+d1+p2=0這些等式減化為p0=d0p1=d0+d2p2=d0+d1因而,例如,如果d=
,則p=
且c=
。
圖2是用于說明上面示例中的H的運算的Tanner圖。如可以看到的,圖2的圖中具有三個奇偶校驗節(jié)點202、204和206,以及6個變量節(jié)點208、210、212、214、216和218,其對應(yīng)于c的位。奇偶校驗節(jié)點202、204和206經(jīng)由如H中的條目(entry)所表示的邊220、222、224、226、228、230、232、234和236連接到變量節(jié)點208、210、212、214、216和218。換句話說,每個邊220、222、224、226、228、230、232、234和236應(yīng)當(dāng)對應(yīng)于H中的1。
在LDPC解碼器中,可以通過處理器來實現(xiàn)奇偶校驗和變量節(jié)點的運算。換句話說,可以由奇偶校驗處理器來實現(xiàn)每個奇偶校驗節(jié)點,而可以由變量節(jié)點處理器來實現(xiàn)每個變量校驗節(jié)點。于是LDPC是迭代解碼器,其實現(xiàn)通過H定義的消息傳遞算法。
不幸地是,傳統(tǒng)的LDPC解碼技術(shù)導(dǎo)致較高的復(fù)雜度,其中不得不在解碼處理的每個迭代中,針對計算往來所有奇偶節(jié)點處理器的消息實現(xiàn)完全平行的解碼器。這導(dǎo)致了較大的復(fù)雜度、增加的資源需求以及增長的成本。
因此,當(dāng)前做出了許多努力來降低校驗節(jié)點消息更新的復(fù)雜度,并且保持損失盡可能少的性能。最常用的簡化是最小和算法(MSA),該算法很大程度降低了校驗節(jié)點更新的復(fù)雜度,但是與標(biāo)準(zhǔn)的和積(sum-product)算法(SPA)校驗節(jié)點實現(xiàn)相比,在性能方面降低了0.3-0.4dB。為了克服該性能的降低,也已經(jīng)提出了使用歸一化項(term)和偏置調(diào)整項的MSA修改。與更傳統(tǒng)的MSA實現(xiàn)相比,這樣的解決方案的確降低了性能損失,但是仍存在明顯的性能損失。此外,已提出了二維MSA方案,其可以利用某些額外的復(fù)雜度來進一步改進MSA的性能。因而,在傳統(tǒng)的實現(xiàn)中,在復(fù)雜度和性能之間存在固定的折衷選擇。
發(fā)明內(nèi)容
下面描述用于在解碼低密度奇偶校驗(LDPC)碼的過程中產(chǎn)生校驗節(jié)點更新的系統(tǒng)和方法。下面描述的系統(tǒng)和方法使用新的近似,以在維持準(zhǔn)確性的同時降低實現(xiàn)LDPC解碼器的復(fù)雜度。該新的近似逼近標(biāo)準(zhǔn)的和積算法(SPA),并且可以降低最小和算法(MSA)的近似誤差,而且在浮點精度運算和定點運算兩種情況下具有幾乎與和積算法(SPA)相同的性能。
在一方面,接收器可以包括解調(diào)器,被配置為接收無線信號,從無線信號中除去載波信號,并產(chǎn)生接收信號;以及低密度奇偶校驗(LDPC)處理器,被配置為從接收信號中恢復(fù)原始的數(shù)據(jù)信號。所述LDPC處理器可以包括多個變量節(jié)點處理器,被配置為接收所述接收信號并基于該接收信號生成變量消息;以及奇偶節(jié)點處理器,被配置為接收變量消息并基于該變量消息而生成軟輸出,所述奇偶節(jié)點處理器被配置為實現(xiàn)下述λi=-Πnj=1,j≠isgn(uj)×min{ln(A-e-|ui|),0}]]>可以使用串行架構(gòu)或并行架構(gòu)來實現(xiàn)該奇偶節(jié)點處理器。
在另一方面,奇偶節(jié)點處理器可以包括多個輸入處理塊,被配置為并行接收變量消息并對該變量消息執(zhí)行指數(shù)運算;求和器,與多個輸入處理塊耦接,該求和器被配置為對來自多個輸入處理塊的輸出進行求和;多個加法器,與求和器和多個輸入處理塊耦接,該多個加法器被配置為從所述求和器的輸出中減去所述多個輸入處理塊的輸出;以及多個輸出處理塊,與多個加法器耦接,該多個輸出處理塊被配置為對多個加法器的輸出執(zhí)行對數(shù)函數(shù)運算。
在另一方面,奇偶節(jié)點處理器可以包括輸入處理塊,被配置為串行接收變量消息并對該變量消息執(zhí)行指數(shù)運算;累加器,與所述輸入處理塊耦接,該累加器被配置為對所述輸入處理塊的輸出進行累加;移位寄存器,與所述輸入處理塊耦接,該移位寄存器被配置為對一個時鐘周期的變量消息進行存儲;加法器,與所述累加器和移位寄存器耦接,該加法器被配置為從所述累加器的輸出中減去所述移位寄存器的輸出;以及輸出處理塊,與加法器耦接,被配置為對加法器的輸出執(zhí)行對數(shù)函數(shù)運算。
在還一方面,用于處理所接收的無線信號的方法可以包括接收所述無線信號;從該無線信號除去載波信號以產(chǎn)生接收信號;根據(jù)所述接收信號生成變量消息;對變量消息執(zhí)行指數(shù)運算以生成指數(shù)數(shù)據(jù);對指數(shù)數(shù)據(jù)求和;從所求和的指數(shù)數(shù)據(jù)減去變量消息以形成差;以及對該差執(zhí)行對數(shù)運算。
下面在標(biāo)題為“具體實施方式
”的部分中描述本發(fā)明的這些和其它特征、方面和實施例。
結(jié)合附圖描述本發(fā)明的特征、方面和實施例,其中圖1是用于說明使用LDPC碼的示范性通信系統(tǒng)的圖;圖2是用于說明示范性奇偶校驗矩陣的運算的圖;圖3是用于說明示范性奇偶節(jié)點處理器的圖;圖4是用于說明示范性奇偶節(jié)點處理器的運算的圖;圖5是用于說明示范性變量節(jié)點處理器的運算的圖;圖6是用于說明依據(jù)一個實施例配置的示范性奇偶節(jié)點處理器的圖;圖7是用于說明依據(jù)另一個實施例配置的示范性奇偶節(jié)點處理器的圖;圖8和9是分別示出在各種解碼算法的AWGN信道下對于802.16eD12中定義的非正則、1/2速率LDPC碼的仿真的幀誤碼率(FER)和位誤碼率(BER)性能的曲線;圖10和11是分別示出在各種解碼算法的AWGN信道下對于802.16eD12中定義的非正則、3/4速率LDPC碼的仿真的幀誤碼率(FER)和位誤碼率(BER)性能的曲線;圖12是用于說明使用圖6或7的奇偶節(jié)點處理器執(zhí)行LDPC解碼的示范性方法的流程圖;圖13是用于說明依據(jù)一個實施例的包括降階(degree reduction)的示范性LDPC解碼器的一部分的圖;圖14是用于說明依據(jù)一個實施例的可以被包括在圖13的LDPC解碼器中的降階單元的示范性實施例的圖;圖15是用于說明可以被包括在圖14的降階單元中的示范性比較器的圖;圖16是用于說明依據(jù)另一個實施例的可以被包括在圖13的LDPC解碼器中的降階單元的示范性實施例的圖;以及圖17是用于說明具有6/3和7/3降階的圖13的LDPC解碼器的FER性能的圖。
具體實施例方式
在下面的描述中,使用了某些示范性參數(shù)、值等;然而應(yīng)當(dāng)理解的是,這里所描述的實施例不必限于這些示例。因此,這些示例不應(yīng)被認(rèn)為是以任何方式來限制所述實施例。此外,這里所描述的LDPC解碼器的實施例可以被應(yīng)用于實現(xiàn)不同協(xié)議和通信技術(shù)的許多不同類型的系統(tǒng)。因此,除非特別聲明,否則這些實施例不應(yīng)被認(rèn)為是限于特定類型的系統(tǒng)、架構(gòu)、協(xié)議、空中(air)接口等。
圖3示出了階為n的校驗節(jié)點處理器302。在每次迭代中,用輸入的軟消息{ui,i=1,2,...n}來更新輸出軟消息{λi,i=1,2,...n}。輸出軟消息被定義為相應(yīng)位是0或1的概率比率的對數(shù)。
對于標(biāo)準(zhǔn)和積算法,如下確定輸出消息λi=2tanh-1Πj=1j≠intanhuj2,i=1,2...n---(1)]]>然后,輸出軟消息被反饋到變量節(jié)點處理器,以用于在下一次迭代期間生成輸出ui;然而,基于從特定節(jié)點的變量節(jié)點輸出的軟消息λi不被返回到該節(jié)點。因而,在(1)的下面項中存在j≠i的約束Πj=1j≠intanhuj2,i=1,2...n]]>這也可以通過圖4來說明,圖4是用于說明奇偶節(jié)點處理器202的運算的圖。首先,LDPC解碼器用r0、r1、r2,...r6來初始化化變量節(jié)點處理器208、210、212、214、216和218的變量數(shù)據(jù)位u0、u1、u2...u6。參考圖4,u0k-1、u2k-1、和u4k-1是從變量節(jié)點208、212和216發(fā)送到奇偶節(jié)點處理器202的變量消息。奇偶節(jié)點處理器202對這些消息進行運算,并且計算其消息λk。例如,λk(0→2)表示在第k次迭代中從奇偶節(jié)點202發(fā)送到變量節(jié)點212的消息。
可以使用下面的等式來定義由奇偶節(jié)點處理器202產(chǎn)生的消息λk(0→0)=2tanh-1[tanh(u2k-12)tanh(u4k-12)]]]>λk(0→2)=2tanh-1[tanh(u0k-12)tanh(u4k-12)]]]>λk(0→4)=2tanh-1[tanh(u0k-12)tanh(u2k-12)]---(2)]]>因而,可以配置奇偶節(jié)點處理器200以實現(xiàn)上面的等式(2)。然后,由例如奇偶節(jié)點202的奇偶節(jié)點產(chǎn)生的軟消息被反饋到變量節(jié)點208、210、212、214、216和218,以用于下一次迭代。
例如,圖5是用于說明變量節(jié)點處理器208的運算的圖。參考圖5,變量節(jié)點處理器208從奇偶節(jié)點處理器202和206接收輸入消息,并產(chǎn)生要被發(fā)送回相同奇偶節(jié)點處理器202和206的變量消息。在圖4和圖5的示例中,對多級變量unk采用硬判決,并且檢查它們是否滿足上面定義的奇偶節(jié)點等式。如果存在匹配,或超過迭代的特定限定次數(shù),則可以停止該解碼器。
可以將變量節(jié)點處理器208配置為實現(xiàn)下面等式u0k=uch,0+λk(0→0)+λk(2→0)---(3)]]>其中,uch,0是來自信道的消息,其不隨每次迭代改變。
應(yīng)當(dāng)理解,可以使用適當(dāng)配置的硬件和/或軟件來實現(xiàn)上述的解碼器,并且盡管這里所描述的示例描述了分離的奇偶校驗處理器和變量節(jié)點處理器,但是可以通過諸如數(shù)字信號處理器的單個處理器、或諸如專用集成電路(ASIC)的電路來實現(xiàn)這些處理器;然而,如上所述,參照圖2-5所描述的LDPC處理器的實現(xiàn)可能導(dǎo)致較大的復(fù)雜度、迫切的存儲器需求以及可以引起瓶頸的互連復(fù)雜度。如果實現(xiàn)多個數(shù)據(jù)率,則這些方面可能會惡化。換句話說,在實際的實現(xiàn)中,這樣的解碼器可能會受到限制。
如上面所指出的,考慮到實踐和成本的有效實現(xiàn),等式(1)的和積算法可能受到禁止。已提出借助近似來降低該復(fù)雜度。例如,可以看出(4)等價于(1)λ1=u1u2…un, (4)其中,運算符被定義為x⊕y=Δln1+ex+yex+ey---(5)]]>
使用近似公式ex+ey≈max(ex,et)=emax(x,y)(6)或等效地ln(ex+ey)≈max(x,y) (7)在(5)的分子和分母中,可以獲得下述xy≈max(0,x+y)-max(x,y)=sgn(x)sgn(y)min(|x|,|y|)(8)重復(fù)地將(8)代入到(4)中,可以獲得如下的最小和算法(MSA)λi≈Πj≠isgn(uj)×minj≠i(|uj|)i=1,2,....n---(9)]]>明顯的是,實現(xiàn)等式(9)比(1)或(4)簡單許多,但是該簡化的代價是重大的性能犧牲,根據(jù)特定的碼結(jié)構(gòu)和碼速率,其通常的性能損失約0.3~0.4dB。為了降低這樣的性能損失,已提出了某些修改。例如,MSA的性能損失來自于(9)對于(1)的近似誤差。因此,為了改善性能損失,應(yīng)當(dāng)降低該近似誤差??梢钥吹皆诜瞪?9)始終大于(1)。歸一化MSA和偏置MSA使用縮小或偏置來強制幅度變得更小。
利用歸一化最小和算法,可以通過因子α來縮小(9)λi≈α{Πj≠isgn(uj)×minj≠i(|uj|)},---(10)]]>其中0<α≤1。
偏移最小和算法通過正常數(shù)β來降低幅值λi≈Πj≠isgn(uj)·max(minj≠i(|uj|)-β,0)---(11)]]>但是這些方法再一次增加了復(fù)雜度。因而,如上面所提到的,在復(fù)雜度和性能之間存在固定的折衷選擇。
下面所描述的實施例使用新的方法,用于解碼LDPC碼中的校驗節(jié)點更新。該方法基于和積算法(SPA)的新近似,其可以降低MSA的近似誤差,并且在浮點精度運算和定點運算兩種情況下具有幾乎與SPA相同的性能。結(jié)果,可以以簡單的結(jié)構(gòu)來實現(xiàn)該新近似,其復(fù)雜度與MSA實現(xiàn)持平。
MSA的近似誤差來自于等式(7)的近似誤差。注意,當(dāng)x和y接近時,等式(7)是不精確的。MSA在等式(5)的分子和分母都使用等式(7)。如果|x|與|y|的值接近,則分子或分母都可能產(chǎn)生較大的近似誤差。因而,為了改進輸出消息的精確度,只有當(dāng)(5)的分子或分母將產(chǎn)生較小的近似誤差時,才可以在(5)中使用等式(7)。
例如,當(dāng)x和y都具有相同的符號時,則在分子中使用1+ex+y≈max(e0,ex+y)的近似將比在分母中使用ex+ey≈emax(x,y)產(chǎn)生更好的結(jié)果。類似地,當(dāng)x和y具有相反的符號時,則只有使用ex+ey≈emax(x,y)近似(5)的分母可以產(chǎn)生更好的結(jié)果。因而,對于x,y>0,可以使用下面的等式來產(chǎn)生(5)的更好近似x⊕y≈lnex+yex+ey=-ln(e-x+e-y)---(12)]]>對于x和y的所有的符號組合,可以使用下面的一般表達xy≈-sgn(x)sgn(y)ln(e-|x|+e-|y|) (13)重復(fù)地將(13)代入到(4)中,產(chǎn)生λi=-Πj=1j≠insgn(uj)×ln(Σj=1j≠ine-|uj|)---(14)]]>注意,只在Σj≠ie-|uj|<1]]>時,(14)才成立(hold)。如果不滿足該條件,則該結(jié)果可能被限制為1,導(dǎo)致下述λi=-Πj=1j≠insgn(uj)×ln(min(Σj=1j≠ine-|uj|,1))---(15)]]>現(xiàn)在,使A=Σj=1ne-|uj|,]]>則(15)可以被表示為λi=-Πj=1,j≠insgn(uj)×ln(min(A-e-|ui|,1))]]>=-Πj=1,j≠insgn(uj)×min{ln(A-e-|ui|),0}---(16)]]>可以如MSA實現(xiàn)的相同方式來實現(xiàn)(16)的符號,例如用二進制異或邏輯電路。該近似的核心具有可逆的屬性,其允許首先對聚合的軟消息進行計算,之后進行內(nèi)在饋出(intrinsic back-out),以產(chǎn)生外在(extrinsic)更新。
可以分別用圖6和圖7中的串行結(jié)構(gòu)或并行結(jié)構(gòu)來實現(xiàn)等式(16)的幅值。因而,圖6是用于說明奇偶節(jié)點處理器602的串行實現(xiàn)的圖。如可以看到的,首先通過處理塊602處理變量節(jié)點輸出,然后在累加器604中累加。然后將每個輸入存儲到移位存儲器606中,并且在加法器610中從累加器604的輸出中減去每個輸入。然后,結(jié)果得到的差的自然對數(shù)被送到處理塊608中,以產(chǎn)生軟輸出。
圖7是用于說明奇偶節(jié)點處理器700的并行實現(xiàn)的圖。這里,在處理塊702、704和706中對來自變量節(jié)點處理器的輸入進行并行處理,然后在求和器708中求和。然后,在加法器710、712和714中并行地從求和器708的輸出中減去每個輸入。此后,將加法器710、712和714的輸出的自然對數(shù)并行地送到處理塊716、718和720中,以產(chǎn)生軟輸出。
結(jié)構(gòu)600和700都具有相同的計算負(fù)載。串行結(jié)構(gòu)600需要更小的硬件尺寸,但是需要2n個時鐘周期以獲得所有的輸出軟消息。并行結(jié)構(gòu)700只需要1個時鐘周期,但是與串行結(jié)構(gòu)600相比,并行結(jié)構(gòu)700需要更大的硬件尺寸。當(dāng)主要關(guān)心解碼速度時,并行結(jié)構(gòu)700是有吸引力的。應(yīng)當(dāng)理解,可以查找表、軟件或硬件等的任何方式來實現(xiàn)圖6和圖7中的指數(shù)和對數(shù)運算。
ln(·)運算可以包括min(·,0)運算,其可以通過簡單地使用對數(shù)結(jié)果的符號位來實現(xiàn),以消除(clear)輸出。具體而言,如果用查找表來實現(xiàn)該對數(shù)運算,則可以通過簡單地對于大于1的所有輸入將其表中的內(nèi)容設(shè)置為0,或簡單地限制讀取表內(nèi)容的地址范圍,而進行這一運算。
可以在諸如接收器110的接收器中包括圖6和圖7的實現(xiàn)。這樣的接收器可以被包括在被配置為運行于例如無線廣域網(wǎng)(WAN)或城域網(wǎng)(MAN)、無線局域網(wǎng)(LAN)、或無線個人局域網(wǎng)(PAN)中的設(shè)備內(nèi)。
所提出的實現(xiàn)的計算復(fù)雜度類似于MSA實現(xiàn)。表1是對于各種解碼算法的奇偶節(jié)點處理的計算負(fù)載的比較,其中假定以已知的雙向(forward-backward)方式來實現(xiàn)SPA、MSA、歸一化MSA和偏置MSA。
表1
圖8和圖9是分別示出在各種解碼算法的AWGN信道下對于802.16eD12中定義的非正則、1/2速率LDPC碼的仿真的幀誤碼率(FER)和位誤碼率(BER)性能的曲線,所述各種解碼算法包括SPA、所提出的實現(xiàn)在浮點和定點運算下的算法、MSA、歸一化MSA和偏置MSA。對于歸一化MSA和偏置MSA,使用0.8的歸一化因子和0.15偏置因子。代碼的校驗節(jié)點階次分布是p(x)=0.6667x6+0.3333x7。解碼器使用具有最大迭代次數(shù)為30的分層解碼。
圖10和圖11是示出具有校驗節(jié)點階次分布為p(x)=0.8333x14+0.1667x15的用于非正則、3/4速率(rate)LDPC碼的相應(yīng)的仿真結(jié)果的曲線。除了標(biāo)為“建議的量化”的曲線是定點解碼器用等式(16)實現(xiàn)的之外,所有曲線都是用浮點運算仿真的。在定點解碼器的仿真中,信道輸入被量化為8位二進制整數(shù),其中1位用于符號,而其它7位用于絕對值。
在所述仿真中,變量節(jié)點更新是結(jié)果范圍在-128~+128的整數(shù)求和。例如圖6和圖7中,可以使用具有128個條目的查找表來實現(xiàn)指數(shù)運算,其中每個條目具有表示
中的量化值的9位。求和和減法(例如在圖6和圖7中)是9位整數(shù)運算。對數(shù)是具有512個條目的表,每個條目具有7位,用于描述要與符號位一起發(fā)送到變量節(jié)點的量化絕對值。
從圖8-11的曲線中可以看出,具有浮點運算的等式(16)的實現(xiàn)可以具有幾乎與標(biāo)準(zhǔn)SPA相同的性能,并且該性能比使用MSA產(chǎn)生的性能好0.3-0.4dB。
此外,盡管可以嘗試滿足用于exp()運算的動態(tài)范圍需求,但是仿真結(jié)果仍顯示,相對于浮點運算來說,定點運算幾乎不具有任何性能損失。注意,可以利用非均勻量化和增加復(fù)雜度而大大降低量化位數(shù)。利用非均勻量化,可以降低算法和指數(shù)表的尺寸,但是在圖6中的求和運算之前,應(yīng)首先將這些量化值映射到線性量化值。
圖12是說明用于執(zhí)行上述LDPC解碼的示范性方法的流程圖。首先在步驟1202中,可以接收無線信號,并且可以在步驟1204中解調(diào)該信號。在步驟1206中,可以根據(jù)所解調(diào)的信號生成變量消息。在步驟1208中,可以依據(jù)等式(16)對變量消息執(zhí)行指數(shù)運算。在步驟1210中,可以對結(jié)果得到的指數(shù)數(shù)據(jù)求和,并且在步驟1212中再次依據(jù)等式(16)從所求和的數(shù)據(jù)中減去所述變量消息。最后,在步驟1214中,再次依據(jù)等式(16),可以對步驟1212中所產(chǎn)生的差執(zhí)行對數(shù)運算。
因此,使用上述的系統(tǒng)和方法,在維持較高的精確度的同時,可以降低實現(xiàn)奇偶節(jié)點所需的資源,即復(fù)雜度。在某些實施例中,甚至可以通過降階技術(shù)進一步降低復(fù)雜度。換句話說,可以降低去往奇偶節(jié)點的輸入的數(shù)目,這可以降低實現(xiàn)奇偶節(jié)點所需的資源。也應(yīng)該指出的是,可以在許多奇偶節(jié)點實現(xiàn)中,分開計算輸出軟消息的符號和絕對值。
圖13是用于說明包括降階的示范性LDPC解碼器1300的一部分的圖。在LDPC解碼器1300中,變量消息{ui,i=1,2,...n}的絕對值、即{|u1|,|u2|,...,|un|}被首先輸入到降階單元(DRU)1302中,該降階單元產(chǎn)生降低數(shù)目的輸出|u1′,u2′,...,um′},其中m<n。換句話說,DRU 1302被配置為從n個總輸入中選出m個輸入,其中通常m<n。在某些實施例中,可以選擇具有最小值的輸入{ui,i=1,2,...n}。于是所選擇的輸入{u1′,u2′,...,um′}是{|u1|,|u2|,...,|un|}的子集,從而處于集合{|u1|,|u2|,...,|un|}\{u1′,u2′,...,um′}中的所有元素不能比{u1′,u2′,...um′}中的任何元素小。
然后,可以將DRU 1302的輸出提供給奇偶節(jié)點處理器1304??梢允褂脠D6的串行結(jié)構(gòu)或圖7的并行結(jié)構(gòu)來實現(xiàn)奇偶節(jié)點處理器1304。
類似地,依據(jù)所述實施例,可以用并行或串行結(jié)構(gòu)來實現(xiàn)DRU 1302。圖14是說明用于DRU 1302的并行配置的圖。在圖14的示例中,DRU 1302包括12個比較器,該比較器被配置為將階次從8降為3。換句話說,將8個輸入變量消息降為要被送到奇偶節(jié)點處理器1304的三個輸出消息。當(dāng)然應(yīng)當(dāng)理解,依據(jù)具體實現(xiàn)的需要,可以采用不同的輸入和輸出階次。也應(yīng)當(dāng)理解,階次降得越大,奇偶節(jié)點處理器1304的復(fù)雜度降低得越大;然而,這也可能導(dǎo)致精確度的降低。因此,應(yīng)選擇降階的級別,以達到資源節(jié)約和精確度的最大可能。
在圖15中說明了用于圖14的比較器的實現(xiàn)的示例。如可以看到的,S輸出是兩個輸出中的較小的一個,而L輸出是兩個輸出中的較大一個。
在圖14的示例中,將DRU 1302配置為選擇最小的輸入。因而,所述比較器被配置為從每對輸入中選擇最小的輸入。在這種情況下,使用5級比較器以產(chǎn)生8到3的降階。比較器1402a-1402d從輸入對中選擇最小的輸入。然后以所示方式,在包括比較器1404a-1404d的第二級比較器中將這些輸入與形成輸入對的最大輸入進行比較。放棄一個輸出,并在第三級比較器1406a-1406c中對剩余的輸入進行比較。然后,又放棄兩個輸出,并且在第四級比較器1408和第五級比較器1410對剩余的輸入進行比較。
圖16是用于說明依據(jù)一個實施例的DRU 1302的示范性串行實現(xiàn)的圖。如可以看到的,在圖16的示例中,串行DRU 1302將階次從n降為3。在本示范性實施例中,DRU 1302包括串行比較器,例如比較器1608、1610和1612,可以如圖15中所說明的和上面所描述的來對其進行實現(xiàn)。延遲單元1602、1604和1606包括在內(nèi),并且對應(yīng)于一個時鐘周期。輸入{|u1|,|u2|,...,|un|}依次到達,一個時鐘周期一個輸入。
可以將奇偶節(jié)點處理器1304配置為利用等式(16)(即等式(16)的第二項)來計算輸出消息的絕對值。換句話說,可以使用下述來分別確定等式(16)的符號和絕對值λi=Πj=1,j≠insgn(uj)×max{-ln(A-e-|ui|),0}---(16)]]>sgn(λi)=Πj=1,j≠insgn(uj)=sgn(ui)B---(17)]]>|λi|=max{-ln(A-e-|ui|),0}---(18)]]>因而,奇偶節(jié)點處理器1304可被用于依據(jù)等式(18)對階次為m的校驗節(jié)點計算絕對值??梢詫⑵媾脊?jié)點處理器1304實現(xiàn)為如上所述的串行或并行奇偶節(jié)點處理器。
可以將輸出單元(OU)1306配置為簡單地將奇偶節(jié)點處理器1304的輸出(即{|λ1′|,|λ2′|,...,|λm′|})連接到輸出端口{|λ1|,|λ2|,...,|λn|}。例如,假定存在8個輸入{|u1|,|u2|,...,|u8|},并且DRU 1302選擇它們中的m=3個。選擇結(jié)果依賴于{|u1|,|u2|,...,|u8|}的具體數(shù)據(jù)值。假定對于某些具體的輸入,選擇結(jié)果是{u1′=|u2|,u2′=|u8|,u3′=|u5|},則OU 1306應(yīng)當(dāng)分別將|λ1′|,|λ2′|和|λ3′|連接到|2|、|8|和|5|,并將-lnA連接到|1|、|3|、|4|、|6|和|7|。
為了切實可行,應(yīng)當(dāng)將OU 1306配置為與DRU 1302合作運行。例如,如果DRU 1302將DRU 1302的第k個輸入(即|uk|)選擇為奇偶節(jié)點處理器1304的第j個輸入,即uj′,則可以將OU 1306配置為相應(yīng)地將奇偶節(jié)點處理器1304的第j個輸出連接到|λk|。
應(yīng)當(dāng)指出,盡管DRU 1302的并行實現(xiàn)可以與奇偶節(jié)點處理器1304的并行實現(xiàn)配對使用,并且DRU 1302的串行實現(xiàn)可以與奇偶節(jié)點處理器1304的串行實現(xiàn)配對使用,但是不需要這樣的使用。換句話說,DRU 1302的并行實現(xiàn)可以與奇偶節(jié)點處理器1304的串行實現(xiàn)配對使用,反之亦然。此外,也許依賴具體實現(xiàn)的要求而放棄包含DRU 1302和OU 1306會更好。例如,如果最關(guān)心解碼速度,則并行DRU 1302和并行奇偶節(jié)點處理器1304的組合可能是最好的選擇。另一方面,如果硬件尺寸和資源是最重要的方面,則利用串行奇偶節(jié)點處理器1304而無需任何DRU 1302或OU 1306可能是優(yōu)選的。如果LPDC解碼器是例如使用數(shù)字信號處理器(DSP)來實現(xiàn)的,如在軟件定義的射頻(SDR)終端中,則串行DRU 1302和串行奇偶節(jié)點處理器可能是優(yōu)選的,因為其提供最少的解碼延遲。
圖17是用于說明圖13的解碼器的仿真結(jié)果的圖,說明與SPA相比,這樣的實施例可以將階次降低到3,并且只導(dǎo)致小于0.05dB的性能損失。所仿真的LDPC碼的校驗節(jié)點階次是6和7。對于校驗節(jié)點階次是14和15的3/4速率LDPC碼可以觀察到類似的性能。
表2說明具有圖13的降階和沒有該降階的LDPC復(fù)雜度比較。表2中的數(shù)據(jù)是用于n=8以及m=3的?!氨容^”運算通常沒有“加法”運算復(fù)雜,因而具有降階的整體復(fù)雜度比沒有降階的要小許多。
表2
雖然上面已描述了本發(fā)明的某些實施例,但是應(yīng)當(dāng)理解的是,所描述的實施例只是示例的方式。因此,本發(fā)明不限于所描述的實施例。而且,當(dāng)結(jié)合上述說明以及附圖時,應(yīng)當(dāng)僅由所附的權(quán)利要求書來限定此處所描述的本發(fā)明的范圍。
權(quán)利要求
1.一種接收器,包括解調(diào)器,被配置為接收包括原始數(shù)據(jù)信號的無線信號,從該無線信號中除去載波信號,并產(chǎn)生接收信號;以及與該解調(diào)器耦接的低密度奇偶校驗LDPC處理器,該LDPC處理器被配置為根據(jù)所述接收信號恢復(fù)原始的數(shù)據(jù)信號,該LDPC處理器包括多個變量節(jié)點處理器,被配置為基于所述接收信號生成變量消息;以及與該多個變量節(jié)點處理器耦接的奇偶節(jié)點處理器,該奇偶節(jié)點處理器被配置為基于導(dǎo)致表示變量消息的估計的軟輸出的變量消息的符號而實現(xiàn)和積算法SPA的近似。
2.根據(jù)權(quán)利要求1所述的接收器,其中,該奇偶節(jié)點處理器被配置為實現(xiàn)下述λi=-Πj=1,j≠insgn(uj)×min{ln(A-e-|ui|),0},]]>其中λi表示軟輸出,uj表示變量消息,以及A=Σj=1ne-|uj|.]]>
3.根據(jù)權(quán)利要求1所述的接收器,其中,所述奇偶節(jié)點處理器包括多個輸入處理塊,被配置為并行接收多個變量消息并對該變量消息執(zhí)行指數(shù)運算,以生成用于產(chǎn)生軟消息的指數(shù)項;求和器,與多個輸入處理塊耦接,該求和器被配置為對所述多個輸入處理塊產(chǎn)生的指數(shù)項進行求和,以生成用于產(chǎn)生軟消息的求和項;多個加法器,與所述求和器和多個輸入處理塊耦接,該多個加法器被配置為從求和項中減去所述指數(shù)項,以生成用于產(chǎn)生軟消息的差項;多個輸出處理塊,與所述多個加法器耦接,該多個輸出處理塊被配置為對所述多個加法器的輸出執(zhí)行對數(shù)運算,以產(chǎn)生軟消息;以及符號處理塊,與所述多個輸出處理塊耦接,該符號處理塊被配置為確定與所述多個輸出處理塊的輸出相關(guān)的符號。
4.根據(jù)權(quán)利要求1所述的接收器,其中,所述奇偶節(jié)點處理器包括輸入處理塊,被配置為串行接收變量消息并對該變量消息執(zhí)行指數(shù)運算,以生成用于產(chǎn)生軟消息的指數(shù)項;累加器,與所述輸入處理塊耦接,該累加器被配置為累加指數(shù)項,以生成用于產(chǎn)生軟消息的求和項;移位寄存器,與所述輸入處理塊耦接,該移位寄存器被配置為對一個時鐘周期存儲變量消息;加法器,與所述累加器和移位寄存器耦接,該加法器被配置為從所述求和項減去移位寄存器的輸出,以生成用于產(chǎn)生軟消息的差項;輸出處理塊,與所述加法器耦接,該輸出處理塊被配置為對差項執(zhí)行對數(shù)函數(shù)運算,以生成軟消息;以及符號處理塊,與所述輸出處理塊耦接,該符號處理塊被配置為確定與輸出處理塊的輸出相關(guān)的符號。
5.一種用于低密度奇偶校驗LDPC解碼的奇偶節(jié)點處理器,該奇偶節(jié)點處理器被配置為產(chǎn)生作為從多個變量節(jié)點接收的變量消息的估計的軟消息,該奇偶節(jié)點處理器包括多個輸入處理塊,被配置為并行接收多個變量消息并對該變量消息執(zhí)行指數(shù)運算,以生成用于產(chǎn)生軟消息的指數(shù)項;求和器,與多個輸入處理塊耦接,該求和器被配置為對所述多個輸入處理塊產(chǎn)生的指數(shù)項進行求和,以生成用于產(chǎn)生軟消息的求和項;多個加法器,與所述求和器和多個輸入處理塊耦接,該多個加法器被配置為從求和項中減去所述指數(shù)項,以生成用于產(chǎn)生軟消息的差項;以及多個輸出處理塊,與所述多個加法器耦接,該多個輸出處理塊被配置為對所述多個加法器的輸出執(zhí)行對數(shù)函數(shù)運算,以產(chǎn)生軟消息。
6.根據(jù)權(quán)利要求5所述的奇偶節(jié)點處理器,還包括符號處理塊,與所述多個輸出處理塊耦接,該符號處理塊被配置為確定與所述軟消息相關(guān)的符號,其中,使用二進制異或邏輯電路實現(xiàn)該符號處理塊;以及將所述多個輸入處理塊實現(xiàn)為查找表,其中將所述多個輸出處理塊實現(xiàn)為查找表。
7.一種用于低密度奇偶校驗LDPC解碼的奇偶節(jié)點處理器,所述奇偶節(jié)點處理器被配置為產(chǎn)生作為從多個變量節(jié)點接收的變量消息的估計的軟消息,該奇偶節(jié)點處理器包括輸入處理塊,被配置為串行接收變量消息并對該變量消息執(zhí)行指數(shù)運算,以生成用于產(chǎn)生軟消息的指數(shù)項;累加器,與所述輸入處理塊耦接,該累加器被配置為累加指數(shù)項,以生成用于產(chǎn)生軟消息的求和項;移位寄存器,與所述輸入處理塊耦接,該移位寄存器被配置為對一個時鐘周期存儲變量消息;加法器,與所述累加器和移位寄存器耦接,該加法器被配置為從所述求和項減去移位寄存器的輸出,以生成用于產(chǎn)生軟消息的差項;以及輸出處理塊,與所述加法器耦接,該輸出處理塊被配置為對差項執(zhí)行對數(shù)運算,以生成軟消息。
8.根據(jù)權(quán)利要求7所述的奇偶節(jié)點處理器,還包括符號處理塊,與所述輸出處理塊耦接,該符號處理塊被配置為確定與所述軟消息相關(guān)的符號其中,使用二進制異或邏輯電路實現(xiàn)該符號處理塊;以及將所述輸入處理塊實現(xiàn)為查找表,其中將所述輸出處理塊實現(xiàn)為查找表。
9.一種用于使用包括在低密度奇偶校驗LDPC解碼器中的奇偶節(jié)點處理器來處理所接收的無線信號的方法,該方法包括接收無線信號;從該無線信號中除去載波信號,以產(chǎn)生接收信號;根據(jù)所述接收信號生成變量消息;對所述變量消息執(zhí)行指數(shù)運算,以生成指數(shù)數(shù)據(jù);求和所述指數(shù)數(shù)據(jù);從所求和的指數(shù)數(shù)據(jù)中減去變量消息,以形成差;以及對所述差執(zhí)行對數(shù)運算。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述求和指數(shù)數(shù)據(jù)包括累加所述指數(shù)數(shù)據(jù),其中,所述從所求和的指數(shù)數(shù)據(jù)中減去變量消息包括從累加的指數(shù)數(shù)據(jù)中減去變量消息的時移版本。
11.一種包括奇偶節(jié)點處理器的低密度奇偶校驗LDPC解碼器,所述奇偶節(jié)點處理器被配置為產(chǎn)生作為從多個變量節(jié)點接收的變量消息的估計的軟消息,該LDPC解碼器包括多個變量節(jié)點處理器,被配置為基于所述接收信號生成變量消息;降階單元,與所述多個變量節(jié)點處理器耦接,該降階單元被配置為接收所述多個變量消息,并在生成所述軟消息之前降低變量消息的階次;以及奇偶節(jié)點處理器,與所述降階單元耦接,該奇偶節(jié)點處理器被配置為基于導(dǎo)致表示變量消息的估計的軟輸出的降階變量消息的符號而實現(xiàn)和積算法SPA的近似。
全文摘要
用于在解碼低密度奇偶校驗LDPC碼的過程中產(chǎn)生校驗節(jié)點更新的系統(tǒng)和方法,其使用新的近似,以在維持準(zhǔn)確性的同時降低實現(xiàn)LDPC解碼器的復(fù)雜度。該新的近似逼近標(biāo)準(zhǔn)的和積算法SPA,并且可以降低最小和算法MSA的近似誤差,而且在浮點精度運算和定點運算兩種情況下具有幾乎與和積算法SPA相同的性能。
文檔編號H04L1/00GK101079638SQ20071012832
公開日2007年11月28日 申請日期2007年7月6日 優(yōu)先權(quán)日2006年7月28日
發(fā)明者孫國輝, 靳晶, 堯文彬, 楊鴻文 申請人:開曼群島威睿電通股份有限公司