KR100899732B1 - 공간-효율적인 터보 디코더 - Google Patents

공간-효율적인 터보 디코더 Download PDF

Info

Publication number
KR100899732B1
KR100899732B1 KR1020037005882A KR20037005882A KR100899732B1 KR 100899732 B1 KR100899732 B1 KR 100899732B1 KR 1020037005882 A KR1020037005882 A KR 1020037005882A KR 20037005882 A KR20037005882 A KR 20037005882A KR 100899732 B1 KR100899732 B1 KR 100899732B1
Authority
KR
South Korea
Prior art keywords
output
interleaver
input
decoder
external memory
Prior art date
Application number
KR1020037005882A
Other languages
English (en)
Other versions
KR20030040560A (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 콸콤 인코포레이티드
Publication of KR20030040560A publication Critical patent/KR20030040560A/ko
Application granted granted Critical
Publication of KR100899732B1 publication Critical patent/KR100899732B1/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/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/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
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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
    • H03M13/2978Particular arrangement of the component decoders
    • H03M13/2984Particular arrangement of the component decoders using less component decoders than component codes, e.g. multiplexed decoders and scheduling thereof
    • 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/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/6563Implementations using multi-port memories

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)
  • Communication Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 효율적인 터보 디코더에 관한 것이다. 개시된 터보 디코더는 터보 디코더가 제 1 기능 루프를 이용하는 제 1 동작 모드를 포함한다. 제 1 기능 루프는 메모리 뱅크, 판독 인터리버, 제 1 멀티플렉서(MUX), RAM 파일, log-MAP 디코더, 기록 인터리버 및 제 2 MUX를 포함한다. 개시된 터보 디코더는 제 2 기능 루프가 이용되는 제 2 동작 모드를 더 포함한다. 제 2 기능 루프는 상기 메모리 뱅크, 상기 제 1 MUX, 상기 RAM 파일, 상기 log-MAP 디코더 및 상기 제 2 MUX를 포함한다. 상기 메모리 뱅크는 이중 포트 외부 메모리이다. 개시된 터보 디코더 회로는 제 1 모드와 제 2 모드간에 스위칭한다.

Description

공간-효율적인 터보 디코더{SPACE-EFFICIENT TURBO DECODER}
본 발명은 무선 통신 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 무선 코드분할다중접속(CDMA) 통신 시스템에서 사용되는 메모리 효율적인 터보 디코더에 관한 것이다.
셀룰라 통신 시스템은 하나 이상의 기지국과 통신하는 이동 전화기와 같은 다수의 이동 송수신기에 의해 특정된다. 각 송수신기는 전송기와 수신기를 포함하고 있다.
전형적인 CDMA 송수신기에서, 아날로그 무선 주파수(RF) 신호는 안테나에 의해 수신되고 RF 섹션에 의해 중간 주파수(IF)로 하향변환된다. 신호 처리 회로는 잡음 필터링을 수행하며 신호의 크기를 아날로그 자동 이득 제어(AGC)회로를 통해 조절한다. IF 섹션은 신호를 기저대역으로 믹싱하며, 아날로그 신호를 디지털 신호로 변환한다. 상기 디지털 신호는 또 다른 신호 처리를 위해 터보 디코딩과 같은 기저대역 프로세서에 입력되어 음성 또는 데이터를 출력한다.
유사하게, 상기 전송기는 디지털 입력을 상기 기저대역 프로세서로부터 수신하여 상기 디지털 입력을 아날로그 신호로 변환한다. 상기 디지털 입력 신호는 종종 터보 엔코딩된 신호이다. 그리고 나서, 상기 신호는 필터링되고 IF 단에 의해 중간 주파수로 상향변환된다. 상기 전송기 신호의 이득은 조절되고 상기 IF 신호는 무선 전송을 위해 RF로 변환된다.
전송기와 수신기 사이의 링크는 채널이다. 시스템 용량을 증가시키기 위해, 이동국과 기지국에 있는 수신기는 보다 낮은 신호 대 간섭 비(SIR)에서 효율적으로 동작거나, 또는 채널의 SIR은 증가되어야 한다. 특별한 코딩 방식이 종종 요구되는 SIR을 감소시키기 위해 사용된다.
신호 통신을 위한 코딩은 상기 신호에 추가적인 여분(redundancy) 정보를 포함한다. 잡음 환경에서 전송되는 통신 신호에 여분을 의도적으로 추가함으로써, 잡음 채널에 의해 도입되는 에러는 바람직한 레벨로 감소된다. 1948년에 클로드 새논(Claude Shannon)에 의해 제시된 것과 같이, 만약 전송 신호의 정보 속도가 상기 채널의 용량보다 적으면, 바람직한 잡음 레벨이 상기 정보 속도를 감소시키지 않고도 달성된다. 만약 여분이 잡음 환경에서 사용되지 않는다면, 에러가 없는 수행은 달성되기 힘들거나 불가능하다.
잡음 및 레일레이-페이드(Raleigh-faded) 환경에서 무선 통신 시스템의 성능을 향상시키기 위해, 신호 엔코더 다음에 인터리버가 종종 사용된다. 인터리버는 엔코더로부터의 코드워드 출력을 분산시켜 개개의 소정 코드워드의 비트가 분리되며 서로 다른 시간에 전송되도록 한다. 결국, 소정 코드의 비트는 개별적으로 독립적으로 페이딩을 경험하게 되며, 에러 버스트에 의해 영향을 받는 비트는 수 개의 코드워드로 제한된다. 수신기에서, 수신된 신호 샘플은 디코딩되기 전에 디인터리버된다. 대각(diagonal), 컨벌루션, 인터블록 및 블록 인터리버를 포함하는 수 개의 인터리버 타입이 존재한다.
터보 코드는 하나 이상의 코드 인터리버에 의해 분할된 2개 이상의 구성(constituent) 코드들의 병렬 또는 직렬 연결(concatenation)이다. 터보 엔코더와 디코더는 종종 에러 제어를 향상하기 위해 그리고 요구되는 SIR를 감소시키기 위해 사용된다. 터보 코드는 종종 새논 제한에 접근하는 신호 대 잡음(SNR) 비에서 낮은 에러 속도를 달성하기 위해 상호작용(interactive) 알고리즘에 의해 디코딩된다. 터보 코드의 본질적인 부분, 코드 인터리버 및 디인터리버는 코드 엔코더들 및 코드 디코더들 사이에 각각 삽입되어야 한다. 터보 코드의 성능은 코드 인터리버의 구조와 길이에 의존한다. 좋은 터보 코드 성능은 의사 난수 구조를 가지고 있는 인터리버를 사용하여 달성될 수 있다.
무선 CDMA 통신 시스템에서, 터보 엔코더는 종종 구성 컨벌루션 코드 및 상기 코드의 하나 이상의 인터리빙된 버전들의 병렬 연결을 생성한다. 상기 엔코더는 전형적으로 하나 이상의 인터리버를 통해 연결된 하나 이상의 컨벌루션 엔코더를 포함하고 있다. 대응하는 터보 디코더는 일반적으로 인터리버와 디인터리버를 갖는 루프에 연결된 내부 및 외부 로그 최대 사후 확률(logarithmic maximum a posteriori) 디코더를 포함하고 있다. 상기 루프는 로그 우도 비(LLR)에 근접하기 위해 반복 알고리즘을 구현한다. 일반적으로, 만약 LLR>0이면, 상기 디코딩된 비트는 1일 확률이 높고, 만약 LLR<1이면, 상기 디코딩된 비트는 0일 확률이 높다. 상기 LLRs에 기반하여, 상기 디코더는 하드(hard) 결정을 나타내는 1 또는 0을 출력한다. 상기 LLRs을 결정하기 위해 사용되는 순환적인 프로세스는 Log-MAP 알고리즘으로 불리며, 메트릭(metric) 계산기의 2개의 인스턴스를 포함하는데, 하나는 순방향 순환을 수행하며, 또 다른 하나는 역방향 순환을 수행한다.
터보 디코더의 비용과 효율성을 증가하기 위해, 하나 이상의 구성 디코더들이 종종 1개의 멀티플렉서와 2개의 외부(extrinsic) 메모리에 의해 대체된다. 상기 멀티플렉서는 상기 터보 디코더 루프를 통해 신호를 제어하며, 따라서 상기 터보 디코더의 기능을 유지하면서 단일 디코더가 하나 이상의 디코더를 대체한다.
불행히도, 상기 터보 디코더는 종종 적어도 2개의 외부 메모리를 요구하는데, 하나는 상기 디코더가 다른 루프 섹션을 위해 사용되는 동안 하나의 루프로부터 정보를 저장하는데 사용되고, 다른 하나는 그 반대의 경우에 정보를 저장하는데 사용된다. 외부 메모리 뱅크는 종종 크기가 크고 비용이 비싸며, 크고 비싼 무선 통신 장치를 초래한다.
따라서, 2개의 이중 외부 메모리 뱅크를 요구하지 않는 CDMA 시스템에서 사용되는 저렴하고 공간적으로 효율적인 터보 디코더가 요구된다. 또한 이중 메모리를 필요로 하지 않는 공간적으로 효율적인 터보 디코더 및 대응하는 방법을 채용하는 통신 시스템이 요구된다. 또한, 본 발명의 공간적으로 효율적인 터보 디코더와 함께 사용되는 효율적인 이중 포트 외부 메모리에 대한 요구가 존재한다.
디지털 회로의 전체 기능을 유지하면서 상기 디지털 회로에서 여분 메모리 뱅크를 감소하기 위한 시스템에 대한 요구가 존재한다. 예시된 실시예에서, 제시된 터보 디코더 회로는 무선 통신 시스템의 터보 디코더에서 사용된다. 제시된 터보 디코더는 터보 디코더가 제1 기능 루프를 사용하는 제1 동작 모드를 포함한다. 상기 제1 기능 루프는 하나의 메모리 뱅크, 판독 인터리버, 제1 멀티플렉서(MUX), RAM 파일, Log-MAP 디코더, 기록 인터리버 및 제2 MUX를 포함한다. 또한 제시된 터보 디코더는 제2 기능 루프가 사용되는 제2 동작 모드를 포함한다. 상기 제2 기능 루프는 상기 메모리 뱅크, 상기 제1 MUX, 상기 RAM 파일, 상기 Log-MAP 디코더 및 상기 제2 MUX를 포함한다.
일 실시예에서, 상기 메모리 뱅크는 이중 포트 외부 메모리이다. 상기 공시된 터보 디코더 회로는 상기 제1 모드와 제2 모드 사이에서 스위칭된다.
제시된 방법 및 장치는 2개의 분리된 디코더 기능 섹션에서 사용을 위해 그리고, 2개의 서로 다른 동작 모드에 대해 하나의 외부 메모리를 선택적으로 사용함으로써 터보 디코더에서 2개의 외부 메모리를 사용하지 않도록 한다.
도1은 이하 공시된 기술들에 따라 구성된 무선 통신 시스템의 블록도.
도2는 도1의 상기 통신 시스템과 함께 사용되도록 적용되는 종래의 터보 엔코더의 보다 자세한 흐름도.
도3은 종래의 터보 디코더의 블록도.
도 4는 오로지 하나의 외부 메모리를 가진 도 1의 공간-효율적인 터보 디코더의 상세 블록도.
도 5는 도 4의 터보 디코더의 판독 및 기록 타이밍을 도시하는 타이밍도.
도 6은 도 4의 공간-효율적인 외부 메모리의 상세 블록도.
도 7은 도 6의 이중 포트 외부 메모리를 판독 및 기록하는데 사용된 통상적인 CDMA 2000 터보 코드 인터리버의 도면.
본 발명에 따른 방법 및 장치가 특정 응용에 대해 예시된 실시예를 참조로 하여 설명되지만, 본 발명이 이에 한정되는 것이 아니라는 것을 알 수 있을 것이다. 당업자라면 본 발명의 범위내에서의 추가의 변경, 응용 및 실시예와 본 발명이 주요하게 사용될 수 있는 추가 영역이 가능하다는 것을 알 수 있을 것이다.
도 1은 여기서 개시된 기술에 따라 구성된 무선 통신 시스템(10)의 블록도이다. 간략함을 위해, 안테나, 전력원, 클록킹 회로, 증폭기 등과 같은 여러 소자가 도 1에 도시되지 않지만, 이들은 당업자에게 공지된 것이다. 이와 같이, 당업자라면 이러한 소자를 구현하는 방법을 잘 이해할 수 있을 것이다.
시스템(10)은 전송 장치(12)와 수신 장치(14)를 포함한다. 전송 장치(12)는 정보 소스(106), 소스 엔코더(18) 및 전송기(20)를 포함한다. 전송기(20)는 터보 엔코더(22), 채널 인터리버(24) 및 변조기(26)를 포함한다. 정보 소스(16)의 출력은 소스 엔코더(18)에 입력된다. 소스 엔코더(18)의 출력은 전송기(20)의 터보 엔코더(22)에 입력된다. 터보 엔코더(22)의 출력은 채널 인터리버(24)에 입력된다. 채널 인터리버(24)의 출력은 변조기(26)에 입력된다.
수신 장치(14)는 정보 싱크(38)가 연결되는 소스 디코더(36)에 연결된 수신기(28)를 포함한다. 수신기(28)는 복조기(30), 채널 디인터리버(32) 및 공간-효율 터보 디코더(34)를 포함하고, 이러한 디코더는 여기에 개시된 기술에 따라 구성된다. 복조기(30)의 입력은 무선 채널(40)을 통해 전송장치(12)의 변조기(26)의 출력에 연결된다. 복조기(30)의 출력은 채널 디인터리버(32)의 입력에 연결된다. 채널 디인터리버(32)의 출력은 터보 디코더(34) 입력에 연결된다. 터보 디코더(34)의 출력은 소스 디코더(36)에 입력되고, 소스 디코더의 출력은 정보 싱크(38)에 연결된다. 터보 디코더(34)는 이하에서 충분히 설명될 바와 같이 채널 디인터리버(32)에 선택적 스케일링 피드백을 제공한다.
동작시, 정보 소스(16)는 소스 엔코더(18)에 음성 신호 또는 다른 데이터를 제공한다. 정보 소스(16)는 인간, 키패드 또는 마이크로폰과 같은 입력 장치, 또는 네트워크와 같은 다른 소스일 수 있다. 소스 엔코더(18)는 정보 소스(16)에 의해 제공된 정보를 터보 엔코더(22)와 함께 사용하기에 적합한 사전설정 전자 포맷으로 디지털 엔코딩한다. 소스 엔코더는 일반적으로 당업자에게 공지되어 있다. 소스 엔코더(18)의 사양은 주문제작형이고 주어진 응용의 필요에 따라 선택된다.
소스 엔코더(18)의 출력은 1 또는 0으로 표시된 디지털 이진 비트 dk의 스트림을 나타낸다. 본 실시예에서, 터보 엔코더(22)는 비트 dk를 순환 계통적 컨볼루션(recursive systematic convolutional: RSC) 코드들의 병렬 연결을 나타내는 터보 코드로 엔코딩한다. 생성된 터보-엔코딩 비트는 채널 인터리버(24)에 입력된다. 채널 인터리버(24)는 의사 난수 규칙 α에 따라 i번째 위치에서의 비트가 위치 α(i)로 이동되도록 의사 난수 순열 함수 α를 통해 입력 비트를 재정렬(reorder)한다. 인터리버(24)는 블록 인터리버로 구현될 수 있고, 이러한 블록 인터리버는 데이터를 메모리 블록에 행(row)별로 기록하고 데이터를 열(column)별로 판독한다.
재정렬된 비트는 변조기(26)에 입력되고, 변조기는 무선 채널(40)을 통한 전송을 위해 디지털 터보-엔코딩된 인터리브 신호를 준비한다. 변조기(26)는 채널 인터리버(24)에 의해 출력된 디지털 기저대역 신호를 IF 신호로 상향변환하는 기저대역-IF 믹서(미도시) 및 IF 신호를 채널(40)을 통해 무선 전송을 위해 RF 신호로 변환하는 IF-RF 믹서(미도시)를 포함한다. 변조기(26)는 이러한 의사 난수 잡음(PN) 확산과 같은 기능을 수행하며, 여기서 동위상 및 직교 위상 성분이 무선 전송을 위해 해당 PN 함수와 혼합된다. 변조기(26)는 또한 출력 신호(42)에 파일럿 신호를 부가하며, 이는 전송기 안테나(미도시)를 통해 채널(40) 상에서 전송된다.
수신 장치(14)의 복조기(30)는 수신 장치(12)의 변조기(26)로부터 무선 채널(40)을 통해 전송된 무선 신호(42)를 수신한다. 본 발명의 특정 실시예에서, 무선 신호(42)는 코드분할 다중접속(CDMA) 신호이며, 시스템(10)은 CDMA 시스템이다. 복조기(30)는 RF-IF 및 IF-기저대역 회로(미도시)에 앞서 채널 평가기 및 레이크 수신기를 포함한다. 당업자에게 공지된 바와 같이, 레이크 수신기는 정정 수신기의 여러 뱅크를 가진 다중스테이지 수신기이다. 각각의 스테이지는 시스템(10)의 각각의 사용자로부터 수신된 신호를 평가한다. 생성된 평가치는 합산되고 다음으로 전체 수신된 신호로부터 감산된다. 전송 장치(12)의 사용자로부터 수신된 원하는 신호의 추정치가 다시 합산되고, 이로부터 잔류(residual) 신호가 생성되고, 일 비트 추정치가 형성된다.
복조기(30)는 수신된 신호(42)를 복조하여 해당 디지털 복조 신호를 채널 디인터리버(32)에 제공한다. 채널 디인터리버(32)는 순열 함수 α-1을 통해 복조된 신호를 디인터리빙하고, 이러한 함수는 채널 인터리버(24)의 순열 함수 α의 역함수이다. 본 실시예에서, 채널 디인터리버(32)는 무선 채널(40)에 의해 부가된 추가의 잡음 및 간섭 성분을 갖는 RSC 코드 성분들의 병렬 연결을 나타내는 비트 시퀀스를 출력한다. 터보 디코더(34)는 공지된 로그 사후(Log-MAP) 알고리즘을 사용하여 디인터리빙된 비트 스트림을 디코딩한다.
둘 이상의 개별 외부 메모리 및/또는 둘 이상의 개별 Log-MAP 디코더를 필요로 하는 통상적인 터보 디코더와는 달리, 오로지 하나의 메모리 및 하나의 Log-MAP 디코더만을 필요로 한다는 점에서 터보 디코더(34)는 공간-효율적이다. 결과적으로, 터보 디코더(34)는 통상적인 다른 제품에 비해 더 작고 저가로 제조될 수 있다. 이는 디지털 통신 시스템(10)의 관련 수신 장치(14)의 크기 및 비용을 감소시킨다.
터보 디코더(34)로부터 출력된 디코딩된 신호
Figure 112008039074038-pct00001
는 전송 장치(12)의 터보 엔코더(22)로 입력된 디지털 신호 dk의 추정치이다. 다음으로 디코딩된 신호
Figure 112008039074038-pct00002
는 정보 싱크(38)로 출력을 위해 소스 디코더(36)에 의해 추가로 디코딩되고 포맷팅된다.
도 2는 도 1의 통신 시스템(10)을 사용하기 위한 통상적인 터보 엔코더(22) 의 상세도이다. 통상적인 터보 엔코더(22)의 이하에서의 고찰은 개시된 방법 및 장치에 대한 용이한 이해를 위한 것이다.
터보 엔코더(22)는 제 1 지연(50), 제 2 지연(52) 및 인터리버(π)(54)를 포함하고, 이들 각각은 입력으로서 디지털 비트 스트림 dk를 수신한다. 제 1 지연(50)의 출력 y0k는 펑처링 회로(puncturing circuit)(56)에 입력된다. 제 2 지연(52)의 출력은 제 1 엔코더(58)에 입력되고, 제 1 엔코더의 출력 y1k는 펑처링 회로(56)에 입력된다. 인터리버(54)의 출력은 제 2 엔코더(60)에 입력되고, 제 2 엔코더의 출력 y1k는 펑처링 회로(56)에 입력된다. 펑처링 회로(56)는 도 1의 채널 인터리버(24)로 입력을 제공한다. 본 실시예에서, 제 1 엔코더(58) 및 제 2 엔코더(60)는 RSC 엔코더이다.
동작시, 제 1 지연(50)은 디지털 입력 시퀀스 dk를 지연시키고 대응하는 시프팅된 디지털 시퀀스 y0K를 펑처링 회로(56)로 출력한다. 제 2 지연(52)은 디지털 입력 시퀀스 dk를 지연시키고 대응하는 시프팅된 출력을 제 1 엔코더(58)에 제공한다. 제 1 엔코더(58)는 통상적인 코딩 기술을 사용하여 지연된 디지털 시퀀스를 엔코딩한다. 다음으로, 엔코더(58)는 대응하는 엔코딩된 신호 y1k를 펑처링 회로(56)로 출력한다. 유사하게, 제 2 엔코더(60)는 사전설정된 순열 함수 π를 갖는 인터리버(54)에 의해 출력된 디지털 인터리빙된 시퀀스 출력을 엔코딩한다. 그리고 나서 엔코더(60)는 대응하는 엔코딩된 신호(y2k) 를 펑처링 회로(56)로 출력한다.
펑처링 회로(56)는 신호 시퀀스, 즉 도1의 채널 인터리버에 제공되는 터보 코드내에 병렬 신호(y0k,y1k, 및 y2k)를 순차적으로 배열한다. 펑처링 회로(56)는 주어진 애플리케이션에 대한 요구조건을 만족시키기 위해 출력 신호의 코드율을 조절한다. 도2에 제시되는 터보 엔코더(22)는 1/3 데이터율 터보 엔코더이고, 여기서 k 입력 비트의 데이터 시퀀스는 3k 심볼의 코드 워드에 매핑된다. 펑처링 회로의 출력은 1/3 데이터율 코드이지만, 코드율은 펑처링에 의해 (예를 들면 1/2로) 증가될 수 있다.
공지된 비터비 알고리즘은 종종 제1 RSC 엔코더(58)로부터 출력된 코드와 같이, 기존의 컨벌루션 코드를 디코딩하기 위해 사용된다. 이러한 비터비 알고리즘은 수신된 신호 y에 대해 전송된 데이터 비트 m의 가장 가능성 있는 시퀀스를 표현하는 최대 우도비(ML)를 계산한다. 우리가 선험적 정보를 안다면 ML 은 MAP 보다 열악하고(선험적 정보가 없다면, ML 은 본질적으로 MAP 알고리즘과 동일함), 터보 디코딩은 선험적 정보를 추정하고, 이를 MAP 디코딩에 사용한다.
도1의 변조기(26)로부터 출력되는 터보-엔코딩된 신호(42)를 디코딩하기 위해, 등식 (1)-(4)가 하기 시스템에서 터보 디코더(70)를 통해 반복적으로 해결된다:
Figure 112003015125911-pct00003
여기서, 변수에 대한 틸데(~)는 인터리빙된 값을 나타낸다: 그리고
Λ1k 는 수신된 데이터의 추정치(
Figure 112003015125911-pct00004
)와 관련된 로그-우도비(LLR)이다;
Figure 112003015125911-pct00005
는 추정치(
Figure 112003015125911-pct00006
)의 인터리빙된 버젼(
Figure 112003015125911-pct00007
)과 관련된 로그-우도비(LLR)이다.
y0 는 도2의 지연(50)으로부터 출력된 관측된 계층적(systematic) 비트(y0k) 시퀀스이다.
Figure 112003015125911-pct00008
는 y0의 인터리빙된 버젼을 나타낸다.
y1은 도2의 제1 구성 엔코더(58)로부터 출력된 패러티 비트(y1k) 시퀀스이다.
y2 는 제2 구성 엔코더(60)로부터 출력된 패러티 비트(y2k) 시퀀스이다.
Figure 112008039074038-pct00009
은 하기에서 상술되는 제1 모드에서 Log-MAP 디코더(76)로부터 출력되는 소위 부가(extrinsic) 정보를 나타내는 비트(z1k) 시퀀스에 대한 인터리빙된 버젼을 나타낸다.
z2 는 하기에서 상술되는 제2 모드에서 Log-MAP 디코더(76)로부터 출력되는 부가 정보(z2k)를 나타낸다.
Λ1k 는 2개의 조건부 확률에 대한 비의 대수(logarithm)로서 등식(1)에서 정의된다. 분자는 y0,y1, 및 z1 이 수신되는 경우 수신된 데이터 비트 추정치(
Figure 112008039074038-pct00010
)가 1을 나타내는 확률을 나타낸다. 분모는 y0,y1, 및 z1 이 수신되는 경우 수신된 데이터
Figure 112008039074038-pct00011
가 0을 나타내는 확률을 나타낸다.
유사하게,
Figure 112003015125911-pct00012
는 2개의 조건 확률 비의 대수로서 등식(2)에 정의된다. 분자는
Figure 112003015125911-pct00013
, y2, 및
Figure 112003015125911-pct00014
이 수신되는 경우 수신된 데이터 비트 추정치(
Figure 112003015125911-pct00015
)가 1을 나타내는 확률을 나타낸다. 분모는
Figure 112003015125911-pct00016
, y2, 및
Figure 112003015125911-pct00017
이 수신되는 경우 수신된 데이터
Figure 112003015125911-pct00018
가 0을 나타내는 확률을 나타낸다.
부가 정보 비트(z1k 및 z2k)는 하기 등식에 의해 등식(1) 및 (2)의 LLR의 Λ1k
Figure 112008039074038-pct00019
에 각각 관련된다:
Figure 112003015125911-pct00020
여기서 변수는 상기에서 제시된대로 정의된다.
수신된 데이터의 추정치(
Figure 112008039074038-pct00021
)는 하기 등식에 따라 하드 결정 회로(82)를 통해 Log-MAP 디코더(76)의 출력을 엄격(hard)하게 제한함으로써 획득된다:
Figure 112003015125911-pct00022
등식(1) 및 (2)의 LLR 은 공지된 Log-MAP 알고리즘을 사용하여 터보 디코더(70)를 통해 반복적으로 계산되고, 상기 알고리즘은 M.C Valenti 가 저술하고, 1998년 9월에 버지니아 테크에 의해 공표된 예비 리포트 제목 " Iterative Detection and Decoding for Wireless Communications" 에 상술되어 있다. 이러한 반복적인 처리과정은 디펑처링 회로(72)에 의해 제공되는 정보의 "윈도우" 상에서 수행된다. 이러한 정보 윈도우는 다음 데이터 윈도우가 디펑처링 회로(72)로부터 판독되기 전에 여러번 디코더(70)를 통해 순환된다. 제시되는 방법 및 장치의 일 실시예에서, 윈도우는 32 워드와 동일하고, 그 각각의 워드는 엔코딩된 데이터 하나의 비트에 대한 소프트 결정을 나타내는 6-비트 값이다.
동작시에, 초기에, 디펑처링 회로(72)는 공지된 애플리케이션-특정 방법을 사용하여 도1의 디인터리버(32)와 같이 채널 디인터리버로부터 수신된 신호를 디펑처링한다. 이러한 디펑처링된 신호는 상기에서 정의된 3개의 벡터(y0,y1,y2)를 나타낸다. 이러한 디펑처링된 신호는 신호를 버퍼링하는 RAM 파일(74)로 입력된다.
디코더(70)는 2개의 기능적 루프로 구성되는 것으로 간주될 수 있다. 제1 기능 루프는 외부 메모리(80), 판독 인터리버(90), MUX(92), RAM 파일(74), Log-MAP 디코더(76), 기록 인터리버(78), 및 외부 메모리(88)를 포함한다. 제2 기능 루프는 외부 메모리(88), MUX(92), RAM 파일(74), Log-MAP 디코더(76), 및 외부 메모리(80)를 포함한다.
디코더(70)가 제1 동작 모드에 존재하는 경우, 디코더는 제1 기능 루프 섹션을 사용한다. 대조적으로, 디코더(70)가 제2 동작 모드에 존재하는 경우, 디코더는 제2 기능 루프 섹션을 사용한다. 제1 동작 모드가 발생하는 첫번째 시간에서, RAM 파일(74)의 컨텐츠는 Log-MAP 디코더(76)내로 클록된다. Log-MAP 디코더(76)는 펑처링 회로(72)에 의해 제공되는 데이터 및 z 에 대한 소정 초기값을 사용하여 제1 동작 모드의 제1 통과 기간동안 등식(1)의 LLR 의 Λ1k를 추정한다(왜냐하면, z에 대한 현재값을 발생시키는데 사용하기 위한 Log-MAP 디코더(76)로부터의 이전값이 존재하지 않기 때문에).
Log-MAP 디코더(76) 출력은 기록 인터리버(78)로 입력된다. 기록 인터리버(78)는 Log-MAP 디코더(76)로부터의 출력에 대한 인터리빙 기능을 구현하기 위해 제1 외부 메모리(88)와 결합하여 사용된다. 동시에, Log-MAP 디코더(76)로부터의 출력은 제2 외부 메모리(80)에 저장된다.
그리고 나서 터보 디코더는 제2 동작 모드로 전이한다. 제2 동작 모드에서, MUX(92)는 제1 외부 메모리(88)로부터 출력을 선택한다. 기록 인터리버(78) 및 제1 외부 메모리(88)는 인터리빙 기능을 포함한다. MUX(92)는 데이터를 저장하는 RAM 파일(74)로 제1 외부 메모리(88)의 출력을 커플링한다. RAM 파일(74)로부터의 출력은 Log-MAP 디코더(76)와 커플링된다. 따라서, 제2 동작 모드에서 Log-MAP 디코더(76)에는 제1 외부 메모리(88)에 저장된 데이터가 제공된다. 제1 외부 메모리(88)의 출력은 인터리빙된 부가 정보(
Figure 112008039074038-pct00023
)를 나타낸다. Log-MAP 디코더(76)는 상술한 공식[2]에 따라 값(
Figure 112008039074038-pct00024
)을 계산한다. Log-MAP 디코더(76)로부터의 출력(
Figure 112008039074038-pct00025
)은 제2 외부 메모리(80)에 커플링 및 저장된다.
제 2 동작모드를 종료한 후에, 터보 디코더(70)는 제 1 동작 모드로 되돌아간다. 제 1 동작 모드에서, 모드 선택회로(94)는 MUX(92)의 출력으로서 판독 인터리버(90)의 출력을 선택한다. 제 2 외부 메모리(80) 및 판독 인터리버는 디인터리빙 기능을 수행한다. 판독 인터리버(90)의 출력은 부가 정보 z2 = {z2k}를 나타낸다. 따라서 부가 정보 z2는 판독 인터리버(90)로부터 판독되어 MUX(92)에 의해 RAM파일(74)에 출력한다. 그러나 중요한 것은 (전술된) 제 1 동작 모드의 제 1 통과 기간 동안, 값 z는 전술된 바와 같이 사전 설정된 초기값으로 세팅된다는 것이다. 그러므로, Log-MAP 디코더(76)로부터의 출력 Λ1k 및 판독 인터리버(90)로부터 출력된 결과값 z는 디코딩 프로세서의 제 1 반복시에 사용되지는 않는다. 그러나, 제 1 동작 모드의 제 2 통과 기간에서, RAM 파일(74)은 저장된 값 y0, y1, 및 z2를 Log-MAP 디코더(76)에 출력한다.
어떤 경우이든, 제 1 동작 모드 동안, RAM 파일(74)로부터의 출력은 Log-MAP 디코더(76)에 접속된다. Log-MAP 디코더(76)는 값 Λ1k을 계산한다. 값 Λ1k은 그후에 기록 인터리버(78)에 접속된다. 기록 인터리버(78)로부터의 출력은 그후에 제 1 외부 메모리(88)에 접속된다. 기록 인터리버(78) 및 메모리(88)는 값
Figure 112008039074038-pct00026
을 생성한다. 제 1 외부 메모리(88)는 터보 디코더(70)가 제 2 동작 모드로 스위칭할 때까지 값
Figure 112008039074038-pct00027
을 저장한다.
따라서, 제 1 동작모드에서, 부가 정보 z2는 제 2 외부 메모리(80)로부터 판독되어 MUX(92) 및 RAM 파일(74)에 의해 Log-MAP 디코더(76)에 접속되고 Log-MAP 디코더(76)의 출력은 기록 인터리버에 접속되어 제 1 메모리에 기록된다. 제 2 동작 모드에서, 제 1 외부 메모리(88)로부터 출력된 디인터리빙된 부가 정보
Figure 112008039074038-pct00028
는 MUX(92)로부터 출력되고 MUX(92) 및 RAM 파일(74)에 의해 Log-MAP 디코더(76)에 접속된다. MUX(92)로부터의 출력은 제 2 외부 메모리(80)에 접속되어 저장된다.
터보 디코더(70) 모드는 각각의 반복동안 제 1 동작 모드 및 제 2 동작 모드사이에서 교번을 계속한다. 사전설정된 동작 횟수 마다, Log-MAP 디코더(76)는 하드 결정(hard decision) 회로(82)에 의해 탭핑된다. 개시된 방법 및 장치의 일 실시예에 따라, 터보 디코더(70)는 10회 반복한다. 따라서, 사전설정된 반복 횟수 이후에, 하드 결정 회로(82)는 하드 결정
Figure 112008039074038-pct00029
를 출력한다. 출력은 도 1의 전송기(12)의 터보 엔코더(22)와 같은 대응하는 터보 엔코더에 입력된 원래 데이터 dk의 추정값이며, 디펑처링 회로(72)로부터 수신된 값을 생성하기 위해 사용된다. 하드 결정 회로 (82)의 터보 디코더 출력
Figure 112008039074038-pct00030
은 도 1의 소스 디코더(36)와 같은 소스 디코더로 전달된다.
이전의 터보 디코더는 둘 또는 그이상의 Log-MAP 디코더, 즉 제 1 동작 모드에서 한개의 대응하는 Log-MAP 디코더(76), 및 제 2 동작모드에서 다른 대응하는 Log-MAP 디코더(76)를 요구하였다.
도 4는 도 1의 공간 효율적인 터보 디코더(34)의 블록 다이어그램이다. 전원, 클록 회로, 증폭기, 및 등등과 같은 다양한 소자는 도 4에는 생략된다. 그러나, 본 기술에 접근하는 당업자는 도시되지 않은 임의의 필수소자가 어디에서 어떻게 사용되는지를 인식할 것이다. 공간 효율적인 디코더(34)의 터보 디코더 설계는 도 3의 두개의 메모리(80 및 88)와 같은 두개의 개별적인 외부 메모리에 대한 요구를 배제한다.
공간 효율적인 터보 디코더(34)는 디펑처링 회로(72), RAM(74), 및 Log-MAP 디코더(76)를 포함한다. Log-MAP 디코더(76)는 기록 인터리버(78), 제 1 MUX(100)의 제 1 입력, 하드 결정회로(82) 및 신호대 잡음비(SNR) 추정 회로(102)에 접속된다. SNR 추정 회로(102)의 출력은 마이크로프로세서/제어기(104)에 입력되어 디펑처링 회로(72)에 입력되는 도 1의 채널 디인터리버에 스케일링 피드백을 제공한다. 기록 인터리버의 출력(78)은 제 1 MUX(100)의 제 2 입력에 접속되며, 그 출력은 이중 포트 외부 메모리(110)에 입력된다. 이중 포트 외부 메모리(110)의 출력은 제 2 MUX(104)의 제 1 입력 및 판독 인터리버(106)의 입력에 접속된다. 기록 인터리버(106)의 출력은 제 2 MUX(104)의 제 2 입력에 접속된다. 제 2 MUX(104)의 출력은 RAM(74)에 입력된다. 모드 제어회로(108)는 제 1 MUX(100), 제 2 MUX(104), 및 이중 포트 외부 메모리(110)의 제어 단자에 접속된다. 모드 제어 회로(108)는 하기에서 더 자세히 논의되는 제 1 및 제 2 동작 모드간의 터보 디코더(34)의 모드를 선택적이며 주기적으로 스위칭하기 위해 MUX 스위칭을 제어한다.
터보 디코더(34)의 동작은 기능적으로 도 3의 터보 디코더(70)와 유사하다. 그러나, 기록 인터리버(78), 제 1 외부 메모리(88), 제 2 외부 메모리(80), 판독 인터리버(90), 2:1 MUX(92), 및 모드 선택기(94)를 포함하는 도 3의 섹션은 기록 인터리버(78), 제 1 MUX(100), 이중 포트 외부 메모리(110), 판독 인터리버(106), 제 2 MUX(104), 및 모드 제어기(109)를 포함하는 도 4의 회로로 대체된다. 따라서, 도 4에 개시된 디코더(34)에서 제 1 기능 루프는 이중 포트 외부 메모리(110), 판독 인터리버(106), 제 2 MUX(104), RAM 파일(74), Log-MAP 디코더(76), 기록 인터리버(78), 및 제 1 MUX(100)를 포함한다. 도 4의 개시된 디코더(34)에서 제 2 기능 루프는 이중 포트 메모리(110), 제 2 MUX(104), RAM 파일(74), Log-MAP 디코더(76), 및 제 1 MUX(100)를 포함한다.
제 1 기능 루프는 제 1 동작 모드에서 사용된다. 제 1 동작 모드에서, 이중 포트 외부 메모리(110)는 판독 인터리버(106)에 의해 판독되며, 그 출력은 모드 제어기(108)의 제어하에 제 2 MUX(104)의 출력으로 선택된다. 따라서, 도 3의 터보 디코더(70)와 유사하게, 디코더(34)의 제 1 동작 모드에서, 판독 인터리버(106)의 출력은 RAM(74)에 다시 제공된다. RAM 파일(74)로부터의 출력은 Log-MAP 디코더(76)에 접속된다. Log-MAP 디코더(76)로부터의 출력은 제 1 MUX(100)에 접속된다. 모드 제어기(108)는 MUX(100)가 기록 인터리버(78)로부터의 출력을 선택하도록 한다. 따라서, 기록 인터리버(78)로부터의 출력은 이중 포트 외부 메모리(110)에 접속되어 저장된다. 도 3의 디코더(70)의 동작과 유사하게 제 1 동작모드에서, Log-MAP 디코더(76)의 출력은 LLR Λ1k(식 1에 도시)의 추정값이다.
그러나, 도 3의 터보 디코더(70)는 두개의 외부 메모리를 요구하는 반면에, 도 4의 디코더(34)는 판독되거나 기록될 수 있는 오직 한개의 외부 메모리(110)를 요구한다. 사실상, 단일 외부 메모리(110)는 두개의 외부 메모리(80 및 88)보다 훨씬 작다. 실험 결과는 이중 포트 외부 메모리(110)가 두개의 외부 메모리(80 및 88)에 대한 4.365 제곱 밀리미터와 비교되는 약 2.542 제곱 밀리미터 영역을 차지함을 보여준다. 이는 41.5%의 메모리 공간 감소 또는 1.814 제곱 밀리미터의 공간 절약을 나타낸다. 상기 절약은 상당한 정도이다.
제 2 동작 모드에서, 모드 제어기(108)는 제 2 MUX(104)가 이중 포트 외부메모리(110)의 출력을 선택하도록 한다. 따라서, 이중 포트 외부 메모리(110)의 인터리빙된 외부 출력
Figure 112008039074038-pct00031
은 RAM 파일(74)에 피드백된다. RAM 파일(74)로부터의 출력은 Log-MAP 디코더(76)의 입력에 접속된다. 따라서, Log-MAP 디코더(76)는 인터리빙된 LLR을 나타내는
Figure 112008039074038-pct00032
(식(2)에 도시)를 추정한다. 모드 제어기(108)는 제 1 MUX(100)가 Log-MAP 디코더(76)의 출력을 선택하도록 한다. 따라서, Log-MAP 디코더(76)의 출력은 이중 포트 외부 메모리(110)에 기록된다. 따라서, 제 2 동작모드에서 도 4의 디코더(34)의 동작은 제 2 동작모드에서 도 3의 터보 디코더(70)의 동작과 유사하다.
제 1 동작모드에서, 기록 인터리버(78) 및 이중 포트 외부 메모리(110)는 인터리버, 즉 제 1 기능 섹션으로서 동작하지만, 이중 포트 외부 메모리(110) 및 판독 인터리버(106)는 디인터리버, 즉 제 2 기능 섹션으로 동작한다. 본 발명의 논의를 위해, 기능 섹션은 기능에 의해 달라지는 섹션을 말한다. 상기 정의에 따라서, 두가지 상이한 기능을 실행하는 단일 회로는 각각 제 1 기능 및 제 2 기능에 따라 제 1 기능 섹션 및 제 2 기능 섹션을 가지는 것으로 간주된다.
그러므로, 제 1 동작모드에서, Log-MAP 디코더(76)의 입력은 블록(110, 106)에 의해 디인터리빙된다. Log-MAP 디코더(76)의 출력은 블록(78, 110)에 의해 인터리빙되며 제 2 동작 모드에서 이용하기 위해 이중 포트 메모리에 저장된다. 따라서, 제 2 동작 모드에서 Log-MAP 디코더(76)에 접속되는 입력은 제 1 동작 모드에서 블록(78, 102)에 의해 사전에 인터리빙된다.
SNR 추정 회로(102)는 기술분야에 공지된 방법에 따라 신호 대 잡음 비(SNR)를 계산하기 위해 Log-MAP 디코더(76)의 출력을 이용한다. 결과 SNR은 채널 인터리버 스케일링 값을 계산하는 마이크로프로세서/제어기(104)에 제공된다. 스케일링 값 계산의 세부사항은 응용예에 따라 달라지며, 주어진 응용예의 요구에 적합하도록 당업자에 의해 결정될 수 있다. 스케일링 값은 이에 응답하여 채널 인터리빙 기능을 적절히 조절하는 도 1의 채널 인터리버(32)로 피드백된다. 당업자는 SNR 추정 회로(102) 및 마이크로프로세서/제어기(104)를 포함하는 채널 인터리빙 피드백 경로가 생략될 수 있음을 이해할 것이다.
본 발명은 1/3 데이터율 터보 디코더에 관한 것이지만, 당업자는 개시된 방법 및 장치가 다른 데이터율 터보 디코더를 이용하기 위해 적응될 수 있음을 이해할 것이다. 본 발명의 특징에 접근하는 당업자는 도 4의 터보 디코더가 다른 디코더 데이터율이나 주어진 응용예의 요구를 수용하도록 용이하게 스케일링되거나 조절될 수 있다.
본 발명의 특정 실시예에서, 판독 인터리버(90) 및 기록 인터리버(78)는 CDMA 2000 통신 산업 협회(TIA) 표준에 따라 구성될 수 있다. 인터리버(78, 90)는 데이터를 외부 메모리(110)에 입력하고 출력하기 위한 메모리 어드레스 계산을 수행하며, 이러한 계산은 이중 포트 외부 메모리(110)에 제어 입력으로서 제공된다.
10번 반복과 같은 소정수의 반복후에, 하드 결정 회로(82)는 식 (5) 또는 유사한 식에 따라 Log-MAP 디코더(76)의 출력을 하드 제한한다. 하드 결정 회로(82)의 출력은 도 1의 소스 엔코더(18)로부터 출력된 데이터 dk의 추정치
Figure 112003015125911-pct00033
이다. 추정치
Figure 112003015125911-pct00034
는 도 1의 소스 디코더(36)에 입력된다.
일 실시예에서, 터보 디코더 반복의 수는 고정되며 하드 결정 회로(82)가 Log-MAP 디코더(76)의 출력을 샘플링하기전에 10번에서 20번 사이에서 반복된다. 그러나, 반복 횟수는 응용예에 따라 달라질 수 있으며, 주기적 덧붙임 검사(CRC) 메트릭과 같은 품질 메트릭을 참조로 동적으로 결정될 수 있다. 따라서, 다른 실시예는 다른 반복 횟수를 수행할 수 있으며, 반복 횟수는 특정 실행에 적합하도록 디코더내에서 조절될 수 있다.
도 5는 도 4의 터보 디코더(34)의 판독 및 기록 타이밍을 도시하는 타이밍도이다. 클록 신호 시퀀스(120)의 주어진 클록 사이클에서, 도 4의 이중 포트 외부 메모리(110)의 2개 메모리 어드레스의 내용이 판독되는 반면, 후속하는 클록 사이클에서, 2개 메모리 어드레스의 내용이 기록된다.
도 6은 도 4의 공간-효율 이중 포트 외부 메모리(110)의 상세도를 도시한다. 이중 포트 외부 메모리(110)는 외부 메모리(110)가 제 1 동작 모드에 있거나 제 2 동작 모드에 있을 때 도 4의 기록 인터리버(78) 또는 Log-MAP 디코더(76)로부터 입력을 수신하는 제 1 1:2 디멀티플렉서(DEMUX)(130)를 포함한다. 상기 제 1 1:2 DEMUX(130)는 제 1 1:8 DEMUX(132)의 입력에 연결된다. 제 1 1:2 DEMUX(130)의 제 2 출력은 입력 레지스터(134)의 입력에 연결된다. 입력 레지스터(134)의 출력은 제 2 1:8 DEMUX(136)의 입력에 연결된다. 제 1 1:8 DEMUX의 8개 병렬 출력은 제 1 메모리 엘리먼트(138), 제 2 메모리 엘리먼트(140), 제 3 메모리 엘리먼트(142), 제 4 메모리 엘리먼트(144), 제 5 메모리 엘리먼트(146), 제 6 메모리 엘리먼트(148), 제 7 메모리 엘리먼트(150) 및 제 8 메모리 엘리먼트(152)를 포함하는 서로 다른 메모리 엘리먼트의 입력에 각각 연결되는 제 2 1:8 DEMUX(136)의 8개 병렬 출력에 연결된다. 8개 메모리 엘리먼트(138-152) 각각은 제 1 8:1 MUX(154)의 8개 병렬 입력 라인 중 하나에 접속되며, 제 1 8:1 MUX(154)의 병렬 입력 라인 각각은 제 2 8:1 MUX(156)의 대응하는 병렬 입력 라인에 연결된다. 제 1 8:1 MUX(154)의 출력은 2:1 MUX(158)의 제 1 입력에 연결된다. 제 2 8:1 MUX의 출력은 출력 레지스터 (160)의 입력에 접속된다. 레지스터(160)의 출력은 2:1 MUX(158)의 제 2 입력에 연결된다. 2:1 MUX(158)의 출력은 도 4의 RAM(74) 및 도 4의 판독 인터리버(106)에 제공된다. 어드레스 선택기(162)는 DEMUX(130, 132, 136) 및 MUX(154, 156, 158)의 제어 입력에 연결된다. 레지스터(134, 160)는 도 4의 어드레스 선택기(162) 및/또는 모드 제어기(108)를 통해 매번 다른 클록 사이클로 인에이블되는 제어 입력을 수신한다. 어드레스 선택기(162)는 도 4의 기록 인터리버(78), 판독 인터리버(106) 및 모드 제어기(108)로부터 입력을 수신한다. 기록 인터리버(78), 판독 인터리버 (106) 및 모드 제어기(108)는 이중 포트 외부 메모리(103)에 제어 입력을 제공한다.
동작시에, 도 4 및 6을 참조하면, 기록 인터리버(78)로부터의 LLR 또는 인터리빙된 LLR 출력을 나타내는 Log-MAP 디코더(76)로부터의 비트 스트림 출력은 1:2 DEMUX(130)에 입력된다. 제 1 동작 모드에서, Log-MAP 디코더(76)의 출력은 1:2 DEMUX(130)에 입력된다. 심볼에 대응하는 LLR 비트는 8개 메모리 엘리먼트(138-152) 중 선택된 하나에 기록된다.
외부 메모리(110)가 인터리버 서브모드에 있으면, 외부 메모리(110)는 선형적으로 기록되고 인터리빙되어 판독되며, 이것은 인터리빙을 나타낸다. 유사하게, 외부 메모리(110)가 디인터리버 서브모드에 있으면, 외부 메모리(110)는 인터리빙되어 기록되고 선형적으로 판독되며, 이것은 디인터리빙을 나타낸다.
제 1 동작 모드의 인터리버 서브모드에서, LLR 비트가 기록되는 메모리 엘리먼트는 주어진 데이터 프레임의 비트 위치를 나타내는 선형 어드레스에 기반한다. 외부 메모리(110)는 그후에 인터리빙되어 판독되며, 즉, MUX(158)의 출력은 선형 어드레스의 인터리빙된 버전을 나타내는 어드레스를 갖는 메모리 엘리먼트의 내용을 나타낸다.
외부 메모리(110)가 판독되기 전에, 2개의 메모리 엘리먼트가 기록된다. 하나의 메모리 엘리먼트는 주어진 심볼과 관련된 LLR 비트를 수신하며 최하위 비트로서 0을 갖는 선형 어드레스를 갖는다. 또 다른 메모리 엘리먼트는 최하위 비트로서 1을 갖는 선형 어드레스를 갖는다. 2개의 메모리 엘리먼트가 기록된후에, 2개 메모리 엘리먼트가 판독된다.
외부 메모리(110)가 디인터리버 서브모드에 있으면, 어드레스 선택기(162)는 주어진 심볼과 관련된 LLR이 인터리빙되어 기록되도록, 즉, 주어진 심볼의 인터리빙된 어드레스와 관련된 메모리 엘리먼트에 기록되도록 입력 DEMUX(130, 132, 136)를 제어한다. 주어진 심볼의 어드레스는 주어진 데이터 프레임의 디인터리빙된 비트 위치에 대응한다. 유사하게, 출력 MUX(154, 156, 158)의 스위칭은 외부 메모리(110)가 선형적으로 판독되도록, 즉 메모리 엘리먼트의 내용이 주어진 데이터 프레임의 비트 위치에 의해 결정된 대로 선형 어드레스를 갖도록 어드레스 선택기(162)에 의해 제어된다.
외부 메모리(110)의 판독 기능은 외부 메모리(110)의 기록 기능의 역기능이다. 예를 들어, 외부 메모리(110)에 대한 기록 인터리빙은 외부 메모리로부터의 판독 인터리빙과 유사하지만, 동작은 역순서로 수행된다.
어드레스 선택기(162)는 도 4의 기록 인터리버(78), 모드 제어기(108) 및 판독 인터리버로부터 입력을 수신한다. 어드레스 선택기(162)는 동작 모드에 따라 선형 기록, 인터리빙된 기록, 선형 판독 및/또는 인터리빙된 판독을 실행하기 위해 MUX 및 DEMUX 제어 신호를 발생시키도록 이러한 입력을 이용한다. 예를 들어, 제 1 동작 모드에서, 외부 메모리(110)는 인터리버로서 동작하고 선형적으로 기록되며 인터리빙되어 판독된다. 제 2 동작 모드에서, 외부 메모리는 디인터리버로서 동작하며 인터리빙되어 기록되며(기록 인터리버로부터 어드레스 선택기(162)로 인터리빙된 어드레스 입력에 기초함) 선형적으로 판독된다. 외부 메모리가 기록되고 판독되는 방법은 도 4의 모드 제어기(108)로부터 수신된 제어 입력에 의해 결정된 대로 동작 모드에 기초하여 어드레스 선택기(162)에 의해 제어된다.
모드 선택기 회로(94)가 단순한 타이밍 및 클록 회로를 이용하는 본 발명의 특징에 대해 당업자는 용이하게 이해할 수 있을 것이다. 게다가, 인터리버(78, 90)와 같은 판독 및 기록 인터리버는 기술분야에 공지되어 있다.
도 7은 도 6의 이중 포트 외부 메모리(110)를 판독하고 기록하는데 이용되는 CDMA 2000 터보 코드 인터리버(170)를 도시한다. 터보 코드 인터리버(170)는 도 4의 기록 인터리버(78) 또는 판독 인터리버(106)로서 이용하기 위해 당업자에 의해 변형될 수 있다.
도 4 및 7을 참조하면, 본 실시예에서, 터보 코드 인터리버(170)는 Log-MAP 디코더(76)로부터 입력 어드레스를 수신하는 행/열 분리기(172)를 포함한다. 입력 어드레스는 상기 주어진 데이터 프레임의 비트 위치를 나타낸다.
입력 어드레스는 m+n 비트 폭이다. 주어진 어드레스 심볼의 상위 n 비트는 열을 나타내는 반면, 하위 m 비트는 행을 나타낸다. 행/열 분리기(172)는 m 행 비트를 출력하며, 즉, 하위 m 비트를 비트 반전기(174) 및 룩업 테이블(LUT)(176)에 출력한다. 비트 반전기(174)는 m 비트를 반전시키고 상기 출력을 행/열 조합기(178)에 제공한다. LUT(176)는 각 열에 대해 한 비트씩 n 비트를 곱셈기 (180)에 출력한다.
행/열 분리기(172)로부터 출력된 n 열 비트는 수신된 n 열 비트에 1을 더하고 그에 응답하여 곱셈기(180)의 입력에 n 출력 열 비트를 제공하는 가산기(182)에 입력된다. 곱셈기(180)는 가산기(182)의 출력을 LUT(176)의 출력과 곱하며 그에 응답하여 n 열 비트를 행/열 조합기(178)에 출력한다. 행/열 조합기(178)는 m+n 비트를 외부 메모리(110)에 출력하며, 여기서 상위 m 비트는 비트 반전기(174)로부터 출력된 비트 반전 m 비트를 나타내며, 하위 n 비트는 곱셈기(180)의 출력을 나타낸다. 행/열 조합기(178)로부터 출력된 불량 어드레스는 불량 어드레스 결정 회로(184)에 의해 선택되며 그후에 폐기된다.
도 6의 외부 메모리(102)는 이러한 특정 인터리빙 어드레스 발생의 속성을 이용하는데, 즉, 매 2개의 연속하여 인터리빙된 어드레스는 다음의 어드레스 중 하나를 가질 것이다: 00XXXX, 01XXXX, 10XXXX 및 11XXXX. 이러한 2개의 어드레스는 동일한 2개의 최상위 비트를 갖지 않을 것이다. 다른 인터리빙 방식(예를 들어, W-CDMA)에 대해, 당업자는 2개의 연속하여 인터리빙된 어드레스가 룩업 테이블 매핑에 의해서와 같은 소정의 방법으로 서로 다르도록 적절한 인터리빙 속성을 용이하게 결정할 수 있다.
당업자는 개시된 방법 및 장치의 범위내에서 부가의 변형, 응용 및 실시를 인식할 것이다. 따라서, 본 발명은 여기에 개시된 특정 방법 및 장치에 제한되지 않으며 첨부된 청구범위에 의해서만 제한된다.

Claims (7)

  1. 제 1 및 제 2 동작모드를 가진 터보 디코딩 회로로서,
    (a) 제 1 동작모드에서 사용하기 위한 제 1 기능루프를 포함하는데, 상기 제 1루프는,
    (1) 입력 및 출력을 가진 기록 인터리버,
    (2) 상기 기록 인터리버 출력에 접속된 입력, 및 출력을 가진 하나의 이중 포트 외부(extrinsic) 메모리,
    (3) 상기 이중 포트 외부 메모리의 출력에 접속된 입력, 및 출력을 가진 판독 인터리버,
    (4) 상기 판독 인터리버의 출력에 접속된 입력, 및 출력을 가진 버퍼회로, 및
    (5) 상기 버퍼의 출력에 접속된 입력, 및 상기 기록 인터리버에 접속된 출력을 가진 Log-MAP 디코더를 포함하며;
    (b) 제 2 동작모드에서 사용하기 위한 제 2기능루프를 포함하며, 상기 제 2루프는,
    (1) 상기 이중 포트 외부 메모리,
    (2) 상기 이중 포트 외부 메모리의 출력에 접속된 입력을 가진 상기 버퍼 회로, 및
    (3) 상기 버퍼 회로의 출력에 접속된 입력과, 상기 이중 포트 외부 메모리의 입력에 접속된 출력을 가진 상기 Log-MAP 디코더를 포함하는 터보 디코딩회로.
  2. 제 1항에 있어서,
    (a) 출력과 제 1 및 제 2입력을 가진 멀티플렉서를 더 포함하는데, 상기 제 1 입력은 상기 기록 인터리버에 접속되며, 상기 제 2 입력은 상기 Log-MAP 디코더의 출력에 접속되며, 상기 멀티플렉서의 출력은 상기 이중 포트 외부 메모리의 입력에 접속되며; 및
    (b) 상기 멀티플렉서에 접속된 타이밍 회로를 더 포함하며,
    상기 멀티플렉서 및 상기 타이밍 회로는 상기 제 1 기능루프 및 상기 제 2기능루프 사이를 스위칭함으로써 상기 제 1동작모드 및 상기 제 2동작모드를 형성하는 것을 특징으로 하는 터보 디코딩 회로.
  3. 제 2항에 있어서,
    출력과 제 1 및 제 2입력을 가진 제 2 멀티플렉서를 더 포함하며, 상기 제 1입력은 상기 판독 인터리버의 출력에 접속되며, 상기 제 2 멀티플렉서의 제 2 입력은 상기 이중 포트 외부 메모리의 출력에 접속되며, 상기 제 2 멀티플렉서의 출력은 상기 버퍼회로의 입력에 접속되는 것을 특징으로 하는 터보 디코딩 회로.
  4. 제3항에 있어서,
    상기 이중 포트 외부 메모리는 최대 로그 사후 확률(logarithmic maximum a posteriori) 알고리즘을 구현하기 위해 상기 루프에 의해 사용된 유일한 외부 메모리인 것을 특징으로 하는 터보 디코딩 회로.
  5. (a) 최대 로그 사후 확률 알고리즘을 구현하도록 구성되며, 디코더, 기록 인터리버, 판독 인터리버, 및 하나의 이중 포트 외부 메모리를 포함하는 루프; 및
    (b) 상기 디코더, 상기 기록 인터리버, 상기 판독 인터리버 및 상기 이중 포트 외부 메모리가 최대 로그 사후 확률 알고리즘(Log-MAP)을 구현하도록, 제어신호에 응답하여 상기 기록 인터리버 또는 상기 판독 인터리버를 선택적으로 바이패스하기 위한 제 1멀티플렉서 및 제 2멀티플렉서를 포함하며, 상기 제 1멀티플렉서는 상기 디코더와 상기 이중 포트 외부 메모리 사이에 접속되고, 상기 제 2멀티플렉서는 판독 인터리버의 출력에 접속된, 공간 효율적인 터보 디코더.
  6. 제 5항에 있어서,
    상기 제 1 및 제 2 멀티플렉서를 제어하기 위한 제어신호를 발생시키는 제어기를 더 포함하는 것을 특징으로 하는 공간 효율적인 터보 디코더.
  7. (a) 버퍼 회로와 통신하는 채널 디인터리버;
    (b) 상기 버퍼 회로의 출력에 접속된 최대 로그 사후 확률 디코더(Log-MAP)- 상기 Log-MAP 디코더의 출력은 하드 결정회로에 접속되며, 상기 하드 결정회로의 출력은 공간효율적인 터보 디코더의 출력을 제공함-;
    (c) 상기 Log-MAP 디코더의 출력에 접속된 기록 인터리버-상기 기록 인터리버의 출력은 제 1 멀티플렉서의 제 1입력에 접속되며, 상기 제 1 멀티플렉서의 제 2 입력은 상기 Log-MAP 디코더의 출력에 접속되며, 상기 제 1멀티플렉서의 출력은 이중 포트 외부 메모리의 입력에 접속됨-;
    (d) 상기 이중 포트 외부 메모리의 출력에 접속된 판독 인터리버-상기 판독 인터리버의 출력은 제 2 멀티플렉서의 제 1입력에 접속되며, 상기 제 2 멀티플렉서의 제 2입력은 상기 이중 포트 외부 메모리의 출력에 접속되며, 상기 제 2 멀티플렉서의 출력은 상기 버퍼 회로의 입력에 접속되며, 상기 Log-MAP 디코더, 상기 기록 인터리버, 상기 이중 포트 외부 메모리, 및 상기 판독 인터리버는 Log-MAP 알고리즘을 구현하도록 구성됨-; 및
    (e) 상기 Log-MAP 디코더, 상기 기록 인터리버, 상기 이중 포트 외부 메모리, 및 상기 판독 인터리버가 상기 Log-MAP 알고리즘을 구현하도록 상기 멀티플렉서들의 입력들을 선택적으로 인에이블하는 제어기를 포함하는 공간효율적인 터보 디코더.
KR1020037005882A 2000-10-27 2001-10-25 공간-효율적인 터보 디코더 KR100899732B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/699,252 2000-10-27
US09/699,252 US6662331B1 (en) 2000-10-27 2000-10-27 Space-efficient turbo decoder
PCT/US2001/051434 WO2002069503A2 (en) 2000-10-27 2001-10-25 Space-efficient turbo decoder

Publications (2)

Publication Number Publication Date
KR20030040560A KR20030040560A (ko) 2003-05-22
KR100899732B1 true KR100899732B1 (ko) 2009-05-27

Family

ID=24808524

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037005882A KR100899732B1 (ko) 2000-10-27 2001-10-25 공간-효율적인 터보 디코더

Country Status (12)

Country Link
US (1) US6662331B1 (ko)
EP (2) EP1354412A2 (ko)
JP (2) JP4028387B2 (ko)
KR (1) KR100899732B1 (ko)
CN (1) CN1295883C (ko)
AU (1) AU2001297548A1 (ko)
BR (1) BR0114906A (ko)
CA (1) CA2427153C (ko)
HK (1) HK1061751A1 (ko)
IL (2) IL155582A0 (ko)
MX (1) MXPA03003665A (ko)
WO (1) WO2002069503A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333419B2 (en) * 2000-11-30 2008-02-19 Sasken Communication Technologies, Inc. Method to improve performance and reduce complexity of turbo decoder
WO2002087088A2 (en) * 2001-04-24 2002-10-31 Intel Corporation Methods and apparatus of signal demodulation combining with different modulations and coding for wireless communications
US6987778B2 (en) 2001-05-22 2006-01-17 Qualcomm Incorporated Enhanced channel interleaving for optimized data throughput
AU2002336576A1 (en) * 2001-09-17 2003-04-01 Morpho Technologies Digital signal processor for wireless baseband processing
US7315576B1 (en) * 2002-02-05 2008-01-01 Qualcomm Incorporated System for soft symbol decoding with MIMO log-map detection
FR2839830A1 (fr) * 2002-05-17 2003-11-21 Koninkl Philips Electronics Nv Memoire pour decodeur turbo
KR20040068771A (ko) * 2003-01-27 2004-08-02 삼성전자주식회사 소프트 복조 방법 및 소프트 복조 장치
KR20060009336A (ko) * 2003-05-14 2006-01-31 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 심볼 검출 방법, 심볼 검출 장치, 통신 수신기 및 셀룰러전화 세트
KR100630168B1 (ko) * 2004-08-09 2006-09-29 삼성전자주식회사 이동통신 시스템에서 비터비 디코더의 공유 방법 및 장치
US7447984B2 (en) * 2005-04-01 2008-11-04 Broadcom Corporation System correcting random and/or burst errors using RS (Reed-Solomon) code, turbo/LDPC (Low Density Parity Check) code and convolutional interleave
EP1826911A1 (de) * 2006-02-28 2007-08-29 Siemens Aktiengesellschaft Codierung und Decodierung mit Trellis-codierter Modulation
JP5009418B2 (ja) * 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
US20120106683A1 (en) * 2009-06-18 2012-05-03 Zte Corporation Method and apparatus for parallel turbo decoding in long term evolution system (lte)
US8468432B2 (en) * 2009-07-01 2013-06-18 Silicon Motion, Inc. Coder-decoder and method for encoding and decoding an error correction code
KR101673233B1 (ko) * 2010-05-11 2016-11-17 삼성전자주식회사 트랜잭션 분할 장치 및 방법
US8499226B2 (en) * 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
JP5696604B2 (ja) * 2011-06-30 2015-04-08 富士通株式会社 誤り訂正符号の復号装置、誤り訂正符号の復号方法及び基地局装置ならびに移動局装置
JP5500203B2 (ja) * 2012-05-18 2014-05-21 住友電気工業株式会社 軟判定復号装置および軟判定復号プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000010254A1 (en) * 1998-08-14 2000-02-24 Qualcomm Incorporated Memory architecture for map decoder
WO2000027037A2 (en) * 1998-11-05 2000-05-11 Qualcomm Incorporated Efficient iterative decoding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434203B1 (en) * 1999-02-26 2002-08-13 Qualcomm, Incorporated Memory architecture for map decoder
US6263467B1 (en) * 1998-08-20 2001-07-17 General Electric Company Turbo code decoder with modified systematic symbol transition probabilities
US6343368B1 (en) * 1998-12-18 2002-01-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for fast maximum a posteriori decoding
DE69934606T2 (de) * 1999-02-26 2007-10-04 Fujitsu Ltd., Kawasaki Turbodekoder und verschachtel-/endschachtelapparat
US6732327B1 (en) * 2000-05-05 2004-05-04 Nokia Networks Oy Scaled-feedback turbo decoder
US6392572B1 (en) * 2001-05-11 2002-05-21 Qualcomm Incorporated Buffer architecture for a turbo decoder

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000010254A1 (en) * 1998-08-14 2000-02-24 Qualcomm Incorporated Memory architecture for map decoder
WO2000027037A2 (en) * 1998-11-05 2000-05-11 Qualcomm Incorporated Efficient iterative decoding

Also Published As

Publication number Publication date
CN1295883C (zh) 2007-01-17
US6662331B1 (en) 2003-12-09
JP2008022569A (ja) 2008-01-31
AU2001297548A1 (en) 2002-09-12
BR0114906A (pt) 2004-11-09
WO2002069503A2 (en) 2002-09-06
CA2427153A1 (en) 2002-09-06
IL155582A (en) 2008-04-13
EP2040384A1 (en) 2009-03-25
JP4805883B2 (ja) 2011-11-02
MXPA03003665A (es) 2004-05-04
JP2004533140A (ja) 2004-10-28
JP4028387B2 (ja) 2007-12-26
CN1483246A (zh) 2004-03-17
KR20030040560A (ko) 2003-05-22
EP1354412A2 (en) 2003-10-22
WO2002069503A3 (en) 2003-08-21
CA2427153C (en) 2010-03-30
IL155582A0 (en) 2003-11-23
HK1061751A1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
JP4805883B2 (ja) 空間効率のよいターボデコーダ
JP4298170B2 (ja) マップデコーダ用の区分されたデインターリーバメモリ
JP4092352B2 (ja) 復号装置、復号方法、及び受信装置
JP4101653B2 (ja) インターリーバ・メモリ内の復調データのスケーリング
KR20100023962A (ko) 랜덤-액세스 다방향 cdma2000 터보 코드 인터리버
JP5129216B2 (ja) マップ・デコーダのためのメモリ・アーキテクチャ
US6434203B1 (en) Memory architecture for map decoder
JP2008099048A (ja) 復号装置及び復号方法
US7886209B2 (en) Decoding device, decoding method, and receiving apparatus
Sayhood et al. Performance analysis of punctured convolutional codes and turbo-codes
KR101066287B1 (ko) 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
EP2036208A2 (en) Turbo decoder with extrinsic information scaling modules
EP1587218B1 (en) Data receiving method and apparatus
KR101496455B1 (ko) 다중 사용자 통신시스템의 수신 장치 및 제어 방법
Sabeti et al. New VLSI design of a max-log-MAP decoder
Soleymani et al. Turbo Decoding Principles
WO2004038928A1 (en) Communication unit and method of decoding

Legal Events

Date Code Title Description
A201 Request for examination
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: 20130429

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 11