一種turbo碼解碼系統及解碼方法與流程
2023-09-14 12:37:50 1
本發明實施例涉及turbo碼解碼技術,尤其涉及一種turbo碼解碼系統及解碼方法。
背景技術:
turbo(特博)碼是一種有效且常用的信道編碼方法,turbo碼具有接近香農(shannon)理論極限的性能。在深空通信、衛星通信、多媒體通信以及無線移動通信系統中的應用越來越廣泛。
圖1為現有技術中turbo碼解碼系統的結構示意圖,如圖1所示,輸入數據包括系統信息x和兩個校驗信息y1,y2。現有技術的方法通過兩個軟輸入軟輸出(softinputsoftoutput,siso)解碼器對輸入數據進行交織迭代完成解碼過程。
以四路並行正向反向遞推處理為例,傳統的輸入數據存儲方式,會把輸入數據分成4段並分別順序存儲,從每一段中分別取數據,完成4路並行處理。由於正向遞推反向遞推同時進行,需要使用雙口隨機存取存儲器(randomaccessmemory,ram)存儲輸入數據;另外兩次siso解碼計算需要分別存儲系統信息x交織前和交織後的數據,解碼實現過程中所需存儲空間較大。
技術實現要素:
本發明提供一種turbo碼解碼系統及解碼方法,以減小解碼過程中所需存儲空間。
第一方面,本發明實施例提供了一種turbo碼解碼系統,所述系統包括:輸入數據存儲器、第一解碼器、第二解碼器和交織迭代模塊;其中,
所述輸入數據存儲器用於存儲待解碼系統數據;其中,所述系統數據平分為n段,各段對應位置的數據構成一個分組,所述系統數據以分組為單位存儲於所述輸入數據存儲器的n個子存儲器中,所述系統數據的前半部分順序間隔存儲於前n/2個子存儲器中,所述系統數據的後半部分倒序間隔存儲於後n/2個子存儲器中,n為大於等於2的偶數;
所述第一解碼器用於獲取所述n個子存儲器中相應位置的分組數據,並根據第一校驗信息和獲取的所述分組數據計算第一外信息;
所述第二解碼器用於按第一交織地址讀取所述輸入數據存儲器中的系統數據,並根據第二校驗信息和讀取的所述系統數據計算第二外信息,其中,所述第一交織地址對應於所述系統數據的n個位於不同子存儲器的分組;
所述交織迭代模塊用於對所述第一外信息和第二外信息進行交織迭代,完成對所述系統數據的解碼。
第二方面,本發明實施例還提供了一種turbo碼解碼方法,所述方法包括:
存儲模塊將待解碼系統數據存儲於輸入數據存儲器中;其中,所述系統數據平分為n段,各段對應位置的數據構成一個分組,所述系統數據以分組為單位存儲於所述輸入數據存儲器的n個子存儲器中,所述系統數據的前半部分順序間隔存儲於前n/2個子存儲器中,所述系統數據的後半部分倒序間隔存儲於後n/2個子存儲器中,n為大於等於2的偶數;
第一解碼器獲取所述n個子存儲器中相應位置的分組數據,並根據第一校驗信息和獲取的所述分組數據計算第一外信息;
第二解碼器按第一交織地址讀取所述輸入數據存儲器中的系統數據,並根據第二校驗信息和讀取的所述系統數據計算第二外信息,其中,所述第一交織地址對應於所述系統數據的n個位於不同子存儲器的分組;
交織迭代模塊對所述第一外信息和第二外信息進行交織迭代,完成對所述系統數據的解碼。
本發明實施例提供了一種turbo碼解碼系統,所述的解碼系統包括輸入數據存儲器、第一解碼器、第二解碼器和交織迭代模塊,通過所述輸入數據存儲器按照預設的存儲格式存儲系統數據,使得採用單口ram即可完成正反向遞推,同過所述第二解碼器按照第一交織地址讀取系統數據,使得無需預先存儲系統數據交織後的數據,從而減小了解碼過程中所需的存儲空間。
附圖說明
圖1為現有技術中turbo碼解碼系統的結構示意圖;
圖2是本發明實施例一提供的一種turbo碼解碼系統的結構圖;
圖3a是現有技術中的第一段系統數據存儲格式示意圖;
圖3b是現有技術中的第二段系統數據存儲格式示意圖;
圖3c是現有技術中的第三段系統數據存儲格式示意圖;
圖3d是現有技術中的第四段系統數據存儲格式示意圖;
圖4a-圖4b是本發明實施例一提供的正向遞推系統數據存儲格式示意圖;
圖4c-圖4d是本發明實施例一提供的反向遞推系統數據存儲格式示意圖;
圖5是本發明實施例二提供的一種turbo碼解碼系統的結構圖;
圖6是本發明實施例三提供的一種turbo碼解碼系統的結構圖;
圖7是本發明實施例四提供的一種turbo碼解碼方法的流程圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用於解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便於描述,附圖中僅示出了與本發明相關的部分而非全部結構。
實施例一
圖2是本發明實施例一提供的一種turbo碼解碼系統的結構圖,如圖2所示,所述turbo碼解碼系統具體可以包括:輸入數據存儲器110、第一解碼器120、第二解碼器130和交織迭代模塊140;其中,
輸入數據存儲器110用於存儲待解碼系統數據;其中,所述系統數據平分為n段,各段對應位置的數據構成一個分組,所述系統數據以分組為單位存儲於輸入數據存儲器110的n個子存儲器中,所述系統數據的前半部分順序間隔存儲於前n/2個子存儲器中,所述系統數據的後半部分倒序間隔存儲於後n/2個子存儲器中,n為大於等於2的偶數;
第一解碼器120用於獲取所述n個子存儲器中相應位置的分組數據,並根據第一校驗信息和獲取的所述分組數據計算第一外信息;
第二解碼器130用於按第一交織地址讀取輸入數據存儲器110中的系統數據,並根據第二校驗信息和讀取的所述系統數據計算第二外信息,其中,所述 第一交織地址對應於所述系統數據的n個位於不同子存儲器的分組;
交織迭代模塊140用於對所述第一外信息和第二外信息進行交織迭代,完成對所述系統數據的解碼。
其中,第一解碼器120和第二解碼器130可以為siso解碼器。示例性的,以對系統數據x1-x6144進行四路並行正向反向遞推處理為例,現有技術中將x1-x6144平分為x1-x1536、x1537-x3072、x3073-x4608和x4609-x6144四段,每一段數據分別順序存儲於一個子存儲器中,第一段數據到第四段數據在4個子存儲器中的存儲格式見圖3a到圖3d。具體的,正向遞推過程對每一數據段從前向後取數,反向遞推過程對每一數據段從後向前取數。在正向遞推過程中,分別從每一子存儲器相應的位置讀取一個數,如x1、x1537、x3073和x4609,完成四路並行正向遞推。在反向遞推過程中,分別每一子存儲器相應的位置讀取一個數,如x1536、x3072、x4608和x6144,完成四路並行反向遞推。由於正向遞推和反向遞推需要同時進行,現有技術的數據存儲格式必須採用雙口ram對系統數據進行存儲。
本實施例提供了一種新的系統數據存儲格式,將所述四段數據每段對應位置的數據,如x1、x1537、x3073和x4609分為一個分組,以分組為單位將系統數據存儲於輸入數據存儲器110的4個子存儲器中,每一段數據的前半部分即x1-x768、x1537-x2304、x3073-x3840和x4609-x5376順序間隔存儲於前2個子存儲器中,每一段數據的後半部分倒序間隔存儲於後2個子存儲器中。具體存儲方式參見圖4a到圖4d,每一個圖對應一個子存儲器。其中,圖4a和圖4b對應的兩個子存儲器中存數的數據用於正向遞推,圖4c和圖4d對應的兩個子存儲器存儲的數據用於反向遞推。依次獲取所述4個子存儲器中相應位置 的分組數據即可同時完成正向遞推和反向遞推。採用本實施例所述的系統數據存儲結構,在進行四路並行正反向遞推時,輸入數據存儲器110採用單口ram即可實現正反向遞推數據的讀取,節省了存儲資源。
另外,現有技術在第二解碼器130進行解碼計算時,需要預先存儲系統數據交織後的數據,然後第二解碼器130讀取交織後的數據完成解碼,系統數據以及交織後系統數據的存儲需要8塊12*768的雙口ram。本實施例中第二解碼器130在解碼計算時按第一交織地址直接讀取輸入數據存儲器110中的系統數據,無需存儲交織後的系統數據,只需4塊24*384的單口ram即可,節省了一半的存儲空間。
具體的,以採用基四算法為例,每一次解碼分別從每一個子存儲器中讀出4路並行的4個系統數據,其中第一解碼器120分別從4個子存儲器相應的位置讀出一組分組數據,即4*4=16個數據。第二解碼器130則需要按照交織後的順序讀出16個數據,即按照第一交織地址讀出16個數據。本實施例中的所述第一交織地址對應於所述系統數據的4個位於不同子存儲器的分組,這樣可以保證,交織後的數據還保持在輸入數據存儲器110中的分組,即原來屬於同一分組的四路並行的數據在交織後仍然按照原來的次序並行,仍屬於同一分組,;並且所述第一交織地址保證交織後4組數分別位於4個子存儲器中。這樣,第二解碼器130可以直接按照所述第一交織地址由輸入數據存儲器110中讀取系統數據,完成交織過程,無需預先存儲交織之後的數據,節省了解碼過程所需的存儲空間。
本實施例的提供了一種turbo碼解碼系統,所述的解碼系統包括輸入數據存儲器、第一解碼器、第二解碼器和交織迭代模塊,通過所述輸入數據存儲器按 照預設的存儲格式存儲系統數據,使得採用單口ram即可完成正反向遞推,同過所述第二解碼器按照第一交織地址讀取系統數據,使得無需預先存儲系統數據交織後的數據,從而減小了解碼過程中所需的存儲空間。
實施例二
本實施例以上述實施例為基礎,提供了一種turbo碼解碼系統。圖5是本發明實施例二提供的一種turbo碼解碼系統的結構圖,如圖5所示,所述的解碼系統的第二解碼器130包括:第一交織地址發生器210、交織地址存儲器220和解碼單元230;其中,
第一交織地址發生器210用於在正向遞推過程中,計算正向交織地址,並根據所述正向交織地址讀取所述系統數據;在反向遞推過程中,讀取交織地址存儲器220中存儲的部分反向交織地址,並根據所述部分反向交織地址讀取所述系統數據;解碼單元230用於根據所述第二校驗信息和讀取的所述系統數據獲得第二外信息。
可選的,第一交織地址發生器210還用於:根據所述部分反向交織地址計算剩餘部分的反向交織地址,並存儲到交織地址存儲器220中。
其中,傳統的turbo解碼系統因為需要正向和反向遞推,需要存儲完整的交織地址,若具有6144個系統數據,則存儲交織地址所需存儲空間為13*6144。具體的,在正向遞推的過程中,第一交織地址發生器210按照交織地址計算方法,實時計算正向交織地址,並按照所述正向交織地址讀取輸入數據存儲器110中的系統數據完成數據交織過程。在反向遞推計算過程中,需要按反向交織地址讀取所述系統數據,為了減少交織地址存儲資源,反向交織地址可以採取實 時計算和部分存儲相結合的方式,即交織地址存儲器220可以採用桌球結構。示例性的,可以提前在交織地址存儲器220的一塊ram中存儲m個反向交織地址,供反向遞推使用;在使用這m個反向交織地址的同時,第一交織地址發生器210通過正向遞推公式計算後m個反向交織地址,存儲在交織地址存儲器220的另一塊ram中,反向遞推和交織地址計算交替進行,其中m的數值可以根據第一交織地址發生器210的計算速度設定,只需滿足在使用完交織地址存儲器220中存儲的m個反向交織地址時,後m個交織地址能夠計算完成即可,示例性的m可以取104。本實施例的方案僅需13*m*2的存儲空間來存儲交織地址,大大節省了解碼過程中所需要的存儲空間。
本實施例的提供了一種turbo碼解碼系統,所述的解碼系統的第二解碼器包括第一交織地址發生器、交織地址存儲器和解碼單元,通過交織地址存儲器存儲部分反向交織地址,並通過第一交織地址發生器實時計算剩餘部分的反向交織地址,減小了解碼過程中所需的存儲空間。
實施例三
本實施例以上述實施例為基礎,提供了一種turbo碼解碼系統。圖6是本發明實施例三提供的一種turbo碼解碼系統的結構圖,如圖6所示,所述解碼系統的交織迭代模塊140可以包括:第二交織地址發生器310,用於計算第二交織地址;外信息存儲器320,用於存儲所述第一外信息和第二外信息。
其中,第二交織地址發生器310按照順序或按第二交織地址將所述第一外信息和第二外信息存儲於外信息存儲器320中,或由外信息存儲器320中讀出所述第一外信息和第二外信息。
具體的,第二交織地址發生器310具體用於:將所述第一外信息順序寫入外信息存儲器320;按照第二交織地址,從外信息存儲器320中讀出所述第一外信息,並輸入第二解碼器130;按照第二交織地址,將所述第二外信息寫入外信息存儲器320;從外信息存儲器320中順序讀出所述第二外信息,並輸入第一解碼器120。
其中,因為所述第一外信息和第二外信息同時是第一解碼器和第二解碼器的輸入數據或輸出數據,現有技術中會分別存儲第一外信息和第二外信息。對於6144個系統數據,第一外信息和第二外信息所需的存儲空間為6*6144*2。本實施例提供的解碼系統,可以對外信息存儲器320的讀和寫同時進行。具體的,第一外信息作為第一解碼器120的輸出,在交織迭代過程中為第二解碼器130的輸入;第二外信息作為第二解碼器130的輸出,交織迭代過程中為第一解碼器120的輸入。在交織迭代時,第二交織地址發生器310按照第一解碼器120的數據輸出順序,順序的將第一外信息存儲到外信息存儲器320中;按照第二交織地址的讀出所述第一外信息,並輸入第二解碼器130進行解碼;第二解碼器130通過計算輸出所述第二外信息;第二交織地址發生器310按照所述第二交織地址將所述第二外信息寫入外信息存儲器320;在第一解碼器120進行解碼時,第二交織地址發生器順序的讀出所述第二外信息,並輸入第一解碼器120。按照這種方法,外信息存儲器320隻需要存儲一組外信息,每一組外信息在存儲時,只需覆蓋外信息存儲器320中的原始數據即可,因此外信息的存儲空間節省了一半,即6*6144。
本實施例提供了一種turbo碼解碼系統,所述的解碼系統的交織迭代模塊包括第二交織地址發生器和外信息存儲器,所述第二交織地址發生器通過控制所 述第一外信息和第二外信息讀出或寫入所述外信息存儲器的順序,減小了外信息存儲器的數據存儲量,從而減小了解碼過程中所需的存儲空間。
實施例四
圖7為本發明實施例四提供的一種turbo碼解碼方法的流程圖,如圖7所示,所述方法具體可以包括如下步驟:
步驟410、存儲模塊將待解碼系統數據存儲於輸入數據存儲器中;其中,所述系統數據平分為n段,各段對應位置的數據構成一個分組,所述系統數據以分組為單位存儲於所述輸入數據存儲器的n個子存儲器中,所述系統數據的前半部分順序間隔存儲於前n/2個子存儲器中,所述系統數據的後半部分倒序間隔存儲於後n/2個子存儲器中,n為大於等於2的偶數。
步驟420、第一解碼器獲取所述n個子存儲器中相應位置的分組數據,並根據第一校驗信息和獲取的所述分組數據計算第一外信息。
步驟430、第二解碼器按第一交織地址讀取所述輸入數據存儲器中的系統數據,並根據第二校驗信息和讀取的所述系統數據計算第二外信息,其中,所述第一交織地址對應於所述系統數據的n個位於不同子存儲器的分組。
步驟440、交織迭代模塊對所述第一外信息和第二外信息進行交織迭代,完成對所述系統數據的解碼。
進一步的,第二解碼器按第一交織地址讀取所述輸入數據存儲器的系統數據包括:
在正向遞推過程中,第一交織地址發生器計算正向交織地址,並根據所述正向交織地址讀取所述系統數據;
在反向遞推過程中,第一交織地址發生器讀取交織地址存儲器中存儲的部分反向交織地址,並根據所述部分反向交織地址讀取所述系統數據。
進一步的,所述的方法還包括:
所述第一交織地址發生器根據所述部分反向交織地址計算剩餘部分的反向交織地址,並存儲到所述交織地址存儲器中。
進一步的,交織迭代模塊對所述第一外信息和第二外信息進行交織迭代包括:第二交織地址發生器計算第二交織地址。
進一步的,交織迭代模塊對所述第一外信息和第二外信息進行交織迭代包括:
第二交織地址發生器將所述第一外信息順序寫入外信息存儲器;
第二交織地址發生器按照第二交織地址,從所述外信息存儲器中讀出所述第一外信息,並輸入第二解碼器;
第二交織地址發生器按照第二交織地址,將所述第二外信息寫入所述外信息存儲器;
第二交織地址發生器從所述外信息存儲器中順序讀出所述第二外信息,並輸入第一解碼器。
本實施例提供的turbo碼解碼方法,與本發明任意實施例所提供的turbo碼解碼系統屬於同一發明構思,具有相應的有益效果。未在本實施例中詳盡描述的技術細節,可參見本發明任意實施例提供的turbo碼解碼系統。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限於這裡所述的特定實施例,對本領域技術人員來說能夠進 行各種明顯的變化、重新調整和替代而不會脫離本發明的保護範圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限於以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的範圍由所附的權利要求範圍決定。