歡迎登錄中國視覺網!
學術論文頻道
ACADEMIC PAPERS
位置導航:首頁 >> 學術論文 >> 專業論文 >> Turbo碼及其交織硬件實現

Turbo碼及其交織硬件實現

發布時間:2020-02-25     來源:中國視覺網       訪問次數:3424


   摘要:Turbo碼做為一種優秀的信道編碼,現在已經在移動通訊中廣為使用。本文介紹了使用FPGA實現Turbo碼的交織解交織的方法

   關鍵字:Turbo碼,交織,FPGA


1. 引言

   1993年,法國的C.Berrou等人提出了一種新型的糾錯編碼――Turbo碼。Turbo碼一經提出,就以其優異的性能被編碼界專家認為具有很大的發展潛力。Turbo碼與以往所有的不同之處在于它通過一個交織器,使之達到接近仙農性能極限。此外,它所采用的迭代譯碼策略,使得譯碼復雜性大大降低。它采用兩個子譯碼器通過交換稱為邊信息的輔助信息,相互支持,從而提高譯碼性能,邊信息的交換是在迭代譯碼的過程中實現的,前一次迭代產生的邊信息經交換后將作為后一次迭代的先驗信息。一般Turbo碼可分為面向卷積的Turbo碼和面向分組的Turbo碼。面向分組的Turbo碼的可基于兩種的碼類:卷積碼與分組碼。因此,其結構也相應的分為兩種形式:基于分組碼的面向分組的Turbo碼和基于卷積碼的面向分組的Turbo碼。

2. Turbo碼的編碼

   以基于分組碼面向分組的Turbo碼的編碼(如圖1所示)為例,它由兩個子編碼器

   coder1與coder2組成。 子編碼器可選用相同的碼,也可選用不同的碼。其編碼過程大致如下:將N個比特的信息位分為一組。一方面進入coder1進行行編碼,另一方面經過交織后進入coder2進行列編碼。兩組校驗位送入抽取(puncture)環節,適當刪除部分碼元,以便提高碼率。若采用卷積碼作子碼時,由于卷積碼的碼率較低,所以一般均具有抽取環節。而采用分組碼時,由于分組碼具有較高的碼率,所以可以將此省略。以交織矩陣為N= ,對 行進行行編碼,每行產生長為 的碼組,而以 列進行列編碼,每列產生長為 的碼組。編碼的最后一步是完成并串變換,使之輸出適合在信道中傳輸。

   交織器由一定數量的存貯單元構成。存貯單元的多少稱為該交織器的大小。存貯單元常構成矩陣M×N的形式。其中M為存貯矩陣的總行數,N為存貯矩陣的總列數。這樣一來,各個存貯單元可用它在矩陣中所處的行數和列數來表示。信息比特流順序流入交織器,再以某種方法亂序讀出。或者以亂序的形式進入,再以順序的形式讀出。這種決定讀出次序的方法稱為該交織器的交織方法。交織器的引入可以說是Turbo碼的一大特色。它可以看成為一種映射。使一些不可糾的錯誤轉化為可糾的錯誤模式。這也可以從最小距離的角度對其作用進行解釋。因為線性碼的性能與碼的最小距離或重量譜有密切的關系。假如某一輸入序列經過某子編碼器產生碼重較小的輸出,但它交織后經過另一子編碼器,則有可能產生碼重較大的輸出,從而使整個碼字的重量增大,或者說使最小距離增大,碼的糾錯能力就提高了。所以,可以說,交織器對碼重起著整形的作用。也可以說,交織器在Turbo碼中起著至關重要的作用。

3.Turbo碼譯碼的過程

   如圖(2)所示,譯碼部分如選用軟輸入、軟輸出子譯碼器。設信息序列U進入信道傳輸的是+1或-1,可定義其最大后驗概率(MAP,maximum a posteriori)譯碼器從接收到的序列r中得到的其中某一傳輸碼元d是+1或-1的對數似然比為:

      (1)

   圖中,L(u)為信息碼元的先驗信息值, 則為編碼碼元的信道值; 為信息碼元的后驗信息值, 則為由編碼約束關系從碼字中其它碼元所確定的u的“軟輸出”信息,稱為“附加信息”。 不受當前信息位L(u)及 的影響。對于系統碼,u的后驗信息值 (即軟輸出)由三項組成:

+L(u)+   (2)

   上式說明 由獨立的三項組成:信道軟信息值 ,先驗信息L(u)及附加信息 。因為在對行碼進行第一次譯碼 時,沒有可以利用的先驗信息L(u),則L(u)的初始值為0,則可由(2)可得 

  (3)

   于是可以求得行碼的信息位u的附加信息 為:

       (4)

   由(4)式所得的附加信息 為行碼譯碼后對u的一個估計值,它可以做為列碼的先驗信息,則由(2)可得

    (5)

   于得我們得到列碼的附加信息

       (6)

   (6)則作為一下次迭代譯碼時行譯碼的先驗信息。這樣經過多次行列的迭代譯碼后,將列碼譯碼的軟輸出 作為整個譯碼過程的軟判決依據,可得

      (7)

   上述軟輸入/軟輸出的迭代譯碼過程可由圖(3)來表示。

4.面向分組的Turbo碼的編碼中交織器的硬件實現。

   采用ALTERA公司的FPGA產品來實現Turbo碼的子碼的編碼及交織技術,使用的開發軟件為ALTARA公司的MAX+PLUS 。

   MAX+PLUS 是開發ALTERA公司的FPGA產品的軟件工具。利用MAX+PLUS 提供的設計環境和設計工具,可以靈活高效地完成各種數字電路設計。Turbo碼的編碼中最為重要的交織器的實現,其原理圖如圖4所示

   圖中RAM1與RAM2為兩個交替工作的隨機存儲器。由讀寫控制信號對其進行控制,使其處于讀狀態或寫狀態。當RAM1寫入數據時,RAM2讀出數據,反之RAM1讀出數據,RAM2寫入數據。
   交織中最重要的就是要實現寫入和讀出的順序的變化。對于寫地址的產生,采用的是由一個模N計數器(N對映于交織器的大小),以時鐘為輸入端,每進一個時鐘脈沖,則產生一個地址,此地址即為RAM1的寫地址。當寫滿N個數后,則由讀寫控制信號控制,由讀地址發生器輸出讀地址到RAM1,使RAM1開始向外讀出數據;同時,讀寫控制信號控制RAM2開始寫入數據。對于讀地址發生器,采用只讀存儲器ROM來實現。用ROM實現讀地址,其最大的優點是它具有通用性。可以選用不同的交織陣來完成不同的交織方式。實質上,ROM保存的就是交織后的地址,由此可實現所需的交織方式。從上面我們可以看到用ROM的方便之處,如果想采用不同的交織,我們無需重新組建電路,只需選另一個ROM(其中保存其交織后的地址),這就是我們在前面提到的使用ROM可以獲得的通用性。

   在設計過程中,采用了使用GDF文件和VHDL語言結合的方式實現了交織方式。但在設計RAM,不應用VHDL語言對其進行描述。因為那樣編譯的結果未使用器件提供的RAM區,而全部都用邏輯單元來實現,導致了資源的浪費。因此,對RAM的功能用VHDL語言進行描述是不可取的。

5.結論與展望

   Turbo碼一經出現,以其優越的性能引起了廣泛的重視,現在隨著技術的改進,性能有了進一步的提高,并開始應用于第三代移 動通信系統。隨著硬、軟技術的發展,它還會和其它業務相結合,廣泛應用于數字通信的各個領域。

參考文獻

[1]C.Berrou等。Near Shannon Limit Error-Correcting Coding and Decoding:Turbo-codes(1),ICC’93
[2]C.Berrou等。Near Opimum Error Correcting Coding and Decoding:Turbo-Codes,IEEE Trans .On Comm.vol.44,No.40,Nov.1996
[3]J.Hagenauer等。Iterative Decoding of Binary Block and Convolutional Codes。IEEE Trans.On inform.Theory.vol.42.No.2,March.1996
[4]葉中行,Vitor Wei。 Turbo碼的若干新發展,電子學報,Vol.26,No.7,July,1998
[5]譚明新 徐根深。Turbo碼在第三代移動通信中的應用,哈爾濱工程大學學報,vol.24,No.2,Apr.2003
[6]朱健春 楊福寶。Turbo碼交織器的性能分析及仿真。武漢理工大學學報。Vol.27,No.2,Apr,2003


喜乐彩什么时候开奖