專利名稱:一種自適應(yīng)調(diào)整子碼不可靠位數(shù)的tpc迭代譯碼算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字通信領(lǐng)域,特別涉及自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法。
背景技術(shù):
1994年R.Pyndiah等人將性能接近于香農(nóng)極限的Turbo碼的軟輸入軟輸出迭代譯碼算法應(yīng)用于乘積碼,提出Turbo乘積碼(Turbo Product Code,簡(jiǎn)稱TPC)的概念,該譯碼算法與硬件條件匹配,掀起了人們研究TPC碼的熱潮。已有文獻(xiàn)證實(shí)了 TPC碼有接近香農(nóng)極限的糾錯(cuò)性能和在高碼率下仍然可以保持較強(qiáng)糾錯(cuò)性能的特點(diǎn)。這些特點(diǎn)使得TPC碼在航空遙測(cè)、衛(wèi)星通信系統(tǒng)和數(shù)字存儲(chǔ)系統(tǒng)中得到廣泛地應(yīng)用,并且TPC碼能夠提供很高的頻帶利用率,已經(jīng)成為基于IEEE802.16的OFDM標(biāo)準(zhǔn)。TPC譯碼一般采用Chase-1I迭代譯碼算法,它既可以用于行譯碼又可以用于列譯碼,并且迭代收斂速度快,在高碼率下仍然可以保持較強(qiáng)的糾錯(cuò)性能,有利于提高頻譜利用率及抗衰落性能。Chase-1I譯碼基本原理是:對(duì)接收到的信號(hào),利用硬判決譯碼器,根據(jù)不同的試探序列產(chǎn)生候選碼字,然后把它們與接收序列相對(duì)比,選擇一個(gè)與接收序列有最小軟距離的候選碼字作為譯碼器的輸出碼字。TPC譯碼是迭代譯碼過(guò)程,通過(guò)每次迭代輸出的外信息矩陣去調(diào)節(jié)下一次迭代譯碼的軟輸入信息,一般經(jīng)過(guò)四次行列迭代譯碼,輸出最終譯碼結(jié)果。目前,由于通信系統(tǒng)對(duì)信號(hào)傳輸實(shí)時(shí)性要求越來(lái)越高,因此,大量研究人員都致力于如何提高信道編譯碼速率和譯碼質(zhì)量。上述經(jīng)典的TPC Chase II迭代譯碼算法,它四次迭代中每一次行和列譯碼采用的不可靠位數(shù)的值都是固定的,這樣就導(dǎo)致在較大信噪比時(shí),存在譯碼延時(shí)和硬件資源的浪費(fèi),并且譯碼復(fù)雜度高。已有文獻(xiàn)中的自適應(yīng)TPC譯碼算法,是針對(duì)一個(gè)TPC碼塊中的一行或者一列接收序列,根據(jù)不同的信噪比和碼率設(shè)定門限值,然后按照門限值對(duì)接收序列進(jìn)行映射,降低不可靠位數(shù)的值。該自適應(yīng)算法在實(shí)際應(yīng)用過(guò)程中需要對(duì)信噪比進(jìn)行估計(jì),存在一定的估計(jì)誤差,實(shí)用性不強(qiáng)。如何采用一種更簡(jiǎn)單易行、不需要估計(jì)信噪比的TPC算法來(lái)自適應(yīng)調(diào)整譯碼不可靠位數(shù)的值,是本發(fā)明研究的重點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于:提出一種全新的自適應(yīng)的TPC譯碼方案,以TPC一個(gè)碼塊為對(duì)象,根據(jù)前面每一次的行(列)譯碼結(jié)果,進(jìn)行塊統(tǒng)計(jì)具有相同最小歐氏距離的行(列)數(shù),設(shè)定門限值去自適應(yīng)調(diào)整譯碼不可靠位數(shù)。本發(fā)明的自適應(yīng)算法可以在較大信噪比時(shí),大幅度降低譯碼復(fù)雜度,提高譯碼速率,節(jié)約存儲(chǔ)空間。擴(kuò)展?jié)h明碼可以糾正一個(gè)隨機(jī)錯(cuò)誤,同時(shí)發(fā)現(xiàn)兩個(gè)隨機(jī)錯(cuò)誤。本發(fā)明的技術(shù)原理都是基于TPC子碼為擴(kuò)展?jié)h明碼的情況。三個(gè)重要的技術(shù)原理如下:(I)在行(列)譯碼過(guò)程中, 采用最不可靠位數(shù)P,可以產(chǎn)生2P個(gè)測(cè)試序列,經(jīng)過(guò)代數(shù)譯碼后得到2P個(gè)譯碼序列。如果有一個(gè)錯(cuò)誤發(fā)生在P個(gè)不可靠位中,則譯碼序列中存在P+1個(gè)序列,它們與接收序列的歐氏距離最小。(2)如果有一個(gè)錯(cuò)誤發(fā)生在除了 P個(gè)最不可靠位的其它位,雖然概率比較小,譯碼序列中只存在一個(gè)序列,它與接收序列的歐氏距離最小。(3)隨著行列迭代譯碼的進(jìn)行,錯(cuò)誤發(fā)生在P個(gè)最不可靠位的概率Pr(P)要遠(yuǎn)遠(yuǎn)大于錯(cuò)誤發(fā)生在除了 P個(gè)最不可靠位的其它位的概率Pr(刃,即Pr⑶ Pr⑶。對(duì)于上述三個(gè)重要的技術(shù)原理解釋如下:以TPC的一個(gè)碼塊為單位進(jìn)行譯碼,在一次Chase II迭代譯碼過(guò)程中,假設(shè)行或者列譯碼使用P = 4個(gè)不可靠位,一個(gè)碼塊的一行或者一列軟輸入數(shù)據(jù)r,可以產(chǎn)生16個(gè)錯(cuò)誤圖樣序列,與接收序列r模二加后,產(chǎn)生16個(gè)測(cè)試序列t1; t2,…,t16,經(jīng)過(guò)代數(shù)譯碼,得到16個(gè)譯碼序列Cl,c2,…,C16,它們與軟輸入數(shù)據(jù)r計(jì)算出16個(gè)歐氏距離Clpd2,…,
d16o經(jīng)過(guò)研究發(fā)現(xiàn),在競(jìng)爭(zhēng)碼字bb可以找到的情況下,如果有相同的最小歐氏距離,其相同的個(gè)數(shù)為5,即有5個(gè)相同的譯碼序列。理論分析可知,16個(gè)測(cè)試序列通過(guò)代數(shù)譯碼只能糾正一個(gè)隨機(jī)錯(cuò)誤,有相同最小歐氏距離的情況是,16個(gè)測(cè)試序列t1; t2,…,t16中有一個(gè)是譯碼序列dd,假設(shè)其中一個(gè)序列為譯碼序列dd,只有和它最小漢明距離為I的測(cè)試序列才可能被代數(shù)譯碼糾正為譯碼序列dd,根據(jù)測(cè)試序列產(chǎn)生的規(guī)律,16個(gè)測(cè)試序列中,任意一個(gè)序列與其它序列最小漢明距離為I的序列只有4個(gè),加上其本身,可以驗(yàn)證相同的最小歐氏距離存在的個(gè)數(shù)為5個(gè),即有5個(gè)相同的譯碼序列,若此種情況出現(xiàn),則可以降低P值來(lái)進(jìn)行下一次迭代; 如果沒(méi)有相同的最小歐氏距離,說(shuō)明產(chǎn)生的16個(gè)測(cè)試序列t1;t2,…,t16中沒(méi)有最終的譯碼序列,即除了被挑選出來(lái)的P = 4個(gè)不可靠位的其它位出現(xiàn)了錯(cuò)誤,而16個(gè)測(cè)試序列中與最終譯碼序列dd最小漢明距離為I的只有一個(gè)序列,它可以被代數(shù)譯碼糾正得到譯碼序列dd。同理,當(dāng)Chase II譯碼中使用P = 3個(gè)不可靠位,那么計(jì)算出的8個(gè)歐氏距離,在競(jìng)爭(zhēng)碼字dd可以找到的情況下,如果有相同的最小歐氏距離,相同的個(gè)數(shù)為4;隨著迭代譯碼的進(jìn)行,錯(cuò)誤碼字在不斷被糾正,所以錯(cuò)誤發(fā)生在P個(gè)不可靠位的概率Pr(p)要逐漸變大,發(fā)生在其它位的概率Pr(扔要逐漸變小。本發(fā)明提出的自適應(yīng)TPC譯碼采用了以下的技術(shù)方案:步驟1:對(duì)接收到的一個(gè)TPC碼塊進(jìn)行第一次Chase II行譯碼。采用不可靠位數(shù)Pr = 4,每一行譯碼輸出后得到該行軟輸入數(shù)據(jù)與代數(shù)譯碼后的序列的16個(gè)歐氏距離,然后對(duì)16個(gè)歐氏距離排序,記錄具有相同最小歐氏距離的個(gè)數(shù)。等到一個(gè)碼塊的所有行譯碼結(jié)束后,統(tǒng)計(jì)這個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的行數(shù)隊(duì),如果隊(duì)> A,則K值減1,進(jìn)行第二次行譯碼,如果隊(duì)< A,則&值不變。具體門限值A(chǔ)值取決于TPC子碼的構(gòu)造;步驟2:行列交織后對(duì)TPC碼塊進(jìn)行第一次Chase II列譯碼。列譯碼開(kāi)始采用不可靠位數(shù)P。= 3進(jìn)行譯碼,按照(I)的規(guī)則,統(tǒng)計(jì)一個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的列數(shù)N。,如果N。彡A,則p。值減1,進(jìn)行第二次列譯碼,如果N。< A,則p。值不變;步驟3:按照上述(I)和(2)的規(guī)則進(jìn)行第二次,第三次和第四次基于Chase II塊譯碼并統(tǒng)計(jì)相同最小歐氏距離的個(gè)數(shù)、不可靠位數(shù)P驅(qū)動(dòng)下的自適應(yīng)TPC迭代譯碼,輸出最終譯碼結(jié)果。本發(fā)明提出的全新的TPC自適應(yīng)譯碼方案,為了更好地反映新算法的譯碼性能,還需要考慮這種TPC自適應(yīng)譯碼方案的誤碼率和譯碼復(fù)雜度性能,因此進(jìn)行了SISO(Single-1nput Single-Output)系統(tǒng)下的仿真,通過(guò)與 R.Pyndiah 的 Chase II 四次迭代均采用P = 4譯碼方案的誤碼率性能進(jìn)行對(duì)比分析,驗(yàn)證了本算法的正確性和可行性。本發(fā)明提出的TPC自適應(yīng)譯碼方案,與R.Pyndiah的Chase II四次迭代均采用P=4譯碼方案相比,具有如下優(yōu)點(diǎn):1、充分考慮了 TPC碼的塊狀特點(diǎn),基于統(tǒng)計(jì)方法,算法簡(jiǎn)便易于實(shí)現(xiàn)。2、可以通過(guò)調(diào)節(jié)自適應(yīng)譯碼過(guò)程中的門限值,來(lái)控制誤碼率性能和復(fù)雜度性能。3、在較大信噪比時(shí),本算法可以在犧牲很小一部分性能的情況下,大幅度提高譯碼速率,降低譯碼復(fù)雜度,實(shí)現(xiàn)通信系統(tǒng)信號(hào)的實(shí)時(shí)傳輸。下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
圖1為自適應(yīng)TPC迭代譯碼總體框圖。圖2為四次完整的自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼流程圖。圖3為一次完整的自適應(yīng)TPC行譯碼與傳統(tǒng)Chase II行譯碼對(duì)比流程圖。圖4為SISO系統(tǒng)下,TPC子碼采用擴(kuò)展?jié)h明碼(32,26,4)2的誤碼率性能曲線。圖5為SISO系統(tǒng)下,TPC子碼采用擴(kuò)展?jié)h明碼(32,26,4)2的復(fù)雜度性能曲線。注:圖中誤碼率曲線包括本發(fā)明的自適應(yīng)TPC譯碼誤碼率曲線、R.Pyndiah的四次迭代均采用Chase II不可靠位數(shù)p = 4的誤碼率曲線。
具體實(shí)施例方式本發(fā)明提出的全新的自適應(yīng)TPC譯碼方案已經(jīng)在Matlab平臺(tái)上進(jìn)行了驗(yàn)證。從仿真結(jié)果可以看出該自適應(yīng)譯碼方案在誤碼性能、降低譯碼延遲和提高譯碼效率方面的優(yōu)越性。附圖1為自適應(yīng)TPC迭代譯碼總體框圖,虛線部分為自適應(yīng)行/列譯碼器,是本發(fā)明研究的重點(diǎn)。附圖2給出了四次完整的自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼流程圖,同時(shí),附圖3給出了一次完整的自適應(yīng)TPC行譯碼與傳統(tǒng)Chase II行譯碼對(duì)比流程圖,其中虛線部分為本發(fā)明的自適應(yīng)譯碼具體步驟。下面給出具體的SISO系統(tǒng)實(shí)施的技術(shù)方案:(I)首先對(duì)信息進(jìn)行TPC 二維編碼,產(chǎn)生發(fā)射信號(hào)矩陣,然后采用BPSK調(diào)制,即{0,1}映射成{-1,1}。(2)將TPC編碼調(diào)制后的信號(hào)矩陣經(jīng)過(guò)高斯白噪聲信道,在接收端得到輸出信號(hào)矩陣。(3)對(duì)輸出信號(hào)進(jìn)行基于Chase II算法的TPC自適應(yīng)譯碼,選擇一個(gè)與接收序列有最小軟距離的候選碼字作為譯碼器的輸出碼字。設(shè)傳輸碼字為X = (X1, X2,…,Xn),接收序列為 R = Cr1, r2,..., rn), R = X+N,其中,N= (rij, n2,…,nn)是方差為σ 2的聞斯白噪聲,D= ((I1, d2,…,dn)為最佳判決序列。自適應(yīng)TPC Chase II 譯碼算法過(guò)程如下:
①以接收到的一個(gè)TPC碼塊為對(duì)象,對(duì)其中的每一行進(jìn)行譯碼。假設(shè)接收序列矩陣中的一行為R= (r1;r2,…,rn),對(duì)其進(jìn)行硬判決,得到硬判決序列H= (h1;h2,…,hn),其中 hj = (1+sign Cri) )/2, i = 1,2,...n, Iii e {0,1}。②對(duì)一個(gè)TPC碼塊中的每一行進(jìn)行第一次自適應(yīng)Chase II行譯碼,找出接收序列矩陣中每一行絕對(duì)值最小的P = 4個(gè)不可靠位。③接收矩陣中每一行都形成2P個(gè)錯(cuò)誤圖樣序列。將第二步中的P個(gè)位置分別用
O,I表不,其他位置用O表不。④對(duì)接收矩陣的每一行產(chǎn)生2P個(gè)測(cè)試序列Γ = 五,其中Φ為模2加。⑤對(duì)每一行所有的2Ρ個(gè)測(cè)試序列進(jìn)行代數(shù)譯碼,將有效的譯碼結(jié)果存入集合C中。⑥分別計(jì)算集合C中的有效譯碼結(jié)果與軟輸入TPC矩陣序列該行的歐氏距離,選擇具有最小歐氏距離的碼字作為該行的最佳判決碼字D,具有第二小歐氏距離的碼字作為該行的競(jìng)爭(zhēng)碼字B。對(duì)每一行計(jì)算出的16個(gè)歐氏距離排序,記錄具有相同最小歐氏距離的個(gè)數(shù)。等到一個(gè)碼塊的所有行譯碼結(jié)束后,統(tǒng)計(jì)這個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的行數(shù)凡,如果隊(duì)彡Α,則匕值減1,進(jìn)行第二次行譯碼;如果隊(duì)< A,則匕值不變。具體門限值A(chǔ)取決于TPC子碼的構(gòu)造。
⑦行列交織,進(jìn)行第一次TPC碼塊的列譯碼,原理同行譯碼,只是第一次列譯碼的初值設(shè)為P。= 3。⑧進(jìn)行第二次、第三次、第四次Chase II行、列譯碼,采用自適應(yīng)的P值,輸出最終譯碼結(jié)果。(4)根據(jù)發(fā)送的數(shù)據(jù)和接收解碼的數(shù)據(jù),計(jì)算誤碼率。附圖4和附圖5分別為SISO系統(tǒng)下,TPC子碼采用擴(kuò)展?jié)h明碼(32,26,4)2的誤碼率性能曲線和復(fù)雜度性能曲線。本發(fā)明的自適應(yīng)TPC迭代譯碼算法當(dāng)門限A = 28時(shí),與R.Pyndiah四次迭代均采用P = 4的Chase II算法性能相比,幾乎沒(méi)有損失,只相差了
0.03dB,但是自適應(yīng)TPC譯碼在較大信噪比時(shí),提高了譯碼速率,節(jié)約了存儲(chǔ)空間,平均復(fù)雜度降低了約45% ;當(dāng)門限A = 12時(shí),自適應(yīng)TPC譯碼與Chase II Algorithm譯碼在誤碼率10-4處,相差了 0.47dB,但是平均復(fù)雜度降低了 64.1%。以上所述,僅為本發(fā)明的較佳具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可以容易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)力要求的保護(hù)范圍為準(zhǔn)。本發(fā)明申請(qǐng)書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法,其特征在于,在譯碼過(guò)程中,遵循以下步驟: 步驟1:對(duì)接收到的一個(gè)TPC碼塊進(jìn)行第一次Chase II行譯碼。采用不可靠位數(shù)& =4,每一行譯碼輸出后得到該行軟輸入數(shù)據(jù)與代數(shù)譯碼后的序列的16個(gè)歐氏距離,然后對(duì)16個(gè)歐氏距離排序,記錄具有相同最小歐氏距離的個(gè)數(shù)。等到一個(gè)碼塊的所有行譯碼結(jié)束后,統(tǒng)計(jì)這個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的行數(shù)凡,如果隊(duì)^ A,則匕值減1,進(jìn)行第二次行譯碼,如果隊(duì)< A,則&值不變。具體門限值A(chǔ)值取決于TPC子碼的構(gòu)造; 步驟2:行列交織后對(duì)TPC碼塊進(jìn)行第一次Chase II列譯碼。列譯碼開(kāi)始采用不可靠位數(shù)P。= 3進(jìn)行譯碼,按照(I)的規(guī)則,統(tǒng)計(jì)一個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的列數(shù)N。,如果N。彡A,則p。值減I進(jìn)行第二次列譯碼,如果N。< A,則p。值不變; 步驟3:按照上述步驟I和步驟2的規(guī)則進(jìn)行第二次,第三次和第四次基于Chase II塊譯碼并統(tǒng)計(jì)相同最小歐氏距離的個(gè)數(shù)、不可靠位數(shù)P驅(qū)動(dòng)下的自適應(yīng)TPC迭代譯碼,輸出最終譯碼結(jié)果。
2.根據(jù)權(quán)利要求1所述一種自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法,其特征在于: 所述步驟I中,對(duì)輸入的一個(gè)TPC碼塊的每一行記錄相同最小歐氏距離的個(gè)數(shù),并且等行譯碼結(jié)束后,統(tǒng)計(jì)這個(gè)碼塊中最小相同歐氏距離個(gè)數(shù)大于等于3的行數(shù)隊(duì),再設(shè)定門限A去自適應(yīng)調(diào)整不可靠位數(shù)的值。方案基于統(tǒng)計(jì)規(guī)律,簡(jiǎn)便易于實(shí)現(xiàn),實(shí)用價(jià)值高。
3.根據(jù)權(quán)利要求1所述一種自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法,其特征在于: 所述步驟2中,對(duì)第一次行譯碼后的TPC碼塊進(jìn)行行列交織。列譯碼開(kāi)始采用的不可靠位數(shù)為P。= 3,這樣可以降低譯碼復(fù)雜度,減小譯碼延遲,提高存儲(chǔ)空間的利用率,適用于對(duì)通信實(shí)時(shí)性要求比較高的場(chǎng)合。
4.根據(jù)權(quán)利要求1、2、3所述的一種自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法,其特征在于: 所述步驟3中,第二次、第三次和第四次行列譯碼的不可靠位值都是經(jīng)過(guò)前面一次迭代譯碼產(chǎn)生的,并且可以通過(guò)門限值A(chǔ)來(lái)調(diào)節(jié)誤碼率性能和譯碼復(fù)雜度需求,取得兩者的折中。如果采用R.Pyndiah的四次迭代均采用Chase II p = 4的譯碼方案,不可靠位的值是固定的,在大信噪比時(shí)會(huì)使譯碼復(fù)雜度提高。
全文摘要
本發(fā)明公開(kāi)了一種全新的自適應(yīng)調(diào)整子碼不可靠位數(shù)的TPC迭代譯碼算法。該算法主要包括將傳統(tǒng)的Chase II迭代譯碼方案每次譯碼為固定值的不可靠位數(shù)P進(jìn)行改進(jìn),采用一種新的算法,進(jìn)行塊統(tǒng)計(jì)具有相同最小歐氏距離的行(列)數(shù),根據(jù)設(shè)定的門限值A(chǔ)自適應(yīng)調(diào)整P值,然后迭代譯碼。通過(guò)Matlab仿真平臺(tái),在SISO系統(tǒng)中實(shí)現(xiàn)了本算法,并且與R.Pyndiah的Chase II四次迭代均采用p=4譯碼方案對(duì)比,本發(fā)明的算法可以在誤碼率性能損失很小、較大信噪比情況下,大幅度提高譯碼速率,同時(shí)降低譯碼的復(fù)雜度,減小運(yùn)算量,節(jié)約硬件實(shí)現(xiàn)的存儲(chǔ)空間,尤其適用于通信實(shí)時(shí)性要求較高的場(chǎng)合。
文檔編號(hào)H03M13/29GK103220007SQ20131016794
公開(kāi)日2013年7月24日 申請(qǐng)日期2013年5月9日 優(yōu)先權(quán)日2013年5月9日
發(fā)明者黨小宇, 陶靜, 虞湘賓, 黎寧, 王旭東, 楊鵬程 申請(qǐng)人:南京航空航天大學(xué)