專利名稱:一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法,特別是涉及信道編碼部分的一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法。屬于通信領(lǐng)域。
背景技術(shù):
RS碼,即里所碼,是一種前向糾錯(cuò)的信道編碼。它被廣泛的應(yīng)用于各種商業(yè)用途, 最顯著的是在⑶、DVD和藍(lán)光光盤上的使用;在數(shù)據(jù)傳輸中,它也被用于DSL和WiMAX ;廣播系統(tǒng)中DVB和ATSC也閃現(xiàn)著它的身影;在計(jì)算機(jī)科學(xué)里,它是第六層標(biāo)準(zhǔn)RAID的重要成
員ORS編碼是一種定義在伽羅華域GF ^1)上的運(yùn)算。(n = 255,k = 239) RS碼可由 GF(28)導(dǎo)出。k表示待編碼的信息個(gè)數(shù),η表示編碼后的數(shù)據(jù)個(gè)數(shù),n-k= 16就是添加的冗余個(gè)數(shù)。(255,239) RS碼能夠檢測16、糾正8個(gè)錯(cuò)誤。因?yàn)镽S碼是循環(huán)碼,所以它的監(jiān)督碼元的生成由生成多項(xiàng)式?jīng)Q定。生成多項(xiàng)式的冪為監(jiān)督碼元數(shù),可取本原元α的連續(xù)n-k= 16次冪作為生成多項(xiàng)式的根。因此可以得到(255,239) RS碼的生成多項(xiàng)式是g (X) = (Χ- α ) (Χ- α 2)…(Χ- α 15) (Χ- α 16)(1)將g(X)整理成關(guān)于X的升冪排列的格式,整理為g (X) = g0+glX+g2X2+··· +g15X15+g16X16 = α 136+ α 24tlX+... + α 121Χ15+Χ16 (2)由于RS碼為循環(huán)碼字,按照循環(huán)碼的系統(tǒng)編碼方法,可得到RS編碼。信息多項(xiàng)式為m(X);監(jiān)督多項(xiàng)式為P(X);商多項(xiàng)式為q(X);那么Xn_km(X) = q(X)g(X)+p(X)(3)可表示為p(X) = Xn"km (X) modg (X),(4)最終碼子多項(xiàng)式U(X),表示為U(X) = ρ (X)+Xn^ii(X)。(5)卷積碼是1955年由Elias等人提出的,是一種非常有前途的編碼方法。卷積碼和分組碼的根本區(qū)別在于,它不是把信息序列分組后再進(jìn)行單獨(dú)編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。同樣,在卷積碼譯碼過程中,不僅從此時(shí)刻收到的碼組中提取譯碼信息,而且還要利用以前或以后各時(shí)刻收到的碼組中提取有關(guān)信息。而且卷積碼的糾錯(cuò)能力隨約束長度的增加而增強(qiáng),差錯(cuò)率則隨著約束長度增加而呈指數(shù)下降。卷積碼是一種常用的差錯(cuò)控制編碼,對(duì)于卷積碼Ov k0, m),表示該卷積碼編碼器將h比特信息段編成Iitl比特的碼組,即每一時(shí)刻送至卷積編碼器的輸入信息元為1 個(gè),相應(yīng)地卷積編碼器輸出Iitl個(gè)碼元,并且輸出的Iitl比特碼組不僅與當(dāng)前1 比特信息段有關(guān), 還與之前輸入的(m-Ι)個(gè)信息段有關(guān)聯(lián),其中,m為大于1的整數(shù),m(又稱約束長度)等于
移位寄存器的個(gè)數(shù)加1,卷積碼用生成序列義g2]:· g; - 來表示輸入與輸出間的關(guān)系,其中,gf表示第K個(gè)移位寄存器的輸入端到第j個(gè)模2加法器輸入端的連接線情況,若有連線,則容f=l,若無連線,則容f=0。如圖5所示為卷積編碼(2,1,7)對(duì)應(yīng)的卷積編碼器,1個(gè)比特輸入對(duì)應(yīng)有2比特輸出,約束長度為7,移位寄存器個(gè)數(shù)為6個(gè),根據(jù)各個(gè)移位寄存器的輸入輸出端與各個(gè)模2加法器輸入端的連接線關(guān)系,其生成序列& = (1111001)2,和& = (1011011)2,因此,該卷積編碼器生成的多項(xiàng)式為(171,133)8。維特比(Viterbi)算法是目前運(yùn)用得最廣泛的卷積編碼的譯碼算法,Viterbi譯碼方法主要從2"1-1種(m為卷積編碼器約束長度)可能狀態(tài)中更新最佳狀態(tài)和傳輸?shù)淖羁赡芪恍蛄?,其將接收到的編碼信號(hào)與內(nèi)建的參考值做運(yùn)算,找出最可能的路徑,并依此路徑還原正確的數(shù)據(jù),以完成譯碼流程。對(duì)于(2,1,7)卷積編碼,編碼過程存在27—1 (64)種可能狀態(tài),如圖5的卷積編碼器,若當(dāng)前時(shí)刻寄存器1-6中的值為000000時(shí),表明當(dāng)前狀態(tài)為S0,若此處輸入1,則寄存器1-6中的值變?yōu)?00000時(shí),當(dāng)前狀態(tài)從SO轉(zhuǎn)變?yōu)镾i,以此類推,當(dāng)寄存器1-6中的值為 111111時(shí),表明當(dāng)前狀態(tài)為S63。由此,各狀態(tài)轉(zhuǎn)移圖可由類似蝴蝶形狀的蝶形圖表示,其中,Si和Si+32構(gòu)成一對(duì)蝶形圖,根據(jù)不同的輸入,蝶形圖的兩個(gè)目的狀態(tài)分別對(duì)應(yīng)于S2i 和S(2i+1),其中,i為0到31的任一整數(shù)。圖7所示為i為0的一個(gè)蝶形對(duì),如圖所示, 若當(dāng)前狀態(tài)為S0,則當(dāng)輸入0時(shí),狀態(tài)SO經(jīng)由狀態(tài)轉(zhuǎn)移方向轉(zhuǎn)移至狀態(tài)S0,輸出XY為00, 當(dāng)輸入1時(shí),狀態(tài)SO經(jīng)由狀態(tài)轉(zhuǎn)移方向轉(zhuǎn)移至狀態(tài)Si,輸出XY為11 ;若當(dāng)前狀態(tài)為S32, 則當(dāng)輸入0時(shí),狀態(tài)S32經(jīng)由狀態(tài)轉(zhuǎn)移方向轉(zhuǎn)移至狀態(tài)S0,輸出XY為11,當(dāng)輸入1時(shí),狀態(tài) S32經(jīng)由狀態(tài)轉(zhuǎn)移方向轉(zhuǎn)移至狀態(tài)Si,輸出XY為00。Viterbi譯碼即為上述卷積編碼的逆過程。由此可見,RS碼具有較強(qiáng)的抗突發(fā)錯(cuò)誤能力,而卷積編碼具有很好的抗隨機(jī)干擾性能,因此,為了充分利用他們二者各自的優(yōu)點(diǎn),本發(fā)明擬將RS碼和卷積編碼同時(shí)應(yīng)用于一個(gè)通信系統(tǒng)之中?;谶@方面考慮,構(gòu)成本發(fā)明提供一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法的構(gòu)思。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法,也即本發(fā)明是將RS編碼器與卷積編碼器通過交織器連接,設(shè)計(jì)了一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法,并將其應(yīng)用于OFDM通信系統(tǒng)之中。重點(diǎn)是RS編碼器和卷積譯碼器的設(shè)計(jì)實(shí)現(xiàn)。具體技術(shù)方案是本發(fā)明提供的一種級(jí)聯(lián)編碼器,其特征在于所述的級(jí)聯(lián)編碼器是由編碼器和解碼器通過交織器連接而成,所述的編碼器依次由RS編碼器、外交織器、卷積編碼器和內(nèi)交織器連接構(gòu)成;所述的解碼器則依次由內(nèi)解交織器、卷積解碼器、外解交織器和RS譯碼器連接構(gòu)成;其中,(I)RS編碼器選用LFSR移位結(jié)構(gòu),SP (η-k)階移位寄存器的系統(tǒng)編碼;(》RS譯碼器采用與RS編碼器相同的本原多項(xiàng)式,參數(shù)與編碼器相同;(3)卷積編碼器采用(2,1,7)卷積編碼器,其x、y狀態(tài)轉(zhuǎn)移多項(xiàng)式為(171,133,);(4)卷積譯碼器是基于Viterbi算法設(shè)計(jì)的Viterbi譯碼器;(5)交織器為簡單的行列交織器,以抵抗OFDM系統(tǒng)中信道的突發(fā)成片錯(cuò)誤,把一組的成片錯(cuò)誤分散到不同的分組中。級(jí)聯(lián)編碼器、解碼器的實(shí)現(xiàn)框圖如下圖1所示,
5
1. IRS 編碼器對(duì)RS編碼器的實(shí)現(xiàn),選用比較容易實(shí)現(xiàn)的LFSR移位結(jié)構(gòu),S卩(n_k)階移位寄存器的系統(tǒng)編碼,如圖2所示。圖2為(255,239) RS編碼的16階位寄存器的系統(tǒng)編碼器實(shí)現(xiàn)框圖,圖2所示的寄存器的每個(gè)狀態(tài)具有8bit的碼元。系數(shù),g2,…,&4,g15是生成多項(xiàng)式的系數(shù)。圖2結(jié)構(gòu)的一個(gè)實(shí)現(xiàn)難點(diǎn)就是生成多項(xiàng)式的系數(shù)與輸入信息的伽羅華域乘法運(yùn)算。本發(fā)明對(duì)于伽羅華域的乘法器的實(shí)現(xiàn)是通過如下的方法轉(zhuǎn)化為兩組數(shù)據(jù)的異或操作實(shí)現(xiàn),使復(fù)雜的乘法運(yùn)算簡化為易于硬件實(shí)現(xiàn)的簡單的異或操作。 RA =Ctogdi^Chgd1 +... +Ongd1RB=Bogd^hgd1+... +hgd1因此,RC=RAXRB=( a0gd°+algd1+... +a7gd7)X(b0gd°+blgd1+... +b7gd7)= a0 b0gd0+(aib0+a0bi)gdi+(a2bo+aibi+aob2)go2+... +a-jb-jgd14=^gci+digd1+... +d7gd7+e0g^+eigd9+... +e6gd14又因?yàn)?,a8=a°+a2+a3+o4RC=CQgd0+Cxgd1 +... +Cngd1因此,整理多項(xiàng)式并比較相同項(xiàng)的系數(shù)可以得到c0 = d0+e0+e4+e5+e6 C1 = d1+e2+e5+e6c2 = d2+e0+e2+e4+e5 C3 = d3+e0+e1+e3+e4C4 = d4+e0+e1+e2+e6 C5 = C^eJeJe3c6 = d6+e2+e3+e4 C7 = d7+e3+e4+e5所以,在RS編碼器乘法模塊中,首先使用兩個(gè)8位的寄存器,一個(gè)存儲(chǔ)生成多項(xiàng)式的系數(shù)RA,另外一個(gè)存儲(chǔ)待乘的輸入數(shù)據(jù)RB。另外,還需要一個(gè)15位的寄存器用來存放相乘運(yùn)算的中間變量RAxRB,首先,根據(jù)系數(shù)相同的規(guī)則,可以通過簡單的異或操作得到dQ,
Cl1,......,d7,e0,ei,......,e6的數(shù)值,然后,根據(jù)上述的系數(shù)對(duì)應(yīng)規(guī)則,同樣可以通過異或
操作得到(V C1,......,C7的數(shù)值,最終把數(shù)據(jù)的15位表達(dá)式轉(zhuǎn)化為8位的乘法結(jié)果RC,
實(shí)現(xiàn)了對(duì)乘法運(yùn)算的簡化操作。1. 2RS 譯碼器RS譯碼器采用與RS編碼器相同的本原多項(xiàng)式,參數(shù)也與編碼器相同,具體實(shí)現(xiàn)框圖如圖3所示。由圖3可見,RS解碼主要分為錯(cuò)誤檢測(Error Detection)和錯(cuò)誤糾正(Error Correction)兩個(gè)過程。具體可分為如下三個(gè)步驟1),伴隨多項(xiàng)式的計(jì)算;伴隨多項(xiàng)式的計(jì)算是整個(gè)RS譯碼過程中的第一步,也是最重要的一步。其設(shè)計(jì)的難點(diǎn)在于接收到的數(shù)據(jù)的流水操作以及送入伴隨多項(xiàng)式計(jì)算模塊的數(shù)據(jù)的乘法操作。伴隨多項(xiàng)式的計(jì)算擬采用如圖4所示的結(jié)構(gòu)實(shí)現(xiàn)。圖4中所示的rQ,ri,……,r254對(duì)應(yīng)255個(gè)伽羅華域的數(shù)據(jù),依次送入伴隨多項(xiàng)式的實(shí)現(xiàn)結(jié)構(gòu),做伽羅華域的乘法運(yùn)算即可實(shí)現(xiàn)對(duì)伴隨多項(xiàng)式的計(jì)算,最終可以得到16個(gè)校驗(yàn)信息&,S1;……,S15。(詳見實(shí)施例2)2),確定錯(cuò)誤位置多項(xiàng)式和錯(cuò)誤估值函數(shù);伴隨式S (χ)的計(jì)算就是用來求解關(guān)鍵方程S(X) σ (χ) = ω (x)modx2t的,求解關(guān)鍵方程,可以得到錯(cuò)誤位置多項(xiàng)式σ (χ) = σ 乂+σ t_lXH+... +σ 0和錯(cuò)誤值多項(xiàng)式ω (χ) = cot_lXH+... + colX+co0。3),求解錯(cuò)誤位置數(shù)和錯(cuò)誤數(shù)值,并進(jìn)行糾正。這一過程的處理方法主要有兩類,一個(gè)是R)rney提出的計(jì)算方法,另外一類是是由Berlekamp在R)rney的基礎(chǔ)之上稍作修改提出的方法。在此不做詳細(xì)的介紹。2. 1卷積編碼器本發(fā)明采用(2,1,7)卷積編碼器,其X、Y狀態(tài)轉(zhuǎn)移多項(xiàng)式為(171,133)。每個(gè)時(shí)鐘周期輸入1個(gè)bit信息,輸出2個(gè)bit信息。所述卷積編碼器結(jié)構(gòu)如圖5所示。卷積編碼器的設(shè)計(jì)與譯碼器相比較為簡單。只需要按照生成多項(xiàng)式對(duì)輸入的數(shù)據(jù)逐位的異或即可。例如,本發(fā)明使用的卷積編碼器,其生成序列& = (1111001)2和& = (1011011)2,因此,對(duì)應(yīng)1位的輸入信息,輸出信息X和Y分別由輸入信息按照A和&的規(guī)則相異或得到。2. 2卷積譯碼器所述的額卷積譯碼器是基于Viterbi算法設(shè)計(jì)Viterbi譯碼器。Viterbi譯碼器的框圖如圖6所示。由圖6可見,譯碼器主要由三個(gè)單元構(gòu)成1),分支度量計(jì)算(bmg)單元;分支度量值計(jì)算單元,用于接收輸入的兩路數(shù)據(jù),并根據(jù)狀態(tài)轉(zhuǎn)移蝶形對(duì)的狀態(tài)轉(zhuǎn)移規(guī)則,對(duì)接收到的兩路數(shù)據(jù)進(jìn)行計(jì)算,得到各狀態(tài)的分支度量值;2),加比選計(jì)算(acs)單元;加比選單元,用于利用上述分支度量值計(jì)算單元計(jì)算得到的分支度量值,對(duì)各狀態(tài)前一時(shí)刻的路徑度量值進(jìn)行加比選ACS處理,其中,上述加比選單元由8個(gè)并行執(zhí)行的加比選模塊組成,其中,每個(gè)加比選模塊處理的4個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)的相應(yīng)分支具有相同的輸入輸出特性;3),回溯輸出譯碼結(jié)果(trace back)單元?;厮葺敵鲎g碼結(jié)果單元涉及三個(gè)部分的設(shè)計(jì)存儲(chǔ)單元、最大值搜索單元和回溯輸出單元。存儲(chǔ)單元,用于存儲(chǔ)經(jīng)上述加比選單元處理后得到的各狀態(tài)的路徑度量值及上述路徑度量值的狀態(tài)轉(zhuǎn)移關(guān)系標(biāo)記;最大值搜索單元,用于對(duì)上述存儲(chǔ)單元存儲(chǔ)的各狀態(tài)的路徑度量值進(jìn)行比較,搜索出最大的路徑度量值;回溯輸出單元,用于根據(jù)上述存儲(chǔ)單元存儲(chǔ)的狀態(tài)轉(zhuǎn)移關(guān)系標(biāo)記,對(duì)上述最大的路徑度量值進(jìn)行回溯,并輸出譯碼結(jié)果。3交織器OFDM系統(tǒng)中交織器的主要作用是抵抗信道的突發(fā)成片錯(cuò)誤。交織器的設(shè)計(jì)目的就是把一組的成片錯(cuò)誤分散到不同的分組之中。在這里我們選用實(shí)現(xiàn)較為簡單的行列交織器。系統(tǒng)設(shè)計(jì)的時(shí)候,發(fā)射端,RS編碼輸出的數(shù)據(jù)按列寫入交織器,CC編碼器(即卷積編碼器)按行讀取交織器內(nèi)的數(shù)據(jù);接收端,CC譯碼器按行向交織器寫入譯碼后數(shù)據(jù),RS譯碼器按列讀取待譯碼數(shù)據(jù)。示意圖1中的外交織器和內(nèi)交織器分別如圖9和圖10所示。因?yàn)榻饨豢椘鞯牟僮髋c交織器的操作類似,因此,只需要給出外交織器和內(nèi)交織器示意圖即可。圖9中的數(shù)字表示寄存器的地址值。由圖可以看出,整個(gè)寄存器的大小為0到觀79 總共觀80個(gè)地址空間。在數(shù)據(jù)輸入的時(shí)候,我們從A端口按照地址遞增45的順序?qū)懭?,?第一次寫入第0地址位置,第二次寫入第45地址位置,第三次寫入第90地址位置,……,直至從第0地址位置寫到第觀79地址位置,把寄存器寫滿。然后,讀取數(shù)據(jù)的時(shí)候,我們使用端口 A和B同時(shí)讀取。端口 A讀取寄存器上半部分地址空間內(nèi)存儲(chǔ)的數(shù)據(jù),端口 B讀取寄存器下半部分地址空間內(nèi)存儲(chǔ)的數(shù)據(jù)。讀取的時(shí)候,按行順序讀取,即從第0地址位置讀取到第44地址位置,從第45地址位置讀取到第89地址位置,從第90地址位置讀取到第134 地址位置,……,直至把寄存器讀空為止。圖10中的數(shù)字表示寄存器的地址值。由圖可以看出,整個(gè)寄存器的大小為0到 1471總共1472個(gè)地址空間。對(duì)于寄存器的寫操作,我們使用端口 A和端口 B同時(shí)進(jìn)行。端口 A寫寄存器的上半部分,端口 B寫寄存器的下半部分。從圖中可以看出,寄存器上半部分的地址空間為0到735總共736個(gè)地址值,下半部分地址空間為736到1471總共也是736 個(gè)地址值。端口 A的寫地址按照23的值遞增,即第一次寫入第0地址位置,第二次寫入第 23地址位置,第三次寫入第46地址位置,……,直至從第0地址位置寫到第735地址位置, 把寄存器上半部分寫滿。端口 B的寫地址只需將每個(gè)端口 A的寫地址加上736即可。讀寄存器只通過端口 A讀取。讀取寄存器的時(shí)候,按行順序讀取,即從第0地址位置讀取到第 22地址位置,從第23地址位置讀取到第45地址位置,從第46地址位置讀取到第68地址位置,……,直至把寄存器讀空為止。總之,本發(fā)明所述的級(jí)聯(lián)編碼器的實(shí)現(xiàn)方式是按照先做RS編碼,接著做卷積編碼,再做卷積解碼,最后是做RS譯碼的順序?qū)崿F(xiàn)的。本發(fā)明通過計(jì)算機(jī)matlab仿真與具體硬件實(shí)現(xiàn)結(jié)果同時(shí)驗(yàn)證,可以得到同樣的系統(tǒng)參數(shù)條件下,不同的編碼方法的增益值具有較大的差異。其中級(jí)聯(lián)編碼器具有最好的性能。在中低誤碼率條件下,級(jí)聯(lián)編碼器比RS編碼器和卷積編碼器單獨(dú)編碼有大約2dB編碼增益,最大值可達(dá)4dB左右。在中高誤碼率條件下,卷積碼器與級(jí)聯(lián)碼器性能相接近。因此,本發(fā)明的級(jí)聯(lián)編碼器的引入,使得OFDM系統(tǒng)性能具有顯著的提高。
圖1 級(jí)聯(lián)編碼器、解碼器示意框圖;圖 2 (255,239) RS 碼的 LFSR 編碼圖;圖3 :RS解碼器結(jié)構(gòu);
圖4 伴隨多項(xiàng)式的實(shí)現(xiàn)結(jié)構(gòu);圖5 1卷積編碼器(狀態(tài)從右向左看入);圖 6 =Viterbi 譯碼框圖;圖7 狀態(tài)轉(zhuǎn)移蝶形對(duì)的示意圖;圖8 =Viterbi解碼器實(shí)施流程示意圖;圖9:外交織器示意圖;圖10:內(nèi)交織器示意圖。
具體實(shí)施例方式通過下面實(shí)施例的描述,進(jìn)一步說明本發(fā)明的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步,但本發(fā)明決非僅局限于實(shí)施例。實(shí)施例1 如圖2結(jié)構(gòu)的編碼器的具體實(shí)現(xiàn)時(shí),采用16個(gè)上述的基于異或操作的乘法器并行計(jì)算,可以快速流水實(shí)現(xiàn)RS編碼器。具體的(255,239) RS碼的16階位寄存器的系統(tǒng)編碼形成系統(tǒng)碼字的實(shí)現(xiàn)步驟如下a),開關(guān)1在開始的k個(gè)時(shí)鐘周期內(nèi)合上,使消息碼元進(jìn)入移位寄存器的(n-k) 級(jí)。對(duì)于(255,239) RS 碼,k 取 239,(n-k)取 255-239 = 16。這一步可以分解為三個(gè)過程執(zhí)行第一個(gè)過程輸入待編碼的數(shù)據(jù);總共需要輸入239個(gè)位寬為8的數(shù)據(jù)。第二個(gè)過程對(duì)輸入的數(shù)據(jù)做伽羅華域的乘法運(yùn)算;對(duì)每一個(gè)輸入的數(shù)據(jù),進(jìn)行一次伽羅華域的乘法運(yùn)算。第三個(gè)過程用第三步得到的乘法結(jié)果更新寄存器的內(nèi)容;將乘法得到的結(jié)果, 與寄存器原來存儲(chǔ)的數(shù)據(jù)相加,用得到的新的結(jié)果替換原先的寄存器值,存入寄存器之中。b),開關(guān)2在開始的k個(gè)時(shí)鐘周期內(nèi)處于下面的位置,使得消息碼元同時(shí)直接傳輸?shù)揭粋€(gè)輸出寄存器中。等第k個(gè)消息碼元傳輸?shù)捷敵黾拇嫫?,開關(guān)1斷開,開關(guān)2移到上面位置。隨后的(n-k)個(gè)時(shí)鐘周期用于清除移位寄存器中的監(jiān)督碼元,這可以通過將其移到輸出寄存器而完成。當(dāng)(n-k)個(gè)寄存器的值全部輸出以后,我們就完成了一次編碼,得到了需要的碼字。全部的時(shí)鐘周期數(shù)等于n,輸出寄存器存儲(chǔ)的內(nèi)容就是碼字多項(xiàng)式p(X)+Xn-km(X),p(X)和m(X)分別表示監(jiān)督碼元和消息碼元多項(xiàng)式形式。實(shí)施例2 圖4中D單元存儲(chǔ)的是臨時(shí)的數(shù)據(jù),由上到下分別為定義為S' 0, S' ……,S' 15,S' 0,S' 1;……,S' 15初始值為OdfS'。與α1相乘,得到結(jié)果tempi =S' QXa1JfS' 1與α2相乘,得到結(jié)果temp2 = S' ^ α2,……,將S' 15與α 16相乘,得到結(jié)果templ6 = S' 15Χ α16。輸入rQ的時(shí)候,由上到下分別更新S' 0,S' 1;……,
S' 15為"ο = r0+templ, S' ! = r。+temp2,......,S' 15 = r。+templ6。得到新的 S' 0,
S' 1;……,S' 15以后,繼續(xù)使用上邊的方法更新tempi,temp2,……,templ6,將新得到的S'。與α1相乘,得到結(jié)果templ = S' ^X α\將新得到的S'工與α2相乘,得到結(jié)果 temp2 = S' ^ α2,……,將新得到的S' 15與α 16相乘,得到結(jié)果templ6 = S' 15Χ α “5。
9接著,輸入T1的時(shí)候,由上到下分別更新S' 0,S' 1;……,S' JS' O = T^tempLS'工 =r1+temp2,……,S' 15 =巧+tempie。得到新的S'。,S' 1;……,S' 15以后,繼續(xù)使用上邊的方法更新tempi,temp2,……,templ6,將新得到的S ‘ ^與α1相乘,得到結(jié)果 tempi = S' 一 α1,將新得到的S' i與α 2相乘,得到結(jié)果temp2 = S' ^ α2,……,將新得到的S' 15與α 16相乘,得到結(jié)果templ6 = S' 15Χ α “5。如此重復(fù),直至rQ,巧,……, r254按順序全部輸入圖4的結(jié)構(gòu)以后,D單元存儲(chǔ)的內(nèi)容即為我們需要的16個(gè)校驗(yàn)信息&,
S” ......‘ S15O同樣,對(duì)于本結(jié)構(gòu)中的乘法運(yùn)算同樣適用編碼器中設(shè)計(jì)的乘法器的實(shí)現(xiàn)方法。實(shí)施例3 卷積解碼器的實(shí)施流程(圖8)2201、接收輸入的兩路數(shù)據(jù);原始數(shù)據(jù)是通過卷積編碼后會(huì)被分成并行的兩路數(shù)據(jù)(包含信道軟信息,即編碼后數(shù)據(jù)和信道噪聲的疊加)后通過信道傳輸?shù)骄S特比譯碼器中進(jìn)行解碼。2202、對(duì)接收到的兩路數(shù)據(jù)進(jìn)行計(jì)算,得到各狀態(tài)的分支度量值;根據(jù)狀態(tài)轉(zhuǎn)移蝶形對(duì)的狀態(tài)轉(zhuǎn)移規(guī)則,對(duì)接收到的兩路數(shù)據(jù)進(jìn)行計(jì)算,得到各狀態(tài)的分支度量值。由于原始數(shù)據(jù)在(2,1,7)卷積編碼器處理的過程中,有64種可能狀態(tài)出現(xiàn),因此, 維特比譯碼過程需要針對(duì)64種可能的狀態(tài)(對(duì)應(yīng)于32個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì))進(jìn)行計(jì)算并搜索出最大概率路徑,以還原出原始的數(shù)據(jù)。維特比在接收到輸入的兩路數(shù)據(jù)后,對(duì)兩路數(shù)據(jù)進(jìn)行計(jì)算,以求得各狀態(tài)的分支
度量值。通過觀察狀態(tài)轉(zhuǎn)移蝶形對(duì)發(fā)現(xiàn),每條分支對(duì)應(yīng)的兩個(gè)軟判決符號(hào)只存在四種組合00,01,11,10。假設(shè)輸入的兩路數(shù)據(jù)為X1Y1,則相應(yīng)的分支度量值的計(jì)算以下存在四種
結(jié)果BMll = X1+Y1 ;BMlO = Xl-Yl ;BMOl = -Xl+Yl = -(Xl-Yl) = -BMlO ;BMOO = -Xl-Yl = - (Xl+Yl) = -BMll ;可見,通過計(jì)算兩路數(shù)據(jù)的和與差,便可計(jì)算得到所有分支的分支度量值。因此,本發(fā)明實(shí)施例中優(yōu)化了分支度量值的計(jì)算方法,進(jìn)一步提高了分支度量值的計(jì)算速度,其具體實(shí)現(xiàn)方法如下根據(jù)狀態(tài)轉(zhuǎn)移蝶形對(duì)的狀態(tài)轉(zhuǎn)移規(guī)則,得到每個(gè)狀態(tài)的兩條分支的軟判決符號(hào) dld2 ;若某分支的dld2為11,則將接收的兩路數(shù)據(jù)相加,并將得到的值作為該分支分支
度量值;若某分支的dld2為10,則將接收的兩路數(shù)據(jù)相減,并將得到的值作為該分支分支
度量值;若某分支的dld2為00,則將接收的兩路數(shù)據(jù)相加后取反,并將得到的值作為該分
支分支度量值;若某分支的dld2為01,則將接收的兩路數(shù)據(jù)相減后取反,并將得到的值作為該分支分支度量值。通過上述方法可更快地完成各狀態(tài)的分支度量值的計(jì)算。2203、根據(jù)各狀態(tài)的轉(zhuǎn)移關(guān)系進(jìn)行ACS處理;通過采用分時(shí)復(fù)用的方式,每個(gè)周期完成8個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)的ACS處理,經(jīng)過4 個(gè)周期完成所有32個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)的ACS處理。在實(shí)際應(yīng)用中,維特比譯碼器的ACS處理過程可由8個(gè)加比選模塊并行完成,通過預(yù)先設(shè)置每個(gè)加比選模塊所要處理的狀態(tài)轉(zhuǎn)移蝶形對(duì),使每個(gè)加比選模塊每個(gè)周期處理一個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì),利用分時(shí)復(fù)用實(shí)現(xiàn)8個(gè)加比選模塊的并行執(zhí)行,縮短ACS處理時(shí)長,提高整體的譯碼速度。 單個(gè)加比選模塊中的ACS處理過程如下假設(shè)該加比選模塊當(dāng)前處理的狀態(tài)轉(zhuǎn)移蝶形對(duì)為如圖7所示的狀態(tài)轉(zhuǎn)移蝶形對(duì)。 則加比選模塊首先將步驟2202得到的狀態(tài)S0、S1的分支度量值(每個(gè)狀態(tài)包含兩條分支, 即存在兩個(gè)分支度量值),與狀態(tài)S0、S1前一時(shí)刻的路徑度量值相加,得到狀態(tài)S0、S1當(dāng)前時(shí)刻的路徑度量值;狀態(tài)SO比較其兩條分支的路徑度量值,選擇較大的路徑度量值保留, 同樣的,狀態(tài)Sl比較其兩條分支的路徑度量值,選擇較大的路徑度量值保留,完成該狀態(tài)轉(zhuǎn)移蝶形對(duì)的ACS處理。由圖5的編碼器可看出,移位寄存器的第4位對(duì)編碼的結(jié)果沒有影響,即狀態(tài)Si 和 S(i+8)、S(i+16)和 S(i+16+8)、S(i+32)和 S(i+32+8)以及 S(i+48)和 S(i+48+8) (i <8)是等效的。在此規(guī)律的基礎(chǔ)上,本發(fā)明實(shí)施例對(duì)傳統(tǒng)的加比選單元進(jìn)行的改進(jìn),采用 8個(gè)加比選模塊并行計(jì)算的方式實(shí)施,其中,采用分時(shí)復(fù)用的方式實(shí)現(xiàn)8個(gè)加比選模塊的并行運(yùn)作,每個(gè)周期由8個(gè)加比選模塊共同完成8個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)(16個(gè)狀態(tài))的ACS處理。其中,每個(gè)加比選模塊處理4個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì),且4個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)的相應(yīng)分支具有相同的輸入輸出特性。假設(shè)一個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)采用起始狀態(tài)中較低的狀態(tài)進(jìn)行標(biāo)記,如將圖7所示的狀態(tài)轉(zhuǎn)移蝶形對(duì)標(biāo)記為B0,則32個(gè)狀態(tài)轉(zhuǎn)移蝶形對(duì)可對(duì)應(yīng)標(biāo)記為B0,B1,B2,···.,B31。則加比選模塊對(duì)應(yīng)處理的狀態(tài)轉(zhuǎn)移蝶形的設(shè)置可如表1 表 1
加比選模塊狀態(tài)轉(zhuǎn)移蝶形對(duì)
ACSOBO, B8, B19, B27
ACSlBi, B9, B18, B26
ACS2B2, BIO, B17, B25
ACS3B3, Bll, B16, B24
ACS4B4, B12, B23, B31
ACS5B5, B13, B22, B30
權(quán)利要求
1.一種級(jí)聯(lián)編碼器,其特征在于所述的級(jí)聯(lián)編碼器是由編碼器和解碼器通過交織器連接而成,所述的編碼器依次由RS編碼器、外交織器、卷積編碼器和內(nèi)交織器連接構(gòu)成;所述的解碼器則依次由內(nèi)解交織器、卷積解碼器、外解交織器和RS譯碼器連接構(gòu)成;其中,(I)RS編碼器選用LFSR移位結(jié)構(gòu),S卩(n-k)階移位寄存器的系統(tǒng)編碼;(2)RS譯碼器采用與RS編碼器相同的本原多項(xiàng)式,參數(shù)與編碼器相同;(3)卷積編碼器采用(2,1,7)卷積編碼器,其x、y狀態(tài)轉(zhuǎn)移多項(xiàng)式為(171,133,);(4)卷積解碼器是基于Viterbi算法設(shè)計(jì)的Viterbi譯碼器;(5)交織器為簡單的行列交織器,以抵抗OFDM系統(tǒng)中信道的突發(fā)成片錯(cuò)誤,把一組的成片錯(cuò)誤分散到不同的分組中。
2.按權(quán)利要求1所述的級(jí)聯(lián)編碼器,其特征在于(1)中所述的系統(tǒng)編碼器為所示 (225,239) RS碼的16階位寄存器,所述的寄存器的每個(gè)狀態(tài)具有Sbit的碼元,系數(shù)&,gl, g2……g14,g15是生成多項(xiàng)式的系數(shù)。
3.按權(quán)利要求2所述的級(jí)聯(lián)編碼器,其特征在于生成多項(xiàng)式的系數(shù)與輸入信息的伽羅華域乘法運(yùn)算是通過轉(zhuǎn)化為兩組數(shù)據(jù)的異或操作實(shí)現(xiàn)的,將復(fù)雜的乘法運(yùn)算簡化為易于硬件實(shí)現(xiàn)的簡單的異域操作。
4.按權(quán)利要求1所述的級(jí)聯(lián)編碼器,其特征在于( 中的RS譯碼器的譯碼分為錯(cuò)誤檢測和錯(cuò)誤糾正兩個(gè)過程,具體分為以下三步a)伴隨多項(xiàng)式的計(jì)算最終得到16個(gè)校驗(yàn)信息;b)確定錯(cuò)誤位置多項(xiàng)式和錯(cuò)誤估算函數(shù);c)求解錯(cuò)誤位置和錯(cuò)誤數(shù)值,并進(jìn)行糾正。
5.按權(quán)利要求1所述的級(jí)聯(lián)編碼器,其特征在于(3)中所述的卷積編碼器中每個(gè)時(shí)鐘周期輸入1個(gè)bit信息,輸出2bit信息;只需按照生成多項(xiàng)式對(duì)輸入的數(shù)值逐位的異或即可。
6.按權(quán)利要求1所述的級(jí)聯(lián)編碼器,其特征在于(4)中所述的解碼器由分支度量計(jì)算單元、加比選計(jì)算單元和回溯輸出譯碼結(jié)果單元組成;其中回溯輸出譯碼結(jié)果單元涉及存儲(chǔ)單元、最大值搜索單元和回溯輸出單元。
7.按權(quán)利要求1所述的級(jí)聯(lián)編碼器,其特征在于(5)中所述的交織器的發(fā)射端,RS編碼輸出的數(shù)據(jù)按列寫入外交織器,卷積編碼器按行讀取外交織器內(nèi)的數(shù)據(jù);接收端,卷積解碼器按行向內(nèi)交織器寫入譯碼后數(shù)據(jù),RS譯碼器按列讀取待譯碼數(shù)據(jù)。
8.按權(quán)利要求7所述的級(jí)聯(lián)編碼器,其特征在于(1)整個(gè)外交織器的大小為0到觀79總共觀80個(gè)地址空間;在數(shù)據(jù)輸入的時(shí)候,從A 端口按照地址遞增45的順序?qū)懭?,即第一次寫入?地址位置,第二次寫入第45地址位置,第三次寫入第90地址位置,……,直至從第0地址位置寫到第觀79地址位置,把交織器寫滿;然后,讀取數(shù)據(jù)的時(shí)候,使用端口 A和B同時(shí)讀??;端口 A讀取寄存器上半部分地址空間內(nèi)存儲(chǔ)的數(shù)據(jù),端口 B讀取寄存器下半部分地址空間內(nèi)存儲(chǔ)的數(shù)據(jù);讀取的時(shí)候,按行順序讀取,即從第0地址位置讀取到第44地址位置,從第45地址位置讀取到第89地址位置,從第90地址位置讀取到第134地址位置,……,直至把寄存器讀空為止;(2)整個(gè)內(nèi)交織器的大小為0到1471總共1472個(gè)地址空間;對(duì)于寄存器的寫操作, 使用端口 A和端口 B同時(shí)進(jìn)行;端口 A寫寄存器的上半部分,端口 B寫寄存器的下半部分;內(nèi)交織器上半部分的地址空間為0到735總共736個(gè)地址值,下半部分地址空間為736到 1471總共也是736個(gè)地址值;端口 A的寫地址按照23的值遞增,即第一次寫入第0地址位置,第二次寫入第23地址位置,第三次寫入第46地址位置,……,直至從第0地址位置寫到第735地址位置,把寄存器上半部分寫滿;端口 B的寫地址只需將每個(gè)端口 A的寫地址加上736即可;讀寄存器只通過端口 A讀??;讀取寄存器的時(shí)候,按行順序讀取,即從第0地址位置讀取到第22地址位置,從第23地址位置讀取到第45地址位置,從第46地址位置讀取到第68地址位置,……,直至把寄存器讀空為止。
9.實(shí)現(xiàn)由權(quán)利要求1-7中任一項(xiàng)所述的級(jí)聯(lián)編碼器的方法,其特征在于按照先做RS編碼,接著做卷積編碼,再做卷積解碼,最后是做RS譯碼的順序?qū)崿F(xiàn)的。
10.按權(quán)利要求9所述的實(shí)現(xiàn)方法,其特征在于A.卷積解碼器的實(shí)施流程為(a)接收輸入的兩路數(shù)據(jù);(b)對(duì)接收的兩路數(shù)據(jù)進(jìn)行計(jì)算,得到各狀態(tài)的分支度量值;(c)根據(jù)各狀態(tài)的轉(zhuǎn)移關(guān)系進(jìn)行加比選處理;(d)存儲(chǔ)各狀態(tài)的路徑度量值及各路徑度量值的狀態(tài)轉(zhuǎn)移關(guān)系標(biāo)記;(e)比較上述存儲(chǔ)的各狀態(tài)的路徑度量值,搜索出最大的路徑度量值;(f)回溯輸出譯碼結(jié)果;B.RS編碼的實(shí)現(xiàn)步驟a),開關(guān)(1)在開始的k個(gè)時(shí)鐘周期內(nèi)合上,使消息碼元進(jìn)入移位寄存器的(n-k)級(jí)。 對(duì)于(255,239) RS碼,k取239,(n-k)取255-239 = 16 ;這一步又可分解為三個(gè)過程執(zhí)行第一個(gè)過程輸入待編碼的數(shù)據(jù);總共需要輸入239個(gè)位寬為8的數(shù)據(jù);第二個(gè)過程對(duì)輸入的數(shù)據(jù)做伽羅華域的乘法運(yùn)算;對(duì)每一個(gè)輸入的數(shù)據(jù),進(jìn)行一次伽羅華域的乘法運(yùn)算;第三個(gè)過程用第三步得到的乘法結(jié)果更新寄存器的內(nèi)容;將乘法得到的結(jié)果,與寄存器原來存儲(chǔ)的數(shù)據(jù)相加,用得到的新的結(jié)果替換原先的寄存器值,存入寄存器之中;b),開關(guān)(2)在開始的k個(gè)時(shí)鐘周期內(nèi)處于下面的位置,使得消息碼元同時(shí)直接傳輸?shù)揭粋€(gè)輸出寄存器中,等第k個(gè)消息碼元傳輸?shù)捷敵黾拇嫫?,開關(guān)1斷開,開關(guān)(2)移到上面位置;隨后的(n-k)個(gè)時(shí)鐘周期用于清除移位寄存器中的監(jiān)督碼元,通過將其移到輸出寄存器而完成;當(dāng)(n-k)個(gè)寄存器的值全部輸出以后,完成了一次編碼,得到了需要的碼字;其中,時(shí)鐘周期數(shù)等于n,輸出寄存器存儲(chǔ)的內(nèi)容就是碼字多項(xiàng)式p(X) +Xn"km(X).P(X)和m(X)分別表示監(jiān)督碼元和消息碼元多項(xiàng)式形式。
全文摘要
本發(fā)明涉及一種級(jí)聯(lián)編碼器及實(shí)現(xiàn)方法,其特征在于所述的級(jí)聯(lián)編碼器是由編碼器和解碼器通過交織器連接而成,所述的編碼器依次由RS編碼器、外交織器、卷積編碼器和內(nèi)交織器連接構(gòu)成;所述的解碼器則依次由內(nèi)解交織器、卷積解碼器、外解交織器和RS譯碼器連接構(gòu)成;實(shí)現(xiàn)方法是按照先做RS編碼,接著做卷積編碼,再做卷積解碼,最后是做RS譯碼的順序?qū)崿F(xiàn)的。級(jí)聯(lián)編碼器引入OFDM系統(tǒng),使其性能顯著提高。
文檔編號(hào)H03M13/23GK102523006SQ20111045823
公開日2012年6月27日 申請日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者施玉松, 朱磊基, 汪涵, 王營冠, 邢濤 申請人:中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所