TW201039569A - Viterbi decoder - Google Patents

Viterbi decoder Download PDF

Info

Publication number
TW201039569A
TW201039569A TW98113987A TW98113987A TW201039569A TW 201039569 A TW201039569 A TW 201039569A TW 98113987 A TW98113987 A TW 98113987A TW 98113987 A TW98113987 A TW 98113987A TW 201039569 A TW201039569 A TW 201039569A
Authority
TW
Taiwan
Prior art keywords
value
state
processing
path
processing level
Prior art date
Application number
TW98113987A
Other languages
Chinese (zh)
Other versions
TWI383596B (en
Inventor
Shao-Ping Hung
Kuo-Chu Chiang
Original Assignee
Via Tech Inc
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 by Via Tech Inc filed Critical Via Tech Inc
Priority to TW98113987A priority Critical patent/TWI383596B/en
Publication of TW201039569A publication Critical patent/TW201039569A/en
Application granted granted Critical
Publication of TWI383596B publication Critical patent/TWI383596B/en

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

An enhanced Viterbi decoder is disclosed. A path metric memory stores a state matrix comprising a plurality of stages each contains 2n state elements. Each state element has an index value and a path metric, and is associated with a plurality of branch metrics. A traceback unit comprises n processing levels cascaded in series, operative to find state elements of the minimal path metrics with their indices, to build a survival path. In each processing level, at least one CSUs individually compares two different path metrics to determine a miner one, with a flag output to indicate a status of the determination. A register is provided to record all flags corresponding to the same processing level. When all registers of all processing levels are recorded with flags, an index of the state element of the minimal path metric can be accordingly determined.

Description

201039569 六、發明說明: 【發明所屬之技術領域】 本發明係有關於無線通訊系統,尤其是有關於改良的 維特比解碼器。 【先前技術】 第1圖係為一通訊系統的架構圖。一發射器11〇透過 一天線102發出訊息,而一接收器12〇透過一天線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所寫的’’數位通訊與存儲之錯誤控制系統(Err〇r Control System for Digital Communication and Storage, Pretice Hall,1995)”中有敘述到viterbi解碼器在行動通訊 VITO8-0014I00-TW/06O8-A41750TWf/Finay 4 201039569 系統中的應用。 在第1圖中,接收器120中的射 天線綱接收射頻訊號並轉為基頻訊U 122首先透過 益(ADC) 124再將基頻訊號轉為數=類比數位轉換 碼器126進行解碼步驟。 戒唬,供維特比解 Ο 〇 傳統上維特比解碼器126的硬體架 領域而有各種不同的設計方式,因此詳細、=不同的應用 述。然而,隨著硬體耗電與體積考量介紹不在此贅 改良一向是有必要的。 、,重要,電路的 【發明内容】 本發明提出一種改良式的維特比解 記憶體中儲存了一狀態矩陣,包含多個阼 路徑權值 含π個狀態元’每-狀態元具有―索二二每7皆段包 且對應多個分支權值(Branch Metric)。一 ' k權值, 含第-到第η處理層級依序串接,用以找:=70中包 每一階段的最小路徑權值及對應索引值,^ ^矩陣中 徑。 遷立—存活路 在每一處理層級中,有至少一個比較選擇單_ (Compare Selection Unit ; CSU )各比較兩個不同狀態兀 之路徑權值並輸出較小者,並輸出一旗標以代表比車々、 果。而一暫存器記錄著每一比較選擇單元所輪出結 該回溯單元可根據所有處理層級的暫存器組態推導出二比 段中路徑權值最小之狀態元之索引值。 6 在每一比較選擇單元中,一第一輪入端以及—第二輪 入端各接收不同狀態元之路徑權值。一比較器比較來 VIT08-0014I00-TW/0608-A41750TWf)Tinal/ 5 201039569 第一輸入端和該第二輸入端之路徑權值,並輸出一旗標以 記錄該第一輸入端以及該第二輸入端中路徑權值較小之一 者。一選擇器可根據該旗標,選擇性地將該第一輸入端或 該第二輸入端所接收到的路徑權值輸出。 其中該旗標可以是一種布林值,例如旗標值〇代表該 第一輸入端,而旗標值1代表該第二輸入端。 第一處理層級包含2n_1個比較選擇單元,且該211—1個比 較選擇單元的每一輸入端依序各對應一不同的索引值,其 ❹ 中η為自然數。該第一處理層級的21^1個比較選擇單元接 收的2η個狀態元以進行兩兩比對,篩選半數輸出至下一處 理層級。 而第二處理層級以後之每一處理層級的比較選擇單元 數量,是前一處理層級的比較選擇單元數量的一半。最後 一處理層級只有一個比較選擇單元,輸出之值即代表該狀 態矩陣之該階段中的2η個狀態元中具有最小路徑權值之一 者。 〇 同樣地,第一處理層級的暫存器包含211·1個位元,儲 存對應的2η_1個比較選擇單元所輸出的旗標。而第二處理 層級以後之每一處理層級的暫存器之位元數係前一處理層 級的暫存器之位元數的一半。最後一處理層級的暫存器包 含一個位元。而每一處理層級的每一比較選擇單元,依序 對應同一處理層級的暫存器之一位元。 該回溯單元可根據每一處理層級及其後的所有暫存 器,推知最小路徑權值來自前一處理層級的第幾個比較選 擇單元。例如,該回溯單元根據第二處理層級至最後處理 VIT08-0014I00-TW/0608-A41750TWf/Final/ 6 201039569 層級的暫存器組態推知— 的一特定比較選擇單元。 層級的暫存器推知該最小 單元的一特定輸入端。 最小路徑權值來自第一處理層級 接著該回溯單元可根據第一處理 路徑權值係來自該特定比較選擇 式判定索弓丨值: 該回溯單元根據下列公 B〇=Rn[〇]201039569 VI. Description of the Invention: TECHNICAL FIELD OF THE INVENTION The present invention relates to wireless communication systems, and more particularly to improved Viterbi decoders. [Prior Art] Fig. 1 is an architectural diagram of a communication system. A transmitter 11 transmits a message through an antenna 102, and a receiver 12 transmits the message through an antenna 104. The transmission channel between antennas 102 and 104 can interfere with the message. Therefore, an error control coding technique must be employed between the transmitter 110 and the receiver 120. The transmitter 110 adds some redundancy to the particular rule before transmitting the message to produce higher bit rate encoded data. Receiver 120 then uses these redundancy checks to determine the content of the originally transmitted message. The purpose of error control coding is to reduce the effects of channel noise interference, which can be roughly classified into two types: block code and convolutional code. The whirling code is more commonly used in wireless voice communication systems because of the low tolerance of voice communication to data retransmission rate and delay. Block codes can be used to deliver applications with high throughput requirements, but large delay times must be tolerated. The Viterbi algorithm is a forward error correction (Trellis) algorithm for detecting the largest-likelihood (ML) sequence, and is an ideal algorithm for solving the convolutional code. The "Err〇r Control System for Digital Communication and Storage (Pretice Hall, 1995)" written by SB Wicker describes the viterbi decoder in mobile communication VITO8-0014I00-TW/ 06O8-A41750TWf/Finay 4 201039569 Application in the system. In Figure 1, the antenna antenna in the receiver 120 receives the RF signal and converts it to the base frequency. The U 122 first transmits the baseband signal through the benefit (ADC) 124. The decoding step is performed by the number=analog digit transcoder 126. 唬 唬 供 维 维 维 维 维 维 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 维 维 维 维 维 维 维 维 维 维 维 维 维 维However, with the introduction of hardware power consumption and volume considerations, it is always necessary to improve. Therefore, important, circuit [invention] The present invention proposes an improved Viterbi solution memory in which a state matrix is stored. , including a plurality of 阼 path weights including π state elements 'per-state element having a singular two every 7-segment packet and corresponding to a plurality of branch metrics (Branch Metric). A 'k weight value The first to the nth processing levels are sequentially connected in series, and are used to find: the minimum path weight and the corresponding index value of each stage of the packet: = 70, the matrix diameter. The migration-survival path is at each processing level. In the middle, at least one comparison selection unit (CSU) compares the path weights of the two different states and outputs the smaller ones, and outputs a flag to represent the ratio of the vehicle and the fruit. The device records the round-trip of each comparison selection unit. The traceback unit can derive the index value of the state element with the smallest path weight in the second-order segment according to the register configuration of all processing levels. 6 In each comparison selection unit The first round entry and the second round input each receive a path weight of a different state element. A comparator compares VIT08-0014I00-TW/0608-A41750TWf) Tinal/ 5 201039569 the first input and the a path weight of the second input end, and outputting a flag to record one of the first input end and the second input end having a smaller path weight. A selector may selectively select the flag according to the flag Receiving the first input or the second input The path weight output. The flag may be a Boolean value, for example, the flag value 〇 represents the first input, and the flag value 1 represents the second input. The first processing level includes 2n_1 comparison options. a unit, and each input end of the 211-1 comparison selection unit sequentially corresponds to a different index value, wherein η is a natural number. 21^1 of the first processing level compares the 2η received by the selection unit The status elements are compared for pairwise alignment, and the half output is filtered to the next processing level. The number of comparison selection units for each processing level after the second processing level is half of the number of comparison selection units of the previous processing level. The last processing level has only one comparison selection unit, and the value of the output represents one of the 2n state elements in the stage of the state matrix having the smallest path weight. Similarly, the scratchpad of the first processing level contains 211.1 bits, and stores the corresponding flag of 2n_1 comparison selection units. The number of bits of the scratchpad of each processing level after the second processing level is half of the number of bits of the register of the previous processing level. The last processing level register contains one bit. Each comparison selection unit of each processing level sequentially corresponds to one bit of the register of the same processing level. The backtracking unit can infer that the minimum path weight is from the first comparison selection unit of the previous processing level based on each processing level and all subsequent registers. For example, the lookback unit infers a specific comparison selection unit based on the register configuration of the second processing level to the last processed VIT08-0014I00-TW/0608-A41750TWf/Final/6 201039569 level. The level register registers the specific input of the smallest unit. The minimum path weight is from the first processing level. The backtracking unit can then determine the value of the cable from the particular comparison option according to the first processing path weight: the backtracking unit is based on the following public B〇=Rn[〇]

Bl=Rn-l[B〇] B2=Rn.2[B〇Bi]Bl=Rn-l[B〇] B2=Rn.2[B〇Bi]

Bn=Ri[B〇BiB2B3...BnBn=Ri[B〇BiB2B3...Bn

Imin~[B〇BiB2B3 . · ·Βη] 其中心到Rn係為第—_ 七迅Ό ^ ^ ^ ^ 恳理層級到第η處理層級的暫 存器,Β〇到Βη係為布林值〇 ar τ, U或1,遞次地由對應的暫存器 到Ri中的特定位址中辑;^ ^ Ώ , Ώ u , ^ ^取’而特定位址係表示為布林值 B〇到Bn排列而成的二進也^ 值,Imin代表具有最小路徑權值 的狀態元所對應的索弓丨值,* _ ^ ^ 辰示為布林值Bo到Bn排列而 成的二進位值。 【實施方式】 第2圖係為第1圖中維枯丨^ τ难特比解碼器126的架構圖。狀 態矩陣是一種機率的概念,田 "用以計算特定狀態元(State) 在不同階段之間改變狀態的M、玄γ、丄 心的機率(分支權值)以及存在機 率(路控權值)。在維特比解碼器m中,分支權值處理 器202接收ADC 124 g供的數位數值#IN,藉以計算狀態 矩陣從一個階段跳至下一個階段的所有分支機率,又稱為 YIT08-0014IOO-TW/0608-A41750TWfTinay 7 201039569 分支權值(Brand! Metric)。分支權值處理器搬的輸出 接著被送至加法比較選擇(ACS)單元2〇4,使加法比較選 擇單元204根據分支權值對狀態矩陣中下—階段的路炉權 值(Path Metric)進行更新。該維特比解碼器126中的加 法比較選擇單元204可以是多數個平行運作,進行一種自 然遞迴運算(Natural Recursion)以產生該狀態矩陣,並將 該狀態矩陣儲存在該路徑權值記憶體2〇6中。由於狀熊矩 陣是逐階段更新,加法比較選擇單元2〇4必須大量的=覆 〇 使用’因此路徑權值記憶體2〇6的功能類似一種雙緩^ 器,供加法比較選擇單元204遞迴存取。當加法比較選擇 單元204完成狀態矩陣的更新運算之後,回溯單元2〇8接 者讀取路控權值記憶體206而進行存活路徑運算以及最大 相似度運算,以產生最接近原始發射訊號的訊息碼#〇υτ。 該維特比解碼器126中所進行的自然遞迴運算,可以 疋基於各種不同的演鼻法’例如對數事後機率 (Log-Maximum a Posteriori ; Log-MAP)演算法、最大對 Ο 數事後機率(Max Log-MAP)演算法或者強化最大對數事 後機率(Enhanced Max Log-MAP )演算法。這些演算法又 統稱為軟進軟出(Soft-in-Soft-out; SISO)解碼演算法。 然而本發明的實施例亦適用於其他可能的維特比架構,不 限定於此段所述之例子。 第3圖係為一基數為四的狀態矩陣(state metric )示意 圖。其中橫轴t代表時間或階段,而縱軸代表每一階段所 包含的多個狀態元。以第3圖為例’該狀態矩陣包含了多 個階段h到tM的狀態向量’每一狀態向量包含了 n個狀態 VIT08-0014IOO-TW/0608-A41750TWfTFinal/ 8 201039569 元Si到SN。以階段tkd的狀態元Si為例,因為狀態矩陣的 基數為四(radix 4 ),該狀態元S!跳到下一階段的可能分 支路徑有四條。實際上在向前錯誤修正(trellis)結構中有 明確定義每個階段的每個狀態元所對應的分支。在本例 中,由狀態元Si出發的四條分支各別指向下一階段的狀態 元a,b,c和d(未圖示),各具有不同的機率係數τ (Sl5a), T (Sl5b),r (Si,c)和r (Si,d)。反過來說,每一現階段的狀 態元可能來自前一階段的某四個狀態元。例如在階段tk中 0 的狀態元S3,具有四條分支與前一階段的狀態元A、B、C、 d(未圖示)相連,各具有機率r(A,s3),r(B,s3),r(c,s3) 和7(d,s3)。根據事後機率(map)演算法,計算這些狀態 矩陣的過程統稱為自然遞迴(Natural Recursion )運算,每 一狀態元的值可以是正向機率值或反向機率值。一般來 說,這些機率值又稱為權值(metric)。在所有的分支權值 和路徑權值都求出之後,整個狀態矩陣即以這些權值的型 式儲存於第2圖所示的路徑權值記憶體206中,供後續的 ❹ 回溯單元208進行存活路徑分析,以及最大相似度演算演 算。 第4圖係為一回溯單元400之實施例,其可對應至第2 圖的回溯單元208。在進行存活路徑分析時,需要尋找每 一階段之狀態元中具有最小路徑權值者。如第4圖所示, 一階段中有四個狀態元,各具有路徑權值P(SD,P(S2),P(S3) 及P(S4),因此總共需要進行三次比較選擇,才能找出最小 路徑權值。然而,該最小路徑權值究竟屬於哪一個狀態元, 則不得而知。因此傳統的做法是為這些狀態元建立索引 VIT08-0014I00-TW/0608-A41750TWf/Final/ 9 201039569 值。在本例中該四個狀態元的索引值依序表示為I(Si), I(S2) ’ I(S3)及I(s4)。一比較選擇單元41〇a接收第一和第二 狀態元的索引值I(S〇和I(S2),以及路徑權值P(S〇和(S2)。 該比較選擇單元410a中包含一比較器412,比較該p(S〇 和P(S2)以產生一選擇訊號#s。該比較器412基本上可以是 減法器’而選擇訊號#S可以是代表正負符號的一布林值。 一選擇器414根據該選擇訊號#3從該及P(S2)中選擇 較小之一者輸出’表示為P(A)。同時,一選擇器416也根Imin~[B〇BiB2B3 . · ·Βη] The center to the Rn system is the first - _ 七 Ό ^ ^ ^ ^ 恳 stratification level to the η processing level of the register, Β〇 to Β 系 is the Bolling value 〇 Ar τ, U or 1, successively from the corresponding register to the specific address in Ri; ^ ^ Ώ , Ώ u , ^ ^ f' and the specific address is expressed as Boolean B The binary progression of Bn is also a value, Imin represents the value of the cable corresponding to the state element with the smallest path weight, and * _ ^ ^ is shown as the binary value of the Boolean value Bo to Bn. [Embodiment] FIG. 2 is a block diagram of the wei 丨 特 特 ratio decoder 126 in FIG. 1 . The state matrix is a concept of probability. Fields are used to calculate the state, state, gamma, heart rate (branch weight) and existence probability (road control weight) of a particular state state (State). ). In the Viterbi decoder m, the branch weight processor 202 receives the digit value #IN supplied by the ADC 124g, thereby calculating the probability of all the branches of the state matrix jumping from one phase to the next, also known as YIT08-0014IOO-TW. /0608-A41750TWfTinay 7 201039569 Branch weight (Brand! Metric). The output of the branch weight processor is then sent to the addition comparison selection (ACS) unit 2〇4, so that the addition comparison selection unit 204 performs the path-mechanism of the lower-stage in the state matrix according to the branch weight. Update. The addition comparison selection unit 204 in the Viterbi decoder 126 may be a plurality of parallel operations, perform a natural recursion operation to generate the state matrix, and store the state matrix in the path weight memory 2 〇6. Since the bear matrix is updated step by step, the addition comparison selection unit 2〇4 must use a large number of overlays. Therefore, the function of the path weight memory 2〇6 is similar to a double buffer for the addition comparison unit 204 to recur access. After the addition comparison selection unit 204 completes the update operation of the state matrix, the backtracking unit 2〇8 reads the gate weight memory 206 and performs the survival path operation and the maximum similarity operation to generate the message closest to the original transmission signal. Code #〇υτ. The natural recursive operation performed in the Viterbi decoder 126 can be based on various different nasal expressions, such as the Log-Maximum a Posteriori (Log-MAP) algorithm, and the maximum number of artifacts after the event ( The Max Log-MAP algorithm or the Enhanced Max Log-MAP algorithm. These algorithms are collectively referred to as Soft-in-Soft-out (SISO) decoding algorithms. However, embodiments of the present invention are also applicable to other possible Viterbi architectures and are not limited to the examples described in this paragraph. Figure 3 is a schematic diagram of a state metric with a base of four. The horizontal axis t represents time or phase, and the vertical axis represents multiple state elements contained in each phase. Taking Figure 3 as an example, the state matrix contains a plurality of state vectors h to tM. Each state vector contains n states VIT08-0014IOO-TW/0608-A41750TWfTFinal/ 8 201039569 yuan Si to SN. Taking the state element Si of the stage tkd as an example, since the cardinality of the state matrix is four (radix 4 ), there are four possible branch paths of the state element S! jumping to the next stage. In fact, in the forward error correction (trellis) structure, there is a branch that clearly defines each state element of each stage. In this example, the four branches starting from the state element Si point to the state elements a, b, c and d (not shown) of the next stage, each having a different probability coefficient τ (Sl5a), T (Sl5b) , r (Si, c) and r (Si, d). Conversely, each current state element may come from one of the four state elements of the previous stage. For example, the state element S3 of 0 in the phase tk has four branches connected to the state elements A, B, C, d (not shown) of the previous stage, each having a probability r(A, s3), r(B, s3 ), r(c, s3) and 7(d, s3). According to the post algorithm, the process of calculating these state matrices is collectively referred to as the Natural Recursion operation, and the value of each state element can be a positive probability value or a reverse probability value. In general, these probability values are also called metrics. After all the branch weights and path weights are obtained, the entire state matrix is stored in the path weight memory 206 shown in FIG. 2 in the form of these weights for subsequent ❹ backtracking unit 208 to survive. Path analysis, and maximum similarity calculation calculus. Figure 4 is an embodiment of a traceback unit 400 that may correspond to the traceback unit 208 of Figure 2. When performing the survival path analysis, it is necessary to find the one with the smallest path weight in each state element. As shown in Figure 4, there are four state elements in a phase, each with a path weight P (SD, P (S2), P (S3) and P (S4), so a total of three comparison choices are needed to find The minimum path weight. However, it is not known which state element the minimum path weight belongs to. Therefore, the traditional practice is to index these state elements. VIT08-0014I00-TW/0608-A41750TWf/Final/ 9 201039569 In this example, the index values of the four state elements are sequentially expressed as I(Si), I(S2) 'I(S3) and I(s4). A comparison selecting unit 41〇a receives the first and the first The index value I of the two state elements (S〇 and I(S2), and the path weight P (S〇 and (S2). The comparison selecting unit 410a includes a comparator 412, and compares the p (S〇 and P(( S2) to generate a selection signal #s. The comparator 412 can basically be a subtractor' and the selection signal #S can be a Boolean value representing a positive or negative sign. A selector 414 is based on the selection signal #3. The smaller one of P(S2) is selected as the output 'represented as P(A). At the same time, a selector 416 is also rooted.

〇 據該選擇訊號#S從索引值I(S〇和I(S2)中選擇對應的值做 為輸出’表示為1(A)。同樣的’一比較選擇單元41 %對第 三狀態元和第四狀態元進行相同處理,從p(S3)和p(S4)中 選擇其一輪出為P(B),並同時從l(ss)和i(s4)中選擇對應之 一者輸出為1(B)。該1(A) ’ 1(B),P(A),P(B)接著在比較選 擇單元410c中進行相同的比較選擇步驟,最後輸出的結果 p(c)即為四個狀態元中之最小路徑權值,而I(c)即為具有 該最小路徑權值之狀態元的㈣值。綜上所述,該等^較 選擇單元4U)必須同時對索引值進行比較選擇的步驟,才 能在找到最小路徑權值㈣候,記錄其所相狀態元是四 者中之第幾者。雖然本實施例僅以四個狀態元為例 同樣的架構可擴充應用至更多狀態元,本㈣不受此限。 第5圖係為本發明另一實施例之回溯單元500。在本實 :例中Η不*要針對狀態元的索引值進行比較與選擇的運 而疋採^ 了暫存II來儲存路徑權值的比較選擇結 最後再用推算的方式找出舍^ ° 例中,假設有-狀能= 在回溯單元500的實施 心、矩陣已經備妥,儲一 VIT08-0014IOO-TW/0608-A41750TWf^inay 1〇 、弟 2 圖的路徑 201039569 權值記憶體206中。該狀態矩陣中的每一階段包含64個狀 態元。而該回溯單元5〇〇即是取代第2圖的回溯單元208, 用來讀取該路徑權值記憶體206並推算存活路徑。 ❹According to the selection signal #S, the index value I (selecting the corresponding value from S〇 and I(S2) as the output 'is represented as 1 (A). The same 'a comparison selection unit 41% versus the third state element and The fourth state element performs the same process, selecting one of p(S3) and p(S4) as P(B), and simultaneously selecting one of the corresponding ones of l(ss) and i(s4) to output 1 (B). The 1(A) '1(B), P(A), P(B) are then subjected to the same comparison selection step in the comparison selection unit 410c, and the final output result p(c) is four. The minimum path weight in the state element, and I(c) is the (four) value of the state element having the minimum path weight. In summary, the comparison unit 4U) must simultaneously compare the index values. In order to find the minimum path weight (four), the state element of the phase is recorded as the first of the four. Although this embodiment only uses four state elements as an example, the same architecture can be extended to apply to more state elements, and this (4) is not limited thereto. Figure 5 is a traceback unit 500 in accordance with another embodiment of the present invention. In this real: in the example, you should not compare and select the index value of the state element. The temporary storage II is used to store the comparison of the path weights. Finally, the calculation method is used to find the solution. In the example, it is assumed that there is a - state energy = in the implementation center of the backtracking unit 500, the matrix is already prepared, and a path is stored in the VIT08-0014IOO-TW/0608-A41750TWf^inay 1〇, brother 2 diagram 201039569 weight memory 206 . Each phase in the state matrix contains 64 state elements. The backtracking unit 5 is replaced by the backtracking unit 208 of FIG. 2 for reading the path weight memory 206 and estimating the survival path. ❹

如第5圖所示,該回溯單元500中包含六個處理層級 依序串接。將一狀態矩陣的某〆階段的64個狀態元輪入至 第一處理層級510a的輸入端,最後可由第六處理層級51 〇f 輸出該狀態矩陣之該一階段的最小路徑權值及對應索引。 每一處理層級中包含多個比較選擇單元7〇〇 (如第7圖所 示)’可對不同狀態元之路徑權值進行兩兩比較,找出較 小者,並輸出一旗標以代表比較結果。舉例來說,由於比 較選擇單元700包含兩個輸入端,而比較的運算實際上是 減法。因此第一輸入值與第二輸入值相減所得數值的正負 號,就可以當成一種旗標,用來表示兩個輪入值的大小關 係。換句話說,透過旗標值可以獲知該兩個輸入值在比較 選擇單元700實體腳位上的對應關係。也因此本實施例可 以省略索引值的處理過程,直接以旗標來判斷狀態元的索 引值。 心 ’、 料個狀態元P0[0]到P〇[63]輸入第一處理層級51如之 後,奇數狀態元和相鄰的偶數狀態元進行比較,其路徑權 值較大者被篩除,而路徑權值較小者被選擇後輸出,表示 為卩![〇]到PJ31]。故第一處理層級510a的輪出值數量是輸 入值數量的一半。至於每一比較選擇單元7〇〇產生的旗 標,則以布林數值的型式儲存在一暫存器&中。為了兩兩 比較64個狀態元,在第一處理層級51〇a中包含了 ^個比 較選擇單元700(未圖示),共進行了 32次比^選擇運算, VIT08-0014I00-TW/0608-A41750TWf/Final/ n 201039569 除了產生32個選擇結果Ρι[0]到Ρι[31]之外,也產生了% 個旗標^[0]到,依序對應地存放在一長度為32位元 的Ri中。 依此類推地,第一處理層級51〇a輸出數量減半的Μ 個路徑權值?1[0]到!>1[31]至第二處理層級51(^,由第二處 理層級510b中的16個比較選擇單元700 (未圖示)進^ 兩兩比較,而產生16個比較選擇結果,表示為As shown in Fig. 5, the backtracking unit 500 includes six processing levels in series. The 64 state elements of a certain stage of a state matrix are rounded to the input end of the first processing level 510a, and finally the minimum path weight and corresponding index of the stage of the state matrix can be output by the sixth processing level 51 〇f . Each processing level includes a plurality of comparison selection units 7 (as shown in FIG. 7), which can compare the path weights of different state elements in pairs, find the smaller one, and output a flag to represent Comparing results. For example, since the comparison selection unit 700 contains two inputs, the operation of the comparison is actually subtraction. Therefore, the sign of the value obtained by subtracting the first input value from the second input value can be used as a flag to indicate the magnitude relationship between the two wheeled values. In other words, the correspondence between the two input values on the physical pin of the comparison selection unit 700 can be known through the flag value. Therefore, in this embodiment, the processing of the index value can be omitted, and the index value of the state element is directly determined by the flag. The heart's state element P0[0] to P〇[63] are input to the first processing level 51. After that, the odd state element is compared with the adjacent even state element, and the path weight is larger. The smaller the path weight is selected and output, expressed as 卩![〇] to PJ31]. Therefore, the number of rounds of the first processing level 510a is half the number of input values. As for the flag generated by each comparison selection unit 7, it is stored in a register & in the form of a Boolean value. In order to compare 64 state elements in pairs, a comparison selection unit 700 (not shown) is included in the first processing level 51A, and a total of 32 selection operations are performed, VIT08-0014I00-TW/0608- A41750TWf/Final/ n 201039569 In addition to generating 32 selection results Ρι[0] to Ρι[31], % flags ^[0] are also generated, which are sequentially stored in a 32-bit length. Ri. And so on, the first processing level 51〇a outputs the number of path weights that are halved by half? 1[0] to! > 1 [31] to the second processing level 51 (^, compared by 16 comparison selection units 700 (not shown) in the second processing level 510b, resulting in 16 comparison selection results, expressed as

Ο P2[15]。同樣的,該16個比較選擇單元7〇〇亦產生了 π 個旗標,表示為心⑼到Mb],儲存在長度為16位元 存器R2中。 % 依此類推地,第三處理層級通輸出八個路徑權值 匕[7]至第四處理層級51〇d,並將八個旗標 心[7]儲存至暫存器&中。第四處理層級51〇d輸出四個路 徑權值P4[〇]到P4[3]至第五處理層級510e,並將四個旗標 W0]到f4[3]儲存至暫存器。第五處理層級⑽輸: 路徑權mP5[G]到p5[i]至第六處理層級S1()f,並將旗標 到^[1]儲存至暫存器R5中。最後的第六處理層級5^輸 出早-的路徑權值p6,即等於該等路徑權值Pq[_ ^中的最小者。而旗標值f6是單-位元,儲存於暫存器& 當所有暫存器Ri ~ &的值都齊備後,就可以開始逆 推該路徑權值?6所對應的索引值。詳細實施例將於第8圖 中說明。 @ 第6圖係為本發明另一實施例之回溯單元6〇〇。在此以 每HMm狀態元為例。要從人個狀態元中找出路 VITOS-OOMIOO-TW/OeOB^nSOTW^!/ 12 201039569 值最小之-者,需要三個處理層級 包含了四個比較選擇單元7⑻, 沘第一處理層級61〇a P〇m進行兩兩比對,以輪出四個選^八個路徑權值P〇[0]到 到邮]。其中Pl_ p。⑼和二比較結果,表示為p刺 是P〇[2]和P0[3]中較小之一者,以 較小之一者,Pji] 四個位元’而第-處理層級6;〇= 推。暫存器化包含 700各輸出一旗標,依序 T的四個比較選擇單元 中對應的位元上,故暫存1 1 fl[3] ’館存在暫存器κΟ P2[15]. Similarly, the 16 comparison selection units 7 产生 also generate π flags, denoted as hearts (9) to Mb], and are stored in the 16-bit memory R2. % and so on, the third processing level outputs eight path weights 匕[7] to the fourth processing level 51〇d, and stores eight flag hearts [7] into the scratchpad & The fourth processing level 51〇d outputs four path weights P4[〇] to P4[3] to fifth processing level 510e, and stores four flags W0] to f4[3] to the scratchpad. The fifth processing level (10) is input: the path weights mP5[G] to p5[i] to the sixth processing level S1()f, and the flags are stored to the register R5 in the ^[1]. The last sixth processing level 5^ outputs the early-path weight p6, which is equal to the smallest of the path weights Pq[_^. The flag value f6 is a single-bit, stored in the register & When all the values of the registers Ri ~ & are complete, can you start to reverse the path weight? The corresponding index value of 6. The detailed embodiment will be explained in Fig. 8. @图图图 is a backtracking unit 6〇〇 of another embodiment of the present invention. Here, each HMm state element is taken as an example. To find the path VITOS-OOMIOO-TW/OeOB^nSOTW^!/ 12 201039569 from the state element, the three processing levels are required to include four comparison selection units 7 (8), and the first processing level 61 〇a P〇m performs pairwise alignment to round out four selections of eight path weights P〇[0] to post]. Where Pl_p. (9) and the second comparison result, expressed as p thorn is one of the smaller ones of P 〇 [2] and P0 [3], with one of the smaller ones, Pji] four bits ' and the first processing level 6; = Push. The scratchpad contains 700 output flags, which are corresponding to the corresponding bits in the four comparison selection units of T, so the temporary storage 1 1 fl[3] ’ exists in the register κ

為尺綱剛。 R1巾的則时林值依序可表示 第處理層、級6l〇a輪出的四個取 _著傳送至第—處理層級61%中的二選[: π 700進仃選擇比較,以產生兩個比較選擇結果,⑽]和 P2[l]。同時兩個對應的旗標_]和f2⑴亦儲存至暫存器 R·2中的對應位元上,表示為尺2[0]和。最後一處理層 級610c中只包含一比較選擇單元700,接收該路徑權值 P2[0]和Ps[ 1 ]進行比較後,輸出單一位元的比較選擇結果 P3。該比較選擇結果p3即是八個路徑權值P〇[0]至p0[7]中 最小值者。至於實際上是對應哪一狀態元,需要由暫存器 Ri、R2和R3中的值來推導。詳細推導過程將於第8圖中說 明。 第5圖和第6圖的實施例雖然各説明了 64狀態元和8 狀態元的情況’但是可以推知本發明的處理層級可彈性延 伸至η個以適用於2n個狀態元(η為自然數)°至於索引 值的推導原理也是相同,可隨著η值而彈性適用。. 第7圖係為一比較選擇單元7〇0的實施例。每一比較 VIT08-0014IOO-TW/0608-A41750TWfiTinal/ 13 201039569 選擇單元700包含兩個輸入端,各用以接收不同狀態元之 路徑權值,例如IVJi]和pn l[i+1]。比較選擇單元7〇〇中包 含一比較器720,用以比較所輸入的兩個路徑權值Pn i[i] 和Pndi+l]。該比較器72〇執行的是減法運算,而輸出的 旗標fn[i]可以是一種正負號,藉此可以輕易判斷較小值是 來自哪一根輸入端腳位。舉例來說,該旗標可以是一布林 值,旗“值0代表該第一輸入端,而旗標值1代表該第二 輸入端。該比較選擇單元700中的選擇器710,則可根據 ❹該旗標,選擇該兩個路徑權值PwW或pn_1[i+1]的其中之 一’輸出為Pn[i]。其中i的值是一索引變數。 第8圖係為根據心到Rn來推導索引值的過程。以第5 圖的64狀態元之選擇比較結果為例,最後暫存器心中儲 存的是一個單位元的布林值。如粗線所示,暫存哭仏的值 是〇,表示其最小路徑權值來自P5[〇]。為表示方便,在此 暫指派一布林變數B〇’表示為: B0=R6=〇。 〇 接著回推到第五處理層級51〇e。由於已知最小路徑權 值來自P5[0],所以讀取暫存器位址R5[0],來進一步尋找 上一層來源。在本實施例中,假設位址R5[〇]中的值為1, 代表該路徑權值P5[0]的值來自第四處理層級的路徑權值 ?4[〇 1 ](為說明方便’在此[]中的值以二進位表示)。在此 指派一布林數變B!,表示為: 接著回推.到第四處理層級510d,由於已知最小路徑權 值來自P4[01],遂讀取暫存器位址RdOl]中的布林值,以 VIT08-0014I00-TW/0608-A41750TWi/Fmal/ 14 201039569Just for the ruler. The time value of the R1 towel may sequentially indicate that the fourth processing layer and the level 6x〇a are taken out to the second processing in the 61% of the processing level [[ π 700 仃 仃 selection comparison to generate Two comparisons select results, (10)] and P2[l]. At the same time, two corresponding flags _] and f2(1) are also stored on the corresponding bits in the register R·2, which is expressed as the ruler 2[0] and . The last processing level 610c includes only one comparison selecting unit 700, and after receiving the path weights P2[0] and Ps[1] for comparison, a comparison result P3 of a single bit is output. The comparison selection result p3 is the minimum of the eight path weights P 〇 [0] to p0 [7]. As to which state element is actually associated, it needs to be derived from the values in the registers Ri, R2 and R3. The detailed derivation process will be explained in Figure 8. The embodiments of Figs. 5 and 6 illustrate the case of 64 state elements and 8 state elements, respectively. However, it can be inferred that the processing level of the present invention can be elastically extended to n to apply to 2n state elements (η is a natural number). The derivation principle of the index value is the same, and can be flexibly applied with the value of η. Figure 7 is an embodiment of a comparison selection unit 7〇0. Each comparison VIT08-0014IOO-TW/0608-A41750TWfiTinal/ 13 201039569 The selection unit 700 includes two inputs, each for receiving path weights of different state elements, such as IVJi] and pn l[i+1]. The comparison selecting unit 7A includes a comparator 720 for comparing the input two path weights Pn i[i] and Pndi+1]. The comparator 72 performs a subtraction operation, and the output flag fn[i] can be a sign, so that it can be easily judged from which input pin the smaller value comes from. For example, the flag may be a Boolean value, the flag "value 0 represents the first input, and the flag value 1 represents the second input. The selector 710 in the comparison selection unit 700 may According to the flag, one of the two path weights PwW or pn_1[i+1] is selected as Pn[i], where the value of i is an index variable. Rn to derive the index value process. Take the comparison result of the 64 state element of Figure 5 as an example. Finally, the register value stored in the register is a Boolean value of a unit. As indicated by the thick line, the temporary crying The value is 〇, indicating that its minimum path weight is from P5[〇]. For convenience of convenience, a Boolean variable B〇' is temporarily assigned here as: B0=R6=〇. 〇 Then push back to the fifth processing level 51 〇e. Since the minimum path weight is known to be from P5[0], the register address R5[0] is read to further find the source of the previous layer. In this embodiment, the address R5[〇] is assumed. The value of 1 represents that the value of the path weight P5[0] is from the path weight of the fourth processing level? 4[〇1] (for convenience of description, the value in '[] Binary representation). Here a Boolean number B! is assigned, denoted as: Then push back. To the fourth processing level 510d, since the minimum path weight is known to be from P4[01], the scratch register bit is read. The Boolean value in the address RdOl] to VIT08-0014I00-TW/0608-A41750TWi/Fmal/ 14 201039569

進一步尋找上一層來源。在I 1,故可推得路徑權值的來例中_’位址R4[01]中的值為 在此指派-布林變數,表^^三處理層級的P3,]。 接著回推到第三處理層級Look for the source of the previous layer. In the case of I 1, the path weight can be derived. The value in the _' address R4[01] is assigned here - the Boolean variable, and the table is the processing level of P3,]. Then push back to the third processing level

〇 值來自P3[011],遂讀取暫f c,由於已知最小路徑權 以進-步尋找上-層來源。^位址R3[〇11]中的布林值, 為0,故可推得路徑權值的} 一例中,位址R3[011]中的值 定-布林變數B3表示為:—層來源是P2[G11G]。在此設 接著回推到第二處理層铋 值來自⑽關,遂讀取暫存:’由於已知最小路徑權 以進一步尋找上-層來源存在 =R2[_]中的布林值, 值為i,故可推得上一層來’位址_11〇]中的 、.u4tr :求,原、疋pi[〇u〇i](十進位表示為 PJ13])。在此扣派一布林變數b4, 接著回推到第-處理層級5l〇a,由於已知最小路徑權 值來自Ρι[οη〇Π,遂讀取暫存器位址Ri[咖咐的布林 值’以進-步尋找原始來源。在本例中,Ri[〇發射器^叩 中的值為〇,故可推得上一層來源是p〇[0發射器11〇1〇](十 進位表示為P〇[26])。在此使用一布林變數Bs,可表示為: 由上述逆推過私可以發現,最小路徑權值的來源,可 由隶後一處理層級的暫存器值依次推得。而最後所有的布 林變數串起來得到的值’恰為64個狀態元中最小路徑權值 VIT08-0014I0Q-TW/0608-A41750TW f/Final/ 15 201039569 者之索引值: [Β〇Β1Β2Β3Β4Β5]=[〇11〇1〇]=26 值故本實施發現該回溯單元可根據下列公式判定索引 B〇=Rn[〇]The value from P3[011], 遂 reads the temporary f c, because the minimum path weight is known to find the upper-layer source in a step-by-step manner. ^The Boolean value in the address R3[〇11] is 0, so the path weight can be derived. In the example, the value-Blinn variable B3 in the address R3[011] is expressed as: - layer source It is P2[G11G]. Here, the next pushback to the second processing layer is derived from (10) off, 遂 read staging: 'Because the minimum path weight is known to further find the Boolean value in the upper-layer source existence = R2[_], the value For i, it can be derived from the upper layer of 'address _11〇', .u4tr: seeking, original, 疋pi[〇u〇i] (decimal is represented as PJ13]). Here, a Boolean variable b4 is deducted, and then pushed back to the first processing level 5l〇a, since the known minimum path weight is from Ρι[οη〇Π, 遂 reads the scratchpad address Ri [Curry's cloth The forest value 'into the step-by-step search for the original source. In this example, the value of Ri[〇 emitter^叩 is 〇, so the source of the previous layer is p〇[0 emitter 11〇1〇] (the decimal is denoted as P〇[26]). Here, using a Boolean variable Bs, it can be expressed as: From the above-mentioned reverse push and private, it can be found that the source of the minimum path weight can be sequentially derived from the register value of the subsequent processing level. And finally all the Boolean variables are strung together to get the value 'just the minimum path weight of the 64 state elements VIT08-0014I0Q-TW/0608-A41750TW f/Final/ 15 201039569 Index value: [Β〇Β1Β2Β3Β4Β5]= [〇11〇1〇]=26 value, the implementation found that the retrospective unit can determine the index B〇=Rn[〇] according to the following formula

Bl=Rn-l[B〇] Ο ❹ • · ·Bl=Rn-l[B〇] Ο ❹ • · ·

Bn=Ri[B〇B1B2B3...Bn.1]Bn=Ri[B〇B1B2B3...Bn.1]

Bn] 其中1到Rn係為第一處理層級到第n處理層級 子器,3〇到Bn係為布林值〇或!,遞次地由對應的暫存 中的特定位址中獲取,而特定位址係表示為布=Bn] where 1 to Rn are the first processing level to the nth processing level, and 3〇 to Bn are Boolean values or! , which is obtained by the specific address in the corresponding temporary storage, and the specific address is expressed as cloth =

Bo到Bn排列而成的二進位值;w代表具有最小路徑^ 的狀態7G所對應的索引值,表 工值 成的二進位值。值表不為布林值Βθ]Βη排列而 二實施例突顯一個優點,就是在尋找最小路徑權值 ’不4要重複為索引值進行比較選擇的步驟。口 f要利用路徑權值的比較選擇過程所留下的旗標,就能推、 仔索引值。因此回溯單开M b U此u溯早兀208的硬體 縮減面積,節省成本。 Λ 虽回淘單元208逐個找出每一階^ 卽环吝4一h玟的最小狀態元後, — 生歸活路徑,。根據這條存活路徑,可進一牛推 行一對數相似率(LLR)運算,以輪出直 乂 VIT〇8-O014IO0-TW/0608-A41750TW^aI/ J6 '真正解碼的結果。 201039569 本發明所述的狀態矩陣運算結構不限定是一種四基底籬栅 (radix-4 trellis )結構,也可以適用於二平方基底籬柵 (radix-22 trellis )結構。 【圖式簡單說明】 第1圖係為一通訊系統的架構圖; 第2圖係為一維特比解碼器126的架構圖; 第3圖係為一狀態矩陣的示意圖; 第4圖係為一習知的回溯單元400之架構圖; 第5圖係為本發明實施例之一的回溯單元500 ; 第6圖係為本發明實施例之一的回溯單元600 ; 第7圖係為本發明實施例之一的比較選擇單元700;以 第8圖係為推導索引值的示意圖。 【主要元件符號說明】 110發射器 102天線 120接收器 124類比數位轉換器 202分支權值處理器 206路徑權值記憶體 400回溯單元The binary value of Bo to Bn is arranged; w represents the index value corresponding to the state 7G with the smallest path ^, and the binary value of the table value. The value table is not arranged for the Boolean value Β θ] Β η. The second embodiment highlights the advantage of finding the minimum path weight ‘no 4 to repeat the selection step for the index value. Port f should use the path weight value comparison selection process to leave the flag, you can push and index the value. Therefore, the back-up single-opening M b U is a long-term reduction of the hardware area of 208, which saves costs.虽 Although the scouring unit 208 finds the minimum state element of each order ^ 卽 ring 吝 4 玟 逐 one by one, the 归 return to the live path. According to this survival path, a one-to-score similarity ratio (LLR) operation can be performed to take the result of the true decoding of the VIT〇8-O014IO0-TW/0608-A41750TW^aI/J6'. 201039569 The state matrix operation structure of the present invention is not limited to a radix-4 trellis structure, and can also be applied to a radix-22 trellis structure. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is an architectural diagram of a communication system; Fig. 2 is an architectural diagram of a Viterbi decoder 126; Fig. 3 is a schematic diagram of a state matrix; FIG. 5 is a backtracking unit 500 according to one embodiment of the present invention; FIG. 6 is a backtracking unit 600 according to one embodiment of the present invention; FIG. 7 is an implementation of the present invention. The comparison selection unit 700 is one of the examples; the eighth diagram is a schematic diagram for deriving the index value. [Main component symbol description] 110 transmitter 102 antenna 120 receiver 124 analog digital converter 202 branch weight processor 206 path weight memory 400 backtracking unit

104天線 122射頻模組 126維特比解碼器 204加法比較選擇單元 208回溯單元 410a〜410c比較選擇單元412比較器 414, 416選擇器 416選擇器 400,500,600回溯單元 510a〜510f第一〜第六處理層級 610a第一處理層級 610b第二處理層級 VIT08-0014IOO-TW/0608-A41750TW£Tiiial/ 17 201039569 610c第三處理層級 700比較選擇單元 710選擇器 720比較器104 antenna 122 radio frequency module 126 Viterbi decoder 204 addition comparison selection unit 208 traceback unit 410a~410c comparison selection unit 412 comparator 414, 416 selector 416 selector 400, 500, 600 traceback unit 510a~510f first ~ Six processing level 610a first processing level 610b second processing level VIT08-0014IOO-TW/0608-A41750TW£Tiiial/ 17 201039569 610c third processing level 700 comparison selection unit 710 selector 720 comparator

VIT08-0014I00-TW/0608-A41750TWf/Final/ 18VIT08-0014I00-TW/0608-A41750TWf/Final/ 18

Claims (1)

201039569 七、申請專利範圍·· 1. 一種維特比解碼器,包含: 一路徑權值(State Metric )記憶體,用以儲存一狀態 矩陣,該狀態矩陣包含多個階段,每一階段包含2n個狀態 元,每一狀態元具有一索引值及一路徑權值,且對應多個 分支權值(Branch Metric);以及 一回溯單元,包含第一到第η處理層級依序串接,用 以找出該狀態矩陣中每一階段的最小路徑權值及對應索引 ❹ 值,以建立一存活路徑,其中: 每一處理層級包含: 至少一個比較選擇單元(Compare Selection Unit ; CSU),各用以比較兩個不同狀態元之路徑權值並輸出較 小者,並輸出一旗標以代表比較結果;以及 一暫存器,記錄每一比較選擇單元所輸出之旗標;其 中該回溯單元根據所有處理層級的暫存器組態推導出一階 段中路徑權值最小之狀態元之索引值。 Q 2. 如申請專利範圍第1項所之述維特比解碼,其中 每一比較選擇單元包含: 一第一輸入端以及一第二輸入端,各用以接收不同狀 態元之路徑權值; 一比較器,比較來自該第一輸入端和該第二輸入端之 路徑權值,並輸出一旗標以記錄該第一輸入端以及該第二 輸入端中路徑權值較小之一者;以及 一選擇器,用以根據該旗標,選擇性地將該第一輸入 端或該第二輸入端所接收到的路徑權值輸出。 VIT08-0014I00-TW/0608-A41750TW£Tinal/ 19 201039569 3. 如_清專利衝當9 TS 該旗標係為-布林值,旗標m q 維特比_,其中 標值1代表該第二輪入端。 戈表該第一輪入端,而旗 丄,,其 較選擇單7C的每1人端依序 且該2n、固比 中η為自然數。 …不同的索引值,其 Ο 中第5-處範:二項所述之維特,器,其 以進行兩兩比對,筛選半數“ds2π個狀態元 中:6. *申請細㈣第5項所狀維=級料器,其 第二處理層級以後之每一處理層級 量,是前一處理層級的比較選擇單元,選擇单元數 最後-處理層級包含一個比較選擇單元出以及 〇 代表該狀態矩陣之該階段中的2Ν固狀態元中且值即 權值之一者。 τ,、有竑小路徑 中:7. Μ請專利範圍第5項所述之維特比解碼器,其 2^2、=級的暫存器包含個仇元,儲存對應的 2個比軏選擇早凡所輪出的旗標; 第二處理層級以後之每一處理盾級的暂存器之仇元數 係前一氮理層級的暫存器之位元數的一年;以及 最後一氟理層級的暫存器包含一個彳1L元。 其 S.如ΐ讀專利第7項所述之維特比解瑪器, VTT08-00U100-TW/060S-Mn5OTWffPim\/ 2〇 201039569 比較選擇料’依序對應同—處理 中該回以以範口第8項所述之維特比解·其 知最小路捏權值來自前一處理層級的第的 元。 罘成個比較選擇單 中:10· >申請專利範圍第9項所述之維特比解碼器,其 Ο 〇 器組第;:處理層級至最後處理層級的暫存 較選擇單元; 弟處理層級的一特定比 該回滿單元根據第—處理層 徑權值係來自該特定比較選擇單元的=:=知,最小路 該特定輪入端對應的順位即為索引值,雨入鳊,以及 中二:申2利範圍第9項所述之維特比解媽器,呈 甲名口料讀據τ恥式判定索引值: ^ B〇=Rn[〇J Bl=Rn-l[B〇] ^Rn^BgBj] B3=Rn-3[B〇B1B2] Bn=Ri[B〇B1B2B3...Bn.I] Imin:=[B0B1B2B3...BnJ 其中Ri到Rn係為第_處理層級 存器係為布林值〇或!,、處理層級的暫 VIT08-0014I00-TW/0608-A41750TWi^iIial/ 2} ° :人地由對應的暫存器 201039569 其中R!到Rn係為第一處理層級到第n處理層級的暫存器, Β〇到Βη係為布林值〇或1,遞次地由對應的暫存器心到 Ri中的特定位址中獲取,而特定位址係表示為布林值Β〇 到Βη排列而成的二進位值;代表具有最小路徑權值的 狀態元所對應的索引值,表示為布林值^到队排列而成 的二進位值。 12.如申請專利範圍第1項所述之維特比解碼器,其 中該回溯單元進一步根據該狀態矩陣進行一對數相似率 〇 (LLR)運算;其中該狀態矩陣運算結構係為四基底離桃 (radix-4 trellis)結構或二平方基底籬栅(radix_22trelUs) 結構。 Π.如申請專利範圍第1項所述之維特比解碼器,進 一步包含多個加法比較選擇(ACS)單元平行運作,用以 根據一輸入序列進行一自然遞迴運算(Natural Recursion) 以產生該狀態矩陣’並將該狀態矩陣儲存在該路徑權值記 憶體中。 ° ❹ 14.如申請專利範圍第13項所述之維特比解碼器,其 中該自然遞迴運算係使用對數事後機率(Log_MAP)演算 法、最大對數事後機率(Max Log-MAP)演算法或者強化 最大對數事後機率(Enhanced Max Log-MAP)演算法其中 之一。 VIT08-0014I00-TW/O608-A41750TWf/Final/ 22201039569 VII. Patent Application Range·· 1. A Viterbi decoder, comprising: a State Metric memory for storing a state matrix comprising a plurality of stages, each stage comprising 2n a state element, each state element has an index value and a path weight, and corresponds to a plurality of branch metrics (Branch Metric); and a backtracking unit, including the first to the η processing levels, in series, for searching The minimum path weight and the corresponding index 每一 value of each stage in the state matrix are obtained to establish a survival path, wherein: each processing level includes: at least one Compare Selection Unit (CSU), each for comparison Two different state elements have path weights and output the smaller ones, and output a flag to represent the comparison result; and a register to record the flag output by each comparison selection unit; wherein the backtracking unit is based on all processing The hierarchical register configuration derives the index value of the state element with the smallest path weight in one phase. Q 2. The Viterbi decoding according to Item 1 of the patent application scope, wherein each comparison selection unit comprises: a first input end and a second input end, each for receiving path weights of different state elements; Comparing a path weight from the first input end and the second input end, and outputting a flag to record one of the first input end and the second input end having a smaller path weight; And a selector for selectively outputting the path weight received by the first input terminal or the second input terminal according to the flag. VIT08-0014I00-TW/0608-A41750TW£Tinal/ 19 201039569 3. If the patent is rushed to 9 TS, the flag is - Brin, the flag mq Viterbi _, where the value 1 represents the second round Into the end. The first round of the Go, and the flag, is more sequential than the one of the 7Cs, and the 2n in the solid ratio is a natural number. ...different index values, 第5-of-the-norm: the Viter, the two items, for pairwise comparison, screening half of the "ds2π state elements: 6. *application fine (four) fifth The dimension of the item = level hopper, the amount of each processing level after the second processing level is the comparison selection unit of the previous processing level, the number of selection units last - the processing level contains a comparison selection unit and 〇 represents the state The value of the 2 stagnation state element in the phase of the matrix is one of the weights. τ,, there is a small path: 7. The Viterbi decoder described in item 5 of the patent scope, 2^2 The = level of the scratchpad contains a hatred element, storing the corresponding two ratios to select the flag that is rounded out; the second level of processing after each processing shield level of the cache number One year of the number of bits of the register of the nitrogen-based level; and the register of the last fluorine level includes a 彳1L element. S. The reading of the Viterbi grammar as described in Item 7 of the patent , VTT08-00U100-TW/060S-Mn5OTWffPim\/ 2〇201039569 Compare selection materials' in order to correspond to the same In the case of the Viterbi solution described in Item 8 of the standard, the minimum value of the weight is derived from the first element of the previous processing level. 罘 into a comparison list: 10· > The Viterbi decoder of the nine items, the buffer group of the processing group; the temporary storage comparison unit of the processing level to the last processing level; the specific processing ratio of the processing level is based on the weight of the first processing layer === know from the specific comparison selection unit, the minimum path corresponding to the specific round entry is the index value, the rain enters the 鳊, and the second: the 2nd dimension of the 2nd dimension of the Viterbi solution The value of the index is: 〇J Bl=Rn-l[B〇] ^Rn^BgBj] B3=Rn-3[B〇B1B2] Bn= Ri[B〇B1B2B3...Bn.I] Imin:=[B0B1B2B3...BnJ where Ri to Rn is the _ processing level of the system is the Boolean value ! or !, the processing level of the temporary VIT08-0014I00 -TW/0608-A41750TWi^iIial/ 2} ° : The local area is corresponding to the temporary register 201039569, where R! to Rn are the first processing level to the nth processing level register, Β〇 to Βη For the Boolean value 1 or 1, it is obtained from the corresponding register heart to the specific address in Ri, and the specific address is expressed as the binary value of the Boolean value Β to Βη; The index value corresponding to the state element having the smallest path weight is represented by the binary value of the Boolean value ^ to the queue. 12. The Viterbi decoder according to claim 1, wherein the The backtracking unit further performs a one-to-seven similarity ratio (LLR) operation according to the state matrix; wherein the state matrix operation structure is a radix-4 trellis structure or a radix_22trelUs structure. The Viterbi decoder according to claim 1, further comprising a plurality of addition comparison selection (ACS) units operating in parallel for performing a natural recursion according to an input sequence to generate the The state matrix 'stores the state matrix in the path weight memory. ° ❹ 14. The Viterbi decoder of claim 13, wherein the natural recursive operation uses a log-to-post probability (Log_MAP) algorithm, a maximum log-to-mass probability (Max Log-MAP) algorithm, or enhancement. One of the largest logarithmic probability (Enhanced Max Log-MAP) algorithms. VIT08-0014I00-TW/O608-A41750TWf/Final/ 22
TW98113987A 2009-04-28 2009-04-28 Viterbi decoder TWI383596B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW98113987A TWI383596B (en) 2009-04-28 2009-04-28 Viterbi decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW98113987A TWI383596B (en) 2009-04-28 2009-04-28 Viterbi decoder

Publications (2)

Publication Number Publication Date
TW201039569A true TW201039569A (en) 2010-11-01
TWI383596B TWI383596B (en) 2013-01-21

Family

ID=44995564

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98113987A TWI383596B (en) 2009-04-28 2009-04-28 Viterbi decoder

Country Status (1)

Country Link
TW (1) TWI383596B (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859861A (en) * 1995-06-21 1999-01-12 Hyundai Electronics Ind. Co., Ltd. High speed viterbi decoder
US6901118B2 (en) * 1999-12-23 2005-05-31 Texas Instruments Incorporated Enhanced viterbi decoder for wireless applications
US7246298B2 (en) * 2003-11-24 2007-07-17 Via Technologies, Inc. Unified viterbi/turbo decoder for mobile communication systems
KR100675389B1 (en) * 2005-01-27 2007-01-29 삼성전자주식회사 Viterbi decoder for executing trace-back work in parallel, and, method thereof

Also Published As

Publication number Publication date
TWI383596B (en) 2013-01-21

Similar Documents

Publication Publication Date Title
US6891484B2 (en) Method of decoding a variable-length codeword sequence
CN107846261A (en) Decoded and the continuous apparatus and method for cancelling list-decoding for parallel continuous cancel
JP2009535939A (en) Viterbi decoding apparatus and technology
CN100517984C (en) Unified viterbi/turbo decoder for mobile communication systems
EP1135877A4 (en) Component decoder and method thereof in mobile communication system
US8009773B1 (en) Low complexity implementation of a Viterbi decoder with near optimal performance
US8055986B2 (en) Viterbi decoder and method thereof
CN101145790B (en) Decoder, addition-comparison-selection unit and its method
JP2004511162A (en) System and method for channel coding
US7962841B2 (en) Data decoding apparatus and method in a communication system
CN100433836C (en) Method and system for decoding video, voice, and speech data using redundancy
CN106059597B (en) It is a kind of that symbol probability computing unit is had based on probability Turbo decoder
US10075186B2 (en) Trellis segment separation for low-complexity viterbi decoding of high-rate convolutional codes
US8694878B2 (en) Processor instructions to accelerate Viterbi decoding
KR101476560B1 (en) Channel decoding method and tail biting convolutional decoder
McEliece et al. Truncation effects in Viterbi decoding
TW201039569A (en) Viterbi decoder
CN109861695B (en) Method for decoding convolutional code by using codebook
Wen et al. A new transform algorithm for Viterbi decoding
JP4213286B2 (en) Viterbi decoder
CN108702162A (en) High speed Gabi selection for Viterbi decoder
US7031407B1 (en) Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm
US9294134B2 (en) Viterbi decoding device and method for decoding a signal produced by a convolutional encoder
US20110231741A1 (en) System and method for viterbi decoding using application specific extensions
US20080109709A1 (en) Hardware-Efficient, Low-Latency Architectures for High Throughput Viterbi Decoders