專利名稱:用于線性分組碼的糾擦除和單錯的解碼器的制作方法
背景領(lǐng)域本發(fā)明通常涉及數(shù)據(jù)通信,尤其涉及有效執(zhí)行線性分組碼的擦除和單錯糾正的解碼的技術(shù)。
背景隨著數(shù)據(jù)通信到來和通過有損或帶限信道發(fā)送大量數(shù)據(jù)的需要,對數(shù)據(jù)編碼以便正確接收具有巨大的重要性。通常數(shù)據(jù)傳輸在通信信道中由于損害而惡化,例如熱噪聲、干擾、傳輸帶寬造成的寄生數(shù)據(jù)等等。從而接收數(shù)據(jù)通常是發(fā)送數(shù)據(jù)的失真版本。
編碼可以用于使接收機檢測和/或糾正接收數(shù)據(jù)中的差錯。各種差錯糾正碼可用,并且可以被分為幾類,例如分組碼和卷積碼。卷積碼提供良好的差錯糾正能力但通常輸出相關(guān)的差錯突發(fā)。當與正確的交織水平結(jié)合時分組碼具有內(nèi)在的突發(fā)差錯控制能力。例如,Reed-Solomon碼可以控制碼元內(nèi)的任何差錯突發(fā),此碼元可以被定義為包括特定比特數(shù)。
理論上,分組碼能糾正特定數(shù)目的擦除和/或特定數(shù)目的差錯,每個的準確數(shù)目由碼距確定。一擦除可以指示先驗已知潛在地為壞的一碼元。但一差錯是經(jīng)錯誤接收,但不是先驗所知的碼元。通常擦除是已知的或可以由接收機確定,從而在解碼過程中被考慮。差錯是未檢測的碼元差錯,此碼元是被錯誤檢測為正確接收而本身未被正確接收的碼元。
傳統(tǒng)的擦除和差錯糾正分組解碼器(例如,Berlekamp-Massey或Euclidean解碼器)復雜,而且通常需要在專用硬件中實現(xiàn)。這些分組解碼器通常對于在微處理器上執(zhí)行的基于軟件的實現(xiàn)在計算強度上過于密集?;谟布慕獯a器能夠使用解碼算法中的并行性,且使用流水線式數(shù)據(jù)路徑,它們兩者可能不都是傳統(tǒng)的微處理器。更有效的分組解碼器算法可用,這些算法更適合基于軟件的實現(xiàn)。然而,這些解碼算法通常具有有限能力,可以能夠糾正擦除而非差錯。
因此本領(lǐng)域需要用于線性分組碼的有效的擦除和差錯糾正解碼器,而且此解碼器適合基于軟件的實現(xiàn)。
摘要本發(fā)明的幾個方面提供了用于對先前使用(N,K)線性分組碼以按列方式編碼和使用差錯檢測碼以按行方式編碼的接收碼元分組有效地執(zhí)行擦除和單差錯糾正分組解碼的技術(shù)。如果行上的差錯檢測碼(例如,CRC碼)具有相對良好的差錯檢測性能,則在接收數(shù)據(jù)分組中多于一個未檢測差錯的概率非常低。從而,單個差錯糾正通常在多數(shù)應用中是足夠了。
開始,接收分組的每一行被標記為擦除行或非擦除行,直到至少(K+1)個非擦除行被發(fā)現(xiàn)。通常接收分組的所有N行被標記,但是這不是絕對必要的。這些行可以基于每行中包含的循環(huán)冗余校驗(CRC)比特而被標記,或者通過其他裝置被標記。然后,僅擦除或擦除和差錯糾正分組解碼可以根據(jù)擦除的行數(shù)(即,被(N,K)分組碼距所支持的)在接收分組上被執(zhí)行。
為了對接收分組執(zhí)行擦除和單個差錯糾正分組解碼,對應于包含未檢測碼元差錯的接收分組的一列碼字開始時被標識。未檢測碼元可以是沒有被先前的CRC校驗檢測到的差錯,先前的CRC校驗在接收分組的每行上被執(zhí)行。此碼字可以被標識,通過(1)導出接收分組的非擦除系統(tǒng)行的估計;(2)將非擦除系統(tǒng)行與它的估計作比較;以及(3)標識非擦除系統(tǒng)行和它的估計之間不匹配的碼元。
接著,基于特定分組解碼方案(如,本領(lǐng)域內(nèi)公知且對應于所選線性分組碼的方案)確定碼字中的(先前未檢測的)碼元差錯位置。其后,包含被定位的碼元差錯的接收分組的行被標記為擦除行。接著,可以對具有包含碼元差錯的標記的擦除行的接收分組以常規(guī)方式執(zhí)行分組解碼。這里描述的擦除和單差錯糾正分組解碼技術(shù)計算效率高(相對于傳統(tǒng)技術(shù)),并且可以以硬件、軟件或它們的組合實現(xiàn)。
下面將進一步詳細描述本發(fā)明的多個方面和實施例,本發(fā)明還提供方法、計算機程序產(chǎn)品、解碼器、接收機單元以及實現(xiàn)本發(fā)明的各個方面、實施例和特性的其他裝置和元件,如下面進一步詳細描述的。
附圖的簡要描述通過下面提出的結(jié)合附圖的詳細描述,本發(fā)明的特征、性質(zhì)和優(yōu)點將變得更加明顯,附圖中相同的符號具有相同的標識,其中
圖1是能夠?qū)崿F(xiàn)本發(fā)明的多個方面和實施例的發(fā)射機單元和接收機單元的框圖;圖2是圖示了用于執(zhí)行線性分組碼的僅擦除糾正分組解碼的各個步驟的圖示;圖3A和B圖示了用于執(zhí)行線性分組碼的擦除和單差錯糾正分組解碼的各個步驟;圖4是用于執(zhí)行線性分組碼的擦除和單差錯糾正分組解碼的過程的實施例簡化的流程圖;圖5A和B示出了執(zhí)行線性分組碼的擦除和單差錯糾正分組解碼的過程的圖1是能夠?qū)崿F(xiàn)本發(fā)明的各個方面和實施例的發(fā)射機單元110和接收機單元150的框圖;在發(fā)射機單元110處,數(shù)據(jù)源112向外部編碼器120提供數(shù)據(jù)(如,以特定長度的幀的形式),外部編碼器120包括分組編碼器122和CRC編碼器124。分組編碼器122接收和編碼特定數(shù)目的數(shù)據(jù)幀的每個分組,以提供相應的經(jīng)分組編碼的數(shù)據(jù)分組。在一實施例中,數(shù)據(jù)分組中的比特先被分組以形成碼元(每個碼元包括NB比特),而數(shù)據(jù)發(fā)組中的K個碼元的每列使用特定的(N,K)線性分組碼被編碼,以提供具有N個碼元的相應碼字。從而經(jīng)分組編碼的數(shù)據(jù)發(fā)組包括碼元的N行。對于系統(tǒng)分組碼,前K行是數(shù)據(jù)行,而其余的(N-K)行是一致校驗行。
對于經(jīng)分組編碼的數(shù)據(jù)分組中N幀的每一個,CRC編碼器124基于此幀中的數(shù)據(jù)比特生成一個CRC比特的集合,并且將這些CRC比特附加在此幀的末尾。在接收機單元,包括在每幀中的CRC比特用于幀的差錯檢測。CRC編碼器124提供經(jīng)編碼分組,每個編碼分組在一個(水平)方向上經(jīng)CRC編碼,而在另一個(垂直)方向上被分組編碼。
分組編碼器122可以實現(xiàn)線性分組碼,例如Reed-Solomon碼(一般用于數(shù)據(jù)傳輸)、Hamming碼、BCH(Bose、Chaudhuri以及Hocquenghem)碼以及一些其他碼。這里描述的發(fā)明性分組編碼技術(shù)可以用于任何線性分組編碼,并且有利于用于系統(tǒng)分組碼。
在圖1所示的實施例中,經(jīng)編碼的分組被提供至包括交織器132和卷積編碼器134的內(nèi)部編碼器130。交織器132打亂(即,重排序)每個編碼分組中的比特,并且提供此交織比特至卷積編碼器134,然后卷積編碼器134根據(jù)特定卷積碼對這些比特編碼。交織提供了時間分集,并將來自卷積編碼器的突發(fā)差錯分散。
盡管內(nèi)部編碼器130可以用于提供附加的差錯糾正能力,這里描述的發(fā)明性分組解碼技術(shù)可以用于不包括由編碼器130提供的內(nèi)部編碼的編碼方案。從而內(nèi)部編碼器130是可任選的,如虛線框所代表的。同樣,被提供至外部編碼器120的數(shù)據(jù)可以代表先前已經(jīng)使用特定碼(即,不是“原始”數(shù)據(jù)或信息比特)被編碼的數(shù)據(jù)。
來自內(nèi)部編碼器130的編碼數(shù)據(jù)接著被提供至調(diào)制器/發(fā)射機(Mod/TMTR)140,140調(diào)制(如,覆蓋和擴展)這些編碼數(shù)據(jù)以提供調(diào)制數(shù)據(jù)并進一步調(diào)節(jié)(如,變換到一個或多個模擬信號、濾波、放大、上變頻以及正交調(diào)制)這些調(diào)制數(shù)據(jù)以提供適合在(如,無線)通信信道上傳輸?shù)恼{(diào)制信號。
在接收機單元150處,發(fā)送的調(diào)制信號由天線152接收,并且被提供至接收機/解調(diào)器(RCVR/Demod)154。接收機/解調(diào)器154調(diào)節(jié)(如,濾波、放大以及下變頻)接收信號并且將此經(jīng)調(diào)節(jié)的信號數(shù)字化以提供數(shù)據(jù)采樣。接收機/解調(diào)器154還可以進一步處理(如,解擴展和去覆蓋)數(shù)據(jù)采樣以提供解調(diào)數(shù)據(jù)。
在圖1所示的實施例中,解調(diào)數(shù)據(jù)被提供至內(nèi)部解碼器160,內(nèi)部解碼器160包括Viterbi解碼器162和去交織器164。Viterbi解碼器162執(zhí)行發(fā)射機單元110處使用的卷積碼的解碼,去交織器164以與交織器132執(zhí)行相反的方式對解碼比特重排序。然后,去交織的數(shù)據(jù)被提供至外部解碼器170。
外部解碼器170包括CRC校驗器172和分組解碼器174。對于對應于從發(fā)射機單元發(fā)送的編碼分組的每個接收分組,CRC校驗器172校驗接收分組的每行,并且提供此行被正確接收還是錯誤(即,擦除)接收的指示。然后,CRC校驗的分組被提供至分組解碼器174,分組解碼器174執(zhí)行此分組的擦除和單差錯或僅擦除的糾正分組解碼,如下面詳細描述的。來自分組解碼器174的解碼數(shù)據(jù)接著被提供至數(shù)據(jù)宿176。
控制器180可以被用于指引接收機單元150處的各個解碼步驟??刂破?80也可以用于實現(xiàn)外部解碼器170的一些或全部。這樣,程序代碼和必要的數(shù)據(jù)可以被存儲在存儲器182中,存儲器182被操作性地耦合到控制器180。
圖1示出了能夠?qū)崿F(xiàn)本發(fā)明的各個方面和實施例的發(fā)射機單元和接收機單元的實施例,其他發(fā)射機和接收機設(shè)計也可以被使用,并且在本發(fā)明的范圍內(nèi)。例如,接收機單元可以被設(shè)計得包括CRC校驗器172和分組解碼器174而無內(nèi)部解碼器160。
圖2是圖示了用于執(zhí)行線性分組碼的僅擦除糾正分組解碼的各個步驟的圖示。(N,K)線性分組編碼器對K個數(shù)據(jù)碼元得每個“分組”編碼(如果是循環(huán)碼,則根據(jù)特定多項式集合),以提供具有N個編碼碼元的對應的碼字。碼的最小距離D確定分組碼的擦除和差錯糾正能力,而碼參數(shù)(N,K)確定了存儲要求。已知(N,K)分組碼能同時糾正一給定碼字中的T個碼元差錯和F個擦除,其中T和F符合下面的條件(2T+F)≤(D-1) 公式(1)這里描述的發(fā)明性解碼技術(shù)可以用于任何碼率。為了簡明,具有碼率(8,4)和最小距離D=5的一個小碼被用于圖2中示出的特定示例。
在發(fā)射機單元,每組具有特定數(shù)目的數(shù)據(jù)幀由一K×L的信息分組iK×L表示。在一實施例中,每行信息分組對應于各自的數(shù)據(jù)幀,而且對于該幀中的所有比特包括L個碼元。每個碼元(由信息分組iK×L中的小方塊表示)包括NB比特,NB的具體值取決于對于使用所選擇的特定分組碼。
分組編碼通過將信息分組iK×L用N×K的生成矩陣GN×K左乘(步驟1)??梢曰诖_定用于所選線性分組碼的多項式集合導出生成矩陣。確定此多項式和導出生成矩陣的技術(shù)在本領(lǐng)域內(nèi)公知,這里不做描述。因為信息分組和生成矩陣中的每個碼元可以是多比特值,矩陣乘法的逐元素相乘和相加在Galois域GF(2NB)上執(zhí)行,其中NB是每個碼元的比特數(shù)。生成矩陣與信息分組相乘產(chǎn)生N×L的編碼分組cN×L。
對于系統(tǒng)(N,K)的分組碼,每個碼字包括K個數(shù)據(jù)碼元以及(N-K)個一致校驗碼元,此一致校驗碼元有K個數(shù)據(jù)碼元的線性組合形成。從而,如圖2中示例所示編碼分組,cN×L包括信息分組iK×L中的K個數(shù)據(jù)行的K個系統(tǒng)行,以及基于K個數(shù)據(jù)行和生成矩陣產(chǎn)生的(N-K)個一致校驗行。編碼分組cN×L中L列的每一個對應于一相應的碼字。
如圖1中所示,編碼分組cN×L在發(fā)射機單元處被進一步處理,并且被發(fā)送至接收機單元,接收機單元然后執(zhí)行互補的處理以提供一接收分組rN×L。接收分組rN×L中每個碼元對應于編碼分組cN×L中的一個碼元,但是可能由于通信信道引起的降級而被錯誤接收。
在接收機單元,接收分組中每行(例如,每個數(shù)據(jù)幀)可以由CRC校驗器172校驗以確定此行被正確接收還是錯誤接收(步驟2)。如果某行的CRC未通過校驗,則整行被視為已經(jīng)非正確地接收,無論差錯出現(xiàn)于此行的僅一個碼元、一些碼元或所有碼元中。對于圖2中所示的示例,接收碼元rN×L的第二行和第四行被標記為擦除,因為CRC未通過這些行的校驗。這些擦除行由陰影方塊的行表示。
在某些實例中,即使一行包括多個差錯也可以通過CRC校驗。如果此行中的差錯數(shù)超過所選CRC碼的差錯檢測能力以及差錯的特定值使得CRC(碰巧地)通過校驗時,上述情況發(fā)生。這種情況下,此行將被(錯誤地)指示為已經(jīng)被正確接收,而事實上此時它包括多個未檢測到的碼元差錯。接收分組rN×L中第六行示出這種差錯的示例,其中三個未檢測碼元差錯由三個黑方塊指示。
只糾正擦除(而非差錯)的分組解碼技術(shù)可以被執(zhí)行如下。首先,對應于接收分組rN×L的擦除行的生成矩陣GN×K的行也被標記為擦除(步驟2)。對于圖2中所示的示例,生成矩陣GN×K的第二行和第四行被標記為擦除,由GN×K中的陰影方塊指示。
對于僅差錯糾正分組解碼中的下一步,接收分組rN×L的任何K個非擦除行被選擇以形成簡化的接收分組rK×L′,生成矩陣GN×K的對應的K行也被選擇以形成簡化的生成矩陣GK×K′(步驟3)。對于圖2中示出的示例,接收分組rN×L的前四個非擦除行(即,第1、3、5和6行)被選擇以形成簡化的接收分組rK×L′,而生成矩陣GN×K的對應的第1、3、5和6行被選擇以形成簡化的生成矩陣GK×K′。在此示例中,所選行之一(即,第6行)也碰巧包括未被檢測出的碼元差錯。
然后,簡化的生成矩陣GK×K′被求逆以導出求逆的(即,逆)生成矩陣GK×K′-1(步驟4)。此矩陣求逆可以以本領(lǐng)域內(nèi)公知的方式被執(zhí)行。逆生成矩陣GK×K′-1接著與簡化的接收分組rK×L′相乘,以導出信息分組iK×L′的初始估計(步驟4)。接著通過用初始估計的信息分組iK×L′的對應行替換接收分組rN×L的擦除系統(tǒng)行(即,第2和4行)而導出信息分組的估計 (步驟5)。
如果簡化的接收分組rK×L′中的所有行中碼元都是正確值,則估計信息分組 將等于發(fā)送信息分組iK×L(即,i^K×L=iK×L]]>)。這樣,分組解碼能通過使用冗余一致校驗行(即,第5和6行)以恢復擦除的系統(tǒng)行(即,第2和4行),從而糾正接收分組中的擦除。
然而,對于圖2中示出的示例,簡化的接收分組rK×L′中最后一行的未檢測碼元差錯導致初始估計信息分組iK×L′的對應列的差錯。這些差錯由初始估計信息分組iK×L′的第4、7和12列中的黑方塊示出。因為接收分組rN×L的第2和4行被擦除,所以這些行由初始估計信息分組iK×L′的對應的第2和4行替換。如圖2中所示,每個替代擦除的行將包括與差錯行中相同數(shù)目的碼元差錯。然后,這些差錯將被提交給下一個處理階段。
圖3A和B圖示了用于執(zhí)行線性分組碼的擦除和單差錯糾正分組解碼的各個步驟。為了簡明,圖3A和B的實施例使用與用于圖2的示例相同的示例,從而接收分組rN×L包括兩個擦除行2和4,以及一個差錯行6(包含多個未檢測出的碼元差錯)。
糾正擦除和單差錯的分組解碼技術(shù)可以被執(zhí)行如下。開始,接收分組rN×L的每行由CRC校驗器172校驗,以確定此行被正確接受或錯誤接收,而且如果CRC不通過校驗則此行被標記為擦除(圖2中步驟2)。接收分組rN×L的非擦除系統(tǒng)行接著被標記為偽擦除行(圖3A中步驟3),而且對于后面的一些解碼步驟(即,步驟4和5)被像擦除行那樣處理。接著,對應于接收分組rN×L的擦除行的生成矩陣GN×K的行被標記為擦除(步驟3)。對于圖3A和3B中示出的示例,生成矩陣GN×K的第1、2和4行被標記為擦除,由陰影方框指示。
對于擦除和單差錯糾正分組解碼的下一步,接收分組rN×L的任何K個非擦除行被選擇以形成簡化的接收分組rK×L′,而生成矩陣GN×K的相應K行被選擇以形成簡化的生成矩陣GK×K′(步驟4)。對于圖3A和3B中示出的示例性實施例,接收分組rN×L中的前四個非擦除行(即第3、5、6和7行)被選擇以形成簡化的接收分組rK×L′,而生成矩陣GN×K的對應的第3、5、6和7行被選擇以形成簡化的生成矩陣GK×K′。同樣對于此示例,所選行之一(即,第6行)碰巧包括未檢測出的碼元差錯。
接著,對簡化的生成矩陣GK×K′求逆以導出逆生成矩陣GK×K′-1(步驟5)。其后,逆生成矩陣GK×K′-1與簡化的接收分組rK×L′相乘以導出初始估計信息分組iK×L′(步驟5)。
對于分組解碼中的下一步,偽擦去行(即,第1行)與初始估計信息分組iK×L′中的對應行比較(步驟6)。由于矩陣乘法,簡化的接收分組rK×L′的任何碼元差錯導致初始估計信息碼元iK×L′中整列碼元差錯。從而,當偽擦除行與初始估計信息分組iK×L′中的對應行逐個碼元比較時,差錯(即不匹配的碼元)在第4、7和12列被檢測,因為這些位置的碼元不匹配。
對應于包含不匹配碼元的列的碼字然后被選中(步驟6)。對于圖3A和3B中示出的示例性實施例,對應于包含第一個不匹配碼元的行(即,第4行)的碼字被選中。然后執(zhí)行計算以在選中碼字中定位碼元差錯??梢曰诒绢I(lǐng)域內(nèi)公知的各種分組解碼技術(shù)確定差錯位置。例如,對于Reed-Solomon碼,首先從碼字的N個碼元計算伴隨式,然后從此伴隨式計算差錯位置多項式σ(x)的系數(shù),接著差錯定位器從這些系數(shù)被計算。對于圖3A和3B中示出的示例性實施例,碼元差錯被定位在碼字的第6個位置。
在下一步中,碼元差錯位于的整行(即,第6行)被標記為擦除行,而偽擦除行(即,第1行)被標記為非擦除行(步驟7)。然后,隨后的分組解碼可以如上述圖2中所描述而繼續(xù)。特別地,接收分組rN×L的任意K個非擦除行(即,第1、3、5和7行)可以被選擇以形成新的簡化的接收分組rK×L″,而生成矩陣GN×K的對應的K行被選擇以形成新的簡化的生成矩陣GK×K″。如圖3中所示,具有(先前未檢測到的)碼元差錯的行被標記為擦除行,并且不被選擇使用。
然后,新的簡化的生成矩陣GK×K″被求逆,以導出逆生成矩陣GK×K″-1(步驟8)。逆生成矩陣GK×K″-1接著與簡化的接收矩陣rK×L″相乘,以導出信息分組iK×L″的新的初始估計。信息分組的估計 接著可以通過使用新的初始估計信息分組iK×L″的對應行替換接收分組rN×L的擦除系統(tǒng)行(即,第2和4行)而被導出(步驟9)。
因為新的簡化的接收分組rK×L″的所有行中的碼元都是正確值,所以估計的信息分組 等于發(fā)送信息分組iK×L(即,i^K×L=iK×L]]>)。在此示例中,擦除和單差錯糾正分組解碼通過使用冗余一致校驗行(即,第5和7行)以恢復擦除的系統(tǒng)行(即,第2和4行),從而能糾正接收分組rN×L中的兩個擦除行和一個差錯行。
一般,達到擦除和單差錯糾正分組解碼可通過(1)使用冗余一致校驗行以導出對于非擦除系統(tǒng)行的估計,(2)比較非擦除系統(tǒng)行和它的估計以確定不匹配碼元(或差錯)的位置,(3)在包含一不匹配碼元的碼字(或列)中定位碼元差錯,(4)將包含碼元差錯的整行標記為擦除,以及(5)基于接收分組的非擦除行執(zhí)行系統(tǒng)行的分組解碼。
本發(fā)明的擦除和單差錯糾正分組解碼技術(shù)計算強度小于傳統(tǒng)的解碼技術(shù)(部分因為如果未檢測出的碼元差錯隨后被檢測為具有偽擦除行,則差錯定位僅對一個碼字執(zhí)行)。從而,偽擦除行可以被用于指出未檢測碼元差錯所位于的精確的碼字(或2維分組中的精確列),以及碼字中碼元差錯的精確位置(或2維分組中的精確行)可以通過在碼字上執(zhí)行分組差錯定位而被確定。然后,包含(先前未檢測出的)碼元差錯的行被標記為擦除,而且僅擦除糾正分組解碼可以在接收的分組上被執(zhí)行。
圖3A中的步驟3到6有效地確定可以發(fā)現(xiàn)的未檢測出的碼元差錯的特定列。其他方案也可以被用于確定差錯列,而且這在本發(fā)明的范圍內(nèi)。
而且,在步驟6中,不需要同時(即,對于整行)導出偽擦除。而是,可以一次一個碼元地導出偽擦除并與接收的偽擦除行中的對應碼元相比。那樣,如果差錯被定位在第一列中的一個內(nèi),則此行內(nèi)的其他偽擦除不需要被導出。
導出信息分組iK×L′的初始估計以及估計信息分組iK×L′的信息是概念性步驟。對于圖3A和3B中使出的示例,這些步驟被示出以便更好地理解分組解碼技術(shù)。然而,實際上導出的iK×L′的僅有的一些行是初始接收分組中被擦去的那些行。
因為接收分組中只有(K+1)個良好行(或經(jīng)CRC校驗的幀)被需要以執(zhí)行擦除和單差錯解碼,可能(K+1)個良好行一當被接收就關(guān)掉接收單元的前端(例如,圖1中的接收機/解調(diào)器154、Viterbi解碼器162、去交織器164以及CRC校驗器172)。這將節(jié)省接收機單元中的功率。
圖4是根據(jù)本發(fā)明的實施例執(zhí)行線性分組碼的擦除和單差錯糾正分組解碼的過程400的簡化流程圖。開始在步驟412中,包括幾個碼字的編碼的分組被接收,而且接收分組中的擦除行被確定。可以通過在接收分組的每一行上執(zhí)行CRC校驗或通過一些其他機制確定擦除行。
在步驟414中,對應于包含未檢測出的碼元差錯的接收分組的一列的碼字被標識。此未檢測出的碼元差錯是不包括在接收分組的擦除行中的一個差錯。可以使用上述的偽擦除行或通過其他裝置標識此列。然后在步驟416中,確定碼字中的碼元差錯位置(例如,使用本領(lǐng)域中已知的任何技術(shù))。接著在步驟418中,將包含碼元差錯的接收分組的行標識為擦除行。接著在步驟420中,可以對接收分組執(zhí)行分組解碼,所述接收分組具有最新被標記為擦除的包含了碼元差錯的行。
圖5A和5B示出了用于根據(jù)本發(fā)明的實施例執(zhí)行(N,K)線性分組碼的擦除和單差錯糾正分組解碼的過程500的詳細流程圖。開始在步驟512中,包括幾個(L)碼字的編碼分組被接收,而且此接收分組中的擦除行被確定。
接著在步驟514中,確定接收分組中的擦除行數(shù)是否大于(D-1)。如上面等式(1)中標出的,正確設(shè)計的分組碼可以糾正一個碼字中的最多(D-1)個擦除碼元。從而,如果擦除行數(shù)超過(D-1),則不可能糾正所有擦除行,因為此碼距過大,如步驟516中所指示。然后此步驟終止。
另一方面,在步驟518中,如果擦除行數(shù)等于或小于(D-1),則確定接收分組中的擦除行數(shù)是否大于(D-3)。同樣如上面等式(1)中所標出,正確設(shè)計的分組碼可以糾正一個碼字中的最多(D-3)個擦除碼元和一個差錯碼元。從而如果擦除行數(shù)等于(D-2)或(D-1),則對所有擦除行有可能進行僅擦除糾正,并且開始在步驟522中執(zhí)行。
或者在步驟520中,如果擦除行數(shù)等于或小于(D-3),則確定接收分組中的擦除系統(tǒng)行數(shù)是否大于(K-1)。如果系統(tǒng)行之一被用作偽擦除行以定位未檢測出的碼元差錯的列,并且如果沒有非擦除的系統(tǒng)行可供使用作偽擦除行,則仍可能進行所有擦除行的僅擦除糾正,并且同樣可以在步驟522開始執(zhí)行。
或者,如果擦除行數(shù)等于或小于(D-3)而且至少一個非擦除系統(tǒng)行可供利用,則在步驟532開始,擦除和單差錯糾正分組解碼可以在此接收分組中執(zhí)行。一般,擦除和單差錯糾正分組解碼可以在任何可能的時候被執(zhí)行,如果可能且如果擦除和單差錯糾正分組解碼不能被執(zhí)行,則執(zhí)行僅擦除糾正分組解碼。
在步驟522中,為了執(zhí)行僅擦除糾正分組解碼,簡化的生成矩陣GK×K′開始通過選擇對應于接收分組rN×L的任意K個非擦除行的生成矩陣GN×K的K行而形成。然后在步驟524中,簡化的生成矩陣被求逆。接著在步驟526中,從信息分組iK×L′的初始估計的對應行導出接收分組的擦除系統(tǒng)行,信息分組iK×L′的初始估計通過將逆生成矩陣GK×K′-1和簡化的接收分組rK×L′相乘而導出,而簡化的接收分組rK×L′由接收分組rN×L的K個對應非擦除行形成。如果簡化的接收分組rK×L′的行中沒有未檢測出的碼元差錯,則初始估計信息分組iK×L′將包括接收分組中的所有擦除系統(tǒng)行的糾正。然后,僅擦除糾正分組解碼終止。
為了執(zhí)行擦除和單差錯糾正分組解碼,首先確定接收分組中未檢測碼元差錯的行位置。這可以如下達到。首先在步驟532中,非擦除系統(tǒng)行(例如,接收分組中的第一個這樣的行)被選擇作為偽擦除行。在下面的步驟中,此行被作為擦除行處理,以確定未檢測出的碼元差錯的位置。然后在步驟534中,簡化的生成矩陣GK×K′通過選擇對應于接收分組rN×L的任意K個非擦除行的生成矩陣GN×K的K行而形成。接著在步驟536中,簡化的生成矩陣被求逆。接著在步驟538中,通過將逆生成矩陣GK×K′-1和簡化的接收分組rK×L′相乘而導出偽擦除行的估計,簡化的接收分組rK×L′由接收分組rN×L的K個對應的非擦除行形成。因為只需要偽擦除行的估計,GK×K′-1與rK×L′的矩陣相乘可以對GK×K′-1的僅一行(不是整個矩陣)和rK×L′的所有列執(zhí)行。
然后在步驟540中,比較偽擦除行和它的估計。此比較逐碼元地被執(zhí)行,直至檢測到第一個不匹配的碼元。接著在步驟542中確定偽擦除行中是否存在任何不匹配碼元。如果沒有不匹配碼元則接收碼元中沒有未檢測到的碼元差錯,而且此過程進行至步驟526以導出擦除的系統(tǒng)行。
或者,如果如步驟542中所確定的,偽擦除行中至少有一個不匹配碼元,則在接收的分組中存在未檢測出的碼元差錯,而且在步驟544中接著確定這些差錯的行位置。要達到這點可以通過標識偽擦除行內(nèi)的不匹配碼元(例如,第一個不匹配碼元)位置,檢索包含此不匹配碼元的碼字(或接收分組的列),以及基于本領(lǐng)域內(nèi)公知的技術(shù)對此碼字執(zhí)行差錯定位。從而在步驟546中,碼字中的碼元差錯被定位,而且包含此碼元差錯的接收分組的整行被標記為一擦除行。
然后,在步驟548中,確定偽擦除行是否是具有碼元差錯的行。如果答案肯定,則當簡化的接收分組和簡化的生成矩陣形成時此差錯行已經(jīng)被包括作為偽擦除。因此,GK×K′-1正確,而且rK×L′不包含任何未檢測出的差錯。接著此過程繼續(xù)到導出擦除的系統(tǒng)行的步驟526。否則,接著在步驟550中,新的簡化的生成矩陣GK×K″通過選擇生成矩陣GN×K的K行而形成,它對應于接收的分組rN×L的任意K行接收分組rN×L仍為非擦除。在步驟552,新的簡化的生成矩陣被求逆。
然后,此過程繼續(xù)至步驟526,其中接收分組的擦除系統(tǒng)行從信息分組iK×L″的新的初始估計的對應行導出,信息分組iK×L″通過將新的逆生成矩陣GK×K″-1和新的簡化的接收分組rK×L″相乘而導出,而新的簡化的接收分組rK×L″有接收分組rN×L的K個對應的非擦除行形成。
可以對圖5中示出的過程進行各種修改。例如,可能從步驟532到步驟546進行多次迭代以檢測多個差錯行。
本發(fā)明的分組檢測技術(shù)可以有利地用于包括檢錯碼和分組碼的級聯(lián)碼。檢錯編碼可以在信息分組的一維(例如,水平)上執(zhí)行,而分組編碼可以在信息分組的另一維(例如,垂直)上執(zhí)行。本發(fā)明性分組解碼技術(shù)可以用于識別并定位檢錯解碼未能捕捉的差錯,并用于從分組解碼過程中移去這些碼元差錯。從而本發(fā)明性分組解碼技術(shù)可以改善檢測差錯失敗引起的問題,檢測差錯失敗不能由常規(guī)的僅能糾正擦除而不能糾正差錯的分組解碼技術(shù)來處理。
這里描述的發(fā)明性分組解碼計算效率高,而且可以很好地適用于微處理器上執(zhí)行的軟件實現(xiàn)。為了定量化計算效率,圖5A和5B中流程圖的一些步驟所執(zhí)行的乘法和累加操作數(shù)被提供如下步驟 乘一累加運算的數(shù)目524,536,552 KPsys2(對于每一步)538 KL544 (P+2)(N-1)+P(P+2)+1(對于Reed-Solomon碼)526 KLPsys其中N是碼字長度;K是碼字中信息碼元數(shù);R是一致校驗碼元數(shù)(即,R=N-K);L是每個編碼分組的碼字數(shù);P是接收分組中的擦除行數(shù);以及Psys是接收分組中的擦除系統(tǒng)行數(shù)。
這里描述的本發(fā)明性分組解碼技術(shù)可以用于各種通信和數(shù)據(jù)傳輸系統(tǒng)。例如,這些技術(shù)可以有利于用于無線通信系統(tǒng),例如CDMA、FDMA以及TDMA系統(tǒng)。而且,在無線通信系統(tǒng)中,這里描述的解碼技術(shù)可以被實現(xiàn)在下行鏈路(即,前向鏈路)的終端(例如,如蜂窩電話的無線設(shè)備)或基站或上行鏈路的接入點。
正如上面注意到的,這里描述的本發(fā)明性分組解碼技術(shù)可以使用各種裝置被實現(xiàn)。例如,這些技術(shù)可以以硬件、軟件或它們的組合實現(xiàn)。對于硬件實現(xiàn),用于實現(xiàn)分組解碼的一些或全部的元件可以被實現(xiàn)在一個或多個下面的器件中應用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處設(shè)備(DSPD)、可編程邏輯設(shè)備(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、其他設(shè)計用于執(zhí)行這里所述功能的電子元件,或它們的組合。硬件(例如,ASIC或DSP)可以包括一個或多個功能單元,它們共同執(zhí)行上述處理以實現(xiàn)發(fā)明性分組編碼。例如,一單元可以被提供以執(zhí)行按行方式差錯檢測(例如,CRC校驗器172),另一個單元可以被提供以執(zhí)行按列方式分組解碼(例如,分組解碼器174)等等。
對于軟件實現(xiàn),發(fā)明性分組編碼技術(shù)可以使用執(zhí)行這里所描述的功能的模塊(例如,步驟、函數(shù)等等)來實現(xiàn)。軟件可以存儲在存儲器單元(例如,圖1的存儲器182)并且由處理器(例如,控制器180)執(zhí)行。存儲器單元可以在處理器內(nèi)或處理器外實現(xiàn),其中它通過各種本領(lǐng)域已知的方法被通信耦合到處理器。
上述優(yōu)選實施例的描述使本領(lǐng)域的技術(shù)人員能制造或使用本發(fā)明。這些實施例的各種修改對于本領(lǐng)域的技術(shù)人員來說是顯而易見的,這里定義的一般原理可以被應用于其它實施例中而不使用創(chuàng)造能力。因此,本發(fā)明并不限于這里示出的實施例,而要符合與這里揭示的原理和新穎特征一致的最寬泛的范圍。
權(quán)利要求
1.對先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的接收的碼元分組執(zhí)行分組解碼的方法,包括標識對應于未檢測出的碼元差錯所位于的接收分組的一列的碼字;確定碼字中的未檢測出的碼元差錯的位置;將包含未檢測的碼元差錯的接收分組的一行標記為擦除行;以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
2.如權(quán)利要求1所述的方法,還包括導出接收分組的非擦除系統(tǒng)行的估計;將非擦除系統(tǒng)行與它的估計比較;以及標識非擦除系統(tǒng)行和它的估計之間不匹配的碼元的位置,其中此碼字被標識為與包含該不匹配碼元的列相對應。
3.如權(quán)利要求2所述的方法,其特征在于,導出接收分組的非擦除系統(tǒng)行的估計通過將非擦除系統(tǒng)行標記為擦除行;形成包括接收分組的K個非擦除行的簡化的接收分組;以及將具有K個非擦除行的生成矩陣的逆矩陣與簡化的接收分組相乘。
4.如權(quán)利要求1所述的方法,其特征在于,通過基于特定分組解碼方案對碼字執(zhí)行差錯定位而確定碼字中的未檢測出的碼元差錯的位置。
5.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行分組解碼包括形成由接收分組的K個非擦除行組成的簡化的接收分組;形成由生成矩陣中對應于K個非擦除行的K行組成的簡化的生成矩陣;對簡化的生成矩陣求逆;以及將生成矩陣的逆矩陣與簡化的接收分組相乘。
6.如權(quán)利要求1所述的方法,還包括將接收分組的每行標記為擦除行或非擦除行,直至發(fā)現(xiàn)至少(K+1)個非擦除行。
7.如權(quán)利要求6所述的方法,其特征在于,基于循環(huán)冗余校驗(CRC)測試的結(jié)果每行被標記為擦除行或非擦除行。
8.如權(quán)利要求1所述的方法,還包括在接收分組中確定擦除行數(shù)。
9.如權(quán)利要求8所述的方法,還包括如果擦除行數(shù)等于(D-2)或(D-1),則執(zhí)行僅擦除糾正分組解碼。
10.如權(quán)利要求8所述的方法,還包括如果擦除行數(shù)小于或等于(D-3),則執(zhí)行擦除和差錯糾正分組解碼。
11.如權(quán)利要求10所述的方法,還包括確定接收分組中的擦除系統(tǒng)行數(shù);以及如果擦除系統(tǒng)行數(shù)小于或等于(K-1),則執(zhí)行擦除和差錯糾正分組解碼。
12.如權(quán)利要求8所述的方法,還包括如果擦除行數(shù)超過(D-1),則聲明出錯。
13.如權(quán)利要求1所述的方法,其特征在于,(N,K)線性分組碼是Reed-Solomon碼。
14.對先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的接收的碼元分組執(zhí)行分組解碼的方法,包括將接收分組的每行標記為擦除行或非擦除行,直至發(fā)現(xiàn)至少(K+1)個非擦除行;導出接收分組的非擦除系統(tǒng)行的估計;將非擦除系統(tǒng)行與它的估計比較;標識非擦除系統(tǒng)行和它的估計之間不匹配的碼元;標識對應于包含不匹配碼元的該接收分組的一列的一碼字;基于特定的分組解碼方案確定碼字中的一碼元差錯的位置;將包含碼元差錯的接收分組的一行標記為擦除行;以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
15.一計算機程序產(chǎn)品,用于對先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的接收的碼元分組執(zhí)行分組解碼,包括用于標識對應于未檢測出的碼元差錯所位于的接收分組的一列的一碼字的代碼;用于確定碼字中的未檢測出的碼元差錯的位置的代碼;用于將包含未檢測出的碼元差錯的接收分組的一行標記為一擦除行的代碼;用于對具有標記了擦除行的接收分組執(zhí)行分組解碼的代碼;以及用于存儲這些代碼的計算機可用媒質(zhì)。
16.如權(quán)利要求15所述的計算機程序產(chǎn)品,還包括用于導出接收分組的非擦除系統(tǒng)行的估計的代碼;用于將非擦除系統(tǒng)行與它的估計比較的代碼;以及用于標識非擦除系統(tǒng)行和它的估計之間不匹配碼元的位置的代碼,其中具有未檢測出碼元差錯的此碼字被標識為對應于包含不匹配碼元的列。
17.如權(quán)利要求16所述的計算機程序產(chǎn)品,其特征在于,用于導出接收分組的非擦除系統(tǒng)行的估計的代碼包括用于將該非擦除系統(tǒng)行標記為一擦除行的代碼;用于形成由接收分組的K個非擦除行組成的簡化的接收分組的代碼;以及用于將具有K個非擦除行的生成矩陣的逆矩陣與簡化的接收分組相乘的代碼。
18.如權(quán)利要求15所述的計算機程序產(chǎn)品,其特征在于,用于執(zhí)行分組解碼的代碼包括用于形成由接收分組的K個非擦除行組成的簡化的接收分組的代碼;用于形成由生成矩陣中對應于K個非擦除行組成的K行的簡化的生成矩陣的代碼;用于對簡化的生成矩陣求逆的代碼;以及用于將生成矩陣的逆矩陣與簡化的接收分組相乘的代碼。
19.耦合到能夠解釋數(shù)字信息的數(shù)字信號處理設(shè)備(DSPD)的存儲器,用于標識對應于未檢測出的碼元差錯所位于的接收分組一列的碼字;確定碼字中的未檢測出的碼元差錯的位置;將包含未檢測出的碼元差錯的接收分組的一行標記為擦除行;以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
20.數(shù)字信號處理器包括第一個單元,可操作用于接收先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的碼元分組,并且將接收分組的每行標記為擦除行或非擦除行,直至發(fā)現(xiàn)至少(K+1)個非擦除行;以及第二個單元,可操作用于標識對應于未檢測出的碼元差錯位于的接收分組一列的碼字,確定碼字中的未檢測出的碼元的位置,將包含未檢測的碼元差錯的接收分組的一行標記為擦除行,以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
21.如權(quán)利要求20所述的數(shù)字信號處理器,其特征在于,第二個單元還可操作用于導出接收分組的非擦除系統(tǒng)行的估計,將非擦除系統(tǒng)行與它的估計比較,以及標識非擦除系統(tǒng)行和它的估計之間的一不匹配的碼元,其中具有未檢測出的碼元差錯的此碼字被標識為與包含不匹配碼元的列相對應。
22.如權(quán)利要求20所述的數(shù)字信號處理器,其特征在于,第二個單元還可操作用于將該非擦除系統(tǒng)行標記為一擦除行,形成由接收分組的K個非擦除行組成的簡化的接收分組,以及將具有K個非擦除行的生成矩陣的逆矩陣與簡化的接收分組相乘。
23.如權(quán)利要求20所述的數(shù)字信號處理器,其特征在于,第二個單元還可操作用于形成由接收分組的K個非擦除行組成的簡化的接收分組,形成由生成矩陣中對應于K個非擦除行的K行組成的簡化的生成矩陣,對簡化的生成矩陣求逆,以及將生成矩陣的逆矩陣與簡化的接收分組相乘。
24.一種解碼器,包括第一個解碼器,可操作用于接收先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的碼元分組,并且將接收分組的每行標記為擦除行或非擦除行,直至發(fā)現(xiàn)至少(K+1)個非擦除行;以及第二個解碼器,可操作用于標識對應于未檢測出的碼元差錯的位于的接收分組一列的碼字,確定碼字中的未檢測出的碼元差錯的位置,將包含未檢測的碼元差錯的接收分組的一行標記為擦除行,以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
25.如權(quán)利要求24所述的解碼器,其特征在于,第一個解碼器可操作用于基于循環(huán)冗余校驗(CRC)測試的結(jié)果將每行標記為擦除行或非擦除行。
26.如權(quán)利要求24所述的解碼器,其特征在于,(N,K)線性分組碼是Reed-Solomon碼。
27.解碼裝置,包括裝置,用于將先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼按行方式編碼的接收分組的每行標記為擦除行或非擦除行,直至發(fā)現(xiàn)至少(K+1)個非擦除行;用于標識對應于未檢測出的碼元差錯所位于的接收分組一列的一碼字的裝置;用于確定碼字中的未檢測出的碼元差錯的位置的裝置;用于將包含未檢測出的碼元差錯的接收分組的一行標記為擦除行的裝置;以及用于對具有標記了擦除行的接收分組執(zhí)行分組解碼的裝置。
28.如權(quán)利要求27所述的解碼裝置,還包括用于導出接收分組的非擦除系統(tǒng)行的估計的裝置;用于將非擦除系統(tǒng)行與它的估計比較的裝置;以及用于標識非擦除系統(tǒng)行和它的估計之間不匹配的碼元的位置裝置,其中具有未檢測出的碼元差錯的此碼字被標識為與包含不匹配碼元的列相對應。
29.如權(quán)利要求28所述的解碼裝置,其特征在于,執(zhí)行分組解碼的裝置包括用于將非擦除系統(tǒng)行標記為擦除行的裝置;用于形成由接收分組的K個非擦除行組成的簡化的接收分組的裝置;以及用于將具有K個非擦除行的生成矩陣的逆矩陣與簡化的接收分組相乘的裝置。
30.如權(quán)利要求27所述的解碼裝置,其特征在于,執(zhí)行分組解碼的裝置包括用于形成由接收分組的K個非擦除行組成的簡化的接收分組的裝置;用于形成由生成矩陣中對應于K個非擦除行組成的K行的簡化的生成矩陣的裝置;用于對簡化的生成矩陣求逆的裝置;以及用于將生成矩陣的逆矩陣與簡化的接收分組相乘的裝置。
31.無線通信系統(tǒng)中的接收機單元,包括接收機,可操作用于處理接收信號以提供數(shù)據(jù)采樣;解調(diào)器,可操作用于處理數(shù)據(jù)采樣以提供碼元的接收分組;第一個解碼器,可操作用于將接收分組的每行標記為擦除行或非擦除行;以及第二個解碼器,可操作用于標識對應于未檢測出的碼元差錯所位于的接收分組一列的一碼字,確定碼字中的未檢測出的碼元差錯的位置,將包含未檢測出的碼元差錯的接收分組的一行標記為擦除行,以及對具有標記了擦除行的接收分組執(zhí)行分組解碼。
32.如權(quán)利要求31所述的接收機單元,還包括第三個解碼器,可操作用于根據(jù)特定卷積解碼方案接收和解碼來自解調(diào)器的解調(diào)數(shù)據(jù),以提供碼元的接收分組。
全文摘要
用于對先前使用(N,K)線性分組碼按列方式編碼和使用差錯檢測碼(例如,CRC碼)按行方式狀編碼的接收碼元分組有效地執(zhí)行去除和單差錯糾正分組解碼的技術(shù)。開始,接收分組的每一行被標為擦除行或非擦除行。為了對接收分組執(zhí)行擦除和單個差錯糾正分組解碼,對應于包含未檢測出的碼元差錯的一列接收分組的碼字開始時被標識?;谔囟ǚ纸M解碼方案和對應于所選(N,K)線性分組碼的解碼方案確定碼字中的碼元差錯的位置。其后,包含該碼元差錯的接收分組的行被標記為擦除的行。接著,可以使用包含碼元差錯的最新標記的擦除行對接收分組執(zhí)行分組解碼。
文檔編號H03M13/19GK1618174SQ02827520
公開日2005年5月18日 申請日期2002年12月3日 優(yōu)先權(quán)日2001年12月4日
發(fā)明者B·K·巴特勒, J·K·沃爾夫, R·米爾尼 申請人:高通股份有限公司