TWI383596B - 維特比解碼器 - Google Patents
維特比解碼器 Download PDFInfo
- Publication number
- TWI383596B TWI383596B TW98113987A TW98113987A TWI383596B TW I383596 B TWI383596 B TW I383596B TW 98113987 A TW98113987 A TW 98113987A TW 98113987 A TW98113987 A TW 98113987A TW I383596 B TWI383596 B TW I383596B
- Authority
- TW
- Taiwan
- Prior art keywords
- processing level
- viterbi decoder
- state
- unit
- comparison
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Description
本發明係有關於無線通訊系統,尤其是有關於改良的維特比解碼器。
第1圖係為一通訊系統的架構圖。一發射器110透過一天線102發出訊息,而一接收器120透過一天線104接收該訊息。天線102和104之間的傳輸通道會使訊息受到干擾。因此發射器110和接收器120之間必須採用一種錯誤控制編碼技術。發射器110在發射訊息前,會按照特定規則加上一些冗位(redundancy),以產生較高位元率(bit rate)的編碼資料。接收器120則利用這些冗位檢驗並確定原先傳送的訊息內容。錯誤控制編碼的目的係在於減少通道雜訊干擾的影響,大致上可分類成區塊碼(block code)以及迴旋碼(convolutional code)這兩種類型。迴旋碼較常被應用在無線語音通訊系統中,因為語音通訊對資料重傳率(retransmission rate)以及延遲(delay)的忍耐度較低。區塊碼則可用來傳送通量(throughput)要求較高的應用,但是必須要容忍較大的延遲時間。
維特比(Viterbi)演算法為偵測最大可能(maximum-likelihood;ML)序列的一種向前錯誤修正(trellis)演算法,並且是一種解迴旋碼的理想演算法。由S.B.Wicker所寫的”數位通訊與存儲之錯誤控制系統(Error Control System for Digital Communication and Storage,Pretice Hall,1995)”中有敘述到Viterbi解碼器在行動通訊系統中的應用。
在第1圖中,接收器120中的射頻模組122首先透過天線104接收射頻訊號並轉為基頻訊號,而類比數位轉換器(ADC)124再將基頻訊號轉為數位訊號,供維特比解碼器126進行解碼步驟。
傳統上維特比解碼器126的硬體架構隨著不同的應用領域而有各種不同的設計方式,因此詳細的介紹不在此贅述。然而,隨著硬體耗電與體積考量的漸趨重要,電路的改良一向是有必要的。
本發明提出一種改良式的維特比解碼器。一路徑權值記憶體中儲存了一狀態矩陣,包含多個階段,每一階段包含2n
個狀態元,每一狀態元具有一索引值及一路徑權值,且對應多個分支權值(Branch Metric)。一回溯單元中包含第一到第n處理層級依序串接,用以找出該狀態矩陣中每一階段的最小路徑權值及對應索引值,以建立一存活路徑。
在每一處理層級中,有至少一個比較選擇單元(Compare Selection Unit;CSU)各比較兩個不同狀態元之路徑權值並輸出較小者,並輸出一旗標以代表比較結果。而一暫存器記錄著每一比較選擇單元所輸出之旗標。該回溯單元可根據所有處理層級的暫存器組態推導出一階段中路徑權值最小之狀態元之索引值。
在每一比較選擇單元中,一第一輸入端以及一第二輸入端各接收不同狀態元之路徑權值。一比較器比較來自該第一輸入端和該第二輸入端之路徑權值,並輸出一旗標以記錄該第一輸入端以及該第二輸入端中路徑權值較小之一者。一選擇器可根據該旗標,選擇性地將該第一輸入端或該第二輸入端所接收到的路徑權值輸出。
其中該旗標可以是一種布林值,例如旗標值0代表該第一輸入端,而旗標值1代表該第二輸入端。
第一處理層級包含2n-1
個比較選擇單元,且該2n-1
個比較選擇單元的每一輸入端依序各對應一不同的索引值,其中n為自然數。該第一處理層級的2n-1
個比較選擇單元接收的2n
個狀態元以進行兩兩比對,篩選半數輸出至下一處理層級。
而第二處理層級以後之每一處理層級的比較選擇單元數量,是前一處理層級的比較選擇單元數量的一半。最後一處理層級只有一個比較選擇單元,輸出之值即代表該狀態矩陣之該階段中的2n
個狀態元中具有最小路徑權值之一者。
同樣地,第一處理層級的暫存器包含2n-1
個位元,儲存對應的2n-1
個比較選擇單元所輸出的旗標。而第二處理層級以後之每一處理層級的暫存器之位元數係前一處理層級的暫存器之位元數的一半。最後一處理層級的暫存器包含一個位元。而每一處理層級的每一比較選擇單元,依序對應同一處理層級的暫存器之一位元。
該回溯單元可根據每一處理層級及其後的所有暫存器,推知最小路徑權值來自前一處理層級的第幾個比較選擇單元。例如,該回溯單元根據第二處理層級至最後處理層級的暫存器組態推知一最小路徑權值來自第一處理層級的一特定比較選擇單元。接著該回溯單元可根據第一處理層級的暫存器推知該最小路徑權值係來自該特定比較選擇單元的一特定輸入端。
該回溯單元根據下列公式判定索引值:
B0
=Rn
[0]
B1
=Rn-1
[B0
]
B2
=Rn-2
[B0
B1
]
B3
=Rn-3
[B0
B1
B2
]
…
Bn
=R1
[B0
B1
B2
B3
...Bn-1
]
Imin
=[B0
B1
B2
B3
...Bn
]
其中R1
到Rn
係為第一處理層級到第n處理層級的暫存器,B0
到Bn
係為布林值0或1,遞次地由對應的暫存器Rn
到R1
中的特定位址中獲取,而特定位址係表示為布林值B0
到Bn
排列而成的二進位值;Imin
代表具有最小路徑權值的狀態元所對應的索引值,表示為布林值B0
到Bn
排列而成的二進位值。
第2圖係為第1圖中維特比解碼器126的架構圖。狀態矩陣是一種機率的概念,用以計算特定狀態元(State)在不同階段之間改變狀態的機率(分支權值)以及存在機率(路徑權值)。在維特比解碼器126中,分支權值處理器202接收ADC 124提供的數位數值#IN,藉以計算狀態矩陣從一個階段跳至下一個階段的所有分支機率,又稱為分支權值(Branch Metric)。分支權值處理器202的輸出接著被送至加法比較選擇(ACS)單元204,使加法比較選擇單元204根據分支權值對狀態矩陣中下一階段的路徑權值(Path Metric)進行更新。該維特比解碼器126中的加法比較選擇單元204可以是多數個平行運作,進行一種自然遞迴運算(Natural Recursion)以產生該狀態矩陣,並將該狀態矩陣儲存在該路徑權值記憶體206中。由於狀態矩陣是逐階段更新,加法比較選擇單元204必須大量的反覆使用,因此路徑權值記憶體206的功能類似一種雙緩衝器,供加法比較選擇單元204遞迴存取。當加法比較選擇單元204完成狀態矩陣的更新運算之後,回溯單元208接著讀取路徑權值記憶體206而進行存活路徑運算以及最大相似度運算,以產生最接近原始發射訊號的訊息碼#OUT。
該維特比解碼器126中所進行的自然遞迴運算,可以是基於各種不同的演算法,例如對數事後機率(Log-Maximum a Posteriori;Log-MAP)演算法、最大對數事後機率(Max Log-MAP)演算法或者強化最大對數事後機率(Enhanced Max Log-MAP)演算法。這些演算法又統稱為軟進軟出(Soft-in-Soft-out;SISO)解碼演算法。然而本發明的實施例亦適用於其他可能的維特比架構,不限定於此段所述之例子。
第3圖係為一基數為四的狀態矩陣(state metric)示意圖。其中橫軸t代表時間或階段,而縱軸代表每一階段所包含的多個狀態元。以第3圖為例,該狀態矩陣包含了多個階段t1
到tM
的狀態向量,每一狀態向量包含了N個狀態元S1
到SN
。以階段tk-1
的狀態元S1
為例,因為狀態矩陣的基數為四(radix 4),該狀態元S1
跳到下一階段的可能分支路徑有四條。實際上在向前錯誤修正(trellis)結構中有明確定義每個階段的每個狀態元所對應的分支。在本例中,由狀態元S1
出發的四條分支各別指向下一階段的狀態元a,b,c和d(未圖示),各具有不同的機率係數γ(S1
,a),γ(S1
,b),γ(S1
,c)和γ(S1
,d)。反過來說,每一現階段的狀態元可能來自前一階段的某四個狀態元。例如在階段tk
中的狀態元S3
,具有四條分支與前一階段的狀態元A、B、C、D(未圖示)相連,各具有機率γ(A,S3
),γ(B,S3
),γ(C,S3
)和γ(D,S3
)。根據事後機率(MAP)演算法,計算這些狀態矩陣的過程統稱為自然遞迴(Natural Recursion)運算,每一狀態元的值可以是正向機率值或反向機率值。一般來說,這些機率值又稱為權值(metric)。在所有的分支權值和路徑權值都求出之後,整個狀態矩陣即以這些權值的型式儲存於第2圖所示的路徑權值記憶體206中,供後續的回溯單元208進行存活路徑分析,以及最大相似度演算演算。
第4圖係為一回溯單元400之實施例,其可對應至第2圖的回溯單元208。在進行存活路徑分析時,需要尋找每一階段之狀態元中具有最小路徑權值者。如第4圖所示,一階段中有四個狀態元,各具有路徑權值P(S1
),P(S2
),P(S3
)及P(S4
),因此總共需要進行三次比較選擇,才能找出最小路徑權值。然而,該最小路徑權值究竟屬於哪一個狀態元,則不得而知。因此傳統的做法是為這些狀態元建立索引值。在本例中該四個狀態元的索引值依序表示為I(S1
),I(S2
),I(S3
)及I(S4
)。一比較選擇單元410a接收第一和第二狀態元的索引值I(S1
)和I(S2
),以及路徑權值P(S1
)和(S2
)。該比較選擇單元410a中包含一比較器412,比較該P(S1
)和P(S2
)以產生一選擇訊號#S。該比較器412基本上可以是減法器,而選擇訊號#S可以是代表正負符號的一布林值。一選擇器414根據該選擇訊號#S從該P(S1
)及P(S2
)中選擇較小之一者輸出,表示為P(A)。同時,一選擇器416也根據該選擇訊號#S從索引值I(S1
)和I(S2
)中選擇對應的值做為輸出,表示為I(A)。同樣的,一比較選擇單元410b對第三狀態元和第四狀態元進行相同處理,從P(S3
)和P(S4
)中選擇其一輸出為P(B),並同時從I(S3
)和I(S4
)中選擇對應之一者輸出為I(B)。該I(A),I(B),P(A),P(B)接著在比較選擇單元410c中進行相同的比較選擇步驟,最後輸出的結果P(C)即為四個狀態元中之最小路徑權值,而I(C)即為具有該最小路徑權值之狀態元的索引值。綜上所述,該等比較選擇單元410必須同時對索引值進行比較選擇的步驟,才能在找到最小路徑權值的時候,記錄其所屬的狀態元是四者中之第幾者。雖然本實施例僅以四個狀態元為例,但是同樣的架構可擴充應用至更多狀態元,本發明不受此限。
第5圖係為本發明另一實施例之回溯單元500。在本實施例中,不需要針對狀態元的索引值進行比較與選擇的運作,而是採用了暫存器來儲存路徑權值的比較選擇結果,最後再用推算的方式找出索引值。在回溯單元500的實施例中,假設有一狀態矩陣已經備妥,儲存於第2圖的路徑權值記憶體206中。該狀態矩陣中的每一階段包含64個狀態元。而該回溯單元500即是取代第2圖的回溯單元208,用來讀取該路徑權值記憶體206並推算存活路徑。
如第5圖所示,該回溯單元500中包含六個處理層級依序串接。將一狀態矩陣的某一階段的64個狀態元輸入至第一處理層級510a的輸入端,最後可由第六處理層級510f輸出該狀態矩陣之該一階段的最小路徑權值及對應索引。每一處理層級中包含多個比較選擇單元700(如第7圖所示),可對不同狀態元之路徑權值進行兩兩比較,找出較小者,並輸出一旗標以代表比較結果。舉例來說,由於比較選擇單元700包含兩個輸入端,而比較的運算實際上是減法。因此第一輸入值與第二輸入值相減所得數值的正負號,就可以當成一種旗標,用來表示兩個輸入值的大小關係。換句話說,透過旗標值可以獲知該兩個輸入值在比較選擇單元700實體腳位上的對應關係。也因此本實施例可以省略索引值的處理過程,直接以旗標來判斷狀態元的索引值。
64個狀態元P0
[0]到P0
[63]輸入第一處理層級510a之後,奇數狀態元和相鄰的偶數狀態元進行比較,其路徑權值較大者被篩除,而路徑權值較小者被選擇後輸出,表示為P1
[0]到P1
[31]。故第一處理層級510a的輸出值數量是輸入值數量的一半。至於每一比較選擇單元700產生的旗標,則以布林數值的型式儲存在一暫存器R1
中。為了兩兩比較64個狀態元,在第一處理層級510a中包含了32個比較選擇單元700(未圖示),共進行了32次比較選擇運算,除了產生32個選擇結果P1
[0]到P1
[31]之外,也產生了32個旗標f1
[0]到f1
[31],依序對應地存放在一長度為32位元的R1
中。
依此類推地,第一處理層級510a輸出數量減半的32個路徑權值P1
[0]到P1
[31]至第二處理層級510b,由第二處理層級510b中的16個比較選擇單元700(未圖示)進行兩兩比較,而產生16個比較選擇結果,表示為P2
[0]到P2
[15]。同樣的,該16個比較選擇單元700亦產生了16個旗標,表示為f2
[0]到f2
[15],儲存在長度為16位元的暫存器R2
中。
依此類推地,第三處理層級510c輸出八個路徑權值P3
[0]到P3
[7]至第四處理層級510d,並將八個旗標f3
[0]到f3
[7]儲存至暫存器R3
中。第四處理層級510d輸出四個路徑權值P4
[0]到P4
[3]至第五處理層級510e,並將四個旗標f4
[0]到f4
[3]儲存至暫存器R4
中。第五處理層級510e輸出路徑權值P5
[0]到P5
[1]至第六處理層級510f,並將旗標f5
[0]到f5
[1]儲存至暫存器R5中。最後的第六處理層級510f輸出單一的路徑權值P6
,即等於該等路徑權值P0
[0]到P0
[63]之中的最小者。而旗標值f6
是單一位元,儲存於暫存器R6
中。
當所有暫存器R1
到R6
的值都齊備後,就可以開始逆推該路徑權值P6
所對應的索引值。詳細實施例將於第8圖中說明。
第6圖係為本發明另一實施例之回溯單元600。在此以每一階段八個狀態元為例。要從八個狀態元中找出路徑權值最小之一者,需要三個處理層級。在第一處理層級610a包含了四個比較選擇單元700,對八個路徑權值P0
[0]到P0
[7]進行兩兩比對,以輸出四個選擇比較結果,表示為P1
[0]到P1
[3]。其中P1
[0]是P0
[0]和P0
[1]中較小之一者,P1
[1]是P0
[2]和P0
[3]中較小之一者,以下類推。暫存器R1
包含四個位元,而第一處理層級610a中的四個比較選擇單元700各輸出一旗標,依序為f1
[0]到f1
[3],儲存在暫存器R1
中對應的位元上,故暫存器R1
中的四個布林值依序可表示為R1
[0]到R1
[3]。
第一處理層級610a輸出的四個路徑權值P1
[0]到P1
[3],接著傳送至第一處理層級610b中的兩個比較選擇單元700進行選擇比較,以產生兩個比較選擇結果,P2
[0]和P2
[1]。同時兩個對應的旗標f2
[0]和f2
[1]亦儲存至暫存器R2
中的對應位元上,表示為R2
[0]和R2
[1]。最後一處理層級610c中只包含一比較選擇單元700,接收該路徑權值P2
[0]和P2
[1]進行比較後,輸出單一位元的比較選擇結果P3
。該比較選擇結果P3
即是八個路徑權值P0
[0]至P0
[7]中最小值者。至於實際上是對應哪一狀態元,需要由暫存器R1
、R2
和R3
中的值來推導。詳細推導過程將於第8圖中說明。
第5圖和第6圖的實施例雖然各說明了64狀態元和8狀態元的情況,但是可以推知本發明的處理層級可彈性延伸至n個以適用於2n
個狀態元(n為自然數)。至於索引值的推導原理也是相同,可隨著n值而彈性適用。
第7圖係為一比較選擇單元700的實施例。每一比較選擇單元700包含兩個輸入端,各用以接收不同狀態元之路徑權值,例如Pn-1
[i]和Pn-1
[i+1]。比較選擇單元700中包含一比較器720,用以比較所輸入的兩個路徑權值Pn-1
[i]和Pn-1
[i+1]。該比較器720執行的是減法運算,而輸出的旗標fn
[i]可以是一種正負號,藉此可以輕易判斷較小值是來自哪一根輸入端腳位。舉例來說,該旗標可以是一布林值,旗標值0代表該第一輸入端,而旗標值1代表該第二輸入端。該比較選擇單元700中的選擇器710,則可根據該旗標,選擇該兩個路徑權值Pn-1
[i]或Pn-1
[i+1]的其中之一,輸出為Pn
[i]。其中i的值是一索引變數。
第8圖係為根據R1
到Rn
來推導索引值的過程。以第5圖的64狀態元之選擇比較結果為例,最後暫存器R6
中儲存的是一個單位元的布林值。如粗線所示,暫存器R6
的值是0,表示其最小路徑權值來自P5
[0]。為表示方便,在此暫指派一布林變數B0
,表示為:
B0
=R6
=0。
接著回推到第五處理層級510e。由於已知最小路徑權值來自P5
[0],所以讀取暫存器位址R5
[0],來進一步尋找上一層來源。在本實施例中,假設位址R5
[0]中的值為1,代表該路徑權值P5
[0]的值來自第四處理層級的路徑權值P4
[01](為說明方便,在此[]中的值以二進位表示)。在此指派一布林數變B1
,表示為:
B1
=R5
[B0
]=R5
[0]=1。
接著回推到第四處理層級510d,由於已知最小路徑權值來自P4
[01],遂讀取暫存器位址R4
[01]中的布林值,以進一步尋找上一層來源。在本例中,位址R4
[01]中的值為1,故可推得路徑權值的來源是第三處理層級的P3
[011]。在此指派一布林變數B2
,表示為:
B2
=R4
[B0
B1
]=R4
[01]=1。
接著回推到第三處理層級510c,由於已知最小路徑權值來自P3
[011],遂讀取暫存器位址R3
[011]中的布林值,以進一步尋找上一層來源。在本例中,位址R3
[011]中的值為0,故可推得路徑權值的上一層來源是P2
[0110]。在此設定一布林變數B3
表示為:
B3
=R3
[B0
B1
B2
]=R3
[011]=0。
接著回推到第二處理層級510b,由於已知最小路徑權值來自P2
[0110],遂讀取暫存器位址R2
[0110]中的布林值,以進一步尋找上一層來源。在本例中,位址R2
[0110]中的值為1,故可推得上一層來源是P1
[01101](十進位表示為P1
[13])。在此指派一布林變數B4
,表示為:
B4
=R2
[B0
B1
B2
B3
]=R2
[0110]=1。
接著回推到第一處理層級510a,由於已知最小路徑權值來自P1
[01101],遂讀取暫存器位址R1
[01101]中的布林值,以進一步尋找原始來源。在本例中,R1
[0發射器1101]中的值為0,故可推得上一層來源是P0
[0發射器11010](十進位表示為P0
[26])。在此使用一布林變數B5
,可表示為:
B5
=R1
[B0
B1
B2
B3
B4
]=R1
[01101]=0。
由上述逆推過程可以發現,最小路徑權值的來源,可由最後一處理層級的暫存器值依次推得。而最後所有的布林變數串起來得到的值,恰為64個狀態元中最小路徑權值者之索引值:
[B0
B1
B2
B3
B4
B5
]=[011010]=26
故本實施發現該回溯單元可根據下列公式判定索引值:
B0
=Rn
[0]
B1
=Rn-1
[B0
]
B2
=Rn-2
[B0
B1
]
B3
=Rn-3
[B0
B1
B2
]
…
Bn
=R1
[B0
B1
B2
B3
...Bn-1
]
Imin
=[B0
B1
B2
B3
...Bn
]
其中R1
到Rn
係為第一處理層級到第n處理層級的暫存器,B0
到Bn
係為布林值0或1,遞次地由對應的暫存器Rn
到R1
中的特定位址中獲取,而特定位址係表示為布林值B0
到Bn
排列而成的二進位值;Imin
代表具有最小路徑權值的狀態元所對應的索引值,表示為布林值B0
到Bn
排列而成的二進位值。
上述實施例突顯一個優點,就是在尋找最小路徑權值的過程中,不需要重複為索引值進行比較選擇的步驟。只需要利用路徑權值的比較選擇過程所留下的旗標,就能推得索引值。因此回溯單元208的硬體電路的實作可以更加縮減面積,節省成本。
當回溯單元208逐個找出每一階段的最小狀態元後,即可產生一條存活路徑。根據這條存活路徑,可進一步進行一對數相似率(LLR)運算,以輸出真正解碼的結果。本發明所述的狀態矩陣運算結構不限定是一種四基底籬柵(radix-4 trellis)結構,也可以適用於二平方基底籬柵(radix-22
trellis)結構。
110...發射器
102...天線
104...天線
120...接收器
122...射頻模組
124...類比數位轉換器
126...維特比解碼器
202...分支權值處理器
204...加法比較選擇單元
206...路徑權值記憶體
208...回溯單元
400...回溯單元
410a~410c...比較選擇單元
412...比較器
414,416...選擇器
416...選擇器
100,500,600...回溯單元
510a~510f...第一~第六處理層級
610a...第一處理層級
610b...第二處理層級
610c...第三處理層級
700...比較選擇單元
710...選擇器
720...比較器
第1圖係為一通訊系統的架構圖;
第2圖係為一維特比解碼器126的架構圖;
第3圖係為一狀態矩陣的示意圖;
第4圖係為一習知的回溯單元400之架構圖;
第5圖係為本發明實施例之一的回溯單元500;
第6圖係為本發明實施例之一的回溯單元600;
第7圖係為本發明實施例之一的比較選擇單元700;以及
第8圖係為推導索引值的示意圖。
500...回溯單元
510a~510f...第一~第六處理層級
R1
~R6
...暫存器
Claims (14)
- 一種維特比解碼器,包含:一路徑權值(State Metric)記憶體,用以儲存一狀態矩陣,該狀態矩陣包含多個階段,每一階段包含2n 個狀態元,每一狀態元具有一索引值及一路徑權值,且對應多個分支權值(Branch Metric);以及一回溯單元,包含第一到第n處理層級依序串接,用以找出該狀態矩陣中每一階段的最小路徑權值及對應索引值,以建立一存活路徑,其中:每一處理層級包含:至少一個比較選擇單元(Compare Selection Unit;CSU),各用以比較兩個不同狀態元之路徑權值並輸出較小者,並輸出一旗標以代表比較結果;以及一暫存器,記錄每一比較選擇單元所輸出之旗標;其中該回溯單元根據所有處理層級的暫存器組態推導出一階段中路徑權值最小之狀態元之索引值。
- 如申請專利範圍第1項所述之維特比解碼器,其中每一比較選擇單元包含:一第一輸入端以及一第二輸入端,各用以接收不同狀態元之路徑權值;一比較器,比較來自該第一輸入端和該第二輸入端之路徑權值,並輸出一旗標以記錄該第一輸入端以及該第二輸入端中路徑權值較小之一者;以及一選擇器,用以根據該旗標,選擇性地將該第一輸入端或該第二輸入端所接收到的路徑權值輸出。
- 如申請專利範圍第2項所述之維特比解碼器,其中該旗標係為一布林值,旗標值0代表該第一輸入端,而旗標值1代表該第二輸入端。
- 如申請專利範圍第2項所述之維特比解碼器,其中第一處理層級包含2n-1 個比較選擇單元,且該2n-1 個比較選擇單元的每一輸入端依序各對應一不同的索引值,其中n為自然數。
- 如申請專利範圍第4項所述之維特比解碼器,其中第一處理層級的2n-1 個比較選擇單元接收的2n 個狀態元以進行兩兩比對,篩選半數輸出至下一處理層級。
- 如申請專利範圍第5項所述之維特比解碼器,其中:第二處理層級以後之每一處理層級的比較選擇單元數量,是前一處理層級的比較選擇單元數量的一半;以及最後一處理層級包含一個比較選擇單元,輸出之值即代表該狀態矩陣之該階段中的2n 個狀態元中具有最小路徑權值之一者。
- 如申請專利範圍第5項所述之維特比解碼器,其中:第一處理層級的暫存器包含2n-1 個位元,儲存對應的2n-1 個比較選擇單元所輸出的旗標;第二處理層級以後之每一處理層級的暫存器之位元數係前一處理層級的暫存器之位元數的一半;以及最後一處理層級的暫存器包含一個位元。
- 如申請專利範圍第7項所述之維特比解碼器,其中每一處理層級的每一比較選擇單元,依序對應同一處理層級的暫存器之一位元。
- 如申請專利範圍第8項所述之維特比解碼器,其中該回溯單元根據每一處理層級及其後的所有暫存器,推知最小路徑權值來自前一處理層級的第幾個比較選擇單元。
- 如申請專利範圍第9項所述之維特比解碼器,其中:該回溯單元根據第二處理層級至最後處理層級的暫存器組態推知一最小路徑權值來自第一處理層級的一特定比較選擇單元;該回溯單元根據第一處理層級的暫存器推知該最小路徑權值係來自該特定比較選擇單元的一特定輸入端;以及該特定輸入端對應的順位即為索引值。
- 如申請專利範圍第9項所述之維特比解碼器,其中該回溯單元根據下列公式判定索引值:B0 =Rn [0]B1 =Rn-1 [B0 ]B2 =Rn-2 [B0 B1 ]B3 =Rn-3 [B0 B1 B2 ]…Bn =R1 [B0 B1 B2 B3 ...Bn-1 ]Imin =[B0 B1 B2 B3 ...Bn ]其中R1 到Rn 係為第一處理層級到第n處理層級的暫存器,B0 到Bn 係為布林值0或1,遞次地由對應的暫存器其中R1 到Rn 係為第一處理層級到第n處理層級的暫存器,B0 到Bn 係為布林值0或1,遞次地由對應的暫存器Rn 到R1 中的特定位址中獲取,而特定位址係表示為布林值B0 到Bn 排列而成的二進位值;Imin 代表具有最小路徑權值的狀態元所對應的索引值,表示為布林值B0 到Bn 排列而成的二進位值。
- 如申請專利範圍第1項所述之維特比解碼器,其中該回溯單元進一步根據該狀態矩陣進行一對數相似率(LLR)運算;其中該狀態矩陣運算結構係為四基底籬柵(radix-4 trellis)結構或二平方基底籬柵(radix-22 trellis)結構。
- 如申請專利範圍第1項所述之維特比解碼器,進一步包含多個加法比較選擇(ACS)單元平行運作,用以根據一輸入序列進行一自然遞迴運算(Natural Recursion)以產生該狀態矩陣,並將該狀態矩陣儲存在該路徑權值記憶體中。
- 如申請專利範圍第13項所述之維特比解碼器,其中該自然遞迴運算係使用對數事後機率(Log-MAP)演算法、最大對數事後機率(Max Log-MAP)演算法或者強化最大對數事後機率(Enhanced Max Log-MAP)演算法其中之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98113987A TWI383596B (zh) | 2009-04-28 | 2009-04-28 | 維特比解碼器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98113987A TWI383596B (zh) | 2009-04-28 | 2009-04-28 | 維特比解碼器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201039569A TW201039569A (en) | 2010-11-01 |
TWI383596B true TWI383596B (zh) | 2013-01-21 |
Family
ID=44995564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW98113987A TWI383596B (zh) | 2009-04-28 | 2009-04-28 | 維特比解碼器 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI383596B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960011A (en) * | 1995-06-30 | 1999-09-28 | Hyundai Electrinics Ind. Co., Ltd. | Viterbi decoder |
US20010007142A1 (en) * | 1999-12-23 | 2001-07-05 | Hocevar Dale E. | Enhanced viterbi decoder for wireless applications |
TW200518475A (en) * | 2003-11-24 | 2005-06-01 | Via Tech Inc | Unified viterbi/turbo decoder for mobile communication systems |
US20060168501A1 (en) * | 2005-01-27 | 2006-07-27 | Samsung Electronics Co., Ltd. | Viterbi decoder for executing trace-back work in parallel and decoding method |
-
2009
- 2009-04-28 TW TW98113987A patent/TWI383596B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5960011A (en) * | 1995-06-30 | 1999-09-28 | Hyundai Electrinics Ind. Co., Ltd. | Viterbi decoder |
US20010007142A1 (en) * | 1999-12-23 | 2001-07-05 | Hocevar Dale E. | Enhanced viterbi decoder for wireless applications |
TW200518475A (en) * | 2003-11-24 | 2005-06-01 | Via Tech Inc | Unified viterbi/turbo decoder for mobile communication systems |
US20060168501A1 (en) * | 2005-01-27 | 2006-07-27 | Samsung Electronics Co., Ltd. | Viterbi decoder for executing trace-back work in parallel and decoding method |
Also Published As
Publication number | Publication date |
---|---|
TW201039569A (en) | 2010-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3604955B2 (ja) | 畳込み復号装置 | |
AU762877B2 (en) | Component decoder and method thereof in mobile communication system | |
US6148431A (en) | Add compare select circuit and method implementing a viterbi algorithm | |
US20070266303A1 (en) | Viterbi decoding apparatus and techniques | |
US20180076831A1 (en) | Partial sum computation for polar code decoding | |
US8009773B1 (en) | Low complexity implementation of a Viterbi decoder with near optimal performance | |
US7127667B2 (en) | ACS circuit and viterbi decoder with the circuit | |
US8566683B2 (en) | Power-reduced preliminary decoded bits in viterbi decoders | |
US7958437B2 (en) | MAP detector with a single state metric engine | |
US7308640B2 (en) | Low-latency architectures for high-throughput Viterbi decoders | |
CN101145790A (zh) | 译码器、相加-比较-选择单元和其方法 | |
TWI383596B (zh) | 維特比解碼器 | |
Han et al. | High performance Viterbi decoder using modified register exchange methods | |
JP2010130271A (ja) | 復号器および復号方法 | |
CN109861695B (zh) | 利用码本进行卷积码译码的方法 | |
CN116073952B (zh) | 一种基于MaPU架构的快速并行卷积编译码方法、***、设备及介质 | |
CN101527573B (zh) | 维特比解码器 | |
US8885779B2 (en) | Channel detector implementation with postcoder | |
Chandel et al. | Viterbi decoder plain sailing design for TCM decoders | |
Wang et al. | Parallel list decoding of convolutional codes: algorithm and implementation | |
JP4217261B2 (ja) | Acs回路 | |
KR100726170B1 (ko) | 비터비 복호 장치 및 방법 | |
JP3351414B2 (ja) | ビタビ復号装置 | |
WO2016165395A1 (zh) | 一种译码方法及译码器 | |
JP2000252840A (ja) | 誤り訂正復号器 |