基于FPGA的改進型分組交織器的設計與實現
Turbo碼是由法國人Berrou于1993年提出的一種性能優越的信道編碼方案[1],其應用已逐步推廣到衛星通信、移動通信和計算機通信等領域。交織器作為Turbo碼編碼器中的重要組成部分,在Turbo碼的性能中起著至關重要的作用,因此交織器的設計成了Turbo碼設計中的一個重要方面,交織器的好壞將直接關系到整個Turbo碼系統的優劣。
本文引用地址:http://www.104case.com/article/191904.htm本文分析了交織器在Turbo碼中的作用,以及分組交織器[2]存在的缺陷,提出一種改進型的分組交織器,即交織深度和寬度可控的分組交織器的設計方法。該交織器可根據數字通信中信道的實際特性,做到交織矩陣深度和寬度可控,能夠更好的滿足不同幀長度數據傳輸的要求,從而達到最佳的抗突發連續錯誤的目的。
交織器設計采用Altera公司生產的Cyclone系列FPGA芯片,利用其內部嵌入式存儲資源,用雙端口存儲器實現。
1 傳統分組交織器的作用、原理及缺陷
1.1 交織器的作用
在傳統信道編碼中,交織器的作用是將信源序列打亂,將它們分散到不同的數據序列中,以消除相鄰碼元之間的相關性。這樣,當信號經歷衰落或突發干擾時,鄰近碼元被噪聲淹沒的可能性會大大降低,從而增強了抵御長時間突發噪聲的能力,同時也有利于接收端的譯碼接收。
另外,交織器作為Turbo碼編碼器中的重要組成部分,對提高Turbo碼的性能起著至關重要的作用。文獻[3]指出,Turbo碼作為線性碼,其糾錯譯碼性能主要由碼字的重量分布決定,而交織器實際上正是決定了Turbo碼的重量分布。所以,Turbo碼的性能很大程度上由交織器所決定。
1.2 分組交織器的原理
分組交織是一種簡單的交織方式,其原理是在發送端將待交織的輸入數據均勻分成m個碼組,每個碼組由n段數據組成,這樣便構成一個n×m的交織矩陣,其中,m為交織深度,n為交織約束長度或寬度。待交織數據以公式的順序進入交織矩陣,再以公式的順序從交織矩陣中送出,這樣就完成了對輸入數據的分組交織。
1.3 分組交織器存在的缺陷
分組交織器雖然具有原理簡單,易于硬件實現的特點。但其存在的主要缺點是由于交織矩陣的深度和寬度固定,不能夠根據信道(特別是變參信道)中突發誤碼長度、糾錯碼的約束長度、糾錯能力做出調整,這樣,信息序列中出現的突發錯誤就不能夠盡量隨機分布在數據幀內。交織后,輸入至編碼器中的消息序列仍有很大的相關性。這就導致了Turbo碼譯碼器在相繼譯碼中不能正確的譯碼,會產生較高的譯碼錯誤。
基于以上原因,希望設計出交織矩陣深度和寬度可控的分組交織器,以適應不同數據幀長度的需要。從而更好的適應通信系統的特性要求,提高系統克服突發差錯的能力。
評論