KR20040085545A - 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법 - Google Patents

통신 시스템에서 오류 정정 부호의 복호 장치 및 방법 Download PDF

Info

Publication number
KR20040085545A
KR20040085545A KR1020030020255A KR20030020255A KR20040085545A KR 20040085545 A KR20040085545 A KR 20040085545A KR 1020030020255 A KR1020030020255 A KR 1020030020255A KR 20030020255 A KR20030020255 A KR 20030020255A KR 20040085545 A KR20040085545 A KR 20040085545A
Authority
KR
South Korea
Prior art keywords
ifht
symbol
input
block code
information
Prior art date
Application number
KR1020030020255A
Other languages
English (en)
Inventor
박성은
김재열
박성일
김영균
이현우
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020030020255A priority Critical patent/KR20040085545A/ko
Priority to US10/811,547 priority patent/US20040193995A1/en
Priority to PCT/KR2004/000734 priority patent/WO2004088866A1/en
Priority to EP04007728A priority patent/EP1465351A3/en
Priority to RU2005102107/09A priority patent/RU2280323C2/ru
Priority to JP2005518773A priority patent/JP2006515495A/ja
Priority to CA002493430A priority patent/CA2493430A1/en
Priority to CNA2004800005565A priority patent/CN1698282A/zh
Priority to AU2004225405A priority patent/AU2004225405A1/en
Publication of KR20040085545A publication Critical patent/KR20040085545A/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/31Coding, 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 coding for error detection or correction and efficient use of the spectrum
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/136Reed-Muller [RM] 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/45Soft decoding, i.e. using symbol reliability information
    • 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/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/456Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein all the code words of the code or its dual code are tested, e.g. brute force decoding

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호의 생성 행렬 정보와, 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보를 가지고 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하고, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 결정된 심볼 위치 정보에 상응하게 IFHT의 입력으로 재배치하며, 상기 재배치한 심볼들을 입력하여 IFHT를 수행한 후, 상기 IFHT를 수행한 결과들 중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력한다.

Description

통신 시스템에서 오류 정정 부호의 복호 장치 및 방법{APPARATUS FOR DECODING ERROR CORRECTION DOE IN COMMUNICATION SYSTEM AND METHOD THEREOF}
본 발명은 통신 시스템의 오류 정정 부호 복호 장치 및 방법에 관한 것으로서, 특히 임의의 정보 비트 길이와 블록 길이를 가지는 블록 부호를 복호하는 복호 장치 및 방법에 관한 것이다.
통상적으로 부호 분할 다중 접속(CDMA: Code Division Multiple Access, 이하 "CDMA"라 칭하기로 한다) 통신 시스템은 전송 채널에서 발생하는 잡음으로 인한 오류를 정정하기 위한 오류 정정(error correction)을 수행한다. 일반적으로 상기 오류 정정을 위한 오류 정정 방식은 송신측에서 정보 비트(information bits)를 오류 정정 기법, 즉 부호화 방식(coding scheme)을 사용하여 부호화한 부호어(codeword)를 수신측으로 송신하고, 상기 수신측이 상기 송신측에서 송신한 부호어를 수신한 후, 상기 송신측에서 적용한 부호화 방식에 상응하는 복호화방식(decoding scheme)을 사용하여 상기 수신된 부호어를 복호화하여 원래의 정보 비트로 복원하는 방식을 나타낸다. 상기 CDMA 통신 시스템에서 사용되는 대표적인 오류 정정 방식은 블록 부호(block code)를 사용하는 방식과 트렐리스 부호(trellis code) 부호를 사용하는 방식의 2가지 방식들이 존재한다.
첫 번째로, 상기 블록 부호를 사용하는 오류 정정 방식을 설명하기로 한다.
상기 블록 부호를 사용하는 오류 정정 방식은 일정한 길이의 송신 정보 비트들, 일 예로 k개의 비트(k bits)에 추가 비트, 일 예로 r개의 비트(r bits)를 삽입하여 n(n = k + r) 비트의 블록 부호로 부호화하여 송신하는 방식으로서, 송신측은 k 비트의 정보 비트를 전송하기 위해서 n 비트의 블록 부호, 즉 (n, k) 블록 부호를 송신한다. 그러면 수신측은 상기 송신측에서 송신한 (n, k) 블록 부호를 수신하고, 상기 수신한 (n, k) 블록 부호를 복호화하여 원래의 k 비트 정보 비트를 추출한다. 또한, 상기 블록 부호를 사용하는 오류 정정 방식의 경우 오류 정정 능력을 증가시키기 위해서는 상기 추가 비트수를 증가시키면 된다. 그리고, 상기 블록 부호의 경우 그 부호어의 크기가 변하게 되면 부호기(encoder) 및 복호기(decoder) 구조가 변경되며, 따라서 동일한 한 시스템에서 서로 다른 길이의 블록 부호를 사용할 경우 상기 서로 다른 길이의 블록 부호를 위한 부호기 및 복호기가 별도로 구비되어야만 한다는 문제점이 있다. 여기서, 상기 블록 부호의 대표적 예로는 BCH 부호, 리드 솔로몬(Reed-Solomon) 부호 등이 있으며, 상기 블록 부호는 Berlekamp-Massey 알고리즘(algorithm), 유클리드 알고리즘 등을 이용하여 경판정(hard decision) 복호된다.
두 번째로, 상기 트렐리스 부호를 사용하는 오류 정정 방식을 설명하기로 한다.
상기 트렐리스 부호를 사용하는 오류 정정 방식은 송신 정보 비트를 블록으로 세그멘테이션(segmentation)하여 처리하는 방식이 아니라, 쉬프트 레지스터(shift register)에 순서대로 입력시켜 미리 결정되어 있는 로직(logic)들을 통해 트렐리스 부호로 부호화하여 전송하는 방식이다. 상기 입력되는 송신 정보 비트당 출력 비트수의 비율을 부호화율(coding rate)이라고 하며, 송신측은 상기 부호화율에 상응하게, 일 예로 부호화율이 1/k일 경우 1비트의 정보 비트를 k 비트의 출력 비트로 부호화하여 송신한다. 그러면 수신측은 상기 송신측에서 송신한 부호화율 1/k의 트렐리스 부호를 수신하고, 상기 수신한 부호화율 1/k의 트렐리스 부호를 복호화하여 원래의 k 비트 정보 비트를 추출한다. 상기 트렐리스 부호를 사용하는 오류 정정 방식의 경우 오류 정정 능력을 증가시키기 위해서는 부호화율을 감소시켜야 한다. 여기서, 상기 트렐리스 부호의 대표적 예로는 컨벌루셔녈(convolutional) 부호와, 터보(turbo) 부호 등이 있으며, 상기 트렐리스 부호는 비터비(Viterbi) 알고리즘 등을 이용하여 연판정(soft decision) 복호된다.
상기에서 설명한 바와 같이 블록 부호는 일반적으로 복호 과정에서 경판정 복호되는데, 상기 경판정 복호는 수신 신호를 1 혹은 -1로만 판단하여 복호를 수행함으로써 그 복호 성능(decoding perfomance)이 일반적으로 상기 연판정 복호에 비해서 저하된다. 또한, 상기에서 설명한 바와 같이 트렐리스 부호는 일반적으로 복호 과정에서 연판정 복호되는데, 상기 연판정 복호는 수신 신호를 그가중치(weight value)에 따라 판단하여 복호를 수행함으로써 상기 경판정 복호에 비해 그 복호 성능이 향상된다. 일반적으로 상기 연판정 복호는 상기 경판정 복호에 비해 그 성능이 2[dB] 정도 향상된다. 그러나, 상기 연판정 복호는 수신 신호를 상기 경판정 복호와 같이 단순하게 1 혹은 -1로만 판단하여 복호를 수행하는 것이 아니라 가중치를 고려하여 복호를 수행하기 때문에 그 복호 과정의 연상량이 크게 증가되며, 하드웨어(hardware)적인 복잡도(complexity)도 역시 크게 증가된다. 이런 이유로, 수신되는 블록의 길이, 즉 비트수가 어느 정도 이상 커지면 상기 연판정 복호를 적용하는 것은 난이하다.
이렇게 연판정 복호 방식이 경판정 복호 방식보다 그 복호 성능이 뛰어나기 때문에 현재 CDMA 통신 시스템은 비교적 그 블록 길이가 짧은 제어 신호(control signal)의 경우 블록 부호를 사용하고, 비교적 그 블록 길이가 긴 정보 신호(information signal)의 경우 트렐리스 부호, 즉 컨벌루셔널 부호 혹은 터보 부호를 사용함으로써 연판정 복호를 구현하고 있다.
그러면 여기서 도 1을 사용하여 블록 부호를 사용하는 통신 시스템에서 상관기(correlator)를 사용하는 연판정 복호 장치를 설명하기로 한다.
상기 도 1은 일반적인 상관기를 사용하는 연판정 복호 장치 내부 구조를 도시한 도면이다.
상기 도 1을 참조하면, 먼저 수신측으로 수신되는 수신 신호 r은 상관기(100)로 입력된다. 여기서, 송신측은 임의의 블록 부호를 이진 위상 쉬프트 키잉(BPSK: Binary Phase Shift Keying, 이하 "BPSK"라 칭하기로 한다) 방식을 사용하여 변조한 변조 신호를 송신하였다고 가정하기로 하며, 일 예로 {+1, -1}의 변조 신호를 송신하였다고 가정하기로 한다. 그러면 상기 수신 신호 r은 상기 송신측에서 송신한 {+1, -1}의 변조 신호가 채널 상황을 겪으면서 잡음(noise) 성분과 간섭(interference) 성분이 가산된 신호가 되며, 따라서 상기 수신 신호 r은 {+1, -1}이 아닌 실수값을 가지게 된다. 상기 상관기(100)는 상기 수신 신호 r을 입력하여 상기 통신 시스템의 송신측에서 송신 가능한 블록 부호의 가능한 모든 부호어들 각각에 대해서 상관한 후, 상기 수신 신호 r과 상기 모든 부호어들 각각과의 상관값(correlation value)들을 비교 선택기(comparator & selector)(110)로 출력한다. 상기 비교 선택기(110)는 상기 상관기(100)에서 출력한 상기 수신 신호 r과 상기 모든 부호어들 각각과의 상관값들을 비교하고, 상기 비교 결과 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 전송한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(110)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다.
그러면 여기서, 상기 도 1의 연판정 복호 장치에서 (n, k) 블록 부호를 복호화하는 과정을 설명하면 다음과 같다.
먼저, 송신측에서 (n, k) 블록 부호를 송신하였을 경우, 수신측은 상기 (n, k) 블록 부호에 잡음 성분 및 간섭 성분이 포함된 실수 성분의 수신 신호 r을 수신하게 되고, 상기 실수 성분의 수신 신호 r은 상기 상관기(100)로 제공된다. 상기 상관기(100)는 상기 송신측에서 송신 가능한, (n, k) 블록 부호의 모든 부호어들 각각에 대해서 상기 수신 신호 r과 상관을 수행하고, 그 상관 결과들을 상기 비교선택기(110)로 출력한다. 여기서, 상기 상관기(100)의 상관 동작에 따른 연산량을 고려하면 다음과 같다.
먼저, (n, k) 블록 부호의 발생 가능한 모든 부호어들을 고려하면 길이 n의 부호어가 2k개 존재하고, 상기 2k개의 길이 n의 부호어들 각각에 대해서 상관을 수행해야하므로번의 곱셈 과정과,번의 덧셈 과정이 필요로 하게 된다. 일 예로, (n, k) 블록 부호를 (10,3) 블록 부호라고 가정하면, 상기 (10,3) 블록 부호의 발생 가능한 모든 부호어들은 8개의 길이 10의 부호어들이며, 상기 8개의 (10,3) 블록 부호의 부호어들 각각에 대해서 상관을 수행해야 하므로번의 곱셈 과정과,번의 덧셈 과정이 필요로 된다. 상기 k 및 n 값이 커질 경우, 특히 상기 k값이 커질 경우 상기 상관 수행을 위한 곱셈 과정 및 덧셈 과정의 횟수는 기하 급수적으로 증가하게 되며, 결과적으로 연산 과정의 로드로 인해 전체 시스템의 성능이 저하된다는 문제점을 가진다. 그래서, 일반적으로 블록 부호의 경우 연판정 복호를 적용하기 위해서는 그 정보 비트, 즉 k의 길이에 한정성(일 예로, 14비트 이하)을 가지기 때문에, 연판정 복호의 성능이 경판정 복호 성능 대비 뛰어난 효과를 가짐에도 적용하지 못하는 경우가 발생하게 된다.
상기 도 1에서는 상관기를 사용하는 연판정 복호 장치 내부 구조를 설명하였으며, 다음으로 도 2를 참조하여 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform, 이하 "IFHT"라 칭하기로 한다)을 수행하는 역 고속 하다마드 변환기(이하 "IFHT기"라 칭하기로 한다)를 사용하는 연판정 복호 장치를 설명하기로 한다.
상기 도 2는 일반적인 IFHT기를 사용하는 직렬 구조 연판정 복호 장치 내부 구조를 도시한 도면이다.
상기 도 2를 설명하기에 앞서, 상기 직렬 구조라 함은 하기에서 설명할 마스크(mask) Mi를 순차적으로 고려하는 형태를 나타낸다. 이와는 달리 하기에서는 도 3을 참조하여 IFHT기를 사용하는 병렬 구조 연판정 복호 장치를 설명할 것인데, 이 경우 상기 병렬 구조라 함은 상기 마스크 Mi를 일시적으로 병렬 고려하는 형태를 나타낸다. 상기 도 2를 참조하면, 먼저 수신측으로 수신되는 수신 신호 r은 마스크 곱셈기(mask multiplier)(210)로 입력된다. 여기서, 상기 수신측에 상응하는 송신측은 생성 행렬(generator matrix)이 월시(Walsh) 부호의 기저(basis)들을 포함하는 블록 부호를 송신한다. 상기 마스크 곱셈기(210)는 상기 수신 신호 r과 제어기(controller)(200)에서 출력하는 마스크 Mi를 곱한 후 IFHT기(220)로 출력한다. 상기 IFHT기(220)는 상기 마스크 곱셈기(210)에서 출력한 신호를 입력하여 IFHT를 수행한 후 그 결과를 비교 선택기(230)로 출력한다. 여기서, 상기 도 2의 연판정 복호 장치는 직렬 구조를 가지므로 상기 제어기(200)는 최초에는 마스크가 적용되지 않는 경우를 가정하여 상기 마스크 Mi를 출력하지 않고, 이후 상기 제어기(200)는 순차적으로 해당하는 마스크 Mi를 상기 마스크 곱셈기(210)로 출력한다. 일 예로, 마스크가 M1과 M2의 2개가 존재할 경우, 상기 제어기는 최초에는 마스크 Mi를 적용하지 않고, 이후부터 순차적으로 상기 마스크 M1과, 마스크 M2와, 상기 마스크 M1과 마스크 M2의 배타적 논리합(XOR)을 상기 마스크 곱셈기(210)로 출력한다.
그래서, 상기 IFHT기(220)는 상기 마스크 곱셈기(210)에서 출력한 모든 신호들, 즉 마스크가 적용되지 않은 신호, 즉 수신 신호 r과, 상기 수신 신호 r과 마스크 M1이 곱해진 신호와, 상기 수신 신호 r과 마스크 M2가 곱해진 신호와, 상기 수신 신호 r과 마스크 M1과 마스크 M2의 배타적 논리합이 곱해진 신호들 각각에 대해서 순차적으로 IFHT를 수행하고, 그 결과를 상기 비교 선택기(230)로 출력한다. 상기 비교 선택기(230)는 상기 IFHT기(220)에서 출력한 모든 IFHT 결과값들을 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 전송한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(220)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다. 여기서, 상기 제어기(200) 및 마스크 곱셈기(210)의 동작은 하기에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다.
그러면 여기서 (n, k) 리드 뮬러(Reed-Muller) 부호, 일 예로 (8,3) 리드 뮬러 부호에 대해서 설명하기로 하며, 상기 (8, 3) 리드 뮬러 부호는 하기 표 1과 같다.
정보 비트 부호어
000 00000000
001 01010101
010 00110011
011 01100110
100 00001111
101 01011010
110 00111100
111 01101001
상기 표 1에 나타낸 바와 같이, 3비트의 정보 비트가 입력될 때 발생 가능한 (8,3) 리드 뮬러 부호의 부호어는 23개, 즉 8개이며, 정보 비트가 "000"일 경우에는 "00000000"의 부호어가, 정보 비트가 "001"일 경우에는 "01010101"의 부호어가, 정보 비트가 "010"일 경우에는 "00110011"의 부호어가, 정보 비트가 "011"일 경우에는 "01100110"의 부호어가, 정보 비트가 "100"일 경우에는 "00001111"의 부호어가, 정보 비트가 "101"일 경우에는 "01011010"의 부호어가, 정보 비트가 "110"일 경우에는 "00111100"의 부호어가, 정보 비트가 "111"일 경우에는 "01101001"의 부호어가 생성된다.
상기 표 1과 같은 (8, 3) 리드 뮬러 부호의 생성 행렬은 하기 수학식 1과 같다.
상기 수학식 1에서 G는 생성 행렬을 나타내며, 상기 수학식 1의 생성 행렬에서 행(row)의 수가 입력 정보 비트수 k와 동일하며, 열(column)의 수가 상기 출력 비트수 n과 동일하므로, 상기 생성 행렬에 따라 생성되는 리드 뮬러 부호는 (8,3)리드 뮬러 부호가 되는 것이다. 상기 생성 행렬의 행들 각각이 기저이며, 따라서 상기 생성 행렬에는 3개의 기저들이 존재한다.
그러면 여기서, 상기 (8,3) 리드 뮬러 부호를 복호화하는 과정에서 발생하는 연산량을 고려하면 다음과 같다.
먼저, 상기 (8,3) 리드 뮬러 부호에 대한 모든 부호어들을 고려하면 길이 8의 부호어가 8개 존재하고, 상기 8개의 길이 8의 부호어들 각각에 대해서 IFHT를 수행해야한다. 상기 (8,3) 리드 뮬러 부호를 가지고 IFHT를 수행하는 과정을 도 4를 참조하여 설명하기로 한다.
상기 도 4는 일반적인 IFHT 수행 과정을 개략적으로 도시한 도면이다.
상기 도 4에는 상기의 예와 같이 (8,3) 리드 뮬러 부호를 고려한 경우의 IFHT 수행 과정이 도시되어 있다. 상기 도 4를 참조하면, 먼저 수신 신호 r은 (8,3) 리드 뮬러 부호의 부호어에 잡음 및 간섭 성분이 삽입된 신호이므로 하기와 같이 표현하기로 한다.
r = r1 r2 r3r4r5r6r7r8
여기서, 상기 r1 내지 r8 각각을 수신 심볼이라고 칭하기로 한다. 그리고, 상기 IFHT가 상기 도 1에서 설명한 상관기(100)와 같이 100% 성능의 연판정을 하기 위해서는 상기 (8, 3) 리드 뮬러 부호에서 발생 가능한 모든 부호어들 각각과 상기 수신 신호 r과의 상관을 고려해야한다. 결국, 100% 성능의 연판정을 한다는 것은 결국 수신 신호 r에 대해서 모든 부호어들 각각에 대한 상관을 수행한다는 것을 나타내는 것이다. 실제 상기 (8, 3) 리드 뮬러 부호는 상기 표 1에 나타낸 바와 같지만, 이는 디지털 데이터(digital data)로서 표현한 것이며, 실제 에어(air)상에서 상기 디지털 데이터들은 일 예로 BPSK 방식으로 변조되기 때문에 상기 디지털 데이터 "0"은 "+1"로, 상기 디지털 데이터 "1"은 "-1"로 대응되어 전송된다. 따라서, 상기 표 1에서 나타낸 (8, 3) 리드 뮬러 부호를 BPSK 변조된 성분들로 대응시키면 하기 표 2와 같다.
정보 비트 BPSK 방식으로 변조된 부호어 성분
000 ++++++++
001 +-+-+-+-
010 ++--++--
011 +--++--+
100 ++++----
101 +-+-+-+-
110 ++----++
111 +--+-++-
상기 100% 연판정을 위해서는 상기 수신 신호 r, 즉 r1 r2 r3r4r5r6r7r8과 상기 표 2에 나타낸 바와 같은 BPSK 방식으로 변조된 모든 부호어들 각각에 대한 상관을 수행해야한다. 상기 IFHT를 수행하면 상기 수신 신호 r과 상기 BPSK 방식으로 변조된 모든 부호어들 각각에 대한 상관이 가능한데, 이는 상기 도 4에 나타낸 바와 같이 나비 로직(butterfly logic) 구조의 IFHT가 수행되기 때문이다.
즉, 수신 신호 r1 r2 r3r4r5r6r7r8에 대해서 2의 멱승 단위로 스테이지(stage)들을 입력 정보 비트수인 k번, 즉 3번 수행하면 상기 BPSK 방식으로 변조된 모든 부호어들 각각에 대한 상관이 가능하다. 여기서, 상기 스테이지들 각각은 또 다시 2의 멱승 단위로 상기 수신 신호 r의 성분들 각각에 대해서 + 연산과, - 연산을 수행한다. 이를 자세히 설명하면, 첫 번째로, 제1스테이지에서는 상기 수신 신호 r의 성분들 각각에 대해서 20(=1) 단위로 + 연산과 - 연산을 수행한다. 즉, r1과 r2간에 대해서 각각 + 연산과 -연산을 수행하고, r3과 r4간에 대해서 각각 + 연산과 -연산을 수행하고, r5와 r6간에 대해서 각각 + 연산과 -연산을 수행하고, r7과 r8간에 대해서 각각 + 연산과 -연산을 수행한다. 두 번째로, 제2스테이지에서는 상기 제1스테이지의 결과 성분들, 즉 r1+r2, r1-r2, r3+r4, r3-r4, r5+r6, r5-r6, r7+r8, r7-r8 각각에 대해서 21(=2) 단위로 + 연산과 -연산을 수행한다. 즉, r1+r2와 r3+r4간에 대해서 각각 + 연산과 -연산을 수행하고, r1-r2와 r3-r4간에 대해서 각각 + 연산과 -연산을 수행하고, r5+r6와 r7+r8간에 대해서 각각 + 연산과 -연산을 수행하고,r5-r6과 r7-r8간에 대해서 각각 + 연산과 -연산을 수행한다. 세 번째로, 제3스테이지에서는 상기 제2스테이지의 결과 성분들, 즉 (r1+r2)+(r3+r4)와, (r1-r2)+(r3-r4)와, (r1+r2)-(r3+r4)와, (r1-r2)-(r3-r4)와, (r5+r6)+(r7+r8)와, (r5-r6)+(r7-r8)와, (r5+r6)-(r7+r8)와, (r5-r6)-(r7-r8) 각각에 대해서 22(=4) 단위로 + 연산과 -연산을 수행한다. 즉, (r1+r2)+(r3+r4)와 (r5+r6)+(r7+r8)간에 대해서 각각 + 연산과 -연산을 수행하고, (r1-r2)+(r3-r4)와 (r5-r6)+(r7-r8)간에 대해서 각각 + 연산과 -연산을 수행하고, (r1+r2)-(r3+r4)와 (r5+r6)-(r7+r8)간에 대해서 각각 + 연산과 -연산을 수행하고, (r1-r2)-(r3-r4)와 (r5-r6)-(r7-r8)간에 대해서 각각 + 연산과 -연산을 수행한다. 이렇게 제3스테이지까지 수행한 결과를 보면, 수신 신호 r1 r2 r3r4r5r6r7r8에 대해서 상기 표 2에서 설명한 BPSK 방식으로 변조된 모든 부호어들 각각에 대한 상관이 수행된 것을 알 수 있다.
즉, 상기 수신 신호 r1 r2 r3r4r5r6r7r8에 대해서 상기 표 2의 BPSK 방식으로 변조된 첫 번째 부호어, 즉 ++++++++에 대한 상관 결과가 ((r1+r2)+(r3+r4))+((r5+r6)+(r7+r8))이며, 두 번째 부호어, 즉 +-+-+-+-에 대한 상관 결과가 ((r1-r2)+(r3-r4))+((r5-r6)+(r7-r8))이며, 세 번째 부호어, 즉 ++--++--에 대한 상관 결과가 ((r1+r2)-(r3+r4))+((r5+r6)-(r7+r8))이며, 네 번째 부호어, 즉 +--++--+에 대한 상관 결과가 ((r1-r2)-(r3-r4))+((r5-r6)-(r7-r8))이며, 다섯 번째 부호어, 즉 ++++----에 대한 상관 결과가 ((r1+r2)+(r3+r4))-((r5+r6)+(r7+r8))이며, 여섯 번째 부호어, 즉 +-+-+-+-에 대한 상관 결과가 ((r1-r2)+(r3-r4))-((r5-r6)+(r7-r8))이며, 일곱 번째 부호어, 즉 ++----++에 대한 상관 결과가 ((r1+r2)-(r3+r4))-((r5+r6)-(r7+r8))이며, 여덟 번째 부호어, 즉 +--+-++-에 대한 상관 결과가 ((r1-r2)-(r3-r4))-((r5-r6)-(r7-r8))이다. 결과적으로, 상기 수신 신호 r1 r2 r3r4r5r6r7r8에 대해서 상기 표 2의 BPSK 방식으로 변조된 모든 (8,3) 리드 뮬러 부호의 부호어들에 대한 상관이 100% 수행된 것이다.
그러면 여기서, 상기 (8, 3) 리드 뮬러 부호의 IFHT 수행에 따른 연산량을 살펴보면, log28(=3)번의 스테이지들을 통해 8log28(=24)번의 덧셈(+ 연산, - 연산) 과정, 즉 제1스테이지에서 8번의 덧셈 과정과, 제2스테이지에서 8번의 덧셈 과정과, 제3스테이지에서 8번의 덧셈 과정의 총 24번의 덧셈 과정이 필요하게 된다. 한편, 상기 (8, 3) 리드뮬러 부호를 상관기를 통해 상관할 경우 연산량을 살펴보면,번의 곱셈 과정과,번의 덧셈 과정이 필요하게 된다.
결국, (n, k) 블록 부호에 대한 모든 부호어들을 고려하면 길이 n의 부호어가 2k개 존재하고, 상기 2k개의 길이 n의 부호어들 각각에 대해서 상관을 수행해야하므로 상관기를 통해 상관을 수행할 경우에는번의 곱셈 과정과,번의 덧셈 과정이 필요하게 된다. 이와는 달리 (n, k) 블록 부호에 대한 모든 부호어들을 IFHT를 수행할 경우에는 nlog2n의 덧셈 과정이 필요하게 된다. 결과적으로, 모든 블록 부호들에 대해서 IFHT를 통해 연판정 복호를 할 경우에는 100% 상관을 고려한 연판정 복호가 가능하게 되면서도, 연산량을 최소화하여 연판정 복호 성능이 극대화된다.
다음으로, 상기 도 2의 제어기(200) 및 마스크 곱셈기(210)에 대해서 설명하기로 한다.
먼저, 리드 뮬러 부호에 마스크가 적용된다는 것은 생성 행렬의 기저에 마스크로 사용될 기저가 추가됨을 나타낸다. 즉, 상기에서 설명한 바와 같이 생성 행렬은 입력 정보 비트수와 동일한 개수의 기저들을 가지는데 마스크가 적용될 경우에는 상기 생성 행렬은 상기 입력 정보 비트수와 동일한 개수의 기저들 뿐만 아니라 상기 마스크로 사용될 기저들을 가진다.
일 예로, 상기 표 1과 같은 (8, 3) 리드 뮬러 부호에 all-one 마스크가 적용되는 경우를 고려하면 생성 행렬은 하기 수학식 2와 같다.
상기 수학식 2에서 G는 생성 행렬을 나타내며, 상기 수학식 2의 생성 행렬의 제4행의 all-one 기저가 상기 (8, 3) 리드뮬러 부호의 마스크 기저이다.
상기 제어기(200)는 상기 수신 신호 r이 최초에 수신되면, 먼저 마스크가 적용되지 않았다고 가정하고, 상기 마스크 Mi를 출력하지 않도록 제어하여 상기 IFHT기(220)가 상기 수신 신호 r을 그대로 IFHT를 수행하도록 제어한다. 여기서, 상기 제어기(200)는 상기에서 설명한 바와 같이 최초에는 마스크를 고려하지 않고, 이후 다시 마스크 Mi를 고려할 수도 있으며, 이와는 달리 상기 마스크가 적용되지 않은 경우 all-one 마스크를 적용하였다고 가정하여 상기 마스크 곱셈기(210)으로 모든 엘리먼트(element)들이 1로 이루어진 마스크 Mi를 출력할 수도 있다. 상기 모든 엘리먼트들이 1로 이루어진 마스크는 실질적으로 수신 신호와 곱해져도 변화가 발생되지 않아 마스크가 적용되지 않은 경우와 동일하게 동작한다. 이렇게 모든 엘리먼트들이 1로 이루어진 마스크 Mi를 사용함으로써 실제 마스크가 적용된 경우와 마스크가 적용되지 않은 경우의 하드웨어 구조를 동일하게 유지할 수 있게 된다. 그러나, 실질적으로 상기 수신 신호 r에는 마스크가 적용되었으며 따라서 상기제어기(200)는 상기 마스크 곱셈기(210)로 상기 마스크 기저에 해당하는 마스크 Mi를 출력한다, 여기서, 상기 생성 행렬의 마스크 기저는 all-one 기저이므로 상기 마스크 Mi는 모든 엘리먼트들이 -1로 이루어진다. 상기 마스크 곱셈기(210)는 상기 수신 신호 r과 상기 마스크 Mi를 곱한 후 상기 IFHT기(220)로 출력한다. 상기 도 2의 연판정 복호 장치는 직렬 구조를 가지기 때문에 상기 마스크 벡터 Mi를 고려하는 경우와 고려하지 않는 경우를 순차적으로 고려하였으며, 상기 도 3을 참조하여 병렬 구조의 연판정 복호 장치를 설명하기로 한다.
상기 도 3은 일반적인 IFHT기를 사용하는 병렬 구조 연판정 복호 장치 내부 구조를 도시한 도면이다.
상기 도 3을 참조하면, 먼저 수신측으로 수신되는 수신 신호 r은 IFHT기(311)와, 다수의 마스크 곱셈기들(321, 331, 341)로 입력된다. 상기 송신측에서 마스크로 적용한 기저들의 개수에 따라 수신측에서 구비해야할 상기 마스크 곱셈기들의 개수가 결정되며, 상기 도 3에서는 상기 마스크로 적용한 기저들의 개수가 2개라고 가정하기로 한다. 그러므로, 상기 수신측에는 제1마스크 기저 m1에 대응하는 제1마스크 M1을 곱해주는 마스크 곱셈기(321)와, 제2마스크 기저 m2에 대응하는 제2마스크 M2을 곱해주는 마스크 곱셈기(331)와, 상기 제1마스크 기저 m1와 제2마스크 기저 m2의 배타적 논리합에 대응하는 마스크(이하 ""라 칭하기로한다)를 곱해주는 마스크 곱셈기(341)이 구비된다.
상기 IFHT기(311)는 상기 수신 신호 r을 입력하여 IFHT를 수행한 후 비교 선택기(350)로 출력한다. 또한, 상기 마스크 곱셈기들(321, 331, 341) 각각은 상기 수신 신호 r을 입력하여 해당하는 마스크, 즉 제1마스크 M1과, 제2마스크 M2와, 제1마스크 기저 m1와 제2마스크 기저 m2의 배타적 논리합에 대응하는 마스크각각을 곱한 후 IFHT기(323) 내지 IFHT기(343) 각각으로 출력한다. 상기 IFHT기들(323, 333, 343) 각각은 상기 마스크 곱셈기들(321, 331, 341) 각각에서 출력한 신호들을 입력하여 IFHT를 수행한 후 상기 비교 선택기(350)로 출력한다. 상기 비교 선택기(350)는 상기 IFHT기들(311, 323, 333, 343) 각각에서 출력하는 IFHT 수행 결과를 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 전송한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(330)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다.
상기에서 설명한 바와 같이 (n, k) 블록 부호에 대한 모든 부호어들을 고려하면 길이 n의 부호어가 2k개 존재하고, 상기 2k개의 길이 n의 부호어들 각각에 대해서 상관을 수행해야하므로 상관기를 통해 상관을 수행할 경우에는번의 곱셈 과정과,번의 덧셈 과정이 필요하게 되는 반면에, (n, k) 블록 부호에 대한 모든 부호어들을 IFHT기를 사용하여 상관을 수행할 경우에는 nlog2n의 덧셈 과정만이 필요하게 되어 연산량이 최소화되므로 연판정 복호 성능이 극대화된다. 그러나, 상기 도 1에서 설명한 상관기를 이용한 연판정 복호 장치는 임의의 블록 부호들에 대해서 모두 연판정 복호화를 수행하는 것이 가능하지만, 상기 도 2에서 설명한 IFHT를 사용하는 연판정 복호 장치는 생성 행렬이 월시 부호의 기저를 포함하는 블록 부호들에 대해서만 연판정 복호화를 수행하는 것이 가능하다는 단점을 가진다.
따라서, 본 발명의 목적은 통신 시스템에서 오류 정정 부호를 복호하는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 통신 시스템에서 최소 연산량을 가지는 오류 정정 부호 복호 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 임의의 정보 비트 길이와 블록 길이를 가지는 블록 부호들에 대해 최소 연산량을 가지는 연판정 복호를 수행하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 통신 시스템에서 임의의 블록 부호들에 대해 IFHT를 사용하여 연판정 복호를 수행하는 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 제1장치는; k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 장치에 있어서, 상기 (n, k) 블록 부호의 생성 행렬 정보와, 상기 (n, k) 블록 부호를 역 고속 하다마드변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보를 가지고 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 제어기와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 제어기가 결정한 심볼 위치 정보에 상응하게 IFHT기의 입력으로 재배치하는 심볼 배치기와, 상기 심볼 배치기에서 재배치한 심볼들을 입력하여 IFHT를 수행하는 IFHT기와, 상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 비교 선택기를 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제2장치는; k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 장치에 있어서, 상기 (n, k) 블록 부호의 생성 행렬 정보를 가지고 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 제어기와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 제어기가 결정한 심볼 위치 정보에 상응하게 IFHT기의 입력으로 재배치하는 심볼 배치기와, 상기 심볼 배치기에서 재배치한 심볼들을 입력하여 IFHT를 수행하는 IFHT기와, 상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 비교 선택기를 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제1방법은; k개의 정보 비트들과n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 방법에 있어서, 상기 (n, k) 블록 부호의 생성 행렬 정보와, 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보를 가지고 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 과정과, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각 각을 상기 결정된 심볼 위치 정보에 상응하게 IFHT의 입력으로 재배치하는 과정과, 상기 재배치한 심볼들을 입력하여 IFHT를 수행하는 과정과, 상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 제2방법은; k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 방법에 있어서, 상기 (n, k) 블록 부호의 생성 행렬 정보를 가지고 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 과정과, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 결정된 심볼 위치 정보에 상응하게 IFHT의 입력으로 재배치하는 과정과, 상기 재배치한 심볼들을 입력하여 IFHT를 수행하는 과정과, 상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 과정을 포함함을 특징으로 한다.
도 1은 일반적인 상관기를 사용하는 연판정 복호 장치 내부 구조를 도시한 도면
도 2는 일반적인 IFHT기를 사용하는 직렬 구조 연판정 복호 장치 내부 구조를 도시한 도면
도 3은 일반적인 IFHT기를 사용하는 병렬 구조 연판정 복호 장치 내부 구조를 도시한 도면
도 4는 일반적인 IFHT 수행 과정을 개략적으로 도시한 도면
도 5는 일반적인 천공된 리드 뮬러 부호를 IFHT기를 사용하여 복호하는 연판정 복호 장치 내부 구조를 도시한 도면
도 6은 일반적인 반복된 리드 뮬러 부호를 IFHT를 사용하여 복호하는 연판정 복호 장치 내부 구조를 도시한 도면
도 7은 본 발명의 제1실시예에 따른 IFHT기를 사용한 연판정 복호 장치 내부 구조를 도시한 도면
도 8은 도 7의 제어기(700)의 심볼 위치 정보 결정 과정 및 심볼배치기(720)의 수신 심볼 재배치 과정을 개략적으로 도시한 도면
도 9는 도 7의 심볼 배치기(720)의 내부 구조를 도시한 도면
도 10은 본 발명의 제2실시예에 따른 IFHT기를 사용한 연판정 복호 장치 내부 구조를 도시한 도면
도 11은 도 10의 제어기(1000)의 심볼 위치 정보 결정 과정 및 심볼 배치기(1020)의 수신 심볼 재배치 과정을 개략적으로 도시한 도면
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
먼저, 상기 종래 기술 부분에서 설명한 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform, 이하 "IFHT"라 칭하기로 한다)에 대해서 다시 한번 설명하기로 한다.
상기 IFHT를 수행하는 역 고속 하다마드 변환기(이하 "IFHT기"라 칭하기로 한다)를 사용하는 연판정 복호(soft decision decoding)는 상관기(correlator)를 사용하는 연판정 복호와 동일한 연판정 성능을 가지면서도, 상기 상관기의 상관 수행에 따른 연산량(일 예로, (n, k) 블록 부호(block code)일 경우번의 곱셈 과정 및번의 덧셈 과정이 필요함)보다 훨씬 적은 연산량((n, k) 블록 부호일 경우 nlog2n의 덧셈 과정이 필요함)을 가져 연산 과정으로 인한 로드(load)를 최소화시킨다. 그러나, 상기 IFHT기를 사용하는 연판정 복호는 생성 행렬(generator matrix)이 월시 부호(walsh code)의 기저(basis)를 포함하는 블록 부호들에 대해서만 적용 가능하였었기 때문에, 상기 IFHT기를 사용하는 연판정 복호가 상관기를 사용하는 연판정 복호에 비해 뛰어난 성능을 가지면서도 사용되지 못하는 경우가 빈번하게 발생하였었다.
그래서, 본 발명은 상기 월시 부호의 기저를 포함하지 않는 블록 부호들에 대해서도 상기 IFHT기를 사용하여 연판정 복호함으로써 복호 성능을 최대화시키는 방안을 제시한다.
먼저, 상기 IFHT의 특성을 살펴보기로 한다.
상기 IFHT의 특성을 살펴보기에 앞서, 상기 종래 기술에서 설명한 바와 같이 월시 부호의 기저를 포함하는 블록 부호, 즉 리드 뮬러(Reed-Muller) 부호를 다시 한번 설명하기로 한다. (n, k) 리드 뮬러 부호, 일 예로 (8,3) 리드 뮬러 부호는 상기 종래 기술 부분에서 설명한 표 1과 같다. 여기서, 상기 k는 입력 정보 비트의 길이를 나타내며, 상기 n = 2k은 출력되는 블록 길이를 나타낸다. 즉, 상기 표 1에 나타낸 바와 같이, 3비트의 정보 비트가 입력될 때 발생 가능한 (8,3) 리드 뮬러 부호의 부호어(codeword)는 23개, 즉 8개이며, 정보 비트가 "000"일 경우에는 "00000000"의 부호어가, 정보 비트가 "001"일 경우에는 "01010101"의 부호어가, 정보 비트가 "010"일 경우에는 "00110011"의 부호어가, 정보 비트가 "011"일 경우에는 "01100110"의 부호어가, 정보 비트가 "100"일 경우에는 "00001111"의 부호어가, 정보 비트가 "101"일 경우에는 "01011010"의 부호어가, 정보 비트가 "110"일 경우에는 "00111100"의 부호어가, 정보 비트가 "111"일 경우에는 "01101001"의 부호어가 생성된다. 그리고, 상기 (8,3) 리드 뮬러 부호의 부호어들 각각은 실제 변조 방식, 일 예로 이진 위상 쉬프트 키잉(BPSK: Binary Phase Shift Keying, 이하 "BPSK"라 칭하기로 한다) 방식으로 변조할 경우 디지털 데이터(digital data) "0"은 "+1"로, 상기 디지털 데이터 "1"은 "-1"로 대응되어 실제 에어(air)상으로 전송된다.
상기 (8, 3) 리드뮬러 부호에서 발생 가능한 모든 부호어들을 상기 BPSK 방식으로 변조할 경우, 상기 "00000000"의 부호어는 "++++++++"로, 상기 "01010101"의 부호어는 "+-+-+-+-"로, 상기 "00110011"의 부호어는 "++--++--"로, 상기 "01100110"의 부호어는 "+--++--+"로, 상기 "00001111"의 부호어는 "++++----"로, 상기 "01011010"의 부호어는 "+-+-+-+-"로, 상기 "00111100"의 부호어는 "++----++"로, 상기 "01101001"의 부호어는 "+--+-++-"로 변조된다. 상기 (8, 3) 리드뮬러 부호에서 발생 가능한 모든 부호어들 각각을 상기 BPSK 방식으로 변조하였을 때의 변조 성분들을 나타내면 하기 표 3과 같다.
+ + + + + + + +
+ - + - + - + -
+ + - - + + - -
+ - - + + - - +
+ + + + - - - -
+ - + - + - + -
+ + - - - - + +
+ - - + - + + -
상기 표 3에서, 제1행(row)이 "00000000" 부호어의 BPSK 변조 성분에 해당하며, 제2행이 "01010101" 부호어의 BPSK 변조 성분에 해당하며, 제3행이 "00110011" 부호어의 BPSK 변조 성분에 해당하며, 제4행이 "01100110" 부호어의 BPSK 변조 성분에 해당하며, 제5행이 "00001111" 부호어의 BPSK 변조 성분에 해당하며, 제6행이 "01011010" 부호어의 BPSK 변조 성분에 해당하며, 제7행이 "00111100" 부호어의 BPSK 변조 성분에 해당하며, 제8행이 "01101001" 부호어의 BPSK 변조 성분에 해당한다.
그러면, 여기서 천공(puncturing)된 리드 뮬러 부호, 즉 (n-t, k), 일 예로 (8, 3) 리드 뮬러 부호가 2비트 천공된 (6, 3) 리드 뮬러 부호를 가지고 IFHT를 수행하는 과정을 도 5를 참조하여 설명하기로 한다. 여기서, t는 천공되는 비트수를 나타낸다.
상기 도 5는 일반적인 천공된 리드 뮬러 부호를 IFHT기를 사용하여 복호하는 연판정 복호 장치 내부 구조를 도시한 도면이다. 상기 도 5를 설명하기에 앞서, 먼저, 상기 (6,3) 리드 뮬러 부호는 상기 표 1에서 설명한 (8, 3) 리드 뮬러 부호의 부호어들 각각에서 선행하는 2비트(2bits)씩을 천공한 것이며, 이를 나타내면 하기 표 4와 같다.
정보 비트 부호어
000 000000
001 010101
010 110011
011 100110
100 001111
101 011010
110 111100
111 101001
그리고, 상기 (6, 3) 리드뮬러 부호에서 발생 가능한 모든 부호어들 각각을 상기 BPSK 방식으로 변조하였을 때의 변조 성분들을 나타내면 하기 표 5와 같다.
+ + + + + +
+ - + - + -
- - + + - -
- + + - - +
+ + - - - -
+ - + - + -
- - - - + +
- + - + + -
상기 도 5를 참조하면, 먼저 수신 신호 r은 (6,3) 리드 뮬러 부호에 잡음(noise) 성분 및 간섭(interference) 성분이 삽입된 신호이므로 하기와 같이 나타낸다.
r = r1 r2 r3r4r5r6
상기 수신 신호 r은 0 삽입기(0 insertor)(511)로 전달되고, 상기 0 삽입기(511)는 상기 수신 신호 r을 입력하여 미리 설정된 위치에서 0을 삽입하여 IFHT기(513)로 출력한다. 여기서, 상기 0 삽입기(511)는 송신측에서 (8, 3) 리드 뮬러 부호에서 비트를 천공한 위치에 0을 삽입하는 것이며, 상기 천공 위치 관련 정보는 송신측과 수신측 상호가 인지하고 있다. 상기 IFHT기(513)는 상기 0 삽입기(511)에서 출력한 신호를 입력하여 IFHT를 수행한 후 그 결과를 비교 선택기(comparator & selector)(515)로 출력한다. 상기 비교 선택기(515)는 상기 IFHT기(513)에서 출력한 모든 IFHT 결과값들을 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 송신한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(515)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다. 상기 IFHT 수행 과정은 상기 종래 기술 부분의 도 4에서 설명하였으므로 여기서는 그 상세한 설명을 생략하기로 한다. 결국, 상기 천공된 (n-t, k)리드 뮬러 부호에 대해서 IFHT를 사용하여 연판정 복호할 때는 상기 (n, k) 리드 뮬러 부호에서 천공된 위치의 비트들을 모두 0으로 삽입하여 (n, k) 리드 뮬러 부호화하여 IFHT를 사용하여 연판정 복호하는 것과 동일하게 된다. 또한, 연판정 복호를 위한 연산량 역시 상기 (n, k) 리드 뮬러 부호의 연산량과 동일한 연산량을 가진다.
상기 도 5에서는 천공된 리드 뮬러 부호, 즉 (n-t, k) 리드 뮬러 부호의 IFHT 수행에 대해서 설명하였으며 다음으로 도 6을 참조하여 반복(repetition)된 리드 뮬러 부호, 즉 (n+t, k) 리드 뮬러 부호, 일 예로 (8, 3) 리드 뮬러 부호가 2비트 반복된 (10, 3) 리드 뮬러 부호를 가지고 IFHT를 수행하는 과정을 설명하기로 한다. 여기서, t는 반복되는 비트수를 나타낸다.
상기 도 6은 일반적인 반복된 리드 뮬러 부호를 IFHT를 사용하여 복호하는 연판정 복호 장치 내부 구조를 도시한 도면이다. 상기 도 6을 설명하기에 앞서, 먼저, 상기 (10,3) 리드 뮬러 부호는 상기 표 1에서 설명한 (8, 3) 리드 뮬러 부호의 부호어들 각각에서 선행하는 2비트(2bits)씩을 반복한 것이며, 이를 나타내면 하기 표 6과 같다.
정보 비트 부호어
000 0000000000
001 0101010101
010 0011001100
011 0110011001
100 0000111100
101 0101101001
110 0011110000
111 0110100101
그리고, 상기 (10, 3) 리드뮬러 부호에서 발생 가능한 모든 부호어들 각각을 상기 BPSK 방식으로 변조하였을 때의 변조 성분들을 나타내면 하기 표 7과 같다.
+ + + + + + + + + +
+ - + - + - + - + -
+ + - - + + - - + +
+ - - + + - - + + _
+ + + + - - - - + +
+ - + - + - + - + -
+ + - - - - + + + +
+ - - + - + + - + -
상기 도 6을 참조하면, 먼저 수신 신호 r은 (10,3) 리드 뮬러 부호에 잡음 성분 및 간섭 성분이 삽입된 신호이므로 하기와 같이 나타낸다.
r = r1 r2 r3r4r5r6 r7 r8 r9 r10
상기 수신 신호 r은 누적기(accumulator)(611)로 전달되고, 상기 누적기(611)는 상기 수신 신호 r을 입력하여 최하위 비트(LSB: Least Significant Bit, 이하 "LSB"라 칭하기로 한다)부터 2비트를 최상위 비트(MSB: Most Significant Bit, 이하 "MSB"라 칭하기로 한다)부터 2비트와 누적한 후 IFHT기(613)로 출력한다. 여기서, 상기 누적기(611)는 송신측에서 (8, 3) 리드 뮬러 부호에서 반복한 위치의 비트들을 누적하는 것이며, 상기 반복 위치 관련 정보는 송신측과 수신측 상호가 인지하고 있다. 상기 IFHT기(613)는 상기 누적기(611)에서 출력한 신호를 입력하여 IFHT를 수행한 후 그 결과를 비교 선택기(615)로 출력한다. 상기 비교 선택기(615)는 상기 IFHT기(613)에서 출력한 모든 IFHT 결과값들을 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 송신한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(615)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다. 상기 IFHT 수행 과정은 상기 종래 기술 부분의 도 4에서 설명하였으므로 여기서는 그 상세한 설명을 생략하기로 한다. 결국, 상기 천공된 (n+t, k)리드 뮬러 부호에 대해서 IFHT를 사용하여 연판정 복호할 때는 상기 (n, k) 리드 뮬러 부호에서 반복된 위치의 비트들을 누적하여 (n, k) 리드 뮬러 부호화하여 IFHT를 사용하여 연판정 복호하는 것과 동일하게 된다. 또한, 연판정 복호를 위한 연산량 역시 상기 (n, k) 리드 뮬러 부호의 연산량과 동일한 연산량을 가진다.
상기에서 설명한 바와 같이 리드 뮬러 부호가 천공된 형태일 경우에는 천공된 위치에 0을 삽입하여 IFHT를 수행하고, 상기 리드 뮬러 부호가 반복된 형태일 경우에는 반복된 비트들을 누적하여 IFHT를 수행함으로써 모두 연판정 복호 가능하다. 상기 설명에서는 리드 뮬러 부호에 마스크(mask)를 적용하지 않은 경우를 예로 하였으나, 상기 리드 뮬러 부호에 마스크를 적용할 경우는 상기 종래 기술 부분에서 마스크를 고려할 경우 IFHT를 적용할 경우와 동일하게 동작한다. 본 발명에서는 이런 IFHT 특성들을 이용하여 임의의 정보 비트수와 블록 비트수를 가지는 블록 부호들을 리드 뮬러 부호가 천공된 형태, 혹은 반복된 형태, 혹은 마스킹된 형태로 가정하여 IFHT를 사용하여 연판정 복호하는 방안을 제공한다.
도 7은 본 발명의 제1실시예에 따른 IFHT기를 사용한 연판정 복호 장치 내부 구조를 도시한 도면이다.
상기 도 7을 참조하면, 상기 본 발명의 제1실시예에 따른 연판정 복호 장치는 제어기(controller)(700)와, 마스크 곱셈기(mask multiplier)(710)와, 심볼 배치기(symbol arrange unit)(720)와, IFHT기(730)와, 비교 선택기(740)로 구성된다. 그리고, 상기 본 발명의 제1실시예 및 하기에서 설명할 본 발명의 제2실시예에서 송수신되는 블록 부호에 적용되는 생성 행렬은 하기 수학식 3과 같다고 가정하기로 한다.
상기 생성 행렬은행렬이며, 상기 수학식 3과 같은 생성 행렬을 적용할 경우 (11, 6) 블록 부호가 생성된다. 그리고, 상기 생성 행렬 G의 6개의 기저들중 제1행(row)부터 제4행까지의 상위 4개의 기저들을 IFHT 수행을 위한 IFHT 입력 목적으로 사용하고, 상기 상위 4개의 기저들을 제외한 나머지 하위 2개의 기저들, 즉 제5행 및 제6행의 기저들을 마스크 기저(mask basis)로 사용한다고 가정하기로 한다. 따라서, 상기 생성 행렬에서 4개의 기저들만을 IFHT 입력 목적으로 사용하기 때문에, 상기 (11, 6) 블록 부호를 상관하기 위한 IFHT의 입력 크기는 24= 16이 된다. 상기 본 발명의 제1실시예에서는 송신측과 수신측이 상기 IFHT 크기 정보 및 생성 행렬 정보를 상호간에 인지하고 있다.
그리고, 상기에서 설명한 바와 같이 송신측에서 송신한 (11, 6) 블록 부호는 잡음 성분과 간섭 성분이 포함된 수신 신호 r로 수신측에 수신되며, 상기 수신 신호 r은 다음과 같이 표현하기로 한다.
r = r1 r2 r3r4r5r6r7r8 r9 r10 r11
여기서, 상기 r1 내지 r11 각각을 수신 심볼이라 칭하기로 한다. 상기 수신 신호 r은 마스크 곱셈기(710)로 전달되고, 상기 마스크 곱셈기(710)는 상기 수신 신호 r과 제어기(700)에서 출력하는 마스크(mask) Mi를 곱한 후 심볼 배치기(720)로 출력한다. 상기 제어기(700)는 상기 수신측의 주제어기(main controller, 도시하지 않음)로부터 생성 행렬에 관련된 생성 행렬 정보와, IFHT 크기 정보를 전달받고, 상기 전달받은 생성 행렬 정보와, IFHT 크기 정보를 가지고 마스크 Mi와 심볼 위치 정보를 생성한다. 상기 제어기(700)는 상기 생성한 마스크 Mi는 상기 마스크 곱셈기(710)로 출력하고, 상기 생성한 심볼 위치 정보는 상기 심볼 배치기(720)로 출력한다. 여기서, 상기 제어기(700)는 상기 생성 행렬에서 하위 2개의 기저들을 마스크 기저로 사용한다고 가정했으므로 상기 생성 행렬의 제5행과 제6행을 각각 마스크 기저 m1과 m2로 정의한다. 그러면, 상기 마스크로 사용되는 마스크 기저는 m1기저와, m2기저와, m1기저와 m2기저의 배타적 논리합(XOR)(이하 ""라 칭하기로 한다)이다.
또한, 상기 본 발명의 제1실시예에 따른 연판정 복호 장치는 직렬(serial) 구조를 가지기 때문에, 실제 마스크가 적용되지 않았을 경우의 하드웨어(hardware) 동작을 마스크가 적용될 경우와 동일하게 고려하기 위해서 all-one 마스크를 추가로 적용한다. 즉, 상기 제어기(700)는 상기 마스크 곱셈기(710)로 all-one 마스크를 출력함으로써 실제 마스크가 적용되지 않은 경우 상기 마스크가 적용된 경우와 동일한 하드웨어 구조를 가지고도 마스크가 적용되지 않은 경우까지 고려하는 것을 가능하게 한다. 상기 m1마스크 기저와, m2마스크 기저와, m1마스크 기저와 m2기저의 배타적 논리합 마스크 기저각각은 BPSK 방식으로 변조되어 마스크로 사용되며, 상기 종래 기술 부분에서 설명한 바와 같이 디지털 데이터(digital data)는 상기 BPSK 방식으로 변조되기 때문에 상기 디지털 데이터 "0"은 "+1"로, 상기 디지털 데이터 "1"은 "-1"로 대응된다. 또한, 상기 종래 기술 부분에서 설명한 바와 마찬가지로 상기 제어기(700)는 상기 마스크가 적용되지 않았을 경우 상기 all-one 마스크를 출력하지 않고 상기 마스크 곱셈기(710)의 동작을 그대로 바이패스(bypass)할 수도 있음은 물론이다.
한편, 상기 종래 기술 부분에서 설명한 바와 같이 IFHT기를 사용하는 연판정 복호 장치는 직렬 구조 혹은 병렬(parallel) 구조를 가지는데, 상기 직렬 구조라 함은 하기에서 설명할 마스크 Mi를 순차적으로 고려하는 형태이며, 상기 병렬 구조라 함은 상기 마스크 Mi를 일시적으로 병렬 고려하는 형태를 나타낸다. 본 발명에서는 설명의 편의상 상기 직렬 구조의 연판정 복호 장치만을 설명하기로 하며, 본 발명이 병렬 구조의 연판정 복호 장치에도 적용 가능함은 물론이다.
상기 심볼 배치기(720)는 상기 제어기(700)에서 출력하는 심볼 위치 정보에 상응하게 상기 마스크 곱셈기(710)에서 출력된 신호, 즉 수신 신호 r을 입력하여상기 수신 신호 r을 구성하는 심볼들의 위치를 재배치하여 상기 IFHT기(730)로 출력한다. 여기서, 상기 제어기(700)의 심볼 위치 정보 결정 과정 및 상기 심볼 배치기(720)의 심볼 재배치 과정은 하기에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다. 한편, 상기 주제어기는 상기 IFHT 크기 정보를 상기 제어기(700) 뿐만 아니라 상기 IFHT기(730)로도 전달한다. 상기 IFHT기(730)는 상기 주제어기로부터 전달받은 IFHT 크기 정보에 따라 IFHT의 입력 및 해당 스테이지(stage)를 가지는 IFHT를 구성하고, 상기 심볼 배치기(720)에서 출력된 신호를 IFHT 수행하여 그 결과를 상기 비교 선택기(740)로 출력한다. 상기 비교 선택기(740)는 상기 IFHT기(730)에서 출력한 모든 IFHT 결과값들을 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 전송한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(730)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다.
그러면 여기서 도 8을 참조하여 상기 제어기(700)의 심볼 위치 정보 결정 과정 및 심볼 배치기(720)의 수신 심볼 재배치 과정을 설명하기로 한다.
상기 도 8은 도 7의 제어기(700)의 심볼 위치 정보 결정 과정 및 심볼 배치기(720)의 수신 심볼 재배치 과정을 개략적으로 도시한 도면이다.
상기 도 8을 참조하면, 먼저 상기에서 수학식 3의 생성 행렬에서 제1행 내지 제4행의 상위 4개의 기저들만 IFHT 입력을 위해 사용된다고 가정하였으므로, IFHT기(730)의 입력은 24개(=16개)가 필요하다. 여기서, 상기 IFHT기(730)의 입력은 0부터 15까지 16개이며, 하기의 설명에서 설명의 편의상 상기 0에 해당하는 입력을 "0번째 입력", 15에 해당하는 입력을 "15번째 입력"이라 칭하기로 하며, 실질적으로는 상기 "0번째 입력"이 상기 IFHT기(730)의 제1입력이 되며, 상기 "15번째 입력"이 상기 IFHT기(730)의 제16입력이 된다. 그러면, 상기 제어기(700)가 상기 수신 신호 r, 즉 r1 r2 r3r4r5r6r7r8 r9 r10 r11을 상기 IFHT기(730)의 입력으로 고려하기 위해 상기 수신 신호 r을 구성하는 심볼들 각각, 즉 r1, r2, r3,r4,r5,r6,r7,r8, r9, r10, r11 각각의 심볼 위치 정보를 결정하는 과정을 설명하면 다음과 같다.
상기 제어기(700)는 상기 수신 신호 r의 심볼들 각각을 순서대로, 즉 r1부터 순차적으로 r11까지 상기 IFHT기(730)의 입력으로 대응시키기 위한 심볼 위치를 결정한다. 첫 번째로, 상기 제어기(700)(720)는 상기 생성 행렬의 제1열(column)의 상위 4비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제4행의 엘리먼트를 MSB로 하여 "0011"을 생성하고, 상기 "0011"을 십진수로 변환한다. 상기 "0011"을 십진수로 변환하면 "3"이 되므로, 상기 제어기(700)는 24개(=16개), 즉 0 내지 15까지의 입력 크기 16인 상기 IFHT기(730)의 3번째 입력으로 상기 수신 신호 r의 첫 번째 심볼 r1이 배치될 수 있도록 심볼 위치를 결정한다. 두 번째로, 상기 제어기(700)는 상기 생성 행렬의 제2열의 상위 4비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제4행의 엘리먼트를 MSB로 하여 "1100"을 생성하고, 상기 "1100"을 십진수로 변환한다. 상기 "1100"을 십진수로 변환하면 "8"이 되므로, 상기 제어기(700)는 상기 IFHT기(730)의 8번째 입력으로 상기 수신 신호 r의 두 번째 심볼 r2이 배치될 수 있도록 심볼 위치를 결정한다. 세 번째로, 상기 제어기(700)는 상기 생성 행렬의 제3열의 상위 4비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제4행의 엘리먼트를 MSB로 하여 "0110"을 생성하고, 상기 "0110"을 십진수로 변환한다. 상기 "0110"을 십진수로 변환하면 "6"이 되므로, 상기 제어기(700)는 상기 IFHT기(730)의 6번째 입력으로 상기 수신 신호 r의 세 번째 심볼 r3이 배치될 수 있도록 심볼 위치를 결정한다. 상기 제어기(700)는 이런 식으로 상기 수신 신호 r의 열한번째 심볼 r11까지 상기 IFHT기(730)의 입력으로 배치될 수 있도록 심볼 위치를 결정한다.
상기 제어기(700)는 상기 도 8에 나타낸 바와 같이 상기 수신 신호 r의 첫 번째 심볼 r1은 상기 IFHT기(730)의 3번째 입력으로, 두 번째 심볼 r2은 상기 IFHT기(730)의 8번째 입력으로, 세 번째 심볼 r3은 상기 IFHT기(730)의 6번째 입력으로, 네 번째 심볼 r4은 상기 IFHT기(730)의 1번째 입력으로, 다섯 번째 심볼 r5은 상기 IFHT기(730)의 12번째 입력으로, 여섯 번째 심볼 r6은 상기 IFHT기(730)의 6번째 입력으로, 일곱 번째 심볼 r7은 상기 IFHT기(730)의 8번째 입력으로, 여덟 번째 심볼 r1은 상기 IFHT기(730)의 8번째 입력으로, 아홉 번째 심볼 r9은 상기 IFHT기(730)의 9번째 입력으로, 열 번째 심볼 r10은 상기 IFHT기(730)의 8번째 입력으로, 열한 번째 심볼 r11은 상기 IFHT기(730)의 3번째 입력으로 배치될 수 있도록 심볼 위치를 결정하는 것이다.
특히, 상기 수신 신호 r의 첫 번째 심볼 r1과 열한 번째 심볼 r11은 동일한십진수 값, 즉 3이 나왔으므로 상기 첫 번째 심볼 r1과 열한 번째 심볼 r11이 가산되어 상기 IFHT기(730)의 3번째 입력으로 배치될 수 있도록 그 심볼 위치가 결정되며, 상기 수신 신호 r의 세 번째 심볼 r3과 여섯 번째 심볼 r6은 동일한 십진수 값, 즉 6이 나왔으므로 상기 세 번째 심볼 r3과 여섯 번째 심볼 r6이 가산되어 상기 IFHT기(730)의 6번째 입력으로 배치될 수 있도록 그 심볼 위치가 결정되며, 상기 수신 신호 r의 두 번째 심볼 r2와 일곱 번째 심볼 r7와 여덟 번째 심볼 r8과 열 번째 심볼 r10은 동일한 십진수 값, 즉 8이 나왔으므로 상기 두 번째 심볼 r2와 일곱 번째 심볼 r7와 여덟 번째 심볼 r8과 열 번째 심볼 r10이 가산되어 상기 IFHT기(730)의 8번째 입력으로 배치될 수 있도록 심볼 위치가 결정된다.
상기 제어기(700)는 상기 결정한 심볼 위치에 따라 상기 심볼 위치 정보를 생성하고, 상기 생성한 심볼 위치 정보를 상기 심볼 배치기(720)로 출력한다. 상기 심볼 배치기(720)가 상기 제어기(700)에서 출력한 심볼 위치 정보에 상응하게 수신 신호 r의 수신 심볼들 각각을 상기 IFHT기(730)의 입력으로 재배치한다. 그러면 여기서 상기 제어기(700)가 상기 심볼 위치 정보를 생성하는 과정을 정리하면 다음과 같다.
먼저, 생성 행렬이행렬이며, 상기 생성 행렬의 n개의 기저들중 상위 k - m개의 기저들을 IFHT 수행을 위한 IFHT 입력 목적으로 사용하고, 상기 상위 k - m개의 기저들을 제외한 나머지 하위 m개의 기저들을 마스크 기저로 사용한다고 가정하기로 한다. 상기 생성 행렬에 따라 생성된 (n, k) 블록 부호는 채널상에서 잡음 성분과 간섭 성분이 가산되어 수신측으로 수신되며, 상기 수신된 수신 신호 r은r = r1 r2 ····r(n-1) rn으로 표현된다. 상기 제어기(700)는 상기 생성 행렬의 제1열부터 순차적으로 제n열까지 각각 상위 k - m 비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제 k - m행의 엘리먼트를 MSB로 하여 이진 시퀀스(binary sequence)들을 생성하고, 상기 생성한 이진 시퀀스들 각각을 십진수로 변환한다. 그리고, 상기 제어기(700)는 입력 크기 2k-m인 IFHT기(730)의 상기 변환된 십진수들 각각에 상응하는 입력으로 상기 수신 신호 r의 첫 번째 심볼 r1부터 순차적으로 제n번째 심볼 rn을 배치하도록 심볼 위치를 결정한다. 여기서, 상기 IFHT기(730)의 입력은 0부터 (2k-m-1)까지 2k-m개이며, 상기 0에 해당하는 입력을 "0번째 입력", (2k-m-1)에 해당하는 입력을 "(2k-m-1)번째 입력"이라 칭하기로 하며, 실질적으로는 상기 "0번째 입력"이 상기 IFHT기(730)의 제1입력이 되며, 상기 "(2k-m-1)번째 입력"이 상기 IFHT기(730)의 제2k-m입력이 된다. 또한, 상기 제어기(700)는 상기 생성 행렬의 i번째 열과 j번째 열의 십진수 값이 둘다 "a"라면, 상기 수신 신호의 i번째 심볼 ri와 j번째 심볼 rj를 가산한 ri+ rj가 상기 IFHT기(730)의 a번째 입력으로 배치될 수 있도록 심볼 위치를 결정한다.
다음으로, 도 9를 참조하여 상기 심볼 배치기(720)의 내부 구조를 설명하기로 한다.
상기 도 9는 도 7의 심볼 배치기(720)의 내부 구조를 도시한 도면이다.
먼저, 상기 심볼 배치기(720)는 상기 제어기(700)에서 출력하는 심볼 위치정보에 상응하게 상기 마스크 곱셈기(710)에서 출력한 신호의 심볼들 각각을 재배치하여 상기 IFHT기(730)의 입력으로 제공하는데, 이런 재배치 과정에 상응하는 구조가 상기 도 9에 도시되어 있다. 상기 심볼 배치기(720)는 스위치(switch)(901)와, 2k개의 가산기들(911,921,931,941)과, 2k개의 메모리(memoer)들(915,925,935,945)과, 2k개의 스위치들(915,925,935,945)로 구성된다. 여기서, 상기 2k개의 메모리들(915,925,935,945) 각각은 최초에 "0"으로 초기화되어 있다. 상기 도 9를 참조하면, 먼저 입력 신호, 즉 상기 마스크 곱셈기(710)의 출력 신호와 심볼 위치 정보가 상기 심볼 배치기(720)로 입력된다. 이하 설명에서는 설명의 편의상 마스크 곱셈기(710)에서 출력되는 신호가 수신 신호 r에 all-one 마스크가 적용된 경우(즉, 실제 마스크가 적용되지 않은 경우)를 일 예로 하여 설명하기로 한다. 상기 마스크 곱셈기(710)에서 마스크 Mi가 적용된 경우 역시 수신 신호 r에 마스크 값만 곱해졌을 뿐 그 심볼 재배치 과정은 상기 마스크 Mi가 적용되지 않은 경우와 동일하게 동작함은 물론이다.
상기 all-one 마스크가 적용된 경우를 가정하였으므로, 상기 마스크 곱셈기(710)에서 출력하는 신호는 수신 신호 r과 동일하고, 상기 수신 신호 r은 상기에서 설명한 바와 같이 r = r1 r2 r3r4r5r6r7r8 r9 r10 r11이다. 상기 심볼 배치기(720)로 상기 수신 신호 r, 즉 r1 r2 r3r4r5r6r7r8 r9 r10 r11이 입력되면 상기 스위치(901)는 상기 제어기(700)에서 제공한 심볼 위치 정보에 따라 상기수신 신호 r의 수신 심볼들 각각을 해당 위치의 가산기들 각각으로 연결시킨다. 일 예로, 상기 도 8에서 설명한 바와 같이 수신 심볼 r4의 심볼 위치 정보는 십진수로 1이므로, 상기 스위치(901)는 상기 r1을 메모리 M1(923) 전단에 위치한 가산기(921)로 연결한다. 이런 식으로 상기 스위치(901)는 상기 수신 심볼들 각각을 해당 메모리의 전단에 위치하는 가산기들 각각으로 연결하게 된다. 상기 2k개의 가산기들(911,921,931,941) 각각은 상기 스위치(901)에서 연결되는 신호와, 2k개의 메모리들(915,925,935,945) 각각에서 출력하는 신호를 피드백(feedback)하여 가산한 후 상기 2k개의 메모리들(915,925,935,945) 각각으로 출력한다. 여기서, 상기 2k개의 메모리들(915,925,935,945) 각각은 신호가 입력될 때마다 피드백 루프(feedback loop)를 통해 입력되는 신호와 기존에 저장하고 있던 신호를 가산하여 새로이 갱신된(update)된 신호를 저장한다. 따라서, 상기 스위치(901)가 상기 2k개의 메모리들(915,925,935,945) 각각의 전단에 위치한 2k개의 가산기들(911,921,931,941) 각각에 연결되지 않을 때는 새로이 입력되는 신호가 없기 때문에 기존에 저장하고 있던 신호를 유지하게 된다.
그래서, 상기 수신 신호 r의 수신 심볼들 각각에 대한 심볼 재배치가 종료되면 상기 심볼 배치기(720)는 상기 메모리 Mo(913)부터 메모리(943)까지 저장되어 있는 신호들이 순차적으로 상기 IFHT기(730)에 입력되도록 2k개의스위치들(915,925,935,945) 각각의 스위칭 동작을 제어한다. 즉, 상기 메모리 Mo(913)에 연결된 스위치(915)가 제일 먼저 상기 IFHT기(730)에 연결되고, 순차적으로해서 마지막으로 상기 메모리(943)에 연결된 스위치(945)가 상기 IFHT기(730)에 연결된다. 그러면, 상기 IFHT기(730)는 상기 메모리 Mo(913)부터 메모리(943)까지 저장되어 있는 신호들을 순차적으로 입력하여 IFHT 수행하게 된다. 한편, 상기 도 9에서는 상기 2k개의 메모리들(915,925,935,945) 각각이 2k개의 스위치들(915,925,935,945) 각각과 연결되는 구조를 설명하고 있으나, 상기 2k개의 스위치들(915,925,935,945) 대신 병렬/직렬 변환기(P/S convertor)를 사용하여도 된다. 즉, 상기 병렬/직렬 변환기는 상기 2k개의 메모리들(915,925,935,945) 각각에서 출력하는 2k개의 병렬 입력들을 메모리 Mo(913)의 출력신호가 최선에 위치하도록 하게 직렬 변환하여 상기 IFHT기(730)에 출력하면 되는 것이다.
또한, 상기 IFHT기(730)는 최대 2k개의 입력들을 가지며,인 h에 대해 2h개의 입력을 사용하여 h개의 스테이지 연산을 수행한다. 여기서, 상기 IFHT기(730)의 입력 개수는 미리 결정되어 있을 수도 있고 상황에 적응적으로 가변할 수도 있는데, 상기 IFHT기(730)는 연산량을 고려하여 입력 개수를 결정한다. 즉, 상기에서 설명한 바와 같이 상기 IFHT기(730)는 (n, k) 블록 부호에 대한 복호과정에서 2hlog22h의 덧셈 과정의 연산량을 필요로 하며, 이런 점들을 고려하여 결국 입력수가 최소일수록 최소 연산량을 가지게 되므로 상기 IFHT기(730)는 최소 연산량을 가지는 입력수를 가변적으로 결정한다. 여기서, 상기 IFHT기(730)가 입력수를 결정하는 과정을 설명하면 다음과 같다.
먼저, 상기 IFHT기(730)의 입력 개수 2h이 결정되어지면, 상기 복호기에서 사용되어지는 마스크(mask) 함수의 개수는 2k-h개가 되어지고, 따라서, 전체적인 복호기의 연산량이 결정되어진다. 이 때, 모든 h(0≤h≤k)에 대해서 복호기의 연산량을 계산하고, 이중 최소 연산량을 가지는 h값을 찾고, IFHT기(730)의 입력 개수를 2h으로 결정한다. 먼저, 임의의 변수 h값에 따른 전체 복호기의 계산량을 생각해보기로 한다, 전체 복호기의 연산량은 마스크 함수가 곱해지는 부분과 IFHT를 수행하는 부분이 거의 대부분을 차지한다. 먼저, n 비트의 길이를 가지는 하나의 입력신호와 하나의 마스크 곱셈에 대한 연산량을 보면, n번 곱셈과 n-1번의 덧셈을 필요로 한다. 상기 가정에 따르면, h값에 따라서 2k-h개의 마스크들이 사용되어지게 되는데, 이 때 마스크가 곱해기는데 사용되어지는 총 연산량은의 곱셈 과정과,의 덧셈 연산이다. 또한, 하나의 IFHT기의 연산량은개의 덧셈이 필요하고, 전체 복호기에서 IFHT연산의 회수는 mask의 개수만큼 진행되므로, 전체 복호기에서 IFHT연산을 위한 연산량은이 된다. 따라서, 상기 변수 h값에 따른 복호기의 전체 연산량은번의 곱셈 과정과의 덧셈 과정이 되며, 상기 곱셈 과정과 덧셈 과정의 연산 복잡도가 동일하다고 가정할 경우 전체 연산량은이 된다. 따라서, 상기 복호기의 IFHT기의 입력 개수를 결정함에 있어서, 상기 IFHT기(730)는 가능한 모든 h(0≤h≤k)값에 따른 모든 연산량값을 계산하여 가장 작은 연산량을 가지는 h을 택하여 이에 따른 IFHT의 입력 개수, 즉 크기를 결정한다.
상기 본 발명의 제1실시예에서는 연판정 복호를 위한 IFHT 크기 정보와 생성 행렬 정보를 주제어기에서 제공하는 경우의 연판정 복호를 설명하였으며, 다음으로 본 발명의 제2실시예에서는 생성 행렬 정보만을 주제어기에서 제공하는 경우의 연판정 복호를 설명하기로 한다.
도 10은 본 발명의 제2실시예에 따른 IFHT기를 사용한 연판정 복호 장치 내부 구조를 도시한 도면이다.
상기 도 10을 참조하면, 상기 본 발명의 제2실시예에 따른 연판정 복호 장치는 제어기(1000)와, 마스크 곱셈기(1010)와, 심볼 배치기(1020)와, IFHT기(1030)와, 비교 선택기(1040)로 구성된다. 그리고, 상기 본 발명의 제2실시예에서 송수신되는 블록 부호에 적용되는 생성 행렬은 상기 수학식 3과 같다고 가정하기로 한다. 상기 수학식 3의 생성 행렬은행렬이며, 상기 수학식 3과 같은 생성 행렬을 적용할 경우 (11, 6) 블록 부호가 생성된다. 상기 제어기(1000)는 상기 수신측의 주제어기(도시하지 않음)로부터 상기 생성 행렬에 관련된 생성 행렬 정보를 전달받고, 상기 전달받은 생성 행렬 정보를 가지고 마스크 Mi와 심볼 위치 정보 및 IFHT 크기 정보를 생성한다. 결과적으로, 본 발명의 제1실시예와 제2실시예의 차이점은 연판정 복호 장치의 제어기가 어떤 동작을 수행하느냐에 있으며, 결과적으로 본 발명의 제1실시예에서는 제어기(700)가 상기 도 7에서 설명한 바와 같이 주제어기로부터 생성 행렬 정보와 IFHT 크기 정보를 전달받아 마스크 Mi와 심볼 위치 정보를 결정하는 동작을 수행하며, 본 발명의 제2실시예에서는 제어기(1000)가 주제어기로부터 생성 행렬 정보만을 전달받아 마스크 Mi와 심볼 위치 정보 및 IFHT 크기 정보를 생성하는 동작을 수행한다는 점에서 차이점이 있다.
그러면, 여기서 상기 제어기(1000)의 동작을 설명하기로 한다.
상기 제어기(1000)는 상기 주제어기로부터 전달받은 생성 행렬 정보를 가지고 IFHT기(1030)의 입력 개수를 결정하고, 즉 상기 IFHT기(1030)의 입력으로 사용할 기저들의 개수를 결정한다. 여기서, 상기 제어기(1000)가 IFHT기(1030)의 입력 개수를 결정하는 과정을 설명하면 다음과 같다.
먼저, 상기 IFHT기(1030)의 입력 개수 2h이 결정되어지면, 상기 복호기에서 사용되어지는 마스크(mask) 함수의 개수는 2k-h개가 되어지고, 따라서, 전체적인 복호기의 연산량이 결정되어진다. 이 때, 모든 h(0≤h≤k)에 대해서 복호기의 연산량을 계산하고, 이중 최소 연산량을 가지는 h값을 찾고, IFHT기(1030)의 입력 개수를 2h으로 결정한다. 먼저, 임의의 변수 h값에 따른 전체 복호기의 계산량을 생각해보기로 한다, 전체 복호기의 연산량은 마스크 함수가 곱해지는 부분과 IFHT를 수행하는 부분이 거의 대부분을 차지한다. 먼저, n 비트의 길이를 가지는 하나의 입력신호와 하나의 마스크 곱셈에 대한 연산량을 보면, n번 곱셈과 n-1번의 덧셈을 필요로 한다. 상기 가정에 따르면, h값에 따라서 2k-h개의 마스크들이 사용되어지게 되는데, 이 때 마스크가 곱해기는데 사용되어지는 총 연산량은의 곱셈 과정과,의 덧셈 연산이다. 또한, 하나의 IFHT기의 연산량은개의 덧셈이 필요하고, 전체 복호기에서 IFHT연산의 회수는 mask의 개수만큼 진행되므로, 전체 복호기에서 IFHT연산을 위한 연산량은이 된다. 따라서, 상기 변수 h값에 따른 복호기의 전체 연산량은번의 곱셈 과정과의 덧셈 과정이 되며, 상기 곱셈 과정과 덧셈 과정의 연산 복잡도가 동일하다고 가정할 경우 전체 연산량은이 된다. 따라서, 상기 복호기의 IFHT기의 입력 개수를 결정함에 있어서, 상기 IFHT기(1030)는 가능한 모든 h(0≤h≤k)값에 따른 모든 연산량값을 계산하여 가장 작은 연산량을 가지는 h을 택하여 이에 따른 IFHT의 입력 개수, 즉 크기를 결정한다.
상기 제어기(1000)는 IFHT를 수행할 경우의 연산량과, 시스템의 복잡도(complexity)와, IFHT 수행 시간등을 고려하여 상기 IFHT의 입력 개수를 결정한다. 즉, 상기 제어기(100)는 최소의 연산량과, 최소의 시스템 복잡도와, 최소의 IFHT 수행 시간을 가지는 개수로 상기 IFHT의 입력 개수를 결정한다. 일 예로,상기 생성 행렬이행렬일 경우, 상기생성 행렬로부터 (n, k) 블록 부호가 생성된다. 상기생성 행렬의 k개의 기저들중 l개의 기저들을 IFHT의 입력 목적으로 사용하고, k-l개의 기저들을 마스크 기저들로 사용한다면, 상기 IFHT는 2l개의 입력에 대해 l개의 스테이지들의 연산을 수행하고, 총 2k-l개의 마스크 기저들에 대해서 상기 연판정 복호가 반복 수행된다.
상기 도 10에서는 상기 제어기(1000)가 상기 수학식 3의 생성 행렬의 6개의 기저들중 제1행부터 제3행까지의 상위 3개의 기저들을 IFHT 수행을 위한 IFHT 입력 목적으로 사용하고, 상기 상위 3개의 기저들을 제외한 나머지 하위 3개의 기저들, 즉 제4행 내지 제6행의 기저들을 마스크 기저로 사용하기로 결정하였다고 가정하기로 한다. 상기 제어기(1000)는 상기 결정한 마스크 기저들에 상응하는 마스크 Mi를 상기 마스크 곱셈기(1010)로 출력하고, 상기 결정한 IFHT의 입력 개수들에 상응하여 수신 신호 r의 수신 심볼들 각각의 심볼 위치 정보를 결정하여 상기 심볼 배치기(1020)로 출력하고, 상기 IFHT 크기 정보를 상기 심볼 배치기(1020) 및 IFHT기(1030)로 출력한다.
여기서, 상기 제어기(1000)는 상기 생성 행렬 G에서 하위 3개의 기저들을 마스크 기저로 사용한다고 가정했으므로 상기 생성 행렬 G의 제4행 내지 제6행을 각각 제1 마스크 m1내지 제3 마스크 m3로 정의한다. 그러면, 상기 마스크로 사용되는 마스크 기저는 m1기저와, m2기저와, m1기저와 m2기저의 배타적 논리합(이하""라 칭하기로 한다)과, m1기저와 m3기저의 배타적 논리합(이하 ""라 칭하기로 한다)과, m2기저와 m3기저의 배타적 논리합(이하 ""라 칭하기로 한다)과, m1기저와 m2기저와 m3기저의 배타적 논리합(이하 ""라 칭하기로 한다)이다.
또한, 상기 본 발명의 제2실시예에 따른 연판정 복호 장치는 직렬 구조를 가지기 때문에, 실제 마스크가 적용되지 않았을 경우의 하드웨어 동작을 마스크가 적용될 경우와 동일하게 고려하기 위해서 all-one 마스크를 추가로 적용한다. 즉, 상기 제어기(1000)는 상기 마스크 곱셈기(1010)로 all-one 마스크를 출력함으로써 실제 마스크가 적용되지 않은 경우 상기 마스크가 적용된 경우와 동일한 하드웨어 구조를 가지고도 마스크가 적용되지 않은 경우까지 고려하는 것을 가능하게 한다. 상기 m1마스크 기저와, m2마스크 기저와, m1마스크 기저와 m2기저의 배타적 논리합 마스크 기저와, m1기저와 m3기저의 배타적 논리합 마스크 기저와, m2기저와 m3기저의 배타적 논리합 마스크 기저와, m1기저와 m2기저와 m3기저의 배타적 논리합 마스크 기저각각은 BPSK 방식으로 변조되어 마스크로 사용되며, 상기 종래 기술 부분에서 설명한 바와 같이 디지털 데이터는 상기 BPSK 방식으로 변조되기 때문에 상기 디지털 데이터 "0"은 "+1"로, 상기 디지털 데이터 "1"은 "-1"로 대응된다. 또한, 상기 종래 기술 부분에서 설명한 바와 마찬가지로 상기 제어기(1000)는 상기 마스크가 적용되지 않았을 경우 상기all-one 마스크를 출력하지 않고 상기 마스크 곱셈기(1010)의 동작을 그대로 바이패스(bypass)할 수도 있음은 물론이다.
한편, 상기 종래 기술 부분에서 설명한 바와 같이 IFHT기를 사용하는 연판정 복호 장치는 직렬 구조 혹은 병렬 구조를 가지는데, 본 발명에서는 설명의 편의상 상기 직렬 구조의 연판정 복호 장치만을 설명하기로 하였으므로, 상기 도 10의 연판정 복호 장치 역시 직렬 구조를 가진다. 그러면 상기 제어기(1000)는 상기 수신 신호 r이 수신되면 최초에는 all-one 마스크가 적용되었다고 가정하고 상기 all-one 마스크를 마스크 곱셈기1010)로 출력한다. 상기 마스크 곱셈기(1010)는 상기 수신 신호 r과 상기 all-one 마스크를 곱한 후 상기 심볼 배치기(1020)로 출력한다. 상기 심볼 배치기(1020)는 상기 마스크 곱셈기(1010)에서 출력된 신호, 즉 수신 신호 r을 입력하여 상기 수신 신호 r을 구성하는 심볼들의 위치를 상기 제어기(1000)에서 제공한 심볼 위치 정보에 상응하게 재배치하여 상기 IFHT기(1030)로 출력한다. 상기 IFHT기(1030)는 상기 제어기(1000)로부터 전달받은 IFHT 크기 정보에 따라 IFHT의 입력 및 해당 스테이지를 가지는 IFHT를 구성하고, 상기 심볼 배치기(1020)에서 출력된 신호를 IFHT 수행하여 그 결과를 상기 비교 선택기(1040)로 출력한다. 상기 비교 선택기(1040)는 상기 IFHT기(1030)에서 출력한 모든 IFHT 결과값들을 비교하여 최대 상관값을 가지는 부호어를 선택하여 상기 선택한 부호어를 상기 송신측에서 전송한 부호어로 판단한다. 결과적으로, 상기 비교 선택기(1030)에서 출력한 부호어에 상응하는 정보 비트가 원래의 정보 비트로 복원되는 것이다.
그러면 여기서 도 11을 참조하여 상기 제어기(1000)의 심볼 위치 정보 결정 과정 및 상기 심볼 배치기(1020)의 심볼 재배치 과정을 설명하기로 한다.
상기 도 11은 도 10의 제어기(1000)의 심볼 위치 정보 결정 과정 및 심볼 배치기(1020)의 수신 심볼 재배치 과정을 개략적으로 도시한 도면이다.
상기 도 11을 참조하면, 먼저 상기 제어기(1000)가 상기 수학식 3의 생성 행렬에서 제1행 내지 제3행의 상위 3개의 기저들만 IFHT기의 입력을 위해 사용하기로 결정하였으므로, IFHT기(1030)의 입력은 23개(=8개)가 필요하다. 여기서, 상기 IFHT기(1030)의 입력은 0부터 7까지 8개이며, 하기의 설명에서 설명의 편의상 상기 0에 해당하는 입력을 "0번째 입력", 7에 해당하는 입력을 "7번째 입력"이라 칭하기로 하며, 실질적으로는 상기 "0번째 입력"이 상기 IFHT기(1030)의 제1입력이 되며, 상기 "7번째 입력"이 상기 IFHT기(1030)의 제8입력이 된다. 그러면, 상기 제어기(1000)가 상기 수신 신호 r, 즉 r1 r2 r3r4r5r6r7r8 r9 r10 r11을 상기 IFHT기(1030)의 입력으로 고려하기 위해 상기 수신 신호 r을 구성하는 심볼들 각각, 즉 r1, r2, r3,r4,r5,r6,r7,r8, r9, r10, r11 각각의 심볼 위치 정보를 결정하는 과정을 설명하면 다음과 같다.
상기 제어기(1000)는 상기 수신 신호 r의 심볼들 각각을 순서대로, 즉 r1부터 순차적으로 r11까지 상기 IFHT기(1030)의 입력으로 대응시키기 위한 심볼 위치를 결정한다. 첫 번째로, 상기 제어기(1000)는 상기 생성 행렬 G의 제1열의 상위 3비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제3행의 엘리먼트를 MSB로 하여"011"을 생성하고, 상기 "011"을 십진수로 변환한다. 상기 "011"을 십진수로 변환하면 "3"이 되므로, 상기 제어기(1000)는 23개(=8개), 즉 0 내지 7까지의 입력 크기 8인 상기 IFHT기(1030)의 3번째 입력으로 상기 수신 신호 r의 첫 번째 심볼 r1이 배치될 수 있도록 심볼 위치를 결정한다. 두 번째로, 상기 제어기(1000)는 상기 생성 행렬 G의 제2열의 상위 3비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제3행의 엘리먼트를 MSB로 하여 "000"을 생성하고, 상기 "000"을 십진수로 변환한다. 상기 "000"을 십진수로 변환하면 "0"이 되므로, 상기 제어기(1000)는 상기 IFHT기(1030)의 0번째 입력으로 상기 수신 신호 r의 두 번째 심볼 r2가 배치될 수 있도록 심볼 위치를 결정한다. 세 번째로, 상기 제어기(1000)는 상기 생성 행렬 G의 제3열의 상위 3비트들만을 고려하여 제1행의 엘리먼트를 LSB로, 제3행의 엘리먼트를 MSB로 하여 "110"을 생성하고, 상기 "110"을 십진수로 변환한다. 상기 "110"을 십진수로 변환하면 "6"이 되므로, 상기 제어기(1000)는 상기 IFHT기(1030)의 6번째 입력으로 상기 수신 신호 r의 세 번째 심볼 r3이 배치될 수 있도록 심볼 위치를 결정한다. 상기 제어기(1000)는 이런 식으로 상기 수신 신호 r의 열한번째 심볼 r11까지 상기 IFHT기(1030)의 입력으로 배치될 수 있도록 심볼 위치를 결정한다. 상기 도 11에 나타낸 바와 같이 상기 제어기(1000)는 상기 수신 신호 r의 첫 번째 심볼 r1은 상기 IFHT기(1030)의 3번째 입력으로, 두 번째 심볼 r2은 상기 IFHT기(1030)의 0번째 입력으로, 세 번째 심볼 r3은 상기 IFHT기(1030)의 6번째 입력으로, 네 번째 심볼 r4은 상기 IFHT기(1030)의 1번째 입력으로, 다섯 번째 심볼r5은 상기 IFHT기(1030)의 4번째 입력으로, 여섯 번째 심볼 r6은 상기 IFHT기(1030)의 6번째 입력으로, 일곱 번째 심볼 r7은 상기 IFHT기(1030)의 0번째 입력으로, 여덟 번째 심볼 r1은 상기 IFHT기(1030)의 0번째 입력으로, 아홉 번째 심볼 r9은 상기 IFHT기(1030)의 1번째 입력으로, 열 번째 심볼 r10은 상기 IFHT기(1030)의 0번째 입력으로, 열한 번째 심볼 r11은 상기 IFHT기(1030)의 3번째 입력으로 배치될 수 있도록 심볼 위치를 결정하고, 상기 결정된 심볼 위치에 따른 심볼 위치 정보를 상기 심볼 배치기(1020)로 출력하는 것이다.
특히, 상기 수신 신호 r의 첫 번째 심볼 r2과 일곱 번째 심볼 r7과 여덟 번째 심볼 r8과 열 번째 심볼 r10은 동일한 십진수 값, 즉 0이 나왔으므로 상기 첫 번째 심볼 r2과 일곱 번째 심볼 r7과 여덟 번째 심볼 r8과 열 번째 심볼 r10이 가산되어 상기 IFHT기(1030)의 0번째 입력으로 배치될 수 있도록 심볼 위치가 결정되며, 상기 수신 신호 r의 네 번째 심볼 r4와 아홉 번째 심볼 r9은 동일한 십진수 값, 즉 1이 나왔으므로 상기 네 번째 심볼 r4와 아홉 번째 심볼 r9이 가산되어 상기 IFHT기(1030)의 1번째 입력으로 배치될 수 있도록 심볼 위치가 결정되며, 상기 수신 신호 r의 첫 번째 심볼 r1와 열한 번째 심볼 r11은 동일한 십진수 값, 즉 3이 나왔으므로 상기 첫 번째 심볼 r1와 열한 번째 심볼 r11이 가산되어 상기 IFHT기(1030)의 3번째 입력으로 배치될 수 있도록 심볼 위치가 결정되며, 상기 수신 신호 r의 세 번째 수신 심볼 r3와 여섯 번째 수신 심볼 r6은 동일한 십진수 값, 즉 6이 나왔으므로 상기 세 번째 수신 심볼 r3와 여섯 번째 수신 심볼 r6이 가산되어 상기 IFHT기(1030)의 6번째 입력으로 배치될 수 있도록 심볼 위치가 결정된다.
또한, 상기 본 발명의 제2실시예에 따른 심볼 배치기(1020) 구조는 상기 도 9에서 설명한 바와 동일한 구조를 가지며, 다만 IFHT기(1030)의 입력 개수가 상이하므로, 상기 IFHT기(1030)의 전단에 연결되는 메모리들의 개수와, 상기 메모리들에 연결되는 가산기들의 개수 및 상기 메모리들에 연결되는 스위치들의 개수만이 상이해질 뿐이다.
상술한 바와 같은 본 발명은, 통신 시스템에서 임의의 정보 비트 길이를 가지고 생성된 임의의 블록 길이를 가지는 불록 부호를 심볼 재배치를 통해 IFHT를 수행할 수 있도록 제어함으로써 최소의 연산량을 가지는 연판정 복호를 가능하게 한다는 이점을 가진다. 또한, 상기 블록 부호의 생성 행렬에 따라 IFHT의 입력으로 사용될 기저와 마스크로 사용될 기저의 개수를 결정함으로써 최소의 연상량과, 최소의 시스템 복잡도 및 최소의 IFHT 수행 시간을 가지는 연판정 복호를 가능하게 한다는 이점을 가진. 또한, 상기와 같이 임의의 정보 비트 길이를 가지고 생성된 임의의 블록 길이를 가지는 블록 부호에 대한 복호를 생성 행렬에 상응하게 제어하여 연판정 복호함으로써 하드웨어적으로 동일한 연판정 복호 장치를 가지고 복호하는 것이 가능하다는 이점을 가진다.

Claims (28)

  1. k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 장치에 있어서,
    상기 (n, k) 블록 부호의 생성 행렬 정보와, 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보를 가지고 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 제어기와,
    상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 제어기가 결정한 심볼 위치 정보에 상응하게 IFHT기의 입력으로 재배치하는 심볼 배치기와,
    상기 심볼 배치기에서 재배치한 심볼들을 입력하여 IFHT를 수행하는 IFHT기와,
    상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 비교 선택기를 포함함을 특징으로 하는 상기 복호 장치.
  2. 제1항에 있어서,
    상기 생성 행렬 정보는 상기 (n, k) 블록 부호 생성을 위한행렬을 나타내며, 상기 IFHT 크기 정보는 상기행렬에서 상위 m행의 기저들을 IFHT기의입력으로 사용하도록 제어하는 정보임을 특징으로 하는 상기 복호 장치.
  3. 제2항에 있어서,
    상기 제어기는 상기행렬의 제1열부터 순차적으로 제n열까지 각각 상위 m 엘리먼트들만을 고려하여 제1행의 엘리먼트를 최하위 비트로, 제m행의 엘리먼트를 최상위 비트로하여 이진 시퀀스들을 생성하고, 상기 생성한 이진 시퀀스들 각각의 십진수값을 생성하고, 상기 (n, k) 블록 부호의 부호화 심볼들중 첫 번째 부호화 심볼부터 순차적으로 제n 부호화 심볼까지 각각이 상기 제1열의 십진수값에 해당하는 상기 IFHT기의 입력으로 대응되고 순차적으로 제n열의 십진수값에 해당하는 상기 IFHT기의 입력으로 대응되도록 상기 심볼 위치 정보를 결정함을 특징으로 하는 상기 복호 장치.
  4. 제2항에 있어서,
    상기 복호 장치는 상기 (n, k) 블록 부호를 소정 제어에 따라 제공되는 마스크들과 곱셈하여 상기 심볼 배치기로 출력하는 마스크 곱셈기를 더 포함함을 특징으로 하는 상기 복호 장치.
  5. 제4항에 있어서,
    상기 제어기는행렬에서 상위 m행의 기저들을 제외한 하위 k-m행의 기저들을 마스크 기저들로 사용하며, 상기 마스크 기저들을 상기 (n, k) 블록 부호에 적용된 변조 방식에 상응하게 변조하여 생성된 마스크들을 상기 마스크 곱셈기로 제공함을 특징으로 하는 상기 복호 장치.
  6. 제3항에 있어서,
    상기 심볼 배치기는;
    상기 (n, k) 블록 부호를 입력되면 상기 제어기에서 제공되는 심볼 위치 정보에 상응하게 상기 (n, k) 블록 부호의 제1부호화 심볼부터 제n부호화 심볼까지 각각 해당하는 n개의 가산기들 각각으로 스위칭하는 스위치와,
    상기 IFHT기의 제1입력 내지 제n입력까지의 n개의 입력들 각각에 연결되는 n개의 메모리들과,
    일단이 상기 스위치와 연결되며, 나머지 일단이 상기 n개의 메모리들 각각과 연결되는 n개의 가산기들을 포함함을 특징으로 하는 상기 복호 장치.
  7. 제6항에 있어서,
    상기 심볼 배치기는 일단이 상기 n개의 메모리들 각각에 연결되며, 나머지일단이 상기 IFHT기에 연결되는 n개의 스위치들을 포함하며, 상기 (n, k) 블록 부호의 부호어들 각각에 대한 심볼 재배치가 완료되면 상기 n개의 스위치들 중 상기 IFHT기의 제1입력에 연결되는 스위치부터 순차적으로 상기 제n입력에 연결되는 스위치까지 상기 IFHT기로 순차적으로 연결하도록 제어함을 특징으로 하는 상기 복호 장치.
  8. 제6항에 있어서,
    상기 심볼 배치기는 일단이 상기 n개의 메모리들 각각에 연결되며, 나머지 일단이 상기 IFHT기에 연결되는 병렬/직렬 변환기를 포함하며, 상기 병렬/직렬 변환기가 상기 (n, k) 블록 부호의 부호어들 각각에 대한 심볼 재배치가 완료되면 상기 n개의 메모리들 각각에 저장되어 있는 신호들을 상기 n개의 메모리들중 상기 IFHT기의 제1입력에 연결되는 메모리부터 순차적으로 상기 제n입력에 연결되는 메모리까지 직렬 변환하여 상기 IFHT기로 출력하도록 제어함을 특징으로 하는 상기 복호 장치.
  9. k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 장치에 있어서,
    상기 (n, k) 블록 부호의 생성 행렬 정보를 가지고 상기 (n, k) 블록 부호를역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 제어기와,
    상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 제어기가 결정한 심볼 위치 정보에 상응하게 IFHT기의 입력으로 재배치하는 심볼 배치기와,
    상기 심볼 배치기에서 재배치한 심볼들을 입력하여 IFHT를 수행하는 IFHT기와,
    상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 비교 선택기를 포함함을 특징으로 하는 상기 복호 장치.
  10. 제9항에 있어서,
    상기 생성 행렬 정보는 상기 (n, k) 블록 부호 생성을 위한행렬을 나타냄을 특징으로 하는 상기 복호 장치.
  11. 제9항에 있어서,
    상기 제어기는 상기 생성 행렬 정보를 가지고 IFHT를 수행할 경우의 연산량과, 시스템의 복잡도와, IFHT 수행 시간을 고려하여 상기 IFHT의 크기 정보를 결정하며, 상기 IFHT 크기 정보는 상기행렬에서 상위 m행의 기저들을 IFHT기의 입력으로 사용하도록 제어하는 정보임을 특징으로 하는 상기 복호 장치.
  12. 제11항에 있어서,
    상기 제어기는 상기행렬의 제1열부터 순차적으로 제n열까지 각각 상위 m 엘리먼트들만을 고려하여 제1행의 엘리먼트를 최하위 비트로, 제m행의 엘리먼트를 최상위 비트로하여 이진 시퀀스들을 생성하고, 상기 생성한 이진 시퀀스들 각각의 십진수값을 생성하고, 상기 (n, k) 블록 부호의 부호화 심볼들중 첫 번째 부호화 심볼부터 순차적으로 제n 부호화 심볼까지 각각이 상기 제1열의 십진수값에 해당하는 상기 IFHT기의 입력으로 대응되고 순차적으로 제n열의 십진수값에 해당하는 상기 IFHT기의 입력으로 대응되도록 상기 심볼 위치 정보를 결정함을 특징으로 하는 상기 복호 장치.
  13. 제11항에 있어서,
    상기 복호 장치는 상기 (n, k) 블록 부호를 소정 제어에 따라 제공되는 마스크들과 곱셈하여 상기 심볼 배치기로 출력하는 마스크 곱셈기를 더 포함함을 특징으로 하는 상기 복호 장치.
  14. 제12항에 있어서,
    상기 제어기는행렬에서 상위 m행의 기저들을 제외한 하위 k-m행의 기저들을 마스크 기저들로 사용하며, 상기 마스크 기저들을 상기 (n, k) 블록 부호에 적용된 변조 방식에 상응하게 변조하여 생성된 마스크들을 상기 마스크 곱셈기로 제공함을 특징으로 하는 상기 복호 장치.
  15. 제12항에 있어서,
    상기 심볼 배치기는;
    상기 (n, k) 블록 부호를 입력되면 상기 제어기에서 제공되는 심볼 위치 정보에 상응하게 상기 (n, k) 블록 부호의 제1부호화 심볼부터 제n부호화 심볼까지 각각 해당하는 n개의 가산기들 각각으로 스위칭하는 스위치와,
    상기 IFHT기의 제1입력 내지 제n입력까지의 n개의 입력들 각각에 연결되는 n개의 메모리들과,
    일단이 상기 스위치와 연결되며, 나머지 일단이 상기 n개의 메모리들 각각과 연결되는 n개의 가산기들을 포함함을 특징으로 하는 상기 복호 장치.
  16. 제15항에 있어서,
    상기 심볼 배치기는 일단이 상기 n개의 메모리들 각각에 연결되며, 나머지 일단이 상기 IFHT기에 연결되는 n개의 스위치들을 포함하며, 상기 (n, k) 블록 부호의 부호어들 각각에 대한 심볼 재배치가 완료되면 상기 n개의 스위치들 중 상기 IFHT기의 제1입력에 연결되는 스위치부터 순차적으로 상기 제n입력에 연결되는 스위치까지 상기 IFHT기로 순차적으로 연결하도록 제어함을 특징으로 하는 상기 복호 장치.
  17. 제15항에 있어서,
    상기 심볼 배치기는 일단이 상기 n개의 메모리들 각각에 연결되며, 나머지 일단이 상기 IFHT기에 연결되는 병렬/직렬 변환기를 포함하며, 상기 병렬/직렬 변환기가 상기 (n, k) 블록 부호의 부호어들 각각에 대한 심볼 재배치가 완료되면 상기 n개의 메모리들 각각에 저장되어 있는 신호들을 상기 n개의 메모리들중 상기 IFHT기의 제1입력에 연결되는 메모리부터 순차적으로 상기 제n입력에 연결되는 메모리까지 직렬 변환하여 상기 IFHT기로 출력하도록 제어함을 특징으로 하는 상기 복호 장치.
  18. k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 방법에 있어서,
    상기 (n, k) 블록 부호의 생성 행렬 정보와, 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보를 가지고 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 과정과,
    상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 결정된 심볼 위치 정보에 상응하게 IFHT의 입력으로 재배치하는 과정과,
    상기 재배치한 심볼들을 입력하여 IFHT를 수행하는 과정과,
    상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 과정을 포함함을 특징으로 하는 상기 복호 방법.
  19. 제18항에 있어서,
    상기 생성 행렬 정보는 상기 (n, k) 블록 부호 생성을 위한행렬을 나타내며, 상기 IFHT 크기 정보는 상기행렬에서 상위 m행의 기저들을 IFHT의 입력으로 사용하도록 제어하는 정보임을 특징으로 하는 상기 복호 방법.
  20. 제19항에 있어서,
    상기 심볼 위치 정보를 결정하는 과정은 상기행렬의 제1열부터 순차적으로 제n열까지 각각 상위 m 엘리먼트들만을 고려하여 제1행의 엘리먼트를 최하위 비트로, 제m행의 엘리먼트를 최상위 비트로하여 이진 시퀀스들을 생성하고, 상기 생성한 이진 시퀀스들 각각의 십진수값을 생성하고, 상기 (n, k) 블록 부호의 부호화 심볼들중 첫 번째 부호화 심볼부터 순차적으로 제n 부호화 심볼까지 각각이 상기 제1열의 십진수값에 해당하는 상기 IFHT의 입력으로 대응되고 순차적으로 제n열의 십진수값에 해당하는 상기 IFHT의 입력으로 대응되도록 상기 심볼 위치 정보를 결정하는 것임을 특징으로 하는 상기 복호 방법.
  21. 제19항에 있어서,
    상기 (n, k) 블록 부호를 소정 제어에 따라 제공되는 마스크들과 곱셈하여 상기 심볼 재배치하는 과정을 더 포함함을 특징으로 하는 상기 복호 방법.
  22. 제21항에 있어서,
    상기 마스크들은 상기행렬에서 상위 m행의 기저들을 제외한 하위 k-m행의 기저들을 상기 (n, k) 블록 부호에 적용된 변조 방식에 상응하게 변조되어 생성된 것임을 특징으로 하는 상기 복호 방법.
  23. k개의 정보 비트들과 n개의 출력 비트들을 가지는 (n, k) 블록 부호를 복호하는 방법에 있어서,
    상기 (n, k) 블록 부호의 생성 행렬 정보를 가지고 상기 (n, k) 블록 부호를 역 고속 하다마드 변환(IFHT: Inverse Fast Hadamard Transform)하기 위한 IFHT 크기 정보와, 상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 재배치하기 위한 심볼 위치 정보를 결정하는 과정과,
    상기 (n, k) 블록 부호를 구성하는 부호화 심볼들 각각을 상기 결정된 심볼 위치 정보에 상응하게 IFHT의 입력으로 재배치하는 과정과,
    상기 재배치한 심볼들을 입력하여 IFHT를 수행하는 과정과,
    상기 IFHT를 수행한 결과들중에서 최대 상관값을 가지는 (n, k) 블록 부호의 정보 비트를 복호 신호로 출력하는 과정을 포함함을 특징으로 하는 상기 복호 방법.
  24. 제23항에 있어서,
    상기 생성 행렬 정보는 상기 (n, k) 블록 부호 생성을 위한행렬을 나타냄을 특징으로 하는 상기 복호 방법.
  25. 제23항에 있어서,
    상기 IFHT의 크기 정보는 상기 생성 행렬 정보를 가지고 IFHT를 수행할 경우의 연산량과, 시스템의 복잡도와, IFHT 수행 시간을 고려하여 상기 IFHT의 크기 정보를 결정되며, 상기 IFHT 크기 정보는 상기행렬에서 상위 m행의 기저들을 IFHT의 입력으로 사용하도록 제어하는 정보임을 특징으로 하는 상기 복호 방법.
  26. 제25항에 있어서,
    상기 심볼 위치 정보를 결정하는 과정은 상기행렬의 제1열부터 순차적으로 제n열까지 각각 상위 m 엘리먼트들만을 고려하여 제1행의 엘리먼트를 최하위 비트로, 제m행의 엘리먼트를 최상위 비트로하여 이진 시퀀스들을 생성하고, 상기 생성한 이진 시퀀스들 각각의 십진수값을 생성하고, 상기 (n, k) 블록 부호의 부호화 심볼들중 첫 번째 부호화 심볼부터 순차적으로 제n 부호화 심볼까지 각각이 상기 제1열의 십진수값에 해당하는 상기 IFHT의 입력으로 대응되고 순차적으로 제n열의 십진수값에 해당하는 상기 IFHT의 입력으로 대응되도록 상기 심볼 위치 정보를 결정하는 것임을 특징으로 하는 상기 복호 방법.
  27. 제25항에 있어서,
    상기 (n, k) 블록 부호를 소정 제어에 따라 제공되는 마스크들과 곱셈하여 상기 심볼 재배치하는 과정을 더 포함함을 특징으로 하는 상기 복호 방법.
  28. 제27항에 있어서,
    상기 마스크들은 상기행렬에서 상위 m행의 기저들을 제외한 하위 k-m행의 기저들을 상기 (n, k) 블록 부호에 적용된 변조 방식에 상응하게 변조되어 생성된 것임을 특징으로 하는 상기 복호 방법.
KR1020030020255A 2003-03-31 2003-03-31 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법 KR20040085545A (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020030020255A KR20040085545A (ko) 2003-03-31 2003-03-31 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법
US10/811,547 US20040193995A1 (en) 2003-03-31 2004-03-29 Apparatus for decoding an error correction code in a communication system and method thereof
PCT/KR2004/000734 WO2004088866A1 (en) 2003-03-31 2004-03-30 Apparatus for decoding an error correction code in a communication system and method thereof
EP04007728A EP1465351A3 (en) 2003-03-31 2004-03-30 Soft decision decoding of error correcting block codes using the fast Hadamard transform
RU2005102107/09A RU2280323C2 (ru) 2003-03-31 2004-03-30 Устройство и способ для декодирования кода коррекции ошибки в системе связи
JP2005518773A JP2006515495A (ja) 2003-03-31 2004-03-30 通信システムにおけるエラー訂正符号を復号する装置及び方法
CA002493430A CA2493430A1 (en) 2003-03-31 2004-03-30 Apparatus for decoding an error correction code in a communication system and method thereof
CNA2004800005565A CN1698282A (zh) 2003-03-31 2004-03-30 通信***中用于解码纠错码的装置及其方法
AU2004225405A AU2004225405A1 (en) 2003-03-31 2004-03-30 Apparatus for decoding an error correction code in a communication system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030020255A KR20040085545A (ko) 2003-03-31 2003-03-31 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20040085545A true KR20040085545A (ko) 2004-10-08

Family

ID=36729286

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030020255A KR20040085545A (ko) 2003-03-31 2003-03-31 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법

Country Status (9)

Country Link
US (1) US20040193995A1 (ko)
EP (1) EP1465351A3 (ko)
JP (1) JP2006515495A (ko)
KR (1) KR20040085545A (ko)
CN (1) CN1698282A (ko)
AU (1) AU2004225405A1 (ko)
CA (1) CA2493430A1 (ko)
RU (1) RU2280323C2 (ko)
WO (1) WO2004088866A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301962B2 (en) 2007-09-06 2012-10-30 Samsung Electronics Co., Ltd Apparatus and method for generating a linear code
US10097206B2 (en) 2015-10-01 2018-10-09 Electronics And Telecommunications Research Institute Method and apparatus for performing encoding using block code having input/output of variable length

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721179B2 (en) * 2004-09-15 2010-05-18 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding transmission information in mobile telecommunication system
US8290095B2 (en) * 2006-03-23 2012-10-16 Qualcomm Incorporated Viterbi pack instruction
JP5145766B2 (ja) * 2007-05-21 2013-02-20 株式会社Jvcケンウッド 軟判定装置及び軟判定方法
US8788918B2 (en) * 2008-03-20 2014-07-22 Marvell World Trade Ltd. Block encoding with a variable rate block code
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
JP2013201582A (ja) * 2012-03-23 2013-10-03 Sharp Corp 受信装置、復号後尤度算出装置および受信方法
DE102013001740B3 (de) * 2013-02-01 2014-01-09 Eberhard Karls Universität Tübingen Anordnung und Verfahren zur Decodierung eines Datenworts mit Hilfe eines Reed-Muller-Codes
CN103795492B (zh) * 2013-09-30 2015-09-09 深圳光启智能光子技术有限公司 光通信***中的编码/解码方法、装置和***
JP6776298B2 (ja) * 2018-05-25 2020-10-28 アンリツ株式会社 信号発生装置および信号発生方法と誤り率測定装置および誤り率測定方法
CN111342846B (zh) * 2018-12-19 2023-10-20 大唐移动通信设备有限公司 一种译码方法、装置及计算机可读存储介质
JP6821719B2 (ja) * 2019-01-23 2021-01-27 アンリツ株式会社 バーストエラー付加装置、それを用いた試験信号発生装置、及びバーストエラー付加方法
US11356119B2 (en) * 2019-12-17 2022-06-07 Qualcomm Incorporated Noncoherent wireless communication using modified Reed Muller codes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463657A (en) * 1994-02-15 1995-10-31 Lockheed Missiles & Space Company, Inc. Detection of a multi-sequence spread spectrum signal
CA2185847A1 (en) * 1996-09-18 1998-03-19 Jean-Paul Chaib Method and apparatus for encoding and decoding digital signals
US5926488A (en) * 1997-08-14 1999-07-20 Ericsson, Inc. Method and apparatus for decoding second order reed-muller codes
KR100735402B1 (ko) * 2000-11-07 2007-07-04 삼성전자주식회사 비동기 이동통신시스템에서 하향 공유 채널에 사용하는 송신 형식 결합 지시기의 전송 장치 및 방법
US7293224B2 (en) * 2001-03-20 2007-11-06 Samsung Electronics Co., Ltd. Encoding/decoding apparatus and method in a CDMA mobile communication system
KR100724847B1 (ko) * 2001-05-09 2007-06-04 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 부호화 및 복호화장치 및 방법
JP2002344332A (ja) * 2001-05-15 2002-11-29 Mitsubishi Electric Corp 軟入力軟出力復号方法及び軟入力軟出力復号装置
CA2391841C (en) * 2001-06-28 2006-05-16 Samsung Electronics Co., Ltd. Apparatus and method for transmitting tfci bits for a hard split mode in a cdma mobile communication system
JP3490425B2 (ja) * 2002-03-14 2004-01-26 松下電器産業株式会社 受信装置及び受信方法
KR100605813B1 (ko) * 2003-02-28 2006-08-01 삼성전자주식회사 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301962B2 (en) 2007-09-06 2012-10-30 Samsung Electronics Co., Ltd Apparatus and method for generating a linear code
US10097206B2 (en) 2015-10-01 2018-10-09 Electronics And Telecommunications Research Institute Method and apparatus for performing encoding using block code having input/output of variable length

Also Published As

Publication number Publication date
CA2493430A1 (en) 2004-10-14
AU2004225405A1 (en) 2004-10-14
WO2004088866A1 (en) 2004-10-14
EP1465351A2 (en) 2004-10-06
CN1698282A (zh) 2005-11-16
RU2005102107A (ru) 2005-09-10
JP2006515495A (ja) 2006-05-25
EP1465351A3 (en) 2004-12-08
RU2280323C2 (ru) 2006-07-20
US20040193995A1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
JP3923617B2 (ja) 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器
US11108411B2 (en) Polar coding with dynamic frozen bits
KR100384098B1 (ko) 통신 네트워크에서 레이트 매칭 알고리즘을 사용하는시스템 및 방법
KR20040085545A (ko) 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법
JPH06224777A (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法
KR20040044590A (ko) Ldpc 코드를 이용한 부호화기 및 부호화 방법
KR102386191B1 (ko) 폴라 코드용의 블록 단위의 병렬 동결 비트 생성
WO2002007323A2 (en) Protocol header compression
US6081921A (en) Bit insertion approach to convolutional encoding
JP3454816B1 (ja) シンプレックス符号を使用した(n、3)符号と(n、4)符号を生成する装置及び方法
WO2019130475A1 (ja) 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置
CN109768846B (zh) 基于二核三核混合极化码的凿孔方法、***、装置及介质
EP3443677B1 (en) Communication device and communication method using polar codes
US8321768B2 (en) Method and system for calculating CRC
EP1064728B1 (en) Technique for finding a starting state for a convolutional feedback encoder
US4293951A (en) Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block
EP1411643B1 (en) A method and apparatus for generating an interleaved address
US3571795A (en) Random and burst error-correcting systems utilizing self-orthogonal convolution codes
KR20100008849A (ko) 통신 시스템에서 순환중복검사 방법 및 장치
US6611494B1 (en) Orthogonal sequence generator
KR100799147B1 (ko) 디코딩 방법 및 장치
KR101493999B1 (ko) 선형 부호 생성 장치 및 방법
US7379610B2 (en) Methods of, and apparatus for, producing code words
RU2702724C2 (ru) Способ совместного арифметического и помехоустойчивого кодирования и декодирования
KR100396649B1 (ko) 가변 길이 정보에 대한 배직교 코딩의 최적 코드 맵핑 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid