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

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

Info

Publication number
KR20090083110A
KR20090083110A KR1020080009086A KR20080009086A KR20090083110A KR 20090083110 A KR20090083110 A KR 20090083110A KR 1020080009086 A KR1020080009086 A KR 1020080009086A KR 20080009086 A KR20080009086 A KR 20080009086A KR 20090083110 A KR20090083110 A KR 20090083110A
Authority
KR
South Korea
Prior art keywords
unit
level
branch metric
symbol
viterbi decoder
Prior art date
Application number
KR1020080009086A
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 KR1020080009086A priority Critical patent/KR20090083110A/ko
Priority to US12/146,812 priority patent/US20090193321A1/en
Priority to PCT/KR2008/003852 priority patent/WO2009096638A1/en
Publication of KR20090083110A publication Critical patent/KR20090083110A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4184Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using register-exchange

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 결정 궤환 구조(decision feedback structure)로 브랜치 매트릭(branch metric) 연산에 이용되는 레벨을 제공함으로서 하드웨어를 간소화하고 동작 속도를 높일 수 있는 비터비 디코더 및 비터비 디코딩 방법에 관한 것으로, 본 발명의 일 유형에 따른 비터비 디코더는, 생존 경로를 저장하는 패스 메모리 유니트; 패스 메모리 유니트로부터 피드백되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨중 하나를 선택하는 결정 궤환 유니트; 결정 궤환 유니트로부터 제공되는 레벨과 수신 심볼을 이용하여 브랜치 매트릭을 계산하는 브랜치 매트릭 계산부; 브랜치 매트릭 계산부에서 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 상기 생존 경로를 결정하고, 결정된 생존 경로를 패스 메모리 유니트로 전송하는 가산 비교 선택부를 포함한다.

Description

비터비 디코더 및 비터비 디코딩 방법{Viterbi Decoder and viterbi decoding method}
본 발명은 비터비 디코더(Viterbi Decoder) 및 비터비 디코딩 방법에 관한 것이다.
일반적으로 비터비 디코더는 입력 신호의 통계적 특성을 이용해 최적의 이진 데이터를 검출하는 것이다. 즉, 비터비 디코더는 입력 신호의 특성에 맞는 레벨을 정의하고, 레벨에 따라 입력 신호의 통계적 특성을 판단함으로써, 오류가 적은 이진 데이터를 입력 신호에 대한 최적의 이진 데이터로서 검출한다. 이러한 비터비 디코더는 비터비 검출기(Viterbi detector)라고 부르기도 한다.
비터비 디코더는 탭 수에 따라 결정된 레벨 수를 생성한다. 예를 들어 3탭 구조의 비터비 디코더는 최대 23(=8)개의 레벨을 생성하여 입력 신호에 대한 최적의 디코딩 성능을 얻도록 구성된다. 도 1a와 도 1b는 3탭 구조의 비터비 디코더의 일반적인 트렐리스(trellis) 다이어그램과 트렐리스 다이어그램을 C언어로 표현한 것 이다.
도 1a의 트렐리스 다이어그램은 va,vb의 이전 상태에서 vb,vc로 정의되는 다음 상태의 경우와 이 때 사용될 수 있는 8개의 레벨을 도식적으로 표시한 것이다. 도 1a를 참조하면, 2개의 이전 입력 신호에 대해 4가지 경우로 표현된다. 이 때, 1개의 입력 신호(vc)가 추가로 들어오게 되면, 다음 상태 신호는 vb,vc의 조합에 의해 4가지 경우로 표현된다. 4가지의 이전 상태(va, vb)에서 다음 상태(vb, vc)로 바뀔 수 있는 모든 경우의 수는 va, vb, vc에 의해 8가지 상태(또는 레벨)로, 이들은 각각 000(110), 001(120), 010(130), 011(140), 100(150), 101(160), 110(170), 111(180)로 정의된다.
도 1a의 트렐리스 다이어그램을 C언어로 표현한 도 1b를 참조하면, 비터비 디코딩은 이전 상태의 에러 누적값을 가지는 sum이라는 변수에서 다음 상태의 에러 누적값을 가지는 sumnew를 연산하게 된다. sumnew는 이전 상태의 에러 누적값에서 새롭게 발생되는 에러 값을 더한 값으로 정의되며, 두 개의 합 중 작은 값을 선택하게 된다.
예를 들어, vb, vc가 0,0인 경우, 이전 상태인 0,0에서 데이터가 천이되는 경우와 1,0에서 데이터가 천이되는 경우가 존재한다. 이 때 0,0에서 데이터가 천이되는 경우는 레벨 000(110)에서 정의되는 새로운 에러 값이 더해진 값이고, 1,0에서 데이터가 천이되는 경우는 레벨 100(150)에서 정의되는 새로운 에러 값이 더해진 것이며, 이들중 연산 결과 값이 작은 것이 선택된다. 이러한 연산은 도 1b에서 "sumnew[0]=min((sum[0]+abs(inputdata[i]-(int)level[0])),(sum[2]+ abs(inputdata[i]-(int)level[4])))"에 해당된다. 여기서 min함수는 두 개의 인자중 작은 값을 선택하여 출력하는 함수이다.
이러한 비터비 디코더의 하드웨어는 탭 수에 따라 생성될 수 있는 모든 레벨을 생성하여 사용하도록 구성된다. 따라서, 기록 밀도가 증가하고 있는 광 디스크 재생 시스템과 같은 장치에 비터비 디코더를 적용할 경우에, 비터비 디코더의 하드웨어는 매우 복잡해진다. 이는 기록밀도가 증가됨에 따라 비터비 디코더의 탭 수가 증가되기 때문이다.
즉, 기록 밀도가 증가함에 따라 디스크에 형성되는 단위 길이가 짧아지고, 디스크에 형성되는 단위 길이가 짧아짐에 따라 광학적 특성으로 인해 디스크로부터 반사되는 신호의 크기가 작아지고 심볼간 간섭(intersymbol interference, ISI)이 증가하게 되는데, 상기 증가되는 심볼간 간섭을 해결하기 위해 일반적으로 비터비 디코더의 탭 수를 증가시키게 된다. 비터비 디코더는 탭 수가 L인 경우에 2L개의 레벨을 생성하므로, 탭 수가 증가하게 되면, 레벨 수가 지수함수적으로 증가하게 되고, 이 지수함수적으로 증가하는 레벨 수를 모두 고려하도록 비터비 디코더의 하드웨어가 구성되어야 한다. 따라서 기록 밀도가 증가하는 광 디스크 재생 시스템과 같은 장치에 비터비 디코더를 적용할 경우에, 비터비 디코더의 하드웨어는 더 복잡해지고 동작 속도는 더 느려지게 된다.
상기와 같은 문제를 해결하기 위하여, 본 발명은 결정 궤환 구조(decision feedback structure)로 브랜치 매트릭(branch metric) 연산에 이용되는 레벨을 제공함으로서 하드웨어를 간소화하고 동작 속도를 높일 수 있는 비터비 디코더 및 비터비 디코딩 방법을 제공하는데 그 목적이 있다.
상술한 기술적 과제를 달성하기 위하여 본 발명에 따른 장치는, 생존 경로를 저장하는 패스 메모리 유니트; 상기 패스 메모리 유니트로부터 피드백되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨중 하나를 선택하는 결정 궤환 유니트; 상기 결정 궤환 유니트로부터 제공되는 레벨과 상기 수신 심볼을 이용하여 브랜치 매트릭을 계산하는 브랜치 매트릭 계산부; 상기 브랜치 매트릭 계산부에서 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 상기 생존 경로를 결정하고, 상기 결정된 생존 경로를 상기 패스 메모리 유니트로 전송하는 가산 비교 선택부를 포함하는 비터비 디코더를 제공한다.
상기 비터비 디코더의 탭 수가 L이고, 줄인 탭 수(the number of reduced-tap)가 K이면 상기 피드백 되는 생존 심볼의 수는 L-K개이고, 상기 결정 궤환 유니트는 2L개의 레벨을 포함하고, 상기 L과 K는 양의 정수이고, 상기 K는 L보다 작은 양의 정수인 것이 바람직하다.
상기 비터비 디코더의 줄인 탭 수가 K이면, 상기 브랜치 매트릭 계산부는 2K번의 브랜치 매트릭 계산을 수행하는 것이 바람직하다.
상기 적어도 2이상의 레벨은 사전에 설정된 레벨인 것이 바람직하고, 상기 사전에 설정된 레벨은 상기 수신 심볼의 레벨 분포가 비대칭성(asymmetry)을 갖는 경우를 고려한 레벨을 포함하는 것이 바람직하고, 상기 적어도 2이상의 레벨 각각의 상위 비트는 상기 피드백 되는 생존 심볼에 대응되는 비트를 갖는 것이 바람직하다.
상기 비터비 디코더는 상기 적어도 2이상의 레벨을 연산하고, 상기 연산된 레벨을 상기 결정 궤환 유니트로 전송하는 레벨 연산 유니트를 더 포함하는 것이 바람직하고, 상기 레벨 연산 유니트는 상기 수신 심볼과 상기 패스 메모리 유니트로부터 출력되는 복원 심볼을 토대로 상기 레벨을 연산하거나 상기 수신 심볼과 외부에서 입력되는 이진 데이터를 토대로 상기 레벨을 연산하여 상기 결정 궤환 유니트로 전송하는 것이 바람직하다.
상기 비터비 디코더는 상기 수신 심볼로부터 노이즈를 제거하기 위해 상기 수신 심볼을 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 적응 등화 유니트를 더 포함하고, 상기 레벨 연산 유니트의 상기 수신 심볼은 상기 적응 등화기의 입력 신호인 것이 바람직하다.
상기 비터비 디코더는 상기 수신 심볼의 주파수 특성을 보상하기 위해 상기 수신 심볼을 등화하는 제 1 적응 등화 유니트; 및 상기 제 1 적응 등화 유니트의 출려 신호로부터 노이즈를 제거하기 위해 상기 제 1 적응 등화 유니트의 출력 신호를 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 제 2 적응 등화 유니트를 더 포함하고, 상기 레벨 연산 유니트의 상기 수신 심볼은 상기 제 1 적응 등화 유니트의 입력 신호인 것이 바람직하다.
상술한 기술적 과제를 달성하기 위하여 본 발명에 따른 방법은, 패스 메모리로부터 피드백 되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨을 선택하는 단계; 수신 심볼과 상기 선택된 레벨을 이용하여 브랜치 매트릭을 계산하는 단계; 상기 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 생존 경로를 결정하는 단계; 및 결정된 생존 경로를 저장하는 단계를 포함하는 비터비 디코딩 방법을 제공한다.
비터비 디코더의 탭 수가 L이고, 줄인 탭 수가 K이면, 상기 피드백 되는 상기 적어도 하나의 생존 심볼의 수는 L-K개이고, 상기 적어도 2이상의 레벨은 2L개이고, 상기 L과 K는 양의 정수이고, 상기 K는 L보다 작은 양의 정수인 것이 바람직하다. 줄인 탭 수가 K이면, 상기 브랜치 매트릭 계산 단계는 2K번의 브랜치 매트릭 계산을 수행하는 것이 바람직하다.
본 발명은 패스 메모리 유니트로부터 피드백되는 생존 심볼(survivor symbol)에 의해 브랜치 매트릭 계산에 사용되는 레벨을 선택하여 제공함으로써, 브랜치 매트릭 계산 회수를 줄여 비터비 디코더의 하드웨어를 간소화할 수 있다.
또한, 사전에 브랜치 매트릭 계산에 사용되는 레벨을 설정함으로써, 수신 심볼의 레벨 분포가 비대칭적인 경우에도 최적의 레벨을 제공하여 최적의 비터비 디코딩 결과를 얻을 수 있다.
그리고, 패스 메모리 유니트에서 출력되는 복원 심볼과 외부에서 입력되는 이진 데이터중 하나와 비터비 디코더의 수신 심볼을 이용하여 브랜치 매트릭 계산에 사용될 레벨을 연산함으로써, 수신 심볼의 진폭이 흔들리거나 비대칭성이 나타나는 경우에도 최적의 레벨을 이용할 수 있어 비터비 디코더의 성능 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다.
본 발명은 패스 메모리 유니트(path memory unit)로부터 피드백 되는 적어도 하나의 생존 심볼(survivor symbol)을 토대로 적어도 2이상의 레벨중 하나를 선택하는 결정 궤환(decision feedback) 유니트를 이용하여 하드웨어를 간소화하고 동작 속도를 개선할 수 있는 비터비 디코더 및 비터비 디코딩 방법을 제공한다. 또한, 상기 적어도 2개 이상의 레벨을 사전에 설정하는 실시 예를 제공함으로써, 수신 심볼의 레벨 분포가 비대칭성을 갖는 경우에도 최적의 레벨을 제공할 수 있는 비터비 디코더 및 비터비 디코딩 방법을 제공한다. 그리고, 패스 메모리 유니트에서 출력되는 복원 심볼과 외부에서 입력되는 이진 데이터중 하나와 비터비 디코더의 수신 심볼을 이용하여 상기 적어도 2개 이상의 레벨을 연산함으로써, 비터비 디 코더의 수신 심볼의 진폭이 흔들리거나 비대칭성을 갖는 경우에도 최적의 레벨을 구할 수 있는 비터비 디코더 및 비터비 디코딩 방법을 제공할 수 있다.
도 2는 본 발명의 바람직한 일 실시 예에 따른 비터비 디코더(200)의 기능 블록도이다. 도 2를 참조하면, 비터비 디코더(200)는 브랜치 매트릭 계산부(Branch Metric Calculation Unit, BMCU)(210), 가산 비교 선택부(Add-Compare-Selection Unit, ACSU)(220), 패스 메모리 유니트(Path Memory Unit, PMU)(230), 및 결정 궤환 유니트(Decision Feedback Unit, DFU)(240)를 포함한다.
비터비 디코더의 탭 수가 L이고 줄인 탭 수(the number of reduced-tap)가 K일 때, 브랜치 매트릭 계산부(210)는 수신 심볼(rn)에 대해 2K번의 브랜치 매트릭 계산을 수행하도록 구성된다. 브랜치 매트릭은 수신 심볼과 대응하는 브랜치에서의 코드간 거리(distance)를 말한다. 본 실시 예에서 브랜치 매트릭 계산은 수신 심볼에서 레벨을 감산하고, 감산 결과의 절대치를 브랜치 매트릭으로서 구하거나 상기 절대치의 제곱근을 브랜치 매트릭으로서 구하도록 구현할 수 있다.
가산 비교 선택부(220)는 브랜치 매트릭 계산부(210)에서 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭(state matric)을 이용하여 생존 경로(survivor path)를 결정한다. 예를 들어, 가산 비교 선택부(220)는 브랜치 매트릭 계산부(210)에서 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 더하여 새로운 상태 매트릭을 구하고, 구해진 상태 매트릭에서 가장 크기가 작은 상태 매트릭을 선택하고, 선택된 상태 매트릭을 생존 경로(survivor path)로 결정한다.
패스 메모리 유니트(230)는 가산 비교 선택부(220)에서 결정된 생존 경로를 저장하였다가 출력한다. 패스 메모리 유니트(230)의 출력 신호는 생존 심볼에 대한 복원 심볼로서 정의할 수 있다. 패스 메모리 유니트(230)는 각 상태에 대해 생존 심볼들(survivor symbols)을 생성하기 위한 레지스터 교환 구조(a register exchange architecture)로 구현할 수 있다. 레지스터 교환 구조는 가산 비교 선택부(220)에서 결정된 생존 경로를 따라 멀티플렉서(MUX)와 레지스터에 생존 심볼을 전달하면서 최종적으로 복원 심볼을 출력한다. 복원 심볼은 비터비 디코딩된 신호라고 할 수 있다.
패스 메모리 유니트(230)는 멀티플렉서와 레지스터에 생존 심볼(survivor symbol)을 전달할 때, 적어도 하나의 생존 심볼을 결정 궤환 유니트(240)로 전송한다. 즉, 비터비 디코더의 탭 수가 L이고, 줄인 탭의 수(the number of reduced-tap)가 K일 때, 패스 메모리 유니트(230)는 L-K개의 생존 심볼을 결정 궤환 유니트(240)로 제공한다. L과 K는 모두 양의 정수이고, K는 L보다 작은 양의 정수를 갖는다.
결정 궤환 유니트(240)는 패스 메모리 유니트(230)로부터 적어도 하나의 생존 심볼이 수신되면, 수신된 생존 심볼을 토대로 적어도 2이상의 레벨중 하나를 선택하여 브랜치 매트릭 계산부(210)로 전송한다. 예를 들어, 패스 메모리 유니트(230)로부터 하나의 생존 심볼이 수신되면, 결정 궤환 유니트(240)는 2레벨중 하나를 선택하여 브랜치 매트릭 계산부(210)로 전송하도록 구성된다. 또, 패스 메모리 유니트(230)로부터 2개의 생존 심볼이 수신되면, 결정 궤환 유니트(240)는 4개 의 레벨중 하나를 선택하여 브랜치 매트릭 계산부(210)로 전송하도록 구성된다.
결정 궤환 유니트(240)에 구비되는 레벨 수는 비터비 디코더(200)의 탭 수에 따른다. 즉, 비터비 디코더(200)의 탭 수가 L일 때, 결정 궤환 유니트(240)는 2L개의 레벨을 갖는다. 이 때, 상기 레벨이 사전에 설정된 경우에, 상기 레벨의 상위 비트는 수신되는 생존 심볼에 대응되는 비트를 갖는다. 예를 들어, 하나의 생존 심볼이 수신되고, 상기 L=3인 경우에, 결정 궤환 유니트(240)에 구비되는 레벨은 000, 100, 001, 101, 010, 110, 011, 111로 정의될 수 있고, 이 레벨에서 최상위 비트가 하나의 생존 심볼에 대응되는 비트가 된다.
상기 레벨이 사전에 설정될 경우에, 수신 심볼의 레벨 분포가 비대칭성을 갖는 경우를 고려하여 상기 레벨을 설정할 수 있다. 예를 들어 수신 심볼이 -1, 1을 갖고, PR(1,2,1)에서 000, 0001, 010, 011, 100, 101, 110, 111에 대해 대칭성을 갖는 경우에 레벨은 "-4, -2, 0, 2, -2, 0, 2, 4"에 대응되는 값을 제공하도록 설정된다. 그러나, 상술한 조건에서 수신 심볼의 레벨 분포에 대한 비대칭성을 고려하면, 상기 레벨은 "-4, -2.2, -0.4, 1, 8, -2.2, -0.4, 1.8, 4"에 대응되는 값이 제공되도록 설정될 수 있다.
브랜치 매트릭 계산부(210)는 결정 궤환 유니트(240)로부터 전송된 레벨을 이용하여 상술한 브랜치 매트릭 계산을 수행한다.
도 3은 도 2에 도시된 비터비 디코더를 구체적으로 구현한 일 예로서, 비터비 디코더의 탭 수 L=3이고, 줄인 탭 수 K=2인 경우이다.
도 3을 참조하면, 브랜치 매트릭 계산부(310)는 도 2의 브랜치 매트릭 계산부(210)에 대응되는 것으로, 결정 궤환 유니트(340)로부터 전송되는 레벨과 수신 심볼(rn)을 이용하여 22(=4) 번의 브랜치 매트릭 계산(브랜치 매트릭 계산 #1∼#4)을 수행하도록 구성된다.
패스 메모리 유니트(330)는 도 2의 패스 메모리 유니트(230)에 대응되는 것으로, 하나의 생존 심볼 an-2[0n]과 an-2[1n]을 결정 궤환 유니트(340)로 전송한다. 생존 심볼 an-2[0n]은 상태(state) 0n에서의 생존 경로(survivor path)로부터 n-2시간에 대한 생존 심볼이다. 생존 심볼 an-2[1n]은 상태 1n에서의 생존 경로(survivor path)로부터 n-2시간에 대한 생존 심볼이다. 패스 메모리 유니트(330)는 줄인 탭 수 K의 약 5배에 해당되는 수의 패스 메모리를 포함하도록 구성된다.
패스 메모리 유니트(330)는 비터비 디코더의 탭 수가 L인 경우에 an-L-1부터의 생존 심볼을 결정 궤환 유니트(340)로 전송한다. 예를 들어, L=4이고, K=3인 경우에, 패스 메모리 유니트(330)는 an-3[0n] an-3[1n] an-3[2n] an-3[3n] 생존 심볼을 결정 궤환 유니트(340)로 전송하는 것이 바람직하다. 이를 C 언어로 표현할 경우에, 도 4의 점선으로 표시된 부분은 하기와 같이 정의될 수 있다.
bm[0]=sum[0]+abs(inputdata[i]-(double)level[0+pm[0][2]*8]); bm[1]=sum[0]+abs(inputdata[i]-(double)level[1+pm[0][2]*8]); bm[2]=sum[1]+abs(inputdata[i]-(double)level[2+pm[1][2]*8]); bm[3]=sum[1]+abs(inputdata[i]-(double)level[3+pm[1][2]*8]); bm[4]=sum[2]+abs(inputdata[i]-(double)level[4+pm[2][2]*8]); bm[5]=sum[2]+abs(inputdata[i]-(double)level[5+pm[2][2]*8]); bm[6]=sum[3]+abs(inputdata[i]-(double)level[6+pm[3][2]*8]); bm[7]=sum[3]+abs(inputdata[i]-(double)level[7+pm[3][2]*8]);
도 4는 도 3에 도시된 비터비 디코더를 C언어로 표현한 것이다.
또한, 패스 메모리 유니트(330)는 도 2에서 언급한 바와 같이 레지스터 교환 구조를 갖는다. 즉, 가산 비교 선택부(320)로부터 전송되는 생존 경로에 따라 0과 1중 하나를 선택하여 전송하는 멀티플렉서(MUX)들과, 멀티플렉서(MUX)들에서 출력되는 신호를 저장하고, 저장된 값을 생존 심볼로서 출력하는 D플립플롭(DFF)들이 결합된 구조를 갖는다. Sn+1[On+1]은 상태(state) 0n+1에서의 두 경로 확장(two path extensions)을 위한 가산 비교 선택부(320)의 결정(decision)으로서, 상술한 생존 경로에 해당된다. Sn+1[1n+1]은 상태(state) 1n+1에서의 두 경로 확장(two path extensions)을 위한 가산 비교 선택부(320)의 결정(decision)으로서, 상술한 생존 경로에 해당된다.
결정 궤환 유니트(340)는 도 2의 결정 궤환 유니트(240)에 대응되는 것으로, 8개의 레벨이 사전에 설정되어 있고, 이 사전에 설정되어 있는 8개의 레벨의 최상위 비트는 피드백 되는 생존 심볼에 대응되는 비트이다. 따라서, 도 3의 결정 궤환 유니트(340)는 8개의 레벨(000, 100, 001, 101, 010, 110, 011, 111)이 사전에 설정되어 있고, 스위치(SW1)는 패스 메모리 유니트(230)로부터 피드백 되는 생존 심볼 an-2[0n]이 0이면, 000을 선택하여 브랜치 매트릭 계산 #1으로 전송하고, SW2는 001을 선택하여 브랜치 매트릭 계산 #2로 전송한다. 반면에 스위치(SW1)는 패스 메모리 유니트(330)로부터 피드백 되는 생존 심볼 an-2[0n]이 1이면, 100을 선택하여 브랜치 매트릭 계산 #1으로 전송하고, SW2는 101을 선택하여 브랜치 매트릭 계산 #2로 전송한다.
스위치(SW3)는 패스 메모리 유니트(330)로부터 피드백 되는 생존 심볼 an-2[1n]이 0이면, 010을 선택하여 브랜치 매트릭 계산 #3으로 전송하고, 스위치(SW4)는 패스 메모리 유니트(330)로부터 패드백 되는 생존 심볼 an-2[1n]이 0이면, 011을 선택하여 브랜치 매트릭 계산 #4로 전송한다. 반면에 스위치(SW3)는 패스 메모리 유니트(330)로부터 피드백 되는 생존 심볼 an-2[1n]이 1이면, 110을 선택하여 브랜치 매트릭 계산 #3으로 전송하고, 스위치(SW4)는 패스 메모리 유니트(330)로부터 패드백 되는 생존 심볼 an-2[1n]이 1이면, 111을 선택하여 브랜치 매트릭 계산 #4로 전송한다.
가산 비교 선택부(320)는 도 2의 가산 비교 선택부(220)에 대응되는 것으로 동일하게 구성 및 동작한다.
도 4와 도 1b를 비교하면, sum 및 sumnew의 개수가 줄어든 것을 알 수 있다. 또한, 도 4의 경우에 브랜치 매트릭 계산에 해당되는 "bm[0], bm[1], bm[2], bm[3]"을 살펴보면, 레벨 항목이 0 내지 3으로 4개 존재하는 반면에 도 1b의 경우에 0 내지 7로 8개의 레벨이 모두 이용됨을 알 수 있다. 따라서, 3탭 비터비 디코더의 경우에, 도 3은 4번의 브랜치 매트릭 계산을 수행하는 반면에 도 1b의 경우에 8번의 브랜치 매트릭 계산을 수행함을 알 수 있다.
도 5는 도 2에 도시된 비터비 디코더를 구체적으로 구현한 다른 예로서, 비 터비 디코더의 탭 수 L과 줄인 탭 수 K간의 차가 2인 경우이다.
도 5의 브랜치 매트릭 계산부(510)는 2K개의 브랜치 매트릭 계산 #1∼#K으로 구성되어 도 3에서의 브랜치 매트릭 계산부(310)와 같이 브랜치 매트릭 계산을 수행한다.
가산 비교 선택부(520)와 패스 메모리 유니트(530)는 상술한 도 3의 가산 비교 선택부(320)와 패스 메모리 유니트(330)에서와 같이 구성 및 동작한다. 단, 도 5의 경우에, 패스 메모리 유니트(530)는 2(=L-K)개의 생존 심볼 an-2[0n], an-3[0n], an-2[1n], an-3[1n]을 결정 궤환 유니트(540)로 전송한다.
결정 궤환 유니트(540)는 2L개의 레벨과 생존 심볼 an-2[0n]과 an-3[0n]에 따라 사전에 설정된 2L-k개의 레벨(level 0, 0∼2L-k-1, 0)중 하나를 선택하여 브랜치 매트릭 연산부(510)로 전송하는 멀티플렉서(MUX)와 생존 심볼 an-2[1n]과 an-3[1n]에 따라 사전에 설정된 하위 2L-k개의 레벨(level 0, 0∼2L-k-1, 0)중 하나를 선택하여 브랜치 매트릭 연산부(510)로 전송하는 멀티플렉서(MUX)를 포함하도록 구성된다.
상술한 바와 같이 L과 K간의 차가 2인 경우에, 멀티플렉서들(MUX)은 입력되는 생존 심볼에 따라 4개의 레벨중 하나를 선택하여 브랜치 매트릭 계산부(510)로 전송한다. 예를 들어, 생존 심볼 an-2[0n]과 an-3[0n]이 00인 경우에, 멀티플렉서(MUX)는 레벨 0,0을 선택하여 브랜치 매트릭 계산부(510)로 전송하고, 생존 심볼 an-2[1n]과 an-3[1n]이 11인 경우에, 멀티플렉서(MUX)는 level 2L-k-1, 1을 선택하여 브랜치 매트릭 계산부(510)로 전송한다.
이와 같이 패스 메모리 유니트(530)로부터 피드백되는 생존 심볼 수는 비터비 디코더의 탭 수 L과 줄인 탭 수 K간의 차(L-K)에 의해 결정되고, 결정 궤환 유니트(540)의 구조는 피드백 되는 생존 심볼 수에 따라 결정되며, 결정 궤환 유니트(540)에 설정되는 레벨의 수는 비터비 디코더의 탭 수 L에 의해 결정되고, 브랜치 매트릭 계산부(510)는 줄인 탭 수 K에 의해 결정된다. 패스 메모리 유니트(530)에 포함되는 패스 메모리는 줄인 탭 수 K의 약 5배로 구성될 수 있다.
도 6은 본 발명의 바람직한 다른 실시 예에 따른 비터비 디코더(600)의 기능 블록도이다. 도 6을 참조하면, 비터비 디코더(600)는 브랜치 매트릭 계산부(610), 가산 비교 선택부(620), 패스 메모리 유니트(630), 레벨 연산 유니트(640), 및 결정 궤환 유니트(650)를 포함한다.
도 6은 결정 궤환 유니트(650)에 포함되는 레벨을 연산하여 설정하는 것을 제외하면 도 2의 비터비 디코더(200)와 동일하게 구성 및 동작한다. 따라서, 도 6의 브랜치 매트릭 계산부(610), 가산 비교 선택부(620), 패스 메모리 유니트(630) 및 결정 궤환 유니트(650)는 도 2의 브랜치 매트릭 계산부(210), 가산 비교 선택부(220), 패스 메모리 유니트(230) 및 결정 궤환 유니트(240)와 유사하게 구성 및 동작한다.
레벨 연산 유니트(640)는 패스 메모리 유니트(630)로부터 출력되는 복원 심 볼(decoded symbol)과 브랜치 매트릭 계산부(610)로 입력되는 수신 심볼을 이용하여 레벨을 연산한다. 그러나, 레벨 연산 유니트(640)는 외부에서 수신된 이진 데이터와 수신 심볼을 이용하여 레벨을 연산하도록 구현할 수 있다.
도 6의 비터비 디코더(600)가 도 7에 도시된 바와 같이 구현되면, 레벨 연산 유니트(640)는 도 7의 레벨 연산 유니트(740)와 같이 구성될 수 있다.
도 7은 도 6에 도시된 비터비 디코더를 구체적으로 구현한 일 예로서, 비터비 디코더의 탭 수 L=3이고 줄인 탭수 K=2인 경우이다.
도 7을 참조하면, 레벨 연산 유니트(740)는 지연부(741), 선택 신호 생성부(742), 선택부(743), 및 레벨 값 생성부(744)를 포함한다.
지연부(741)는 복수개의 지연기(D)로 구성되어 수신 심볼을 지연한다. 지연부(741)에 포함되는 지연기(D)의 수는 패스 메모리 유니트(730)에 포함되는 패스 메모리 수와 선택 신호 생성부(742)에서 선택 신호가 생성되는데 소요되는 시간에 의존한다.
선택 신호 생성부(742)는 복원 심볼 an-10[0n]을 지연하는 복수개의 지연기(D), 복원 심볼 an-10[0n]과 복원 심볼 an-10[0n]을 지연하는 복수개의 지연기(D)로부터 출력되는 신호에 의해 선택 신호를 생성하는 멀티플렉서(MUX)를 포함하여 선택 신호를 생성한다. 도 7은 8개의 레벨이 필요하므로, 멀티플렉서(MUX)로부터 생성되는 선택 신호는 3비트이다.
레벨 값 생성부(740)는 레벨 값을 각각 생성하는 평균 필터를 8개 포함한다. 평균 필터들은 각각 선택 신호에 따라 지연된 수신 심볼이 입력되면, 일정 기간동안 입력된 수신 심볼에 대한 평균치를 구하고, 구해진 평균치를 레벨 값으로 출력한다. 평균 필터는 로우 패스 필터와 같은 것으로 구성될 수 있다. 출력된 레벨 값은 결정 궤환 유니트(750)로 전송된다.
도 7의 브랜치 매트릭 계산부(710), 가산 비교 선택부(720), 패스 메모리 유니트(730), 결정 궤환 유니트(750)는 도 3의 브랜치 매트릭 계산부(310), 가산 비교 선택부(320), 패스 메모리 유니트(330), 결정 궤환 유니트(340)와 유사하게 구성 및 동작한다. 도 7의 패스 메모리 유니트(330)는 패스 메모리의 가로 길이가 10인 경우이나, 이 패스 메모리의 가로 길이는 채널 특성의 5배 정도(또는 줄인 탭 수 K의 5배 정도)로 구성되나 이 5배보다 작거나 좀 더 길게 설정해도 비터비 디코더의 성능에 영향을 미치지 않는다. 그러나, 패스 메모리의 가로 길이가 변경될 경우에, 레벨 연산 유니트(740)에 포함되는 지연기의 수가 변경될 수 있다.
도 8은 도 6에 도시된 비터비 디코더를 구체적으로 구현한 다른 예로서, 비터비 디코더의 탭 수 L과 줄인 탭 수 K가 도 5의 실시 예와 같은 경우이다. 따라서, 도 8의 브랜치 매트릭 계산부(810), 가산 비교 선택부(820), 패스 메모리 유니트(830), 결정 궤환 유니트(850)는 도 5의 브랜치 매트릭 계산부(510), 가산 비교 선택부(520), 패스 메모리 유니트(530), 결정 궤환 유니트(540)와 유사하게 구성 및 동작한다.
레벨 연산 유니트(840)는 도 7의 레벨 연산 유니트(740)와 같이 지연부(841), 선택 신호 생성부(842), 선택부(843), 및 레벨 값 생성부(844)를 포함한 다. 그러나, 도 8의 경우에 필요한 레벨 수가 2L개이므로, 2L개의 레벨을 생성할 수 있도록 지연부(841)에 포함되는 지연기(D)의 수, 선택 신호 생성부(842)에 포함되는 지연기(D)의 수 및 레벨 값 생성부(844)에 포함되는 평균 필터의 수를 설정한다.
도 9는 본 발명의 바람직한 또 다른 실시 예에 따른 비터비 디코더의 기능 블록도로서, 도 6의 실시 예에 적응 등화 유니트(905)를 더 포함한 예이다.
적응 등화 유니트(905)는 수신 심볼로부터 노이즈를 제거하기 위한 것으로, 적응 등화기(910)와 계수 업데이트부(920)로 구성된다.
적응 등화기(910)는 수신 심볼의 노이즈를 제거할 수 있도록 수신 심볼을 등화한다. 이를 위하여 적응 등화기(910)는 FIR 필터로 구성할 수 있다. 계수 업데이트부(920)는 적응 등화기(910)의 입력 신호, 적응 등화기(910)의 출력 신호를 이용하여 적응 등화기(910)의 계수를 업데이트 한다.
또한, 레벨 연산 유니트(960)는 적응 등화 유니트(905)의 입력 신호를 수신 심볼로 하고, 도 8과 같이 입력되는 이진 데이터를 이용하여 2L개의 레벨을 연산하여 결정 궤환 유니트(970)로 전송한다.
브랜치 매트릭 계산부(930), 가산 비교 선택부(940), 패스 메모리(950), 및 결정 궤환 유니트(970)는 도 8의 브랜치 매트릭 계산부(810), 가산 비교 선택부(820), 패스 메모리(830), 및 결정 궤환 유니트(850)와 유사하게 구성 및 동작한다.
도 10은 본 발명의 바람직한 또 다른 실시 에에 따른 비터비 디코더의 기능 블록도로서, 도 6의 실시 예에 제 1 적응 등화 유니트(1110)와 제 2 적응 등화 유니트(1111)를 더 포함한 예이다.
제 1 적응 등화 유니트(1110)는 수신 심볼의 주파수 특성을 보상하기 위해 수신 심볼을 등화하기 위해 제 1 적응 등화기(1001)와 제 1 계수 업데이트부(1002)를 포함한다.
제 1 적응 등화기(1001)는 수신 심볼의 주파수 이득 특성이 보상되도록 수신 심볼을 등화한다. 즉, 제 1 적응 등화기(1001)는 소정 레벨(또는 타겟 레벨)에 따라 가변되는 계수에 따라 수신 심볼의 진폭(amplitude)을 변화시켜 수신 심볼의 주파수 이득 특성을 개선한다. 이를 위하여 제 1 적응 등화기(1001)는 FIR(Finite Impulse Response) 필터로 구성할 수 있다. 소정 레벨은 실험적으로 MTF가 변화될 수 있는 조건을 찾아 성능을 비교한 결과를 토대로 결정될 수 있다.
제 1 계수 업데이트부(1002)는 제 1 적응 등화기(1001)의 입력 신호, 제 1 적응 등화기(1002)의 출력 신호에 기초하여 제 1 적응 등화기(1001)의 계수를 업데이트 한다.
제 2 적응 등화 유니트(1111)는 제 1 적응 등화 유니트(1110)로부터 출력되는 신호로부터 노이즈를 제거하기 위해 제 2 적응 등화기(1003)와 제 2 계수 업데이트부(1004)를 포함한다.
제 2 적응 등화기(1003)는 제 1 적응 등화 유니트(1110)로부터 출력되는 신호의 노이즈를 제거할 수 있도록 제 1 적응 등화기(1001)로부터 출력되는 신호를 등화한다. 이를 위하여 제 2 적응 등화기(1003)는 제 1 적응 등화기(1001)와 같이 FIR 필터로 구성할 수 있다. 제 2 계수 업데이트부(1004)는 제 2 적응 등화기(1003)의 입력 신호, 제 2 적응 등화기(1003)의 출력 신호를 이용하여 제 2 적응 등화기(1003)의 계수를 업데이트 한다.
레벨 연산 유니트(1008)는 제 1 적응 등화 유니트(1110)의 입력 신호를 수신 심볼로서 수신하여 도 8의 레벨 연산 유니트(840)와 같이 외부로부터 입력되는 이진 데이터를 이용하여 2L개의 레벨을 연산한다.
도 10의 브랜치 매트릭스 계산부(1005), 가산 비교 선택부(1006), 패스 메모리 유니트(1007), 결정 궤환 유니트(1009)는 도 8의 브랜치 매트릭스 계산부(810), 가산 비교 선택부(820), 패스 메모리 유니트(830), 결정 궤환 유니트(850)와 유사하게 구성 및 동작한다.
도 11은 본 발명의 바람직한 실시 예에 따른 비터비 디코딩 방법의 동작 흐름도이다. 도 11을 참조하면, 상기 방법은, 패스 메모리로부터 피드백 되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨을 선택한다(1101). 이 때, 레벨은 도 2에서와 같이 사전에 설정된 레벨이거나 도 6 내지 도 9중 어느 한 예에서와 같이 연산되어 설정된 레벨일 수 있다. 레벨을 사전에 설정할 경우에, 수신 심볼의 레벨 분포가 비대칭성을 갖는 경우를 고려한 레벨을 포함할 수 있다. 비터비 디코더의 탭 수가 L이고, 줄인 탭 수가 K이면, 피드백 되는 적어도 하나의 생존 심볼의 수는 L-K개이고, 적어도 2이상의 레벨은 2L개이다. 상기 L과 K는 양의 정수이고, K 는 L보다 작은 양의 정수로 설정될 수 있다.
다음 상기 방법은, 수신 심볼과 선택된 레벨을 이용하여 브랜치 매트릭을 계산한다(1102). 줄인 탭 수가 K이면, 브랜치 매트릭 계산은 2K번의 브랜치 매트릭 계산을 수행한다. 상기 방법은, 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 생존 경로를 결정한다(1103).
그리고, 상기 방법은 결정된 생존 경로를 패스 메모리에 저장한다(1104).
본 발명에 따른 비터비 디코딩 방법을 수행하기 위한 프로그램은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위 에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1a는 3탭 구조의 비터비 디코더의 일반적인 트렐리스 다이어그램이다.
도 1b는 도 1a에 도시된 트렐리스 다이어그램을 C언어로 표시한 것이다.
도 2는 본 발명의 바람직한 일 실시 예에 따른 비터비 디코더의 기능 블록도이다.
도 3은 도 2에 도시된 비터비 디코더를 구체적으로 구현한 일 예이다.
도 4는 도 3에 도시된 비터비 디코더를 C언어로 표현한 것이다.
도 5는 도 2에 도시된 비터비 디코더를 구체적으로 구현한 다른 예이다.
도 6은 본 발명의 바람직한 다른 실시 예에 따른 비터비 디코더의 기능 블록도이다.
도 7은 도 6에 도시된 비터비 디코더를 구체적으로 구현한 일 예이다.
도 8은 도 6에 도시된 비터비 디코더를 구체적으로 구현한 다른 예이다.
도 9는 본 발명의 바람직한 또 다른 실시 예에 따른 비터비 디코더의 기능 블록도이다.
도 10은 본 발명의 바람직한 또 다른 실시 에에 따른 비터비 디코더의 기능 블록도이다.
도 11은 본 발명의 바람직한 실시 예에 따른 비터비 디코딩 방법의 동작 흐름도이다.

Claims (20)

  1. 생존 경로를 저장하는 패스 메모리 유니트;
    상기 패스 메모리 유니트로부터 피드백되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨중 하나를 선택하는 결정 궤환 유니트;
    상기 결정 궤환 유니트로부터 제공되는 레벨과 상기 수신 심볼을 이용하여 브랜치 매트릭을 계산하는 브랜치 매트릭 계산부;
    상기 브랜치 매트릭 계산부에서 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 상기 생존 경로를 결정하고, 상기 결정된 생존 경로를 상기 패스 메모리 유니트로 전송하는 가산 비교 선택부를 포함하는 비터비 디코더.
  2. 제 1 항에 있어서, 상기 비터비 디코더의 탭 수가 L이고, 줄인 탭 수(the number of reduced-tap)가 K이면 상기 피드백 되는 생존 심볼의 수는 L-K개이고, 상기 결정 궤환 유니트는 2L개의 레벨을 포함하고, 상기 L과 K는 양의 정수이고, 상기 K는 L보다 작은 양의 정수인 것을 특징으로 하는 비터비 디코더.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 비터비 디코더의 줄인 탭 수가 K이면, 상기 브랜치 매트릭 계산부는 2K번의 브랜치 매트릭 계산을 수행하는 것을 특징으로 하는 비터비 디코더.
  4. 제 3 항에 있어서, 상기 적어도 2이상의 레벨은 사전에 설정된 레벨인 것을 특징으로 하는 비터비 디코더.
  5. 제 4 항에 있어서, 상기 사전에 설정된 레벨은 상기 수신 심볼의 레벨 분포가 비대칭성(asymmetry)을 갖는 경우를 토대로 한 레벨을 포함하는 것을 특징으로 하는 비터비 디코더.
  6. 제 5 항에 있어서, 상기 적어도 2이상의 레벨 각각의 상위 비트는 상기 피드백 되는 생존 심볼에 대응되는 비트를 갖는 것을 특징으로 하는 비터비 디코더.
  7. 제 3 항에 있어서, 상기 비터비 디코더는 상기 적어도 2이상의 레벨을 연산하고, 상기 연산된 레벨을 상기 결정 궤환 유니트로 전송하는 레벨 연산 유니트를 더 포함하는 것을 특징으로 하는 비터비 디코더.
  8. 제 7 항에 있어서, 상기 레벨 연산 유니트는 상기 수신 심볼과 상기 패스 메모리 유니트로부터 출력되는 복원 심볼을 토대로 상기 레벨을 연산하여 상기 결정 궤환 유니트로 전송하는 것을 특징으로 하는 비터비 디코더.
  9. 제 8 항에 있어서, 상기 비터비 디코더는 상기 수신 심볼로부터 노이즈를 제 거하기 위해 상기 수신 심볼을 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 적응 등화 유니트를 더 포함하고, 상기 레벨 연산 유니트의 상기 수신 심볼은 상기 적응 등화기의 입력 신호인 것을 특징으로 하는 비터비 디코더.
  10. 제 8 항에 있어서, 상기 비터비 디코더는 상기 수신 심볼의 주파수 특성을 보상하기 위해 상기 수신 심볼을 등화하는 제 1 적응 등화 유니트; 및
    상기 제 1 적응 등화 유니트의 출려 신호로부터 노이즈를 제거하기 위해 상기 제 1 적응 등화 유니트의 출력 신호를 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 제 2 적응 등화 유니트를 더 포함하고,
    상기 레벨 연산 유니트의 상기 수신 심볼은 상기 제 1 적응 등화 유니트의 입력 신호인 것을 특징으로 하는 비터비 디코더.
  11. 제 7 항에 있어서, 상기 레벨 연산 유니트는 상기 수신 심볼과 외부로부터 수신된 이진 데이터를 토대로 상기 레벨을 연산하여 상기 결정 궤환 유니트로 전송하는 것을 특징으로 하는 비터비 디코더.
  12. 제 11 항에 있어서, 상기 비터비 디코더는 상기 수신 심볼로부터 노이즈를 제거하기 위해 상기 수신 심볼을 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 적응 등화유니트를 더 포함하고, 상기 레벨 연산 유니트의 상기 수신 심볼은 상기 적응 등화 유니트의 입력 신호인 것을 특징으로 하는 비터비 디 코더.
  13. 제 11 항에 있어서, 상기 비터비 디코더는 상기 수신 심볼의 주파수 특성을 보상하기 위해 상기 수신 심볼을 등화하는 제 1 적응 등화 유니트;
    상기 제 1 적응 등화 유니트의 출력신호로부터 노이즈를 제거하기 위해 상기 제 1 적응 등화 유니트의 출력 신호를 등화하고, 등화한 심볼을 상기 브랜치 매트릭 계산부로 전송하는 제 2 적응 등화 유니트를 더 포함하고,
    상기 레벨 연산 유니트의 상기 수신 심볼은 상기 제 1 적응 등화 유니트의 입력 신호인 것을 특징으로 하는 비터비 디코더.
  14. 패스 메모리로부터 피드백 되는 적어도 하나의 생존 심볼을 토대로 적어도 2이상의 레벨을 선택하는 단계;
    수신 심볼과 상기 선택된 레벨을 이용하여 브랜치 매트릭을 계산하는 단계;
    상기 계산된 브랜치 매트릭과 이전에 저장된 상태 매트릭을 이용하여 생존 경로를 결정하는 단계; 및
    결정된 생존 경로를 저장하는 단계를 포함하는 비터비 디코딩 방법.
  15. 제 14 항에 있어서, 비터비 디코더의 탭 수가 L이고, 줄인 탭 수가 K이면, 상기 피드백 되는 상기 적어도 하나의 생존 심볼의 수는 L-K개이고, 상기 적어도 2 이상의 레벨은 2L개이고, 상기 L과 K는 양의 정수이고, 상기 K는 L보다 작은 양의 정수인 것을 특징으로 하는 비터비 디코딩 방법.
  16. 제 14 항 또는 제 15 항에 있어서, 줄인 탭 수가 K이면, 상기 브랜치 매트릭 계산 단계는 2K번의 브랜치 매트릭 계산을 수행하는 것을 특징으로 하는 비터비 디코딩 방법.
  17. 제 16 항에 있어서, 상기 적어도 2이상의 레벨은 사전에 설정된 레벨인 것을 특징으로 하는 비터비 디코딩 방법.
  18. 제 17 항에 있어서, 상기 사전에 설정된 레벨은 상기 수신 심볼의 레벨 분포가 비대칭성을 갖는 경우를 토대로 한 레벨을 포함하는 것을 특징으로 하는 비터비 디코딩 방법.
  19. 제 16 항에 있어서, 상기 적어도 2 이상의 레벨은 상기 수신 심볼과 비터비 디코딩에 의해 얻어진 복원 심볼을 이용하여 연산되는 것을 특징으로 하는 비터비 디코딩 방법.
  20. 제 19 항에 있어서, 상기 적어도 2 이상의 레벨은 상기 수신 심볼과 외부에 서 입력되는 이진 데이터를 이용하여 연산되는 것을 특징으로 하는 비터비 디코딩 방법.
KR1020080009086A 2008-01-29 2008-01-29 비터비 디코더 및 비터비 디코딩 방법 KR20090083110A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080009086A KR20090083110A (ko) 2008-01-29 2008-01-29 비터비 디코더 및 비터비 디코딩 방법
US12/146,812 US20090193321A1 (en) 2008-01-29 2008-06-26 Viterbi decoder and viterbi decoding method
PCT/KR2008/003852 WO2009096638A1 (en) 2008-01-29 2008-06-30 Viterbi decoder and viterbi decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080009086A KR20090083110A (ko) 2008-01-29 2008-01-29 비터비 디코더 및 비터비 디코딩 방법

Publications (1)

Publication Number Publication Date
KR20090083110A true KR20090083110A (ko) 2009-08-03

Family

ID=40900461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080009086A KR20090083110A (ko) 2008-01-29 2008-01-29 비터비 디코더 및 비터비 디코딩 방법

Country Status (3)

Country Link
US (1) US20090193321A1 (ko)
KR (1) KR20090083110A (ko)
WO (1) WO2009096638A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110090779A1 (en) * 2009-10-16 2011-04-21 Mediatek Inc. Apparatus for generating viterbi-processed data
US20110090773A1 (en) * 2009-10-16 2011-04-21 Chih-Ching Yu Apparatus for generating viterbi-processed data using an input signal obtained from reading an optical disc
RU2434325C1 (ru) * 2010-06-09 2011-11-20 Тимур Георгиевич Келин Декодер витерби с каналом оценки текущего отношения сигнал-шум
RU2446448C1 (ru) * 2010-11-17 2012-03-27 Тимур Георгиевич Келин Способ и устройство для оценки отношения сигнал-шум при декодировании сверточных кодов
US8432780B1 (en) * 2012-05-10 2013-04-30 Mediatek Inc. Viterbi decoding apparatus using level information generator supporting different hardware configurations to generate level information to Viterbi decoder and related method thereof
RU2747881C1 (ru) * 2020-10-21 2021-05-17 Валерий Владимирович Золотарев Способ декодирования длинного блокового кода с помощью алгоритма Витерби
CN112865814B (zh) * 2021-01-05 2022-08-30 成都航天通信设备有限责任公司 一种卷积码的Viterbi译码方法及译码器

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345452A (en) * 1991-05-29 1994-09-06 Nec Corporation Adaptive equalizer for removing nonlinear distortions from digital signals
US6081562A (en) * 1997-10-22 2000-06-27 Hitachi Ltd. Implementing reduced-state viterbi detectors
US6741664B1 (en) * 1999-02-05 2004-05-25 Broadcom Corporation Low-latency high-speed trellis decoder
US6999521B1 (en) * 1999-12-23 2006-02-14 Lucent Technologies Inc. Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques
US6658071B1 (en) * 2000-02-14 2003-12-02 Ericsson Inc. Delayed decision feedback log-map equalizer
US6744814B1 (en) * 2000-03-31 2004-06-01 Agere Systems Inc. Method and apparatus for reduced state sequence estimation with tap-selectable decision-feedback
US7000175B2 (en) * 2000-11-03 2006-02-14 Agere Systems Inc. Method and apparatus for pipelined joint equalization and decoding for gigabit communications
US7656959B2 (en) * 2001-04-13 2010-02-02 Agere Systems Inc. Pipelined decision-feedback unit in a reduced-state viterbi detector with local feedback
US7161994B2 (en) * 2001-09-17 2007-01-09 Digeo, Inc. System and method for shared decoding
US7046747B2 (en) * 2002-04-16 2006-05-16 Intel Corporation Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
US7522678B2 (en) * 2002-04-18 2009-04-21 Infineon Technologies Ag Method and apparatus for a data-dependent noise predictive viterbi
DE10255426B3 (de) * 2002-11-28 2004-03-18 Infineon Technologies Ag Viterbi-Decoder
KR20050026320A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 데이터 재생 장치 및 방법
TWI224432B (en) * 2003-10-28 2004-11-21 Ind Tech Res Inst A re-configurable Viterbi decoder
US7487432B2 (en) * 2004-05-25 2009-02-03 Agere Systems Inc. Method and apparatus for multiple step Viterbi detection with local feedback
US7653154B2 (en) * 2004-05-25 2010-01-26 Agere Systems Inc. Method and apparatus for precomputation and pipelined selection of intersymbol interference estimates in a reduced-state Viterbi detector
US8032818B2 (en) * 2005-09-30 2011-10-04 Agere Systems Inc. Method and apparatus for storing survivor paths in a Viterbi detector using input-dependent pointer exchange
US7830766B2 (en) * 2006-03-14 2010-11-09 Ricoh Company, Ltd. Data reproduction method and apparatus, disk, and recording/reproduction apparatus, using PRML method

Also Published As

Publication number Publication date
WO2009096638A1 (en) 2009-08-06
US20090193321A1 (en) 2009-07-30

Similar Documents

Publication Publication Date Title
JP3157838B2 (ja) ノイズ予測最尤(npml)検出方法及びそれに基づく装置
KR100244767B1 (ko) 디지탈 자기 기록/재생 시스템의 선택적 동기/비동기 부분 응답 채널 데이터 검출 장치
JP5054791B2 (ja) Prml検出器
US6081562A (en) Implementing reduced-state viterbi detectors
Conway A new target response with parity coding for high density magnetic recording channels
KR20090083110A (ko) 비터비 디코더 및 비터비 디코딩 방법
JP2003085764A (ja) 波形等化器およびprml検出器
US5931966A (en) Viterbi detector with a pipelined look-up table of squared errors
JP4072751B2 (ja) 再生装置
JP4419908B2 (ja) 信号処理装置および方法、プログラム記録媒体、並びにプログラム
KR20090051622A (ko) 데이터 재생 장치 및 방법
JP3653391B2 (ja) ビタビ検出器及びこれを用いたディジタル磁気記録再生装置
KR100253735B1 (ko) 디지탈 자기 기록/재생 시스템의 동기식 부분 응답 채널 데이터 검출기
JPH09330564A (ja) ディジタル情報再生装置
JP4727310B2 (ja) 波形等化装置、情報再生装置、波形等化方法、波形等化プログラムおよび記録媒体
JP3301691B2 (ja) デジタル情報再生装置
JP3674142B2 (ja) ディジタル情報再生装置および最尤復号装置
Zayed et al. Generalized partial response signalling and efficient MLSD using linear Viterbi branch metrics
Kaynak et al. Pattern-dependent noise predictive belief propagation
JP4612615B2 (ja) Prml検出器
EP1811521A1 (en) Viterbi decoding method and viterbi decoder
KR20060085347A (ko) 적응 등화를 이용하는 확장된 부분 응답 최대 유사 검출기
JPH11273263A (ja) ディジタル情報再生装置およびディジタル情報記録再生システム
KR19990003320A (ko) 디지탈 자기 기록/재생 시스템의 비동기식 부분 응답 채널 데이터 검출 장치
KR20060091725A (ko) 멀티 광 기록 채널을 위한 부분 응답 최대 유사 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application