Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)_圖文_第1頁
Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)_圖文_第2頁
Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)_圖文_第3頁
Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)_圖文_第4頁
Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)_圖文_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、西安電子科技大學(xué) 碩士學(xué)位論文 Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn) 姓名:靳凡申請(qǐng)學(xué)位級(jí)別:碩士 專業(yè):通信與信息系統(tǒng) 指導(dǎo)教師:白寶明 20090101摘要Turbo碼是一季孛逼近Shannon容量限的編碼方式,它是信道編碼理論領(lǐng)域的一 項(xiàng)重要研究成果。由于其優(yōu)異的性能,Turbo碼在通信領(lǐng)域得到了廣泛的應(yīng)用。本 文以實(shí)現(xiàn)Turbo碼編譯碼器為冒標(biāo),對(duì)Turbo碼的編譯碼算法和硬件實(shí)現(xiàn)進(jìn)行了深 入的學(xué)習(xí)和研究。首先介紹了Turbo碼的編譯碼原理,分孝廳了影響Turbo碼性能的幾個(gè)關(guān)鍵因素, 并通過C語言的仿真進(jìn)行了驗(yàn)證。其次在FPGA實(shí)現(xiàn)方面,根據(jù)硬件特點(diǎn)對(duì)譯碼 算法進(jìn)行了分析、改進(jìn),使用了滑

2、動(dòng)窗的譯碼方式,降低了硬件資源占用率和處 理時(shí)延。采用摸塊化的設(shè)計(jì)思想,針對(duì)譯碼時(shí)控制較為復(fù)雜的問題,使用了三層 的控制方式,使整個(gè)系統(tǒng)的聯(lián)合調(diào)試更加容易,各模塊之間的關(guān)系得以簡化。在 設(shè)計(jì)和實(shí)現(xiàn)各子模塊時(shí),權(quán)衡硬件實(shí)現(xiàn)復(fù)雜度與處理時(shí)延,努力提高模塊的運(yùn)用 性并降低運(yùn)算的復(fù)雜度。最后在實(shí)際的硬件平臺(tái)上進(jìn)行驗(yàn)證,得到了理想的結(jié)果。關(guān)鍵詞:Turbo碼 編譯碼器 滑動(dòng)窗 FPGAAbstractTurbo codes ar e a class of coding schemes which can approach the ShannonS capacity bound.It is for the

3、ir outstanding performances that Turbo codes have been widely used intelecommunications?; aim of this paper is to implement the encoder and decoder of Turbo codes with FPGA.The encoding and decoding algorithms and how to implement them with hardware have been discussed in the paper.Firstly,the theo

4、ry of the encoding and decoding of Turbo codes are introduced, followed by an analysis of some factors that call affect the performance of Turbo codes and some simulations with C language。Secondly,in aspect of the FPGA implementation,a study of the algorithm is given according to the feature of the

5、FPGA. And the sliding-window method is used to the algorithm to modify it,which can reduce the resource requirement and the processing delay.The modular design method is applied in the whole system。According to the complicated problems of the control in the decoding,the three-layer control mode is u

6、sed.Therefore the joint debugging of the whole system will be much easier and the relationship among the modules can be simplified.A tradeoff is made between the hardware implementation complexity and the processing delay when designing and implementing each submodule,with the aim of increasing the

7、generality and reducing the computational complexity.Finally,the codec is verified on the practical hardware platform,which achieves an ideal result.Keyword.Turbo codes Encoder and decoder Sliding-window FPGA創(chuàng)新性聲明秉承學(xué)校嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)和優(yōu)良的科學(xué)道德,本人聲明所呈交的論文是我個(gè) 人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除了文中特 別加以標(biāo)注和致謝中所羅列的內(nèi)容以外,論文中

8、不包含其他人已經(jīng)發(fā)表或撰 寫過的研究成果;也不包含為獲得西安電子科技大學(xué)或其它教育機(jī)構(gòu)的學(xué)位 或證書而使用過的材料。與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已 在論文中徽了明確的說明并表示了謝意。申請(qǐng)學(xué)位論文與資料若有不實(shí)之處,本人承擔(dān)一切相關(guān)責(zé)任。本人簽名:蘭車L關(guān)于論文使用授權(quán)的說明本人完全了解西安電子科技大學(xué)有關(guān)保留和使用學(xué)位論文的規(guī)定,即:研究生在校攻讀學(xué)位期間論文工作的知識(shí)產(chǎn)權(quán)單位屬西安電子科技大學(xué)。本 人保證畢業(yè)離校后,發(fā)表論文和使用論文工作成果時(shí)署名單位仍然為西安電 子科技大學(xué)。學(xué)校有權(quán)保留送交論文的復(fù)印件,允許查閱和借閱論文;學(xué)校 可以公布論文的全部或部分內(nèi)容,可以允許采震影

9、印、縮印或其它復(fù)印手段 保存論文。同時(shí)本人保證,畢業(yè)后結(jié)合學(xué)位論文研究課題再撰寫的文章律 署名單位為蘸安電子科技大學(xué)。(保密麴論文在解密后遵循此規(guī)定本人簽名:塹墾 翩魏圭趔 日期望:至:!圣 匿期第一章縫論第一章緒論本章首先論述了數(shù)字通信與信道編碼的關(guān)系,其次介紹了編碼系統(tǒng)的基礎(chǔ)知識(shí) 信道編碼理論和Shanon限,之后說明了Turbo碼的歷史發(fā)展和目前情況,最 后對(duì)作者所做主要工作和本文內(nèi)容安排做出了總結(jié)。1.1數(shù)字通信和信道編碼逶信系統(tǒng)的鼷的是將信息從發(fā)送端高效、可靠、安全地傳送到接收端。囂焉 就引出了衡量通信系統(tǒng)性能的兩個(gè)主要指標(biāo)有效性和可靠性。通常,有效性 用傳輸速率震比特艚道符號(hào)衡量,

10、可靠性用錯(cuò)誤斃特率(BER衡量。但是,實(shí)際 信道中嗓聲的存在總會(huì)對(duì)傳輸信息產(chǎn)生干擾,從而可能降低通信可靠性。為了保 證通信的可靠性,需要采取一定的措施來減少干擾的影響,信道編碼或糾錯(cuò)碼就 是一種保證通信可靠性的重要技術(shù)。對(duì)于數(shù)字通信系統(tǒng),其其體做法為,在消息 序列中加入一定的冗余,使得編碼器輸出序列之間滿足一定的約束關(guān)系,接收端 可以根據(jù)這些約束關(guān)系將受干擾麗如現(xiàn)的錯(cuò)誤檢測(cè)或糾正過來。囂此,消息從發(fā) 送端發(fā)出后,首先要經(jīng)過信道編碼,之后再經(jīng)過調(diào)制才能發(fā)送出去;當(dāng)然,接收 端在解調(diào)后,也要經(jīng)過譯碼才可以恢復(fù)出原始消息。編碼信道圖1.1數(shù)字透信系統(tǒng)靜基本組成之前人們普遍認(rèn)為:通信系統(tǒng)的可靠性與有效

11、性是一對(duì)不可調(diào)和的矛盾,在 有擾通信信道上實(shí)現(xiàn)任意小的錯(cuò)誤概率的信息傳輸?shù)奈ㄒ煌緩骄褪前褌鬏斔俾式?低至零【1】。而在1948年,Shannon信息與編碼理論的奠基性論文“通信的數(shù)學(xué)理 論發(fā)表之后【21,徹底改變了這一觀點(diǎn)。他首次提出了在有擾信道中實(shí)現(xiàn)可靠通信 的方法,指出實(shí)現(xiàn)有效麗可靠地傳輸信息的途徑是編碼。根據(jù)Shannon的信息傳 輸理論,數(shù)字通信系統(tǒng)的基本組成如圖1.1所示【3】,分為信源、編碼器、信道、譯 碼器和信宿五個(gè)部分,編碼器又可分為信源編碼器和信道編碼器兩部分??梢娮?Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)為通信系統(tǒng)的重要一環(huán),信道編碼是較合理的解決通信有效性和可靠性這對(duì)矛盾 的關(guān)

12、鍵,也是實(shí)現(xiàn)通信系統(tǒng)經(jīng)濟(jì)性所必需的。但是,Shannon的信道編碼定理僅證 明了這種碼的存在性,在實(shí)際系統(tǒng)中如何實(shí)現(xiàn)信道編碼仍是人們需要繼續(xù)研究的。1.2信道編碼定理和Shannon限1.2.1信道編碼定理信道編碼定理【4】:任意離散無記憶信道都存在稱之為信道容量的信息傳輸速率 上界,它表示信道傳送信息的最大能力。給定一個(gè)容量為C的信道,只要信息傳 輸速率R小于C,就肯定存在一個(gè)編碼方案,使譯碼錯(cuò)誤概率P隨著編碼長度的 增加而變得任意小:反之,則無論采用何種編碼方式都不能保證錯(cuò)誤概率任意小。 這雖然只是一個(gè)存在性定理,只給出了信息傳輸速率的上限,但卻為人們指明 了方向,驅(qū)使著人們不斷研究,使傳

13、輸速率一步步地向信道容量靠近。1.2.2Shannon限Shannon限是衡量系統(tǒng)性能的標(biāo)準(zhǔn),對(duì)各種信道編碼方式進(jìn)行性能比較時(shí),通 常都是將其與對(duì)應(yīng)碼率的Shannon限比較。使用不同調(diào)制方式時(shí),容量限也會(huì)不 同,因此有Shannon容量限和某種調(diào)制方式的容量限之分。下面對(duì)AWGN(加性 高斯白噪聲信道下的容量限作出介紹。AWGN信道是通信理論中最重要的信道模型之一,該信道上只有加性噪聲的 干擾,加性噪聲是均值為0和方差為仃2的高斯隨機(jī)變量。1948年Shannon在其論文2】中推導(dǎo)的AWGN信道下的信道容量為:。川。92(1+幫(1-1 式中C是信道容量(單位為bit/s,W是信道帶寬,只是

14、信號(hào)的平均功率,o是噪聲的單邊功率譜密度,P,/WNo是信噪比。在數(shù)字通信系統(tǒng)中,毛是每信息比特 需要的傳輸能量。礦C=1。g:(1+諺C憊 (1_2 墨:2clw-1(1-3Nqc|wF 2c/g一1絲=lim二二=In2=-1.6dB (1.4 No C/W雹C l W第一章縫論 3因此,E/0一1.6dB時(shí)就可以實(shí)現(xiàn)AWGN信道下的錯(cuò)誤概率任意小,這是 帶寬無限F AWGN信道的傳輸能力上限,稱為Shannon限。在發(fā)送信號(hào)等概時(shí),不同調(diào)制方式下的信道容量限:1幽 M一-! |+iv/一a。|一|搖|c娟92M一寺毋l092exp(L二bits/signal(1-5 ?!癷=0j=o 。

15、0式中掰代表發(fā)送字母表大小,a是發(fā)送信號(hào),n是均值為零、方差為0/2的 高斯噪聲隨機(jī)變量,E表示期望運(yùn)算, 2=E,EM。1.3Turbo碼的國內(nèi)外研究狀況自從Shannon的信道編碼定理提出以來,信道編碼技術(shù)一直是數(shù)字通信系統(tǒng)研 究的核心問題之一,并逐漸的成為了現(xiàn)代通信系統(tǒng)和無線通信系統(tǒng)中的關(guān)鍵技術(shù)。 在早期的研究階段,人們致力于通過代數(shù)方法實(shí)現(xiàn)糾錯(cuò)編碼,有限域、有限幾俺、 數(shù)論等數(shù)學(xué)理論都成為了研究糾錯(cuò)編碼的主要工具。這一情況持續(xù)到了1993年, 當(dāng)C.Bcrrou等人在醇C93上提出Turbo碼溪同時(shí)才改變了這一狀況。Turbo碼又稱并行級(jí)聯(lián)卷積碼(PCCC,它巧妙地將卷積碼和隨機(jī)交織器

16、結(jié)合在 起,實(shí)現(xiàn)了隨機(jī)編碼的思想,同時(shí),采用軟輸出迭代譯碼來逼近最大似然譯碼。 當(dāng)其采用約束長度為5的RSC(遞歸系統(tǒng)卷積碼作為分量碼、大小為65535的 隨機(jī)交織器和l/2碼率時(shí),經(jīng)過18次迭代,就可在最/o=0。7如的情況下使誤比 特率(BER小于10-5,餓能已經(jīng)十分接近Shannon限(1/2碼率下的Shannon限 為0dB。這一優(yōu)異的性能立刻引起了廣泛的反應(yīng),隨后人們對(duì)其進(jìn)行研究,迭代 譯碼思想逐漸成為信道編碼研究的熱點(diǎn),也使人們重薪發(fā)現(xiàn)了旱在1962年就提出 的LDPC剮7】【8】。通過J.Hagenauerl9】等人的總結(jié),迭代譯碼思想上升為現(xiàn)在我們所 熟知的Turbo原理(T

17、urbo principle。露時(shí)各種各樣的類Turbo碼紛紛涌現(xiàn),如:串行級(jí)聯(lián)卷積碼【lo】;基于擴(kuò)展圖(expander黟aphs有漸近好糾錯(cuò)性能的擴(kuò)展碼111.I; 有線性的編碼復(fù)雜度,較容易實(shí)現(xiàn)快速編碼的重復(fù)累積碼【12】fl 3】等。麗且Turbo碼 的思想與其他技術(shù)結(jié)合也產(chǎn)生了很好的效果,如Turbo均衡技術(shù)p鰳、Turbo.TCMl20】拙甘O經(jīng)過十幾年的研究,Turbo碼的不僅在理論上有許多成果f1毒鄹獾1翻,在實(shí)際中 也有了廣泛的應(yīng)用。目前Turbo碼已是第三代移動(dòng)通信系統(tǒng)的信道編碼方案之, WCDMA、CDMA2000和TD.SCDMA三個(gè)標(biāo)準(zhǔn)中的信道編碼都是用了Turbo

18、瑪。 在無線城域網(wǎng)的IEEE802.16e17】草案中,Turbo碼也與LDPC碼一起作為編碼調(diào)制 的備選方案。這些都促使了Turbo碼一步步地邁向?qū)嵱没A段。Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)1.4本文的研究背景、研究工作和內(nèi)容安排深空通信的信道特征是接收信噪比很低,而可用的信道帶寬相對(duì)較寬。在這種 功率受限信道上實(shí)現(xiàn)可靠通信,需要采用高增益的信道編碼技術(shù)。當(dāng)數(shù)字信號(hào)采 用相干調(diào)制解調(diào)技術(shù),無信道編譯碼時(shí),滿足10一,E/0理論值為10.5dB,若 采用(275,233RS碼與(15,1/4卷積碼級(jí)聯(lián)(伽利略號(hào)探測(cè)器就可以獲得 約9.6dB的增益??梢娧芯扛咝阅芎凸β氏男〉募m錯(cuò)編碼系統(tǒng)是非常

19、必要的。 Turbo碼具有逼近Shannon容量限的優(yōu)異性能,被CCSDS18】(美國空間數(shù)據(jù) 系統(tǒng)顧問委員會(huì)作為深空通信信道編碼的標(biāo)準(zhǔn)之一,隨著要求更高的數(shù)據(jù)速率 和更多的同時(shí)任務(wù)數(shù),未來的深空通信必須采用具有高編碼增益的信道編碼方式。 本文主要結(jié)合作者在實(shí)驗(yàn)室參與的項(xiàng)目,對(duì)適合在深空通信中使用的Turbo碼 進(jìn)行研究,通過仿真得出適合硬件實(shí)現(xiàn)的量化方式及譯碼算法,降低了硬件實(shí)現(xiàn) 所需資源,并在FPGA上予以實(shí)現(xiàn)。文章內(nèi)容安排如下:第一章介紹信道編碼以及Turbo碼的發(fā)展過程;第二章介紹Turbo碼的編碼原 理及編碼器各組成部分;第三章闡述了Turbo碼的譯碼原理與譯碼器結(jié)構(gòu),同時(shí)分 析了譯

20、碼的相關(guān)算法,并對(duì)各種影響Turbo碼性能的因素進(jìn)行分析和仿真;第四章 給出在FPGA上的實(shí)際硬件實(shí)現(xiàn)方案和性能結(jié)果:第五章對(duì)全文進(jìn)行總結(jié),并提 出下一步工作方案。第二章Turbo碼的編碼纂瑗 5第二章Turbo碼的編碼原理本章首先介紹Turbo碼編碼器原理與結(jié)構(gòu)框圖,其次以交織器為重點(diǎn),對(duì)編碼 器的各組成部分的特點(diǎn)、功能做出了詳細(xì)說明。2。l Turbo碼的編碼原理2.1.1Turbo碼的編碼原理與框圖Turbo碼是由兩個(gè)遞歸系統(tǒng)卷積碼(RSC經(jīng)過并行級(jí)聯(lián)組成的。圖2.1給出了一 個(gè)典型的Turbo碼編碼器框圖,其中兩個(gè)分量碼通過一個(gè)交織器級(jí)聯(lián)起來。對(duì)予輸 入信息比特,兩個(gè)分量碼編碼器工作在

21、相同的時(shí)鐘上,只是輸入的信息比特的順 序不同,因此產(chǎn)生的輸出比特也不相同。強(qiáng)2。1Turbo碼編碼器的基本結(jié)構(gòu)輸入信息比特序列U=(%,U:,材,輸出編碼比特序列為c=(q,乞,c, 其孛&拳fc:,孝,蠢聲,lkN。第一個(gè)分量碼編碼器直接對(duì)原始的信息序列進(jìn)行 編碼,第二個(gè)分量碼編碼器對(duì)經(jīng)過交織后的信息序列進(jìn)行編碼,從而分別產(chǎn)生了 兩個(gè)校驗(yàn)位序列c和0尹。假定圖2。l中兩個(gè)分量編碼器的碼率均為l趁,由于兩 個(gè)分量碼都是系統(tǒng)碼,只需將信息比特傳輸次即可,因此總的碼率為R=1/3。 為了提高Turbo碼的碼率,除可以選用高碼率(如2/3碼率的分量碼外,還可以采 耀刪余(puncturing技術(shù)從這

22、兩個(gè)校驗(yàn)序列中周期性地捌除一些校驗(yàn)位,然贏再 與信息序列c:=“復(fù)用在一起組成編碼器輸出c,再傳給調(diào)制器。2.1.2編碼器主要組成1分量碼從差錯(cuò)控制編碼理論【21】可知,非系統(tǒng)卷積碼(NSC的BER性能在高信嗓比 時(shí)比約束長度相同的非遞歸系統(tǒng)碼要好,而在低信噪比時(shí)情況卻正好相反。遞巋6Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)系統(tǒng)卷積(RSC碼綜合了NSC碼和系統(tǒng)碼的特性,雖然它與NSC碼具有相同的 trellis結(jié)構(gòu)和自由距離,但是在高碼率(R。2/3的情況下,對(duì)任何信噪比,它 的性能均比等效的NSC碼要好。所以,Turbo碼通常采用遞歸系統(tǒng)卷積碼作為其 分量碼。圖2.2為一種典型的(2,1,5遞歸系

23、統(tǒng)卷積碼。圖2.2典型的遞歸系統(tǒng)卷積碼2交織器交織器是實(shí)現(xiàn)Turbo碼近似隨機(jī)碼的關(guān)鍵,它實(shí)際上是一組映射關(guān)系。交織器 是在RSC2編碼之前將信息序列中的個(gè)比特的位置進(jìn)行置換,從而減小分量編 碼器輸出的校驗(yàn)序列的相關(guān)性,重塑碼的重量分布。交織器的具體內(nèi)容將在下一 節(jié)給出。3刪余刪余是提高碼率的手段之一,其實(shí)質(zhì)上是有規(guī)律的將編碼器輸出信息中的部分 比特刪除,而被刪除比特的個(gè)數(shù)最終決定了Turbo碼的碼率。在實(shí)現(xiàn)刪余時(shí),需要 明確被刪除比特的位置,一般用刪余矩陣P來表示。其中第m行的“0表示第m 個(gè)序列的相應(yīng)位的比特被刪除,反之,“1”則表示相應(yīng)位的比特被保留。P:.:?_|例如,在分量碼為1/2

24、碼率時(shí),采用刪余矩陣 Lu 1J,即可得到碼率同樣 是1/2的Turbo碼。該P(yáng)矩陣表示刪去來自RSCl的校驗(yàn)序列c。1p的偶數(shù)位置比特 與來自RSC2的校驗(yàn)序列q2P的奇數(shù)位置比特。這樣,采用刪余技術(shù)后,Turbo編 碼器在七時(shí)刻的輸出為吼=(c:,其中c。p由c。lp和p交替組成。2.2Turbo碼的交織器Turbo碼系統(tǒng)中,交織器是非常重要的組成部分,很大程度的影響著Turbo 碼的性能。其主要作用是減小校驗(yàn)序列的相關(guān)性,重塑碼的重量分布,進(jìn)而在迭 代譯碼過程中降低誤比特率。另一方面,通過交織,使得編碼序列在長為2N或3N第二耄Turbo碼憋編碼原理 7(不使用刪余比特的范圍內(nèi)具有記憶性

25、,從而由簡單的短碼得到了長碼。當(dāng)交 織器充分大時(shí),Turbo碼就具有近似于隨機(jī)長碼的特性。交織器的設(shè)計(jì)遵循以下幾 個(gè)重要準(zhǔn)則例:最大程度地置亂原數(shù)據(jù)排列順序,避免置換前楣距較近的數(shù)據(jù)在置換后仍 相距較近,特別是避免置換前相鄰數(shù)據(jù)在置換后再次相鄰。盡可能避免與同信息位直接相關(guān)的兩個(gè)分量碼編碼器中的校驗(yàn)位均被 刪除。對(duì)于不歸零的編碼器,交織器設(shè)計(jì)時(shí)要避免出現(xiàn)“尾效應(yīng)”圖案。在滿足上述要求的交織器中蔣選擇一個(gè)好的交織器,饅碼字之聞的最小距 離(或自由距離盡可能大,而重量為最小距離的碼字?jǐn)?shù)要盡可能少,以 改善及函O碼在高信嗓比時(shí)的性能。2.2.量規(guī)則交織器1分組交織器這是最簡單韻一種交織器,其交織過程

26、為:將信息序列看作一個(gè)矩陣,信息按 行寫入,按列讀出,從而實(shí)現(xiàn)交織的功能。經(jīng)過這樣的置換,信息序列的首尾比 特位置在交織前蜃僳持不變,交織蜃的距離特性呈均勻分布。讀寫 O l 23 4567 8910王圭 12131415圈2.3行寫歹|j讀的分組交織器2分組螺旋交織器分組螺旋交織器將信息序列按行順序?qū)懭肓?玎矩陣,其中m與玎互質(zhì),之后從 矩陣的左上角開始蠢右下焦讀取數(shù)據(jù),每向下一行溺時(shí)右移一位。交織過程如圖 2.4所示。分組交織器實(shí)現(xiàn)簡單,對(duì)短序列交織效果較好,但總的來說交織性能不 好,交織恁對(duì)信息序列的去糖關(guān)也不徹底。Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)2.2.2偽隨機(jī)交織器啼第一個(gè)序列 .

27、第二個(gè)序列 -第三個(gè)序列圖2.4分組螺旋交織器偽隨機(jī)交織器是指交織映射隨機(jī)生成的交織器。長度為的偽隨機(jī)交織器共 有!種可能的交織形式。偽隨機(jī)交織器可以這樣產(chǎn)生:首先在個(gè)整數(shù)中等概的 隨機(jī)選擇一個(gè)整數(shù),作為第一個(gè)比特交織后的位置,然后從剩下的一1個(gè)整數(shù)中 同樣等概地隨機(jī)選擇一個(gè)整數(shù),作為第二個(gè)比特交織后的位置,如此往復(fù),直到 個(gè)整數(shù)都選完為止。但這樣產(chǎn)生出的交織器性能不一定會(huì)好,所以還需對(duì)其進(jìn)行 進(jìn)一步優(yōu)化。下面介紹幾種典型的偽隨機(jī)交織器。1S隨機(jī)交織器S隨機(jī)交織器的產(chǎn)生,是為了使交織前相鄰信息位在交織后距離足夠大,從而 最大程度的打亂原序列的相關(guān)性。其中的S就是指交織前相鄰的S個(gè)比特在交織 后

28、的最小距離。對(duì)于具體的方法,只需在每次產(chǎn)生隨機(jī)數(shù)后判斷是否與前面的數(shù) 跽厚距離大于S即可。但S必須滿足 V 2,否則算法不能收斂。2模k交織器在Turbo碼中為了提高編碼效率,通常使用刪余操作將碼率提高。但是,一般 情況下,交織后對(duì)校驗(yàn)比特的刪余通常會(huì)導(dǎo)致對(duì)信息比特的不等差錯(cuò)保護(hù)。這是 因?yàn)榻?jīng)過交織和刪余后,某些信息比特會(huì)有相應(yīng)的兩個(gè)校驗(yàn)比特,而另一些信息 尸:-10比特則沒有任何一個(gè)相應(yīng)的校驗(yàn)比特。例如,當(dāng)采用刪余矩陣 L01j得到碼率 1/2的Turbo碼時(shí),就會(huì)產(chǎn)生圖2.5的現(xiàn)象。第二章Turbo碼的編碼原壤 9信息序列眥燃羅匝豆工丑虱二匝工丑骼的校駿序列匡三E二工二至二I互二二二二三二

29、衛(wèi)I :.:.。j . .,.。.,。.?!?.:.。.:i l . .一I . .J . .。.。.i 。 .。.。.。.。.j . .一 口撇置因、1廠偶數(shù)髓岡j圖2.5菲模2交織器所造成的影響從圖中可看出,“2”對(duì)應(yīng)的的兩個(gè)校驗(yàn)比特都被保留了,而“l(fā)對(duì)應(yīng)的兩個(gè) 校驗(yàn)比特都被測(cè)除??梢?經(jīng)過隨機(jī)交織器交織之瑟,測(cè)余時(shí)對(duì)校驗(yàn)L-t特的刪余 是不均勻的。而如果采用奇偶交織器,使奇位置的比特交織后還在奇位置,偶位 置的斃特還在偶位置,就霹確保每個(gè)信息毖特都有且僅有一個(gè)校驗(yàn)比特,從面對(duì) 信息比特講行均勻傈護(hù)。蘩三章Turbo瓣黲鐸璐爨囊愛冀凌簍三塞Turbo璃譯鷸熏建愛冀洼本章首先念錙Turbo鶴

30、的譯鷓崽想和綣掬楗鼴,其次余髂櫞堆蟪MAP纂法, 蔑葵茨避穗蒸稼萋渙,之詹分贊死夸影德Turbo襤巍鷥溪索,并瓣纛囂糞魏滾,舞 之艚的硬件裊現(xiàn)提供了依據(jù)。3。董Turbo褐的譯弱原瑗舞糞爹鬢遴,巢鬻鬻衾搜謇簿融臻褥器囊蠹辯蓊囂瓣囊舞瓷囂,糞棗 出中和妒交替組成。經(jīng)過儲(chǔ)道傳輸、解調(diào),接收機(jī)踐配濾波囂在意時(shí)刻的輸出 慕襻蓬舞羚黼囂,菇,鐸毽爨蕊餐務(wù)轆爨蓯筵攘浚疼黧褒蕊詩發(fā)遴蔣號(hào)e闡3.1軟輸入軟輸出譯鶴器(smo DecoderTurbo鞲譯褥簍懿萋零舞褥黧纛薹,藿囂零。寮辮藩個(gè)輳黎入耬贛篷冀臻浮 鶴器DECl和DEC2串行級(jí)聯(lián)組成,交雙器與編碼器中所使用的交織器相同。譯 羈囂DECt辯努囊璃RS

31、Cl遂行囊毽囂褥,產(chǎn)奎蓑予霪塞摻裂孛每一爨蟄瓣器陵糕 率信怠,并將篡中的掰新稽患?jí)呀?jīng)過交織送給DEC2.譯褥器DEC2將此傣息作為 是驗(yàn)蕊惑,對(duì)分爨鵑RSC2避抒最鏈譯褥,產(chǎn)生燕子交織囂靜信惑痔鰳孛簿一斃黲 懿囂虢概率德慰,然藉禱蒸率瓣群新藩崽弦楚避辯交鬟遴徐DECI,避苻下淡譯 碼。這樣,經(jīng)過多次迭他,DECl蠛DEC2新產(chǎn)生的外信息趨予穩(wěn)定,后驗(yàn)概攀比 囊遂辮避逶予瓣整個(gè)瓣瓣豢太簸熬譯褥。. 假定Turbo碼譯鸝器的接收序列為y蕊(,yP,Y趣接收判的信息序列,yp是 搜羧寒囊;攘袋棗黧歹縫鬢襄囂瑟褥囊蘸令蒺濺零囊少爹一露;秘2尹燃壤多tlg露gN,分別送給DECl和DEC2。予是,兩個(gè)軟

32、輸出譯碼器的輸入序礎(chǔ)分別為: DECl:Y蝰囂8,1筘 麥 DEC2:Y2端九y2筘 (3-2 舞了嫠潺器番瓣鼗蔣鑲諉纂搴爨夸,狡攥鬟丈器夔囊褰凇浮薅湊鬻,Turbo譯褥器酌最往譯碼策略是,截?fù)?jù)接稅序猁Y計(jì)算饜驗(yàn)概攀(APPTurbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)P(=p(utym,Y2:MAP rule:五=arg!悠p(“t=“I“,以9,尤p (3-3Hu。1I 譯碼時(shí),將y1和y2分開考慮,兩個(gè)分量碼譯碼器分別計(jì)算后驗(yàn)概率 p(u女I yn,Lc。2和p(uI J,捫,罌,然后通過DECl和DEC2之間的多次迭代,使其 收斂于MAP譯碼的p(u。Iyn,Y2。這里,彰和群為附加信息,其中霹由D

33、ECl 提供,在DEC2中用作先驗(yàn)信息;巧由DEC2提供,在DECl中用作先驗(yàn)信息。3.2Turbo碼的譯碼算法3.2.1最大后驗(yàn)概率(MAP算法下面推導(dǎo)最大后驗(yàn)概率算法【24】【251??紤]圖3.2所示的軟輸入軟輸出(SISO譯 碼器,它能為每一譯碼比特提供對(duì)數(shù)似然比輸出。 _一 三(-MAP譯碼器 圖3.2軟輸入軟輸出譯碼器框圖圖中MAP譯碼器的輸入序列為Y=硝=(M,Y2,Yk,蜘,其中 Yk=(蠔,群。乞(是Ye:fu。的先驗(yàn)信息,三。是關(guān)于心的對(duì)數(shù)似然比,則:銣滬1Il端 (3-3 地燦黜(3-4 求解式(3.4就是譯碼器所要做的工作。假設(shè)編碼器在后時(shí)刻的狀態(tài)為最,利用BCJR算法推

34、導(dǎo)后可得:p(S一。=s,鼠=s,y,三(=In=s,S=J,夕/ (35其中p(&一,=s,甌=J,yl=吼一。(s屈(sgk(s,s,吼(J、孱(s和兒(5,s分 別稱為前向狀態(tài)度量、后向狀態(tài)度量和分支轉(zhuǎn)移度量。下面分別求解:1前向狀態(tài)度Na。(J 聲七巾矗馳 蠔蟛 一 一p 型嘲第三章Turbo鸛熬譯鵜囂理及冀法 i3 %(s=Xcrk一。(sP(Sk=s,Yk IS,一。燃s=搿t段葶,s(3-6壹予投g,霪鶼藿霹麓大予圭,這會(huì)使式3*鎊產(chǎn)生溢賽,爨就有登要瓣嚷國進(jìn)行歸一化處理(盾面提到的腹(s也需要?dú)w一化,原因相同,不再累遴。盈洶=嚷s/夢(mèng)斟警壤s矽嚷菩|s吃一,(srAs,s2袁互

35、麗 3。乃, J磊渤熬初始條籜茭稷寵RSC編褥器麓勰熱狀態(tài)兔零狀態(tài):哦(o=l,甌00=02后ra-j狀態(tài)度量孱0孱.;(s=(=島杉l攔s-E成(s-兒0l,s (3-8 緩一純處理震,有:筑。,(s;熊。,(s/p(蟛l式_磊一。,rk(s,葶毒袁羹i麗(3-9如果編碼器在每幀編碼完成之后通過結(jié)尾處理也回到零狀態(tài),則磊(s的初始 象葶譬鴦;晟褥=毛磊黏霧諺拳o;否剽,癍將掰畜晟設(shè)勢(shì)等概。3分支轉(zhuǎn)移度量段莎,s以p,囂嘗P(Sk搿葶最一l冪葶P(Yk蕺-S,甌。l絮s篁毪多強(qiáng)l壤其中p魄是%的先驗(yàn)概率,P(Yk l uk由信道轉(zhuǎn)移概率決定。 由丘輯。的定義式(33霹得如芝端畸eXp溉毛剛2

36、箕中4囂再焉蠆t麗,受常量。 31铘 8-1114Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)對(duì)于P(Yk I,根據(jù)兒=(“,孵,吒=(x茹=(“:,“f,可知 p(巾加exp-掣一等等】一卜盤筍 =Bkexp一學(xué)】 -exp一學(xué)(3-12蘭舌合上回的二個(gè)式子司得:rk(s,s芘4最e帥以圳2.eXp-學(xué)】(3-13 若定義形J,s=exp睦丘群睇,定義信道可靠值厶:4幔/0,對(duì)于AwGN 信道上的QPSK傳輸,丘=4/o,而盯2=No/2,則有:rk(s,soC explu,g(+丘“砟(s,s(3-14 將上式帶入f3.5】式可得:甌一。(s3形(J,J廈(sexpL。(u。+丘以(50上(uk-11

37、1l生i琢而麗 (j。j毗=0=t以+t(+h1s展0S屏0 (315上式中等號(hào)右邊的第一項(xiàng)代表信道值,第二項(xiàng)表示先驗(yàn)信息,即前一譯碼器傳 給當(dāng)前譯碼器的信息,第三項(xiàng)是當(dāng)前譯碼器新產(chǎn)生的外信息,這部分信息將被傳 給下一個(gè)譯碼器。譯碼器的整個(gè)過程就是相互傳遞當(dāng)前的外信息(需要經(jīng)過交織 或解交織并最終譯碼的過程。3.2.2MAP算法的簡化算法由前面的推導(dǎo)可以看出,標(biāo)準(zhǔn)的MAP算法引入了大量的乘法運(yùn)算和對(duì)數(shù)運(yùn)算, 實(shí)際中實(shí)現(xiàn)代價(jià)很大,下面介紹相應(yīng)的簡化算法,從而降低實(shí)現(xiàn)復(fù)雜度。1Max.Log.MAP算法26】 瓦 聽萬 聊麗 甌一甌 翌輜第三章Turbo碼豹譯鵑灄理及算法 15Max.Log.MA

38、P算法是MAP算法的簡化,它的計(jì)算都是基于對(duì)數(shù)域的,從而 把MAP算法中的乘法運(yùn)算轉(zhuǎn)純成了加法運(yùn)算,其輸滋也相應(yīng)的變?yōu)榱藢?duì)數(shù)似然比 形式。同時(shí)引入了如下近似計(jì)算,來簡化算法復(fù)雜度,式中max(是取最大值運(yùn) 算m(y蘭囂蠡(3-16 從而,算法中幾個(gè)主要度量也相應(yīng)變化為:a前向狀態(tài)度量:A女=In甌(葶蘭maxA,一I(J十r女O,s-maxmaxAt.1+rt0。,s(317其初始條件為A。(O=o,A。Oo=咱。b后向狀態(tài)度量:Bl(s=醯孱(s。蘭maxB女(s+r.|O,s-maxmaxA,qO十rO。,s (318 如果編碼器在每幀編碼完成之后通過結(jié)尾處理也回到零狀態(tài),其初始條件為:

39、B(。=0,Bo=刪,或B(葶=h壺M為分量碼的狀態(tài)數(shù)。c分支轉(zhuǎn)移度量:瓦(s,s=去【乞(+t薪+丘辮PP】 (319這樣,對(duì)數(shù)似然比(LLR可以由下式計(jì)算:L(uk=v蹁-(J+rKs+Be(苫一塔找。A(s+f00,sB女和(3-2國 V(s,s沖罐 2Log-MAP算法f2711281Max.Log-MAP算法雖然簡便,但也犧牲了譯碼性能,為了提高性能,同時(shí)不 會(huì)過度增加譯碼復(fù)雜度,我們引入一個(gè)修正函數(shù)五(,使m(i=l礦凈m。蚴ax6/+z(18,一k1(3-21這樣,用max+諺=磐翳諺+丘(1諺-Sin默1代替MaxLogMAP中的m,ax4即可。 , lSJS時(shí) JTurbo碼

40、的設(shè)計(jì)與FPGA實(shí)現(xiàn)3.3影響Turbo碼性能的幾個(gè)因素仿真在vc環(huán)境下進(jìn)行,仿真時(shí)以程序產(chǎn)生的隨機(jī)碼作為信源,經(jīng)過Turbo編 碼、BPSK調(diào)制后,加入模擬的AWGN信道噪聲,之后進(jìn)行解調(diào)和譯碼,最后把 譯碼結(jié)果和原始信源對(duì)比,統(tǒng)計(jì)誤碼數(shù)和誤碼率,得出性能結(jié)果,如圖3.3所示:圖3.3Turbo碼性能仿真方案示意圖3.3.1交織長度對(duì)Turbo碼性能的影響在Turbo碼的生成中,交織器扮演著重要的角色。交織器雖然僅僅是在RSC2編碼器之前將信息序列中的個(gè)比特的位置進(jìn)行隨機(jī)置換,但它卻起著關(guān)鍵的作 用,在很大程度上影響著Turbo碼的性能。盡可能隨機(jī)化數(shù)據(jù)以避免與同一信息位 直接相關(guān)的兩個(gè)分量

41、編碼器中的校驗(yàn)位均被刪除,使最小碼距丸。盡可能大,而重 量為最小碼距的碼字?jǐn)?shù)盡量少,以降低所謂的錯(cuò)誤平層(Error Floor。交織長 度要綜合考慮系統(tǒng)的時(shí)延和數(shù)據(jù)幀的大小,交織器越長,則幀長越長,系統(tǒng)時(shí)延 越大。圖3.5是分量碼采用生成多項(xiàng)式G=(7,5的遞歸卷積碼,交織長度分別為704、 1984、4096,碼率為1/3,采用LogMAP譯碼時(shí),Turbo碼的性能曲線圖。顯然交 織器越長性能越好。因?yàn)榻豢椘髟介L,交織后比特越具有隨機(jī)特性,從而接近于 Shannon假設(shè)的隨機(jī)碼。,UICI圖3.4G=(7,5的遞歸卷積碼結(jié)構(gòu)第三章Turbo碼豹譯碼囂理及算法 17圈3.5不同交織長度譯碼性

42、髓比較3.3.2碼率對(duì)Turbo碼性能的影響圖3.6給出了分量碼采用生成多項(xiàng)式G=(7,5的遞歸卷積碼,交織長度為 1984,碼率為l趁和l,3,譯碼采用Log MAP譯碼時(shí),Turbo碼的性能益線圈。 由圖可知碼率較低性能較好,這是由于碼率較低提供較多的校驗(yàn)冗余比特,但這 降低了馕息的傳輸速率,實(shí)際設(shè)計(jì)時(shí)應(yīng)綜合考慮以使性能與信息傳輸速率達(dá)到平 衡。Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)1/2碼率E 乒壤 、j r ,om詩7一, I,ov干r。 的、Y、 0:、r甲。、Q、 -4-、。o t蟻、每 jj rjj p、o 、 、m。5Eb/No(dB圖3.6不I可碼率譯碼性能比較3.3.3迭代次數(shù)對(duì)

43、Turbo碼性能的影響圖3.7給出了分量碼采用生成多項(xiàng)式G=(7,5的遞歸卷積碼,交織長度為 1984,碼率1/3,迭代次數(shù)分別為2、4、8次,譯碼采用Log_MAY譯碼時(shí),Turbo 碼的性能曲線圖。由圖可知迭代次數(shù)增大,譯碼性能會(huì)得以提升,但譯碼時(shí)延會(huì) 隨迭代次數(shù)的增加而線性增大,同時(shí)迭代次數(shù)增大到一定程度后,譯碼性能會(huì)趨 于飽和,所以不能無限制的增加迭代次數(shù)。第三章Turbo瑪豹譯碼原理及算法 19圖3.7不同迭代次數(shù)譯碼性能比較3.3.4量化譯碼對(duì)Turbo碼性能的影響量化是實(shí)際數(shù)字硬件中不可缺少的一環(huán),量化過程不可避免地會(huì)引入量化誤 差,因此如何在給定條件(如量化比特、量化后的性能等

44、下選擇合適的量化方 案以盡可能減少量化誤差是量化處理的關(guān)鍵。針對(duì)不同的信號(hào)要采用不同的量化 方案,因此必須根據(jù)接收信號(hào)的特點(diǎn)來選擇量化方式。此外,還需要考慮實(shí)際中 實(shí)現(xiàn)的難度,并力求在性麓損失不大的情況下選擇最簡單的量化方式。量化的方法有多種,主要包括了均勻量化和非均勻量化29】。將輸入信號(hào)的取值 域按等距離分割的量化稱為均勻量化;麗菲均勻量化則是根據(jù)信號(hào)的不同區(qū)間來 確定量化的間隔,對(duì)于信號(hào)取值小的區(qū)間,其量化間隔也小;反之,量化間隔就 大。j#均勻量化的實(shí)現(xiàn)方法通常是將抽樣值通過壓縮再進(jìn)行均勻量化。所謂壓縮 是用一個(gè)非線性變換電路將輸入變量X變換成另一變量Y,即Y=.廠O。非均勻量 化就是

45、對(duì)壓縮后的變量Y進(jìn)行均勻量化。接收端采用一個(gè)傳輸特性為X=f-1(y的 擴(kuò)張器來恢復(fù)。通常使用的壓縮器中,大多采用對(duì)數(shù)式壓縮,郎Y=In(磚。廣泛采 用的兩種對(duì)數(shù)壓縮是口律壓縮和A律壓縮。由于律壓縮幫A律壓縮的實(shí)現(xiàn)較為復(fù)雜,因此在具體的仿真中我們使用均圖3.8G;(23,33的遞歸卷積碼結(jié)構(gòu) 圖3.9不同量化方式譯碼性能比較 由圖3.9可看出,初始消息采用(6,3,t,中間變量采用(7,3t量化時(shí)一拊嫩赫渺啪一一一一一一 一一一一一一一 竺 一 雌 一郟船啪群 一??嚳b默獬 一一一一一一 一 ,第三章Turbo碼豹澤碼灄理及算法 2l性能與無量化時(shí)差距較大,而其余量化方式的性能與無量化時(shí)幾乎

46、一致??紤]到 量他除數(shù)越大,實(shí)際中譯碼的復(fù)雜度和硬件資源消耗都會(huì)變大,所以我們?cè)趯?shí)際 的硬件實(shí)現(xiàn)中初始消息采用(6,3,t,中間變量采用(8,4,t量化。即:初 始消息采用6比特量化,其中符號(hào)位占l比特,整數(shù)位占3比特,小數(shù)位占2比 特;中間變量采用8比特量化,其中符號(hào)位占l比特,整數(shù)位占4比特,小數(shù)位 占3比特。第豳章Turbo碼編譯碼器靜設(shè)計(jì)與實(shí)現(xiàn)第四章Turbo碼編譯碼器的設(shè)計(jì)與實(shí)現(xiàn)本章首先介紹了FPGA的設(shè)計(jì)流程與設(shè)計(jì)環(huán)境,其次介紹了適合硬件實(shí)現(xiàn)時(shí)使 用的滑動(dòng)窗技術(shù),之后詳細(xì)介紹了Turbo碼編譯碼器的結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn),最后給出 了性能結(jié)果。4.1FPGA設(shè)計(jì)流程與設(shè)計(jì)環(huán)境FPGA的設(shè)計(jì)

47、鰳矧是利用EDA開發(fā)軟件和編程工具進(jìn)行開發(fā)的過程。開發(fā)流 程一般如圖4.1所示,包括電路設(shè)計(jì)、設(shè)計(jì)輸入、功能仿真、綜合優(yōu)化、綜合后仿 真、實(shí)現(xiàn)與布局蠢線、時(shí)穿仿真與驗(yàn)證、板級(jí)仿真與驗(yàn)證,以及芯片編程與調(diào)試 等主要步驟。圖4.1FPGA設(shè)計(jì)流程設(shè)計(jì)中通常使用自頂麗下的設(shè)計(jì)愚想,將設(shè)計(jì)層次化、結(jié)構(gòu)純,把一個(gè)大的系 統(tǒng)分為若干小塊,編制相應(yīng)的模型并加以實(shí)現(xiàn),通過仿真和驗(yàn)證后,在逐次連接 起來,從悉提高開發(fā)效率節(jié)省時(shí)閬,也便于修改維護(hù)。FPGA,是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。 它以其功能強(qiáng)大,開發(fā)過程周期短、投資少,可反復(fù)修改,以及開發(fā)工具智能化 等特點(diǎn)成為當(dāng)今硬件

48、設(shè)計(jì)的首選方式之一。24Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)FPGA最大的兩家生產(chǎn)公司是Xilinx和Altera,他們的FPGA各有優(yōu)缺點(diǎn),并 且都有各自的FPGA綜合開發(fā)工具。由于本文使用Altera公司的StratixlI系列芯片 【32】【33】,所以整體就設(shè)計(jì)在Altera公司的Quartusll6.0E341中完成。QuartusII軟件是Altera公司的綜合開發(fā)工具,它集成了Altera的FPGA開發(fā)流 程中所涉及的所有工具,從設(shè)計(jì)輸入、仿真、編譯、綜合、布局布線和下載都可 以使用它來完成。它支持Verilog HDL語言和VHDL語言的設(shè)計(jì)輸入、基于圖形 的設(shè)計(jì)輸入方式以及集成系

49、統(tǒng)級(jí)設(shè)計(jì)工具。同時(shí)QuartusII還集成了與第三方工具 的友好接口,可以在QuartusII中直接調(diào)用第三方的綜合、仿真等工具。Quartusll 支持Altera公司的所有主流FPGA器件,如Stratix系列的Stratix、Stratix GX、StratixlI 和StratixII GX,Cyclone系列的Cyclone和CyctoneII。除此之外還有特點(diǎn):1支持多種時(shí)鐘定時(shí)分析、基于塊的設(shè)計(jì),內(nèi)嵌邏輯分析器、功率估計(jì)器等高級(jí) 工具。2易于管腳分配和時(shí)序約束。3強(qiáng)大的HDL綜合能力。4支持Windows、Solaris和Linux等多種操作系統(tǒng)。FPGA中的設(shè)計(jì)日趨復(fù)雜,所以設(shè)

50、計(jì)的仿真驗(yàn)證就顯得尤為重要,在整個(gè)設(shè)計(jì) 流程中占了很大比重。Quartusll支持多種第三方工具進(jìn)行FPGA設(shè)計(jì),可以通過 命令行或Tcl腳本與第三方工具進(jìn)行無縫連接,也可以通過網(wǎng)表文件單獨(dú)使用第三 方綜合、仿真工具,因此在仿真時(shí)我們使用Mentor公司的ModelSim SE 6.1f軟件 完成仿真的工作。ModelSim作為獨(dú)立的第三方工具,支持眾多的FPGA廠家?guī)?仿真速度快, 仿真精度高,提供友好的調(diào)試環(huán)境,是唯一的以單內(nèi)核支持Verilog和VHDL混合 仿真的仿真器,是完成FPGA/ASIC設(shè)計(jì)的RTL級(jí)和門級(jí)電路仿真的首選。采用 直接優(yōu)化的編譯技術(shù)Tcl/Tk技術(shù)和單一內(nèi)核仿真技

51、術(shù),編譯仿真速度快,個(gè)性化 的圖形界面和用戶接口,為用戶加快調(diào)錯(cuò)提供強(qiáng)有力的手段。同時(shí)它還具有強(qiáng)大 的調(diào)試功能:先進(jìn)的數(shù)據(jù)流窗口,可以迅速追尋到產(chǎn)生不定或錯(cuò)誤狀態(tài)的原因; 性能分析工具幫助分析性能瓶頸,加速仿真;代碼覆蓋率檢查確保測(cè)試的完備性; 多種模式的波形比較功能;先進(jìn)的Signal Spy功能,可以方便的訪問Verilog或 Verilog和VHDL混合設(shè)計(jì)中的底層信號(hào);支持加密P;可以實(shí)現(xiàn)與Matlab中 Simulink的聯(lián)合仿真。ModelSim的功能側(cè)重于編譯、仿真,編譯的代碼與平臺(tái)無 關(guān),不能指定編譯的器件,不具有編程下載能力。在時(shí)序仿真時(shí)不像Quartus那樣 可以自行設(shè)置輸

52、入波形,而需要通過外部在源文件中文件確定輸入,如編寫 testbench來完成初始化和模塊輸入的工作,或通過外部宏文件提供激勵(lì),這樣才 可以看到仿真模塊的時(shí)序波形圖。第瀚章Turbo碼編譯碼器酶設(shè)詩與實(shí)現(xiàn)4:2Turbo譯碼中滑動(dòng)窗技術(shù)的應(yīng)用使用傳統(tǒng)的LogMAP譯碼算法時(shí),譯碼器的計(jì)算順序是:先計(jì)算出分支轉(zhuǎn)移 度量,同時(shí)計(jì)算出前向狀態(tài)度量并且都存儲(chǔ)在內(nèi)存中;當(dāng)一幀的分支轉(zhuǎn)移度量和 前向狀態(tài)度量計(jì)算完畢之后,反向計(jì)算后向狀態(tài)度量,同時(shí)計(jì)算對(duì)數(shù)似然比;重 復(fù)上述兩步,直到迭代次數(shù)滿足設(shè)定的次數(shù)。如圖4.2。l 囂廠L -l, 1:l岔 L _|羅 L 。 -;1lr L . 。 -f圖霹。2傳統(tǒng)

53、的Log-MAP譯碼算法順序可見Turbo譯碼時(shí),需要把整個(gè)一幀數(shù)據(jù)接收后才能開始譯碼,當(dāng)交織器較大 時(shí),其譯碼時(shí)延很大,雖然采用了Log-MAP算法,運(yùn)算復(fù)雜度有所減低,僵時(shí)延 和所需的存儲(chǔ)空間卻沒有絲毫的減小,不利于工程實(shí)現(xiàn)。為了解決這些聞?lì)},我們采用滑動(dòng)密算法f3霉【363進(jìn)行譯碼。其主要思想是:將 幀數(shù)據(jù)分成等長的小塊,稱為一個(gè)窗口(長度設(shè)為L。這樣譯碼過程就變?yōu)?先計(jì)算礁一個(gè)窗翻的分支轉(zhuǎn)移度量值并且存儲(chǔ);讀取出分支轉(zhuǎn)移度量值用于計(jì)算 出一個(gè)窗口的后向狀態(tài)度量值并且存儲(chǔ);讀取一個(gè)窗口的分支轉(zhuǎn)移度量值和屠向 狀態(tài)度量值,用于計(jì)算前向狀態(tài)度量值和對(duì)數(shù)似然比:將窗口向前推移,并重復(fù) 上面三個(gè)

54、步驟直到一幀計(jì)算完為止;重復(fù)上面四步,直到迭代次數(shù)滿足設(shè)定的次 數(shù)。如圖4.3。1毛 2L N-L 辯y 卜l 2L-L N-N-L夕 |1L 2L N_L N曉 ! ;L叫-o_l-L-哪-.-一一一._-.-上_yl L 2L NL Nllr ljl上.。 L叫岫_lL_.-_-.卜L-一圖4.3加入滑動(dòng)窗的Log.MAP譯碼算法順序加入滑動(dòng)窗蜃,譯碼時(shí)延和存儲(chǔ)空間有了顯著的降低,但這樣也使性能受到了 損失。為了使性能不會(huì)損失過大,窗口長度就不能太短,通常窗口長度是所使用Turbo碼的設(shè)計(jì)與FPGA實(shí)現(xiàn)的卷積碼約束長度的5到8倍時(shí),就可保證譯碼性能只有很小的損失。在實(shí)際實(shí) 現(xiàn)中,我們使用L

55、=64的窗口。4.3編碼器的設(shè)計(jì)與實(shí)現(xiàn)4.3.1Turbo編碼器整體結(jié)構(gòu)1編碼器的項(xiàng)層輸入輸出信號(hào)描述編碼操作的基本過程是:當(dāng)一次編碼操作開始時(shí),外部輸入的信源信息從 message端口輸入編碼器,同時(shí)enable端口置高電平。接收完一幀數(shù)據(jù)后,編碼器 內(nèi)部產(chǎn)生一個(gè)開始編碼信號(hào),驅(qū)動(dòng)各模塊工作,編碼完成后從encodeMessage端口 輸出,同時(shí)數(shù)據(jù)使能datae11置高電平。編碼器頂層圖和端口定義如下:clkenc。deMessageenabledata enmessage。各輸入輸出接口定義:圖4.4Turbo碼編碼器項(xiàng)層圖表4.1Turbo碼譯碼器輸入輸出接口定義接口名 方向 接口大/

56、J(bits 描述clk 輸入 1時(shí)鐘信號(hào)enable 輸入 l 編碼器輸入使能信號(hào),高電 平有效message 輸入 1數(shù)據(jù)輸入 encodeMessage 輸出 1編碼結(jié)果輸出data en 輸出 1編碼結(jié)果輸出使能,高電平 有效2Turbo編碼器主模塊Turbo編碼器主模塊框圖如圖4.5,在該模塊中,我們將Turbo的編碼分成兩個(gè) 獨(dú)立的編碼模塊來實(shí)現(xiàn),生成information和RSCl一Out的為Encoderl模塊,生成 RSC2一Out的為Encoder2模塊。第瞪章Turbo碼編譯碼器的設(shè)計(jì)與實(shí)現(xiàn) 27輸入端為lbit信息,輸出端為lbit信息位,lbit Encoderl中RSC編碼的校驗(yàn) 位和lbit Encoder2中RSC編碼的校驗(yàn)位??刂菩畔o

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論