KR100606023B1 - 고속 터보 복호화 장치 - Google Patents

고속 터보 복호화 장치 Download PDF

Info

Publication number
KR100606023B1
KR100606023B1 KR1020040036741A KR20040036741A KR100606023B1 KR 100606023 B1 KR100606023 B1 KR 100606023B1 KR 1020040036741 A KR1020040036741 A KR 1020040036741A KR 20040036741 A KR20040036741 A KR 20040036741A KR 100606023 B1 KR100606023 B1 KR 100606023B1
Authority
KR
South Korea
Prior art keywords
metric
values
block
alpha
beta
Prior art date
Application number
KR1020040036741A
Other languages
English (en)
Other versions
KR20050111842A (ko
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 KR1020040036741A priority Critical patent/KR100606023B1/ko
Priority to US11/135,632 priority patent/US20050278611A1/en
Publication of KR20050111842A publication Critical patent/KR20050111842A/ko
Application granted granted Critical
Publication of KR100606023B1 publication Critical patent/KR100606023B1/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
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction
    • 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/29Coding, 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 two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs

Landscapes

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

Abstract

본 발명은 고속 패킷 데이터 이동통신 시스템에서 복수의 산태들과 상기 각 상태들 간의 경로들로 이루어진 트레일리스 구조를 이용하는 터보 복호화 장치에 있어서, 입력데이터 비트에 따라 각 상태로부터 다른 상태로의 경로들에 대한 천이 확률을 나타내는 델타 메트릭을 계산하는 복수의 델타 메트릭 블록들과, 상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 순방향 상태 천이 확률을 나타내는 알파 메트릭을 계산하는 알파 메트릭 블록과, 상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 역방향 상태 천이 확률을 나타내는 베타 메트릭을 계산하는 적어도 하나의 베타 메트릭 블록들과, 상기 알파 메트릭과 상기 베타 메트릭을 입력받아 최종 상태의 심볼들에 대한 LLR값들을 계산하는 LLR블록으로 이루어진 구성 복호기를 포함하여 구성되는 것을 특징으로 하여 종래의 복호장치의 터보디코더에서 알파 및 베타 메트릭의 계산을 위한 정규화 구조를 변경하여, 터보 복호기의 속도를 증가시킴으로써, 복호기의 성능이 향상되고 1XEVDV 와 UMTS등의 고속 이동통신시스템에서 사용자의 속도에 대한 요구를 보다 충족시키는 효과가 있다.
1X EV-DV, SISO, High Speed Turbo Decoder, metric, bitnormalization

Description

고속 터보 복호화 장치{The Apparatus of High-Speed Turbo Decoder}
도 1은 종래 기술에 따른 터보 복호화 장치의 구성을 보여주는 도면.
도 2a는 종래 기술에 따른 SISO 복호기에 의한 알파 메트릭 연산 순서를 보여주는 도면.
도 2b는 종래 기술에 따른 SISO 복호기에 의한 베타 메트릭 연산 순서를 보여주는 도면.
도 3은 종래 기술에 따른 SISO 복호기의 구성을 보여주는 도면.
도 4는 일반적인 델타 메트릭의 블록 다이어그램을 보여주는 도면.
도 5a는 일반적인 알파 메트릭 블록의 내부구성을 보여주는 도면.
도 5b는 도 5a의 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면
도 6a는 일반적인 베타 메트릭 블록의 내부구성을 보여주는 도면.
도 6b는 도 5b의 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면.
도 7은 도 5b와 도 6b에 나타낸 최대값 연산 블록의 상세구조를 보여주는 도면.
도 8은 일반적인 LLR블록의 블록다이어 그램을 보여주는 도면.
도 9는 비트정규화의 일 예를 보여주는 도면.
도 10은 본 발명의 일 실시예에 따른 비트 정규화를 적용한 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면.
도 11은 본 발명의 일 실시예에 따른 LLR블록의 블록다이어 그램을 보여주는 도면.
도 12는 본 발명에 다른 실시예에 따른 정규화 동작의 일 예를 보여주는 도면.
도 13a는 본 발명의 다른 실시예에 따른 알파 메트릭 블록의 구조를 보여주는 도면.
도 13b는 본 발명의 다른 실시예에 따른 상기 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면.
도 14a는 본 발명의 다른 실시예에 따른 베타 메트릭 블록의 구성을 보여주는 도면.
도 14b는 본 발명의 다른 실시예에 따른 상기 베타 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면.
본 발명은 이동통신시스템의 복호화에 관한 것으로서, 특히 터보 복호화를 위한장치에 관한 것이다.
일반적으로 디지털 통신 시스템에서는 데이터 전송시 채널상에서 발생할 수 있는 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높이기 위하여 순방향 오류정정(FEC: Forward Error Correction)부호가 널리 사용되고 있다. 이러한 순방향 오류 정정부호로 터보부호(Turbo code)가 있다. 터보부호는 길쌈 부호(convolution code)에 비해 데이터의 고속 전송시 오류 정정 능력이 뛰어나기 때문에, 제 3세대 이동 통신 시스템으로 주목받고 있는 동기 방식의 CDMA2000(Code Division multiple aceess 2000)시스템과 비동기 방식의 UMTS(Universal Mobile Telecommunication System)등에 모두 채택되었다. 두가지 방식 모두 고속의 패킷 데이터 통신을 가능하게 하므로 고속이 터보 복호기가 그 성능을 발휘하게 된다. 상기와 같은 제 3세대 이동 통신 시스템에서는 터보 복호기에 적용되는 코드 레이트(부호화율)가 매우 다양하게 지원하도록 규정하고 있다.
도 1은 종래 기술에 따른 터보 복호화 장치의 구성을 보여주는 도면이다.
도시한 터보 복호기(200)는 시소 (SISO: Soft-In Soft-Out)방식의 구성 복호기로 구성된 예를 나타낸다. SISO 방식을 대신하여 상기 터보 복호기는 MAP(Maximum A Posteriori)방식 또는 RESOVA(Register Exchnge Soft Output Viterbi Algorithm)방식으로 구현될 수도 있다. 여기서, SISO 방식은 심볼에 대한 신뢰도를 가지고 확률을 구하는 방식이고, RESOVA 방식은 심볼이 거쳐가는 경로(Path)를 긴 부호어(codeword)라고 생각하고 부호어에 대한 확률을 구하는 방식이다.
도 1을 참조하면, 상기 터보 복호기(200)의 입력단으로는 메모리 버퍼(100) 에 저장되어 있는 심볼(데이터 비트들)이 제공된다. 상기 메모리 버퍼(100)에는 디인터리빙이 완료된 비트들이 구조적 부호인 시스테메틱 부호(Systematic code)와, 비 구조적 부호인 패리티 부호들(Parity 1 code, parity 2 code)로 구분되어 저장한다. 상기 메모리 버퍼(100)로부터 상기 터보 복호기(200)로 시스템 부호의 비트들과, 패리티 부호들이 비트들이 동시에 제공된다. 상기 메모리 버퍼(100)로부터 구조적 부호와 비구조적 부호의 3개의 부호들이 모두 출력되기 때문에, 상기 메모리 버퍼(100)로부터 출력되는 부호들은 3개의 버스를 통해 상기 터보복호기(200)의 다중화기(MUX: Multiplexer)(210)로 제공된다.
상기 터보 복호기(200)는 SISO 알고리즘이 적용되는 구성 복호기(220)(이하, SISO 복호기라 칭함)와, 인터리버(230)와, 디 인터리버(240)와, 출력 버퍼(Output buffer)(250)와, CRC(Cyclic Redundancy Code cheker) 검사기(260)로 구성된다.
상기 SISO 복호기(220)는 상기 다중화기 (210)의 출력을 입력하고, 후술될 도 2에 도시된 바와 같은 구성하에 SISO 복호화하여 출력한다. 상기 인터리버(230)은 상기 SISO 복호기(220)의 출력을 인터리빙한다. 상기 디인터리버(240)는 상기 SISO 복호기(220)의 출력을 디이터리빙한다. 상기 출력 버퍼(250)는 상기 디인터리버(240)에 의해 디인터리빙된 결과를 L1(Layer) 처리부(270)이 참조할 수 있도록 저장한다. 상기 CRC검사기(260)은 상기 디인터리버(240)에 의한 디인터리빙 결과에 대해 CRC 검사를 하고, 그 검사 결과를 상기 L1 계층 처리부(270)으로 제공한다.
SISO 복호기(220)는 복호화하는 과정에서 몇가지 메트릭들(metrics)을 연산하는 동작을 수행한다. 즉, SISO 복호기(220)의 복호화 동작 중에는 델타 메트릭(delta metic), 알파 메트릭(α metric), 베타 메트릭(β metric), 및 LLR(Log Likelihood Ratio)의 값들이 계산된다.
여기서, 델타 메트릭(Delta metric)은 브렌치 메트릭(branch metric)이라고도 하며 부호화 트레일리스 구조의 한 상태에서 다른 상태로의 경로들에 대한 천이확률을 나타낸다. 상기 알파 메트릭은 순방향 상태 메트릭(forward state metric)이라고도 하며 이전, 상태에서 현재 상태로의 누적 확률을 나타낸다. 상기 베타 메트릭은 이후 상태에서 현재 상태로의 누적천이확률을 나타낸다. 상기 알파 메트릭과 베타 메트릭이 모두 구해지면, LLR의 값이 계산된다. LLR 값은 심볼에 대한 확률을 나타내는 것으로, '1'이 될 확률과 '0'이 될 확률의 비율을 로그 스케일(log scale)로 표현한 값이다
일반적으로 프레임 모드 복호기에서는 LLR값을 계산하기 위해서 알파 메트릭, 베타 메트릭을 필요로 하므로 베타 메트릭을 모두 연산한 다음에 알파 메트릭을 연산하여 LLR 값을 차례대로 계산할 수 있다. 그러므로 베타 메트릭을 계산하는 동안의 지연시간이 발생한다.
도 2는 종래 기술에 따른 SISO 복호기에 의한 메트릭 연산 순서를 보여주는 도면으로, 도 2a와 도 2b로 구성된다. 상기 도 2a는 알파 메트릭을 연산하는 과정을 보여주고, 상기 도 2b는 베타 메트릭을 연산하는 과정을 보여준다.
도 2a 및 도 2b를 참조하면, 알파메트릭을 연산하는 동작과, 베타 메트릭을 연산하는 동작 사이에는 차이가 있음을 알 수 있다. k번째 상태의 알파 메트릭 αK 는 이전 값인 (k-1)번째 상태의 알파메트릭으로부터 계산되며, k번째 상태의 베타 메트릭 βK는 나중값인 (k+1)번째 상태의 베타 메트릭으로부터 계산된다. 이와 같이 베타 메트릭을 연산하기 위해서는 수신된 신호를 역순으로 참조하여야 하기 때문에 전체 수신 신호의 길이만큼의 초기 지연이 발생하게 된다.
상기한 문제점을 개선하기 위해서 슬라이딩 윈도우 모드가 적용되었는데 이것은 2개의 베타 메트릭 블록을 사용하여 연속적인 베타 메트릭 출력이 되도록 하는데 그 목적이 있다. 슬라이딩 윈도우 모드에서는 베타 메트릭 연산을 위해 수신된 신호를 임의의 길이로 자르고 연산하게 된다. 임의의 길이로 자른 수신신호를 가지고 베타 메트릭을 연산하게 되면 초기의 값들은 정확하지 않은 확률로 계산되어 나오지만, 나중에 갈수록 더 정확한 값들이 계산되어 진다. 정확한 값이 나오는 구간의 값들이 실제 LLR을 연산하는데 사용된다. 따라서, 윈도우 모드 방식에서는 부정확한 구간과, 신뢰할 수 있는 구간을 구분하여 윈도우 모드를 사용하기 쉽도록 한다. 즉, 베타 메트릭 연산 블록은 하나의 윈도우에서 정확한 구간을 연산하는 동안 다른 윈도우에서 부정확한 구간들을 연산하여 서로 맞물리게끔 구성되어 있다.
전술한 바와 같이 종래 기술에 따른 SISO복호기는 메트릭 연산을 위한 델타, 알파 및 베타 블록과 확률을 근거로 복호화하여 결과를 출력하는 LLR블록으로 구성된다.
도 2는 종래 기술에 따른 SISO 복호기의 구성을 보여주는 도면이다. 이 도면은 SISO 복호기(220)가 윈도우 모드(Sliding window mode)방식으로 구현된 예를 나 타내었다. 여기서, 베타 블록은 윈도우의 수에 따라 2개의 베타 메트릭 블록들로 구성된 것으로 나타내고 있다.
도 2를 참조하면, 역다중화기(DEMUX: Demultiplexer)(221)는 미리 설정된 속도-예를 들어, 터보 복호기의 클럭(동작 주파수)의 3배 속도로 메모리 버퍼(100)에 저장되어 있는 데이터 비트들을 엑세스(acess)하고, 제 1출력, 제 2 출력 및 제 3 출력을 제공한다. 3개의 델타 메트릭 블록(223a,b,c)은 상기 제 1출력, 제 2출력 및 제 3출력 각각에 대한 델타 메트릭들을 계산한다. 알파 메트릭 블록(225)은 델타 메트릭 블록(223a)에 의해 계산된 델타 메트릭을 입력하고, 해당하는 알파 메트릭을 계산한다. 베타 블록(227)은 한 윈도우에서 정확한 구간의 제 1 베타 메트릭을 계산하는 제 1 델타 메트릭 블록(227a)과, 상기 윈도우에서 나머지 구간의 제 2 베타 메트릭을 계산하는 제 2 베타 메트릭 블록(227b)과 상기 블록들(227a,b)에 의한 계산 결과들을 다중화하는 다중화기(227c)를 포함한다.
LLR 블록(229)은 상기 알파 메트릭 블록(225a)에 의해 계산된 알파 메트릭과 상기 다중화기 (227c)에 의한 다중화 결과를 입력하여 해당하는 LLR 값들을 계산하고, 상기 LLR 값들에 근거하여 심볼들을 결정한다. 상기 LLR 블록(229)으로부터 상기 결정된 심볼들은 이후 인터리빙/디 인터리빙을 위해 도 2에 도시된 인터리버 및 디인터리버(230.240)로 출력된다.
LLR을 계산하기 위한 상기 LLR블록(229)은 순방향 상태, 역방향 상태에 대한 천이 확률을 근거로 심볼에 대한 확률을 구한다. 이 때 LLR의 값이 양수일 경우 심볼'1', 음수일 경우 심볼'0'을 나타낸다.
이와 같이 수신된 신호를 복호화하기 위해서SISO 복호기는 알파메트릭 및 베타 메트릭 값을 모두 계산한다. 여기서, 베타 메트릭은 상기 메모리 버퍼(100)에 저장된 수신 신호의 역순으로 값을 연산해야 하기 때문에, 베타 메트릭의 연산이 모두 끝나기 전까지는 LLR 의 값을 구할 수 없다는 사실에 유의할 필요가 있다.
CDMA 2000 1X EVDV와 같은 방식의 표준이 제안되기 이전까지의 이동 통신 시스템에서는 고속의 패킷 데이터 전송을 지원하지 않았으므로 수백의 Kbps 정도의 복호능력을 가지는 복호기로 충분하였다. 그러나 수 Mbps의 복호능력을 요구하는 1XEVDV, UMTS(Universal Mobile Telecommunications System)등의 이동통신 시스템에서는 그에 상응하는 동작 속도를 갖는 고속의 복호기가 필요로 하게 되었다.
터보 복호기는 기본 복호기인 MAP 또는 SISO복호기의 크리티컬 딜레이(critical delay)에 의하여 동작 속도가 결정되게 된다. 즉, MAP 복호기나 SISO 복호기를 고속으로 설계하면 터보복호기도 고속의 동작을 할 수 있다. 따라서, 종래의 MAP 또는 SISO복호기의 동작 딜레이를 줄이고, 복호속도를 보다 증가시킬 필요가 있다.
따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명의 목적은, 터보 복호 장치의 구성복호기의 기본구조를 개선하여, 고속의 복호가 가능하도록 하는 장치를 제공하는 것이다.
본 발명의 다른 목적은 알파 및 베타 메트릭의 연산 속도를 증대시키는 복호 기를 제공하는 것이다.
본 발명의 또 다른 목적은 3단의 파이프 라인 구조를 가지는 LLR블록을 포함하는 복호기를 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 실시예는, 고속 패킷 데이터 이동통신 시스템에서 복수의 산태들과 상기 각 상태들 간의 경로들로 이루어진 트레일리스 구조를 이용하는 터보 복호화 장치에 있어서,
입력데이터 비트에 따라 각 상태로부터 다른 상태로의 경로들에 대한 천이 확률을 나타내는 델타 메트릭을 계산하는 복수의 델타 메트릭 블록들과,
상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 순방향 상태 천이 확률을 나타내는 알파 메트릭을 계산하는 알파 메트릭 블록과,
상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 역방향 상태 천이 확률을 나타내는 베타 메트릭을 계산하는 적어도 하나의 베타 메트릭 블록들과,
상기 알파 메트릭과 상기 베타 메트릭을 입력받아 최종 상태의 심볼들에 대한 LLR값들을 계산하는 LLR블록으로 이루어진 구성 복호기를 포함하여 구성되는 것을 특징으로 한다.
본 발명의 다른 실시예는, 고속 패킷 데이터 이동통신 시스템에서 복수의 산태들과 상기 각 상태들 간의 경로들로 이루어진 트레일리스 구조를 이용하는 터보 복호화 장치에 있어서,
입력데이터 비트에 따라 각 상태로부터 다른 상태로의 경로들에 대한 천이 확률을 나타내는델타 메트릭을 계산하는 복수의 델타 메트릭 블록들과,
상기 델타 메트릭을 입력받아 알파 메트릭을 계산하고, 상기 알파 메트릭 값들이 미리 정해진 비트폭을 벗어나게 되면 상기 알파 메트릭의 사인비트를 제외한 MSB를 반전하여 비트 정규화를 수행하는 알파 메트릭 블록과,
상기 델타 메트릭을 입력받아 베타 메트릭을 계산하고, 상기 베타 메트릭 값들이 미리 정해진 비트폭을 벗어나게 되면 상기 베타 메트릭의 사인비트를 제외한 MSB를 반전하여 비트 정규화를 수행하는 베타 메트릭 블록과,
상기 비트 정규화된 알파 및 베타 메트릭값들을 입력받아 최종 상태의 심볼들에 대한 LLR값들을 계산하기 위한 중간 연산 값들을 저장하는 2개의 버퍼부들을 포함하는 LLR블록을 포함하여 구성되는 구성복호기를 포함하여 구성되는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 도면상에 표시된 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호로 나타내었으며, 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들 로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 터보 복호기 내의 구성 복호기의 정규화블록의 구조를 개선함으로써, 딜레이를 줄여 복호 속도를 향상시키는 것이다.
본 발명의 설명에 앞서, 일반적인 SISO/MAP 복호기의 내부구성인 델타메트릭 블록과, 알파 메트릭 블록 및 베타 메트릭 블록의 기본구조와 연산 다이어그램을 설명한다.
도 4는 일반적인 델타 메트릭의 블록 다이어그램을 보여주는 도면이다.
도 4를 참조하면 델타 메트릭 블록(223)은 0, Sa, Sb, Sc 4개의 신호를 입력받아 상기 4개의 입력신호를 각각 계산한 8개의 결과신호(d0~d7)를 출력한다. 상기 출력신호 d0, d4, d2, d1는 각각 0, Sa, Sb, Sc 와 동일하고, d6은 입력신호 Sa, Sb의 배타적 논리합(Exclusive-OR)연산을 통한 결과이고, d5는 Sa, Sc의 배타적 논리합의 결과이고, d3는 입력신호 Sb, Sc의 배타적 논리합의 결과이고, 마지막으로 d7은 d3와 Sa의 배타적 논리합의 결과이다.
도 5a는 일반적인 알파메트릭 블록의 내부구성을 보여주는 도면이다.
도 5a를 참조하면, 알파메트릭 블록(225)는 알파메트릭의 순환적(recursive)인 연산을 수행하기 위해 초기 상태값을 저장하는 메모리 버퍼(memory buffer)부(225-1)와, 알파 메트릭을 계산하는 알파 메트릭 계산 블록(225-3)과, 상 기 알파 메트릭 계산 블록(225-3)의 출력값의 오버 플로우/언더 플로우(overflow/underflow)를 방지하기 위한 정규화블록(225-5)으로 구성된다.
도 5b는 도 5a의 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면이다.
도 5b를 참조하면, 메모리 버퍼부(225-1)는 초기 상태설정을 위한 알파 입력값(a0~a7)을 각각 입력받아 저장하는 플리플롭들로 구성된다. 상기 알파 입력값은 최초에는 미리 정해지는 초기값이고, 이후에는 이전 상태의 알파 메트릭 값이다. 연산부(225-2)는 상기 플립플롭들로부터 출력된 이전 알파 메트릭 입력값(a0~a7)과 델타 메트릭 블록(227)으로부터 출력된 델타 메트릭(d0~d7)에 대하여 배타적 논리합을 수행한다. 최대값 연산 블록(225-4)는 상기 연산부(225-2)의 결과값들 (ad0~15) 중 2개씩 입력받아 비교하여 큰 값을 선택하고, 상기 선택된 값은 정규화블록(225-5)에서 정규화를 거쳐 알파 메트릭값으로 출력된다. 상기 알파 메트릭 출력값은 다음 알파 메트릭을 계산하기 위한 알파 메트릭 입력값으로 사용되기 위해 상기 버퍼부(225-1)로 저장된다.
일 예로 초기 입력값 a0 및 a1이 각 버퍼(225-1)로부터 출력되면 현재 상태 메트릭 d0와 d7과 각각 배타적 논리합의 결과인 ad0와 ad1은 최대값 연산(225-4)블록으로 입력된다. 상기 최대값 연산(225-4)블록은 ad0 와 ad1을 비교하여 큰 값을 선택한다. 상기 최대값 연산(225-4)의 상세구조는 도 7을 참조하여 상세히 후술하겠다. 상기 출력된 값은 정규화 블록(225-5)에서 정규화되어 a0로써 첫 번째 플리플롭에 저장된다. 상기 a0은 다음 알파 메트릭 값을 계산하기 위한 입력값으로 사 용되어 d7값과 다시 배타적 논리합을 수행하고 최대값 연산(225-4)를 거쳐 다시 정규화작업을 수행하고 a4로 출력된다. 상기 a4는 다시 알파 입력값으로 사용된다.
도 6a는 일반적인 베타메트릭 블록의 내부구성을 보여주는 도면이다.
도 6a를 참조하면, 베타메트릭 블록(227)은 역순으로 수신된 신호의 순환적(recursive)인 연산을 수행하기 위해 초기 상태값을 저장하는 메모리 버퍼부(227-1)와, 베타 메트릭을 계산하는 베타 메트릭 계산 블록(227-3)과, 상기 베타 메트릭 계산 블록(227-3)의 출력값의 오버 플로우/언더 플로우(overflow/underflow)를 방지하기 위한 정규화블록(227-5)으로 구성되고, 베타 메모리 버퍼(227-7)는 상기 정규화블록(225-5)에서 출력한 베타 베트릭값을 저장하여 이후의 베타 메트릭 계산을 위해 역순으로 출력한다.
도 6b는 상기 베타 메트릭 계산 블록(227-3)의 블록 다이어그램을 보여주는 도면이다.
도 6b를 참조하면, 메모리 버퍼부(227-1)는 베타 입력값(b0~b7)들을 저장하는 플리플롭들로 구성된다. 상기 베타 입력값은 최초에는 미리 정해지는 초기값이고, 이후에는 이후 스테이트의 베타 메트릭 값이다. 연산부(227-2)는 상기 플리플롭들로부터 출력된 베타 입력값(b0~b7)과 델타 메트릭 블록으로부터 출력된 델타 메트릭(d0~d7)에 대하여 배타적 논리합을 수행한다. 상기 최대값 연산블록(227-4)은 상기 연산부(227-2)의 결과값들 중 2개씩 입력받아 비교하여 큰 값을 선택하고, 상기 선택된 값은 정규화블록(227-5)에서 정규화를 거쳐 베타 메트릭값으로 출력되고, 상기 베타 메트릭 출력값은 다음 베타 메트릭을 계산하기 위한 베타 메트릭 입 력값으로 사용된다.
일 예로 초기 입력값 b0 및 b4가 각 버퍼(227-1)부로부터 출력되면 현재 상태 메트릭 d0와 d7과 각각 배타적 논리합 수행 결과 값들은 최대값 연산(227-4)블록으로 입력된다. 상기 최대값 연산(227-4)블록은 상기 결과 값들을 비교하여 큰 값을 출력한다. 상기 최대값 연산(227-4)의 상세구조는 도 7을 참조하여 상세히 후술하겠다. 상기 출력된 값은 정규화 블록(227-5)에서 정규화되어 b0로 출력된다. 상기 b0은 b4와 함께 다음 베타 메트릭 값을 계산하기 위한 입력값으로 사용되어 d7, d0값과 다시 배타적 논리합을 각각 수행하고 최대값 연산(225-4)를 거쳐 다시 정규화작업을 수행하고 b1로 출력된다. 상기 b1는 다시 b2와 b3의 베타 입력값으로 사용되기 위해 상기 버퍼부(227-1)로 저장된다.
도 7은 도 5b와 도 6b에 나타낸 최대값 연산 블록(최대값 연산)의 상세구조를 보여주는 도면이다.
도 7을 참조하면, 최대값 연산(225-4)블록은 알파 또는 베타 입력값과 델타 메트릭을 배타적 논리합의 결과 값들 중 2개를 입력받아 두 값을 비교하는 비교기(comparator)(10)와, 상기 2개의 입력값과 상기 비교기(10)의 결과에 따라 상기 2개의 입력 값들 중 큰 값을 선택하는 다중화기(20)로 구성된다. 상기 최대값 연산(225-4)블록은 상기 다중화기(20)로부터 선택된 결과값을 출력한다. 상기 결과값은 알파 메트릭 블록(225) 또는 베타 매트릭 블록(227)의 정규화 블록(225-5, 227-5)으로 입력된다.
하기에서는 상술한 도 4 내지 도 7을 참조하여, 델타 메트릭 블록과, 알파 메트릭 블록 및 베타 메트릭 블록의 상세 구조를 통해 발생하는 각 블록들의 딜레이를 살펴보기로 한다.
도 4를 참조하면, d7의 경우, d4와 d3의 배타적 논리합의 결과값이, 상기 d3는 Sb와 Sc의 배타적 논리합의 결과이므로 상기 델타 블록에서 발생하는 최대의 딜레이는 하기와 같이 2배의 연산 시간이 된다.
delay of delta block = adder + adder
상기 알파 메트릭 블록(225)의 딜레이는 알파 입력값과 델타 메트릭 값을 배타적 논리합을 수행하기 위한 연산기(225-2)와, 상기 최대값 연산(225-4)블록의 상기 비교기(10)와, 상기 먹스(20)와, 정규화 블록(225-5)과, 초기값 또는 알파 메트릭값을 저장하는 버퍼부(225-1)에서 발생하는 딜레이들의 합이다.
delay of alpha block = adder + comparator + mux + 정규화 + flip-flop
상기 베타 블록(227)의 딜레이는 베타 입력값과 현재 상태값을 배타적 논리합을 하기 위한 연산기와, 상기 최대값 연산(227-4)블록의 상기 비교기(10)와, 상기 먹스(20)와, 정규화 블록(227-5)과, 베타 메트릭값을 저장하는 버퍼부(227-1)의 합에서 발생하는 딜레이들의 합이다.
delay of beta block = adder + compalator + mux + 정규화 + flip-flop
도 8은 일반적인 LLR블록의 블록다이어 그램을 보여주는 도면이다.
도 8을 참조하면, 상기 버퍼부(229-1)은 상기 알파메트릭 블록(225)으로부터 계산된 알파 메트릭 값들(ad0~ad15)을 입력받아 저장하는 버퍼부(225-1)단으로 구성된다. 상기 연산부(229-2)는 상기 버퍼부(299-1)에서 출력된 알파 메트릭값들(ad0~ad15)과, 베타 메트릭 블록(227)으로부터 제공된 베타 메트릭 값들(b0~b7) 각각에 대하여 배타적 논리합을 수행한다. 최대값 연산(229-3) 블록은 상기 결과 값들을 2개씩 입력받아 이 둘을 비교하여 큰 값을 선택한다. 최대값 연산(229-4) 블록은 상기 최대값 연산(229-3) 블록의 상기 선택값들 중 2개씩 입력받아 큰 값을 출력한다. 플리플롭(229-5)는 파이프 라인으로 상기 최대값 연산(229-4)단으로부터 출력된 값들을 저장한다. 여기서, 파이프 라인(pipe line)은 이전 상태값을 기억하는 메모리이다. 예를 들어, k번째 상태계산을 할 경우 상기 파이프 라인(229-4)이 k-1번째 값을 유지하고 있으므로, k번째 상태를 계산하기 위해 K-1번째 상태(상태)가 계산되기를 기다릴 필요가 없기 때문에 빠른 회로구성이 가능하다.
최대값 연산(229-6)블록은 상기 파이프 라인(229-5)에서 2개씩 입력받은 값들을 비교하여 큰값을 출력하고 LLR연산부(229-7)는 상기 최대값 연산(229-6)블록에서 입력된 2개의 값에 대하여 LLR 알고리즘을 수행하고, 상기 오차보정부(229-8)는 상기 LLR연산부(229-7)의 출력값과 입력신호 Sa값을 입력받아 오차 보정 정보(extinisic information)를 출력한다. 이 때, LLR알고리즘 및 오차 보정 정보에 대한 상세 설명은 본 발명의 요지에 벗어나므로 생략한다. 상기 LLR 블록(229)에서는 상기 알파 또는 베타 메트릭 블록(225, 227)과 같은 리커시브(recursive)구조를 가지지 않으므로 여러 단의 파이프 라인(Pipe line)을 적용하여 충분히 빠른 회로의 구성이 가능함을 알 수 있다.
따라서, 본 발명의 제 일 실시예에서는 종래의 알파 및 델타 블록의 정규화 기능을 비트 정규화로 대체 하고, 그에 따라 LLR 블록의 파이프 라인을 확장한다.
또한, 본 발명의 다른 실시예에서는 알파 및 베타 메트릭의 정규화를 델타 메트릭의 정규화로 대체하여 알파 및 베타 메트릭 계산의 딜레이를 줄인다.
이하, 본 발명의 제 일 실시예를 상세히 설명한다.
터보 부호기에서의 정규화는 각 메트릭 값들을 계산할 때, 각 메트릭을 표현하는 비트 폭(bit width)을 벗어나는 오버플로우(overflow) 및 언더플로우(underflow)가 발생하는 현상을 막기 위한 것이다. 여기서, 오버플로우 및 언더플로우는 심볼의 극성이 바뀌는 것으로 복호 성능에 안 좋은 영향을 끼친다. 이러한 신호의 오버플로우 및 언더플로우를 막기 위해서 각 메트릭 값들 중 최대값 또는 최소값을 찾아서 오버플로우 및 언더 플로우를 검출하면 나머지 메트릭값들에서 정해진 값을 빼거나 더하는 방식을 사용한다.
본 발명의 제 일 실시예에서는 이러한 오버 및 언더 플로우를 막기 위한 정규화 방법으로 비트 정규화를 사용한다. 상기 비트 정규화는 메트릭을 표현하는 비트폭을 충분히 넓게하고, 각 메트릭들의 MSB(Most Significant Bit)를 모니터링한다.
콘벌루셔널 코드(Convloutional code)의 구속장이 유한하고 그에 따라서 트레일리스(trellis)상에서 한 상태(상태) 값이 다른 상태(상태)에 영향을 미치는 구간 또한 구속 장만큼의 거리를 갖기 때문에 각 메트릭 값들의 최대값과 최소값의 차이는 무한대로 벌어지지 않는다. 따라서, 비트 정규화는 전체 메트릭들이 바이너리(binary)상의 미리 정해지는 경계점을 넘는 오버 플로우 또는 언더플로우의 메트 릭에 대해 수행된다. 구체적으로 오버 플로우 또는 언더플로우의 메트릭이 발견되면, 상기 오버 및 언더플로우의 사인 비트를 제외한 크기비트의 최상위 비트(MSB)를 반전시켜 자동으로 정규화가 되도록 하는 것이다.
도 9는 bit 정규화의 일 예를 보여주는 도면으로 여기서는 언더플로우의 경우에 비트정규화를 도시하였다.
도 9를 참조하면, 미리 정해진 비트폭은 128 ~ -128을 싸인비트를 포함한 크기 비트가 14비트로 표현되는 메트릭이다. 이 때 싸인비트를 포함한 모든 비트가 0인 메트릭(340)은 비트폭의 부호경계점이고, 메트릭의 언더 플로우 경계점(350)은 사인비트가 1이고 나머지 크기 비트가 모두 0인 메트릭이다. 이 때, 특정 메트릭(360)은 MSB가 0이므로 언더플로우가 된다. 따라서 상기 언더플로우인 메트릭(360)에 상기 MSB를 1로 반전시켜 비트 정규화를 수행한다. 그러면, 비트 정규화가 수행된 메트릭(370)은 상기 언더플로우인 메트릭 (360)의 MSB가 1로 반전되어 상기 비트폭 내에 분포하게 된다.
도 10은 본 발명의 일 실시예에 따른 비트 정규화를 적용한 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면이다.
도 10을 참조하면, 메모리 버퍼부(310)는 초기 상태설정을 위한 알파 입력값들(a0~a7) 각각을 입력받아 저장하는 플리플롭들로 구성된다. 연산부(315)는 상기 플리플롭들로부터 출력된 이전 알파 메트릭 입력값(a0~a7)과 델타 메트릭 블록으로부터 출력된 델타 메트릭(d0~d7)에 대하여 배타적 논리합을 수행한 후 각각 한 상태(상태)로 모이는 두 값들은 최대값 연산(function)블록들(320)로 입력한다. 상기 최대값 연산블록들(320) 각각은 상기 두 값들을 비교하여 큰 값을 선택한다. 상기 선택값은 비트 정규화블록(330)을 거쳐 알파 메트릭값으로 출력되고, 상기 알파 메트릭 출력값은 다음 알파 메트릭을 계산하기 위한 알파 메트릭 입력값으로 사용된다.
일 예로, 초기 입력값 a0 및 a1이 각 플리플롭들(310)로부터 출력되면 현재 상태(상태) 메트릭 d0와 d7과 각각 배타적 논리합의 수행 결과인 ad0와 ad1은 최대값 연산(320)블록으로 입력된다. 상기 최대값 연산(225-4)블록은 ad0 와 ad1을 비교하여 큰 값을 선택한다. 상기 선택된 값은 비트 정규화 블록(330)에서 비트 정규화되어 a0로서 첫 번째 플리플롭에 저장된다. 상기 a0은 다음 알파 메트릭 값을 계산하기 위한 입력값으로 사용되어 d7값과 다시 배타적 논리합을 수행하고 최대값 연산(320)를 거쳐 다시 비트정규화작업을 수행하고 a4로 출력된다. 상기 a4는 다시 초기 입력값으로 사용된다.
베타 메트릭 블록 역시 알파 메트릭 블록처럼 종래의 메트릭 계산과정은 동일하고, 최대값 연산이 수행된 결과 값에 비트 정규화 작업을 수행하는 것으로 설명을 생략한다.
비트 정규화 작업을 거쳐 출력된 알파 및 베타 매트릭 값들에 대해 2단 파이프 라인 구조의 LLR블록이 사용된다.
도 11은 본 발명의 제 일 실시예에 따른 LLR블록의 블록다이어 그램을 보여주는 도면이다.
도 11을 참조하면, LLR블록(400)은 2단의 파이프 라인(430, 460)이 적용된 다. 구체적으로, 버퍼부(410)는 알파 메트릭 블록으로부터 비트 정규화 작업이 수행된 알파 메트릭 값들(ad0~ad15)을 각각을 입력받아 저장하는 플리플롭들로 구성된다. 연산부(415)는 상기 버퍼부(410)에서 출력된 알파 메트릭 값들(ad0~ad15)과, 베타 메트릭 블록의 베타메트릭 값들(b0~b7) 각각에 대하여 배타적 논리합을 수행한다. 최대값 연산블록(420)은 상기 배타적 논리합이 수행된 결과값들 2개씩 입력받아 비교하여 큰 값을 선택한다. 파이프라인(430)은 상기 최대값 연산 블록(420)으로부터 입력받은 상기 선택값을 각각의 플리플롭에 저장한다. 최대값 연산 블록(440)은 상기 파이프라인(430)으로부터 2개씩 입력받아 비교하여 큰 값을 선택한다. 최대값 연산 블록(450)은 상기 최대값 연산 블록(440)으로부터 입력된 상기 선택값들 중 2개씩 입력받아 비교하여 큰 값을 선택하고, 상기 선택값은 파이프라인(460)의 각각에 플리플롭으로 저장된다. 이후, 상기 파이프라인(460)로부터 출력된 결과값들은 LLR 연산부(470)를 통해 LLR알고리즘이 수행되고, 오차보정부(480)을 통해 오차보정정보를 출력한다.
이하, 도 8 및 도 11을 참조하여 LLR 블록의 딜레이를 살펴본다.
도 8의 LLR 블록(229)은 최대값 연산 블록(229-3)과 최대값 연산 블록(229-4) 사이에 파이프 라인(229-4)을 구성한다. LLR 블록(229)의 딜레이를 살펴보면, 먼저 상기 파이프 라인(229-4) 이전 단들에서 연산부와 상기 두 개의 최대값 연산(229-2, 229-3)를 통해 3단의 합산 지연(adder delay)이 발생한다. 상기 파이프 라인(229-4) 이후 단들에서 최대값 연산(229-4)와, LLR 연산부(229-7) 및 오차보정(229-8)을 통해 3단의 합산지연이 발생했었다.
도 11의 상기 파이프 라인(430) 및 상기 파이프라인(460)을 구성한 LLR 블록(400)의 딜레이를 살펴보면, 상기 파이프 라인1(430) 이전 단에서 연산부와 최대값 연산(420)을 통한 2개의 합산 지연이 발생한다. 상기 파이프 라인 1(430)과 상기 파이프라인2(460)사이 단에서는 2개의 최대값 연산 블록들(440, 450)을 통해 2개의 합산지연이 발생하고, 상기 파이프 라인 2(460)의 이후 단에서는 LLR 연산부(470) 및 오차보정부(480)를 통해 2개의 합산 지연이 발생하였다. 따라서, 파이프 라인의 추가를 통해 합산 지연이 줄어듦을 알 수 있다.
이하, 도 12내지 도 14를 참조하여 본 발명의 다른 실시예를 설명한다.
SISO 복호기로 복호하는 경우, 알파 및 베타 메트릭 값 자체가 아니라 그 메트릭 값들의 차이에 의미가 있다. 따라서, 알파 및 베타 메트릭의 입력값이 되는 델타 메트릭의 수위를 미리 조정하면, 알파 및 베타 메트릭에서 오버 플로우 및 언더 플로우를 방지할 수 있다.
본 발명의 다른 실시예에서는 델타 메트릭에 대해 정규화를 수행한다. 알파 및 베타 메트릭 블록은 리커시브한 구조로 구성되어 파이프 라인이 적용 될 수 없기 때문에 델타 메트릭의 비트 정규화를 수행한 결과값에 대하여 파이프 라인을 적용한다. 구체적으로, 출력된 델타 메트릭이 미리 정해놓은 특정 영역을 넘으면, 상기 델타 메트릭에서 일정한 값을 빼거나 더해주어 전체적인 메트릭의 수위를 조절하는 방식을 사용한다. 상기 정규화를 수행하기 위해서는 각 메트릭들의 최대값과 최소값의 차이(dm)가 유한해야 하며, 다음 메트릭을 계산할 때, 이전 또는 이후 메 트릭과 계산될 메트릭과의 차이가 유한해야한다. 실제로 트레일리스 시스템 구조 상의 특징으로 각 메트릭의 최대거리(Maximum distance)가 결정되며, 상기 최대거리는 정해진 수준을 넘지 않는다. 따라서, 트레일리스 구조를 사용하는 SISO 복호기 상기 조건을 만족한다. 또한, 입력값인 델타메트릭은 유한하므로 이전 또는 이후 메트릭에서 다음 메트릭을 계산할 때의 값은 유한한 차이를 갖는다.
도 12는 본 발명에 다른 실시예에 따른 정규화 동작의 일 예를 보여주는 도면이다.
도 12를 참조하면, 메트릭 값은 (2n) 비트로 표현되고 비트 폭은 2n-1-1에서 -2n-1-1로 상기 2n-1는 오버플로우의 경계점이고, 상기 -2n-1는 언더 플로우의 경계점이 된다.
이전 메트릭들(a~h)과 상기 이전 메트릭들(a-h)로부터 계산된 메트릭들(a'~h')은 유한한 차이를 보이며 분포되어 있다. 즉, 각 메트릭의 최대거리(dm)가 유한하다. 이전의 메트릭 값으로 다음의 메트릭을 구할 때, 어느 한 메트릭 값이 2n-2를 넘었는지 판단한다. 판단결과 2n-2를 넘은 메트릭 값들이 발견되면, 상기 2n-2를 넘은 메트릭 값들에서 미리 정해놓은 값을 뺌으로써 정규화한다. 이를 통해 메트릭 값들이 오버 플로우 영역에 근접하기 전에 미리 메트릭 값들의 수위를 낮출 수 있고, 마찬가지로 메트릭값들이 언더 플로우 영역에 근접하기 전에 미리 메트릭 값들의 수위를 높여 메트릭들의 전체적인 수위를 일정범위내로 조절한다.
도 13a는 본 발명의 다른 실시예에 따른 알파 메트릭 블록의 구조를 보여주는 도면이다.
도 13a를 참조하면, 알파 메트릭 블록(500)은 알파 입력값을 입력받아 저장하는 메모리 버퍼부(510)와, 매 클럭마다 이전 메트릭의 수위를 판단하는 레벨 체크(Level check)블록(520)과, 상기 레벨 체크 블록(520)의 결과에 따라 델타 메트릭에 대해 비트 정규화를 수행하는 정규화블록(530)과, 상기 정규화 블록(530)에서 출력된 정규화된 델타 메트릭값을 저장하는 버퍼부 2(540)와, 상기 버퍼부 2(540)로부터 입력받은 정규화된 델타 메트릭 값과 상기 버퍼부(510)로부터 입력받은 알파 입력값을 가지고 알파 메트릭 값을 계산하는 알파 메트릭 계산 블록(520)으로 구성된다.
도 13b는 본 발명의 다른 실시예에 따른 상기 알파 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면이다.
도 13b를 참조하면, 상기 버퍼부 1(510)은 알파 입력값(a0~a7)을 입력받아 저장하는 플리플롭들로 구성된다. 정규화 블록(530)은 상기 레벨 체크 블록(520)에서 체크된 이전 상태 메트릭의 수위에 따라 델타 메트릭 블록으로부터 입력받은 델타 메트릭들(d0~d7)에 대하여 정규화를 수행하여 버퍼부(540)에 저장한다. 연산부(545)는 상기 버퍼단 2(540)에서 출력한 상기 정규화가 수행된 델타 메트릭들(d0~d7)과 상기 알파 입력값(a0~a7)들에 대해 배타적 논리합을 수행한 결과값들(ad0~ad15)을 최대값 연산 블록(560)으로 입력한다. 상기 최대값 연산 블록(560)은 상기 결과값들(ad0~ad15)들 중 2 개씩 입력받아 비교하여 큰 값을 선택 한다. 상기 선택값(a0~a7)은 다시 알파 메트릭 값을 계산하기 위한 메트릭값으로 입력된다. 일 예로, 입력 a1의 알파 메트릭을 계산할 경우, 상기 레벨 체크 블록(520)은 이전 메트릭값 a0의 수위를 판단한다. 상기 판단결과 a0의 수위가 미리 정해놓은 비트 폭을 넘을 경우, 상기 정규화 블록(530)은 d7에서 미리 정해놓은 값을 빼어 수위를 조절하여 출력한다. 그러면 상기 연산부(545)는 상기 a1과, 상기 비트 정규화가 수행된 d7을 입력받아 배타적 논리합을 수행하여 결과 값 ad1을 출력한다. 그러면, 최대값 연산 블록(560)은 a0 및 d0의 배타적 논리합을 수행한 결과 값인 ad0와 상기 ad1을 비교하여 큰 값(a0)을 출력한다.
도 14a는 본 발명의 다른 실시예에 따른 베타 메트릭 블록의 구성을 보여주는 도면이다.
도 14a를 참조하면, 베타 메트릭 블록(600)은 버퍼부 1(610)과, 레벨 체크(Level check)블록(630)과, 버퍼부 2(640)와, 베타 메트릭 계산 블록(650)으로 구성된다. 베타 메모리 버퍼(660)는 베타 메트릭 계산 특성상 현재의 베타 메트릭을 가지고 이전 베타 메트릭 계산하기 위해서 상기 베타 메트릭 계산 블록(650)에서 출력된 베타 메트릭값을 저장하여 상기 베타 메트릭 값을 역순으로 출력한다.
상기 베타 메트릭 블록(600)의 각 구성들(610~650)의 동작은 상기 알파 메트릭(500)블록의 구성들과 동일하므로 상세한 설명은 생략한다.
도 14b는 본 발명의 다른 실시예에 따른 상기 베타 메트릭 계산 블록의 블록 다이어그램을 보여주는 도면이다.
도 14b를 참조하면, 상기 버퍼부 1(610)는 베타 입력값(b0~b7)을 입력받아 저장하는 플리플롭들로 구성된다. 정규화 블록(630)은 상기 레벨 체크 블록(620)에서 체크된 이전 메트릭의 수위에 따라 델타 메트릭 블록으로부터 입력받은 델타 메트릭들(d0~d7)에 대하여 정규화를 수행하여 버퍼부(640)에 저장한다. 연산부(645)는 상기 버퍼부(640)의 플리플롭들 각각에서 출력한 상기 비트 정규화가 수행된 델타 메트릭들(d0~d7)과 상기 베타 입력값(b0~b7)들에 대해 배타적 논리합을 수행한다. 최대값 연산 블록(660)은 상기 연산부(645)의 결과값들 중 2 개씩 입력받아 비교하여 큰 값(b0~b7)을 선택한다. 상기 선택값(b0~b7)은 다시 베타 메트릭 값을 계산하기 위한 베타 메트릭값으로 버퍼부(610)에 입력된다.
일 예로, 입력 b0의 베타 메트릭을 계산할 경우, 상기 레벨 체크 블록(620)은 이전 베타 메트릭값 b1의 수위를 판단한다. 상기 판단결과 b1의 수위가 미리 정해놓은 비트 폭을 넘을 경우, 상기 정규화 블록(630)은 d0에서 미리 정해놓은 값을 빼거나 더하여 수위를 조절하여 출력한다. 이후, 상기 베타 메트릭 블록(600)은 b0와 상기 비트 정규화가 수행된 d0을 입력받아 배타적 논리합을 수행하여 결과 값으로써 bd0를 출력한다. 상기 최대값 연산 블록(670)은 bd0와 마찬가지로 b4와 d7에 대하여 배타적 논리합이 수행된 결과값 bd1과 bd0을 비교하여 큰 값(b0)을 출력한다.
상기 알파 및 베타 메트릭 블록(500, 600)에는 델타 메트릭 값의 정규화를 수행한 결과를 저장하는 버퍼들(540, 640) 즉, 파이프 라인이 적용되었다. 이로 인해서, 상기 알파 및 베타 블록(500, 600)의 딜레이는 연산부와 비교기와 먹스와 플리플롭의 합산 지연으로 일반적인 알파 및 베타 메트릭 블록(225, 227)의 딜레이에 서 정규화블록으로 인한 딜레이가 줄어들게 된다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 종래의 복호장치의 터보디코더에서 알파 및 베타 메트릭의 계산을 위한 정규화 구조를 변경하여, 터보 복호기의 속도를 증가시키는 효과가 있다. 본 발명에 따른 복호 장치는 복호 속도가 증가됨으로써 복호기의 성능이 향상될 수 있는 효과가 있다. 본 발명에 다른 복호 장치는 1XEVDV 와 UMTS등의 고속 이동통신시스템에서 사용자의 속도에 대한 요구를 보다 충족시키는 효과가 있다.

Claims (11)

  1. 고속 패킷 데이터 이동통신 시스템에서 복수의 산태들과 상기 각 상태들 간의 경로들로 이루어진 트레일리스 구조를 이용하는 터보 복호화 장치에 있어서,
    입력데이터 비트에 따라 각 상태로부터 다른 상태로의 경로들에 대한 천이 확률을 나타내는 델타 메트릭을 계산하는 복수의 델타 메트릭 블록들과,
    상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 순방향 상태 천이 확률을 나타내는 알파 메트릭을 계산하는 알파 메트릭 블록과,
    상기 델타 메트릭을 정규화하고, 상기 정규화된 델타 메트릭을 이용하여 상기 각 상태에 대한 역방향 상태 천이 확률을 나타내는 베타 메트릭을 계산하는 적어도 하나의 베타 메트릭 블록들과,
    상기 알파 메트릭과 상기 베타 메트릭을 입력받아 최종 상태의 심볼들에 대한 LLR값들을 계산하는 LLR블록으로 이루어진 구성 복호기를 포함하여 구성되는 것을 특징으로 하는 터보 복호화 장치.
  2. 제 1항에 있어서, 상기 알파 메트릭 블록은,
    초기 상태값 또는 이전 알파 메트릭 값들을 입력받아 알파 입력값으로서 저장하는 플리플롭들로 구성되어 있는 제 1 버퍼부와,
    매 클럭마다 상기 이전 알파 메트릭 값들의 수위를 판단하는 레벨 체크블록과,
    상기 델타 메트릭을 입력받고, 상기 판단된 수위에 따라 상기 델타 메트릭에 대해 정규화를 수행하는 정규화블록과,
    상기 정규화된 델타 메트릭값들을 저장하는 제 2 버퍼부와,
    상기 정규화된 델타 메트릭 값들과, 상기 제 1 버퍼부로부터 입력받은 알파 입력값을 가지고 현재 알파 메트릭 값을 계산하는 알파 메트릭 계산 블록으로 구성되는 것을 특징으로 하는 터보 복호화 장치.
  3. 제 2항에 있어서, 상기 정규화 블록은,
    상기 이전 알파 메트릭값들 중 어느 하나가 미리 정해 놓은 비트폭을 넘는 오버 또는 언더플로우가 발생하면, 상기 델타 메트릭값들에서 정해진 값을 빼주거나 더하여 정규화를 수행하는 것을 특징으로 하는 터보 복호화 장치.
  4. 제 3항에 있어서, 상기 알파 메트릭 계산 블록은,
    상기 정규화된 델타 메트릭값들과 상기 이전 알파 메트릭값들에 대해 배타적 논리합을 수행하는 연산부와,
    상기 연산부로부터 출력된 값들 중 2개씩 입력받아 큰 값을 선택하여 출력하는 최대값 연산부를 포함하여 구성되는 것을 특징으로 하는 터보 복호화 장치.
  5. 제 1항에 있어서, 상기 베타 메트릭 블록은,
    초기 상태값 또는 이전 베타 메트릭 값들을 입력받아 베타 입력값으로서 저장하는 플리플롭들로 구성되어 있는 제 1 버퍼부와,
    매 클럭마다 상기 이전 베타 메트릭 값들의 수위를 판단하는 레벨 체크블록과,
    상기 델타 메트릭을 입력받고, 상기 판단된 수위에 따라 상기 델타 메트릭에 대해 정규화를 수행하는 정규화블록과,
    상기 정규화된 델타 메트릭값들을 저장하는 제 2 버퍼부와,
    상기 정규화된 델타 메트릭 값들과, 상기 제 1 버퍼부로부터 입력받은 베타 입력값을 가지고 현재 베타 메트릭 값을 계산하는 베타 메트릭 계산 블록과,
    상기 베타 메트릭 계산 블록에서 출력된 베타 메트릭값을 저장하여 상기 베타 메트릭 값을 역순으로 출력하는 제 3 버퍼부를 더 포함하여 구성되는 것을 특징으로 하는 터보 복호화 장치.
  6. 제 5항에 있어서, 상기 정규화 블록은,
    상기 이전 알파 메트릭값들 중 어느 하나가 미리 정해 놓은 비트폭을 넘는 오버 또는 언더플로우가 발생하면, 상기 델타 메트릭값들에서 정해진 값을 빼주거나 더하여 정규화를 수행하는 것을 특징으로 하는 터보 복호화 장치.
  7. 제 5항에 있어서, 상기 베타 메트릭 계산 블록은,
    상기 정규화된 델타 메트릭값들과, 상기 이전 베타 메트릭값들에 대해 배타적 논리합을 수행하는 연산부와,
    상기 연산부로부터 출력된 값들 중 2개씩 입력받아 큰 값을 선택하여 출력하는 최대값 연산부를 포함하여 구성되는 것을 특징으로 하는 터보 복호화 장치.
  8. 고속 패킷 데이터 이동통신 시스템에서 복수의 산태들과 상기 각 상태들 간의 경로들로 이루어진 트레일리스 구조를 이용하는 터보 복호화 장치에 있어서,
    입력데이터 비트에 따라 각 상태로부터 다른 상태로의 경로들에 대한 천이 확률을 나타내는델타 메트릭을 계산하는 복수의 델타 메트릭 블록들과,
    상기 델타 메트릭을 입력받아 알파 메트릭을 계산하고, 상기 알파 메트릭 값들이 미리 정해진 비트폭을 벗어나게 되면 상기 알파 메트릭의 사인비트를 제외한 MSB를 반전하여 비트 정규화를 수행하는 알파 메트릭 블록과,
    상기 델타 메트릭을 입력받아 베타 메트릭을 계산하고, 상기 베타 메트릭 값들이 미리 정해진 비트폭을 벗어나게 되면 상기 베타 메트릭의 사인비트를 제외한 MSB를 반전하여 비트 정규화를 수행하는 베타 메트릭 블록과,
    상기 비트 정규화된 알파 및 베타 메트릭값들을 입력받아 최종 상태의 심볼들에 대한 LLR값들을 계산하기 위한 중간 연산 값들을 저장하는 2개의 버퍼부들을 포함하는 LLR블록을 포함하여 구성되는 구성복호기를 포함하여 구성되는 것을 특징으로 하는 터보 복호화 장치.
  9. 제 8항에 있어서, 상기 LLR 블록은,
    상기 알파 메트릭 블록으로부터 비트 정규화된 알파 메트릭 값들을 각각 입력받아 저장하는 플리플롭들과,
    상기 플리플롭들로부터 입력된 알파 메트릭 값들과, 상기 비트 정규화된 베타 메트릭 블록의 베타메트릭 값들 각각에 대하여 배타적 논리합을 수행하는 연산부와,
    상기 배타적 논리합이 수행된 결과값들 2개씩 입력받아 비교하여 큰 값을 선택하는 제 1 최대값 연산부와,
    상기 제 1최대값 연산부로부터 입력된 상기 선택값들을 저장하는 플리플롭들로 구성되는 제 1 버퍼부와
    상기 제 1버퍼부로부터 상기 선택값들을 2개씩 입력받아 비교하여 다시 큰 값을 선택하는 제 2최대값 연산부와,
    상기 제 2최대값 연산부로부터 입력된 상기 선택값들 중 2개씩 입력받아 비교하여 큰 값을 선택하여 저장하는 제 3 최대값 연산부와,
    상기 제 3 최대값 연산부로부터 출력된 선택값들을 저장하는 플리플롭들로 구성되는 제 2버퍼부와,
    상기 제 2버퍼부로부터 출력된 결과값들에 대하여 LLR 알고리즘을 수행하여 LLR값들을 계산하는 LLR 연산부와,
    상기 LLR값에 대해 오차 보정을 수행하는 오차보정부로 구성되는 것을 특징으로 하는 터보 복호화 장치.
  10. 제 9항에 있어서, 상기 알파 메트릭 블록은,
    초기 상태값 또는 이전 알파 메트릭 값들을 입력받아 알파 입력값으로서 저장하는 플리플롭들로 구성되어 있는 제 1 버퍼부와,
    상기 알파 메트릭 입력값과, 상기 델타 메트릭에 대하여 배타적 논리합을 수행하는 연산부와,
    상기 논리합을 수행한 결과들 중 2개씩 입력받아 큰 값을 선택하는 최대값 연산부와,
    상기 선택된 값들 각각에 대하여 비트 정규화를 수행하는 비트 정규화 블록으로 구성되는 것을 특징으로 하는 터보 복호화 장치.
  11. 제 9항에 있어서, 상기 베타 메트릭 블록은,
    초기 상태값 또는 이전 베타 메트릭 값들을 입력받아 베타 입력값으로서 저장하는 플리플롭들로 구성되어 있는 버퍼부와,
    상기 베타 메트릭 입력값과, 상기 델타 메트릭에 대하여 배타적 논리합을 수행하는 연산부와,
    상기 논리합을 수행한 결과들 중 2개씩 입력받아 큰 값을 선택하는 최대값 연산부와,
    상기 선택된 값들 각각에 대하여 비트 정규화를 수행하는 비트 정규화 블록으로 구성되는 것을 특징으로 하는 터보 복호화 장치.
KR1020040036741A 2004-05-24 2004-05-24 고속 터보 복호화 장치 KR100606023B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040036741A KR100606023B1 (ko) 2004-05-24 2004-05-24 고속 터보 복호화 장치
US11/135,632 US20050278611A1 (en) 2004-05-24 2005-05-24 High-speed turbo decoding apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040036741A KR100606023B1 (ko) 2004-05-24 2004-05-24 고속 터보 복호화 장치

Publications (2)

Publication Number Publication Date
KR20050111842A KR20050111842A (ko) 2005-11-29
KR100606023B1 true KR100606023B1 (ko) 2006-07-26

Family

ID=35461936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040036741A KR100606023B1 (ko) 2004-05-24 2004-05-24 고속 터보 복호화 장치

Country Status (2)

Country Link
US (1) US20050278611A1 (ko)
KR (1) KR100606023B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850744B1 (ko) 2005-12-08 2008-08-06 한국전자통신연구원 Llr 계산 장치 및 계산 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917834B2 (en) 2005-12-08 2011-03-29 Electronics And Telecommunications Research Institute Apparatus and method for computing LLR
KR101189770B1 (ko) 2008-12-19 2012-10-10 한국전자통신연구원 맵 디코딩 방법과 장치 및 이를 이용한 터보 맵 디코더
CN102158235B (zh) * 2011-04-26 2016-11-23 中兴通讯股份有限公司 turbo译码的方法及装置
US9191551B2 (en) * 2012-02-24 2015-11-17 Apple Inc. Pixel normalization
US9306591B2 (en) * 2014-05-08 2016-04-05 SiTune Corporation Calibration of high speed asynchronous convertor
US9264059B2 (en) 2014-05-08 2016-02-16 SiTune Corporation Calibration of time-interleaved analog-to-digital converter
CN104767537B (zh) * 2015-03-19 2018-01-30 深圳市力合微电子股份有限公司 一种用于OFDM电力线通信***的Turbo译码方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530059B1 (en) * 1998-06-01 2003-03-04 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Tail-biting turbo-code encoder and associated decoder
US6715120B1 (en) * 1999-04-30 2004-03-30 General Electric Company Turbo decoder with modified input for increased code word length and data rate
US6980605B2 (en) * 2000-01-31 2005-12-27 Alan Gatherer MAP decoding with parallelized sliding window processing
GB0004765D0 (en) * 2000-03-01 2000-04-19 Mitel Corp Soft-decision decoding of convolutionally encoded codeword
FI109162B (fi) * 2000-06-30 2002-05-31 Nokia Corp Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi
US6865711B2 (en) * 2000-12-15 2005-03-08 Conexant Systems, Inc. System of and method for decoding trellis codes
KR20030005768A (ko) * 2001-07-10 2003-01-23 삼성전자 주식회사 비터비 디코더의 상태 메트릭 연산 장치
US7055102B2 (en) * 2002-12-06 2006-05-30 Sandbridge Technologies, Inc. Turbo decoder using parallel processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850744B1 (ko) 2005-12-08 2008-08-06 한국전자통신연구원 Llr 계산 장치 및 계산 방법

Also Published As

Publication number Publication date
US20050278611A1 (en) 2005-12-15
KR20050111842A (ko) 2005-11-29

Similar Documents

Publication Publication Date Title
US7373582B2 (en) Apparatus and method for turbo decoding using a variable window size
JP3640924B2 (ja) 移動通信システムにおける構成復号装置及び方法
US6999531B2 (en) Soft-decision decoding of convolutionally encoded codeword
US7107509B2 (en) Higher radix Log MAP processor
US8719658B2 (en) Accessing memory during parallel turbo decoding
JP4907802B2 (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
JP4227481B2 (ja) 復号装置および復号方法
US20050278611A1 (en) High-speed turbo decoding apparatus and method thereof
CA2460315C (en) Turbo decoding apparatus and method
US20050052293A1 (en) Soft-output decoder with computation decision unit
CN1853350A (zh) 用于移动通信***的维特比/涡轮联合译码器
US6807239B2 (en) Soft-in soft-out decoder used for an iterative error correction decoder
KR20030036845A (ko) 트렐리스에 기초한 채널 부호화를 위한 복호기
US6614858B1 (en) Limiting range of extrinsic information for iterative decoding
US20070168820A1 (en) Linear approximation of the max* operation for log-map decoding
US6912257B1 (en) Apparatus and method for normalizing metric values in a component decoder in a mobile communication system
KR101134806B1 (ko) 부호 복호 방법
KR100511314B1 (ko) 다중접속 다중 캐리어 통신 시스템의 오류정정 장치
CN113258939A (zh) 一种基于MAP算法的卷积Turbo码译码器及译码方法
KR100612648B1 (ko) Ctc 복호화 장치 및 방법
WO2015039521A1 (zh) 解码方法和装置
US20110202819A1 (en) Configurable Error Correction Encoding and Decoding
KR100333336B1 (ko) 비터비 복호기의 역추적 방법
KR20010011736A (ko) 엠에이피 방식을 사용한 터보 복호기

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: 20090629

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee