數(shù)據(jù)校驗方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信領(lǐng)域,具體而言,設(shè)及一種數(shù)據(jù)校驗方法及裝置。
【背景技術(shù)】
[0002] 數(shù)字通信系統(tǒng)的發(fā)射端通常包括信源、信道編碼器和調(diào)制器等部分,接收端通常 包括解調(diào)器、信道譯碼器、和信宿,圖1為現(xiàn)有技術(shù)中數(shù)字通信系統(tǒng)示意圖,如圖1所示。 信道編碼器用于給信息比特按照一定的規(guī)則引入冗余信息W便接收端信道譯碼器能夠在 一定程度上糾正信息在信道上傳輸時發(fā)生的誤碼。因此信道編碼是一種前向糾錯編碼 (F'orward Error Correction,簡稱為陽C)技術(shù)。
[0003] 一般來講,F(xiàn)EC編碼就是由信息比特序列生成校驗比特序列的過程,信息比特序列 和校驗比特序列共同組成了常說的碼字比特序列。常用的FEC編碼包括化rbo碼、低密度 奇偶校驗碼化OW Denisity Parity化eck Code,簡稱為LDPC)和卷積碼等;例如LTE系統(tǒng) 中就采用了化rbo碼用于數(shù)據(jù)傳輸;I邸E 802. 11系統(tǒng)中采用的是LDPC碼和卷積碼。
[0004] LTE的二進(jìn)制化rbo編碼是一種帶有內(nèi)部交織器的并行級聯(lián)碼,一般由兩個結(jié)構(gòu) 相同的遞歸系統(tǒng)卷積碼巧escursive System Code,簡稱為RSC)分量碼編碼器并行級聯(lián)而 成。Turbo碼內(nèi)交織器在第二個分量碼編碼器之前將輸入的二進(jìn)制信息序列中的比特位置 進(jìn)行隨機(jī)置換,當(dāng)交織器充分大時,Turbo碼就具有近似隨機(jī)長碼的特性。Turbo碼的編碼 結(jié)構(gòu)如圖2所示。輸入的二進(jìn)制信息序列Xk經(jīng)過第一個分量碼編碼器生成一路校驗序列 Zk。同時Xk經(jīng)過化rbo碼內(nèi)交織器交織后,由第二個分量碼編碼器生成另一路校驗序列Z' k。 陽0化]Turbo碼的譯碼器也有兩個級聯(lián)的子譯碼器構(gòu)成,分別是第一分量譯碼器和第二 分量譯碼器,如圖3所示,其中第一分量譯碼器輸出的信息比特的邊信息(也稱外信息, extrinsic information)經(jīng)過!"Urbo碼的內(nèi)交織后作為先驗信息(prior information)輸 入第二分量譯碼器。同樣,第二分量譯碼器輸出的信息比特的邊信息經(jīng)過解交織后作為先 驗信息輸入第一分量譯碼器。如此形成迭代譯碼的結(jié)構(gòu)。譯碼器輸出的軟信息是第二分量 譯碼器輸出的邊信息加上輸入的先驗信息經(jīng)過解交織后再與信道輸入的軟信息之和。經(jīng)過 幾次迭代后譯碼器對輸出的軟信息進(jìn)行判決,生成譯碼器對信息比特序列的估計。
[0006] LDPC碼是一種基于稀疏校驗矩陣的線性分組碼,利用它的校驗矩陣的稀疏性,可 W實現(xiàn)低復(fù)雜度的編譯碼。LDPC奇偶校驗矩陣的圖形表示形式是二分圖。二分圖和校驗矩 陣H之間具有一一對應(yīng)的關(guān)系,一個M*N的奇偶校驗矩陣H定義了每個具有N比特的碼字 滿足M個奇偶校驗集的約束。一個二分圖包括N個變量節(jié)點(diǎn)和M個奇偶校驗節(jié)點(diǎn)。當(dāng)?shù)趍 個校驗設(shè)及到第n個比特位,即H中第m行第n列的元素血,n = 1時,將有一根連線連接 校驗節(jié)點(diǎn)m和變量節(jié)點(diǎn)n。二分圖中,任何同一類的節(jié)點(diǎn)之間都不會有連接,并且二分圖中 的總邊數(shù)和校驗矩陣中非零元素的個數(shù)相等。
[0007] LDPC碼的譯碼可W采用基于置信傳播化elief propagation)的迭代算法(簡稱 信傳算法)。信傳算法是基于二分圖結(jié)構(gòu)的譯碼算法,由于在算法的運(yùn)行過程中,可靠性信 息在二分圖的變量節(jié)點(diǎn)和校驗節(jié)點(diǎn)之間來回地傳送,因此稱為信傳算法。信傳算法有概率 域和對數(shù)域兩種形式,概率域算法設(shè)及到較多乘法,實現(xiàn)起來代價比較大,數(shù)值穩(wěn)定性也比 較差,而對數(shù)域算法主要是加法,容易實現(xiàn),數(shù)值穩(wěn)定性也比較好。圖4展示了基于二分圖 的信傳算法譯碼過程,其中較驗節(jié)點(diǎn)(方形節(jié)點(diǎn))表示一個較驗方程,變量節(jié)點(diǎn)(圓形節(jié) 點(diǎn))表示一個碼字比特。在迭代譯碼過程中,可靠性信息在二分圖的變量節(jié)點(diǎn)和校驗節(jié)點(diǎn) 之間來回的傳送,變量節(jié)點(diǎn)發(fā)送到較驗節(jié)點(diǎn)的信息為該碼字比特取值的外信息,較驗節(jié)點(diǎn) 發(fā)送到變量節(jié)點(diǎn)的信息為該較驗方程較驗通過的可靠性信息?;谛艂魉惴ǖ腖DPC譯碼 器經(jīng)過迭代后可W輸出碼字比特(包括信息比特和校驗比特)的軟信息。經(jīng)過幾次迭代后 譯碼器對輸出的軟信息進(jìn)行判決,生成譯碼器對信息比特序列的估計。
[0008] 卷積碼是另一種常用的FEC碼,卷積碼的特點(diǎn)是當(dāng)對某一時刻的輸入信息進(jìn)行編 碼時,不僅根據(jù)本時刻的輸入,而且根據(jù)本時刻之前P個時刻的輸入共同決定輸出的碼字, 即碼字的產(chǎn)生一共受到P+1個輸入時刻的制約。卷積碼是一種有限狀態(tài)機(jī),它的編碼和譯 碼都可W借助格柵圖來分析。
[0009] 卷積碼的譯碼的基本思路是W接收到的碼字為基礎(chǔ),逐個計算它與其他所有可能 出現(xiàn)的,連續(xù)的格柵路徑的距離,選出其中可能性最大的一條作為譯碼的估計。目前最常用 的卷積碼譯碼算法是維特比于1967年提出的維特比(Viterbi)算法,維特比算法本質(zhì)上是 一種最大似然譯碼。經(jīng)典的維特比算法只能輸出硬判決信息。我們也可W采用SOVA算法 (Soft-0u1:put Viterbi Algorithm, SOVA)或者BCJR算法等軟輸出的譯碼算法生成關(guān)于信 息比特的軟信息。SOVA算法是是1984年由化genauer和化eher提出的一種軟輸出的維特 比算法。BCJR算法是一種最大后驗概率(maximum a posteriori,簡稱為MAP)譯碼算法, 由 B址 1,Cocke, Jelinek 和 Raviv 在 1974 年提出。
[0010] 前面所說的各種陽C碼的譯碼方法可W獲得關(guān)于碼字比特或者信息比特的譯碼 估計。但是譯碼的結(jié)果是否正確則需要通過一些檢錯手段才能知曉。循環(huán)冗余校驗碼 (切clic Re化ndan巧化eck codes,簡稱為CRC)是一種系統(tǒng)的縮短循環(huán)碼,同時也是一種 優(yōu)秀的檢錯碼,由于它具有復(fù)雜度低,性能優(yōu)良的特點(diǎn),被廣泛應(yīng)用于各種通信系統(tǒng)中。在 人們熟悉的3Gpp LTE協(xié)議里,從物理層到高層都大量使用了 CRC碼來進(jìn)行數(shù)據(jù)的正確性校 驗。
[0011] 在現(xiàn)有LTE系統(tǒng)里,物理層數(shù)據(jù)共享信道是W傳輸塊(Transmission Block,簡稱 為TB)為基本單位進(jìn)行數(shù)據(jù)傳輸?shù)?。接收端通過TB的循環(huán)冗余校驗碼(CRC)來判斷當(dāng)前 TB是否被正確接收。若TB被正確接收,接收端向發(fā)送端反饋ACK消息;若TB沒有正確接 收,接收端向發(fā)送端反饋NACK消息。 陽01引當(dāng)傳輸塊(TB)塊大小超過規(guī)定的口限,例如6120比特時,發(fā)送端通常要進(jìn)行碼塊 (CB)分割,將一個TB分割成多個CB,每個CB分別進(jìn)行編碼、速率匹配、碼塊級聯(lián)、調(diào)制等操 作后再發(fā)送給接收端。 陽01引 LTE協(xié)議規(guī)定當(dāng)一個TB包括多個CB時,每個CB在編碼前也要添加CRC,CB的CRC 用于譯碼的提前終止。
[0014] LTE協(xié)議一共規(guī)定了 24、16、8比特S種長度的CRC,其中在物理共享信道的數(shù)據(jù)傳 輸中,TB CRC和CB CRC都是24比特,只不過運(yùn)兩個CRC的生成多項式不同。
[0015] 隨著物聯(lián)網(wǎng)、機(jī)器通信(Machine Type Communication,簡稱為MTC)等新應(yīng)用的 大量涌現(xiàn),大量用戶的小數(shù)據(jù)包通信業(yè)務(wù)變得越來越重要。小數(shù)據(jù)包通常是指單個TB塊的 長度為幾十到幾百比特的數(shù)據(jù)。根據(jù)現(xiàn)有的LTE協(xié)議,運(yùn)種長度的TB仍然需要添加長度為 24比特的TB CRC。雖然24比特的CRC能夠提供很好的差錯檢測的性能,但是對于小數(shù)據(jù) 包來說,會帶來較大的冗余率,從而降低了無線信道的傳輸效率。舉例來說,一個長度為24 比特的TB塊添加24比特的TB CRC后,冗余率達(dá)到了 50%,再經(jīng)過信道編碼后實際的冗余 率會還進(jìn)一步提高;即使是長度為208比特的TB塊,添加了 24比特的CRC后,冗余率也至 少有10. 3%。
[0016] 如何降低小數(shù)據(jù)包的冗余率,提高傳輸效率? 一個容易想到的方法是減小CRC的 長度,例如將數(shù)據(jù)包的TB CRC從24比特減小為8比特。然而,運(yùn)種方法的缺陷也是非常明顯 的:減小CRC的長度會造成誤檢率的上升。例如8比特的CRC僅能用于長度不超過2 7-1-127 比特的TB塊,且誤檢率接近4%,較高誤檢率無法滿足實際系統(tǒng)的需求。
[0017] 此外,在另外一些無線寬帶通信系統(tǒng)里,例如IE邸的802. 11系統(tǒng),是沒有碼塊CRC 的,一個碼塊的大小通常也只有幾百比特。如果想要提高數(shù)據(jù)重傳的效率,可W對該系統(tǒng)做 一些改進(jìn),例如,對碼塊添加CB CRC,運(yùn)樣接收端就可W知道各碼塊的接收狀態(tài),從而設(shè)計 一些高效的數(shù)據(jù)重傳方案。但是,如果添加的CRC長度太長一樣會造成實際傳輸效率的下 降,如果添加的CRC長度太短則又無法滿足對誤檢率的要求。
[0018] 針對相關(guān)技術(shù)中,CRC校驗碼太長導(dǎo)致實際傳輸速率下降,而CRC校驗碼太短右無 法保證誤檢率的問題,尚未提出有效的技術(shù)方案。
【發(fā)明內(nèi)容】
[0019] 為了解決上述技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)校驗方法及裝置。
[0020] 根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)校驗方法,所述方法包括:接收傳輸節(jié)點(diǎn) 發(fā)送的包含第一數(shù)據(jù)塊的傳輸信號,其中,所述第一數(shù)據(jù)塊的長度為N比特,所述第一數(shù)據(jù) 塊由長度為K比特的第二數(shù)據(jù)塊經(jīng)過前向糾錯碼FEC編碼后生成,所述第二數(shù)據(jù)塊是由長 度為L比特的第S數(shù)據(jù)塊經(jīng)過循環(huán)冗余校驗碼CRC編碼后生成,其中,N,K,L都是正整數(shù), 且N > K > L ;根據(jù)所述傳輸信號得到第一數(shù)據(jù)塊的第一估計數(shù)據(jù)塊,W及根據(jù)所述傳輸信 號得到所述第二數(shù)據(jù)塊的第二估計數(shù)據(jù)塊;根據(jù)所述第一估計數(shù)據(jù)塊與FEC碼空間的關(guān) 系,和/或所述第二估計數(shù)據(jù)塊的CRC校驗結(jié)果對所述第=數(shù)據(jù)塊進(jìn)行校驗。
[0021] 優(yōu)選地,根據(jù)所述第一估計數(shù)據(jù)塊與FEC碼空間的關(guān)系,和/或所述第二估計數(shù)據(jù) 塊的CRC校驗結(jié)果對所述第=數(shù)據(jù)塊進(jìn)行校驗,包括:在所述第一估計數(shù)據(jù)塊是所述FEC碼 空間的碼字,且所述第二估計數(shù)據(jù)塊的CRC校驗正確時,判斷所述第=數(shù)據(jù)塊接收正確;在 所述第一估計數(shù)據(jù)塊不是所述FEC碼空間的碼字,和/或所述第二估計數(shù)據(jù)塊的CRC校驗 失敗時,判斷所述第=數(shù)據(jù)塊接收錯誤。
[0022] 優(yōu)選地,在所述第一數(shù)據(jù)塊為一個碼塊或者包含一個碼塊的傳輸塊時,所述第一 估計數(shù)據(jù)塊是所述FEC碼空間的碼字是指:所述碼塊或者所述傳輸塊是所述FEC碼空間中 的碼字;或者,在所述第一數(shù)據(jù)塊為包含了多個數(shù)據(jù)塊的傳輸塊時,所述第一估計數(shù)據(jù)塊是 所述FEC碼空間的碼字是指:所述多個數(shù)據(jù)塊均為所述FEC碼空間中的碼字。
[0023] 優(yōu)選地,在判斷所述第S數(shù)據(jù)塊接收正確時,向所述傳輸節(jié)點(diǎn)發(fā)送確認(rèn)字符ACK 信息;在判斷所述第S數(shù)據(jù)塊接收錯誤時,則向所述傳輸節(jié)點(diǎn)發(fā)送非確認(rèn)字符NACK信息。
[0024] 優(yōu)選地,所述陽C編碼包括W下至少之一:Turbo碼、低密度奇偶校驗LDPC碼、卷 積碼。
[00巧]優(yōu)選地,當(dāng)所述FEC編碼為化rbo碼時,通過W下至少之一方式確定數(shù)據(jù)塊是否為 所述FEC碼空間中的碼字:
[00%]方式一;
[0027] 將第j次迭代后第一分量譯碼器輸出的K比特對應(yīng)的邊信息A?分別與第一闊值 Yi進(jìn)行比較,若Ar > ,則比特i判決為"1 ",若Ar < ^.則比特i判決為0,根據(jù)判決結(jié)果 生成比特序列Ei,其中,i G {0,1,2,……K-U中的整數(shù),j為大于或者等于1的整數(shù),ei用 于表征所述為所述第一分量譯碼器輸出的邊信息;
[002引將第j次迭代后第二分量譯碼器輸出的K個比特的邊信息分別與所述第一闊 值Y進(jìn)行比較,若作 > 耳,則比特i判決為"1",若作< ,則比特i判決為0,根據(jù)判決結(jié) 果生成比特序列Es,其中,62用于表征所述Ap為所述第二分量譯碼器輸出的邊信息;
[0029] 對所述比特序列E康用化rbo碼的內(nèi)交織器圖樣進(jìn)行交織,生成交織后的比特序 列Eft,比較Ef與Ez的大小關(guān)系,若E;" = E!,則由所述Turbo碼譯碼經(jīng)過j次迭代生成的數(shù) 據(jù)塊是所述陽C碼空間中的碼字;若Ei" *馬,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述 FEC碼空間中的碼字,其中,int用于表征所述Eft為經(jīng)過交織后的信息或比特序列;或者,
[0030] 對Ez采用化rbo碼的內(nèi)交織器進(jìn)行解交織,生成解交織后的比特序列比較Ei 與Ef,若Ef = L|則由所述化rbo碼譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述陽C碼空間 中的碼字;若Ef #巧,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述陽C碼空間中的碼字, 其中,dei用于表征所述Ef為經(jīng)過解交織后的信息或比特序列;
[0031] 方式二: 陽〇巧比較第j次迭代后Turbo碼譯碼器輸出的K個比特的軟信息的符號sign(.'V)與第 j-1次迭代后譯碼器輸出的軟信息站阱(AfI) ,若每個比特的:sign(A/-)與Sign(Af-I)都相同, 則由所述化rbo碼譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述FEC碼空間中的碼字;若至少有 一個比特的sign(A/)與sign(A/ I)不同,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述陽C 碼空間中的碼字,其中,i G (〇,1,2,……K-1}中的整數(shù),j為大于或者等于2的整數(shù); 陽03引 方式S :
[0034] 比較第j次迭代后化rbo碼譯碼器輸出的K個比特的軟信息的符號si:gn(/V/)與第 j-1次迭代后譯碼器輸出的軟信息的符號I).若sign(A/)與sign(A; I)相同的比特的 數(shù)目大于或等于第二闊值Yz,則由所述化rl3〇碼譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述FEC 碼空間中的碼字;若SigrK八/)與sign(A,' I '1相同的比特數(shù)小于或等于所述第二闊值Y2,則所 述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述陽C碼空間中碼字,其中,i G (0,1,2,……K-1}中 的整數(shù),j為大于或者等于2的整數(shù);或者,
[00對若sign(八/ I)與sign(八/ I)不同的比特數(shù)小于或等于第S闊值Ys,則由所述化rbo 碼譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述陽C碼空間中的碼字;若sign(A;')與SigrUA/ 不 同的比特數(shù)大于所述第S闊值Ys,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間 中的碼字;
[0036] 方式四:
[0037] 比較第j次迭代輸入第二分量譯碼器的K個比特的先驗信息的符號sign(A;''〇 與第j次迭代第二分量譯碼器輸出的K個比特的邊信息的符號若sign(八;'0 與sign(A:'-' j相同的比特數(shù)大于或等于第四闊值Y4,則由所述化rbo碼譯碼經(jīng)過j次迭 代生成的數(shù)據(jù)塊是所述陽C碼空間中的碼字;若agn( A:'〇與sign(A:'〇相同的比特數(shù)小 于第四闊值Y4,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間中的碼字,其中, i G {0,1,2,……K-U中的整數(shù),j為大于或者等于2的整數(shù),其中,曰2用于表征所述 5!谷0(.'\;'〇為輸入所述第二分量譯碼器的先驗信息;或者,
[0038] 若sign(A:.'〇與sign(A.;'〇不同的比特數(shù)小于或等于第五闊值Ys,則由所述l\irbo碼 譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述陽C碼空間中的碼字;若sign(A;2)與sign(A;e 2)不同 的比特數(shù)大于第五闊值Ys,所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間中的碼字;
[0039] 方式五:
[0040] 將第j次迭代后化rbo碼譯碼器輸出的K個比特的軟信息的絕對值|Af|與第 六闊值Ye比較,如果|A/|中的最小值大于所述第六闊值Ye,則由所述化rbo碼譯碼經(jīng)過 j次迭代生成的數(shù)據(jù)塊是所述FEC碼空間中的碼字;如果|A,'|中的最小值小于或等于所 述第六闊值Ye,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間中的碼字,其中, i G {0,1,2,……K-1}中的整數(shù),j為大于或者等于1的整數(shù); 柳41] 方式六:
[0042] 將第j次迭代后化rbo碼譯碼器輸出的K個比特的軟信息的絕對值的均值
與第屯闊值Y,比較,如果S '大于所述第屯闊值Y 7,則由所述化rbo碼譯碼經(jīng) 過j次迭代生成的數(shù)據(jù)塊是所述FEC碼空間中的碼字;如果S'小于或等于所述第屯闊值Y,, 則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間中的碼字,其中,i G (0,1,2,…… K-1}中的整數(shù),j為大于或者等于1的整數(shù);
[0043] 方式屯:
[0044] 第j次迭代后化rbo碼譯碼器輸出的K個比特的軟信息的絕對值之和
與第j-1次迭代后化rbo碼譯碼器輸出的K個比特的軟信息的絕對值之和
如果S,小于或等于S,1,則由所述化rbo碼譯碼經(jīng)過j次迭代生成的數(shù)據(jù)塊是所述FEC碼 空間中的碼字;如果S'大于S ' 1,則所述經(jīng)過j次迭代生成的數(shù)據(jù)塊不是所述FEC碼空間中 的碼字,其中,i G (〇,1,2,……K-1}中的整數(shù),j為大于或者等于2的整數(shù),所述第一闊 值Yi至第屯闊值Y 7均為大于或者等于0的整數(shù)。
[0045] 優(yōu)選地,當(dāng)所述FEC編碼為所述LDPC碼時,通過W下至少之一方式確定數(shù)據(jù)塊是 否為所述FEC碼空間中的碼字:
[0046] 方式一;
[0047] 第j次迭代后,將LDPC譯碼器輸出的N個碼字比特的軟信息Af與第八闊值Ys比 較,若A/ K,則比特i判決為"1 ",若A/<與,則比特i判決為"0",根據(jù)判決結(jié)果生成數(shù) 據(jù)塊的估計怎,其中,i G {〇, 1,2,……N-1}中的整數(shù),j為大于或者等于1的整數(shù); W48] 如果fx //r = 0,則由所述LDPC碼譯碼經(jīng)過j次迭代生成的玄是所述陽C碼空間 中的碼字;如果換巧f賣0,則所述孩不是所述FEC碼空間中的碼字,其中,H是所述LDPC碼 的校驗矩陣;
[0049] 方式二:
[0050] 第j次迭代后,將LDPC譯碼器輸出的N個碼字比特的軟信息A/與第八闊值Ys比 較,若,則比特i判決為"1",若,則比特i判決為"0",根據(jù)判決結(jié)果生成 所述第一數(shù)據(jù)塊的估計i,對所述估計i取前K個比特生成所述比特序列的估計>,:其中, i G {0,1,2,……N-1}中的整數(shù),j為大于或者等于1的整數(shù);
[0051] 對所述^進(jìn)行所述LDPC編碼生成數(shù)據(jù)塊C,如果i.=C,:則所述i是所述陽C碼空間 中的碼字;如果E ^、,則所述i不是所述FEC碼空間中的碼字; 陽05引方式S :
[005引比較第j次迭代后LDPC碼譯碼器輸出的N個碼字比特的軟信息的符號siCT(A,')與 第j-1次迭代后譯