亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法

文檔序號:7514317閱讀:240來源:國知局
專利名稱:Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及信息傳輸中的前向糾錯編譯碼技 術(shù),是TPC編譯碼算法的一種新的FPGA實現(xiàn)方法。
背景技術(shù)
數(shù)據(jù)通信中,信道編譯碼是通信系統(tǒng)中的核心組成部分之一,它致力 于為系統(tǒng)提供更高的傳輸可靠性。Turbo乘積碼(Turbo Product Code,簡 稱TPC)編譯碼技術(shù)是近十余年來發(fā)展的一種差錯控制技術(shù),它是將Turbo 碼中迭代譯碼方法引入乘積碼(Product Code)譯碼方案中所構(gòu)成的新的 編碼技術(shù)。TPC具有非常好的糾錯能力,不僅在加性高斯白噪聲信道(AWGN) 中對系統(tǒng)性能有很大幅度的改善,在瑞利衰落信道(Rayleigh Fading Channel)中也能大大改善系統(tǒng)性能。
TPC屬于乘積碼,基本結(jié)構(gòu)通常如圖l所示。在乘積碼編碼中,先將輸 入信息ml排列成klXk2的矩陣,接著對第一列的數(shù)據(jù)做分組編碼(nl, kl, dl),然后依次完成k2列的分組編碼,構(gòu)成子碼長度為nlXk2。然后
將第一次編完的碼作為第二次編碼的輸入數(shù)據(jù),對第一行數(shù)據(jù)進行分組編 碼(n2, k2, d2),然后依次完成nl行的編碼,成為乘積碼,大小為nlXn2。 為適應(yīng)應(yīng)用需求,需要信道編碼方案提供更高的誤碼率性能和系統(tǒng)增 益,并且盡可能的提高譯碼的速度,以支持?jǐn)?shù)十Mbps到上百Mbps的信息處理速率,這對TPC的實現(xiàn)尤其是譯碼模塊的實現(xiàn)增加了很高的難度。現(xiàn) 有的TPC解決方案,信息處理速率大多在10Mbps到20Mbps (有個別解決方 案可達上百Mbps)。目前圍繞TPC編譯碼算法的研究,主要集中在如何降低 譯碼算法的復(fù)雜度,提高信息處理速率,同時保證比較高的譯碼性能。
另外,現(xiàn)有的TPC解決方案大多是各類專用IC以及各種高速信號通信 儀器,使用成本較高,應(yīng)用不便,靈活性差。而IP核(IP core)類則配 置比較繁瑣,成本也比較高,或者算法過于簡化,性能不高,而且由于沒 有核心代碼,不能根據(jù)開發(fā)需要進行自主修改。

發(fā)明內(nèi)容
針對上述技術(shù)問題,本發(fā)明提供一種Turbo乘積碼優(yōu)化編譯碼算法的 F GA實現(xiàn)方法,以降低軟判決譯碼的復(fù)雜度,降低譯碼器內(nèi)部的占空比,
提高可以支持的數(shù)據(jù)率。
一種Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法,包括以下步驟-
1) 編碼,待編碼數(shù)據(jù)傳輸至隨機存取內(nèi)存中,編碼器從隨機存取內(nèi)存 中逐行或逐列讀入,并采用Turbo乘積碼進行行或列編碼,所有行或列編 碼完畢后再逐列或逐行進行編碼,將編碼后的數(shù)據(jù)寫入輸出Ram中,當(dāng)輸 出Ram滿時,先輸出幀頭,然后讀出輸出Ram中的整塊數(shù)據(jù),數(shù)據(jù)輸出完 畢直到下一塊數(shù)據(jù)輸出前的時鐘空隙,以0或1或其他冗余信息補足;并 根據(jù)碼率需要,對信息位進行縮短;
2) 組幀,對編碼后輸出的數(shù)據(jù)進行組幀并發(fā)送;
3) 譯碼,對接收到的數(shù)據(jù)進行解幀和譯碼。
作為本發(fā)明的一種優(yōu)選方式,所述步驟1)中,隨機存取內(nèi)存為Rami和Ram2,具體步驟如下
待編碼數(shù)據(jù)傳輸開始后,1個信息塊長度的數(shù)據(jù)寫入Rami后,開始寫 入Ram2并且同時編碼器開始工作,編碼器從Rami中逐行或列讀入進行行 編碼,寫入輸出Ram;所有行或列編碼完畢后再逐列或行進行編碼,寫入輸 出Ram,在Raml讀完后,等1個信息塊長度的數(shù)據(jù)寫入Ram2后,在Ram2 中重復(fù)Rami同樣的操作,Rami和Ram2反復(fù)切換,當(dāng)輸出Ram滿時,先輸 出幀頭,然后讀出Ram中的整塊數(shù)據(jù)。
作為本發(fā)明的另一優(yōu)選方式,所述步驟l)中,編碼端實現(xiàn)的碼型包括 擴展?jié)h明碼(8,4), (16,11), (32,26), (64,57), (128, 120)和擴展BCH碼 (16,6), (32,21), (64,51), (128, 113)共9種基本碼型。
作為本發(fā)明的再一優(yōu)選方式,對信息位進行縮短的方式為按行縮短、 按列縮短或按行列信息位縮短,縮短的碼型為以下碼型中的一個
(32,26)X(30,24)或(30,24)X(32,26);
(32,21)X(31,20)或(31,20)X(32,26);
(30,24)X(32,21)或(32,21)X(30,24);
(30,24)X(32,21)或(32,21)X(30,24);
(64,57)X(63,56)或(63,56)X(64,57);
(64,51)X(61,48)或(61,48)X(64,51);
(61,48)X(63,56)或(63,56)X(61,48);
(61,48)X(64,57)或(64,57)X(61,48);
(64,51)X(63,56)或(63,56)X(64,51);
(128, 120) x (127, 112)或(127, 112) x (128, 120); (128, 113) x (127, 112)或(127, 112) x (128, 113)。作為本發(fā)明的再一優(yōu)選方式,所述步驟2)組幀中,使用32位或64 位的CAZAC序列作為幀頭。
作為本發(fā)明的再一優(yōu)選方式,對于幀之間的空白地帶,循環(huán)填充固定 序列,序列構(gòu)成為0、 1均勻分布的3至10位的較短序列。
作為本發(fā)明的再一優(yōu)選方式,所述固定序列的長度為6位。
作為本發(fā)明的再一優(yōu)選方式,所述步驟3)譯碼包括以下步驟-
31) 檢測幀頭,檢測到幀頭之后開始讀入一塊長度的數(shù)據(jù);
32) 對讀入的數(shù)據(jù)進行譯碼,譯碼采用基于伴隨式的SISO譯碼算法。 作為本發(fā)明的再一優(yōu)選方式,所述步驟32具體為,先計算伴隨式,如
果伴隨式為0則認(rèn)為傳輸沒有錯誤,直接輸出結(jié)果,否則按照圖4進行迭 代譯碼,迭代公式為W(m+l):W(mh"(m) +R(m),式中W(m)是上次迭代的輸 出信息,"(m), R(m)是本次迭代的輸入信息,W(m+1)是本次迭代的輸出, 迭代次數(shù)為4次到6次。
作為本發(fā)明的再一優(yōu)選方式,所述迭代次數(shù)為5次,接收到的輸入軟 信息為6位,所述譯碼按照chase算法進行譯碼并計算輸出信息,在Chase 算法中對于128碼型選擇最不可靠的6個位置,對于64碼型和32碼型選 擇最不可靠的4個位置。
本發(fā)明的有益效果為達到了較高的編碼性能,并且可以針對不同應(yīng) 用需求進行靈活配置。而且由于是軟核,通過并行使用多個譯碼單元可以 達到更高的數(shù)據(jù)速率,可用于高速數(shù)據(jù)通信。對于低速低資源應(yīng)用環(huán)境, 根據(jù)實際要求可以配置不同的軟件版本,目前已經(jīng)劃分為9個不同的基本 版本,資源占用從3千門到2.5萬門不等,對應(yīng)最大數(shù)據(jù)速率從低到高, 可以針對不同的系統(tǒng)要求進行配置。


圖1為TPC屬于乘積碼的基本結(jié)構(gòu);
圖2為本發(fā)明Turbo乘積碼優(yōu)化編譯碼算法的FPGA發(fā)送、接收方法實 施例流程圖3為本發(fā)明實施例中輸出Ram的信息位行縮短方式; 圖4為本發(fā)明實施例中軟判決迭代譯碼實現(xiàn)結(jié)構(gòu)示意圖; 圖5為本發(fā)明實施例中(64, 57) (64, 57) TPC編碼性能曲線。
具體實施例方式
如圖2所示, 一種Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法,包 括以下步驟 1)編碼
采用Raml、 Rami兩塊隨機存取內(nèi)存(Random Access Memory, RAM) 和輸出Ram,待編碼數(shù)據(jù)傳輸開始后,數(shù)據(jù)寫入Raml。 Rami寫滿時(1個 信息塊的長度),開始寫入Ram2并且同時編碼器開始工作,編碼器從Rami 中逐行讀入進行行編碼,寫入輸出Ram,即寫入圖3中的輸入矩陣(i叩ut army)和行奇偶校驗位(奇偶校驗1位);所有行編碼完畢后再逐列進行 編碼,寫入輸出Ram,即寫入圖3中的列奇偶校驗位(奇偶校驗2位)及奇 偶校驗位的奇偶校驗位(奇偶校驗2位)。在Rami讀完后,即1個信息塊 長度的信息讀完后,等待Ram2寫滿(也是1個信息塊的長度),在Ram2中 重復(fù)Raml同樣的操作,Rami和Ram2反復(fù)切換,以保證編碼輸入的流水性。 當(dāng)輸出Ram滿時,先輸出幀頭,然后讀出Ram中的整塊數(shù)據(jù)。數(shù)據(jù)輸出完畢直到下一塊數(shù)據(jù)輸出前的時鐘空隙,以0或1或其他冗余信息補足,以 滿足碼率要求。編碼端實現(xiàn)的碼型包括擴展?jié)h明碼(8,4), (16,11), (32, 26), (64,57), (128, 120)和擴展BCH碼(16, 6) , (32,21), (64,51), (128,113)共9種基本碼型,最大支持0.8789的碼率。實用中,碼率通常 采用0. 75、 0. 7、 0. 6等碼率,因此要對信息位進行縮短來得到需要的碼率。 常見的縮短方式有按行縮短,按列縮短,按行列信息位縮短等,圖3中信 息位同時縮短s行和s列。通過仿真和工程實踐,發(fā)現(xiàn)有幾種改進的縮短 碼型在衛(wèi)星通信和視距通信中有比較好的誤碼性能,而且信息塊是整字節(jié) 類型,在實際處理中有很多便利,特別適合這些應(yīng)用。這些特定的編碼類 型如下
1) (32,26)X(30,24)或(30,24)X(32,26);
2) (32,21)X(31,20)或(31,20)X(32,26);
3) (30,24)X(32,21)或(32,21)X(30,24);
4) (30,24)X(32,21)或(32,21)X(30,24);
5) (64,57)X(63,56)或(63,56)X(64,57);
6) (64,51)X(61,48)或(61,48)X(64,51);
7) (61,48)X(63,56)或(63,56)X(61,48);
8) (61,48)X(64,57)或(64,57)X(61,48);
9) (64,51)X(63,56)或(63,56)X(64,51);
9) (128, 120) x (127, 112)或(127, 112) x (128, 120);
10) (128, 113) x (127, 112)或(127, 112) x (128, 113)。 2)組幀
為了方便數(shù)據(jù)在信道上的非連續(xù)傳輸,就需要對編碼后的數(shù)據(jù)進行組幀。作為幀頭,其性能的好壞對譯碼端幀頭檢測有比較大的影響。所知的
一些產(chǎn)品和專利采用的多是類似PN碼之類作為幀頭,其缺陷在于有旁瓣電 平干擾。本發(fā)明采用的方法是使用32位或64位的CAZAC序列作為幀頭, 其優(yōu)點是自相關(guān)只有一個點上有值,也就是說完全沒有旁瓣干擾,對于幀 頭檢測非常有利。本發(fā)明采用的CAZAC序列用于TPC (Turbo乘積碼)的思 想,而非移動通信中用于TPC (Transmit Power Control)。對于幀之間的 空白地帶,采用全0或者全1時對于調(diào)制解調(diào)會帶來一定的不便,我們采 用了循環(huán)填充固定序列的方法,序列構(gòu)成為0, l均勻分布的較短的序列如 110100,優(yōu)點是IQ路信號不同(一路為100,另一路為110)有利于調(diào)制 解調(diào)同時0, 1分布較均勻。這種填充非全0,全1而且0, 1均勻分布的短 序列不限于上述給出的序列實例。
3)譯碼
31)檢測幀頭,即對收到的碼作自相關(guān)。檢測到幀頭之后開始讀入一 塊長度的數(shù)據(jù)。接口也采用Ram3和Ram4兩塊隨機存取內(nèi)存進行反復(fù)切換 的乒乓模式。
32 )在Ram滿后,譯碼器開始工作。譯碼端內(nèi)部可以使用多個子譯 碼器核心同步并行工作。本實施例中,譯碼采用基于伴隨式的SISO譯碼算 法,即先計算伴隨式,如果伴隨式為0則認(rèn)為傳輸沒有錯誤,直接輸出結(jié) 果,這樣簡化了算法,提高了譯碼速度。如果伴隨式不為0,則按照圖4開 始進行迭代譯碼,采用的行或列譯碼方案為軟判決迭代譯碼,也可以通過 參數(shù)設(shè)置采用硬判決譯碼。迭代公式為W(m+l^W(m)^(m) +R(m)。 W(m)是 上次迭代的輸出信息,R是接收到的輸入軟信息,《(m)、 6 (m)是量化參數(shù), R(m)是本次迭代的輸入信息,W(m+1)是本次迭代的輸出。譯碼器核心按照chase算法進行譯碼并計算輸出信息。迭代次數(shù)可以設(shè)置,通常采用4次到 6次迭代,多數(shù)情況下5次最為理想。通過大量的實驗表明,采用6位輸入 軟信息可保證較高的量化精度和較低的復(fù)雜度,實現(xiàn)量化精度和復(fù)雜度的 折衷。本實施例中優(yōu)選采用5次迭代和6位軟信息的參數(shù)設(shè)置。
譯碼器核心采用Chase算法,并對算法進行了改進。在不可靠位置的 選擇上,原方法是選擇最不可靠的S/2個位置。本發(fā)明在此基礎(chǔ)上,通過 工程實踐逐漸減小此范圍,最終得到結(jié)論,在此數(shù)字為6 (對128碼型)和 4 (對64碼型和32碼型),能夠在基本不損失性能的條件下最大限度的簡 化譯碼的復(fù)雜度,在發(fā)現(xiàn)錯誤后,按照錯誤數(shù)的奇偶性分別進行后續(xù)處理 以優(yōu)化算法結(jié)構(gòu)。
本發(fā)明在以上改進的基礎(chǔ)上,降低了資源占用率,相對于業(yè)界相似產(chǎn) 品,本發(fā)明的IP核(IP core)資源占用率大大降低10% 20%。同時保持 了比較高的編碼增益,典型實例如圖5所示,采用(64,57)(64,57)碼型, 在10E-6誤碼率下達到了 7. 8dB的編碼增益;6bit的軟信息位數(shù)保證了較 高的譯碼精度;譯碼模塊支持的速率較高,單獨使用一個譯碼單元最高可 以支持20Mbps的數(shù)據(jù)速率,達到了業(yè)界硬件TPC產(chǎn)品的平均水平。
權(quán)利要求
1、一種Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法,其特征在于包括以下步驟1)編碼,待編碼數(shù)據(jù)傳輸至隨機存取內(nèi)存中,編碼器從隨機存取內(nèi)存中逐行或逐列讀入,并采用Turbo乘積碼進行行或列編碼,所有行或列編碼完畢后再逐列或逐行進行編碼,將編碼后的數(shù)據(jù)寫入輸出Ram中,當(dāng)輸出Ram滿時,先輸出幀頭,然后讀出輸出Ram中的整塊數(shù)據(jù),數(shù)據(jù)輸出完畢直到下一塊數(shù)據(jù)輸出前的時鐘空隙,以0或1或其他冗余信息補足;并根據(jù)碼率需要,對信息位進行縮短;2)組幀,對編碼后輸出的數(shù)據(jù)進行組幀并發(fā)送;3)譯碼,對接收到的數(shù)據(jù)進行解幀和譯碼。
2、 根據(jù)權(quán)利要求1所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于所述步驟l)中,隨機存取內(nèi)存為Raml和Ram2,具體 步驟如下待編碼數(shù)據(jù)傳輸開始后,l個信息塊長度的數(shù)據(jù)寫入Raml后,開始寫 入Ram2并且同時編碼器開始工作,編碼器從Rami中逐行或列讀入進行行 編碼,寫入輸出Ram;所有行或列編碼完畢后再逐列或行進行編碼,寫入輸 出Ram,在Rami讀完后,等1個信息塊長度的數(shù)據(jù)寫入Ram2后,在Ram2 中重復(fù)Raml同樣的操作,Rami和Ram2反復(fù)切換,當(dāng)輸出Ram滿時,先輸 出幀頭,然后讀出Ram中的整塊數(shù)據(jù)。
3、 根據(jù)權(quán)利要求1或2所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA 實現(xiàn)方法,其特征在于所述步驟l)中,編碼端實現(xiàn)的碼型包括擴展?jié)h明 碼(8,4)' (16, 11), (32,26), (64,57), (128, 120)和擴展BCH碼(16, 6),(32,21), (64,51), (128, 113)共9種基本碼型。
4、根據(jù)權(quán)利要求3所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于對信息位進行縮短的方式為按行縮短、按列縮短或按 行列信息位縮短,縮短的碼型為以下碼型中的一個-(32,26)X(30,24)或(30,24)X(32,26);(32,21)X(31,20)或(31,20)X(32,26);(30,24)X(32,21)或(32,21)X(30,24);(30,24)X(32,21)或(32,21)X(30,24);(64,57)X(63,56)或(63,56)X(64,57);(64,51)X(61,48)或(61,48)X(64,51);(61,48)X(63,56)或(63,56)X(61,48);(61,48)X(64,57)或(64,57)X(61,48);(64,51)X(63,56)或(63,56)X(64,51);(128, 120) x (127, 112)或(127, 112) x (128, 120); (128, 113) x (127, 112)或(127, 112) x (128, 113)。
5、 根據(jù)權(quán)利要求4所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于所述步驟2)組幀中,使用32位或64位的CAZAC序列 作為幀頭。
6、 根據(jù)權(quán)利要求5所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于對于幀之間的空白地帶,循環(huán)填充固定序列,序列構(gòu) 成為0、 1均勻分布的3至10位的較短序列。
7、 根據(jù)權(quán)利要求6所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于所述固定序列的長度為6位。
8、 根據(jù)權(quán)利要求4至7中任一權(quán)利要求所述的Turbo乘積碼優(yōu)化編譯 碼算法的FPGA實現(xiàn)方法,其特征在于所述步驟3)譯碼包括以下步驟31) 檢測幀頭,檢測到幀頭之后開始讀入一塊長度的數(shù)據(jù);32) 對讀入的數(shù)據(jù)進行譯碼,譯碼采用基于伴隨式的SIS0譯碼算法。
9、 根據(jù)權(quán)利要求8所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于所述步驟32具體為,先計算伴隨式,如果伴隨式為0則認(rèn)為傳輸沒有 錯誤,直接輸出結(jié)果,否則按照圖4進行迭代譯碼,迭代公式為 W(m+l)=W(m)*"m) +R(m),式中W(m)是上次迭代的輸出信息,"(m) , R(m) 是本次迭代的輸入信息,W(m+1)是本次迭代的輸出,迭代次數(shù)為4次到6 次。
10、 根據(jù)權(quán)利要求9所述的Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn) 方法,其特征在于所述迭代次數(shù)為5次,接收到的輸入軟信息為6位, 所述譯碼按照chase算法進行譯碼并計算輸出信息,在Chase算法中對于 128碼型選擇最不可靠的6個位置,對于64碼型和32碼型選擇最不可靠的 4個位置。
全文摘要
一種Turbo乘積碼優(yōu)化編譯碼算法的FPGA實現(xiàn)方法,包括以下步驟1)編碼,待編碼數(shù)據(jù)傳輸至隨機存取內(nèi)存中,編碼器從隨機存取內(nèi)存中逐行或逐列讀入,并采用Turbo乘積碼進行行或列編碼,所有行或列編碼完畢后再逐列或逐行進行編碼,將編碼后的數(shù)據(jù)寫入輸出Ram中,當(dāng)輸出Ram滿時,先輸出幀頭,然后讀出輸出Ram中的整塊數(shù)據(jù),數(shù)據(jù)輸出完畢直到下一塊數(shù)據(jù)輸出前的時鐘空隙,以0或1或其他冗余信息補足;并根據(jù)碼率需要,對信息位進行縮短;2)組幀,對編碼后輸出的數(shù)據(jù)進行組幀并發(fā)送;3)譯碼,對接收到的數(shù)據(jù)進行解幀和譯碼。本發(fā)明可以針對不同應(yīng)用需求進行靈活配置。通過并行使用多個譯碼單元可以達到更高的數(shù)據(jù)速率,可用于高速數(shù)據(jù)通信。
文檔編號H03M13/00GK101483443SQ200810207929
公開日2009年7月15日 申請日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者丁勇飛, 徐丁海, 裕 李, 沈凱虹, 韜 牛, 石吉利 申請人:中國航空無線電電子研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1