亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于多核DSP零尾卷積Viterbi譯碼的方法及系統(tǒng)的制作方法

文檔序號:9846362閱讀:716來源:國知局
基于多核DSP零尾卷積Viterbi譯碼的方法及系統(tǒng)的制作方法
【技術領域】
[0001 ]本發(fā)明涉及一種基于多核DSP零尾卷積Viterbi譯碼的方法及系統(tǒng)。
【背景技術】
[0002]TD-SCDMA技術是ITU第三代移動通信技術標準之一,同時也是TDMA,F(xiàn)DMA以及CDMA三種多址方式的靈活運用,隨著我國對TD-SCDMA的大力扶持,其已成為我國主流三代移動通信技術之一。在TD-SCDMA系統(tǒng)中,一般采用卷積碼和Turbo碼這兩種信道編碼方式進行編碼,而譯碼方式則采用Viterbi譯碼。通常我們用(n,k,m)這種結構來表述卷積編碼的結構。其中k為每次輸入到卷積編碼器的bit數(shù),η為每個k元組碼子對應的卷積碼輸出η元組碼子,m為卷積編碼存儲度,也就是卷積編碼器的k元組的級數(shù)。若編碼輸入長度為Τ,則輸出長度為(T+m_l)*n/k0
[0003]Viterbi譯碼算法于1967年由Viterbi本人提出,目的是為了降低卷積譯碼計算復雜度。它是一種動態(tài)規(guī)劃算法,通過尋找與接收序列漢明距離最少的編碼序列,從而實現(xiàn)譯碼。整個Viterbi—碼算法可以簡單概括為“相加-比較-存儲”。對于(η,k,m)卷積碼來說,其每個碼段的狀態(tài)數(shù)為21^1個,對每一時刻要做21^1次“相加-比較-存儲”操作,其中每一次操作包括2?加法,215—1次比較,同時要保留2km—1條幸存路徑。由此可見,Viterbi的計算復雜度與輸入序列長度無關,只與約束長度m以及信息源分組k有關。但對于存儲來說,隨著輸入序列長度的增長,譯碼所需的總的狀態(tài)數(shù)也相應增加,從而會給存儲空間帶來壓力。
[0004]卷積碼已用于諸多通信領域,出TD-SCDMA系統(tǒng)外,衛(wèi)星,WIFI等通信系統(tǒng)同樣也使用了零尾卷積。目前主流卷積譯碼方式為硬件實現(xiàn),通過硬件加速器的設計以得到快速高效Viterbi譯碼。但對于不同通信系統(tǒng)來說,卷積編碼方式不同,若用硬件實現(xiàn),則對于不同系統(tǒng)來說Viterbi譯碼器都需要重新設計,不夠靈活,增加了開發(fā)成本。而軟件實現(xiàn)則靈活度高,但基于DSP核實現(xiàn)又要考慮狀態(tài)存儲因素且運算效率相對較低,存儲空間和吞吐率也是制約軟件實現(xiàn)Viterbi譯碼的兩大關鍵因素。
[0005]現(xiàn)有技術中,Viterbi譯碼算法的基本流程主要如圖1所示。其核心運算單元為“加比選”單元。但不管硬件實現(xiàn)或單DSP核運算,都需要對“加比選”單元的輸出結果進行存儲,輸入數(shù)據(jù)的長度,決定了對存儲的需求,最后通過所存結果回溯,從而進行最后的判決輸出。

【發(fā)明內(nèi)容】

[0006]針對上述問題,本發(fā)明提供一種將待譯碼軟信息序列分段,將分段后的序列分配到各DSP核分別處理,減輕了各DSP核存儲壓力、提高了并行度的基于多核DSP零尾卷積V iterb i譯碼的方法及系統(tǒng)。
[0007]為達到上述目的,本發(fā)明基于多核DSP零尾卷積Viterbi譯碼的方法,包括
[0008]SI將待譯碼信息序列進行分段,其中各段待譯碼信息序列最小長度I/ > (xn+sn)/k,x為譯碼器可進行回溯并判決輸出的碼段,s為各段增加的回溯碼段;
[0009]S2將分組后的各段待譯碼信息序列分配到各DSP核內(nèi),分別進行Viterbi譯碼。
[0010]具體地,待譯碼信息序列進行分組具體包括:
[0011]確定譯碼器可進行回溯并判決輸出的碼段X;
[0012]根據(jù)Viterbi譯碼器序列長度L與碼段數(shù)u之間的關系公式u = Lk/n,得到碼段X對應的待譯碼信息段的最小長度I/ 2 xn/k;
[0013]確定各段增加的回溯碼段s,同樣根據(jù)Viterbi譯碼器序列長度L與碼段數(shù)u之間的關系公式u = Lk/n,得到增加的回溯碼段s對應的待譯碼信息段的最小長度I/ > sn/k;
[00Μ]計算得到待譯碼信息序列最小長度I/ > (xn+sn)/ko
[0015]優(yōu)選地,譯碼器可進行回溯并判決輸出的碼段X通過實驗的方法獲得,其中X為5m。
[0016]進一步地,各核獨立進行Viterbi譯碼,回溯的起始位置通過對最后一次狀態(tài)進行比較,找出最大狀態(tài)位置作為回溯起始位置。
[0017]進一步地,還包括合并譯碼的步驟,具體包括:用下一段的開頭覆蓋前一段末尾,覆蓋長度等于s,且s > m。
[0018]進一步地,還包括在SI前對待譯碼信息序列進行量化的步驟。
[0019]進一步地,所述的待譯碼信息序列通過均勻量化方法或非均勻量化方法進行量化。
[0020]為達到上述目的,本發(fā)明基于多核DSP零尾卷積Viterbi譯碼的系統(tǒng),包括
[0021]分段模塊,用于將待譯碼信息序列進行分段,其中各段待譯碼信息序列最小長度L7 > (xn+sn)/k,X為譯碼器可進行回溯并判決輸出的碼段,s為各段增加的回溯碼段;
[0022]DSP譯碼模塊,用于將分組后的各段待譯碼信息序列分配到各DSP核內(nèi),分別進行Vi terbi 譯碼。
[0023]進一步地,還包括合并譯碼模塊,用于將多個DSP中的譯碼進行合并,通過下一段的開頭覆蓋前一段末尾,覆蓋長度等于s,且s > m0
[0024]進一步地,還包括量化模塊,用于對待譯碼信息序列進行量化。
[0025]本發(fā)明基于多核DSP零尾卷積Viterbi譯碼的方法及系統(tǒng),首先對待譯碼信息序列進行分段,然后將各段分別通過不同的DSP分別獨立的進行譯碼,一方面能夠利用多核條件降低對內(nèi)存的需求,另一方面能夠利用多核條件提高Viterbi譯碼并行度。
[0026]更重要的是,本發(fā)明對待譯碼序列進行分段的依據(jù)是:譯碼器經(jīng)過約5m段處理后,每個狀態(tài)的留選路徑已經(jīng)重合到一起,從而得出,譯碼器不需要將所有碼段譯出再回溯,而是在5m后就可進行回溯并判決輸出,但由于各核獨立運算,每個核最終狀態(tài)可能出錯,從而導致回溯路徑開始進行時的幾個狀態(tài)會出錯,為了彌補這一缺陷,增加回溯深度s,且s 2 m,增加回溯深度,對應于原分塊長度增加sn/k,則I/ > 5mn/k+sn/k= (5mn+sn)/k。這個分段公式保證了可利用的DSP核較多且需譯碼長度不長情況下,每個核所需譯碼的最小輸入長度,過小的輸入將會導致譯碼錯誤,過多的輸入則會造成DSP核利用的不充分,導致并行度下降。通過上述公式,我們可根據(jù)DSP數(shù)目以及最小分段長度,找到最好的折中,充分利用DSP的同時,保證譯碼的正確性。同時增加的回溯深度s可保證在低信噪比以及經(jīng)歷深度衰落信道分段后的回溯路徑在回溯初期狀態(tài)出錯的情況,可利用下一段譯碼進行糾正,保證了譯碼的正確性。
【附圖說明】
[0027]圖1是現(xiàn)有技術Viterbi實現(xiàn)流程圖;
[0028]圖2是本發(fā)明基于多核DSP零尾卷積Viterbi譯碼的方法的基本流程;
[0029]圖3本發(fā)明量化后數(shù)據(jù)分段方法執(zhí)行示意圖;
[0030]圖4本發(fā)明各核Viterbi譯碼后數(shù)據(jù)合并執(zhí)行示意圖。
【具體實施方式】
[0031]下面結合附圖對本發(fā)明做進一步的描述。
[0032]下述各實施例用于實現(xiàn)TD-SCDMA系統(tǒng),待譯碼長度L= 3000的(3,I,9)零尾卷積編碼的Vi terbi譯碼。
[0033]實施例1
[0034]本實施例基于多核DSP零尾卷積Viterbi譯碼的方法,包括:
[0035]SI將待譯碼信息序列進行分段,其中各段待譯碼信息序列最小長度I/ > (xn+sn)/k,x為譯碼器可進行回溯并判決輸出的碼段,s為各段增加的回溯碼段;
[0036]S2將分組后的各段待譯碼信息序列分配到各DSP核內(nèi),分別進行Viterbi譯碼。
[0037]本實施例中,如何分段是核心所在,所分段的長度直接影響最后的譯碼結果,首先分段長度公式的推導如下:
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1