KR19980043690A - Viterbi Decoder - Google Patents
Viterbi Decoder Download PDFInfo
- Publication number
- KR19980043690A KR19980043690A KR1019960061643A KR19960061643A KR19980043690A KR 19980043690 A KR19980043690 A KR 19980043690A KR 1019960061643 A KR1019960061643 A KR 1019960061643A KR 19960061643 A KR19960061643 A KR 19960061643A KR 19980043690 A KR19980043690 A KR 19980043690A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- evaluation amount
- decision
- path evaluation
- traceback
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
본 발명은 소정의 주파수(60MHz) 이상에서도 매 클럭마다 1개의 최상상태값을 출력하여 트래이스 백을 수행하므로 원 데이터가 복원 가능한 비터비 디코더(viterbi decoder)에 관한 것으로, 비터비 디코더가 소정의 주파수(60MHz) 이상에서 동작할 때 내부의 최상상태판단블록(30)은 매 클럭마다 1개의 최상상태의 생존경로값을 출력하여 이를 트래이스백블록(40)으로 제공하여 해당 트래이스 백을 수행하므로 원 데이터를 복원한다.The present invention relates to a Viterbi decoder capable of restoring the original data by outputting one best state value every clock even at a predetermined frequency (60 MHz) or more. When operating at a frequency higher than 60 MHz, the internal best state decision block 30 outputs one best state survival path value every clock and provides it to the traceback block 40 to perform the corresponding traceback. Therefore, the original data is restored.
Description
본 발명은 비터비 디코더(viterbi decoder)에 관한 것으로서, 구체적으로는 소정의 주파수 이상에서도 매 클럭마다 1개의 최상상태값을 출력하여 트래이스 백을 수행하므로 원 데이터가 복원 가능한 비터비 디코더에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Viterbi decoder. More particularly, the present invention relates to a Viterbi decoder capable of restoring original data by outputting one highest state value every clock even at a predetermined frequency or more. .
비터비 디코더의 일반적인 구성은 크게 가지평가블록(Branch Metric block)과, 가산비교선택블록(Add-Compare-Select block)과, 트래이스백블록(Traceback block)을 포함하여 구성되어 있다.The general structure of the Viterbi decoder is largely comprised of a branch metric block, an add-compare-select block, and a traceback block.
상기 가지평가블록은 송신단의 엔코더(encoder)에서 출력되어 잡음이 있는 채널(noisy channel)을 통해 수신단으로 입력된 입력 데이터(input data)와 노이즈(noise)가 없는 엔코더의 출력 사이의 해밍간격(hamming distance)을 구하는 블록이다. 상기 가산비교선택블록은 상기 가지평가블록의 각각의 가지(branch)에 대해 가지평가량(branch metric value)을 누적하여, 경로평가량(path metric value)을 구하고 이를 비교하여 생존경로(survival path)를 찾는다. 통상적으로 128개의 가지(branch)에 대하여 상기 가산비교선택블록는 64개의 생존경로를 선택하고 다시 64개의 경로평가량의 크기를 비교하여 1개의 생존경로 즉, 최상상태(best state)를 선택하여 그 값을 상기 트래이스백블록으로 출력한다. 상기 트래이스백블록은 상기 생존경로에 대해 트래이스 백(trace back)을 수행하여 원 데이터를 복원한다.The branch evaluation block is output from an encoder of a transmitting end and a hamming interval between input data inputted to a receiving end through a noisy channel and an output of an encoder without noise. distance). The addition comparison selection block accumulates branch metric values for each branch of the branch evaluation block, obtains a path metric value, and compares them to find a survival path. . In general, for 128 branches, the addition comparison selection block selects 64 survival paths and compares the magnitudes of the 64 path estimates to select one survival path, that is, the best state, and select the value. Output to the traceback block. The traceback block restores the original data by performing a trace back on the survival path.
그런데 종래에 1개의 최상상태를 구하는 방법으로는 64개의 상태를 모두 비교하여 가장 크기가 작은 경로 평가량의 상태를 최상상태로 선택하였다. 그러나 이러한 방법은 60MHz 이상에서 동작하는 하드웨어에서 64개의 경로평가량을 동시에 비교하도록 구현하기가 어려운 문제점이 있었다.In the conventional method of obtaining one best state, all 64 states are compared to select the state of the smallest path evaluation amount as the best state. However, this method has a problem that it is difficult to implement to simultaneously compare 64 path estimates in hardware operating at 60MHz or more.
본 발명의 목적은 상술한 문제점을 해결하기 위해 제안된 것으로서, 소정의 주파수(60MHz) 이상에서도 매 클럭마다 최상상태 데이터를 출력하여 해당되는 트래이스 백을 수행할 수 있는 비터비 디코더를 제공하는데 있다.SUMMARY OF THE INVENTION An object of the present invention is to solve the above problems, and to provide a Viterbi decoder capable of performing a corresponding traceback by outputting top state data every clock even at a predetermined frequency (60 MHz) or more. .
도 1은 본 발명의 실시예에 따른 비터비 디코더의 회로도,1 is a circuit diagram of a Viterbi decoder according to an embodiment of the present invention;
도 2는 도 1에 도시된 최상상태판단블록 의 상세 회로도.FIG. 2 is a detailed circuit diagram of the top state decision block shown in FIG.
*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
10 : 가지평가블록20 : 가산비교선택블록10: branch evaluation block 20: addition comparison selection block
30 : 최상상태판단블록32 : 비교블록30: Best judgment block 32: Comparison block
34 : 판단블록40 : 트래이스백블록34: judgment block 40: traceback block
50 : 플래그설정블록60 : 매트릭스저장블록50: flag setting block 60: matrix storage block
70 : 결정저장블록80 : 램블록70: decision storage block 80: ram block
(구성)(Configuration)
상술한 목적을 달성하기 위한 본 발명의 특징에 의하면, 비터비 디코더는 : 수신단으로 입력되는 데이터에서 해당되는 해밍간격을 구하여 가지평가량을 출력하는 가지평가블록과; 상기 가지평가량 및 경로평가량을 입력받아 상기 경로평가량을 갱신하고, 해당되는 생존경로평가량 및 결정비트를 출력하는 가산비교선택블록과; 상기 생존경로평가량을 입력받아 비교판단하여 최상상태값을 출력하는 최상상태판단블록과; 상기 최상상태값을 입력받아 해당되는 트래이스 백을 수행하여 원 데이터를 복원하여 출력하는 트래이스백블록과; 상기 가산비교선택블록으로부터 갱신된 경로평가량을 입력받아 소정의 경계값 이상인가를 판단하여 해당 플래그를 설정하는 플레그설정블록과; 상기 가산비교선택블록으로부터 갱신된 경로평가량을 입력받아 저장하고, 이를 상기 가산비교선택블록에 경로평가량으로 궤환 입력하는 매트릭스저장블록과; 상기 결정비트를 입력받아 저장하고 매 클럭마다 출력하는 결정저장블록과; 상기 결정저장블록에서 제공되는 데이터를 저장하여 상기 트래이스백블록으로 제공하는 램블록을 포함한다.According to a feature of the present invention for achieving the above object, a Viterbi decoder comprises: a branch evaluation block for obtaining a corresponding hamming interval from the data input to the receiving end and outputting a branch evaluation amount; An addition comparison selection block which receives the branch evaluation amount and the path evaluation amount, updates the path evaluation amount, and outputs a corresponding survival path evaluation amount and a decision bit; A best state judging block which receives the survival path evaluation amount and compares the result of the survival path evaluation to output a top state value; A traceback block for receiving the best state value and performing a corresponding traceback to restore and output the original data; A flag setting block which receives the updated route evaluation amount from the addition comparison selection block and determines whether or not the predetermined threshold value is greater and sets a corresponding flag; A matrix storage block for receiving and storing the updated path evaluation amount from the addition comparison selection block, and feedbacking the path estimation amount to the addition comparison selection block as a path evaluation amount; A decision storage block which receives and stores the decision bit and outputs each clock; And a RAM block storing data provided from the decision storage block and providing the data to the traceback block.
이 실시예에 있어서, 상기 가산비교선택블록은 복수개의 서브가산비교선택블록을 포함한다.In this embodiment, the addition comparison selection block includes a plurality of sub addition comparison selection blocks.
이 실시예에 있어서, 상기 최상상횰판단블록은 상기 생존경로평가량을 입력받아 소정값과 비교하여 해당결과를 출력하는 비교블록과; 상기 해당결과를 소정수 각각의 상태로 분류하여 최상상태를 판단하는 판단블록을 포함한다.In this embodiment, the top-level decision block is a comparison block for receiving the survival path evaluation amount and compare with a predetermined value and outputs a corresponding result; And a determination block for classifying the result into a predetermined number of states and determining a best state.
(작용)(Action)
이상과 같은 본 발명에 의하면, 상기 최상상태판단블록은 소정의 주파수(60MHz)이상에서 동작할 때, 매 클럭마다 1개의 최상상태 즉, 생존경로값을 출력하여 해당 트래이스 백을 수행하므로 비터비 디코더는 원 데이터를 복원하여 출력한다.According to the present invention as described above, when the top state determination block operates at a predetermined frequency (60 MHz) or more, Viterbi performs a corresponding traceback by outputting one top state, that is, a survival path value, every clock. The decoder restores the original data and outputs it.
(실시예)(Example)
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.DETAILED DESCRIPTION Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따른 비터비 디코더의 회로도이고, 도 2는 도 1에 도시된 최상상태판단블록의 상세 회로도이다.FIG. 1 is a circuit diagram of a Viterbi decoder according to an embodiment of the present invention, and FIG. 2 is a detailed circuit diagram of the best state decision block shown in FIG.
도 1에 도시된바와 같이 본 발명의 실시예에 따른 비터비 디코더는 가지평가블록(10)과, 가산비교선택블록(20)과, 최상상태판단블록(30)과, 트래이스백블록(40)과, 플래그설정블록(50)과, 매트릭스저장블록(60)과, 결정저장블록(70)과, 램블록(80)을 포함하여 구성된다.As shown in FIG. 1, a Viterbi decoder according to an embodiment of the present invention includes a branch evaluation block 10, an addition comparison selection block 20, a top state decision block 30, and a traceback block 40. ), A flag setting block 50, a matrix storage block 60, a decision storage block 70, and a RAM block 80.
이 실시예에 따른 비터비 디코더는 강제값(constraint)이 k=7이고, 상태(state)는 64개이다. 상기 가산비교선택블록(20)은 상기 가지평가블록(20)으로부터 가지평가량(bm1, bm2)이 입력될 때마다 상기 매트릭스저장블록(60)으로부터 경로평가량(pm1, pm2)을 궤환(feedback) 입력받아 새로운 경로평가량으로 갱신(update)하고, 128개의 가지에 대하여 128개의 가지평가량을 계산하여 64개의 생존경로(surv_met)를 구한다. 상기 최상상태판단블록(30)은 64개의 생존경로(surv_met)에 대하여 경로평가량을 비교하여 1개의 최상상태(best_state)를 구한다.The Viterbi decoder according to this embodiment has a constraint value of k = 7 and 64 states. The addition comparison selection block 20 feeds back the path evaluation amounts pm1 and pm2 from the matrix storage block 60 whenever the branch evaluation amounts bm1 and bm2 are input from the branch evaluation block 20. It receives and updates the new path evaluation amount, calculates 128 branch evaluation values for 128 branches, and obtains 64 survival paths (surv_met). The best state decision block 30 obtains one best state by comparing path estimates with respect to 64 survival paths (surv_met).
여기서 모든 상태를 7과 비교하여 7보다 작은 상태는 '1'로 설정(set)하고, '7'보다 큰 상태는 '0'으로 설정하여 64개의 상태를 4개 부분으로 나누어 '1'로 설정된 상태를 최상상태로 선택하여 그 값을 상기 트레이스백블록(40)으로 출력한다.Here, all states are set to '1' for all states less than 7 and set to '1' for all states greater than 7 and set to '0' for states greater than '7'. The state is selected as the best state and the value is output to the traceback block 40.
좀더 구체적으로, 도 1을 참조하여, 상기 가지평가블록(10)은 송신단의 엔코더에서 출력되어 잡음이 존재하는 채널(noisy channel)을 통해 수신단으로 입력되는 입력 데이터(input data)와 잡음이 없는 엔코더는 출력 사이의 거리(distance) 즉, 가지평가량을 구하는 블록이다. 가지평가량이 크다는 것은 입력된 데이터가 에러일 가능성이 크다는 것을 의미한다.More specifically, referring to FIG. 1, the branch evaluation block 10 is an encoder without noise and an input data inputted to a receiver through a noisy channel output from an encoder of a transmitter. Is a block for calculating the distance between outputs, that is, the amount of branch evaluation. A large amount of branch evaluation means that the data entered is likely to be an error.
한편, 이 실시예에서 구현된 비터비 디코더는 60MHz 이상에서 매 클럭마다 디코딩된 데이터가 출력되어야 하므로 상기 가산비교선택블록(20)도 이 주파수에서 매 클럭마다 경로평가량을 계산하여 출력하도록 되어 있다. 이러한 블록을 구현하기 위해서는 64개의 서브가산비교선택블록(미도시됨)이 필요하다. 상기 서브가산비교선택블록에는 2개의 각각 두개의 가지평가량(bm1, bm2)과 2개의 경로평가량(pm1, pm2)이 입력된다. 가지평가량은 이미 계산되어 출력된 경로평가량이 궤환된 것으로 서브가산비교선택블록은 가지평가량과 경로평가량을 더하여 기존의 경로평가량을 갱신(update)한다.Meanwhile, in the Viterbi decoder implemented in this embodiment, the decoded data must be output for every clock at 60 MHz or more, so that the addition comparison selection block 20 calculates and outputs the path evaluation amount every clock at this frequency. To implement such a block, 64 subaddition comparison selection blocks (not shown) are required. Two branch evaluation amounts bm1 and bm2 and two path evaluation amounts pm1 and pm2 are respectively input to the subaddition comparison selection block. The branch evaluation amount is already calculated and outputted. The sub-addition comparison selection block updates the existing path evaluation amount by adding the branch evaluation amount and the path evaluation amount.
각 상태는 두개의 가지가 있고 각 가지에 대하여 2개의 경로평가량이 있으므로 상기 가산비교선택블록(20)는 2개의 경로평가량을 비교하여 크기가 작은 경로평가량을 생존경로로 출력하고 이 출력은 경로평가블록(60)에 저장된다. 또한 트래이스백을 위한 데이터로 상기 가산비교선택블록(20)에서 계산된 경로평가량에 대하여 pm1pm2이면 decision=0으로 출력하고 pm1pm2이면 decision=1로 출력한다.Since each state has two branches and two path evaluation amounts for each branch, the addition comparison selection block 20 compares the two path evaluation amounts, outputs a small path evaluation amount as a survival path, and outputs this path evaluation. Stored in block 60. In addition, as the data for the traceback, if the path evaluation amount calculated in the addition comparison selection block 20 is pm1pm2, decision = 0 is outputted and if pm1pm2 is output as decision = 1.
상기 가산비교선택블록(20)은 64개의 생존경로평가량(survival path metric; surv_met)과 64개의 decision 비트를 출력한다. 계산된 경로평가량이 새로운 가지평가량과 더해지기 위해서는 상기 가산비교선택블록(20)으로 궤환을 하기 위해 일단 레지스터에 임시저장되어야 한다. 이때 사용되는 레지스터가 매트릭스저장블록(60)이다. 이는 4비트의 경로평가량 64개를 저장한다. 또한 decision 비트를 저장하는 레지스터로 64비트의 결정저장블록(70)이 사용되었다. 상기 결정저장블록(70)의 데이터는 매 클럭마다 램블록(80)으로 출력된다.The addition comparison selection block 20 outputs 64 survival path metrics (surv_met) and 64 decision bits. In order for the calculated path evaluation amount to be added to the new branch evaluation amount, it must be temporarily stored in the register once to be fed back to the addition comparison selection block 20. The register used at this time is the matrix storage block 60. This stores 64 4-bit path estimates. In addition, a 64-bit decision storage block 70 is used as a register for storing decision bits. The data of the decision storage block 70 is output to the RAM block 80 every clock.
상기 플래그설정블록(50)은 경로평가량값이 경계값(threshold) 이상이면 표준화 플레그(normalize flag)를 '1'로 설정한다. 매트릭스저장블록(60)의 경로평가량 데이터는 상기 최상상태판단블록(30)으로 출력된다. 상기 최상상태판단블록(30)은 64개의 경로평가량 중에서 가장 작은 경로평가량을 찾아 최상상태로 출력한다. 최상상태는 상기 트래이스백블록(40)에서 트래이스 백을 시작할 때 사용되는 상태값이다.The flag setting block 50 sets a normalize flag to '1' when the path estimation value is equal to or greater than a threshold. The path estimation data of the matrix storage block 60 is output to the top state determination block 30. The best state decision block 30 finds the smallest path estimate among 64 path estimates and outputs the best path estimate. The best state is a state value used when starting a traceback in the traceback block 40.
한편, 도 2를 참조하여, 상기 최상상태판단블록(30)은 비교블록(32)과 판단블록(34)으로 구성된다. 상기 판단블록(32)에서는 우선 모든 상태를 7과 비교하여 7보다 작은 상태는 '1'로 설정하고 7보다 큰 상태는 '0'으로 설정하여 votes(64비트)로 상기 판단블록(34)으로 출력한다. 상기 판단블록(34)은 64개 상태를 state0-state14, state15-state30, state31-state44, state45-state63의 4개 블록으로 나누고 각 블록의 votes값을 각 4개의 블록에서 동시에 체크하여 '1'로 설정된 상태를 찾는 것이므로 하드웨어로 구현하는데 어려움이 없다.On the other hand, referring to Figure 2, the best state determination block 30 is composed of a comparison block 32 and the determination block 34. In the decision block 32, all the states are first compared to seven, and a state smaller than 7 is set to '1' and a state larger than 7 is set to '0' to votes (64 bits) to the decision block 34. Output The decision block 34 divides 64 states into four blocks of state0-state14, state15-state30, state31-state44, and state45-state63, and checks the votes of each block simultaneously in each of the four blocks to '1'. Finding the set state, so there is no difficulty to implement in hardware.
그러므로 이상과 같은 본 발명의 실시예에 따르면, 상기 최상상태판단블록(30)은 60MHz에서 동작할 때, 매 클럭마다 1개의 최상 상태(best_state)의 생존경로값을 출력한다.Therefore, according to the embodiment of the present invention as described above, when operating at 60MHz, the best state determination block 30 outputs a survival path value of one best state (best_state) every clock.
이상과 같은 본 발명에 의하면, 60MHz 이상으로 동작되는 비터비 디코더에서도 매 클럭마다 1개의 최상 상태를 출력할 수 있어, 트래이스 백을 수행하여 원 데이터를 복원할 수 있다.According to the present invention as described above, even a Viterbi decoder operating at 60 MHz or higher can output one best state every clock, thereby performing a traceback to restore the original data.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960061643A KR19980043690A (en) | 1996-12-04 | 1996-12-04 | Viterbi Decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960061643A KR19980043690A (en) | 1996-12-04 | 1996-12-04 | Viterbi Decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19980043690A true KR19980043690A (en) | 1998-09-05 |
Family
ID=66475755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960061643A KR19980043690A (en) | 1996-12-04 | 1996-12-04 | Viterbi Decoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19980043690A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100939422B1 (en) * | 2005-04-07 | 2010-01-28 | 노키아 코포레이션 | Blind transport format detection based on decoder metric |
-
1996
- 1996-12-04 KR KR1019960061643A patent/KR19980043690A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100939422B1 (en) * | 2005-04-07 | 2010-01-28 | 노키아 코포레이션 | Blind transport format detection based on decoder metric |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100350502B1 (en) | Component decoding apparatus and method of mobile communication system | |
EP0543586B1 (en) | Viterbi decoding apparatus with majority decision | |
US5936972A (en) | Syndrome-based channel quality or message structure determiner | |
CN107370491B (en) | High-performance low-delay extended TPC decoding method | |
WO1996026583A1 (en) | A method for determining connection quality, and a receiver | |
US6813744B1 (en) | ACS unit for a viterbi decoder | |
US8009773B1 (en) | Low complexity implementation of a Viterbi decoder with near optimal performance | |
US6058501A (en) | Error detecting device for viterbi decoder | |
US7046747B2 (en) | Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations | |
US7085992B2 (en) | Method and device for decoding a sequence of physical signals, reliability detection unit and viterbi decoding unit | |
US20070168846A1 (en) | Data decoding apparatus and method in a communication system | |
KR19980043690A (en) | Viterbi Decoder | |
US6701483B1 (en) | Fast search-based decoding scheme | |
EP0748057B1 (en) | Bit error counting method and counter | |
US8140949B2 (en) | ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder | |
US6084925A (en) | Method and apparatus for discriminating synchronous or asynchronous states of Viterbi decoded data | |
US7852960B2 (en) | Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof | |
US7386779B2 (en) | Systems and methods for correcting errors in a received frame | |
JP3497399B2 (en) | Viterbi decoder | |
US7020223B2 (en) | Viterbi decoder and method using sequential two-way add-compare-select operations | |
JPH0410773B2 (en) | ||
JP2591332B2 (en) | Error correction decoding device | |
NO973541L (en) | Method for forming transition metrics, as well as receiver in a cellular radio system | |
US7032165B2 (en) | ACS unit in a decoder | |
KR19980072765A (en) | Addition-Compare-Selection (ACS) Device for Viterbi Decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |