KR100739792B1 - Viterbi decoder and viterbi decoding method - Google Patents
Viterbi decoder and viterbi decoding method Download PDFInfo
- Publication number
- KR100739792B1 KR100739792B1 KR1020060011239A KR20060011239A KR100739792B1 KR 100739792 B1 KR100739792 B1 KR 100739792B1 KR 1020060011239 A KR1020060011239 A KR 1020060011239A KR 20060011239 A KR20060011239 A KR 20060011239A KR 100739792 B1 KR100739792 B1 KR 100739792B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- viterbi decoder
- nodes
- viterbi
- output signal
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/31—Coding, 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 coding for error detection or correction and efficient use of the spectrum
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/43—Majority logic or threshold decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
도 1은 비터비 디코더가 포함된 기존의 광 디스크 구동기의 일부 기능 블록도이다. 1 is a functional block diagram of a conventional optical disc drive including a Viterbi decoder.
도 2a는 기존의 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이다.2A is a trellis diagram of a conventional Viterbi decoder of a 3-tap structure.
도 2b는 도 2a에 도시된 비터비 디코더의 트렐리스 다이어그램을 C 언어로 기술한 도면이다. FIG. 2B is a diagram illustrating a trellis diagram of the Viterbi decoder shown in FIG. 2A in C language.
도 3a는 기존의 (1, 7)코드용 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이다. 3A is a trellis diagram of a Viterbi decoder of a 3-tap structure for a conventional (1, 7) code.
도 3b는 도 3a에 도시된 비터비 디코더의 트렐리스 다이어그램을 C 언어로 기술한 도면이다. FIG. 3B is a diagram illustrating a Trellis diagram of the Viterbi decoder shown in FIG. 3A in C language.
도 4a는 본 발명의 일 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램으로서, 제거되는 패스 메모리의 위치를 표시한 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이다. FIG. 4A is a trellis diagram of a Viterbi decoder according to an embodiment of the present invention. FIG. 4A is a trellis diagram of a Viterbi decoder of a 3-tap structure indicating a position of a path memory to be removed.
도 4b는 본 발명의 일 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램을 C언어로 기술한 도면이다. 4B is a diagram illustrating a Trellis diagram of a Viterbi decoder according to an embodiment of the present invention in C language.
도 5a는 본 발명의 다른 실시 예에 따른 비터비 디코더의 트렐리스 다이어그 램으로서, 제거되는 패스 메모리의 위치를 표시한 (1, 7) 코드용 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이다. FIG. 5A is a trellis diagram of a Viterbi decoder according to another embodiment of the present invention. FIG. 5A shows a trellis diagram of a Viterbi decoder of a 3-tap structure for a (1, 7) It is a diagram.
도 5b는 도 5a에 도시된 본 발명의 다른 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램을 C언어로 기술한 도면이다. 5B is a diagram illustrating a Trellis diagram of a Viterbi decoder according to another embodiment of the present invention shown in FIG. 5A in C language.
도 6은 본 발명의 또 다른 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램으로서, 제거되는 패스 메모리의 위치를 표시한 (1, 7)코드용 5탭 비터비 디코더의 트렐리스 다이어그램이다. FIG. 6 is a trellis diagram of a Viterbi decoder according to another embodiment of the present invention. FIG. 6 is a trellis diagram of a 5-tap Viterbi decoder for a (1, 7) code showing a position of a path memory to be removed.
도 7은 본 발명의 또 다른 실시 에에 따른 비터비 디코딩 방법의 동작 흐름도이다. 7 is a flowchart illustrating a Viterbi decoding method according to another embodiment of the present invention.
도 8은 본 발명의 또 다른 실시 예에 따른 비터비 디코딩 방법의 동작 흐름도이다. 8 is a flowchart illustrating a Viterbi decoding method according to another embodiment of the present invention.
본 발명은 비터비 디코더(viterbi decoder) 및 비터비 디코딩 방법에 관한 것이다. The present invention relates to a viterbi decoder and a Viterbi decoding method.
비터비 디코더는 노이즈 등의 영향으로 손상된 이진 신호를 복원시키는데 이용된다. 이러한 비터비 디코더는 광 디스크 구동기와 같이 디지털 방식으로 운영되는 장치에서 2진 신호를 검출하기 위해 주로 사용된다. The Viterbi decoder is used to recover a damaged binary signal due to noise or the like. Such a Viterbi decoder is mainly used for detecting a binary signal in a device operated in a digital manner, such as an optical disk drive.
광 디스크 구동기는 디스크 표면에 이진 신호를 기록하고, 디스크 표면으로 레이저를 입사시켜 반사된 신호를 토대로 데이터를 재생하는 장치이다. 이 때 반사된 신호는 RF(Radio Frequency) 신호라고 한다. 그러나 디스크 표면에 이진 신호가 기록되어 있다고 하더라도 RF 신호는 디스크 특성과 광학적인 특성으로 인해 이진 신호가 아닌 아날로그 신호의 성질을 갖는다. An optical disc drive is a device that records binary signals on the surface of a disc and reproduces data based on the reflected signals by entering a laser onto the disc surface. The reflected signal is called an RF (Radio Frequency) signal. However, even if a binary signal is recorded on the surface of the disk, the RF signal has characteristics of an analog signal rather than a binary signal due to the disc characteristics and optical characteristics.
아날로그 신호의 성질을 갖는 RF 신호를 디지털 신호로 바꾸기 위해서 광 디스크 구동기에는 2치화 기능과 PLL 기능이 반드시 필요하다. 2치화 기능은 여러 가지로 구현이 가능하나 광 디스크 구동기는 비터비 디코더를 사용한 2치화 기능을 주로 사용하고 있다. 이는 비터비 디코더를 사용한 2치화 기능이 오류가 적은 2진 신호를 얻을 수 있기 때문이다. In order to convert an RF signal having an analog signal property into a digital signal, a binarizing function and a PLL function are indispensable for the optical disk driver. Although the binarizing function can be implemented in various ways, the optical disc drive mainly uses the binarizing function using a Viterbi decoder. This is because the binarization function using a Viterbi decoder can obtain a binary signal with few errors.
도 1은 비터비 디코더가 포함된 기존의 광 디스크 구동기의 일부 기능 블록도이다. 도 1을 참조하면 미 도시된 광디스크로부터 읽어낸 RF 신호는 2치화 회로(14)와 A/D 컨버터(11)로 입력된다. 2치화 회로(14)는 RF 신호를 2치화 한 후 PLL(15)로 출력한다. PLL(15)은 2치화된 데이터에 근거하여 RF 신호에 동기된 클록신호(PCLK)를 발생한다. PLL(15)로부터 발생된 클록신호(PCLK)는 A/D 컨버터(11), 파형등화기(12), 및 비터비 디코더(13)로 전송된다. 1 is a functional block diagram of a conventional optical disc drive including a Viterbi decoder. Referring to FIG. 1, an RF signal read out from an optical disk (not shown) is input to a
A/D 컨버터(11)는 입력된 RF 신호를 A/D 변환한 후 디지털 데이터를 파형등화기(12)로 출력한다. 파형등화기(12)는 입력되는 디지털 데이터를 후단의 비터비 디코더(13)에 적합한 형태로 파형등화한다. 비터비 디코더(13)는 파형등화된 데이터를 입력받아 비터비 디코딩하여 재생신호를 출력한다. The A / D converter 11 A / D-converts the input RF signal and then outputs the digital data to the
비터비 디코더(13)는 채널상에 혼합된 노이즈 등의 영향으로 RF 입력 신호에 손상이 발생하였을 때 손상된 신호를 복원시킨다. 이러한 비터비 디코더(13)의 구조는 탭 수와 런-랭스 조건에 따라 결정된다. 상기 런-랭스 조건은 런-랭스 조건을 위반한 노드를 제거하는 것이다. 즉, 런-랭스 조건은 런-랭스를 제한하는 조건이다. The Viterbi
예를 들어 비터비 디코더(13)가 3탭 구조를 가지면, 기본 채널 특성이 3개의 2진 입력 신호로 결정되는 특징을 갖는다. 도 2a는 비터비 디코더(13)가 3탭 구조일 때, 비터비 디코더(13)의 트렐리스(trellis) 다이어그램이다. 도 2a의 트렐리스 다이어그램은 vavb로 정의된 이전 노드(또는 상태)에서 vbvc로 정의되는 다음 노드(또는 상태)의 경우와 이때 나타날 수 있는 8가지 레벨을 도식적으로 나타낸 것이다. For example, if the Viterbi
도 2a를 참조하면, 비터비 디코더(13)의 트렐리스 다이어그램은 2개의 2진 입력 신호 vavb에 대해 나타날 수 있는 경우의 수가 4가지(00, 01, 10, 11)로 표현된다. 그리고 한 개의 입력 신호(vc)가 나타날 수 있는 레벨에서 추가로 들어오게 되면, 도 2a의 트렐리스 다이어그램은 vbvc의 조합에 의해 4가지 경우(00, 01, 10, 11)로 표현된다. 이전 노드 vavb의 4가지 경우에서 다음 노드 vbvc로 바뀔 수 있는 모든 경우의 수는 vavbvc에 의해 8가지 상태(또는 레벨)로 정의된다. 8가지 상태는 각각 000(210), 001(220), 010(230), 011(240), 100(250), 101(260), 110(270), 111(280)이다. Referring to FIG. 2A, the trellis diagram of the Viterbi
도 2a의 트렐리스 다이어그램을 C 언어로 기술하면, 도 2b와 같다. 도 2b는 도 2a에 도시된 트렐리스 다이어그램을 C 언어로 기술한 도면이다. The Trellis diagram of FIG. 2A is described in C language as shown in FIG. 2B. FIG. 2B is a diagram describing the Trellis diagram shown in FIG. 2A in C language.
도 2b를 참조하면, 이전 상태의 오류 누적값을 가지는 "sum" 이라는 변수에서 다음 상태의 오류 누적 값을 가지는 "sumnew"를 연산하게 되는데 "sumnew"는 이전 상태의 오류 누적 값에서 새롭게 발생되는 오류 값을 더한 값으로 정의되며 두 가지 가능한 합 중 적은 값을 선택하게 된다. Referring to FIG. 2B, a variable "sum" having an error accumulation value of the previous state is used to calculate "sumnew" having an error accumulation value of the next state. The value is defined as the sum of the values, and the smaller of the two possible summations is selected.
예를 들어, vbvc 노드가 00인 경우 이전 노드인 00에서 데이터가 천이되는 경우(210)와 이전 노드 10에서 천이되는 경우(250)로 나타난다. 이 때 00 노드에서 천이되는 경우는 레벨 000(레벨[0])에서 정의되는 새로운 에러 값이 더해지는 것이고, 10 노드에서 천이되는 경우는 레벨 100(레벨[4])에서 정의되는 새로운 에러 값이 더해지는 것이며, 이 때 연산 값이 적은 경우가 선택된다. For example, if the vbvc node is 00, data is transitioned from the previous node (00) to the node (210), and when the node is transited to the previous node (250). In this case, a new error value defined at level 000 (level [0]) is added in case of transition at 00 node, and a new error value defined at level 100 (level [4] At this time, the case where the calculated value is small is selected.
이는 도 2b에 정의된 "sumnew[0]=min((sum(0)+abs(inputdata[i]-(int)level [0])), (sum[2]+abs(inputdata[i]-(int)level[4])));" 연산식에 의해 알 수 있다. 이 연산식에서 min 함수는 두 개의 인자중 적은 값을 선택하여 출력하는 함수이다. 2) + sum (2) + abs (inputdata [i] - abs (i) - (int) (int) level [4]))); Can be known by an equation. In this expression, the min function is a function that selects a few of the two arguments and outputs them.
상술한 바와 같이 운영되기 위하여 비터비 디코더(13)는 각 노드마다 에러의 값을 갖는 스테이트 메모리(state memory)와 2차원 배열 구조로 배치되는 패스 메모리(path memory)를 포함한다. 비터비 디코더(13)의 트렐리스 다이어그램이 도 2a와 같을 때, 비터비 디코더(13)는 4비트의 스테이트 메모리와 72비트의 패스 메모리를 포함한다. 비터비 디코더(13)에 포함되는 패스 메모리의 가로축 길이는 탭 수의 5배 내지 6배 이상의 길이를 가짐이 바람직하며, 세로축 길이는 탭 수와 런-랭스(run-length)의 조건에 에 따라 결정되므로, 도 2a와 같은 트렐리스 다이어그램을 갖는 비터비 디코더(13)의 경우에 72(=3×6×4)비트의 패스 메모리를 포함한다. In order to operate as described above, the
한편, 광 디스크 구동기에 사용되는 코드가 런-랭스 조건을 고려한 코드인 경우에, 비터비 디코더(13)의 구조는 달라지게 된다. 예를 들어 1T 신호가 나오지 않고 최소 T(T는 코드 생성의 기본 주기)가 2T이고, 최대 T가 8T인 (1, 7) 코드의 경우에, 도 2a의 vavbvc가 101(260)이거나 010(230)과 같은 1T는 나오지 않기 때문에 레벨 101(레벨 [5])과 레벨 010(레벨 [2]) 경우는 나타나지 않게 된다. On the other hand, when the code used in the optical disc drive is a code considering the run-length condition, the structure of the
이 경우에, 3탭 비터비 디코더(13)의 트렐리스 다이어그램은 도 3a와 같이 정의된다. 도 3a는 런-랭스 조건을 고려한 비터비 디코더(13)의 트렐리스 다이어그램으로서, 기존의 (1, 7)코드용 3탭 구조의 비터비 디코더(13)의 트렐리스 다이어그램이다. 도 3a에서 알 수 있는 바와 같이 도 2a에 도시된 이전 노드 vavb의 4가지 경우에서 다음 노드 vbvc의 4가지 경우로 바뀔 수 있는 모든 경우의 수중에서 vavbvc가 101인 레벨(260)과 010인 레벨(230)이 제외된다. In this case, the trellis diagram of the 3-
비터비 디코더(13)의 트렐리스 다이어그램이 도 3a와 같을 때, C언어로 기술하면, 도 3b에 도시된 바와 같다. 도 3b는 도 3a에 도시된 트렐리스 다이어그램을 C언어로 기술한 도면이다. When the trellis diagram of the
도 3a 및 도 3b와 같이 런-랭스 조건을 고려하여 비터비 디코더를 구현할 경우에, 이전 노드 vavb에서 다음 노드 vbvc로 바뀔 수 있는 모든 경우의 수 vavbvc는 6가지 상태(000, 001, 011, 100, 110, 111)로 줄어드나 비터비 디코더(13)에 포함되는 스테이트 메모리의 수와 패스 메모리의 수는 런-랭스 조건을 고려하지 않은 도 2a 및 도 2b의 비터비 디코더(12)에 포함되는 메모리들의 수와 동일하다. In the case of implementing a Viterbi decoder in consideration of the run-length condition as shown in FIGS. 3A and 3B, the number vavbvc of all cases which can be changed from the previous node vavb to the next node vbvc is divided into six states (000, 001, , 110, and 111, and the number of state memories and the number of path memories included in the
그러나, 광 디스크의 기록 밀도가 높아짐에 따라 재생되는 신호의 품질이 점 점 열악해지면서 광 디스크 구동기가 오동작하는 경우가 발생되고 있다. 이러한 문제를 해결하기 위하여, 광 디스크의 기록 밀도를 높이는 만큼 탭 수가 긴 비터비 디코더를 사용하는 광 디스크 구동기들이 제안되고 있다. However, as the recording density of the optical disc increases, the quality of the reproduced signal becomes worse, and the optical disc driver malfunctions. In order to solve this problem, optical disk drivers using a Viterbi decoder with a large number of taps by increasing the recording density of the optical disk have been proposed.
비터비 디코더의 탭 수가 길어진다는 것은 도 2a 및 도 3a에 도시된 트렐리스 다이어그램의 세로 축 길이와 가로 축의 길이가 길어지는 것을 의미한다. 이는 비터비 디코더의 세로 축의 길이는 탭 수와 런-랭스의 조건에 따라 결정되고, 가로 축의 길이는 탭 수의 5배 내지 6배 이상의 길이를 가짐이 바람직하다고 알려져 있기 때문이다. 따라서 비터비 디코더에 포함되는 패스 메모리는 2차원 배열 구조를 가지므로 탭 수가 늘어남에 따라 그 수가 기하급수적으로 늘어나게 된다. The longer tap length of the Viterbi decoder means that the length of the longitudinal axis and the length of the transverse axis of the Trellis diagram shown in FIGS. 2A and 3A are longer. This is because it is known that the length of the vertical axis of the Viterbi decoder is determined according to the number of taps and run-length conditions, and the length of the transverse axis is preferably five to six times longer than the number of taps. Therefore, since the path memory included in the Viterbi decoder has a two-dimensional array structure, the number increases exponentially as the number of taps increases.
예를 들어, 3탭 구조를 갖는 비터비 디코더의 경우에 가로 18(3×6) 세로 4(23/2)인 72비트의 패스 메모리가 필요하다. 그러나 4탭 구조를 갖는 비터비 디코더의 경우에 가로 24(4×6) 세로 8(24/2)로 192비트의 패스 메모리가 필요하다. For example, there is a need for a third horizontal 18 in the case of a Viterbi decoder having a tab structure (3 × 6) vertically. 4 (23/2) of the 72-bit path memory. However, four horizontal longitudinal tab 24 (4 × 6) in the case of a Viterbi decoder having a structure 8 (24/2) is the 192-bit path memory is required to.
따라서 복잡한 형태의 채널일수록 사용되는 비터비 디코더의 탭 수는 늘어나므로 필요한 패스 메모리의 양도 기하급수적으로 늘어나게 되어 비터비 디코더의 하드웨어 사이즈가 커지면서 동작 속도도 느려지게 된다. Therefore, since the number of taps of a Viterbi decoder used for a complex channel increases, the amount of required path memory increases exponentially, and the hardware size of the Viterbi decoder becomes larger and the operation speed becomes slower.
본 발명이 이루고자 하는 기술적 과제는 사용되는 메모리의 수를 줄임으로써, 하드웨어 사이즈를 줄이고 동작 속도를 개선한 비터비 디코더 및 비터비 디코딩 방법을 제공하는데 있다. SUMMARY OF THE INVENTION The present invention provides a Viterbi decoder and a Viterbi decoding method that reduce hardware size and improve operation speed by reducing the number of memories to be used.
상술한 기술적 과제들을 달성하기 위하여 본 발명은, 비터비 디코더에 있어서, 상기 비터비 디코더의 탭 수 또는 상기 탭 수와 런-랭스 조건에 따른 2차원 배열 구조를 갖는 노드들중에서 상기 2차원 배열 구조의 최종 상태 노드열에서 상기 비터비 디코더의 출력신호에 영향을 미치지 않는 적어도 하나의 노드를 제외한 노드들에 각각 배치되어 현재 선택된 브랜치 정보를 저장하는 패스 메모리들을 포함하는 비터비 디코더를 제공한다.According to an aspect of the present invention, there is provided a Viterbi decoder comprising: a Viterbi decoder configured to extract a Viterbi decoder from a plurality of nodes having a two-dimensional array structure according to a tap number of the Viterbi decoder or a number of taps and a run- And a path memory for storing currently selected branch information, each of the path memories being disposed in each of the nodes except the at least one node that does not affect the output signal of the Viterbi decoder in the final state node column of the final state node column.
상기 비터비 디코더는, 2차원 배열 구조의 최종 상태 노드열의 이전 상태 노드 열들의 노드중에서 상기 최종 상태 노드열에서 상기 비터비 디코더의 출력신호에 영향을 미치는 노드에 브랜치로 연결되지 않은 적어도 하나의 노드들에 상기 패스 메모리를 더 배치하지 않는 구조를 갖는 것이 바람직하다. Wherein the Viterbi decoder comprises: at least one node that is not connected to a branch that is not connected to a node that influences the output signal of the Viterbi decoder in the last state node column among the nodes of the previous state node columns of the last state node column of the two- It is preferable to have a structure in which the above-mentioned pass memory is not further disposed.
상술한 기술적 과제들을 달성하기 위하여 본 발명은, 비터비 디코딩 방법에 있어서, 상기 비터비 디코딩시 이용되는 탭 수 또는 상기 탭 수와 런-랭스 조건에 따른 2차원 배열 구조를 갖는 노드들중에서 최종 상태 노드열을 체크 단계; 상기 최종 상태 노드열의 노드중에서 상기 비터비 디코딩 출력신호에 영향을 미치지 않는 적어도 하나의 노드에 배치되는 패스 메모리를 제거한 상태의 비터비 디코딩을 수행하는 단계를 포함하는 비터비 디코딩 방법을 제공한다. According to an aspect of the present invention, there is provided a Viterbi decoding method for decoding a Viterbi decoding signal, the Viterbi decoding method comprising the steps of: Checking the node sequence; And performing Viterbi decoding in a state in which a path memory disposed in at least one node that does not affect the Viterbi decoding output signal among the nodes of the last state node column is removed.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 4a는 본 발명의 일 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램 으로서, 제거되는 패스 메모리의 위치를 표시한 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이다. FIG. 4A is a trellis diagram of a Viterbi decoder according to an embodiment of the present invention. FIG. 4A is a trellis diagram of a Viterbi decoder of a 3-tap structure indicating a position of a path memory to be removed.
일반적으로 n-탭 비터비 디코더의 경우, n-1개의 노드로 구성된 이전 상태와 새로운 입력으로 인해 n-1개의 노드로 구성된 현재 상태로 트렐리스 다이어그램을 구성한다. 각각의 노드는 전체 n개의 천이 상태에 의해 연결이 된다. 각각의 n-1개의 노드와 n개의 천이 상태는 2진수로 표현이 가능하다. In general, in the case of an n-tap Viterbi decoder, a Trellis diagram is composed of a current state composed of n-1 nodes and a current state composed of n-1 nodes due to a new input. Each node is connected by a total of n transition states. Each n-1 node and n transition states can be expressed in binary numbers.
도 4a는 상술한 바와 같이 3탭 구조의 비터비 디코더의 트렐리스 다이어그램이므로, 이전 상태 노드는 2(=3-1)개의 2진수로 표현되어 있고, 현재 상태 노드는 2개의 2진수로 표현되어 있으며, 천이 상태는 3개의 2진수로 표현되어 있다. 4A is a trellis diagram of a 3-tap Viterbi decoder as described above, the previous state node is represented by 2 (= 3-1) binary numbers, and the current state node is represented by 2 binary numbers And the transition state is represented by three binary numbers.
도 4a는 세로축의 길이(또는 세로축의 노드 수)가 4비트이고 가로축의 길이(또는 가로축의 노드 수)가 24비트인 비터비 디코더의 트렐리스 다이어그램이므로 2차원 배열 구조를 갖는 패스 메모리는 24×4비트가 필요하다. 4A is a trellis diagram of a Viterbi decoder in which the length of the vertical axis (or the number of nodes in the vertical axis) is 4 bits and the length of the horizontal axis (or the number of nodes in the horizontal axis) is 24 bits. × 4 bits are required.
그러나 비터비 디코더의 최종 상태 노드열에서 출력되는 데이터는 p[0][23]이 1인지 0인지에 따른 결과가 출력된다. 즉 비터비 디코더의 최종 상태 노드열의 출력이 최종 상태 노드열의 최상위 노드에 배치된 패스 메모리로부터 출력되고, 최종 상태 노드열의 최상위 노드이외의 노드에 배치된 패스 메모리의 출력은 비터비 디코더의 출력신호에 영향을 미치지 않는다. 즉, 비터비 디코더의 최종 상태 노드열에서 출력되는 p[1][23], p[2][23], p[3][23] 데이터는 비터비 디코더의 출력 신호에 영향을 미치지 않는다. 이는 도 4b에 도시된 C언어로 기술된 도면을 토대로 명확히 알 수 있다. 도 4b는 도 4a에 도시된 트렐리스 다이어그램을 C언어로 기술 한 도면이다. However, the data output from the final state node column of the Viterbi decoder is output according to whether p [0] [23] is 1 or 0. That is, the output of the last state node column of the Viterbi decoder is output from the path memory disposed at the top node of the last state node column, and the output of the path memory disposed at the node other than the top node of the final state node column is output to the output signal of the Viterbi decoder It does not affect. That is, the p [1] [23], p [2] [23], and p [3] [23] data output from the final state node column of the Viterbi decoder do not affect the output signal of the Viterbi decoder. This can be clearly understood based on the drawings described in the C language shown in FIG. 4B. 4B is a diagram describing the Trellis diagram shown in FIG. 4A in C language.
따라서 도 4a와 같이 2차원 배열 구조를 갖는 노드들중에서 도 4a의 (400)에 포함되는 노드들을 제외한 노드들에 패스 메모리를 각각 배치한 구조를 갖는 비터비 디코더를 구현할 수 있다. 상기 도 4a의 (400)에 포함되는 노드들은 비터비 디코더의 출력신호에 영향을 미치지 않는 노드들이다. Therefore, it is possible to implement a Viterbi decoder having a structure in which path memories are arranged in the nodes other than the nodes included in (400) of FIG. 4A among the nodes having the two-dimensional array structure as shown in FIG. 4A. The nodes included in (400) of FIG. 4A are nodes that do not affect the output signal of the Viterbi decoder.
즉, 비터비 디코더는 탭 수에 따라 결정된 세로축 노드와 동일한 개수로 구성되어 각 노드마다 누적되는 에러 값을 저장하는 스테이트 메모리들과 상기 탭 수에 따라 결정된 가로축 노드와 세로축 노드에 따라 결정된 2차원 배열의 구조를 갖는 노드중에서 최종 상태 노드 열의 최상위 노드이외의 3개의 노드들을 제외한 노드들에 각각 배치되어 현재 선택된 브랜치 정보를 저장하는 패스 메모리들을 포함한다. 최종 상태 노드 열의 최상위 노드는 비터비 디코더의 출력신호에 영향을 미치는 노드이고, 최종 상태 노드 열의 최상위 노드이외의 3개의 노드들은 비터비 디코더의 출력신호에 영향을 미치지 않는 노드들이다. That is, the Viterbi decoder includes state memories which are composed of the same number as the vertical axis nodes determined according to the number of taps and store error values accumulated for each node, a two-dimensional array determined according to the horizontal axis and vertical axis nodes determined according to the number of taps Among the nodes having the structure of the last state node column, the path memories which are respectively disposed in the nodes except the three nodes other than the top node of the last state node column and store the currently selected branch information. The top node of the last state node column is a node that affects the output signal of the Viterbi decoder and the three nodes other than the top node of the final state node column are nodes that do not affect the output signal of the Viterbi decoder.
또한, 도 4a에 도시된 바와 같이 최종 상태 노드 열에서 최상위 노드를 제외한 노드들(400)이 제거됨에 따라 최종 상태 노드 열의 이전 상태 노드열들의 노드중에서 최상위 노드에 브랜치로 연결되지 않는 노드에 패스 메모리를 배치하지 않는 구조로 비터비 디코더를 구현할 수 있다. In addition, as shown in FIG. 4A, when the
도 4a에서 최종 상태 노드 열의 최상위 노드를 기준으로 이전 상태 노드 열을 체크하면, 이전 상태 노드 열에 존재하는 노드들중에서 체크되지 않는 노드들이 존재한다. 이러한 노드들이 상기 최상위 노드에 브랜치로 연결되지 않은 노드들이 다. 도 4a에서는 최종 상태 노드 열의 바로 이전 상태 노드열에서 두 번째 노드(410)와 네 번째 노드(420)가 이에 해당된다.In FIG. 4A, when the previous state node column is checked based on the highest node of the last state node column, there are nodes that are not checked among the nodes existing in the previous state node column. These nodes are nodes that are not connected to the uppermost node as a branch. In FIG. 4A, the
이와 같이 최종 상태 노드열에서 최상위 노드를 제외한 노드에 배치되는 패스 메모리를 제거하고, 최종 상태 노드열 이전의 상태 노드열들에서 상기 최상위 노드와 연결되지 않은 노드들에 대응되는 패스 메모리를 제거할 경우에, 비터비 디코더의 트렐리스에 대한 C언어는 도 4b에 도시된 바와 같이 기술된다. 이 경우, 72비트의 패스 메모리중 5비트의 패스 메모리를 줄이게 되므로 패스 메모리를 기존의 비터비 디코더에 비해 7% 줄인 효과를 제공할 수 있다. In this manner, when the path memory disposed in the node excluding the top node is removed from the last state node column and the path memory corresponding to the nodes not connected to the top node is removed from the state node columns before the last state node row , The C language for the trellis of the Viterbi decoder is described as shown in FIG. 4B. In this case, since the 5-bit pass memory of the 72-bit pass memory is reduced, the effect of reducing the pass memory by 7% compared to the conventional Viterbi decoder can be provided.
그러나, 최종 상태 노드열에서 비터비 디코더의 출력신호에 영향을 미치는 노드는 최상위 노드로 제한되지 않는다. 즉, 비터비 디코더에서 출력되는 p[0][23], p[1][23], p[2][23], 및 p[3][23] 데이터중 하나를 비터비 디코더의 출력신호에 영향을 미치는 노드의 데이터로 결정하여 비터비 디코딩을 수행할 수 있다. However, the node that affects the output signal of the Viterbi decoder in the last state node column is not limited to the highest node. That is, one of the p [0] [23], p [1] [23], p [2] [23], and p [3] [23] data output from the Viterbi decoder is input to the output signal And determines Viterbi decoding based on the data of the node that affects the Viterbi decoding.
또한, 런-랭스 조건을 고려하는 경우에는 런-랭스 조건이 고려되지 않은 트렐리스 다이어그램에서 런-랭스 조건을 위반한 브랜치를 제거하고, 런랭스 조건을 위반한 노드를 제거하고, 남은 브랜치와 노드로 구성된 비터비 디코더의 트렐리스 다이어그램을 토대로 최종 상태 노드열의 최상위 노드이외의 노드에 배치되는 패스 메모리와 최종 상태 노드열 바로 이전 상태 노드열에서 상기 최상위 노드에 브랜치로 연결된 이전 상태 노드 이외의 노드에 배치되는 패스 메모리를 제거한 비터비 디코더를 구성할 수 있다. In the case of considering the run-length condition, a branch violating the run-length condition is removed from the Trellis diagram in which the run-length condition is not considered, the node violating the run-length condition is removed, Based on a Trellis diagram of a Viterbi decoder composed of nodes, a path memory disposed in a node other than the top node of the last state node column and a path memory disposed in a state other than the previous state node connected to the top node in the state immediately preceding the last state node column It is possible to construct a Viterbi decoder by removing the path memory disposed at the node.
도 5a는 본 발명의 다른 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램으로서, (1, 7) 코드용 3탭 비터비 디코더에서 제거 대상이 되는 패스 메모리의 위치를 표시한 비터비 디코더의 트렐리스 다이어그램이다. 도 5a에서 (500), (510), (520)에 포함되는 노드들에 배치되는 패스 메모리가 제거 대상이 되는 패스 메모리이다. 도 5a에 도시된 트렐리스 다이어그램을 C언어로 기술하면, 도 5b에 도시된 바와 같다. FIG. 5A is a trellis diagram of a Viterbi decoder according to another embodiment of the present invention. FIG. 5A is a diagram illustrating a trellis diagram of a Viterbi decoder showing a position of a path memory to be removed in a 3-tap Viterbi decoder for a (1, It is a Lelis diagram. In FIG. 5A, the path memory disposed in the nodes included in (500), (510), and (520) is a path memory to be removed. The Trellis diagram shown in FIG. 5A is described in C language as shown in FIG. 5B.
도 6은 본 발명의 또 다른 실시 예에 따른 비터비 디코더의 트렐리스 다이어그램으로서, (1, 7) 코드용 5탭 비터비 디코더에서 제거 대상이 되는 패스 메모리의 위치를 표시한 비터비 디코더의 트렐리스 다이어그램이다. FIG. 6 is a trellis diagram of a Viterbi decoder according to another embodiment of the present invention, wherein a Viterbi decoder for indicating the position of a path memory to be removed in a 5-tap Viterbi decoder for (1, 7) It is a Trellis diagram.
도 6을 참조하면, 최종 상태 노드 열에 최대 2n개의 노드가 있으면, 최종 상태 노드열에서 2n-1개의 노드에 배치되는 패스 메모리를 줄일 수 있고, 최종 상태 노드 열의 바로 이전 상태 노드 열에서 최종 상태 노드열의 최상단 노드에 연결된 노드를 제외한 노드에 배치되는 패스 메모리를 줄일 수 있고, 이전 상태 노드열로 갈수록 제거되지 않는 노드에 브랜치로 연결된 노드를 제외한 노드들에 배치되는 패스 메모리를 줄일 수 있다는 것을 알 수 있다. 따라서, 도 6의 경우에 (600) 내지 (612)에 포함되는 노드에 배치되는 메모리를 줄일 수 있어, 기존에는 30×10=300개의 패스 메모리가 필요하나 그중 31개의 메모리를 줄여 약 10%의 메모리 절감 효과가 있다. 6, if there are a maximum of 2n nodes in the final state node column, it is possible to reduce the path memory disposed in 2n- 1 nodes in the final state node column, It is possible to reduce the path memory allocated to the nodes other than the node connected to the uppermost node of the state node column and to reduce the path memory allocated to the nodes other than the node connected to the branch node that is not removed as the state node Able to know. Accordingly, in the case of FIG. 6, the number of memories arranged in the nodes included in (600) to (612) can be reduced. Thus, 30 × 10 = 300 pass memories are required, There is memory saving effect.
도 7은 본 발명의 또 다른 실시 에에 따른 비터비 디코딩 방법의 동작 흐름 도이다. 7 is a flowchart of a Viterbi decoding method according to another embodiment of the present invention.
도 7을 참조하면, 비터비 디코더는 비터비 디코딩시 이용되는 탭 수 또는 탭 수와 런-랭스 조건에 따른 2차원 배열 구조를 갖는 노드들중에서 최종 상태 노드열을 체크한다(701). Referring to FIG. 7, the Viterbi decoder checks 701 a final state node column among nodes having a two-dimensional array structure according to the number of taps or the number of taps and run-length conditions used in Viterbi decoding.
최종 상태 노드열의 노드중에서 비터비 디코딩 출력신호에 영향을 미치지 않는 적어도 하나의 노드에 배치되는 패스 메모리를 제거한 상태의 비터비 디코딩을 수행한다(702). 최종 상태 노드열의 노드 수가 2n개이면, 2n개의 노드중에서 2n-1개의 노드는 비터비 디코딩 출력신호에 영향을 미치지 않는 노드들이고, 나머지 노드가 비터비 디코딩 출력신호에 영향을 미치는 노드이다. 최종 상태 노드열에서는 최상단의 노드가 비터비 디코딩 출력신호에 영향을 미치는 노드일 수 있다. (702) the Viterbi decoding in a state in which the path memory disposed in at least one node not affecting the Viterbi decoding output signal among the nodes of the final state node column is removed. If the
도 8은 본 발명의 또 다른 실시 예에 따른 비터비 디코딩 방법의 동작 흐름도이다. 8 is a flowchart illustrating a Viterbi decoding method according to another embodiment of the present invention.
도 8을 참조하면, 비터비 디코더는 비터비 디코딩시 이용되는 탭 수 또는 탭 수와 런-랭스 조건에 따른 2차원 배열 구조를 갖는 노드들중에서 최종 상태 노드열을 체크한다(801). Referring to FIG. 8, the Viterbi decoder checks a final state node column among the nodes having a two-dimensional array structure according to the number of taps or the number of taps and run-length conditions used in Viterbi decoding (801).
최종 상태 노드열의 노드중에서 비터비 디코딩 출력신호에 영향을 미치지 않는 적어도 하나의 노드에 배치되는 패스 메모리를 제거한다(802). 따라서 최종 상태 노드열의 노드 수가 2n개이면, 2n개의 노드중에서 2n-1개의 노드는 비터비 디코딩 출력신호에 영향을 미치지 않는 노드들이고, 나머지 노드가 비터비 디코딩 출력 신호에 영향을 미치는 노드이다. 최종 상태 노드열에서는 최상단의 노드가 비터비 디코딩 출력신호에 영향을 미치는 노드이면, 최종 상태 노드열에서 최상단의 노드를 제외한 노드들에 배치되는 패스 메모리들이 제거된다. 최종 상태 노드열에서 비터비 디코딩 출력신호에 영향을 미치는 노드는 최상단의 노드로 제한되지 않는다. 즉, 최종 상태 노드열에 존재하는 노드중 임의의 하나의 노드가 비터비 디코딩 출력신호에 영향을 미치는 노드로 사용될 수 있다. (802) a path memory disposed in at least one node that does not affect the Viterbi decoding output signal among the nodes of the last state node column. Therefore, if the end node, the
그 다음 비터비 디코더는 최종 상태 노드열의 이전 상태 노드열들의 노드중에서 최종 상태 노드열에서 비터비 디코딩 출력신호에 영향을 미치는 노드에 브랜치로 연결된 노드를 체크한다(803). 최종 상태 노드열에서 비터비 디코딩 출력신호에 영향을 미치는 노드가 최상단의 노드이면, 제 803 단계에서 최종 상태 노드열에 최상단의 노드에 브랜치로 연결된 노드를 체크한다. The Viterbi decoder then checks (803) the nodes connected to the branch that affect the Viterbi decoding output signal in the last state node column among the nodes of the previous state node columns of the last state node column. If the node affecting the Viterbi decoding output signal in the final state node column is the topmost node, in
비터비 디코더는 이전 상태 노드열들의 노드중에서 비터비 디코딩 출력신호에 영향을 미치는 노드에 브랜치로 연결되지 않은 적어도 하나의 노드의 패스 메모리를 제거한 상태의 비터비 디코딩을 수행한다(804). The Viterbi decoder performs Viterbi decoding in a state where the path memories of at least one node not connected to the branch that is not connected to the node affecting the Viterbi decoding output signal among the nodes of the previous state node columns are removed (804).
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
상술한 바와 같이 본 발명은 2차원 배열 구조의 최종 상태 노드열에서 출력 신호에 영향을 미치는 노드를 기준으로 불필요한 패스 메모리를 제거한 비터비 디코더 및 비터비 디코딩 방법을 제공함으로써, 기존에 비해 비터비 디코더의 하드웨어 사이즈를 줄일 수 있고, 비터비 디코더의 동작 속도를 개선할 수 있다. As described above, the present invention provides a Viterbi decoder and a Viterbi decoding method by eliminating an unnecessary path memory based on a node affecting an output signal in a final state node column of a two-dimensional array structure, The hardware size of the Viterbi decoder can be reduced, and the operation speed of the Viterbi decoder can be improved.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060011239A KR100739792B1 (en) | 2006-02-06 | 2006-02-06 | Viterbi decoder and viterbi decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060011239A KR100739792B1 (en) | 2006-02-06 | 2006-02-06 | Viterbi decoder and viterbi decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100739792B1 true KR100739792B1 (en) | 2007-07-13 |
Family
ID=38504357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060011239A KR100739792B1 (en) | 2006-02-06 | 2006-02-06 | Viterbi decoder and viterbi decoding method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100739792B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010064315A (en) * | 1999-12-29 | 2001-07-09 | 구자홍 | Apparatus Of Processing Digital Signal And Method Thereof |
-
2006
- 2006-02-06 KR KR1020060011239A patent/KR100739792B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010064315A (en) * | 1999-12-29 | 2001-07-09 | 구자홍 | Apparatus Of Processing Digital Signal And Method Thereof |
Non-Patent Citations (1)
Title |
---|
S.J.Jung, M.H.Lee and H.J.Choi, "A New survivor memory management method in Viterbi decoders",'99 Golbal Telecomm. Conference, Nov.1999. |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100753966B1 (en) | Apparatus and method for modulation/demodulation with consecutive minimum runlength limitation | |
US5774286A (en) | Magnetic disk drive in which read data is demodulated using maximum likelihood detection method | |
KR100354175B1 (en) | A method and an apparatus for modulating/demodulating data and a recording medium | |
JP2001035086A (en) | Device and method for signal processing | |
US7274645B2 (en) | Reproduction signal processing apparatus and optical disc player including the same | |
US7333033B2 (en) | Modulation table, modulating device and method, program, and recording medium | |
KR20070007927A (en) | Dc-controlled encoding for optical storage system | |
JP2000040968A (en) | Method and device for encoding, method and device for decoding, and providing medium | |
JP2002298518A (en) | Data error correcting method used in full response channel system | |
KR100739792B1 (en) | Viterbi decoder and viterbi decoding method | |
JPH0231219A (en) | Improve data demodulation system | |
US6313764B1 (en) | Demodulating device, demodulating method and transmission medium | |
US6483882B1 (en) | EFM demodulation circuit and method | |
US7006019B2 (en) | Rate-7/8 maximum transition run code encoding and decoding method and apparatus | |
US6674816B2 (en) | Viterbi detector for extending tolerable extent of direct current bias | |
EP0772303B1 (en) | Viterbi detector with path-memory of reduced size | |
KR19980087313A (en) | Modulation apparatus and method, and transmission medium | |
JPH097313A (en) | Digital information reproducer | |
JP4682742B2 (en) | Optical disc apparatus and optical disc reproducing method | |
JP2000285612A (en) | Data decoder and data decoding method | |
KR100238322B1 (en) | Viterbi detection method and device | |
JP4826888B2 (en) | DEMODULATION TABLE, DEMODULATION DEVICE, DEMODULATION METHOD, PROGRAM, AND RECORDING MEDIUM | |
KR20000067973A (en) | Asymmetric channel data detection compensation | |
JP2953385B2 (en) | Digital recording encoding method and reproduction data detection method | |
JP2004145918A (en) | Information recorder and information reproducing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130627 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140627 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150629 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160629 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20170629 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |