KR100988908B1 - 터보 치환기 및 그것을 포함한 터보 복호기 - Google Patents

터보 치환기 및 그것을 포함한 터보 복호기 Download PDF

Info

Publication number
KR100988908B1
KR100988908B1 KR1020070126705A KR20070126705A KR100988908B1 KR 100988908 B1 KR100988908 B1 KR 100988908B1 KR 1020070126705 A KR1020070126705 A KR 1020070126705A KR 20070126705 A KR20070126705 A KR 20070126705A KR 100988908 B1 KR100988908 B1 KR 100988908B1
Authority
KR
South Korea
Prior art keywords
address
reverse
turbo
generator
sliding window
Prior art date
Application number
KR1020070126705A
Other languages
English (en)
Other versions
KR20090059706A (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 KR1020070126705A priority Critical patent/KR100988908B1/ko
Publication of KR20090059706A publication Critical patent/KR20090059706A/ko
Application granted granted Critical
Publication of KR100988908B1 publication Critical patent/KR100988908B1/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/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/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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/6502Reduction of hardware complexity or efficient processing
    • 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/6522Intended application, e.g. transmission or communication standard

Landscapes

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

Abstract

본 발명에 따른 수신된 입력 프레임을 슬라이딩 윈도우 단위로 복호 연산을 수행하는 터보 복호기의 터보 치환기는: 제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하는데 이용되는 제 1 중간값을 계산하는 순방향 어드레스 중간값 발생기; 상기 제 1 중간값을 전달받아 이전 로그 우도비율이 저장된 곳에 대응하는 역방향 어드레스를 발생하고, 입력된 현재 로그 우도비율을 저장하기 위한 순방향 어드레스를 발생하는 순방향/역방향 어드레스 발생기; 및 상기 역방향 어드레스에 응답하여 상기 이전 로그 우도비율을 저장하고, 상기 순방향 어드레스에 응답하여 상기 현재 로그 비율을 저장하는 치환기 램을 포함하되, 상기 순방향 어드레스를 발생하기 위하여 상기 순방향/역방향 어드레스 발생기가 동작하는 동안에 상기 순방향 어드레스 중간값 발생기는 제 2 슬라이딩 윈도우의 역방향 메트릭을 계산하기 위한 제 2 중간값을 계산하는 것을 특징으로 한다.
Figure R1020070126705
터보, 치환, 슬라이딩

Description

터보 치환기 및 그것을 포함한 터보 복호기{TURBO PERMUTATOR AND TURBO DECODER HAVING ITS}
본 발명은 터보 치환기 및 그것을 포함한 터보 복호기에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업에 대한 연구로부터 도출된 것이다[과제관리번호: 2006-S-017-02, 과제명: AT-DMB ASIC 기술개발].
일반적으로, 터보 부호를 사용한 오류정정 기술은 1993년 '끌로드 베로우(Claude Berrou)'가 처음으로 발표(C. Berrou, Near Shannon Limit Error-Correcting Coding and Decoding : Turbo Code, Proc. 1993 IEEE Int. Conf. OnComm., Geneva, Switzerland, pp1064-1070, 1993)하면서 오류정정 분야에 새로운 장을 열었다. 터보 부호의 오류 정정 능력은 반복 횟수에 따라 BER(Bit Error Ratio) 성능이 향상되고, 충분한 반복을 수행하였을 때 샤논(C. E.Shannon)이 발표한(C .E. Shannon, A mathematical theory of communication, Bell Sys. Tech. J., Vol27, pp.379-423, July 1948, pp623-656, Oct.1948) 채널 용량(channel capacity) 근처까지 오류정정이 가능한 것으로 알려졌다.
위에서 언급한 논문에서 베로우(C. Berrou)는 터보 부호를 복호하기 위한 방법으로 로그 엠에이피(LogMAP) 알고리즘을 선택하였다. 또한, 이 로그 엠에이피 알고 리즘을 간단하게 하여 구성한 터보 복호기의 구조는,"Implementation and Performance of a Serial MAP Decoder for use in an Iterative Turbo Decoder"(S. S. Pietrobon, IEEE International Symposium on Information Theory, Sep., pp471, 1995)라는 제목으로 논문에 게재되었다. 그리고, 이 알고리즘의 수정하여 새로운 로그 엠에이피 알고리즘은 "Implementation and performance of a turbo/MAP decoder"(S. S. Pietrobon, International Journal of Satellite Communications, Vol6, Iss1, pp.23-46, Feb., 1998)라는 제목으로 논문에 게재되었다.
한편, 터보 복호기의 기본 복호기로 MAP 복호기를 사용하지 않고 SOVA(Soft Output Viterbi Algorithm)을 사용할 수 있다. 터보 복호에 사용되는 개선된 SOVA는 "Improvements in SOVA-based decoding for turbo codes"(Lang Lin, IEEE Int. Conf. On Communications, Vol.3., pp1473-1478, June, 1997)라는 제목으로 논문에 게재되었다.
또한, 기존의 로그 엠에이피를 근사화한 알고리즘으로 최대로그 엠에이피(MaxLogMAP)이 있다. 계산량을 줄이기 위한 근사화된 알고리즘이 "Efficient Turbo Decoding Techniques, International Conference on Wireless Communications"((S. Crozier, K. Gracie and A. Hunt, Wireless 99, Calgary, Canada, July 1999)라는 제목으로 논문에 게재되었다.
DMB(Digital Multimedia Broadcasting)이나 WCDAM(Wireband Code division multiple access)와 같은 여러 통신 시스템에서 고속의 데이터를 전송하기 위한 오류 정정 부호로 터보 부호가 채택되고 있다. 특히 차세대 DMB 방송 시스템 규격에서는 고속 데이터 전송 및 고효율 데이터 전송을 위하여 터보 부호가 채택되었으며, 이에 따른 연구도 활발하게 진행되고 있다.
일반적으로 터보 부호기는 두개의 구성 부호기와 터보 인터리버로 구성된다. 제 1 구성 부호기는 정보 비트의 원래 입력 순서에 따라 부호화 과정을 수행하며, 제 2 구성 부호기는 터보 인터리버에 의해 순서가 재배열된 정보 비트의 순서에 따라 부호화 과정을 수행한다. 터보 인터리버는 정보 비트의 입력 순서를 재배열한다.
한편, 일반적으로 터보 복호기는 두개의 MAP(Maximum a posteriori) 복호기, MAP 복호기 사이에 비트열의 순서를 일치시키기 위한 인터리버 및 디인터리버로 구성된다. MAP 복호 알고리즘을 사용하여 재귀적 구조의 연산이 가능하고, 반복 복호 횟수의 증가에 따라 BER 성능을 향상시킴으로써 샤논 한계(Shannon limit)에 근접하는 좋은 성능을 보인다. 각각의 MAP 복호기는 정보 비트(Systematic data)와 패리티 비트(Parity bit), 부가 비트(Extrinsic bit)를 입력받아 각 비트에 대한 로그 우도비율(Log-Likelihood Ratio:LLR)를 발생시킨다. 이 로그 우도비율(LLR)을 구성하고 있는 부가정보는 다음 복호기 단의 사전 정보(Priori information)가 되어 복호의 신뢰도를 높이게 된다.
이러한, 터보 코드에서는 부호화한 비트들의 상관성(Correlation)이 증가할 수록 복호화 동작을 위한 많은 정보가 얻어진다. 반면에, 에러들에 대한 상관성 또한 증가하게 된다. 따라서, 에러들 사이의 상관성을 제거하기 위해 인터리버를 사용하고 있으나, 인터리버 크기에 따라 상관성을 어느 정도 제거해 줄 것인지는 어려운 문제이며 복잡성이나 지연의 문제도 수반하게 된다.
인터리버는 일반적인 채널 환경에서 연집 에러를 랜덤 에러로 전환하여 준다. 터보 부호에서는 상관 관계가 있는 정보를 상관 관계가 없는 정보로 효과적으로 전환하기 위해 정보 비트의 입력순서를 재배열하여 에러 패턴이 제거된다. 터보 부호기의 제 1 구성 부호기에서 낮은 가중치(Low-weight)를 출력하는 입력열의 특정한 패턴이 인터리버를 통해서도 그대로 출력되면, 제 2 구성 부호기에서도 낮은 가중치의 패리티 열이 출력됨에 따라 전체적으로 낮은 가중치의 부호어가 발생된다. 이에 따라 터보 부호의 성능이 열화되는 것이 방지된다.
이와 같이, 터보 부호의 성능을 향상시키기 위해서는 기존의 구조적 인터리빙 방식이 아닌 랜덤 인터리빙 방식이 사용된다. 그런데 이러한 랜덤 인터리빙 방식의 문제점은 각각의 전송율에 따라 모든 인터리빙 어드레스를 저장해야 한다는 점이다. 따라서, 최근에는 터보 코드의 충분한 성능을 얻고, 효율적인 구현을 위해 여러 형태의 터보 인터리버들이 연구되고 있다. 그것들에는 블록(Block) 인터리버, 헤리컬(Helical) 인터리버, 오드-이븐(Odd-Even) 인터리버, PN 인터리버, 랜덤 인터리버, S-랜덤 인터리버, 비균일(Nonuniform) 인터리버 및 GF(Galois Field) 인터리버 등이 있다.
최근에는 높은 전송률을 가지는 터보 복호기가 요구됨에 따라 인터리버 및 디인터리버가 고속으로 동작해야 할 필요성이 생겼고, 이에 따라 하드웨어 요구량이 많아지게 되었다.
본 발명은 상기의 문제를 해결하기 위해 도출된 것으로서, 차세대 DMB 방송 시스템에서 제안된 터보 부호의 내부 인터리버를 구현하는데 있어서 하드웨어적인 크기를 줄일 수 있는 터보 복호기를 구현하는데 그 목적이 있다.
또한, 본 발명은 하드웨어적인 크기를 줄이고자 슬라이딩 윈도우 방식의 터보 복호기에 적합한 터보 치환기를 구현하는데 그 목적이 있다.
본 발명에서는 터보 복호기의 하드웨어적인 크기를 줄이기 위하여 슬라이딩 윈도우 방식으로 복호 동작이 수행된다.
또한, 터보 치환기는 슬라이딩 윈도우 방식에 따른 복호기에 적합한 순방향 및 역방향 상태 메트릭 계산을 수행하도록 하나의 인터리벌 모듈로 인터리빙 및 디인터리빙이 수행된다.
본 발명에 따른 수신된 입력 프레임을 슬라이딩 윈도우 단위로 복호 연산을 수행하는 터보 복호기의 터보 치환기는: 제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하는데 이용되는 제 1 중간값을 계산하는 순방향 어드레스 중간값 발생기; 상기 제 1 중간값을 전달받아 이전 로그 우도비율이 저장된 곳에 대응하는 역방향 어드레스를 발생하고, 입력된 현재 로그 우도비율을 저장하기 위한 순방향 어드레스를 발생하는 순방향/역방향 어드레스 발생기; 및 상기 역방향 어드레스에 응답하여 상기 이전 로그 우도비율을 저장하고, 상기 순방향 어드레스에 응답하여 상 기 현재 로그 비율을 저장하는 치환기 램을 포함하되, 상기 순방향 어드레스를 발생하기 위하여 상기 순방향/역방향 어드레스 발생기가 동작하는 동안에 상기 순방향 어드레스 중간값 발생기는 제 2 슬라이딩 윈도우의 역방향 메트릭을 계산하기 위한 제 2 중간값을 계산하는 것을 특징으로 한다.
실시예에 있어서, 상기 순방향 어드레스 중간값 발생기는 상기 제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하기 위하여 상기 제 1 슬라이딩 윈도우의 시작 시점부터 시작하여 상기 제 1 슬라이딩 윈도우의 종료시점에서 오버랩 윈도우만큼 더 진행된 시점까지 동작하여 상기 제 1 중간값을 계산하는 것을 특징으로 한다.
실시예에 있어서, 상기 순방향/역방향 어드레스 발생기는, 이전 시점의 상기 이전 로그 우도비율을 이용하여 현재 시점부터 이전 시점까지 현재 역방향 상태 메트릭이 계산되고, 상기 이전 시점의 순방향 상태 메트릭을 이용하여 상기 제 1 슬라이딩 윈도우의 시작 시점부터 종료 시점까지의 현재 순방향 상태 메트릭이 계산되고, 상기 계산된 순방향 상태 메트릭을 이용하여 상기 현재 로그 우도비율이 계산된 후, 상기 계산된 현재 로그 우도비율을 저장하는 것을 특징으로 한다.
실시예에 있어서, 상기 순방향 어드레스 중간값 발생기는, 상기 순방향 상태 메트릭을 계산하기 위하여 상기 순방향/어드레스 발생기가 동작함과 동시에 상기 제 2 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하기 위하여 상기 제 2 슬라이딩 윈도우의 시작 시점부터 상기 오버 랩 윈도우만큼 진행된 시점에서부터 시작하여 상기 제 2 중간값을 계산하는 것을 특징으로 한다.
실시예에 있어서, 상기 순방향 어드레스 중간값 발생기는, 제 1 초기값을 생성하는 제 1 씨드 발생기; 및 상기 제 1 슬라이딩 윈도우에서 외부로부터 전달된 제 1 모드 신호와 제 1 인에이블 신호에 응답하여 활성화되고, 상기 제 1 초기값을 이용하여 역방향 상태 메트릭을 계산하기 위한 상기 역방향 어드레스를 생성하는데 이용되는 상기 제 1 중간값을 계산하는 제 1 순방향/역방향 누산기를 포함한다.
실시예에 있어서, 상기 순방향/역방향 어드레스 발생기는, 제 2 초기값을 생성하는 제 2 씨드 발생기; 상기 제 1 슬라이딩 윈도우에서 외부로부터 전달된 제 2 모드 신호와 제 2 인에이블 신호에 응답하여 활성화되고, 상기 제 2 초기값을 이용하여 상기 현재 로그 우도비율을 저장하기 위한 상기 순방향 어드레스를 생성하는데 이용되는 누산값을 계산하는 제 2 순방향/역방향 누산기; 및 상기 중간값을 입력받아 순열치환 매개 변수 P에 응답하여 상기 역방향 어드레스를 생성하고, 상기 누산값을 입력받아 순열치환 매개 변수 P에 응답하여 상기 순방향 어드레스 생성하는 어드레스 발생기를 포함한다.
실시예에 있어서, 상기 제 1 및 제 2 초기값은 수학식 (POj) mod N을 만족하며,
여기서 PO, N, j는 순열 치환의 매개 변수들로써 PO는 치환과정에 필요한 변수, N는 상기 입력 프레임의 비트쌍의 개수이며, j는 치환된 순서에 관한 변수이며, 원래의 입력 순서 i에 관하여, 아래의 수학식
Figure 112007088166741-pat00001
을 만족하며,
여기서 상기 순열치환 매개변수 P는, 아래의 수학식
Figure 112007088166741-pat00002
Figure 112007088166741-pat00003
Figure 112007088166741-pat00004
Figure 112007088166741-pat00005
을 만족하는 것을 특징으로 한다.
실시예에 있어서, 상기 입력 프레임의 비트쌍들은 비트쌍 내에서 아래의 수학식
Figure 112007088166741-pat00006
을 만족하고,
여기서 xj 는 정보 비트인 것을 특징으로 한다.
본 발명에 따른 슬라이딩 윈도우 방식으로 복호하는 터보 복호기는, 제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하는데 이용되는 제 1 중간값을 계산하는 순방향 어드레스 중간값 발생기; 상기 제 1 중간값을 전달받아 이전 로그 우도비율이 저장된 곳에 대응하는 역방향 어드레스를 발생하고, 입력된 현재 로그 우도비율을 저장하기 위한 순방향 어드레스를 발생하는 순방향/역방향 어드레스 발생 기; 및 상기 역방향 어드레스에 응답하여 상기 이전 로그 우도비율을 저장하고, 상기 순방향 어드레스에 응답하여 상기 현재 로그 비율을 저장하는 치환기 램을 포함하되, 상기 순방향 어드레스를 발생하기 위하여 상기 순방향/역방향 어드레스 발생기가 동작하는 동안에 상기 순방향 어드레스 중간값 발생기는 제 2 슬라이딩 윈도우의 역방향 메트릭을 계산하기 위한 제 2 중간값을 계산하는 터보 치환기를 포함한다.
상술한 바와 같이 본 발명은 순방향/역방향 상태 메트릭 계산 순서에 따라 다음 단계의 치환 어드레스 값을 미리 계산하도록 터보 치환기를 구현함으로써, 슬라이딩 윈도우를 사용하는 터보 복호기에 적합하도록 순방향 및 역방향 상태 메트릭 계산에 따른 치환 동작을 수행하게 된다.
또한, 본 발명에 따른 터보 치환기를 이용하면, 차세대 DMB 시스템에서 오류정정 부호로 사용되고 있는 터보 부호의 복호기를 구현하는데 있어서 ASIC 구현 시 한층 면적이 감소되고, 그 성능도 향상된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명에 따른 터보 복호기를 보여주는 실시예이다. 도 1을 참조하면, 터보 복호기는 입력 버퍼(10), MAP 복호기(20), 터보 치환기(30), 출력 버 퍼(40), 및 제어기(50)를 포함하고 있다. 본 발명의 MAP 복호기는 슬라이딩 방식으로 복호 동작을 수행하고, 터보 치환기(30)는 MAP 복호기가 슬라이딩 방식으로 복호 동작이 수행되도록 인터리빙 및 디인터리빙 동작을 지원한다. 슬라이딩 방식, 인터리빙 및 디인터리빙 동작에 대한 자세한 설명은 아래에서 하도록 하겠다. 도 1에 도시된 복호기는 실시예에 불과하다. 본 발명의 복호기는 슬라이딩 윈도우 방식으로 복호 동작이 수행되는 MAP 복호기 및 MAP 복호기의 복호 동작을 지원하기 위한 인터리빙 및 디인터리빙을 지원하는 터보 치환기를 포함한 다양한 구조로 구현될 수 있음은 당업자에게 자명한 것이다.
입력 버퍼(10)는 외부(예를 들어, 채널)로부터 수신된 데이터를 저장한다. 여기서 수신된 데이터는 터보 부호기(도시되지 않음)로부터 터보 부호화되고, 인터리빙된 데이터이다.
MAP 복호기(20)는 입력 버퍼(10)로부터 전달된 데이터를 복호하고, 이렇게 복호된 데이터를 출력 버퍼(40)로 전달한다. MAP 복호기(20)는 가지 메트릭(Branch metric) 계산기(21), 상태 메트릭(State metric) 계산기(22), 로그 우도비율(Log likelihood Ratio) 계산기(23)를 포함한다. MAP 복호기(20)는 가지 메트릭 계산 및 상태 메트릭 계산을 하고, 이를 바탕으로 로그 우도비율(Log Likelihood Ratio;LLR)를 계산한다. 여기서 상태 메트릭 계산은 순방향 상태 메트릭 계산과 역방향 상태 메트릭 계산으로 구분된다.
가지 메트릭 계산기(21)는 MAP 복호기(20)의 현재 시점에서 다음 시점으로 천이될 확률적 가중치인 가지 메트릭을 수신된 데이터 및 MAP 복호기에 계산된 패 리티(Parity) 정보 등을 이용하여 계산한다.
상태 메트릭 계산기(22)는 순반향 상태 메트릭 및 역방향 상태 메트릭을 계산한다. 여기서 순방향 상태 메트릭은 0번째(슬라이딩 윈도우의 시작) 시점부터 K번째(슬라이딩 윈도우의 종료) 시점까지 모든 상태에 대한 확률적 가중치로써 이전 순방향 메트릭과 현재의 가지 메트릭을 이용하여 계산되고, 역방향 상태 메트릭은 K+L번째(슬라이딩 윈도우의 종료 시점(K)으로부터 오버랩 윈도우 종료가 진행된) 시점부터 0번째(슬라이딩 윈도우의 시작) 시점까지 모든 상태에 대한 확률적 가중치로써 이전 역방향 상태 메트릭과 현재 시점의 가지 메트릭을 이용하여 계산된다.
앞에서 언급된 바와 같이, 본 발명의 MAP 복호기(20)는 슬라이딩 윈도우 방식으로 복호 동작을 수행한다. 여기서 슬라이딩 윈도우 방식은 입력 프레임을 소정의 윈도우 단위로 분할하고, 각 윈도우에 대한 역방향 상태 메트릭을 계산하는 것이다. 이러한 슬라이딩 윈도우 방식에 따르면, 윈도우 단위로 역방향 상태 메트릭이 저장되어, 최종 시점에서 역방향 상태 메트릭이 저장되는 것보다 메모리 사용량이 대폭 줄어들게 된다. 또한, 슬라이딩 윈도우 방식에 따르면, 가지 메트릭 계산, 상태 메트릭 계산 및 로그 우도비율 계산을 병렬로 행함으로써 연산의 고속화도 꾀할 수 있다.
MAP 복호기(20)에서 순방향 상태 메트릭 및 역방향 상태 메트릭이 모두 계산되면, 그 다음에 로그 우도 비율 계산기(23)는 로그 우도 비율(LLR)을 계산한다. 여기서 로그 우도비율(LLR)은 수신된 데이터에 대한 확률을 나타내는 것으로, 패러티 비트가 '1'이 될 확률과 '0'이 될 확률의 비율을 로그 스케일로 표현한 값이다. 즉, 로그 우도비율(LLR)에 대한 계산은 순방향 상태 메트릭 및 역방향 상태 메트릭에 대한 천이 확률을 근거로 수신된 데이터에 대한 확률을 구하는 것이다. 역방향 상태 메트릭은 수신 데이터의 역순으로 값이 연산 되기 때문에, 역방향 상태 메트릭이 모두 종료되기 전까지는 로그 우도비율(LLR)도 계산될 수 없다.
터보 치환기(30)는 MAP 복호기(20)에서 출력된 로그 우도비율(LLR)을 다음의 반복 복호에 사용하기 위하여 램에 저장하였다가 디인터리빙 순서 및 인터리빙 순서로 읽어낸다. 즉, 터보 치환기(30)에서는 MAP 복호기(20)에서 출력된 로그 우도비율(LLR)에 대한 디인터리빙과 인터리빙이 수행된다.
출력 버퍼(40)는 복호된 데이터를 저장한다. 제어기(50)는 각 모듈에 적절한 타이밍 제어신호를 제공한다. 특히, 제어기(50)는 터보 치환기(30) 내부의 모듈들(예를 들어, 순방향/역방향 어드레스 발생기)을 제어하기 위하여 모드 신호들(MODE1,MODE2), 인에이블 신호들(EN1,EN2), 및 제어 신호들(N,P0,j)을 터보 치환기(30)로 전달한다.
본 발명의 터보 치환기(30)는 내부 인터리빙 알고리즘에 의하여 동작된다. 아래에서는 본 발명에서 사용되는 터보 부호의 내부 인터리빙 알고리즘에 대하여 설명하도록 하겠다. 본 발명의 내부 인터리빙 알고리즘에서 채택한 터보 부호의 내부 순열 치환과정은 입력 비트 쌍 간(between couples) 치환(level 1) 과정과, 입력 비트 쌍 내(inside couples) 치환(level 2) 과정으로 이뤄진다. 터보 치환기(30)의 내부 인터리버(도시되지 않음)에 입력 가능한 비트 쌍은 N=384*l, l=1,2,3,4이다. 치환과정에 필요한 변수를 P0, P1, P2, P3라 하고, 입력 비트 쌍의 원래의 순서에 관한 변수를 i (i=0,1,..., N-1)라 하고, 치환된 순서에 관한 변수를 j (j=0,1,...,N-1)라 하면, 내부 인터리빙 알고리즘에서는 아래와 같은 수학식을 만족하도록 순열 치환이 수행된다.
level 1(입력 비트 쌍간 치환과정) :
Figure 112007088166741-pat00007
Figure 112007088166741-pat00008
Figure 112007088166741-pat00009
Figure 112007088166741-pat00010
Figure 112007088166741-pat00011
여기서 P는 순열치환 매개 변수이다. 입력 비트 쌍간의 치환과정에서는 원래의 입력 순서 i는 치환된 순서 j와 상술된 수학식들이 만족되도록 순환치환된다.
터보 치환기(30)는 제어기(50)로부터 전달된 J 및 N을 입력받아 'jmod4'를 계산한다.
level 2(입력 비트 쌍내 치환과정) :
Figure 112007088166741-pat00012
(입력 비트 쌍간 서로 치환)
만약, 입력 비트 쌍내 치환과정에서는 제어기(50)으로부터 전달된 j에 의하 여 jmod2=0일 때, 입력 비트 쌍내 정보비트들(x짝수 j , x홀수 j)이 서로 치환된다.
표 1은 허용된 입력 프레임 크기(N)에 따른 순열 치환에 관한 변수에 대한 실시예를 보여주는 표이다.
l N bytes P0 P1 P2 P3
1 384 96 13 94 192 286
2 768 192 19 12 332 376
3 1152 288 23 404 388 16
4 1536 384 31 404 384 20
이러한 터보 부호 순열 치환 매개 변수들은 제어기(50)로부터 터보 치환기(30)으로 전달된다. 입력 프레임의 크기(N)에 따라 순열 치환에 관한 변수들이 결정되고, 이렇게 결정된 변수들은 내부 인터리빙 알고리즘을 수행하는데 이용된다.
도 2는 본 발명에 따른 터보 치환기(30)에 대한 실시예를 보여주는 도면이다. 도 2을 참조하면, 터보 치환기(30)는 순방향 어드레스 중간값 발생기(31), 순방향/역방향 어드레스 발생기(32) 및 치환기 램(33)을 포함하고 있다. 본 발명의 터보 치환기(30)에서는 인터리빙 순서로 동작할 때는 순방향/역방향 어드레스 발생기(32)가 역방향 순서로 동작하고, 디인터리빙 순서로 동작할 때는 순방향/역방향 어드레스 발생기(32)가 순방향으로 동작함과 동시에 다음 역방향 메트릭 계산을 위하여 순방향 어드레스 중간값 발생기(31)가 순방향으로 동작한다. 이렇게 발생된 어드레스 값들은 치환기 램(33)의 어드레스 값으로 사용된다. 여기서 치환기 램(33)에서는 도 1에 도시된 터보 치환기(20)로부터 현재 로그 우도비율(LLR현재)가 입력되고, 상태 메트릭을 계산하는데 필요한 이전 로그 우도비율(LLR이전)이 출력된다.
상술된 동작들은 도 1에 도시된 제어기(50)로부터 제공되는 모드 신호들(MODE1,MODE2) 및 인에이블 신호들(EN1,EN2)에 따라 제어된다. 즉, 순방향 어드레스 중간값 발생기(31)는 제 1 모드 신호(MODE1)에 응답하여 순방향으로 동작하도록 결정되고, 제 1 인에이블 신호(EN1)에 응답하여 활성화된다. 또한, 순방향/역방향 어드레스 발생기(32)는 제 2 모드 신호(MODE2)에 응답하여 순방향 혹은 역방향으로 동작할 지가 결정되고, 제 2 인에이블 신호(EN2)에 응답하여 활성화된다. 터보 치환기(30)의 인터리빙 및 디인터리빙 동작에 대한 설명은 도 5에서 하도록 하겠다.
도 3은 도 2에 도시된 순방향 어드레스 중간값 발생기(31)에 대한 실시예를 보여주는 도면이다. 도 3을 참조하면, 순방향 어드레스 중간값 발생기(31)는 순방향/역방향 누산기(311) 및 씨드 발생기(312)를 포함하고 있다. 순방향/역방향 누산기(311)는 도 1에 도시된 제어기(50)로부터 전달된 모드 신호(MODE1) 및 인에이블 신호(EN1)에 응답하여 누산 값(IVACC)을 출력한다. 여기서 모드 신호(MODE1)는 순방향/역방향 누산기(311)를 순방향 누산기로 이용되도록 하는 제어신호이다. 누산 값(IVACC)은 다음 슬라이딩 윈도우의 역방향 메트릭을 계산하기 위해 사용되는 중간 값(Intermediate Value)이다. 씨드 발생기(322)는 N, P0, 및 j 값을 받아서 (P0*j) Mod N 값을 발생한다. 여기서 N, P0, 및 j 값은 제어기(50)로부터 전달된다.
도 4는 도 2에 도시된 순방향/역방향 어드레스 발생기(32)에 대한 실시예를 보여주는 도면이다. 도 4을 참조하면, 순방향/역방향 어드레스 발생기(32)는 순방향/역방향 누산기(321), 씨드(SEED) 발생기(322), 멀티 플렉서(323), 및 어드레스 발생기(324)를 포함한다.
순방향/역방향 누산기(321)는 제어기(50)로부터 전달된 제 2 모드 신호(MODE2) 및 제 2 인에이블 신호(EN2)에 응답하여 누산값(ACC)을 출력한다. 이때 출력된 누산값(ACC)은 씨드 발생기(322) 및 어드레스 발생기(324)로 전달된다. 씨드 발생기(322)는 N, P0, 및 j 값을 받아서 (P0j)ModN 값을 발생한다. 여기서 N, P0, 및 j 값은 제어기(50)로부터 전달된다. 멀티 플렉서(323)에서는 씨드 발생기(322)로부터 출력된 jmod4 값에 응답하여 순열치환 매개 변수(P)가 선택된다. 즉, 멀티 플렉서(323)에서는 제어기(50)로부터 전달된 터보 부호 순열 치환 매개 변수들(P1,P2,P3,0)을 입력받아 대응하는 어드레스를 발생하기 위한 순열치환 매개변수(P)가 결정된다.
어드레스 발생기(324)는 순방향/역방향 누산기(321)로부터 누산된값(ACC)을 입력받고 멀티 플렉서(323)으로부터 전달된 순열치환 매개변수(P)에 의거하여 대응하는 어드레스(ADDR)를 계산하여 출력한다. 또한, 어드레스 발생기(115)는 디인터리빙 동작시 순방향 어드레스 중간값 발생기(31)로부터 전달된 중간값(IVACC)을 전달받고 멀티 플렉서(323)으로부터 전달된 순열치환 매개변수(P)에 의거하여 대응하는 어드레스(ADDR)를 계산하여 출력한다.
도 5은 본 발명에 따른 터보 복호기에 대한 복호 동작을 설명하기 위한 도면이다. 도 5을 참조하면, 입력 프레임의 비트 정보쌍의 개수(N)는 전체적으로 1536개이고, 각각의 슬라이딩 윈도우(Sliding Window)는 256개의 비트쌍으로 구성되고, 및 오버 랩 윈도우(Over-lap Window)는 32개 비트쌍으로 구성된다. 여기서 오버 랩 윈도우를 설정한 이유는 복호 동작에서 발생할 수 있는 불연속적인 지점(예를 들어, 슬라이딩 구간이 종료되고 시작되는 시점들)에서의 에러를 줄이기 위함이다. 도 1 내지 도 5을 참조하면, 본 발명에 따른 터보 복호기의 복호 동작은 아래와 같이 설명된다.
최초 동작 시에 역방향 상태 메트릭을 계산하기 위하여, 순방향 어드레스 중간값 발생기(31)는 슬라이딩 윈도우(256비트쌍)에 오버랩 윈도우(32비트쌍)를 더한 길이(288비트쌍)만큼 순방향(FWD)으로 진행된다. 그 결과 발생된 중간 값(IVACC)이 순방향/역방향 어드레스 발생기(32)에 전달된다. 이 후, 순방향/역방향 어드레스 발생기(32)는 역방향(BSM)으로 역방향 상태 메트릭을 계산하기 위한 이전 로그 우도비율(LLR이전)이 저장된 역방향 어드레스를 계산한다. 제어기(50)는 계산된 역방향 어드레스에 응답하여 치환기 램(33)에 저장된 이전 로그 우도비율(LLR이전)을 읽어오도록 한다. MAP 복호기(32)의 역방향 메트릭 계산기(322)는 읽어온 로그 우도비율(LLR이전)을 이용하여 역방향으로 현재 시점(288번째 비트쌍)부터 제 1 슬라이딩 윈도우 시작 시점(1번째 비트쌍)까지의 역방향 메트릭 계산(BSM)을 계산한다.
제 1 슬라이딩 윈도우(SW1)에 대한 역방향 상태 메트릭 계산(BSM)이 종료되면, 순방향/역방향 어드레스 발생기(32)는 MAP 복호기(20)에서 제 1 슬라이딩 윈도우 시작 시점(1번째 비트쌍)부터 제 1 슬라이딩 윈도우 종료 시점(256번째 비트쌍)까지 순방향 상태 메트릭(FSM)이 계산되고, 계산된 순방향 상태 메트릭(FSM)을 이용하여 현재 로그 우도비율(LLR현재) 계산된 후, 계산된 현재 로그 우도비율(LLR현재)에 대응하는 어드레스를 발생한다. 이때 순방향 어드레스 중간값 발생기(31)도 제 2 슬라이딩 윈도우(SW1)의 역방향 상태 메트릭 계산(BSM)을 계산하는데 필요한 중간값(IVACC)을 계산하기 위하여 동시에 동작한다.
이와 같이 하면, 제 1 슬라이딩 윈도우(SW1)의 로그 우도비율(LLR) 계산이 종료되는 시점(256번째 비트쌍)에서 순방향 어드레스 중간값 발생기(31)는 제 2 슬라이딩 윈도우(SW2)의 역방향 상태 메트릭을 계산할 수 있는 위치(544번째 비트쌍)에 있게 되고, 그 결과로 중간값(IVACC)이 계산된다. 이렇게 계산된 중간 값(IVACC)은 순방향/역방향 어드레스 발생기(32)에 전달된다. 이로써, 곧바로 제 2 슬라이딩 윈도우(SW2)에 대한 역방향 상태 메트릭(BSM)이 계산될 수 있다.
상술된 방식으로 마지막 슬라이딩 윈도우(SW6)까지 어드레스 발생이 완료되면, 본 발명의 터보 복호기에 대한 한 번의 반복 복호가 완료된다. 한편, 마지막 슬라이딩 윈도우(SW6)의 경우에 있어서 순방향 어드레스 중간값 발생기(31)는 224 비트쌍에 만큼만 진행하여 중간 값(IVACC)을 계산한다.
상술한 바와 같이 본 발명의 터보 치환기(30)에서는 하드웨어로 구현함에 있어서 순방향/역방향 상태 메트릭 계산 순서에 따라 다음 단계의 치환 어드레스 값을 미리 계산할 수 있게 된다. 이는 슬라이딩 윈도우 기법을 사용하는 터보 복호기에 적합한 터보 치환기가 구현된 것이다. 이로써 슬라이딩 윈도우를 사용하는 터보 복호기에 적합하도록 순방향 및 역방향 상태 메트릭 계산에 따른 치환 동작을 수행할 수 있다. 그 결과, 본 발명의 터보 복호기에서는 종래의 입력 프레임 단위로 복호 동작을 수행하는 것보다 요구되는 메모리의 사용량이 크게 줄게 된다.
또한, 본 발명에 따른 터보 치환기를 이용하면, 차세대 DMB 시스템에서 오류정정 부호로 사용되고 있는 터보 부호의 복호기를 구현하는데 있어서 ASIC 구현하고할 때 면적이 감소되고, 그 성능도 향상된다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명에 따른 터보 복호기를 보여주는 실시예이다.
도 2는 본 발명에 따른 터보 치환기에 대한 실시예를 보여주는 도면이다.
도 3은 도 2에 도시된 순방향 어드레스 중간값 발생기에 대한 실시예를 보여주는 도면이다.
도 4는 도 2에 도시된 순방향/역방향 어드레스 발생기에 대한 실시예를 보여주는 도면이다.
도 5은 본 발명에 따른 터보 복호기에 대한 복호 동작을 설명하기 위한 도면이다.
*도면의 주요부분에 대한 부호의 설명*
1: 터보 복호기 10: 입력버퍼
20: MAP 복호기 21: 가지 메트릭 계산기
22: 상태 메트릭 계산기 23: 로그 우도비율 계산기
30: 치환기 31: 순방향 어드레스 중간값 발생기
32: 순방향/역방향 어드레스 발생기
33: 치환기 램
311,321: 순방향/역방향 누산기 312,322: 씨드 어드레스 발생기
323: 멀티 플렉서 324: 어드레스 발생기
40: 출력 버퍼 50: 제어기

Claims (9)

  1. 수신된 입력 프레임을 슬라이딩 윈도우 단위로 복호 연산을 수행하는 터보 복호기의 터보 치환기에 있어서:
    제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하는데 이용되는 제 1 중간값을 계산하는 순방향 어드레스 중간값 발생기;
    상기 제 1 중간값을 전달받아 이전 로그 우도비율이 저장된 곳에 대응하는 역방향 어드레스를 발생하고, 입력된 현재 로그 우도비율을 저장하기 위한 순방향 어드레스를 발생하는 순방향/역방향 어드레스 발생기; 및
    상기 역방향 어드레스에 응답하여 상기 이전 로그 우도비율을 저장하고, 상기 순방향 어드레스에 응답하여 상기 현재 로그 비율을 저장하는 치환기 램을 포함하되,
    상기 순방향 어드레스를 발생하기 위하여 상기 순방향/역방향 어드레스 발생기가 동작하는 동안에 상기 순방향 어드레스 중간값 발생기는 제 2 슬라이딩 윈도우의 역방향 메트릭을 계산하기 위한 제 2 중간값을 계산하고,
    상기 순방향 어드레스 중간값 발생기는,
    제 1 초기값을 생성하는 제 1 씨드 발생기; 및
    상기 제 1 슬라이딩 윈도우에서 외부로부터 전달된 제 1 모드 신호와 제 1 인에이블 신호에 응답하여 활성화되고, 상기 제 1 초기값을 이용하여 역방향 상태 메트릭을 계산하기 위한 상기 역방향 어드레스를 생성하는데 이용되는 상기 제 1 중간값을 계산하는 제 1 순방향/역방향 누산기를 포함하는 치환기.
  2. 제 1 항에 있어서,
    상기 순방향 어드레스 중간값 발생기는 상기 제 1 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하기 위하여 상기 제 1 슬라이딩 윈도우의 시작 시점부터 시작 하여 상기 제 1 슬라이딩 윈도우의 종료시점에서 오버랩 윈도우만큼 더 진행된 시점까지 동작하여 상기 제 1 중간값을 계산하는 것을 특징으로 하는 치환기.
  3. 제 1 항에 있어서,
    상기 순방향/역방향 어드레스 발생기는,
    이전 시점의 상기 이전 로그 우도비율을 이용하여 현재 시점부터 이전 시점까지 현재 역방향 상태 메트릭이 계산되고, 상기 이전 시점의 순방향 상태 메트릭을 이용하여 상기 제 1 슬라이딩 윈도우의 시작 시점부터 종료 시점까지의 현재 순방향 상태 메트릭이 계산되고, 상기 계산된 순방향 상태 메트릭을 이용하여 상기 현재 로그 우도비율이 계산된 후, 상기 계산된 현재 로그 우도비율을 저장하는 것을 특징으로 하는 치환기.
  4. 제 1 항에 있어서,
    상기 순방향 어드레스 중간값 발생기는,
    상기 순방향 상태 메트릭을 계산하기 위하여 상기 순방향/역방향 어드레스 발생기가 동작함과 동시에 상기 제 2 슬라이딩 윈도우의 역방향 상태 메트릭을 계산하기 위하여 상기 제 2 슬라이딩 윈도우의 시작 시점부터 오버 랩 윈도우만큼 진행된 시점에서부터 시작하여 상기 제 2 중간값을 계산하는 것을 특징으로 하는 치환기.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 순방향/역방향 어드레스 발생기는,
    제 2 초기값을 생성하는 제 2 씨드 발생기;
    상기 제 1 슬라이딩 윈도우에서 외부로부터 전달된 제 2 모드 신호와 제 2 인에이블 신호에 응답하여 활성화되고, 상기 제 2 초기값을 이용하여 상기 현재 로그 우도비율을 저장하기 위한 상기 순방향 어드레스를 생성하는데 이용되는 누산값을 계산하는 제 2 순방향/역방향 누산기; 및
    상기 중간값을 입력받아 순열치환 매개 변수 P에 응답하여 상기 역방향 어드레스를 생성하고, 상기 누산값을 입력받아 순열치환 매개 변수 P에 응답하여 상기 순방향 어드레스 생성하는 어드레스 발생기를 포함하는 치환기.
  7. 제 6 항에 있어서,
    상기 제 1 및 제 2 초기값은 수학식 (POj) mod N을 만족하며,
    여기서 PO, N, j는 순열 치환의 매개 변수들로써 P0는 치환과정에 필요한 변수, N는 상기 입력 프레임의 비트쌍의 개수이며, j는 치환된 순서에 관한 변수이며, 원래의 입력 순서 i에 관하여, 아래의 수학식
    Figure 112007088166741-pat00013
    을 만족하며,
    여기서 상기 순열치환 매개변수 P는, 아래의 수학식
    Figure 112007088166741-pat00014
    Figure 112007088166741-pat00015
    Figure 112007088166741-pat00016
    Figure 112007088166741-pat00017
    을 만족하는 것을 특징으로 하는 치환기.
  8. 제 7 항에 있어서,
    상기 입력 프레임의 비트쌍들은 비트쌍 내에서 아래의 수학식
    Figure 112007088166741-pat00018
    을 만족하고,
    여기서 xj 는 정보 비트인 것을 특징으로 하는 치환기.
  9. 제 1 항에 기재된 터보 치환기를 포함한 터보 복호기.
KR1020070126705A 2007-12-07 2007-12-07 터보 치환기 및 그것을 포함한 터보 복호기 KR100988908B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070126705A KR100988908B1 (ko) 2007-12-07 2007-12-07 터보 치환기 및 그것을 포함한 터보 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070126705A KR100988908B1 (ko) 2007-12-07 2007-12-07 터보 치환기 및 그것을 포함한 터보 복호기

Publications (2)

Publication Number Publication Date
KR20090059706A KR20090059706A (ko) 2009-06-11
KR100988908B1 true KR100988908B1 (ko) 2010-10-20

Family

ID=40989775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070126705A KR100988908B1 (ko) 2007-12-07 2007-12-07 터보 치환기 및 그것을 포함한 터보 복호기

Country Status (1)

Country Link
KR (1) KR100988908B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062079A (ko) * 2002-01-16 2003-07-23 한국전자통신연구원 터보 치환기 및 이를 이용한 터보 복호기
KR20040061283A (ko) * 2002-12-30 2004-07-07 엘지전자 주식회사 터보 디코딩의 인터리버 주소 발생 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062079A (ko) * 2002-01-16 2003-07-23 한국전자통신연구원 터보 치환기 및 이를 이용한 터보 복호기
KR20040061283A (ko) * 2002-12-30 2004-07-07 엘지전자 주식회사 터보 디코딩의 인터리버 주소 발생 방법

Also Published As

Publication number Publication date
KR20090059706A (ko) 2009-06-11

Similar Documents

Publication Publication Date Title
KR100955305B1 (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
KR100761306B1 (ko) 디코딩 방법 및 장치
JP3857320B2 (ja) 並列連結のテイルバイティング・コンボルーション・コード及びその復号器
US6014411A (en) Repetitive turbo coding communication method
US6044116A (en) Error-floor mitigated and repetitive turbo coding communication system
JP4955150B2 (ja) 高並列map復号器
US8239711B2 (en) QPP interleaver/de-interleaver for turbo codes
EP1783916B1 (en) Apparatus and method for stopping iterative decoding in a mobile communication system
US20020174401A1 (en) Area efficient parallel turbo decoding
US7058874B2 (en) Interleaver address generator and method of generating an interleaver address
EP2621091B1 (en) Turbo code parallel interleaving with quadratic permutation polynomial (qpp) functions
US20040139378A1 (en) Method and apparatus for error control coding in communication systems using an outer interleaver
US6028897A (en) Error-floor mitigating turbo code communication method
US7584389B2 (en) Turbo decoding apparatus and method
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
KR100926907B1 (ko) 에이알피 인터리브를 가지는 터보 코드의 경합 방지 메모리매핑 기법을 위한 주소 생성
US9374109B2 (en) QPP interleaver/DE-interleaver for turbo codes
KR100988908B1 (ko) 터보 치환기 및 그것을 포함한 터보 복호기
JP2003152556A (ja) 誤り訂正符号復号装置
KR100355452B1 (ko) 엠에이피 방식을 사용한 터보 복호기
WO2002089331A2 (en) Area efficient parallel turbo decoding
Soleymani et al. Turbo Decoding Principles
JP2006280010A (ja) 復号装置及び復号方法
EP1393453A2 (en) Area efficient parallel turbo decoding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
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: 20130923

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140926

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160927

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee