KR20070077603A - 비터비 디코딩 방법 및 비터비 디코더 - Google Patents

비터비 디코딩 방법 및 비터비 디코더 Download PDF

Info

Publication number
KR20070077603A
KR20070077603A KR1020060007250A KR20060007250A KR20070077603A KR 20070077603 A KR20070077603 A KR 20070077603A KR 1020060007250 A KR1020060007250 A KR 1020060007250A KR 20060007250 A KR20060007250 A KR 20060007250A KR 20070077603 A KR20070077603 A KR 20070077603A
Authority
KR
South Korea
Prior art keywords
run length
maximum run
exceeding
viterbi decoder
maximum
Prior art date
Application number
KR1020060007250A
Other languages
English (en)
Inventor
박현수
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060007250A priority Critical patent/KR20070077603A/ko
Priority to US11/634,091 priority patent/US20070263753A1/en
Priority to EP06077287A priority patent/EP1811521A1/en
Priority to JP2007000763A priority patent/JP2007200525A/ja
Priority to CNA2007100013035A priority patent/CN101009122A/zh
Publication of KR20070077603A publication Critical patent/KR20070077603A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명에 따라 비터비 디코딩 방법 및 비터비 디코더가 개시된다.
본 발명에 따른 비터비 디코더는, 최대 런랭쓰가 K로 제한되고, K+1 탭 이상을 사용하는 비터비 디코더 시스템에서 최대 런랭쓰를 초과하는 노드 및 최대 런랭쓰를 초과하는 천이상태 중 적어도 하나를 제거한 구조를 가지는 것을 특징으로 한다.

Description

비터비 디코딩 방법 및 비터비 디코더{Viterbi decoding method and viterbi decoder}
도 1은 종래 기술에 따라 비터비 디코더가 포함된 디지털 방식의 검출기의 예,
도 2a는 종래 기술에 따라 3 탭 구조의 일반적인 비터비 디코딩 알고리즘의 트렐리스 다이어그램,
도 2b는 도 2b에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 3a는 일반적인 (1,7) 코드용 3탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램,
도 3b는 도 3a에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 4a는 본 발명에 따라 (1,7) 코드용 3 탭 비터비 디코딩 알고리즘에서 최대 런랭쓰를 2T로 제한한 경우의 트렐리스 다이어그램,
도 4b는 도 4a에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 5a는 일반적인 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램,
도 5b는 도 5a에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 6a는 일반적인 (1,7) 코드용 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램,
도 6b는 도 6a에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 7a는 본 발명에 따라 최소 런랭쓰 2, 최대 런랭쓰 3으로 제한된 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램,
도 7b는 도 7a에 도시된 트렐리스 다이어그램을 구현한 C 언어,
도 8은 본 발명에 따른 비터비 디코더의 일 예.
본 발명은 비터비 디코딩 방법 및 비터비 디코더에 관한 것이다.
광 디스크는 디스크 표면에 이진 신호를 기록한 다음 레이저를 입사시켜 반사된 파형을 읽어 데이터를 재생하는 장치이다. 이때 디스크 표면에서 읽은 신호는 RF(Radio Frequency) 신호 라고 하는데, 디스크 표면에 이진 신호가 기록되어 있다고 하더라도 읽은 RF 신호는 디스크 특성과 광학적인 특성으로 인해 이진 신호가 아닌 아날로그 신호의 성질을 가지고 있다. 따라서 아날로그 신호를 디지털 신호로 바꾸기 위해서는 이치화 과정과 PLL이 반드시 필요하다. 이치화 수단은 여러 가지로 구현이 가능한데 그중에서도 비터비 디코더를 사용할 경우는 오류가 적은 이진 신호를 얻을 수 있다고 알려져 있다. 도 1은 비터비 디코더가 포함된 디지털 방식의 검출기의 구현예이다. 비터비 디코더는 채널의 특성에 맞도록 최적의 조건으로 이진 신호를 검출하는 방법이며 단순한 사인 검출 회로나 런길이 정정 방식에 비해 검출 성능이 좋다고 알려져 있다. 일반적으로 비터비 디코더의 입력으로 최 적의 조건을 가진 신호가 들어갈 수 있도록 FIR 필터를 사용하면 더 좋은 성능을 얻을 수 있는데, 이러한 FIR 필터는 채널의 특성을 최적으로 만들어 주기 위해 사용되므로 등화기 (EQ:Equalizer)라고 하기도 한다. 도 1을 참조하면 광디스크 등으로부터 읽어낸 RF 신호는 이치화 회로(14)와 A/D 컨버터(11)로 입력된다. 이치화 회로(14)는 RF 신호를 이치화한 후 PLL(15)로 출력한다. PLL(15)은 이치화된 데이터에 근거하여 RF 신호에 동기된 클럭을 발생하며, 클럭 신호를 A/D 컨버터(11), 파형등화기(12), 및 비터비복호화기(13)로 출력한다. A/D 컨버터(11)는 입력된 RF 신호를 A/D 변환한 후 디지털 데이터를 파형등화기(12)로 출력한다. 파형등화기(12)는 입력되는 디지털 데이터를 후단의 비터비 복호화기(13)에 적합한 형태로 파형등화한다. 비터비복호화기(13)는 파형등화된 데이터를 입력받아 비터비복호화하여 재생신호를 출력한다. 비터비복호화는 채널상에 혼합된 노이즈 등의 영향으로 RF 입력 신호에 손상이 발생하였을 때 손상된 신호를 복원시킬 수 있는 기술로서 HDD 등에 널리 이용된다.
일반적으로 광 디스크의 기록 밀도가 높아짐에 따라 재생되는 신호의 품질이 점점 열악해지고 따라서 오동작하는 경우가 생기게 된다. 이러한 문제를 해결하고자 기록 밀도를 높이는 만큼 탭 수가 긴 비터비 디코더를 사용하게 되는데 탭 수가 길어질수록 하드웨어 크기가 복잡해지고 커지며 동작속도가 느려진다는 단점이 있다.
일반적으로 비터비 디코더는 입력 신호의 통계적 특성을 이용해 최적의 이진 데이터를 구하기 위한 방법 및 회로로서, 비터비 디코더를 구성하기 위해서는 입력 신호의 특성에 맞는 레벨이 정의되어야 하고 레벨에 따라 입력 신호의 통계적 특성을 판단함으로써 오류가 적은 이진 신호를 얻는 구조를 가지고 있다.
비터비 디코더의 구조는 기본적으로 탭 수에 따라 다르게 구성되는데 예를 들어 3 탭 구조의 비터비 디코더의 경우 3개의 입력 신호에 대하여 최적의 디코딩 성능을 내도록 구성되어 있다.
도 2a와 2b는 일반적인 3탭 구조의 비터비 디코더 알고리즘을 트렐리스(trellis) 다이어그램과 C 언어 형태로 표시한 것이다. 이러한 구조는 매우 일반적인 것으로 기존에 많이 사용되던 형태이다.
도 2a의 트렐리스 다이어그램은 va,vb의 이전 상태에서 vb,vc로 정의되는 다음 상태의 경우와 이때 나타날 수 있는 8가지 레벨을 도식적으로 표시한 것이다. 도 2a를 참조하여, 다이어그램을 살펴보게 되면 2개의 이진 입력 신호에 대해 나타날 수 있는 경우의 수가 4가지로 표현되고(편의상 순서대로 들어온 입력 신호를 va,vb로 언급), 이 때 한 개의 입력 신호(vc)가 추가로 들어오게 되면, vb, vc의 조합에 의해 4가지 경우로 표현이 된다. 이전 상태(va,vb)의 4가지 경우에서 다음 상태 (vb,vc)로 바뀔 수 있는 모든 경우의 수는 va, vb, vc에 의해 8가지 상태(레벨)로 정의되며, 이들 각각 000(210), 001(220), 010(230), 011(240), 100(250), 101(260), 110(270), 111(280)의 8가지 경우로 표시했다. 이를 C 알고리즘으로 적용해보면 이전 상태의 오류 누적값을 가지는 sum 이라는 변수에서 다음 상태의 오류 누적값을 가지는 sumnew를 연산하게 되는데 sumnew는 이전 상태의 오류 누적값에서 새롭게 발생되는 오류 값을 더한 값으로 정의되며 두가지 가능한 합 중 적은 값을 선택하게 된다.
예를 들어, vb,vc가 0,0인 경우 이전 상태인 0,0에서 데이터가 천이되는 경우(210)와 1,0에서 천이되는 경우(250), 두가지 경우로 나타나는데 이때 0,0에서 천이되는 경우는 레벨 000(레벨[0])에서 정의되는 새로운 에러값이 더해지는 것이고, 1,0에서 천이되는 경우는 레벨 100(레벨[4])에서 정의되는 새로운 에러 값이 더해지는 것이며 이때 연산값이 적은 경우를 선택하게 된다.
이것은 C 알고리즘의
sumnew[0]=min((sum(0)+abs(inputdata[i]-(int)level[0])),(sum[2]+abs(inputdata[i]-(int)level[4]))); 에 해당하는 연산이다.
참고로 min 함수는 두 개의 인자중 작은 값을 선택해 출력하는 함수이다.
또한 이때 선택되는 신호의 정보는 패스 메모리(Path Memory:PM)에 저장되는데, 이 패스 메모리는 가장 적은 에러값이 누적된 최종 정보를 저장하고 있는 곳이다. 따라서 최종 출력은 일정한 구간이 지난 후에 가장 적은 에러를 가지는 패스의 정보가 선택되므로 최적의 상태로 신호를 디코딩할 수 있다는 장점이 있다. 따라서 비터비 디코더가 동작하기 위해서는 입력 신호와 각 단계에 알맞은 레벨이 제공되어야 한다.
한편, 시스템에 사용되는 코드가 길이에 제한이 있는 런랭쓰 제한(Run Length Limited) 코드인 경우 비터비 디코더의 알고리즘은 달라지게 된다. 예를 들어 1T 신호가 나오지 않고 2T 신호가 최단 T(T는 코드 생성의 기본 주기)인 (1,7) 코드의 경우(즉, 최소 T가 2T 이고, 최대 T가 8T인 경우), va,vb,vc가 1,0,1이나 0,1,0 의 1T의 경우가 나오지 않기 때문에 레벨 101(260), 레벨 010(230)의 경우가 나타나지 않게 된다. 이 경우에는 3 탭 비터비 디코더는 도 3a와 같이 수정되어야 한다. 도 3a를 참조하면, 레벨(230)과 레벨(260)이 제거되었음을 알 수 있다.
일반적으로 최소 런랭쓰를 일정 길이 이상으로 제한하는 방식은 광디스크에서 많이 사용하는 방식으로 이와 같은 경우에 최소 런랭쓰에 따라 사용하지 않는 부분을 트렐리스 다이어그램에서 제거하고 이를 바탕으로 회로 양을 줄이는 방법은 기존에 제시된 바 있다. 따라서 도 3a의 구조 및 도 3b의 알고리즘은 비터비 디코더를 사용하는 경우 일반적으로 많이 사용하게 된다.
또한 일반적으로 기존의 광디스크의 경우에 비터비 디코더의 탭 수에 비해 최대 런랭쓰는 매우 크기 때문에 최대 런랭쓰는 고려하지 않는 것이 일반적이다. 도 3a의 구조의 경우 비터비 디코더의 탭 수는 3이고, 최대 런랭쓰는 8이기 때문에 최대 런랭쓰에 해당하는 큰 값을 고려할 필요가 없기 때문이다. 탭 수는 레벨의 자리수를 나타낸다. 도 3a에서 레벨의 자리수는 3자리이므로, 탭 수는 3이다.
그러나, 앞으로는 기록 밀도가 올라감에 따라 레이저 광원 분포안에 들어가는 단위 길이가 점차 짧아지는 추세인데, 단위 길이가 점차 짧아지면 반사되어 되돌아오는 신호의 크기가 점점 짧아지기 때문에 상호 간섭이 늘어나게 되고 이러한 상호 간섭을 해결하기 위해서는 비터비 디코더의 탭 수를 늘이는 것이 일반적이다. 그러나, 탭 수가 늘어나는 경우에 하드웨어 크기는 점점 더 복잡해지고 동작 속도 는 점차로 느려지게 되는 한계로 인해 실용적으로 사용할 수 있는 탭 수를 고려하여 하드웨어 크기와 속도를 최적화하는 것이 요구된다.
본 발명은 상기와 같은 문제점을 해결하여 사용하는 최대 런랭쓰가 제한되는 경우 제한되는 코드에 따른 최적화된 하드웨어 설계방법을 제시하여 회로의 양을 줄이고 동작 속도를 높일 수 있도록 하는 비터비 디코딩 방법 및 비터비 디코더를 제공하는 것을 목적으로 한다.
상기와 같은 과제를 해결하기 위한 본 발명의 하나의 특징은, 비터비 디코더에 있어서, 최대 런랭쓰가 K로 제한되고, K+1 탭 이상을 사용하는 비터비 디코더 시스템에서 최대 런랭쓰를 초과하는 노드 및 최대 런랭쓰를 초과하는 천이상태 중 적어도 하나를 제거한 구조를 가지는 것이다.
본 발명의 다른 특징은 최대 런랭쓰를 초과하는 개수의 탭을 사용하는 비터비 디코더에 있어서, 입력 데이터 심볼마다 입력 신호와 기준 레벨과의 차의 절대값을 구하는 브랜치 매트릭 계산부와, 상기 브랜치 매트릭 계산부에서 얻은 브랜치 메트릭과 이전에 저장하고 있던 상태 매트릭을 더하여 새로운 스테이트 매트릭을 구하고, 가장 크기가 작은 상태 매트릭을 선택하여 생존 경로를 결정하는 가산비교선택부와, 상기 가산비교선택부에서 결정한 생존 경로를 저장하는 패스 메모리를 포함하며,상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산 중 적어도 하나를 수행하지 않는 것이다.
상기 최대 런랭쓰는 9이고, 상기 비터비 디코더는 10탭으로 구성되며, 상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰 10을 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것이 바람직하다.
상기 최대 런랭쓰는 13이고, 상기 비터비 디코더는 14탭으로 구성되며, 상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰 14를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것이 바람직하다.
본 발명의 또 다른 특징은, 비터비 디코딩 방법에 있어서, 최대 런랭쓰가 K로 제한되고, K+1 탭 이상을 사용하는 비터비 디코더 시스템에서 최대 런랭쓰를 초과하는 노드 및 최대 런랭쓰를 초과하는 천이상태 중 적어도 하나를 제거하여 비터비 디코딩을 수행하는 단계를 포함하는 것이다.
본 발명의 또 다른 특징은, 최대 런랭쓰를 초과하는 개수의 탭을 사용하는 비터비 디코딩 방법에 있어서, 입력 데이터 심볼마다 입력 신호와 기준 레벨과의 차의 절대값을 구하는 브랜치 매트릭 계산 단계와, 상기 브랜치 매트릭 계산부에서 얻은 브랜치 메트릭과 이전에 저장하고 있던 상태 매트릭을 더하여 새로운 스테이트 매트릭을 구하고, 가장 크기가 작은 상태 매트릭을 선택하여 생존 경로를 결정하는 가산 비교 선택 단계와, 상기 가산비교선택부에서 결정한 생존 경로를 저장하는 단계를 포함하며, 상기 브랜치 매트릭 계산 단계와 상기 가산비교선택 단계는 최대 런랭쓰를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것이다.
이제, 첨부된 도면들을 참조하여 본 발명을 상세히 설명한다.
비터비 디코더의 탭 수가 최대 런랭쓰보다 커지는 경우에는 다음과 같은 알고리즘을 사용할 수 있다.
일반적인 n-탭 비터비 디코더의 경우, n-1개의 노드로 구성된 이전 상태와 새로운 입력으로 인해 n-1개의 노드로 구성된 현재 상태로 트렐리스 다이어그램을 구성하고 각각의 노드는 전체 n 개의 천이 상태에 의해 연결이 되며, 각각의 n-1 개의 노드와 n 개의 천이 상태는 이진수로 표현이 가능하다.
이때 이진수로 표현된 n-1개의 노드중 최대 런랭쓰보다 큰 노드는 런랭쓰 제한 조건 때문에 실제로는 나올 수 없는 경우이므로 이를 제거하고, 또한, n 개의 이진수로 표현된 천이 상태 중에서도 최대 런랭쓰보다 큰 천이 상태는 런랭쓰 제한 조건 때문에 실제로는 나올 수 없는 경우이므로 이를 제거할 수 있다. 본 발명은 최대 런랭쓰보다 큰 탭 수를 사용하는 비터비 디코더의 경우에 최대 런랭쓰보다 큰 노드를 제거하거나 최대 런랭쓰보다 큰 천이 상태를 제거하거나 또는 최대 런랭쓰보다 큰 노드와 최대 런랭쓰보다 큰 천이 상태를 모두 제거하여 회로 구성함으로써 최대 런랭쓰보다 큰 탭 수를 사용하는 비터비 디코더의 하드웨어 양을 감소시킬 수 있다.
도 4a는 본 발명에 따라 (1,7) 코드용 3 탭 비터비 디코딩 알고리즘에서 최 대 런랭쓰를 2T로 제한했을 경우의 트렐리스 다이어그램을 나타낸다.
예를 들어, 도 3a에 도시된 (1,7) 코드용 3 탭 비터비 디코더의 경우에 추가로 최대 런랭쓰가 2T로 제한된다면, 다시 말해 3T가 나오지 않는 경우에는 노드중에서는 제거되는 것이 없지만 상태 천이를 나타내는 화살표중에서는 000(210) 인 경우와 111(280)인 경우는 코드 조건에 의해 나올 수 없기 때문에 본 발명에 따른 방법을 이용하여 도 4a 및 4b와 같이 회로를 구성할 수 있다.
도 4b는 도 4a에 도시된 트렐리스 다이어그램을 구현한 C 언어를 나타낸다.
도 4b의 코드를 참조하면, 도 3b의 코드와 비교하여, sumnew[0]과 sumnew[3]에서 레벨[0]과 레벨[7]에 해당하는 절대값 연산이 제거되었고, 그에 따라 sumnew[0]과 sumnew[3]에서 min 값은 구하는 연산이 제거되었다. 또한 패스메모리와 관련된 연산도 간단해졌음을 알 수 있다.
한편, 좀 더 좋은 성능을 얻기 위해서는 단순한 구조가 아닌 복잡한 구조를 가지는 비터비 디코더를 사용할 수도 있다. 이는 탭수를 늘림으로써 해결되는데 일 실시예로 일반적인 5 탭 비터비 디코더와 (1,7) 코드용 5탭 비터비 디코더 및 본 발명에 따라 최대 런랭쓰가 제한된 5 탭 (1,7) 코드용 비터비 디코더를 도 5a 내지 7a에 도시하였다.
도 5a는 일반적인 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램을 나타낸다.
도 5a를 참조하면, 0000부터 1111 까지 16개의 이전 노드가 있고, 각 노드에 2개의 레벨이 대응되어 총 32개의 레벨(501-532)이 존재한다.
도 5b는 도 5a에 도시된 트렐리스 다이어그램을 구현한 C 언어를 나타낸다.
도 6a는 일반적인 (1,7) 코드용 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램을 나타낸다.
도 6a를 참조하면, (1,7) 코드 조건에 따라 1T에 대응되는 노드와 1T에 대응되는 레벨이 제외된다. 즉, 노드중에서는 1T를 포함하는 노드인 0010, 0100, 0101, 1010, 1011, 1101 이 제외되었다. 그리고, 레벨중에서는 1T를 포함하는 레벨인 503, 505, 506, 509-512, 514, 519, 521-524, 527,528,530이 제외되었다.
도 6b는 도 6a에 도시된 트렐리스 다이어그램을 구현한 C 언어를 나타낸다.
도 6b를 참조하면, 1T를 포함하는 노드에 대응하는 연산인 sumnew[2], sumnew[4],sumnew[5],sumnew[10],sumnew[11],sumnew[13]이 제거되었고, 1T를 포함하는 레벨에 관련된 연산인 sumnew[6], sumnew[7],sumnew[8],sumnew[9]에서의 레벨[8],레벨[9],레벨[22],레벨[23]을 포함하는 연산이 제거되었다.
만약 이와 같은 경우에 최대 런랭쓰 조건이 8T 가 아니라 3T로 제한된다면 4T 이상은 나올 수 없기 때문에 노드중에서 0000과 1111이 제거되고, 레벨중에서도 0000과 1111이 포함된 레벨이 제거되게 되므로, 본 발명에서 제시한 알고리즘에 의해 도 7a에 도시된 바와 같이 구성된다.
도 7a는 본 발명에 따라 최소 런랭쓰 2, 최대 런랭쓰 3으로 제한된 5 탭 비터비 디코딩 알고리즘의 트렐리스 다이어그램을 나타낸다.
도 7a를 참조하면, 노드중에서는 4T를 나타내는 0000 과 1111이 제외되었고, 레벨중에서는 4T를 포함하는 레벨인 00000(501), 00001(502), 10000(517), 01111(529), 11110(531), 11111(532) 이 제외되었다.
도 7b는 도 7a에 도시된 트렐리스 다이어그램을 구현한 C 언어를 나타낸다.
도 7b를 참조하면, 4T를 포함하는 노드에 대응하는 연산인 sumnew[0], sumnew[15]가 제거되었고, 4T를 포함하는 레벨에 관련된 연산인 sumnew[1], sumnew[14]에서의 레벨[1],레벨[14]을 포함하는 연산이 제거되었다.
도 8은 본 발명에 따른 비터비 디코더(800)의 일 예를 나타낸다.
도 8을 참조하면, 본 발명에 따른 비터비 디코더(800)는 브랜치 매트릭 계산부(810), 가산비교선택부(820), 패스메모리(830)를 포함한다.
브랜치 매트릭 계산부(810)는 입력 데이터 심볼마다 입력 신호와 복수개의 기준 레벨과의 차의 절대값인 브랜치 매트릭을 계산한다. 특히, 본 발명에 따라 최대 런랭쓰를 초과하는 노드 및 레벨은 제거되므로, 본 발명에 따른 브랜치 매트릭 계산부(810)는 최대 런랭쓰를 초과하는 노드에 해당하는 회로 구성을 가지지 않으며, 또한 상기 노드 및 최대 런랭쓰를 초과하는 레벨을 이용하여 수행되는 연산을 수행하지 않는다. 도 4b의 코드에서, 입력 데이터와 레벨의 차이값의 절대값을 구하는 부분 즉, abs(inputdata[i]-(int)level[])이 브랜치 매트릭 계산부(810)에서 수행하는 연산에 해당한다. 따라서, 도 3b의 코드와 비교하면, abs(inputdata[i]-(int)level[0]) 와 abs(inputdata[i]-(int)level[7])에 대한 연산이 제거되었음을 알 수 있다.
가산비교선택부(820)는 브랜치 매트릭 계산부에서 생성한 브랜치 매트릭과 이전에 저장하고 있던 상태 매트릭을 더하여 새로운 상태 매트릭을 구하고, 가장 크기가 작은 상태 매트릭을 선택하여 생존 경로를 결정한다. 특히, 본 발명에 따라 최대 런랭쓰를 초과하는 노드 및 레벨은 제거되므로, 본 발명에 따른 가산비교선택부(820)는 최대 런랭쓰를 초과하는 노드나 레벨에 관련된 상태 매트릭에 대한 연산을 수행하지 않는다. 도 4b의 코드에서, 브랜치 매트릭 즉 입력 데이터와 레벨의 차이의 절대값에 이전 상태 매트릭(sum)을 더하여 최소가 되는 상태 매트릭을 구하는 부분 즉, min((sum[]+abs(inputdata[i]-(int)level[]), (sum[]+abs(inputdata[i]-(int)level[])))이 가산비교선택부(820)에서 수행하는 연산에 해당한다. 따라서, 도 3b의 코드와 비교하면, 노드 0과 노드 3에서 abs(inputdata[i]-(int)level[0]) 와 abs(inputdata[i]-(int)level[7])에 대한 연산이 제거되어졌으므로, 노드 0에서는 sum[0]+abs(inputdata[i]-(int)level[0])과 sum[2]+abs(inputdata[i]-(int)level[4]의 최소값을 연산할 필요가 없고, 노드 3에서는 sum[1]+abs(inputdata[i]-(int)level[3])과 sum[3]+abs(inputdata[i]-(int)level[7]의 최소값을 연산할 필요가 없다.
패스메모리(830)는 가산비교선택부(820)에서 결정된 생존 경로에 해당하는 출력신호를 저장하였다가 출력한다.
이상 설명한 바와 같은 비터비 디코딩 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 비터비 디코딩 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이상 설명한 바와 같이 본 발명에 따라 최대 런랭쓰 조건이 추가된 비터비 디코더를 사용하면 하드웨어 크기를 줄일 수 있고, 선택 회로의 양이 줄어들면서 동작 속도도 빨라질 뿐만 아니라 실제로 최대 런랭쓰를 위반하는 출력신호가 나오지 않기 때문에 에러도 줄일 수 있다는 장점이 있다.
실제 적용예로 (1,7) 코드를 사용한 시스템의 경우 9 탭 이상의 비터비 디코 더에서는 본 발명의 내용을 적용할 수 있게 되고, (2,10) 코드를 사용한 시스템의 경우 12 탭 이상의 비터비 디코더에서 본 발명의 내용을 사용할 수 있다.

Claims (8)

  1. 비터비 디코더에 있어서,
    최대 런랭쓰가 K로 제한되고, K+1 탭 이상을 사용하는 비터비 디코더 시스템에서 최대 런랭쓰를 초과하는 노드 및 최대 런랭쓰를 초과하는 천이상태 중 적어도 하나를 제거한 구조를 가지는 비터비 디코더.
  2. 최대 런랭쓰를 초과하는 개수의 탭을 사용하는 비터비 디코더에 있어서,
    입력 데이터 심볼마다 입력 신호와 기준 레벨과의 차의 절대값을 구하는 브랜치 매트릭 계산부와,
    상기 브랜치 매트릭 계산부에서 얻은 브랜치 메트릭과 이전에 저장하고 있던 상태 매트릭을 더하여 새로운 스테이트 매트릭을 구하고, 가장 크기가 작은 상태 매트릭을 선택하여 생존 경로를 결정하는 가산비교선택부와,
    상기 가산비교선택부에서 결정한 생존 경로를 저장하는 패스 메모리를 포함하며,
    상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코더.
  3. 제2항에 있어서,
    상기 최대 런랭쓰는 9이고, 상기 비터비 디코더는 10탭으로 구성되며, 상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰 10을 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코더.
  4. 제2항에 있어서,
    상기 최대 런랭쓰는 13이고, 상기 비터비 디코더는 14탭으로 구성되며, 상기 브랜치 매트릭 계산부와 상기 가산비교선택부는 최대 런랭쓰 14를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코더.
  5. 비터비 디코딩 방법에 있어서,
    최대 런랭쓰가 K로 제한되고, K+1 탭 이상을 사용하는 비터비 디코더 시스템에서 최대 런랭쓰를 초과하는 노드 및 최대 런랭쓰를 초과하는 천이상태 중 적어도 하나를 제거하여 비터비 디코딩을 수행하는 단계를 포함하는 비터비 디코딩 방법.
  6. 최대 런랭쓰를 초과하는 개수의 탭을 사용하는 비터비 디코딩 방법에 있어서,
    입력 데이터 심볼마다 입력 신호와 기준 레벨과의 차의 절대값을 구하는 브랜치 매트릭 계산 단계와,
    상기 브랜치 매트릭 계산부에서 얻은 브랜치 메트릭과 이전에 저장하고 있던 상태 매트릭을 더하여 새로운 스테이트 매트릭을 구하고, 가장 크기가 작은 상태 매트릭을 선택하여 생존 경로를 결정하는 가산 비교 선택 단계와,
    상기 가산비교선택부에서 결정한 생존 경로를 저장하는 단계를 포함하며,
    상기 브랜치 매트릭 계산 단계와 상기 가산비교선택 단계는 최대 런랭쓰를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코딩 방법.
  7. 제6항에 있어서,
    상기 최대 런랭쓰는 9이고, 상기 비터비 디코더는 10탭으로 구성되며, 상기 브랜치 매트릭 계산 단계와 상기 가산비교선택 단계는 최대 런랭쓰 10을 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코딩 방법.
  8. 제6항에 있어서,
    상기 최대 런랭쓰는 13이고, 상기 비터비 디코더는 14탭으로 구성되며, 상기 브랜치 매트릭 계산 단계와 상기 가산비교선택 단계는 최대 런랭쓰 14를 초과하는 노드에 대응되는 연산 및 최대 런랭쓰를 초과하는 천이상태에 대응되는 연산중 적어도 하나를 수행하지 않는 것을 특징으로 하는 비터비 디코딩 방법.
KR1020060007250A 2006-01-24 2006-01-24 비터비 디코딩 방법 및 비터비 디코더 KR20070077603A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060007250A KR20070077603A (ko) 2006-01-24 2006-01-24 비터비 디코딩 방법 및 비터비 디코더
US11/634,091 US20070263753A1 (en) 2006-01-24 2006-12-06 Viterbi decoding method and viterbi decoder
EP06077287A EP1811521A1 (en) 2006-01-24 2006-12-21 Viterbi decoding method and viterbi decoder
JP2007000763A JP2007200525A (ja) 2006-01-24 2007-01-05 ビタビデコーティング法及びビタビデコーダ
CNA2007100013035A CN101009122A (zh) 2006-01-24 2007-01-09 维特比译码方法和维特比译码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060007250A KR20070077603A (ko) 2006-01-24 2006-01-24 비터비 디코딩 방법 및 비터비 디코더

Publications (1)

Publication Number Publication Date
KR20070077603A true KR20070077603A (ko) 2007-07-27

Family

ID=37897365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060007250A KR20070077603A (ko) 2006-01-24 2006-01-24 비터비 디코딩 방법 및 비터비 디코더

Country Status (5)

Country Link
US (1) US20070263753A1 (ko)
EP (1) EP1811521A1 (ko)
JP (1) JP2007200525A (ko)
KR (1) KR20070077603A (ko)
CN (1) CN101009122A (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327441A (en) * 1991-12-16 1994-07-05 Nippon Telegraph And Telephone Corporation Method and circuit for decoding convolutional codes
DE19983965T1 (de) * 1999-06-30 2002-08-01 Seagate Technology Llc Teilantwortkanal mit kombinierten MTR- und Paritätsbeschränkungen
US7046746B1 (en) * 2001-03-19 2006-05-16 Cisco Systems Wireless Networking (Australia) Pty Limited Adaptive Viterbi decoder for a wireless data network receiver
TW479414B (en) * 2001-05-15 2002-03-11 Mediatek Inc Circuit and method for protecting the run length in RLL code
US7127667B2 (en) * 2002-04-15 2006-10-24 Mediatek Inc. ACS circuit and viterbi decoder with the circuit
US7404139B2 (en) * 2005-01-21 2008-07-22 Freescale Semiconductor, Inc. Decoder with M-AT-A-Time Traceback

Also Published As

Publication number Publication date
CN101009122A (zh) 2007-08-01
US20070263753A1 (en) 2007-11-15
JP2007200525A (ja) 2007-08-09
EP1811521A1 (en) 2007-07-25

Similar Documents

Publication Publication Date Title
KR100373800B1 (ko) 디지털재생신호처리장치
JP5054791B2 (ja) Prml検出器
US5619539A (en) Data detection methods and apparatus for a direct access storage device
KR100453778B1 (ko) 디지털 재생 신호 처리 장치
JP3533315B2 (ja) 信号処理回路
JP2693256B2 (ja) 記録装置用ビタビ等化器及び記録装置
US7426681B2 (en) Viterbi detector
KR20090083110A (ko) 비터비 디코더 및 비터비 디코딩 방법
JPH11126438A (ja) ディジタル信号再生装置
WO2005024822A1 (ja) 再生信号処理装置、及び再生信号処理方法
JP4099730B2 (ja) ディジタル信号再生装置
JP2002298518A (ja) フルレスポンスチャネルシステムに用いられるデータエラー訂正方法
KR20070077603A (ko) 비터비 디코딩 방법 및 비터비 디코더
JP3646684B2 (ja) パーシャルレスポンス復調方法を用いたデータ記録再生装置
JP5003284B2 (ja) 信号品質測定装置及び情報再生装置
KR100238322B1 (ko) 비터비 검출방법 및 장치
KR100664006B1 (ko) 디지털 신호 처리 장치 및 방법
JPH1031866A (ja) データ検出回路
JP3983450B2 (ja) 再生装置と再生回路
JP2764910B2 (ja) 等化・復号装置
KR100739792B1 (ko) 비터비 디코더 및 비터비 디코딩 방법
JP4612615B2 (ja) Prml検出器
KR100269436B1 (ko) 광 디스크의 정보 재생방법
JP2005223584A (ja) 最尤復号方法及び最尤復号装置
JP2007273016A (ja) 再生信号処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application