KR20050083565A - 데이터 수신 방법 및 장치 - Google Patents

데이터 수신 방법 및 장치 Download PDF

Info

Publication number
KR20050083565A
KR20050083565A KR1020047015030A KR20047015030A KR20050083565A KR 20050083565 A KR20050083565 A KR 20050083565A KR 1020047015030 A KR1020047015030 A KR 1020047015030A KR 20047015030 A KR20047015030 A KR 20047015030A KR 20050083565 A KR20050083565 A KR 20050083565A
Authority
KR
South Korea
Prior art keywords
data
puncture rate
decoding
length
bits
Prior art date
Application number
KR1020047015030A
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 소니 에릭슨 모빌 커뮤니케이션즈 재팬, 아이엔씨.
Publication of KR20050083565A publication Critical patent/KR20050083565A/ko

Links

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
    • 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/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/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

수신 데이터의 펑쳐율을 검출하는 펑쳐율 검출 수단과, 검출된 펑쳐율로 씨닝된 비트를 보간하는 보간 수단과, 인터리브된 데이터를 원래의 배열로 하는 디인터리브 수단과, 보간 수단 및 디인터리브 수단에서 처리가 실시된 데이터에 대하여, 펑쳐율 검출 수단에서 검출된 펑쳐율에 따라 학습 구간의 길이를 가변 설정시키면서, 슬라이드 창의 데이터와, 그 슬라이드 창의 데이터에 계속되는 학습 구간의 데이터를 입력시켜, 재귀적 연산으로 슬라이드 창의 데이터를 복호하는 터보 복호 수단을 포함함으로써, 학습 구간에 포함되는 유효한 수신 신호를, 펑쳐율이 변화하여도 거의 일정하게 유지하도록 하였다.

Description

데이터 수신 방법 및 장치{DATA RECEIVING METHOD AND APPARATUS}
본 발명은 컨볼루션 부호와 인터리브 처리가 조합된 터보 부호로 부호화되어 송신된 데이터를 수신하는 데이터 수신 방법 및 장치에 관한 것이다.
종래, 터보 부호라 불리우는 부호화를 행하여 데이터를 효율적으로 전송하는 것이 행해져 왔다. 도 1은 송신측에서 터보 부호화를 행하는 터보 인코더의 구성의 일례를 나타낸 도면이다. 입력 데이터는 조직 비트로서 병렬/직렬 변환부(11)에 공급됨과 함께, 제1 컨볼루션 부호화부(20)에 공급되고, 또한 인터리브(12)를 통해 제2 컨볼루션 부호화부(30)에 공급된다. 제1 컨볼루션 부호화부(20)는 가산기(21, 25)와 D 플립플롭(22, 23, 24)을 사용한 컨볼루션 처리를 행하도록 구성되어, 패리티 비트 a를 생성하고, 그 생성된 패리티 비트 a를 병렬/직렬 변환부(11)에 공급한다. 제2 컨볼루션 부호화부(30)에서는 가산기(31, 35)와 D 플립플롭(32, 33, 34)을 사용한 컨볼루션 처리를 행하도록 구성되어, 패리티 비트 b를 생성하고, 그 생성된 패리티 비트 b를 병렬/직렬 변환부(11)에 공급한다.
병렬/직렬 변환부(11)는, 공급되는 조직 비트와 패리티 비트 a, b를 소정의 순서로 직렬 데이터로 변환하여, 터보 부호화된 데이터로서 출력한다.
이와 같이 터보 부호화되어 전송된 신호를 수신하는 측에서는, 예를 들면 도 2에 도시하는 터보 디코더를 사용하여 복호가 행해진다.
도 2에 도시한 터보 디코더의 구성에 대하여 설명하면, 수신 신호는 직렬/병렬 변환부(41)에 공급되어, 조직 비트와 패리티 비트 a, b로 분리된다. 이 직렬/병렬 변환부(41)에서의 분리는 타이밍 제어 회로(49)로부터 지시된 타이밍에서 실행된다.
소프트 출력 복호 알고리즘부(42)는 분리된 조직 비트와 패리티 비트 a와 디인터리브용 메모리(46)의 출력 신호를 사용하여, 맵 알고리즘이라 불리우는 소프트 출력 복호 알고리즘으로 복호 처리를 행한다. 소프트 출력 복호 알고리즘부(42)에서 복호된 데이터는 인터리브용 메모리(43)에 공급되어 인터리브 처리가 실시되고, 그 인터리브된 데이터와 직렬/병렬 변환부(41)에서 분리된 패리티 비트 b가 소프트 출력 복호 알고리즘부(44)에 공급된다. 소프트 출력 복호 알고리즘부(44)에서도 맵 알고리즘으로 복호 처리를 행하고, 그 복호 출력을 디인터리브용 메모리(46)를 통해 소프트 출력 복호 알고리즘부(42)에 공급한다. 따라서, 소프트 출력 복호 알고리즘부(42)에서의 복호 처리와 소프트 출력 복호 알고리즘부(44)에서의 복호 처리는 각각의 출력이 서로 공급되어 반복 복호된다.
그리고, 인터리브용 메모리(43)에서 인터리브된 데이터와 소프트 출력 복호 알고리즘부(44)의 복호 출력을 가산기(45)에 공급하여 가산하고, 그 가산 출력을 하드 판정부(47)에 공급한다. 하드 판정부(47)는 최종적인 복호 결과를 얻는 회로이다. 이 하드 판정부(47)에서의 판정(복호) 결과는 디인터리브용 메모리(48)에 공급되어 디인터리브 처리가 되고, 그 디인터리브된 데이터를 터보 부호의 복호 결과로서 출력시킨다.
각 소프트 출력 복호 알고리즘부(42, 44)와 인터리브용 메모리(43)와 디인터리브용 메모리(46, 48)는 타이밍 제어 회로(49)에 의해 처리 타이밍이 주어진다.
이 도 2에 도시하는 터보 디코더의 복호 처리 상태에 대하여 설명하면, 터보 부호는 블록 부호이기 때문에, 부호화 처리 및 복호화 처리는 정해진 비트 수 N으로 이루어지는 블록 단위로 행해진다. 이 블록 단위를 여기서는 코드 블록이라고 부른다. 인터리브용의 메모리 및 디인터리브용의 메모리의 소요 워드 수는 각각 1 코드 블록의 비트 수와 같다.
2개의 소프트 출력 복호 알고리즘부(42, 44)에서의 반복 복호는 예를 들면, 수회 내지 수십 회전 정도 반복된다. 반복 복호를 개시시키기 전에, 소프트 출력 복호 알고리즘부(42)는 초기치(0)로 초기화를 해 둔다. 여기서, 반복 복호 처리에서의 1회의 처리의 개요에 대하여 설명하면, 우선, 1회의 처리의 전반에서는, 소프트 출력 복호 알고리즘부(42)가 동작한다. 소프트 출력 복호 알고리즘부(42)에는 조직 비트, 패리티 비트 a 및 디인터리브용 메모리(46)의 출력이 공급된다. 소프트 출력 복호 알고리즘부(42)의 출력은 인터리브용 메모리(43)에 축적된다. 또, 반복 처리의 1회째의 시점에서는 디인터리브용 메모리(46)에도 정보가 축적되어 있지 않기 때문에, 초기치(0)가 이용된다.
1회째의 처리의 후반에서는 소프트 출력 복호 알고리즘부(44)가 동작한다. 소프트 출력 복호 알고리즘부(44)에는 패리티 비트 b 및 인터리브용 메모리(43)의 출력이 공급된다. 또, 소프트 출력 복호 알고리즘부(44)에서 복호되는 맵 알고리즘 b에 대응한 조직 비트에 대해서는, 여기서는 송신되지 않는 구성으로 하고 있어, 0을 입력으로 한다. 이 소프트 출력 복호 알고리즘부(44)의 복호 출력은 디인터리브용 메모리(46)에 축적된다. 여기까지가 반복 복호 처리에서의 1회의 복호 처리의 개요이다. 인터리브용 메모리(43) 및 디인터리브용 메모리(46)로부터 각 소프트 출력 복호 알고리즘부(44, 42)에 보내지는 정보는 사전 우도 정보라고 불린다.
이 1회의 처리를, 미리 정해진 회수만큼 반복하여 행한 후, 가산기(45)에서 가산된 출력의 하드 판정 결과(사인 비트)를 하드 판정부(47)에서 얻고, 그 결과를 디인터리브용 메모리(48)에 공급하여, 비트 순서를 복원한 것을 최종적인 복호 결과로 한다.
다음에, 소프트 출력 복호 알고리즘부(42, 44)에서의 복호 처리에 사용되는 맵 알고리즘의 동작에 대하여, 도 3을 참조하여 설명한다. 이 맵 알고리즘은 L.R.Bahl, J.Cocke, F.Jelinek, J.Raviv에 의한 논문 "Optimal Decoding of Liner Codes for Minimizing Symbol Error Rate", IEEE Transaction on Information Theory, Vo1.IT-20, March 1974, pp.284∼7에 설명되어 있다.
맵 알고리즘에서는, 코드 블록의 각 비트 위치에 대하여 소프트 판정 출력을 구한다. 이 때, 트렐리스 상에서 스테이트 메트릭을 구하기 위한, 순방향 및 역방향의 재귀 연산을 필요로 한다. 이들 처리는, 도 3에 도시한 바와 같이, 1 블록 단위로 선두로부터 종단까지 연속하여 실행시킬 필요가 있다. 즉, 재귀적 연산에 의한 각 스테이트마다의 스테이트 메트릭을 N 스테이지의 코드 블록 전체에 걸쳐 메모리에 저장하고 나서 처리할 필요가 있다. 이러한 처리를 행하기 위해서는 대량의 데이터가 저장될 수 있는 메모리를 필요로 한다. 예를 들면, W-CDMA 방식이라 불리우는 무선 전화 시스템에 적용되고 있는 처리(코드 블록 길이 N∼5114, 스테이트 수 M=8)의 경우에는, 필요한 메모리 용량은 약 40k 워드로도 된다.
이 때문에, 맵 알고리즘의 소요 메모리량을 삭감하는 기술로서, 문헌 1 및 2에 기재된, 슬라이드 창을 이용한 처리가 제안되어 있다.
[문헌 1]
S.Pietrobon, S.Barbulescu의 논문 "A Simplification of the Modified Bahl et al. Decoding Algorithm for systematic Convolutional Codes", int.Symp. On Inform. Theory and its Applications, Sydney, Australia, pp.1073-7, Nov. 1994, revised Jan. 4, 1996
[문헌 2]
S.Pietrobon의 논문 "Efficient Implementation of Continuous MAP Decoders and a Synchronisation Technique for Turbo Decoders", int.Symp. On Inform. Theory and its Applications, Victoria, B.C., Canada, pp.586-9, September 1996
상술한 슬라이드 창을 이용한 복호 처리의 상세에 대해서는, 발명의 실시예 중에서 설명하겠지만, 간단히 설명하면, 재귀적 연산 처리를 창 단위로 실행하는 것이다. 창의 길이를 L, 임의의 창의 시각을 t라고 하면, 역방향의 재귀적 연산은 시각 t+2L로부터 개시하고, 역방향의 재귀적 연산에 의한 스테이트 메트릭은 시각 t+L로부터 시간 t까지의 구간이 메모리에 저장된다.
시각 t+2L로부터 시각 t+L까지의 구간은, 창 단위로 분할된 재귀적 연산의 신뢰도를 충분히 높이기 위한 처리에서, 여기서는 이 구간을 학습 구간이라고 부른다. 학습 구간의 길이를 P라고 하면, 상기 비 특허 문헌에서는 P=L로 되는 것이 기재되어 있지만, 반드시 그럴 필요는 없다. 학습 구간의 길이 P를 짧게 함으로써, 연산량의 증가를 억제할 수 있지만, 그 한쪽에 성능의 열화가 발생하기 때문에, P의 값은 주의깊게 정할 필요가 있어, 어느 정도의 여유를 갖게 할 필요가 있었다. 순방향의 재귀적 연산 및 출력 우도 계산은 시각 t로부터 시각 t+L의 구간에서 실행된다.
다음의 창은 창의 선두 위치를 L만큼 늘린 t+L로 하여, 마찬가지의 처리를 행한다. 이 후, 창의 선두 위치를 L씩 늘리면서(슬라이드시키면서), 트렐리스의 종단에 도달할 때까지 처리를 계속한다. 또, 트렐리스의 종단으로부터 행하는 재귀적 연산에서는 학습 구간은 설정하지 않는다.
이러한 슬라이드 창을 이용한 연산을 행함으로써, 소요 메모리량은 N*M 워드로부터 L*M 워드까지 경감된다. 단, 연산량은, 역방향의 재귀적 연산 부분이 2배로 증가한다.
이와 같이, 학습 구간의 길이 P는, 허용할 수 있는 연산량의 증가분과 성능의 열화를 고려하여 정해진다. 연산량을 적게 하기 위해서는 되도록이면 학습 구간의 길이를 작게 할 필요가 있었지만, 전송되는 터보 부호의 상태에 의해서는 반드시 적절한 학습 구간의 길이가 설정되어 있다고는 말할 수 없는 상황이었다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 터보 부호를 수신하여 슬라이드 창을 이용한 연산으로 복호하는 경우에, 학습 구간의 길이가 최적으로 설정될 수 있도록 하는 것을 목적으로 한다.
도 1은 터보 인코더의 구성예를 나타내는 블록도.
도 2는 터보 디코더의 구성예를 나타내는 블록도.
도 3은 종래의 맵 알고리즘의 처리 수순을 모식적으로 도시하는 설명도.
도 4는 본 발명의 일 실시예에 의한 수신 장치의 구성예를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 의한 맵 알고리즘의 처리예를 나타내는 흐름도.
도 6은 본 발명의 일 실시예에 의한 슬라이드 창을 이용한 맵 알고리즘의 처리 수순을 도시하는 설명도.
본 발명의 데이터 수신 방법은, 소정의 비트 수로 이루어지는 블록 단위로, 컨볼루션 부호에 의한 부호화와 인터리브가 조합되고 부호화됨과 함께, 소정의 펑쳐율에 의해 필요에 따라 씨닝되어 송신된 터보 부호를 수신하여 복호하는 데이터 수신 방법으로서, 수신 데이터의 펑쳐율을 판단하는 처리와, 펑쳐율로 씨닝된 비트를 보간하는 보간 처리와, 인터리브된 데이터를 원래의 배열로 하는 디인터리브 처리와, 보간 처리 및 디인터리브 처리가 실시된 데이터에 대하여, 펑쳐율 판단 처리에서 판단된 펑쳐율에 따라 학습 구간의 길이를 가변 설정시키면서, 슬라이드 창의 데이터와, 그 슬라이드 창의 데이터에 계속되는 상기 학습 구간의 데이터를 입력시켜, 재귀적 연산으로 슬라이드 창의 데이터를 복호하는 터보 복호 처리를 행하도록 한 것이다.
또한, 본 발명의 데이터 수신 장치는, 소정의 비트 수로 이루어지는 블록 단위로 부호화된 터보 부호를 수신하여 복호하는 데이터 수신 장치로서, 수신 데이터의 펑쳐율을 검출하는 펑쳐율 판단 수단과, 판단된 펑쳐율로 씨닝된 비트를 보간하는 보간 수단과, 인터리브된 데이터를 원래의 배열로 하는 디인터리브 수단과, 보간 수단 및 디인터리브 수단에서 처리가 실시된 데이터에 대하여, 펑쳐율 판단 수단에서 검출된 펑쳐율에 따라 학습 구간의 길이를 가변 설정시키면서, 슬라이드 창의 데이터와, 그 슬라이드 창의 데이터에 계속되는 학습 구간의 데이터를 입력시켜, 재귀적 연산으로 슬라이드 창의 데이터를 복호하는 터보 복호 수단을 구비한 것이다.
본 발명에 따르면, 수신 데이터의 펑쳐율에 따라 학습 구간의 길이를 가변 설정하도록 하였기 때문에, 학습 구간에 포함되는 유효한 수신 신호를, 펑쳐율이 변화하여도 거의 일정하게 보존하는 것이 가능하게 된다. 따라서, 학습 구간으로서, 항상 최저한의 길이로 하는 것이 가능하게 되어, 슬라이드 창을 사용한 맵 알고리즘의 연산 시에, 과잉 연산을 행할 필요가 없게 되어, 연산 속도를 고속화할 수 있고, 또한 쓸데없는 전력 소비를 억제할 수 있다고 하는 효과를 갖는다.
특히, 펑쳐율에 따라 가변 설정되는 학습 구간의 길이로서, 펑쳐율로 씨닝된 비트 수에 상당하는 길이만큼 변화시킴으로써, 학습 구간에 포함되는 유효한 수신 데이터의 비트 수를, 거의 완전히 일정하게 할 수 있게 되어, 효율이 좋은 복호 처리가 가능하게 된다.
이하, 도 4∼도 6을 참조하여 본 발명의 일 실시예에 대하여 설명한다.
본 예에서는, 터보 부호로서 부호화된 데이터를 수신하는 수신 장치에 적용한 것이다. 도 4는 수신 장치의 전체 구성을 나타낸 도면이다. 안테나(1)에서 수신한 신호는 저잡음 증폭기(2)에 공급되어 증폭된다. 저잡음 증폭기(2)의 출력 신호는 수신 RF부(3)에 공급되어 주파수 변환되고, 복조부(4)에 공급된다. 복조부(4)에서 복조된 수신 신호는 디인터리브 디펑쳐부(5)에 공급되어, 송신 시에 실시된 인터리브 처리와 반대인 디인터리브 처리를 행하여 원래의 데이터 배치로 함과 함께, 송신 시에 씨닝된 데이터 위치에 O 비트를 삽입하여 원래의 데이터 길이로 복원하는 디펑쳐 처리가 실시된다.
그리고, 디펑쳐 처리에서 원래의 데이터 길이로 된 데이터는 터보 디코더(6)에 공급되어 복호되어, 수신 데이터를 얻는다. 이 경우, 본 예의 터보 디코더에서는, 종래 기술 란에서 이미 설명한 슬라이드 창을 사용한 복호 처리를 행하도록 하고 있다.
디인터리브 디펑쳐부(5), 터보 디코더(6) 등에서의 수신 처리에 대해서는 중앙 제어 유닛(CPU)(7)의 제어로 실행된다.
또, 여기서는 펑쳐율에 대해서는, 그 때의 데이터 등에 의해 가변 설정되도록 하고 있고, 그 펑쳐율의 데이터는, 전송되는 데이터에 제어 데이터 등으로 하여 부가되어 있다. 이 펑쳐율의 데이터 등의 수신 제어에 필요한 데이터는 복조부(4)로부터 중앙 제어 유닛(7)에 공급되도록 하고 있고, 중앙 제어 유닛(7)에서 그 데이터로부터 펑쳐율을 판단할 수 있다.
그리고, 본 예의 경우에는, 중앙 제어 유닛(7)에서 판단된 펑쳐율에 따라, 디인터리브 디펑쳐부(5)에서 0 비트를 삽입하는 위치나 길이를 가변 설정시켜, 어떤 펑쳐율의 데이터를 수신한 경우에도 대처할 수 있도록 하고 있다. 또한, 중앙 제어 유닛(7)은, 판단된 펑쳐율에 따라, 터보 디코더(6)에서 슬라이드 창을 사용한 복호 처리를 행할 때에, 학습 구간의 길이를 가변 설정하는 제어를 행하도록 하고 있다.
이 펑쳐율에 따라 가변 설정되는 학습 구간의 길이는, 예를 들면 중앙 제어 유닛(7)에서의 펑쳐율의 판단에 의해, 그 펑쳐율로 씨닝된 비트 수에 상당하는 길이만큼 변화시켜, 학습 구간 중에 포함되는 실제 데이터(즉, 디펑쳐 처리에서 삽입된 O 비트를 제외한 데이터)의 비트 수가, 펑쳐율이 변화되어도 일정하게 되도록 하고 있다.
도 5는, 본 예의 맵 알고리즘에 의한 터보 부호의 복호 처리예를 나타낸 흐름도이다. 이미 설명한 바와 같이, 터보 부호는 블록 부호이고, 터보 디코더에서의 복호는 정해진 비트 수 N으로 이루어지는 블록 단위(코드 블록)로 행해진다. 도 5의 흐름도는 이러한 1 블록의 처리를 나타낸 도면이다.
우선, 1 블록의 처리가 개시되면, 중앙 제어 유닛(7)은 펑쳐율이 전회의 수신 처리로부터 변화되어 있는지의 여부를 판단한다(단계 S11). 여기서, 펑쳐율이 변화되었다고 판단한 경우에는, 학습 구간의 길이는 그 때의 펑쳐율에 따라 재설정되어, 중앙 제어 유닛(7)에 기억된다(단계 S12).
그리고, 단계 S11에서 펑쳐율의 변화가 없는 경우, 혹은 단계 S12에서 펑쳐율이 변화되어 재설정이 완료되면, 〔1 윈도우의 창의 길이〕+〔학습 구간의 데이터〕를 터보 디코더(6)에 입력한다(단계 S13). 그리고, 그 입력된 데이터를 사용한 역방향의 재귀적 연산을 행한다(단계 S14). 그리고, 그 재귀적 연산의 종료 후에, 1 윈도우의 데이터(즉, 학습 구간의 부분을 제외한 데이터)를, 터보 디코더(6) 내의 맵 알고리즘부가 구비하는 메모리에 저장하고(단계 S15), 메모리에 저장된 데이터를 판독하여(단계 S16), 그 판독된 데이터의 순방향의 연산 및 출력 우도 계산을 행한다(단계 S17). 여기까지의 처리가 종료되면, 1 블록의 데이터의 종단까지 처리하였는지의 여부를 판단하여(단계 S18), 종단이 아닌 경우에는 단계 S13으로 되돌아간다.
그리고, 종단이라고 판단한 경우에는, 여기서의 1 블록의 처리를 종료한다.
도 6은 본 예의 슬라이드 창을 이용한 맵 알고리즘의 처리 수순의 예를 나타낸 도면이다. 복호 트렐리스에 대해서는, 도 6의 (a)에 도시한 바와 같이, 1 블록의 데이터의 선두로부터 종단까지 연속하고 있다. 여기서, 최초의 단계 1에서의 처리로서는, 도 6의 (b)에 도시한 바와 같이, 미리 정해진 고정 길이인 1 윈도우의 데이터 길이 L에, 펑쳐율에 의해 가변 설정되는 길이인 학습 구간의 길이만큼 가산한 위치로부터, 역방향으로 재귀적 연산을 행하고, 그 연산 결과로서, 도 6의 (c)에 도시한 바와 같이, 1 윈도우의 데이터를 메모리에 저장한다. 다음에, 단계 2로서, 도 6의 (d)에 도시한 바와 같이, 그 메모리에 저장된 데이터를 판독하고, 도 6의 (e)에 도시한 바와 같이, 그 판독된 데이터를 사용하여, 순방향으로 연산을 행함과 함께, 출력 우도 계산을 행한다. 여기까지가 1 블록의 처리이다.
다음의 블록의 처리로서는, 1 윈도우에 상당하는 길이만큼 판독 위치를 슬라이드시키고, 도 6의 (f)에 도시한 바와 같이, 단계 3으로서, 1 윈도우의 데이터 길이 L에, 가변 설정되는 학습 구간의 길이만큼 가산한 위치로부터, 역방향으로 재귀적 연산을 행하고, 그 연산 결과로서, 도 6의 (g)에 도시한 바와 같이, 1 윈도우의 데이터를 메모리에 저장한다. 다음에, 단계 4로서, 도 6의 (h)에 도시한 바와 같이, 그 메모리에 저장된 데이터를 판독하고, 도 6의 (i)에 도시한 바와 같이, 그 판독된 데이터를 사용하여, 순방향으로 연산을 행함과 함께, 출력 우도 계산을 행한다.
이하, 마찬가지로 1 윈도우마다의 슬라이드를 행하면서의 맵 알고리즘에 의한 복호를 실행하여 간다. 그리고, 1 블록의 최후의 1 윈도우를 처리하는 경우에는, 도 6의 (n)에 도시한 바와 같이, 최후의 1 윈도우의 데이터를 사용한(즉, 학습 구간이 없는 상태에서) 역방향의 재귀적 연산을 행하고, 그 데이터의 메모리 저장(도 6의 (o)), 메모리 판독(도 6의 (p)), 순방향의 연산(도 6의 (q))을 행하여, 1 블록 내의 모든 처리를 종료한다.
이와 같이 하여 터보 부호의 복호를 행함으로써, 항상 최적의 학습 구간의 길이의 설정을 행하면서의, 슬라이드 창에 의한 터보 복호가 행해지는 효과를 갖는다. 즉, 송신측에서 데이터를 씨닝하는 비율인 펑쳐율이 가변된 경우에는, 본 예의 수신 장치 내의 디인터리브 디펑쳐부(5)에서 0 비트를 삽입하는 위치나 길이를 가변 설정시켜, 디펑쳐된 수신 데이터에 대하여는, 원래의 데이터 길이가 복원되도록 하고 있다. 그리고, 펑쳐율로 씨닝된 비트 수에 상당하는 길이만큼, 학습 구간의 길이를 변화시키도록 하였으므로, 학습 구간 중에 포함되는 유효한 데이터의 비트 수가, 펑쳐율이 변화되어도 일정하게 되도록 하고 있기 때문에, 항상 일정량의 유효한 데이터를 사용한 역방향의 재귀적인 연산 처리가 행하여져, 일정한 성능에서의 복호가 가능하게 된다.
또한, 학습 구간의 길이가 항상 적절하게 설정되므로, 종래와 같이 학습 구간의 길이를 고정한 경우에는, 성능 확보를 위해 필요 이상으로 길게 학습 구간의 길이를 설정할 필요가 있었지만, 그와 같은 일이 없게 되어, 터보 디코더에서의 연산 처리량을 최저한으로 억제하는 것이 가능하게 된다. 또한, 쓸데없는 연산을 행할 필요가 없기 때문에, 복호의 처리 속도를 고속화할 수 있어, 연산 처리에 요하는 소비 전력의 저감도 도모할 수 있다.
또, 여기까지 설명한 일련의 처리는, 하드웨어로 실현할 수도 있지만, 소프트웨어로 실현할 수도 있다. 일련의 처리를 소프트웨어로 실현하는 경우에는, 그 소프트웨어를 구성하는 프로그램을 컴퓨터 장치 등의 데이터 처리 장치에 인스톨하여, 그 프로그램을 컴퓨터 장치 등으로 실행함으로써, 상술한 수신 장치가 기능적으로 실현된다.
또한, 상술한 실시예에서는, 학습 구간의 길이를 가변 설정하는 경우에, 펑쳐 처리에서 씨닝된 비트 수의 수와, 학습 구간의 길이를 변화시키는 비트 수를, 거의 완전히 일치시키는 것으로 설명했지만, 펑쳐 처리에서 씨닝된 데이터량과, 학습 구간의 길이의 가변 설정량을, 어느 정도 대응한 상태에서 변화시키도록 하여도 된다. 그와 같은 경우에도, 학습 구간의 길이에 어느 정도의 여유가 있으면, 그만큼 복호 정밀도에는 영향을 미치지 않는다.

Claims (4)

  1. 소정의 비트 수로 이루어지는 블록 단위로, 컨볼루션 부호에 의한 부호화와 인터리브가 조합되어 부호화됨과 함께, 소정의 펑쳐율에 의해 필요에 따라 씨닝되어 송신된 터보 부호를 수신하여 복호하는 데이터 수신 방법으로서,
    상기 수신 데이터의 펑쳐율을 판단하는 처리와,
    상기 펑쳐율로 씨닝된 비트를 보간하는 보간 처리와,
    상기 인터리브된 데이터를 원래의 배열로 하는 디인터리브 처리와,
    상기 보간 처리 및 상기 디인터리브 처리가 실시된 데이터에 대하여, 상기 펑쳐율 검출 처리에서 판단된 펑쳐율에 따라 학습 구간의 길이를 가변 설정시키면서, 슬라이드 창의 데이터와, 그 슬라이드 창의 데이터에 계속되는 상기 학습 구간의 데이터를 입력시켜, 재귀적 연산으로 슬라이드 창의 데이터를 복호하는 터보 복호 처리
    를 행하는 데이터 수신 방법.
  2. 제1항에 있어서,
    상기 펑쳐율에 따라 가변 설정되는 학습 구간의 길이는, 상기 펑쳐율을 판단하는 처리에서 판단된 펑쳐율로 씨닝된 비트 수에 상당하는 길이만큼 변화시키는 데이터 수신 방법.
  3. 소정의 비트 수로 이루어지는 블록 단위로 부호화된 터보 부호를 수신하여 복호하는 데이터 수신 장치로서,
    상기 수신 데이터의 펑쳐율을 판단하는 펑쳐율 판단 수단과,
    상기 검출된 펑쳐율로 씨닝된 비트를 보간하는 보간 수단과,
    상기 인터리브된 데이터를 원래의 배열로 하는 디인터리브 수단과,
    상기 보간 수단 및 상기 디인터리브 수단에서 처리가 실시된 데이터에 대하여, 상기 펑쳐율 판단 수단에서 판단된 펑쳐율에 따라 학습 구간의 길이를 가변 설정시키면서, 슬라이드 창의 데이터와, 그 슬라이드 창의 데이터에 계속되는 상기 학습 구간의 데이터를 입력시켜, 재귀적 연산으로 슬라이드 창의 데이터를 복호하는 터보 복호 수단
    을 포함하는 데이터 수신 장치.
  4. 제3항에 있어서,
    상기 터보 복호 수단에서 펑쳐율에 따라 가변 설정되는 학습 구간의 길이는, 상기 펑쳐율 판단 수단에서 펑쳐율로 씨닝된 비트 수에 상당하는 길이만큼 변화시키는 데이터 수신 장치.
KR1020047015030A 2003-01-23 2004-01-22 데이터 수신 방법 및 장치 KR20050083565A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00015286 2003-01-23
JP2003015286A JP3845822B2 (ja) 2003-01-23 2003-01-23 データ受信方法及び装置

Publications (1)

Publication Number Publication Date
KR20050083565A true KR20050083565A (ko) 2005-08-26

Family

ID=32767437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015030A KR20050083565A (ko) 2003-01-23 2004-01-22 데이터 수신 방법 및 장치

Country Status (7)

Country Link
US (1) US7096410B2 (ko)
EP (1) EP1587218B1 (ko)
JP (1) JP3845822B2 (ko)
KR (1) KR20050083565A (ko)
CN (1) CN100557985C (ko)
DE (1) DE602004019758D1 (ko)
WO (1) WO2004066506A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008023682A1 (fr) * 2006-08-22 2008-02-28 Panasonic Corporation Décodeur de sortie pondéré, décodeur itératif et procédé de calcul de valeur de décision pondérée
CN101212401B (zh) * 2006-12-29 2010-06-09 中兴通讯股份有限公司 面向网格的可配置数据传输方法及系统
JP2011114567A (ja) * 2009-11-26 2011-06-09 Tohoku Univ ターボ復号方法及び復号器
KR102412695B1 (ko) * 2015-07-28 2022-06-24 삼성전자주식회사 데이터 수신을 제어하기 위한 장치 및 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846655A (ja) * 1994-07-29 1996-02-16 Toshiba Corp 重み付け伝送方式及びその装置
US5978365A (en) * 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6754290B1 (en) * 1999-03-31 2004-06-22 Qualcomm Incorporated Highly parallel map decoder
DE10001856A1 (de) * 2000-01-18 2001-08-09 Infineon Technologies Ag Verfahren zur Decodierung eines Datensignals
US6484285B1 (en) * 2000-02-07 2002-11-19 Ericsson, Inc. Tailbiting decoder and method
US6901117B1 (en) * 2000-02-10 2005-05-31 Motorola, Inc. Soft output decoder for convolutional codes
US6307901B1 (en) * 2000-04-24 2001-10-23 Motorola, Inc. Turbo decoder with decision feedback equalization
US6829313B1 (en) * 2000-07-17 2004-12-07 Motorola, Inc. Sliding window turbo decoder
US6952457B2 (en) * 2000-12-29 2005-10-04 Motorola, Inc. Method and system for adapting a training period in a turbo decoding device
JP2002319869A (ja) * 2001-04-20 2002-10-31 Yozan Inc 復号装置
FR2834146A1 (fr) * 2001-12-20 2003-06-27 St Microelectronics Sa Turbo-decodeur compact a haute efficacite
JP3735579B2 (ja) * 2002-02-26 2006-01-18 株式会社東芝 ディスク記憶装置及びデータ記録再生方法

Also Published As

Publication number Publication date
US7096410B2 (en) 2006-08-22
WO2004066506A1 (ja) 2004-08-05
JP3845822B2 (ja) 2006-11-15
JP2004266324A (ja) 2004-09-24
CN100557985C (zh) 2009-11-04
DE602004019758D1 (de) 2009-04-16
EP1587218A1 (en) 2005-10-19
EP1587218B1 (en) 2009-03-04
EP1587218A4 (en) 2007-09-05
CN1698273A (zh) 2005-11-16
US20050172200A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
US6829313B1 (en) Sliding window turbo decoder
EP0967730B1 (en) Convolutional decoder with modified metrics
US7657819B2 (en) Method and apparatus for termination of iterative turbo decoding
EP1655846B1 (en) Decoding apparatus and decoding method
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
WO2002021701A1 (en) Soft output decoder for convolutional codes
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
EP1063776A2 (en) Turbo decoder
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
US7925964B2 (en) High-throughput memory-efficient BI-SOVA decoder architecture
US6877125B2 (en) Devices and methods for estimating a series of symbols
KR100628201B1 (ko) 터보 디코딩 방법
KR19990081470A (ko) 터보복호기의 반복복호 종료 방법 및 그 복호기
KR20050083565A (ko) 데이터 수신 방법 및 장치
US20030014456A1 (en) Blind transport format detection system and method
US6542559B1 (en) Decoding method and apparatus
JP2008136006A (ja) 誤り訂正復号器及びそれに用いる誤り訂正復号方法並びにそのプログラム
JP2001352256A (ja) 復号装置及び復号方法
CN113765622B (zh) 分支度量初始化方法、装置、设备及存储介质
US7237177B2 (en) Method of calculating internal signals for use in a map algorithm
US20070157063A1 (en) Method for iterative decoding in a digital system and apparatus implementing the method
KR100447175B1 (ko) 터보 디코딩 방법 및 이를 위한 장치
KR100305293B1 (ko) 터보 복호기에서 최소 메모리를 이용하여 대수 근사화 확률비를구하는 방법
US20050166128A1 (en) Method for decoding data sequence that has been encoded with the help of a binary convolution code
KR100850744B1 (ko) Llr 계산 장치 및 계산 방법

Legal Events

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