一種交織器/解交織器可配置、可復用的Turbo碼編解碼器的製作方法
2023-11-06 03:42:17 2
![](https://img.xjishu.com/img/zl/2017/10/94411838463.gif)
本發明涉及無線通信領域中前向糾錯的一種Turbo碼編解碼器,特別適用於WCDMA或衛星移動通信系統中前向糾錯Turbo碼編解碼器的實現。
背景技術:
Turbo碼在無線通信中有著廣泛的應用。第三代地面移動通信WCDMA,以及中國的第一代衛星移動通信,都採用了Turbo碼。Turbo碼的交織器對Turbo碼的性能,有著較大的影響。一般採用偽隨機交織器,實現時需要一個較大的存儲表。中國的第一代衛星移動通信標準尚不穩定成熟,實現時需考慮到標準的更改或演進。
Turbo碼的編碼較簡單,將原始碼流編碼一次,交織後再編碼一次。其中涉及到一次交織處理。
Turbo碼的解碼計算量大,實現複雜。Turbo碼最常用的解碼算法為MAX-LOG-MAP算法。在解碼時,使用兩個軟輸入軟輸出(SISO)模塊,交換軟信息。第一個SISO模塊的輸出,經交織後送入第二個SISO;或者第二個SISO的輸出,解交織後送入第一個SISO。因此,Turbo碼的解碼過程中,也涉及到頻繁的交織和解交織。
因此,Turbo碼的實現上,有較多的方法可挖掘,以便減小計算量、增加靈活性。
技術實現要素:
本發明提供了一種增強Turbo碼實現靈活性、減小資源消耗、可配置、可復用的Turbo碼編解碼器。本發明的要點有兩個:1),為增強靈活性,設計使得交織表內的內容,既可以通過交織表生成器內部生成,也可以由外部處理器通過總線接口填寫;2),為減小資源開銷,交織器和解交織器為同一個模塊,不同的配置實現不同的功能。同時,編碼器和解碼器共用交織器/解交織器,由一個仲裁器來裁決二者的使用權。
本發明的目的具體是這樣實現的:
一種交織器/解交織器可配置、可復用的Turbo碼編解碼器,包括:
總線接口A,當編碼器工作時,將外部數據轉發給編碼器B並將編碼器B的處理結果進行對外輸出;當解碼器工作時,將外部數據轉發給解碼器D並將解碼器D的處理結果進行對外輸出;當對交織器/解交織器C內交織表存儲器C1填寫時,將外部數據轉發給交織器/解交織器C;
編碼器B,將輸入數據進行Turbo編碼,並將結果輸出,在這個過程中,編碼器將調用交織器/解交織器C;
解碼器D,將輸入數據進行Turbo解碼,並將結果輸出,在這個過程中,解碼器將調用交織器/解交織器C;
交織器/解交織器C,將編碼器或解碼器送來的數據,按照交織表存儲器的內容進行置亂,並將結果輸出給編碼器或解碼器。
其中,交織器/解交織器C包括:
仲裁器C0:仲裁器C0在交織表生成器C2生成交織表存儲器C1內容時,禁止編碼器B和解碼器D對交織表存儲器C1的使用;在編碼器B使用交織表存儲器C1時,禁止解碼器D對交織表存儲器C1的使用;在解碼器D使用交織表存儲器C1時,禁止編碼器B對交織表存儲器C1的使用;
交織表存儲器C1:交織表存儲器C1為一個靜態隨機讀寫存儲器SRAM,存儲器的地址為每個待交織比特的序號,存儲器的內容為交織後該比特的序號;在交織器/解交織器控制器C5控制下,交織表存儲器C1的內容由外部處理器直接填寫,或由交織表生成器C2生成並填寫;
交織表生成器C2:在交織器/解交織器控制器C5控制下,交織表生成器C2生成交織圖樣,並存儲在交織表存儲器C1內;
輸入數據存儲器C3:在交織器/解交織器控制器C5控制下,輸入數據存儲器C3接收並存儲編碼器或解碼器輸入的數據;
輸出數據存儲器C4:在交織器/解交織器控制器C5控制下,輸出數據存儲器C4存儲交織或解交織的結果;
交織器/解交織器控制器C5:控制交織表生成器C2生成交織表存儲器C1裡面的內容,並根據總線接口A的配置,進行交織或解交織操作。
顯然,本發明的優點體現在:
1.由於交織表通過總線可配置,增強了系統的靈活性。
2.編碼器和解碼器共用交織器/解交織器,減小了資源開銷。
附圖說明
圖1是本發明的總體原理框圖;
圖2是交織器/解交織器的詳細結構圖。
圖3是編碼器的詳細結構圖。
圖4是解碼器的詳細結構圖。
具體實施方式
參照圖1至圖4,對本發明作進一步說明。
一種交織器/解交織器可配置、可復用的Turbo碼編解碼器,包括總線接口A、編碼器B、解碼器D和交織器/解交織器C。實施例按圖1連接線路。
總線接口A,當編碼器工作時,將外部數據轉發給編碼器B並將編碼器B的處理結果進行對外輸出;當解碼器工作時,將外部數據轉發給解碼器D並將解碼器D的處理結果進行對外輸出;當對交織器/解交織器C內交織表存儲器C1填寫時,將外部數據轉發給交織器/解交織器C;
編碼器B,將輸入數據進行Turbo編碼,並將結果輸出,在這個過程中,編碼器將調用交織器/解交織器C;
解碼器D,將輸入數據進行Turbo解碼,並將結果輸出,在這個過程中,解碼器將調用交織器/解交織器C;
交織器/解交織器C,將編碼器或解碼器送來的數據,按照交織表存儲器的內容進行置亂,並將結果輸出給編碼器或解碼器。
交織器/解交織器C包括仲裁器C0、交織表存儲器C1、交織表生成器C2、輸入數據存儲器C3、輸出數據存儲器C4和交織器/解交織器控制器C5。實施例按圖2連接線路。
仲裁器C0,仲裁器C0在交織表生成器C2生成交織表存儲器C1內容時,禁止編碼器B和解碼器D對交織表存儲器C1的使用;在編碼器B使用交織表存儲器C1時,禁止解碼器D對交織表存儲器C1的使用;在解碼器D使用交織表存儲器C1時,禁止編碼器B對交織表存儲器C1的使用;
交織表存儲器C1,交織表存儲器C1為一個靜態隨機讀寫存儲器SRAM,存儲器的地址為每個待交織比特的序號,存儲器的內容為交織後該比特的序號;在交織器/解交織器控制器C5控制下,交織表存儲器C1的內容由外部處理器直接填寫,或由交織表生成器C2生成並填寫;
交織表生成器C2,在交織器/解交織器控制器C5控制下,交織表生成器C2生成交織圖樣,並存儲在交織表存儲器C1內;
輸入數據存儲器C3,在交織器/解交織器控制器C5控制下,輸入數據存儲器C3接收並存儲編碼器或解碼器輸入的數據;
輸出數據存儲器C4,在交織器/解交織器控制器C5控制下,輸出數據存儲器C4存儲交織或解交織的結果;
交織器/解交織器控制器C5,控制交織表生成器C2生成交織表存儲器C1裡面的內容,並根據總線接口A的配置,進行交織或解交織操作。
圖2中,交織器/解交織器C由仲裁器C0、交織表存儲器C1、交織表生成器C2、輸入數據存儲器C3、輸出數據存儲器C4和交織器/解交織器控制器C5組成。仲裁器C0控制交織器/解交織器C是由編碼器B使用、解碼器D使用,還是外部處理器直接填寫。交織器/解交織器控制器C5控制交織表生成器C2生成交織表存儲器C1裡面的內容,並控制交織器/解交織器C作交織器使用,還是作解交織器使用。交織表存儲器C1的內容,為輸入數據存儲器C3裡面按順序存儲數據交織後的地址。交織或解交織的結果,放在輸出數據存儲器C4中。
圖3中,待編碼數據首先由外部處理器放在編碼器輸入數據存儲器B1中。在編碼器控制器B3的作用下,編碼計算單元B4從編碼器輸入數據存儲器B1中讀取數據,處理後存入編碼器輸出數據存儲器B2中。然後,編碼器控制器B3將編碼器輸入數據存儲器B1裡面的數據,搬移到交織器/解交織器C,並且啟動交織。交織完成後,編碼器控制器B3再次啟動編碼計算單元B4,將交織器/解交織器C的輸出數據進行編碼。編碼結果存入編碼器輸出數據存儲器B2中。
圖4中,待解碼數據按照x,z1,z2的分類方式,分別存儲在解碼器輸入數據存儲器D11、解碼器輸入數據存儲器D13和解碼器輸入數據存儲器D14中。首先,解碼器控制器D3啟動交織/解交織器C,將輸入數據x進行交織,存儲在解碼器輸入數據存儲器D12中。然後,解碼器控制器D3控制SISO解碼單元D4,對輸入數據進行解碼。若干次迭代後,解碼器控制器D3將解碼結果作判決,存儲在解碼器輸出數據存儲器D2中,解碼結束。