TWI313107B - Unified viterbi/turbo decoder for mobile communication systems - Google Patents

Unified viterbi/turbo decoder for mobile communication systems Download PDF

Info

Publication number
TWI313107B
TWI313107B TW093135238A TW93135238A TWI313107B TW I313107 B TWI313107 B TW I313107B TW 093135238 A TW093135238 A TW 093135238A TW 93135238 A TW93135238 A TW 93135238A TW I313107 B TWI313107 B TW I313107B
Authority
TW
Taiwan
Prior art keywords
path
unit
memory
moment value
block
Prior art date
Application number
TW093135238A
Other languages
English (en)
Other versions
TW200518475A (en
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed filed Critical
Publication of TW200518475A publication Critical patent/TW200518475A/zh
Application granted granted Critical
Publication of TWI313107B publication Critical patent/TWI313107B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Description

13l3l〇7 九、發明說明: 【發明所屬之技術領域】 與渦輪(Γ㈣有關於❹在無線㈣系統巾,料tb(merbi: _〇)之聯合解碼器’特別有關一種 碼語音與資料流的系統。 I、解 【先前技術】 錯誤控制編碼技術會被傳輪端的通道編碼Μ及接收端 ㈣道解碼器使用。通道解褐器從通道接收到訊息,並按照特 疋規則加上些几位(red_ancy),以產生較高位元率⑽ me)的編碼資料。通道解碼器利用這些冗位檢驗並確定原先 傳达的訊息内谷。錯誤控制編碼的目的係在於減少通道雜訊干 擾的影響。錯誤控制碼A致上可分㈣區塊碼(biQek C則以 及k旋碼(GonvGlutional c〇de)it兩種類型^旋碼較常被應 用在無線語音通訊系統中,因為語音通訊對資料重傳率 (retransmission rate)以及延遲(delay)的忍耐度較低。區塊 碼則可用來傳送通量(throughput)要求較高的應用,但是必須 要容忍較大的延遲時間。 維特比(Viterbi)演算法為偵測最大可能 (maximum-likelihood ; ML)序列的一種向前錯誤修正(treiiis) 演算法,並且是一種解迴旋碼的理想演算法。由SB. Wicker 所寫的〃數位通訊與存儲之錯誤控制系統(Error Control System for Digital Communication and Storage, Pretice 1313107 1995)"中有敘述到Viterbi解碼器在行動通訊系統中的 應用。 第1圖為一般Vi terbl解碼器中解碼演算法的流程圖。解 焉的步驟包括置化(quantizati〇n)、分支矩值(branch㈣士) 、算路位矩值更新、存留路徑(survivor path)紀錄、以及 輪出判斷的產生。接收訊號先藉由抽樣被恢復,然後再轉換成 數位訊號。利則貞測數位訊號中框邊界與編碼符號的位置,達 )¾料區塊的同步。在分支矩值運算之後,部分的路徑矩值可 以藉由新的分支矩值而被更新,並且每—個節點的存留路徑會 被作上私圯。最後,解碼輸出序列就可以根據存留路徑資訊而 被產生出來。 第2圖為一般Viterbi解碼器的方塊圖。Viterbi解 馬器20匕括個分支矩值計算(branch metric calculating ; )單元202其輸出會被送至加法比較選擇(add compare select,ACS)單元204。狀態控制器2〇6提供輸入給MC單元 202、ACS單兀204、以及路徑矩值記憶庫2〇8。路徑矩值記憶 庫208像是一個雙緩衝器’用來與ACS單元2〇4互相交換資訊。 ACS單元204的輸出205會提供給追溯(trace_back)記憶庫與 控制器210,其輸出為已解碼位元211。 渦輪(Turbo)碼也被稱為並聯連鎖(parallel concatenated)碼’其效果與香農容量限制(shannon, s 1313107 capaci ty 1 imi t)非常接近。Turbo編碼器的實施通常是將迴旋 編碼器以串聯或並聯方式連接,以得到連鎖的輸出值。從一個 編碼器傳到另一個編碼器的位元序列會被一個虛擬亂數 (pseudo-random)交錯器(interleaver)從新排列,因此由單一 編碼器產生的低比重(1 〇w-we i ght)編碼字會被轉換為高比重 (high-weight)編碼字。第三代(3G)行動無線規範,如分碼多 工存取(code division multiple access; CDMA)2000 以及全 球流動通訊系統(universal mobile telecommunication service ; UMTS)都採用Turbo編碼技術將資料編碼。英國專利 編號GB2352943A以及B. Vucetic與J· Yuan所撰寫的〃渦輪 碼,原理與應用(Turbo codes, principles and application, Kluwer Academic Publishers, 2000)”都有揭露 Turbo 解碼器 中所應用的技術’如最大後置機率判定法則(maximum a posteriori probability ; MAP)、以及軟式輸出維特比演算法 (soft output Viterbi algorithm)等。 弟3圖描述應用MAP演算法的一個反覆(i terat ive)Turbo 解碼器30。Turbo解碼器的接收符號包括代表實際傳輸資料的 系統(systematic)資料、以及編碼後用來檢查資料傳輸是否正 確的同位(par i ty)資料。第一輸入r。為接收符號的同位資料, 透過交錯器304輸入至第一與第二MAP解碼器302與306。第 二輸入η為接收符號的系統資料,會被送至第一 map解碼器302 1313107 中。從解交錯器(de—interleaver)31〇得到的遞迴㈣ 輸入3以會被送至第一 MAp解碼器3〇2中。第一 解碼器 302的輸出3G3於是提供給交錯器_,交錯器頂再將其輸 出送至第二MAP解碼器3〇6。第二_解碼器3〇6從第三輸入 I"2接收輸入,並產生兩個輪屮。笙一 反土呵1因狗出。第一 MAp解碼器3〇6的第一輸 出307a傳至解交錯器31〇’而第二輸出3G?b則傳至另一個解 交錯器312。解交錯器312的輸出會提供給切割器⑻㈣川 作輸入,切割g 314利用-個定限值將軟式輸出轉換為硬式 (hard)輸出,當作接收資訊訊號315。 3G通訊系統通常需要迴旋碼為語音訊號編碼(例如, Vi terbi編碼)’但是同時也需要τ_碼為資料訊號執行編碼 與解碼。這疋纟於語音與資料在傳輸速率、延遲時間等傳輪要 求上有牴觸。目^的解決方法為提供兩套編碼與解碼裝置,當 輪入為高速率資料時,用Turb〇碼編碼,而當輸入為語音或低 速率身料時,用迴旋碼編碼。系統的接收端同樣也會需要兩套 解碼器,如此一來,就會增加編碼與解碼之硬體實現的複雜度 與成本。 【發明内容】 一種維特比(Vi terbi)與渦輪(Turbo)之聯合解碼器,可以 根據輸入編碼類型,選擇執行迴旋(c〇nv〇luti〇nal)或 解碼。在一個實施例中,解碼器包括分支矩值(branch贴计“ 1313107 caicuiation ; BMC)計算單元、控制電路 '追溯(计狀七hd) 單元、交錯/解交錯器、以及Turb〇緩衝器。Mc計算單元接收 Viterbi或Turbo符號,並判斷編碼字的各節點(n〇de)對應的 分支矩值(branch metric)。解碼器將適應輸出的編碼類型, 而控制電路為兩種編碼類型的共同元件,充分的利用記憶庫與 處理器的能力。控制電路根據從BMC單元接收到的對應分支矩 值,以及儲存在第一區塊中先前節點上的部分路徑矩值,計算 各節點上的部分路徑矩值。控制電路之後將計算好的部分路徑 矩值儲存在第二區塊中。處理下一個節點時,控制電路先從第 二區塊中讀取,於計算完之後,儲存到第一區塊中,如此反覆 進行讀取與儲存的動作。這兩個區塊與處理器交換路徑矩值的 資訊。從這兩個區塊讀出與寫入部份路徑矩值的順序與位址, 係根據平行處理的一個固定繞路規則,讓部分路徑矩值能夠平 行處理,以充分利用處理能力。控制電路於是根據編碼字的類 型決定執行選擇或最大後置機率判定法則(maximum a posteriori probability ; MAP)演算法,以辨識各節點上的存 留路桓(survivor path)。 追溯(trace-back)單元於執行Viterbi解碼時接收控制 電路的輸出,並追蹤從控制電路得到的存留路徑。交錯/解交 錯器在執行Turbo解碼時接收控制電路的輸出,並按照一個已 定方式變更或恢復其輸入順序。Turbo緩衝器接收輸入符號與 1313107 交錯/解交錯器之輸出,並為雛單元與交錯/解交錯器提供儲 存。 在一個實施例中,控制電路包括一個加法比較選擇處理器 (add Compare select pr〇cess〇r; Acsp)矩值,包括〗個 (其 m為正整數,而ra+1必須小於該聯合解碼器的約束 長度(constraint length)n+1)、路徑矩值計算單元其中包 括第—與第二區塊、固定繞路電路、以及選擇與MAP計算單元。 ACSP陣列根據對應分支矩值,計算各節點的部分路徑矩值。各 ACSP包括兩個加法比較選擇單元(add c〇即 ACSU) ’平打處理這些部份路徑矩值。路徑矩值計算單元將一 個目前節點’與—㈣前節點的部份路徑矩值分別儲存在兩個 區塊中。每個區塊包括】組記憶庫’ @ I=r+1。固定繞路電路 根據固定繞路規則,為每―^ Acsp以及四組記憶庫建立固定 連接線,四組記憶庫中的兩組係屬於第一區塊,另外兩組屬於 第二區塊。選擇與MAP計算單元執行選擇或Mp計算,以判斷 各節點的存留路徑。選擇與MAp計算單元根據從職單元獲得 的分支矩值,以及從路徑矩值計算單元獲得的部份路徑矩值, 計算Turb◦編碼字的㈣關係度(1〇g_likeiih〇〇d rati〇; LLR)。 1313107 為了讓本發明之上述和其他目的、特徵、和優點能更明顯 易懂,下文特舉一較佳實施例,並配合所附圖示,作詳細說明 如下。 【實施方式】 第4圖顯示一個Viterbi與Turbo的聯合解碼器的實施 例。Vi terbi與Turbo之聯合解碼器4能夠根據接收資料的編 碼方式,執行迴旋或Turbo解碼。聯合解碼器4將一個從輸入 端40得到的,含有雜訊的w位元符號解碼。聯合解碼器4包 括輸入緩衝器43、分支矩值計算(BMC)單元41、控制電路42、 交錯/解交錯器緩衝器44、交錯/解交錯器45、存留路徑更新 單元46、追溯單元47、以及後進先出(LIF0)緩衝器48。 如第4圖所示,控制電路42包括有一組路徑記憶庫(path memory bank)的路徑矩值計算單元(path metric calculation unit ) 421、固定繞路電路422、加法比較選擇處理器(ACSP) 矩值423、以及選擇與MAP計算單元424。選擇與MAP計算單 元424包括迴旋(Viterbi)解碼所需的選擇單元、以及計算 Turbo解碼所需之LLR的MAP單元。控制電路42執行Vi terbi 或Turbo解碼所需要的主要運算,而此控制電路42為Vi terbi 與Turbo解碼共同需要的元件。控制電路42於是可以取代原 本Viterbi與Turbo個別所需要的計算單元。因此包括Viterbi 與Turbo解碼器的接收器晶片之大小就可以減少。由於語音或 11 4 1313107 4
是低資料傳輸率的輸入係以Viterbi碼所編碼的,而高資料傳 輸率的輸入則係以Turbo碼所編碼而成的,因此解這兩種編碼 的處理程序會不同。語音與資料流皆會在接收後傳至B[單元 41以及控制電路42。控制電路42會將處理過的yiterbi編碼 輪入傳送至存留路徑更新單元46以及追溯單元47,控制電路 42則會將處理過的Turb〇編碼輸入傳送至交錯/解交錯器以 及緩衝器43與45,為Turbo編碼輸入執行交錯或是解交錯。
存留路徑更新單元46包括一個存留路徑記憶體 (survivor path memory ; spM),用來儲存 viterM 解碼的 trellis圖中各個節點所判斷出來的存留路徑。 在第一個實施例中,迴旋編碼的約束長度(c〇nstraint length)為5(n=4)’因& ViterM編碼一共有i6個狀態 (2n=16)。ACSP陣列中的Acsp數目被選為2„,其中^必須小於 η’而m在這個實施例中被選為2。各Acsp包括一組加法比較
選擇單兀(add compare select unit ; ACSU),因此可以同時 處理兩個輸人。所以將八組記憶庫(广=8)與四個Acsp搭配, 可以讓四個ACSP同時處理八個部分路徑矩值。 第5圖為描述控制電路5的方塊圖,係第4圖中控制電路 42的實施範例。控制電路5包括記憶庫52、固定繞路電路54、 贿陣列56、以及選擇與,計算單元58。固定繞路電路μ access memory ; RAM)實 連接著利用隨機存取記憶體(rand〇m 12 1313107 現的八組記憶庫520〜527。ACSP陣列56包括四個ACSP 560〜563,每個ACSP包括兩個加法比較選擇單元(ACSU)。各ACSP 560〜563對應選擇與MAP計算單元58中的一個ACSU 580〜583。 ACSU 580〜583的輸出被送至比較選擇(c⑽pare select ; CS) 單元584〜585,而CS單元584〜585的輸出則被送至另一個CS 單元586。 第6a與6b圖描述之前敘述的ACSP之中兩種類型的ACSU 電路範例。第6a圖的ACSU包括三個加法器、兩個比較器、以 及三個多工器,而第6b圖的ACSU則利用查詢表(look up table) 取代其中一個比較器。這兩種類型的ACSU的連接方式與關係 大致為相同的。 第7a圖為一個路徑矩值記憶庫結構組織的範例,用來描 述第4圖中固定繞路電路422中規範的讀/寫記憶庫的選擇規 則。第5a圖的記憶庫位於第4圖中路徑矩值計算單元421中。 這樣的讀/寫選擇規則係藉由從ACSP陣列422中,平行取得並 提供路徑矩值資訊,以加速處理的速度。記憶庫與ACSP陣列 426之間的連接線係根據trellis圖所排列的,配合ACSP陣列 423,同時處理分支矩值與部分路徑矩值。各個路徑矩值記憶 庫組(memory bank ; MB)係由一個位址產生器(address generator ; AG)所管理的。 13 1313107 如第7a圖所示,包括8組記憶庫(Bank(〇)〜Bank(7)),以 及4個ACSPCACSPO〜ACSP3)。各組記憶庫包括兩個區塊(區塊A 與區塊B)’分別用來儲存對應兩個不同時間點的路徑矩值資 訊。Viterbi解碼所使用的讀/寫記憶庫選擇規則會以下面的範 例作解說。第一組路徑矩值資訊於時間點七時,分別儲存在區 塊A的區塊(〇)與區塊(4)中。Acsp〇獲取第一組路徑矩值資訊, 以產生兩個新的部分路徑矩值,並將新的部分路徑矩值在時間 點tl+P,分別儲存在區塊β的區塊(〇)與區塊(丨)中,其中p代 鲁 表ACSP用來產生新的部分路徑矩值之處理時間。 第7b圖則為第7a圖的詳細圖示,其中的數字與索引皆為 二進位顯示。每組記憶庫各有兩個記憶單元,因此Acsp會對 記憶庫作兩次存取的動作以處理兩個記憶單元中的資料。例如 ACSP(OO)在時間點tl,從區塊a中狀態索引⑹价化仏)為 0000以及1000的記憶單元裡,取得路徑矩值資訊。之後, ACSP(OO)會產生兩個新的部分路徑矩值,並將這兩個新的部& 鲁 路徑矩值於時間點tl+p’儲存在區塊B中狀態索引為以及 〇〇1〇的記憶單元裡。同時’八(:515(01)、礼讣(10)、以及^证(11) 亦以相同的方式與對應的區塊互動。 處理完各組記憶庫的第一記憶單元之後,A c s p ( 〇 〇)於時間 點從區塊a中,狀態索引為〇〇〇1與〇〇11的記憶單元中取得 路徑矩值資訊。同樣地’ Acsp⑽)產生兩個新的部分路徑節矩 14 13131〇7 值,並於時間+ . h+p時儲存在區塊B中,狀態索引為〇〇〇1與 〇 011的記憶單-、 几裡面。其餘的ACSP也以類似ACSP(OO)所執行
的讀/寫動作,PI A 冋時將各組記憶庫中第二記憶單元作讀/寫的處 理。 在下一個時間點時,ACSP陣列中各ACSP從區塊B中對應 的。己隐單兀項出路徑矩值資訊,以產生新的路徑矩值資訊,然 後將新的路㈣值資訊儲存在區& a中。這樣的讀/寫操作重 複兩次’-次為了各組記憶庫中第一記憶單元,—次為了第二鲁 °己隱單兀。ACSP利用類似雙緩衝器的兩個區塊(A與B),讓對 應先前節點的部分路徑矩值’只有在獲得目前節點的所有部份 仁矩值之後,才被覆寫(〇verwrite)。原先儲存在區塊A的 路從矩值資訊會利用一個對應的分支矩值被計算出來,並被儲 存在區塊B中,然後區塊B的路徑矩值資訊也利用—個對應的 刀支矩值被6十算出來,並儲存於區塊A中,以此類推。 固定繞路單元規範的上述讀/寫選擇規則,也被稱作存取籲 C憶庫的繞路規則’可以利用下面的步驟作分析κ態的數目 2n與解碼的輸入符號之約束長度(n+1)有關,而一個特定狀態索 引Sn-U-SAS。會被分配給每一個狀態。在第一個實施例中,解 碼器的約束長度為5(n=4),因此一共有16個狀態(2n=i6)。記 憶庫組的數目為2B+1,其中m+1必須要小於或等於n。在第一個 實施例中,m被選A 2 ’因此冑8組記憶庫。記憶庫索引 15 4 1313107
Sn lSn—2.丄 μ 與 ACSP 索引 ς 9ς 〇 &主-& 乐bn — 2bn-3".Sn-m-l代表者它們分別對應的 記憶庫與ACSP。
^在第個實施例中,n = 4,且m = 2,狀態索引為SaSASfl的 "己隐早7L代表著此記憶單元係包括在索引為的記憶庫裡 面’例如狀態索引為卿的記憶單元,係屬於記憶庫剛中。 各ACSP根據本身的Acsp索引SzSi,從狀態索引為s^SiS。的記 憶單元中儲存的兩個部分路健值讀出。例如,ACSP 1G將狀 〜索引為GUO或哪,以及_或丨迎之記憶單元中儲存 的P刀路t矩值讀出來。當Acsp產生新的部分路徑矩值後, 這些新的部分路徑矩值會被寫入狀態索❹⑽似。的記憶單 元中此狀癌索引中兩個最高位S3S2與ACSp索引相同。例如 ACSP 1G將新的部分路徑矩值寫人狀f f引為ΐ(^或圓 以及狀態索引為1010或1011的記憶單元中。
第8圖顯示根據第一實施例實現之Turb_碼的路徑矩值 記憶庫存取方式。TurbQ解碼的繞路規則與心他解碼幾乎 完全相同,因此這兩種解碼可以分享同—個固定繞路單元,也 就是ACSP陣列、以及儲存再路徑矩值計算單元中的記憶庫。 Turbo幾碼必須要將狀態索引執行位元逆轉⑽reversi〇n), 也就是將記憶單元的狀態索引從_轉變成⑽,以及將記憶 單元的狀態索引從G11轉變成11G。如第8圖所示,記憶庫與 ACSP之間的讀/寫連接方式與先前所敘述的viterbi解碼一 16 4 13131〇7 樣,不過狀態索引(沒有顯示於圖中)以及所對應的記憶庫索引 卻會被逆轉。 如第4圖所示’BMC單元41計算分支矩值γ,而路徑矩值 計算單元421則儲存ACSP陣列423所計算出來的向前路徑矩 值α、以及向後路徑矩值β。這三個矩值α、β、以及γ被選擇 與MAP計算單元424用來計算似然關係度(1〇g_Ukelih〇〇d ratio,LLR) ’ LLR 如下所示。 A(ci) = l〇g
Ms~\ _/=0____
第一實施例中的Turbo解碼利用MAP解碼演算法,並根據 刀支矩值Y、向前路徑矩值α、以及向後路徑矩值P,來計算 各時間點的LLR。 第Θ圖描述第二實施例的路徑矩值記憶庫存取規則。在第 二個實施例中,編碼器的約束長度為6(η=5),因此Viterbi解 碼一共有32(25)個狀態。也就是第二實施例中,有四個ACSP(2m, ms4,選擇m=2)以及八組記憶庫(2m+1)。由於每個記憶庫中有四 組記憶單元’各個ACSP在一個週期内只能對一個記憶庫執行 存取’各ACSP因此需要從第一區塊中兩個對應的記憶庫讀取 部分路徑矩值四次,每記憶單元都要被讀取到,相同的’將新 的部分路徑矩值寫入第二區塊中兩個對應記憶庫四次。讀與寫 記憶庫的繞路規則與第一實施例是相同的。 17 4 1313107 第l〇a與第10b圖描述第三實施例中,對應256狀態 Viterbi解碼之路徑矩值記憶庫的結構組織與資料架構。第三 個實施例中,編碼器的約束長度為9,並且也是使用了四個ACSP 與八組δ己憶庫。每一個路徑矩值記憶庫都有兩個區塊(區塊A 與區塊B) ’並且這兩個區塊a與b的區塊編號分別為〇與1。 四個ACSP在一個週期間處理八個狀態,因此花費在解碼每一 個256狀態的Viterbi編碼字,Acsp需要犯個週期 8 32)從5己憶庫中讀出或寫入一個節點的部份路徑矩 鲁 值。 用在256狀態Viterbi解碼的硬體裝置(例如Acsp與記憶 庫)’在處理速度上以及記憶庫大小上,也適用於8狀態 解碼中。Turbo解碼中,編碼器的約束長度為4(n=3),就會形 成八個可能狀態。第U圖顯示根據第三實施例之Turb〇解碼 的路徑矩值§己憶庫結構。Turb〇解碼的狀態索引與viterbi解 碼不同,這是因為Turbo解碼需要位元逆轉。第三實施例的窗 癱 大小(window size)被設定為32(k=32),因此仏汁^解碼根據 32個向後路徑矩值β紀錄對一個Turb〇編碼字解碼。在每一個 週Ό ’ ACSP處理八個狀態’以獲得—個向後路徑矩值β,並 根據時間序列t、t+卜儲存在記憶庫中。在第k個週期 中(本實施例中,k=32),ACSP處理了 8k個狀態(8*32=256), 18 1313107 而且產生並儲存k個向後路徑矩值β紀錄以及一個向前路徑矩 值α在記憶庫中。 第4圖中的選擇與MAP計算單元424從BMC單元41中押 取分支矩值γ,並且從儲存在路徑矩值計算單元421的記憶庫 中,獲取1個向前路徑矩值α紀錄、以及32個向後路徑矩值3 紀錄,並且根據這些矩值計算LLR。選擇與ΜΑρ計算單元的結 果會輸出至交錯/解交錯器44中,以產生最終的Turb〇解碼答 案。 第12圖描述使用在Turbo解碼中的MAp解碼演算法。第 10圖只顯示了四個狀態的四個階段。每個階段會算出一個向後 路徑矩值β,可是每個編碼字總共只會算出—個向前路徑矩值 ^LLR代表著答案是!的機率ρ⑴與〇的機率ρ⑻之間比例 的對數(log)。
Vi terbi與Turb0之聯合解碼器可依據接收資料的類型調 整解碼方式,且㈣電路被設計為可以儲存並計算化抓與 Turbo解碼得到的部分路徑矩值。兩種解碼所利用的A(:sp陣列 讀取記憶庫的繞路規則是固定的。在—個實施财,儲存部分 路徑矩值的記憶庫,無論用在Viterbi或是Turb〇,都可以充 分的被使用。例如’假設解碼器被設計為專門接收挪狀態 vlterbi編碼字,或是8狀態Turb〇編碼字,τ_〇解碼的窗 大小就會被選為32⑽/8)。在解8狀態Turb。編碼字時,記 1313107 隐庫儲存對應32時間點的向後路徑矩值的八個狀態,而解256 狀I、V i terbi編碼字時,ACSP陣列在一個週期中,會處理八個 因此共需要32個週期才可以解完一個vi terbi編碼 字。因此,這兩種解碼種類的記憶庫大小以及處理時間大約相 5在另個實施例中,許多如先前所述的Vi terbi與Turbo 之聯合解碼器可以被同時使用,用來對包括許多Turb〇符號或 /及Viterbi符號的資料流作解碼,其中的每一個解碼器都有 月匕力對任何-種輸入解碼。而無論解碼器所使用的解碼方式為鲁 何,各解碼器花費在每一個編碼字的解碼時間都會是差不多 的。這樣的設計結構可以降低解碼器的數量,因為每個解碼器 都可以用來對任何—種編碼(Viterbi & Turb。)符號作解碼。 另一個優點就是所有的解碼器都可以在差不多同一時間完成 解碼的工作’因此這些解碼器可以平行的處理資料流,而不必 因為某些解碼器的延遲花時間等待。 雖然本發明已以較佳實施例揭露如上,然其並非用以限定 · 本發明’任何熟習此技#者,在不脫離本發明之精神和範圍 内,备可作些許之更動與潤飾,因此本發明之保護範圍當視後 附之申請專利範圍所界定者為準。 【圖式簡單說明】 第1圖為Viterbi解碼器的一個實施例流程圖。 第2圖為nterbi解碼器的一個實施例方塊圖。 20 1313107 弟3圖為根據MAP演算法之反覆Turbo解碼器之方塊圖。 第4圖為根據第一實施例之VUerbi與Turb〇之聯合解碼器的 方塊圖。 第5圖為第四圖中控制電路的一個實施例之方塊圖。 第6a圖描述加法比較選擇單元(ACSU)範例的電路圖。 第6b圖描述ACSU之另一個範例的電路圖。 第7a圖顯示根據第一實施例之路徑矩值記憶庫結構。 第7b圖為第7a圖之詳細圖示。 第8圖顯示根據第一實施例之Turb〇解碼的路徑記憶庫存取規 則。 第9圖顯示根據第二實施例之路徑矩值記憶庫結構。 第圖顯示根據第三實施例中256狀態的^七叶“解碼之路 徑矩值記憶庫結構。 第10b圖顯示根據第三實施例巾256狀態的Viterbi解碼之路 徑矩值記憶庫對應的資料結構。 第11圖顯示根據第三實施例中了咖解碼的路徑矩值記憶庫 的資料結構。 第12圖顯* TUrb0解碼中應用的MAp解碼演算法。 【主要元件符號說明】 20〜Viterbi解碼器; 202〜分支矩值計算(bmc)單元; 21 1313107 204 ~加法比較選擇(ACS)單元; 205〜ACS輸出; 206〜狀態控制器; 208〜路徑矩值記憶庫; 210〜追溯記憶庫與控制器; 211〜已解碼位元; 30〜Turbo解碼器; 302〜第一 MAP解碼器; 303〜第一 MAP解碼器的輸出;
304、308〜交錯器; 306〜第二MAP解碼器; 307a、307b〜第二MAP解碼器的第一與第二輸出; 310〜解交錯器; 311、312〜解交錯器輸出; 314〜切割器; 315〜接收資訊訊號; 4〜Viterbi與Turbo之聯合解碼器;
40〜輸入端; 41〜分支矩值計算(BMC)單元; 42〜控制電路; 43〜輸入缓衝器; 44〜交錯/解交錯器缓衝器; 45〜交錯/解交錯器; 46 ~存留路徑更新單元; 22 1313107 47〜追溯單元; 48〜後進先出(LIFO)緩衝器; 421〜路徑矩值計算單元; 422〜固定繞路電路; 423〜加法比較選擇處理器(ACSP)陣列; 424〜選擇與MAP計算單元; 5〜控制電路; 52〜記憶庫; 54〜固定繞路電路; 56〜ACSP陣列; 58〜選擇與MAP計算單元; 5 2 0〜5 2 7〜記憶庫; 560〜563 〜ACSP ; 580〜583〜加法比較選擇單元(ACSU); 584〜586 ~比較選擇(CS)單元。 23

Claims (1)

1313107 十、申請專利範圍: ^ I 一種維特比(Viterbi)與渦輪(Turbo)聯合解碼 可對Viterbi或Turbo編碼字進行解碼,該聯合解碼 器包括: 味—分支矩值(branch metric calCulation ; BMC)計 算單元,純複數符號’並判斷該編碼字的各節點(她)對 應的一分支矩值; -控制電路’根據從BMC單元接收到的該對應分支矩值, 以及儲存在—第—區塊中―先前節點上的部分路徑矩值,計算 各節點上的部分路徑矩值,將所計算得到的該部分路徑矩值儲 存在-第二區塊中,其中從該等區塊讀出與寫人料部份路徑 矩值的順序與㈣,係按照平行處理的—岐繞路關,以及 根據該編冑字類型決定執行選擇或最大後置機率判定法則 (maximum
a posteriori probability ; MAP)演算法, 以辨識各郎點上的一存留路徑 (survivor path);
追溯(trace-back)單元,耦接於該控制電路,根據: 蹤從該控制電路得到的該存留路徑,為編碼字產」 解碼輸出; -交錯/解交錯器,轉接於該控制電路,按照一個已定方 式變更或恢復該輸入順庠,盘π 貝斤為Turbo編瑪子產生解碼輸出;以 Tun_器’接收輸人符號與該交錯/解交錯器之輸 24 1313107 出,並為該_c單元與該交錯/解交錯器提供儲存。 2.如申凊專利範圍第1項所述之聯合解碼器,其中該控 制電路包括: 一加法比較選擇處理器(add compare select ΡΓ〇ί:_〇Γ ; ACSP)陣列,包括J個ACSP ,根據該對應分支 矩值計算各節點的該部分路徑矩值,其中〇Gsp包括兩個加 法比較選擇單元(add c〇mpare的“以 平行處理該等部份路徑矩值,其中j=2m,m為—正整數; -路徑矩值計算單元’包括該第—與第二區塊,分別儲存 目刚郎點與-先前節點的該等部份路徑矩值,其中各區塊包 括工組記憶庫,而I = 2m+1 ; 疋繞路電路’與該ACS p陣列以及該路徑矩值計算單 元搞接,根據該固定繞路規則,為每—個則p以及四組記憶 庫建立固疋連接線’四組記憶庫中的兩組係屬於該第一區塊, 另外兩組屬於該第二區塊;以及 選擇與MAP計算單元,執行選擇或,計算,以判斷 各節點的該存留路徑。 必 々申明專利|&圍第2項所述之聯合解碼器,其中财丄 須小於該聯合解碼器的 的約束長度(constraint length)。 4 . 一與該第 如申明專利範圍第2項所述之聯合解碼器,其中該第 區塊大小相同,並且各組記憶包括相同數量的記憶 25 1313107 單元,用來儲存該等部份路徑。 5 ·如申請專利範圍第2項所述之聯合解碼器,其中該選 擇與MAP計算單元根據從該BMC單元獲得的分支矩值,以及 從該路徑矩值計算單元獲得的該等部份路徑矩值,計算該 Turbo編碼字的似然關係度(1〇g_likeiih〇〇d rati。; LLR) 〇 6.如申請專利範圍第5項所述之聯合解碼器,其中該 LLR關係度係用來估計追蹤該存留路徑的一機率,其算式 ’算式中α代表向前遞迴(f 〇rward 或· A,、 L^inrKrmii)
^ I Δ(ο^) = l〇g-^-° recursion) , γ recursion) ’ β 代表向後遞迴(backward 代表分支機率。 7.如申請專利範圍帛2項所述之聯合解碼器,其中該路 棱矩值計算單元為豸Turb。編碼字的每_個狀態儲存一向前 路徑矩值α,以及K個向後路徑矩值β,其中κ為T⑽。解碼 的窗大小。 8 .如中凊專利範圍第7項所述之聯合解碼器,立中 W該解碼H能夠將256個狀f的viterbi編碼字 與8個狀態的Turbo編碼字解碼。 9.如申咕專利|巳圍第丄項所述之聯合解碼器,其中與各 節點相關的該分支矩值為哕銘赴 值马该即點上該接收符號與該解碼輪出 26 1313107 之間的平方距離(squared distance) 〇 10. 如申請專利範圍第1項所述之聯合解碼器,更包括一 後進先出(iast_in_first_〇ut; lzfo)緩衝器,與該追溯單 元耦接’用來輸出該解碼Viterbi輸出。 11. 如申請專利範圍第i項所述之聯合解碼器,更包括一 存留路控更新單元,與該控制電路以及該追溯單元輕接,用來 儲存最新計算得到的存留路徑。 12. 如申請專利範圍第1項所述之聯合解碼器,其中嗜 Turbo緩衝器包括—輪入緩衝器以及—交錯/解交錯緩衝哭, 該輸入緩衝器儲存該等接收符號,而該交錯/解交錯緩 存該交錯/解交錯器的輪出。 ° : 27
TW093135238A 2003-11-24 2004-11-17 Unified viterbi/turbo decoder for mobile communication systems TWI313107B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US52398103P 2003-11-24 2003-11-24

Publications (2)

Publication Number Publication Date
TW200518475A TW200518475A (en) 2005-06-01
TWI313107B true TWI313107B (en) 2009-08-01

Family

ID=34619623

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093135238A TWI313107B (en) 2003-11-24 2004-11-17 Unified viterbi/turbo decoder for mobile communication systems

Country Status (7)

Country Link
US (1) US7246298B2 (zh)
JP (1) JP2007510337A (zh)
CN (1) CN100517984C (zh)
DE (1) DE112004002008B4 (zh)
GB (1) GB2418822B (zh)
TW (1) TWI313107B (zh)
WO (1) WO2005050848A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131055B2 (en) * 2003-02-25 2006-10-31 Intel Corporation Fast bit-parallel Viterbi decoder add-compare-select circuit
US7725798B2 (en) * 2004-02-27 2010-05-25 Joanneum Research Forschungsgesellschaft Mbh Method for recovering information from channel-coded data streams
KR100630168B1 (ko) * 2004-08-09 2006-09-29 삼성전자주식회사 이동통신 시스템에서 비터비 디코더의 공유 방법 및 장치
US8023554B2 (en) * 2004-10-06 2011-09-20 Broadcom Corporation Method and system for single antenna receiver system for WCDMA
TWI255622B (en) * 2004-10-21 2006-05-21 Mediatek Inc Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof
JP4432781B2 (ja) * 2005-01-17 2010-03-17 株式会社日立製作所 誤り訂正復号器
KR100675389B1 (ko) * 2005-01-27 2007-01-29 삼성전자주식회사 역추적 작업을 병렬적으로 수행하는 비터비 디코더 및 그디코딩 방법
US7450668B2 (en) * 2005-02-02 2008-11-11 At&T Intellectual Property I, L.P. Soft bit viterbi equalizer using partially collapsed metrics
US7877674B2 (en) 2006-07-25 2011-01-25 Broadcom Corporation Method and system for redundancy-based decoding of voice content in a wireless LAN system
US7917834B2 (en) * 2005-12-08 2011-03-29 Electronics And Telecommunications Research Institute Apparatus and method for computing LLR
EP2158682A1 (en) * 2007-06-14 2010-03-03 Intel Corporation Unified decoder for convolutional, turbo, and ldpc codes
CN101312531B (zh) * 2007-11-02 2010-11-17 北京创毅视讯科技有限公司 一种广播***中的流媒体业务传输方法及流媒体帧封装器
TWI339956B (en) * 2007-12-31 2011-04-01 Ind Tech Res Inst Method and apparatus for convolutional turbo decoding
US8327058B2 (en) * 2008-07-25 2012-12-04 Broadcom Corporation Method and system for routing data in a parallel turbo decoder
US8332735B1 (en) * 2009-03-09 2012-12-11 Xilinx, Inc. Generating a log-likelihood ratio for signal processing
TWI383596B (zh) * 2009-04-28 2013-01-21 Via Tech Inc 維特比解碼器
CN102064839B (zh) * 2009-11-11 2013-11-20 中国科学院微电子研究所 一种高速低功耗多码率的Viterbi译码器
US8402342B2 (en) * 2010-02-26 2013-03-19 Research In Motion Limited Method and system for cyclic redundancy check
US8433004B2 (en) 2010-02-26 2013-04-30 Research In Motion Limited Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward
WO2012032371A1 (en) * 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.
JP6155959B2 (ja) * 2013-08-19 2017-07-05 富士通株式会社 復号化装置、及び、復号化方法
KR20150061253A (ko) * 2013-11-27 2015-06-04 한국전자통신연구원 하프 파이프라인 방식의 터보 디코더 및 그의 제어 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930004862B1 (ko) * 1990-12-17 1993-06-09 삼성전자 주식회사 상태 평가량 기억장치
JPH09182067A (ja) * 1995-10-27 1997-07-11 Toshiba Corp 画像符号化/復号化装置
JP3239870B2 (ja) * 1998-12-28 2001-12-17 日本電気株式会社 データ誤り訂正システム
US7127664B2 (en) * 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
JP3823731B2 (ja) 2001-01-17 2006-09-20 株式会社日立製作所 誤り訂正復号器
KR100415116B1 (ko) 2001-02-19 2004-01-13 삼성전자주식회사 비터비 디코더와 터보 디코더의 통합 디코더 및 통합디코딩 방법
US6823489B2 (en) * 2001-04-23 2004-11-23 Koninklijke Philips Electronics N.V. Generation of decision feedback equalizer data using trellis decoder traceback output in an ATSC HDTV receiver
KR100438537B1 (ko) 2001-07-19 2004-07-03 엘지전자 주식회사 이동 통신 단말기에서의 복호 장치 및 그 제어 방법
US7661059B2 (en) 2001-08-06 2010-02-09 Analog Devices, Inc. High performance turbo and Viterbi channel decoding in digital signal processors
KR100436434B1 (ko) * 2001-11-19 2004-06-16 한국전자통신연구원 상태 메트릭을 갖는 터보 복호기 및 그를 이용한 계산 방법

Also Published As

Publication number Publication date
WO2005050848A1 (en) 2005-06-02
TW200518475A (en) 2005-06-01
CN1853350A (zh) 2006-10-25
GB2418822A8 (en) 2006-08-08
GB0600603D0 (en) 2006-02-22
GB2418822B (en) 2007-12-12
US20050149838A1 (en) 2005-07-07
DE112004002008T5 (de) 2006-09-07
GB2418822A (en) 2006-04-05
JP2007510337A (ja) 2007-04-19
DE112004002008B4 (de) 2009-10-01
CN100517984C (zh) 2009-07-22
US7246298B2 (en) 2007-07-17

Similar Documents

Publication Publication Date Title
TWI313107B (en) Unified viterbi/turbo decoder for mobile communication systems
US8566666B2 (en) Min-sum based non-binary LDPC decoder
US7127664B2 (en) Reconfigurable architecture for decoding telecommunications signals
US7454685B2 (en) Method and apparatus for decoding low density parity check code using united node processing
US8065588B2 (en) Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave
EP1204211B1 (en) Butterfly processor for telecommunications
US8650451B2 (en) Stochastic stream decoding of binary LDPC codes
JP2003534680A (ja) 強化型ターボプロダクト符号復号器システム
US6563890B2 (en) Maximum a posteriori probability decoding method and apparatus
EP1204212B1 (en) Method and apparatus for path metric processing in telecommunications systems
US20060265635A1 (en) Method of maximum a posterior probability decoding and decoding apparatus
JP2001024521A (ja) ターボデコーダ
US7584389B2 (en) Turbo decoding apparatus and method
JP2003032126A (ja) ターボ復号方法及びターボ復号装置
US7234100B1 (en) Decoder for trellis-based channel encoding
JP3540224B2 (ja) ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
JP2003152556A (ja) 誤り訂正符号復号装置
JP4295871B2 (ja) 誤り訂正復号器
JP2006115534A (ja) 誤り訂正符号の復号方法、そのプログラム及びその装置
JP2006115534A5 (zh)
JP4525658B2 (ja) 誤り訂正符号復号装置
CN113992213A (zh) 一种双路并行译码存储设备及方法