專利名稱:一種Turbo乘積碼的通用譯碼器及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通訊技術(shù)領(lǐng)域,尤其涉及一種Turbo乘積碼的通用譯碼器及其方 法。
背景技術(shù):
Turbo碼作為一種新型的糾錯編碼類型備受通信界的注目,它的糾錯能力能夠接 近Shannon極限。Turbo碼自1993年由C. Berrou提出后,已成為信道編碼研究的熱點(diǎn)其實(shí) 現(xiàn)的方法大體被分成兩種類型增強(qiáng)型Turbo乘積編碼(TurboProduct Codes TPC)和增強(qiáng) 型巻積編碼(Turbo Convolutional Codes TCC) 。 TPC在許多方面都表現(xiàn)出誘人的應(yīng)用前 景,一方面TPC的編碼效率較TCC高,另外TPC的主要優(yōu)勢在于其采用矩陣交織方式,這使 系統(tǒng)結(jié)構(gòu)相對簡單。Turbo乘積編碼串行連接的結(jié)構(gòu)也比Turbo巻積編碼并行連接的結(jié)構(gòu) 有許多優(yōu)勢。本文主要是針對一種通用Turbo乘積碼(TPC)譯碼進(jìn)行研究。乘積碼的發(fā)展 過程中曾經(jīng)誕生過的幾種硬判決和軟判決譯碼算法,在實(shí)現(xiàn)復(fù)雜度和糾錯性能上都不同。 但Turbo乘積碼采用迭代的軟輸入軟輸出(SISO, Soft-Input Soft-Output)譯碼方式,這 種譯碼方法性能較好。 但是面對不同的業(yè)務(wù)需求和通信系統(tǒng),若固定單一的譯碼器實(shí)現(xiàn)起來必然有諸多 不便,而目前卻沒有這樣一種通用譯碼器,大多數(shù)實(shí)現(xiàn)方案均是針對特定的碼字或碼率。所 以發(fā)明人提出了這種通用的Turbo乘積碼譯碼器,針對不同碼長,碼率,平臺,譯碼延時及 吞吐量需求的通信系統(tǒng)進(jìn)行譯碼。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供了一種Turbo乘積碼的通用譯碼器及 其方法 Turbo乘積碼的通用譯碼器的配置參數(shù)有Turbo乘積碼的子碼碼型、迭代次數(shù), 它至少包括 初始信息存儲模塊,用于存儲每次譯碼需要的接收序列; 外信息存儲模塊,用于存儲每次譯碼需要的和得到的外部軟信息; 第一先入先出模塊或第二先入先出模塊,用于暫時儲存譯碼的輸入序列; 不可靠位計(jì)算模塊,根據(jù)外部配置參數(shù)中的不可靠位數(shù)對輸入序列進(jìn)行變換,得
到代數(shù)譯碼的輸入序列; 代數(shù)譯碼模塊,根據(jù)配置參數(shù)不同進(jìn)行不同的代數(shù)譯碼; 度量比較模塊,通過比較代數(shù)譯碼模塊的輸出的歐式距離,得到最優(yōu)碼字D ; 外信息計(jì)算模塊,計(jì)算本次迭代的外部軟信息,提供給下一次迭代; 控制模塊,對上述各種模塊的時序,參數(shù)選擇進(jìn)行控制; 接口模塊,進(jìn)行參數(shù)設(shè)置; 外信息存儲計(jì)算模塊分別與第一先入先出模塊、最不可靠位計(jì)算模塊、外信息模塊輸入相連接;初始信息存儲模塊分別與第一先入先出模塊、最不可靠位計(jì)算模塊相連接;第一先入先出模塊分別與外信息存儲計(jì)算模塊、初始信息存儲模塊、第二先入先出模塊、度量比較模塊相連接;最不可靠位計(jì)算模塊分別與初始信息存儲模塊、外信息存儲模塊、代數(shù)譯碼模塊相連接;代數(shù)譯碼模塊分別與最不可靠計(jì)算模塊、度量比較模塊相連接;第二先入先出模塊分別與第一先入先出模塊、外信息模塊輸入相連接;度量比較模塊分別與第一先入先出模塊、代數(shù)譯碼模塊、外信息模塊輸入相連接;外信息模塊輸入分別與度量比較模塊、第二先入先出模塊、外信息存儲計(jì)算模塊相連接;上述模塊由控制模塊控制;在接口模塊中進(jìn)行參數(shù)設(shè)置。 所述的Turbo乘積碼的子碼碼型可為最長碼長為64的任意漢明碼或擴(kuò)展?jié)h明碼
及其縮短碼,且縮短位數(shù)為任意數(shù),最大值為該碼字的長度。 所述的迭代次數(shù)是根據(jù)譯碼延時及誤碼率設(shè)置的任意數(shù)。 所述的外信息存儲模塊,初始信息存儲模塊的容量為64單元*64單元的,每個單元的容量為其量化比特?cái)?shù)。 所述的第一先入先出模塊或第二先入先出模塊的容量為2*64單元,每個單元的容量為譯碼輸入軟信息的量化比特,其中的讀出順序是數(shù)據(jù)寫入的順序,數(shù)據(jù)讀出后先入
先出模塊內(nèi)數(shù)據(jù)為空。 所述的代數(shù)譯碼模塊包括分量碼碼長最大為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼。 Turbo乘積碼的通用譯碼方法包括以下步驟 1)參數(shù)化配置,根據(jù)需要在接口模塊設(shè)定Turbo乘積碼譯碼的二維子碼以及迭代次數(shù); 2)接收信道輸出的解調(diào)符號信息,將該次譯碼所需的接收信息序列存入初始信息
存儲模塊中,外信息存儲模塊初始信息為O,開始一次行或者列的迭代譯碼; 3)計(jì)算譯碼所需的序列信息,存入一塊先入先出模塊中,同時找到最不可靠的3
位即度量值最小的3位,將這3個碼字分別取0或l,得到8個候選碼字序列; 4)將這8個碼字在代數(shù)譯碼模塊中進(jìn)行代數(shù)譯碼,不同配置的代數(shù)譯碼方法不
同,獲得8個代數(shù)譯碼后的碼字; 5)將代數(shù)譯碼的輸出碼字和第一塊先入先出模塊的輸出送入度量比較模塊,找到歐式距離最小的碼字,判為該次行或者列的最優(yōu)碼字,同時第二塊先入先出模塊讀入第一塊先入先出模塊的輸出; 6)將第二塊先入先出模塊的輸出和度量比較模塊的輸出送入外信息計(jì)算模塊,計(jì)算該次該行或列迭代的外部軟信息,并存入外部軟信息存儲器中,該次行或者列譯碼完畢; 7)重復(fù)上述步驟,直到所有行或者列譯碼完畢,則進(jìn)行列或者行譯碼,整個完畢后一次迭代結(jié)束; 8)重復(fù)上述步驟,根據(jù)參數(shù)配置,控制模塊控制整個過程直到整個迭代結(jié)束;
Turbo乘積碼子碼的行和行,列和列之間的譯碼采用流水線結(jié)構(gòu)。
本發(fā)明已經(jīng)實(shí)現(xiàn)碼長,碼率和迭代次數(shù)可變,并且多平臺的流水化Turbo乘積碼譯碼,并對該譯碼器針對不同子碼構(gòu)成的Turbo乘積碼和不同迭代次數(shù)譯碼的性能進(jìn)行了
5一系列測試。這種通用譯碼器有很強(qiáng)的可移植性,可以適用于不同的通信系統(tǒng)。
圖1為本發(fā)明Turbo乘積碼通用譯碼器的原理圖; 圖2為本發(fā)明Turbo乘積碼通用譯碼器內(nèi)部結(jié)構(gòu)框圖; 圖3為本發(fā)明Turbo乘積碼通用譯碼器的每次譯碼過程; 圖4為本發(fā)明先入先出模塊的結(jié)構(gòu); 圖5為本發(fā)明代數(shù)譯碼器的工作流程; 圖6為本發(fā)明度量比較模塊的流水結(jié)構(gòu); 圖7為本發(fā)明Turbo乘積碼通用譯碼器的迭代譯碼過程; 圖8為(15, 11)* (15, 11)漢明碼和(31, 26)* (31, 26)漢明碼構(gòu)成的Turbo乘積碼譯碼性能測試曲線圖; 圖9為(31, 26)* (31, 26)漢明碼與(32, 26) * (32, 26)擴(kuò)展?jié)h明碼構(gòu)成的Turbo乘積碼譯碼性能測試曲線圖; 圖10為不同迭代次數(shù)的Turbo乘積碼譯碼性能測試曲線圖。以下結(jié)合附圖對本發(fā)明進(jìn)行進(jìn)一步說明
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明進(jìn)行進(jìn)一步說明 Turbo乘積碼的通用譯碼器可以針對不同碼長,碼率,平臺,譯碼延時及吞吐量需求的通信系統(tǒng)進(jìn)行譯碼。該子碼二維均可選為最長碼長為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼,且縮短位數(shù)為任意數(shù),最大值為該碼字的長度。這樣可以使用于不同碼長,碼率的需要;譯碼次數(shù)可任意選擇,滿足譯碼延遲和吞吐量的需求;其結(jié)構(gòu)化的設(shè)計(jì)使用靈活,擴(kuò)展性良好,既可以用可編程邏輯器件實(shí)現(xiàn),如FPGA,也可以用專用芯片(ASIC)實(shí)現(xiàn);多處采用流水線結(jié)構(gòu),充分提高了譯碼器的吞吐量。可應(yīng)用于不同的通信系統(tǒng),使用方便,結(jié)構(gòu)簡單明了。 Turbo乘積碼的通用譯碼器,它的配置參數(shù)有Turbo乘積碼的子碼碼型、迭代次
數(shù),該Turbo乘積碼通用譯碼器的內(nèi)部結(jié)構(gòu)如圖2所示,它至少包括 初始信息存儲模塊202,用于存儲每次譯碼需要的接收序列; 外信息存儲模塊201,用于存儲每次譯碼需要的和得到的外部軟信息; 第一先入先出模塊203或第二先入先出模塊206,用于暫時儲存譯碼的輸入序列; 不可靠位計(jì)算模塊204,根據(jù)外部配置參數(shù)中的不可靠位數(shù)對輸入序列進(jìn)行變換,
得到代數(shù)譯碼的輸入序列; 代數(shù)譯碼模塊205,根據(jù)配置參數(shù)不同進(jìn)行不同的代數(shù)譯碼; 度量比較模塊207,通過比較代數(shù)譯碼模塊的輸出的歐式距離,得到最優(yōu)碼字D ; 外信息計(jì)算模塊208,計(jì)算本次迭代的外部軟信息,提供給下一次迭代; 控制模塊209,對上述各種模塊的時序,參數(shù)選擇進(jìn)行控制; 接口模塊101,進(jìn)行參數(shù)設(shè)置; 外信息存儲計(jì)算模塊201分別與第一先入先出模塊203、最不可靠位計(jì)算模塊204、外信息模塊輸入208相連接;初始信息存儲模塊202分別與第一先入先出模塊2Q3、最
6不可靠位計(jì)算模塊204相連接;第一先入先出模塊203分別與外信息存儲計(jì)算模塊201、初始信息存儲模塊202、第二先入先出模塊206、度量比較模塊207相連接;最不可靠位計(jì)算模塊204分別與初始信息存儲模塊202、外信息存儲模塊201、代數(shù)譯碼模塊205相連接;代數(shù)譯碼模塊205分別與最不可靠計(jì)算模塊204、度量比較模塊207相連接;第二先入先出模塊206分別與第一先入先出模塊203、外信息模塊輸入208相連接;度量比較模塊207分別與第一先入先出模塊203、代數(shù)譯碼模塊205、外信息模塊輸入208相連接;外信息模塊輸入208分別與度量比較模塊207、第二先入先出模塊206、外信息存儲計(jì)算模塊201相連接;上述模塊由控制模塊209控制;在接口模塊101中進(jìn)行參數(shù)設(shè)置。 所述的Turbo乘積碼的子碼碼型可為最長碼長為64的任意漢明碼或擴(kuò)展?jié)h明碼
及其縮短碼,且縮短位數(shù)為任意數(shù),最大值為該碼字的長度。 所述的迭代次數(shù)是根據(jù)譯碼延時及誤碼率設(shè)置的任意數(shù)。 所述的外信息存儲模塊201,初始信息存儲模塊202的容量為64單元*64單元的,每個單元的容量為其量化比特?cái)?shù)。 所述的第一先入先出模塊203或第二先入先出模塊206的容量為2*64單元,每個單元的容量為譯碼輸入軟信息的量化比特,其中的讀出順序是數(shù)據(jù)寫入的順序,數(shù)據(jù)讀出后先入先出模塊內(nèi)數(shù)據(jù)為空。 所述的代數(shù)譯碼模塊205包括分量碼碼長最大為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼。 通用Turbo譯碼器的原理圖如圖1所示,需譯碼的Turbo 二維乘積碼可選擇的參數(shù)為迭代次數(shù)Pl. 1,可根據(jù)復(fù)雜度的需求進(jìn)行設(shè)置;橫向和縱向的子碼類型參數(shù)P1.2,它包括最長碼長為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼,且縮短位數(shù)為任意數(shù),最大值為該碼字的長度。 對這些不同格式的Turbo乘積碼譯碼器內(nèi)部參數(shù)配置不同,所以通過接口模塊將設(shè)置的參數(shù)傳遞進(jìn)內(nèi)部,實(shí)現(xiàn)通用的Turbo乘積碼譯碼。
Turbo乘積碼的通用譯碼方法包括以下步驟 1)參數(shù)化配置,根據(jù)需要在接口模塊設(shè)定Turbo乘積碼譯碼的二維子碼以及迭代次數(shù); 2)接收信道輸出的解調(diào)符號信息,將該次譯碼所需的接收信息序列存入初始信息
存儲模塊中,外信息存儲模塊初始信息為O,開始一次行或者列的迭代譯碼; 3)計(jì)算譯碼所需的序列信息,存入一塊先入先出模塊中,同時找到最不可靠的3
位即度量值最小的3位,將這3個碼字分別取0或l,得到8個候選碼字序列; 4)將這8個碼字在代數(shù)譯碼模塊中進(jìn)行代數(shù)譯碼,不同配置的代數(shù)譯碼方法不
同,獲得8個代數(shù)譯碼后的碼字; 5)將代數(shù)譯碼的輸出碼字和第一塊先入先出模塊的輸出送入度量比較模塊,找到歐式距離最小的碼字,判為該次行或者列的最優(yōu)碼字,同時第二塊先入先出模塊讀入第一塊先入先出模塊的輸出; 6)將第二塊先入先出模塊的輸出和度量比較模塊的輸出送入外信息計(jì)算模塊,計(jì)算該次該行或列迭代的外部軟信息,并存入外部軟信息存儲器中,該次行或者列譯碼完畢;
7)重復(fù)上述步驟,直到所有行或者列譯碼完畢,則進(jìn)行列或者行譯碼,整個完畢后一次迭代結(jié)束; 8)重復(fù)上述步驟,根據(jù)參數(shù)配置,控制模塊控制整個過程直到整個迭代結(jié)束;
每次迭代的具體譯碼流程如圖3所示, 首先,即上述步驟2是從初始信息存儲模塊202和外信息存儲模塊201中讀入接收到的序列和軟信息,因?yàn)楦鶕?jù)可配置碼字最大長度為64,所以RAM的大小為64單元X64單元,每個單元的大小為外信息和軟信息的量化比特?cái)?shù),通過接收到的信息計(jì)算軟輸入,對于第m次迭代 R(m) = R+a (m) W(m) 其中,R——譯碼器接收到的信號 R(m)——第m個單元譯碼器的軟輸入信號 W(m)——上一級單元譯碼器輸出的外信息,初始值為零 a (m)——調(diào)節(jié)系數(shù) 由于[R]和[W(m)]的抽樣標(biāo)準(zhǔn)差不同,[W(m)]的抽樣標(biāo)準(zhǔn)差在開始時較大,隨著迭代次數(shù)的增加而逐漸減小,故需要引入調(diào)節(jié)系數(shù)a (m), a (m)在譯碼初期信噪比較大時起到了抑制[W(m)]的作用。a (m)的值隨著迭代過程是遞增的,在譯碼后期,初始的輸入信號[R]對軟輸入的影響逐漸減小,W的值的可靠性不斷增加,可以作為譯碼的主要依據(jù),其對軟輸入影響逐漸增大,以達(dá)到最佳譯碼效果。得到軟輸入值后,便開始對輸入值進(jìn)行軟判決譯碼,將軟輸入信息進(jìn)行譯碼。同時,將軟信息存入先入先出模塊203中,先入先出模塊的結(jié)構(gòu)如圖4所示,當(dāng)有寫使能信號時,R(m)存入先入先出模塊中;當(dāng)有讀使能信號時,R(m)讀出先入先出模塊;先入先出模塊全部讀出后為空。為了防止溢出,設(shè)置其大小為64單元X2。 第2步,即上述步驟3是在最不可靠位計(jì)算模塊204中對軟輸入序列r進(jìn)行硬判決得到序列z,對z的每一位分配可靠性值;取z中可靠性最低的P位,將這P個位置分別取0或1得到2P個錯誤模式,將這些錯誤模式分別與硬判得到的序列z相加,產(chǎn)生候選碼字集合Q ; 在實(shí)施例中,令p = 3, Q中最多有8個不同的碼字。這樣能對譯碼性能和復(fù)雜度之間做折中,更易于實(shí)現(xiàn)。 第3步,即上述步驟4是接著對候選碼字集合Q中的各碼字進(jìn)行代數(shù)譯碼得到碼字v,對于不同參數(shù)的Turbo乘積碼,采用不同的代數(shù)譯碼,這是通用性的核心,如圖5所示。在實(shí)施例中,選取了 (15, 11) X (15, 11)的碼字,及(31,26)X(31,26),有無校驗(yàn)位的漢明碼字進(jìn)行測試; 對于無校驗(yàn)位的漢明碼字,如實(shí)施例(15, 11) X (15, 11)及(31, 26) X (31, 26)直接進(jìn)行代數(shù)譯碼,對于有校驗(yàn)位的漢明碼字,先進(jìn)行代數(shù)譯碼,然后根據(jù)錯誤模式err和奇偶校驗(yàn)位c的值,進(jìn)行不同的處理。 對于縮短的漢明碼,先進(jìn)行填0,并對填0位賦予高可信值,進(jìn)行最不可靠位的尋找然后進(jìn)行如上的代數(shù)譯碼。 同時第一塊先入先出模塊203中的信息輸入第二塊先入先出模塊206中。 第4步,即上述步驟5是在度 比較模塊207中計(jì)算每個候選碼字的軟判決譯碼度量,選擇最可能碼字。通常計(jì)算各個候選碼字與軟輸入序列之間的歐氏距離,選歐氏距離最小的碼字作為判決碼字D。 第5步,即上述步驟3是計(jì)算競爭碼字C,需對得到判決碼字D的每一位進(jìn)行搜索。所以將第二塊先入先出模塊206的信息輸入外信息計(jì)算模塊208,在外信息計(jì)算模塊208中對D中的每一位,在集合Q的8個碼字中進(jìn)行搜索,看是否存在相應(yīng)位置上與其符號相反的碼字,若存在符號相反碼字,則在這些符號相反的碼字中,與該步譯碼軟輸入向量歐氏距離最小的碼字即為競爭碼字。若不存在符號相反碼字,則該位不存在競爭碼字。具體實(shí)施方案如圖6所示,采用流水結(jié)構(gòu)。將8個候選碼字的第i位data[i]與最優(yōu)碼字D做異或操作,若為0則將其對應(yīng)的歐氏距離賦值為0 ;若為1則保留其歐氏距離dis,然后兩兩比較得到四個相對較大的距離值disminl, dismin2, dismin3, dismin4,再將這4個碼字兩兩比較得到相對較大的距離dismaxa,dismaxb,再比較這2個值得到最大歐氏距離對應(yīng)的碼字,即競爭碼字C。
若能找到競爭碼字,則該位的外信息計(jì)算方法如下 其中,R--該級譯碼器軟輸入 C——該位的競爭碼字
D——軟判譯碼得到的判決碼字
dj——判決碼字D的第j位
j——軟輸入R的第j位 由上式可以看出,軟輸出rj = rj+Wj的符號與dj相同,其絕對值代表了軟輸出的可靠性;如果在候選碼字集合Q中找不到競爭碼字,說明C與R的歐氏距離很大,即dj的可靠性很高;若C與R的歐氏距離很遠(yuǎn),說明dj的可靠性很高,
若找不到競爭碼字,則計(jì)算方法為
Wj = P dj 由上式可以看出,要計(jì)算外信息,還需計(jì)算13的值。|3 (m)用來控制軟輸出信息的輸出峰值范圍,它可以通過實(shí)驗(yàn)確定,也可以通過一些方法進(jìn)行估計(jì)。B的值可以通過不斷實(shí)驗(yàn)并修正錯誤來初始化。常采用簡化算法??梢酝ㄟ^軟輸入的可靠性值來估計(jì)P,對判決碼字D中沒有競爭碼字的各位的可靠性值取平均,這樣得到的13值準(zhǔn)確性要差一點(diǎn),但是易于實(shí)現(xiàn)。 計(jì)算出外信息的值后,將其存入外信息存儲模塊201中,便可以進(jìn)一步計(jì)算出軟輸出了。軟輸出的值即等于軟輸入的值加上外信息,艮卩
r' = r+w —次完整的迭代分為一次行譯碼和一次列譯碼,其具體譯碼步驟相同,行與列的交替譯碼便構(gòu)成了 BPTC的迭代譯碼過程如圖7所示。根據(jù)參數(shù)設(shè)置,進(jìn)行不同次數(shù)的迭代。最終輸出所得的譯碼碼字。并且Turbo乘積碼子碼的行和行,列和列之間的譯碼采用流水線結(jié)構(gòu),增加譯碼速度,提高吞吐量。 如圖8,9,10所示,給出了本發(fā)明的上述具體實(shí)施方案在隨機(jī)比特干擾(AWGN信道)條件下的誤碼率曲線。所采用的仿真條件均為BPSK調(diào)制,a {0. 0625,0. 125,0. 1875,
90. 25,0. 3125,0. 375,0. 4375,0. 5,0. 5625,0. 625,0. 6875,0. 75,0. 8125,0. 875,0. 9375, 1}。如圖8是采用不同長度子碼構(gòu)成的Turbo乘積碼(15,11)*(15,11)與(31, 26) * (31, 26)兩種TPC碼的譯碼性能。如圖9是是否增加校驗(yàn)位的TPC碼的譯碼性能。如圖10是迭代次數(shù)不同時的性能比較。隨著迭代次數(shù)的進(jìn)一步增加,譯碼性能的改善逐漸緩慢;當(dāng)?shù)螖?shù)增加到一定程度時,性能便基本保持不變,不在能得到改善。因此,我們在進(jìn)行譯碼時,需要選擇合適的迭代次數(shù),在取得最優(yōu)性能的同時,保證復(fù)雜度較低。 如上所述,本發(fā)明的最大特點(diǎn)是其對不同子碼構(gòu)成的Turbo乘積碼均可譯,綜合考慮速度和靈活性,本實(shí)施例選擇FPGA來測試這種通用的Turbo乘積碼譯碼器。但是該裝置的結(jié)構(gòu)化設(shè)計(jì)也可以用專用芯片(ASIC)實(shí)現(xiàn),在數(shù)據(jù)吞吐量小的情形下,還可以用數(shù)字信號處理器(DSP)實(shí)現(xiàn),另外,結(jié)合計(jì)算機(jī)軟件一般設(shè)計(jì)流程,利用軟件來實(shí)現(xiàn)也是可行的。 本發(fā)明是一種通用的Turbo乘積碼譯碼器及其方法。這里所述的方法與線路,彼此分離的單體部件可以完全是傳統(tǒng)的,我們要求將它們的組合作為發(fā)明進(jìn)行保護(hù)。以上所述僅為特定應(yīng)用場合的具體實(shí)施方式
,但本發(fā)明的真實(shí)精神和范圍不局限于此,任何熟悉本領(lǐng)域的技術(shù)人員可以修改單體部件的具體方法,實(shí)現(xiàn)不同應(yīng)用場合的Turbo乘積碼譯碼。本發(fā)明僅由后附權(quán)利要求書及其等效技術(shù)方案來限定,我們要求將這些作為本發(fā)明來保護(hù)。
10
權(quán)利要求
一種Turbo乘積碼的通用譯碼器,它的配置參數(shù)有Turbo乘積碼的子碼碼型、迭代次數(shù),其特征在于它至少包括初始信息存儲模塊(202),用于存儲每次譯碼需要的接收序列;外信息存儲模塊(201),用于存儲每次譯碼需要的和得到的外部軟信息;第一先入先出模塊(203)或第二先入先出模塊(206),用于暫時儲存譯碼的輸入序列;不可靠位計(jì)算模塊(204),根據(jù)外部配置參數(shù)中的不可靠位數(shù)對輸入序列進(jìn)行變換,得到代數(shù)譯碼的輸入序列;代數(shù)譯碼模塊(205),根據(jù)配置參數(shù)不同進(jìn)行不同的代數(shù)譯碼;度量比較模塊(207),通過比較代數(shù)譯碼模塊的輸出的歐式距離,得到最優(yōu)碼字D;外信息計(jì)算模塊(208),計(jì)算本次迭代的外部軟信息,提供給下一次迭代;控制模塊(209),對上述各種模塊的時序,參數(shù)選擇進(jìn)行控制;接口模塊(101),進(jìn)行參數(shù)設(shè)置;外信息存儲計(jì)算模塊(201)分別與第一先入先出模塊(203)、最不可靠位計(jì)算模塊(204)、外信息模塊輸入(208)相連接;初始信息存儲模塊(202)分別與第一先入先出模塊(203)、最不可靠位計(jì)算模塊(204)相連接;第一先入先出模塊(203)分別與外信息存儲計(jì)算模塊(201)、初始信息存儲模塊(202)、第二先入先出模塊(206)、度量比較模塊(207)相連接;最不可靠位計(jì)算模塊(204)分別與初始信息存儲模塊(202)、外信息存儲模塊(201)、代數(shù)譯碼模塊(205)相連接;代數(shù)譯碼模塊(205)分別與最不可靠計(jì)算模塊(204)、度量比較模塊(207)相連接;第二先入先出模塊(206)分別與第一先入先出模塊(203)、外信息模塊輸入(208)相連接;度量比較模塊(207)分別與第一先入先出模塊(203)、代數(shù)譯碼模塊(205)、外信息模塊輸入(208)相連接;外信息模塊輸入(208)分別與度量比較模塊(207)、第二先入先出模塊(206)、外信息存儲計(jì)算模塊(201)相連接;上述模塊由控制模塊(209)控制;在接口模塊(101)中進(jìn)行參數(shù)設(shè)置。
2. 根據(jù)權(quán)利要求1所述的一種Turbo乘積碼的通用譯碼器,其特征在于,所述的Turbo 乘積碼的子碼碼型可為最長碼長為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼,且縮短位 數(shù)為任意數(shù),最大值為該碼字的長度。
3. 根據(jù)權(quán)利要求1所述的一種Turbo乘積碼的通用譯碼器,其特征在于,所述的迭代次 數(shù)是根據(jù)譯碼延時及誤碼率設(shè)置的任意數(shù)。
4. 根據(jù)權(quán)利要求1所述的一種Turbo乘積碼的通用譯碼器,其特征在于,所述的外信息 存儲模塊(201),初始信息存儲模塊(202)的容量為64單元*64單元的,每個單元的容量為 其量化比特?cái)?shù)。
5. 根據(jù)權(quán)利要求1所述的一種Turbo乘積碼的通用譯碼器,其特征在于,所述的第一先 入先出模塊(203)或第二先入先出模塊(206)的容量為2*64單元,每個單元的容量為譯碼 輸入軟信息的量化比特,其中的讀出順序是數(shù)據(jù)寫入的順序,數(shù)據(jù)讀出后先入先出模塊內(nèi) 數(shù)據(jù)為空。
6. 根據(jù)權(quán)利要求1所述的一種Turbo乘積碼的通用譯碼器,其特征在于,所述的代數(shù)譯 碼模塊(205)包括分量碼碼長最大為64的任意漢明碼或擴(kuò)展?jié)h明碼及其縮短碼。
7. —種使用如權(quán)利要求1所述通用譯碼器Turbo乘積碼的通用譯碼方法其特征在于包 括以下步驟1) 參數(shù)化配置,根據(jù)需要在接口模塊設(shè)定Turbo乘積碼譯碼的二維子碼以及迭代次數(shù);2) 接收信道輸出的解調(diào)符號信息,將該次譯碼所需的接收信息序列存入初始信息存儲 模塊中,外信息存儲模塊初始信息為O,開始一次行或者列的迭代譯碼;3) 計(jì)算譯碼所需的序列信息,存入一塊先入先出模塊中,同時找到最不可靠的3位即 度量值最小的3位,將這3個碼字分別取0或l,得到8個候選碼字序列;4) 將這8個碼字在代數(shù)譯碼模塊中進(jìn)行代數(shù)譯碼,不同配置的代數(shù)譯碼方法不同,獲 得8個代數(shù)譯碼后的碼字;5) 將代數(shù)譯碼的輸出碼字和第一塊先入先出模塊的輸出送入度量比較模塊,找到歐式 距離最小的碼字,判為該次行或者列的最優(yōu)碼字,同時第二塊先入先出模塊讀入第一塊先 入先出模塊的輸出;6) 將第二塊先入先出模塊的輸出和度量比較模塊的輸出送入外信息計(jì)算模i央,計(jì)算該次該行或列迭代的外部軟信息,并存入外部軟信息存儲器中,該次行或者列譯碼完畢;7) 重復(fù)上述步驟,直到所有行或者列譯碼完畢,則進(jìn)行列或者行譯碼,整個完畢后一次 迭代結(jié)束;8) 重復(fù)上述步驟,根據(jù)參數(shù)配置,控制模塊控制整個過程直到整個迭代結(jié)束。
8.根據(jù)權(quán)利要求7所述的一種Turbo乘積碼的通用譯碼方法其特征在于,所述的 Turbo乘積碼子碼的行和行,列和列之間的譯碼采用流水線結(jié)構(gòu)。
全文摘要
本發(fā)明公開了一種Turbo乘積碼的通用譯碼器及其方法。該通用譯碼器由初始信息存儲模塊,外信息存儲模塊,不可靠位計(jì)算模塊,代數(shù)譯碼模塊,兩個先入先出存儲模塊,度量比較模塊,外信息計(jì)算模塊,譯碼控制模塊以及接口組成。它的譯碼參數(shù)可以任意自由配置即Turbo乘積碼的二維子碼,譯碼次數(shù)均可以任意選擇,能夠滿足各種通信系統(tǒng)對不同碼長、碼率、譯碼延遲和吞吐量的需求;該裝置的結(jié)構(gòu)化設(shè)計(jì)使用靈活既可用可編程邏輯器件實(shí)現(xiàn),也可用專用芯片實(shí)現(xiàn);該裝置多處采用流水線結(jié)構(gòu),提高了譯碼器的吞吐量。本發(fā)明兼顧了通用性,譯碼性能以及復(fù)雜度三個指標(biāo),可以方便靈活的用于各種碼長、碼率、實(shí)現(xiàn)平臺及誤碼率需求的通信系統(tǒng)。
文檔編號H03M13/29GK101777926SQ201010039650
公開日2010年7月14日 申請日期2010年1月12日 優(yōu)先權(quán)日2010年1月12日
發(fā)明者呂宣宣, 吳杰, 王志雄, 趙民建, 鄭晨, 陳軍波, 陳滬東 申請人:浙江大學(xué)