KR100406330B1 - 매칭스펙트럼널부호화기/복호화기 - Google Patents

매칭스펙트럼널부호화기/복호화기 Download PDF

Info

Publication number
KR100406330B1
KR100406330B1 KR10-1998-0700764A KR19980700764A KR100406330B1 KR 100406330 B1 KR100406330 B1 KR 100406330B1 KR 19980700764 A KR19980700764 A KR 19980700764A KR 100406330 B1 KR100406330 B1 KR 100406330B1
Authority
KR
South Korea
Prior art keywords
value
state
bit
values
codeword
Prior art date
Application number
KR10-1998-0700764A
Other languages
English (en)
Other versions
KR19990036097A (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 KR19990036097A publication Critical patent/KR19990036097A/ko
Application granted granted Critical
Publication of KR100406330B1 publication Critical patent/KR100406330B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/497Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems by correlative coding, e.g. partial response coding or echo modulation coding transmitters and receivers for partial response systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

매칭된 스펙트럼 널 이진 코드, 특히 112B/15B 코드를 위한 부호화기가 개시된다. 코드워드 트렐리스는 2개 이상의 서브 트렐리스로 구획되어 각각의 서브 트렐리스는 개별적으로 부호화된다. 상기 코드워드는 서브 트렐리스에 의해 생성된 코드워드의 연결이다. 모든 연결이 유효하다는 것을 보증하기 위해 일부 유효한 시퀀스가 수행되어야 하지만, 기억 요구는 크게 감소한다.

Description

매칭 스펙트럼 널 부호화기/복호화기{MATCHED SPECTRAL NULL ENCODER/DECODER}
본 발명은 부분적 응답 채널을 통한 전송을 위하여 디지털 데이터의 부호화에 관한 것이다. 보다 구체적으로 본 발명은 12/15 매칭된 스펙트럼 널 부호화기를 구현하는 것에 관한 것이다.
소오스로부터 목적지로 이동하는 정보는 일반적으로 채널을 통해 이동하는 것처럼 기술될 수 있다. 이상적으로, 채널은 정보를 변경하지 않고 그것을 전송하여야 하지만, 실제적으로 모든 채널은 채널을 통과하는 정보 또는 신호를 변경한다. 변경은 채널에서 채널로 다양하지만 일반적으로 하나 이상의 타입으로 범주화될 수 있다. 부분적 응답으로 공지된 변경의 한 타입은 원래 입력 신호와 하나 이상의 시간 유니트에 의해 지연된 원래 입력 신호의 조합인 채널 출력 신호를 발생시킨다. 이러한 부분적 응답은 종종 전송 다항식 h(D) = (1±DN)로 언급되며, 여기서 h(D)는 채널의 출력을 나타내고, "1"이 원래 신호를 나타내고 DN은 N개의 시간 유니트에 의해 지연된 원래 신호를 나타낸다. 예를 들어 많은 컴퓨터 디스크 구동기는 PR(4) 응답으로 공지된 채널인 IV 등급 부분 응답을 나타내는 채널을 포함하며, 이것은 2개의 시간 유니트에 의해 지연된 입력신호를 입력 신호에서 감산한 것과 동일한 출력 신호를 생성하는 (1-D2)의 전달 함수 h(D)를 갖는다.
상기와 유사한 부분 응답 전달 함수는 관련된 스펙트럼 널을 가지며, 상기 널은 전달 함수가 전달하지 못하는 주파수이다. 예를 들어, 데이터 율(X)로 PR(4) 채널처럼 동작하는 채널은 나이퀘스트 주파수로 공지된 X/2 주파수 성분을 전달하지 못하고 D.C로 공지된 제로 주파수를 전달하지 못한다.
부호화된 신호의 스펙트럼 밀도가 채널의 스펙트럼 널에서 제로로 떨어지도록 채널의 입력 신호가 부호화된다면, 목적지에서 데이터의 안정도가 향상될 수 있다는 것이 보여지기 때문에, 채널의 스펙트럼 널은 흥미있는 것이다. 이같이 코딩된 신호는 매칭된 널 코드로서 공지되었으며, 그들의 특성은 IEEE Trans.Info. Th.vol 37, No.3,pp 81-855, 1991년 5월, R.Karabed 및 P.H. Siegl에 의한 "Matched Spectral-Null Codes for Partial-Response Channels" 와 같은 논문에서 자세히 개시된다.
이중 코드의 (1-D) 채널의 스펙트럼 널을 매칭시키는 스펙트럼 전력 밀도를 사용하여 매칭된 스펙트럼 널 코드는 특히 흥미있다. 이러한 코드는, PR(4)(1-D2) 채널의 스펙트럼 널을 매칭시키는 스펙트럼 전력 밀도를 사용하여 부호화된 신호를 생성하는 데 삽입될 수 있는 두 개의 분리된 부호화 신호를 생성하는 데 사용될 수 있다.
12/15 매칭된 스펙트럼 널 코드에 있어서, 입력 신호는 입력 신호의 12 비트 세그먼트를 15 비트의 코드워드로 변환함으로써 부호화된다. 각각 유효하고 단일한 코드워드를 요구하는 212(4096)의 가능한 입력 값이 존재하기 때문에, 12비트 입력 값을 15비트의 코드워드로 변환시기키 위한 부호화기를 구현하는 것은 4096 엔트리의 단일 테이블을 사용하여 달성될 수 있다. 그러나, 상기 크기의 테이블을 구현하는 것은 많은 개수의 부품을 요구하며, 이러한 부호화기의 거의 모든 적용에 있어서, 가능한 한 소수의 부품을 포함하는 것이 바람직하다.
출력 값을 제공하기 위하여 연속적으로 연결된 미리 결정된 값을 제공하는 두 개의 부호화기로의 입력 값을 분할하는 것은 EP-A-0097763에서 개시되었다. 실행 길이를 감소시키기 위해 불균등 제어는 불균등한 값에 의존하여 출력값의 보수를 선택한다.
EP-A-0503863은 사전적으로 부호화 및 복호화 코드에 관련되었으며, 트렐리스 코드가 NRZ형태로 효과적으로 사용되는 것을 허용하는 코딩 규칙의 세트를 개시한다.
발명의 요약
본 발명의 일면은 입력 값을 부호화된 값으로 부호화하는 방법을 제공하는 것이며, 상기 방법은; 청구항 1, 즉 입력 값에서 유도된 적어도 두 개의 값들을 적어도 두 개의 액세스 수단들에 개별적으로 적용함으로써 적어도 두 개의 미리 설정된 값들을 액세스하는 단계를 포함하는데, 미리 설정된 값의 개별적인 세트에서 각각의 액세스된 미리 설정된 값이 액세스되고 각 세트의 미리 결정된 값들은 트렐리스 코드의 일부를 나타내며, 상기 트렐리스 코드는 부호화된 값의 각 이진수 1을 사용하여 1씩 증가하고 부호화된 값의 각 이진수 0을 사용하여 1씩 감소하는 실행 디지털 합에 대해 허용된 상태에 의해 한정되며, 트렐리스 코드가 생성할 수 있는 가능한 부호화 값의 개수는 가능한 입력 값의 개수보다 많으며, 미리 결정된 값의 하나의 다른 개별적인 세트로부터의 적어도 하나의 미리 결정된 값과 자신의 연결이 코딩 제약 조건을 위반하는 부호화된 값을 생성하기 때문에 적어도 하나의 가능한 미리 설정된 값은 미리 결정된 값의 한 세트로부터 배제되며, 부호화된 값을 형성하기 위하여 상기 액세스된 미리 결정된 값들을 연결하는 단계를 포함하는 입력 값을 부호화된 값으로 부호화하기 위한 방법으로 상기 미리 결정된 값들이 액세스되는 상기 미리 결정된 값들의 세트를 전체 입력 값에 기초하여 선택하는 단계를 포함하는 방법이다.
본 발명의 다른 면은 입력 값을 부호화된 값으로 부호화하는 방법을 제공하며, 상기 방법은; 청구항 6, 즉 상기 입력 값을 제 1 임계 값과 비교하는 단계; 상기 비교에 기초하여 상태, 리메인더(remainder) 및 부호화된 값의 적어도 2개의 이진 디지트를 결정하는 단계; 및 부호화된 값의 적어도 두 개의 다른 이진 디지트를 형성하기 위해 상기 리메인더와 상기 상태를 사용하는 단계를 포함하는 방법이다.
본 발명은 적어도 두 개의 미리 결정된 값을 액세스함으로써 입력 값을 부호화하는 방법에 관한 것이다. 상기 두 개의 미리 결정된 값들은 적어도 두 개의 액세스 수단에 상기 입력 값에서 유도된 두 개의 값을 적용함으로써 각각 액세스된다. 상기 미리 결정된 값들 중 적어도 하나는 하나 이상의 부호화된 값의 이진 디지트를 포함한다. 상기 부호화된 값은 상기 액세스된 미리 결정된 값을 연결함으로써 형성된다.
본 발명의 일실시예에 있어서, 코드워드는 두 개로 분할되고, 각각의 코드워드 중 두 개의 결과 부분은 미리 설정된 값에 따라 그들이 저장되는 한 세트의 테이블 중 하나에 할당된다. 상기 테이블은 전체 코드워드를 생성하기 위해, 하나의 테이블 내의 미리 설정된 모든 값은 적어도 다른 하나의 테이블의 미리 설정된 모든 값을 사용하여 집중될 수 있는 방식이다. 따라서 15 비트의 코드워드에 대하여, 하나의 테이블이 코드워드의 최상위 비트를 타나내는 8 비트의 미리 설정된 값을 가진다면, 적어도 다른 하나의 테이블은 코드워드의 하위 비트를 나타내는 한 세트의 7비트 엔트리를 포함한다.
코드워드를 두 개로 분할함으로써, 입력 값을 부호화된 값으로 변환시키기 위해 요구되는 테이블 엔트리의 개수는 상당히 감소된다. 예를 들어, 제 1 테이블이 코드워드의 처음 X 비트를 표시하는 6개의 엔트리를 가지고 제 2 테이블은 코드
워드의 마지막 Y 비트 표시하는 4개의 엔트리를 가진다면, 제 1 테이블의 6개의 엔트리는 24개의 상이한 코드워드를 생성하기 위하여 24 개의 상이한 방식((6) *(4))으로 제 2 테이블의 4개의 엔트리를 사용하여 연결될 수 있다. 따라서 두 개의 테이블((6+4))을 통한 10개의 엔트리는 24개의 엔트리 테이블에서와 같은 수의 코드워드를 정의할 수 있다. 또는 코드워드를 생성하는 데 요구되는 엔트리 감소시키므로써, 본 발명은 값을 부호화하기 위하여 요구된 부품의 개수를 감소시킨다.
본 발명의 제 2 실시예에 있어서, 12/15 매칭된 스펙트럼 부호화기는 코드워드 중 2 비트 부분을 순환적으로 선택함으로써 구현된다. 초기 선택은 선택 이후에 변경되는 입력 값에 의존한다. 상기 변경된 값은 다음 선택에서 사용되며, 그 이후, 그것은 다시 변경된다. 상기 선택 및 변경은 10비트의 코드워드를 생성하는 5개의 선택 동안 순환적으로 반복된다. 이어 상기 변경된 입력 값은 코드워드의 5개의 최하위 비트를 포함하는 세 테이블 중 하나를 어드레싱하는 데 사용된다. 선택된 5 비트 값은 앞서 선택된 10 비트를 사용하여 연결되어 15 비트의 코드워드를 형성한다. 상기 방법의 순환 특성 및 세 테이블내의 한정된 엔트리의 개수는 15 비트 코드워드로 12 비트 입력 값을 변환시키는 데 요구되는 부품의 수를 감소시킨다.
본 발명의 상기 기술들은 도면을 참조한 아래와 같은 상세한 설명을 고려하여 쉽게 이해될 수 있다.
도 1은 일반적인 통신 시스템의 블록도.
도 2는 12/15 부호화기/복호화기에 관한 트렐리스형 다이어그램.
도 3은 본 발명의 제 1 실시예의 순서도.
도 4a 내지 도 4c는 도 3의 부호화 방법을 사용하기 위한 복호화 방법에 관한 순서도.
도 5는 본 발명의 제 2 실시예를 설명하기 위한 분할된 트렐리스형 다이어그램.
도 6a는 본 발명의 제 2 실시예의 제 1 순환 구획에 관한 순서도.
도 6b는 트렐리스 상태 "T" 및 "B"에 대한 본 발명의 제 2 실시예의 제 2 구획 순환에 관한 순서도.
도 6c는 트렐리스 상태 "M"에 대한 본 발명의 제 2 실시예의 제 2 구획 순환에 관한 순서도.
도 6d는 트렐리스 상태 "T" 및 "B"에 대한 본 발명의 제 2 실시예의 제 3 구획 순환에 관한 순서도.
도 6e는 트렐리스 상태 "M"에 대한 본 발명의 제 2 실시예의 제 3 구획 순환에 관한 순서도.
도 6f는 트렐리스 상태 "T" 및 "B"에 대한 본 발명의 제 2 실시예의 제 4 구획 순환에 관한 순서도.
도 6g는 트렐리스 상태 "M"에 대한 본 발명의 제 2 실시예의 제 4 구획 순환에 관한 순서도.
도 6h는 트렐리스 상태 "T" 및 "B"에 대한 본 발명의 제 2 실시예의 제 5 구획 순환에 관한 순서도.
도 6i는 트렐리스 상태 "M"에 대한 본 발명의 제 2 실시예의 제 5 구획 순환에 관한 순서도.
도 6j는 본 발명의 제 2 실시예의 룩업 테이블에 대한 순서도.
도 7은 본 발명의 제 2 실시예에서 사용되는 부호화기/복호화기의 블록도.
도 1은 부호화기(32), 채널(34), 검출기(36) 및 복호화기(38)를 포함하는 통신 시스템의 블록도이다. 부호화기(32)는 INPUT VALUES(40)를 수신하고, 부호화 맵을 사용하여 일련의 코드워드를 생성한다. 상기 일련의 코드워드는 CODEWORDS 신호(42)를 생성하기 위하여 연결되며, 상기 신호는 부호화기(32)로부터 출력된다. CODEWORDS 신호(42)는 바람직하게 스펙트럼 널 채널(34)을 매칭시키는 스펙트럼 전력 밀도를 가지며, 이것은 부분 응답 전달 함수를 갖는다.
CODEWORDS 신호(42)는 채널(34)을 통해 전달되며, 상기 채널에서 READ 신호(46)를 생성하기 위해 상기 신호는 NOISE(44)와 채널(34)의 부분 응답에 의해 변화될 수 있으며, 상기 READ 신호(46)는 채널(36)에서 검출기(36)로 출력된다. READ 신호(46)는 검출기(36)에 의해 샘플링되며, 상기 검출기(36)는 READ 신호(46)에 의해 표현된 가장 유사한 코드워드를 결정한다. 상기 검출기(36)는 바람직하게 기술 분양에서는 잘 공지되어 있는 검출기 타입의 비터비 검출기이다. 검출기(36)는 복호화기(38)에 입력되는 LIKELY CODEWORDS(48)를 생성한다. 복호화기(38)는 부호화기(32)에 의해 사용된 부호화 맵의 반전(inverse)인 복호화 맵을 포함한다. 복호화 맵을 사용하여 복호화기(38)는 LIKELY CODEWORES(48)를 INPUT VALUES(40)를 나타내는 OUTPUT VALUES(50)로 변환시킨다.
도 2는 도 1의 부호화기(32) 및 복호화기(38)와 같은 12/15 부호화기/복호화기에 대한 트렐리스형 다이어그램이다. 도 2의 트렐리스형 다이어그램은 0에서 6까지의 정수 값을 사용하는 실행 디지털 합을 나타내는 수직 축(52)과 코드워드 내에서 비트를 선택하는 것을 표현하는 각 시간 주기 사이의 간격을 갖는 16개의 이산 시간 주기를 나타내는 수평 축(54)을 갖는다. 상기 코드워드 비트들은 최상위 비트로부터 최하위 비트까지 차례로 선택되며, 시간(0)에서 시간(1)까지의 간격을 가지고 시작하며, 시간(14)에서 시간(15)까지의 간격을 가지고 종료된다. 코드 워드 비트로서 "1"의 선택은 실행 디지털 합에 1을 가산하는 것에 관련된 상향의 대각선으로 트렐리스형 다이어그램에서 표시된다. 코드워드의 "0"은 실행 디지털 합에서 1을 감산하는 것에 관련된 하향의 대각선으로 표시된다.
도 2의 트렐리스형 다이어그램은 실행 디지털 합에 관한 허용 가능한 값을 한정함으로써 구성될 수 있는 가능한 코드워드를 한정한다. 예를 들어, 6의 실행 디지털 합은 시간 주기 3에서는 허용되지 않으며, 이것은 시간 2에서 실행 디지털 합이 5가 될 때 "0"의 코드워드 비트 선택을 강요한다. 유사하게, 트렐리스형 다이어그램은 실행 디지털 합이 0 보다 작지 않고 또 6보다 크게 되는 것을 결코 허용하지 않는다. 이러한 한정은 (1-D)의 부분적 응답 채널의 스펙트럼 널을 매칭시키는 코드워드의 스펙트럼 전력 밀도에 제로를 도입한다.
시간 0에서 시간 15까지의 트렐리스를 통한 각각의 경로는 가능한 코드워드를 나타낸다. 도 2의 트렐리스형 다이어그램은 4,202개의 가능한 코드워드를 생산할 수 있다. 그러나, 본 발명은 코드워드의 6개의 연속적인 동일한 부호를 허용하지 않는 부가적인 제약 조건을 가지기 때문에, 이러한 코드워드들 모두가 사용되는 것은 아니다. 예를 들어, 6개의 연속적인 1의 부호 또는 6개의 연속적인 0의 부호를 포함하지 않는다. 도 2의 트렐리스형 다이어그램에 의해 생성될 수 있는 25개의 가능한 코드워드는 이러한 부가적인 제약 조건을 위반한다. 이것은 4,177개의 유효 코드워드를 남긴다. 4,096개의 가능한 20 비트의 입력 값이 존재하기에, 도 2의 트렐리스형 다이어그램은 가능한 20비트의 값을 모두 부호화하기에 충분한 코드워드보다 많은 코드워드를 제공한다.
도 2의 트렐리스형 다이어그램은, 시간 주기 0에서 시간 주기 8 까지의 한 부분과 시간 주기 8에서 시간 주기 15 까지의 한 부분의 2개의 부분으로 분석될 수 있다. 이러한 분할은 6개의 상이한 경로의 그룹을 형성하며, 이러한 것 중 3개는 시간 0에서 3의 실행 디지털 합을 가지는 상태(56)에서 시작한다. 이러한 경로는, 시간 8에 위치하고 각각 1, 3 및 5의 실행 디지털 합을 가지는 상태(58, 60 및 62)에서 종료한다. 이러한 나머지 경로의 그룹은 상태(64)에서 종료하며, 상기 상태는 시간 15에서 2의 실행 디지털 합을 가진다. 이러한 경로의 그룹은 각각 상태(58,60 및 62)에서 시작한다. 본 발명의 일 실시예에 있어서, 이러한 경로의 그룹들은 코드워드를 형성하기 위한 테이블 엔트리를 한정하는 데 사용된다.
상태(56)에서 상태(62)까지 경로의 그룹들은 43개의 분리된 경로를 포함하며, 상태(62)에서 상태(64)까지 경로의 그룹들은 18개의 분리된 경로를 포함한다. 상태(62)를 통과하는 경로의 그룹 총수는, 완전한 코드워드를 나타내는 총 774개의 경로를 생성하는 43 곱하기 18과 동일하다. 그러나 이러한 774개의 코드워드 중 16개는 6개의 연속된 동일한 부호에 반하는 제한을 위반한다.
유효하지 않은 코드워드를 제거하기 위하여, 본 발명의 제 1 실시예는 초기에 상태(56)에서 상태(62)로의 한 경로와 상태(62)에서 상태(64)로의 한 경로를 제거하여 각각 42개의 경로와 17개의 경로를 남긴다. 제거되는 상태(56)에서 상태(62)로의 상기 경로는 8비트 패턴"00011111"을 나타내며, 이것은 코드워드의 처음 8비트가 된다. 코드워드에 대한 시작 시퀀스로서 이러한 8비트를 초기에 제거함으로써, 본 발명은 4개의 유효하지 않은 코드워드와 코드워드 리스트에서 14개의 유효한 코드워드를 제거한다. 제거되는 상태(62)에서 상태(64)로의 상기 경로는 7비트 값 "0000011"을 나타내며, 이것은 어떤 코드워드의 최하위 7비트를 나타낸다. 이러한 경로를 제거함으로써, 본 발명은 30개의 유효한 코드워드와 6개의 연속된 동일한 부호 제한을 위반할 수 있는 12개의 코드워드를 제거한다.
아래에 설명되는 바와 같이, 본 발명은 상태(62)에서 상태(64)로 정확하게 16개의 경로가 존재하도록 상태(62)에서 상태(64)로의 부가적인 경로를 제거한다. 테이블의 16개 엔트리가 4비트 디지털 값에 의해 고르게 어드레싱될 수 있기 때문에 이러한 부가적인 상태가 제거되며, 입력 값으로부터 직접 어드레싱을 구현하는 것을 보다 용이하게 한다. 상태(56)에서 상태(62)로의 42개 경로와 상태(62)에서 상태(64)로의 16개 경로의 조합은 상태(62)를 통과하는 총 672개 경로를 제공한다. 본 발명의 제 1 실시예에 있어서, 십진수 "0"에서 "671" 까지의 입력 값은 각각 이러한 672개 경로에 의해 표시되는 코드워드들 중 하나에 할당된다.
상태(58)에는 이를 통과하는 경로가 총 1,316개가 존재한다. 이 경로들은 상태(56)에서 상태(58)까지의 47개의 경로 및 상태(58)에서 상태(64)까지의 28개의 경로로 구성된다. 상태(62)를 통과하는 코드워드와 대조적으로, 상태(58)를 통과하는 모든 1,316개의 경로들은 유효 코드워드를 나타낸다. 본 발명의 제1 실시예에 따르면, 십진 입력 값 672에서 1987까지는 상태(58)를 통과하는 경로들로 표현되는 1,316개의 코드워드들에 할당된다.
상태(60)를 통과하는 경로는 총 2,112개가 존재하는데, 이 경로들은 상태(56)에서 상태(60)까지의 64개의 경로 중의 하나 및 상태(60)에서 상태(64)까지의 33개의 경로 중의 하나의 조합으로 구성된다. 그러나, 2,103개는 유효 코드워드를 나타내지만, 이들 경로들 중의 9개는 연속하는 6개의 동일한 부호에 관한 제약 조건을 위반하고 있다.
본 발명의 제1의 실시예에 따르면, 상기의 9개의 값들을 제외한 십진 1998에서 4095 사이의 모든 입력 값들은 상태(60)를 통과하는 2,112개의 경로들 중 하나로 각각 할당된다. 이것은 13개의 비할당된 경로 및 9개의 비할당된 입력 값들을 제외하고 총 2,099개의 할당을 나타내고 있다. 9개의 비할당 경로들은 유효 코드워드들을 나타내는 4개의 비할당 코드워드들을 제외하고 무효인 코드워드들을 나타낸다. 9개의 비할당 입력 값들에 대한 할당을 행하기 위하여, 본 발명에서는, 이하에서 더 상세히 설명되듯이, 상태(56)에서 상태(62)까지의 이미 제거된 경로(즉, "00011111")를 포함하는 코드워드들을 선별하게 되며, 상태(60)를 통과하는 비할당 유효 코드워드들 중의 3개를 사용한다.
도 3은 본 발명의 제1의 실시예에 관한 순서도이다. 이 순서도에서, 입력 값 "X"은 몇 개의 임계값과 비교되는데, 이는 다수의 테이블 중에서 어느 것이 액세스되어 연결을 위한 코드워드 부분을 검색하거나 또는 전체의 코드워드들을 액세스하기 위한 것인가를 결정하기 위함이다.
결정 박스(100)에서는, 입력 값과 십진값 672와 비교된다. 만약 입력 값이 672보다 작으면, 테이블 "START_TOP" 및 "TOP_END"는 각각 "START" 및 "END"로 표시된 코드워드들의 두 부분을 검색하도록 어드레싱된다. 테이블 "START_TOP" 및 "TOP_END"에 포함된 내용들은 도 2의 트렐리스형 다이어그램의 상태(62)를 통과하는 코드워드 부분을 나타낸다.
부록 A에는 테이블 "START_TOP" 및 "TOP_END"이 도시되어 있다. 테이블 "START_TOP"에서, 상태(56)에서 상태(62)까지의 경로에 의하여 표현되는 코드워드 부분들은 "START"의 표제 밑에 나열되어 있다. 각 코드워드 부분 다음에 오는 것은 테이블에서 코드워드 부분을 검색하기 위하여 사용될 수 있는 어드레스이다. 예를 들어, 000111의 이진값을 가지는 "START_TOP" 어드레싱은 "01011011"의 시작값을 검색한다. 이와 유사하게, 도 2에서 트렐리스형 다이어그램의 상태(62)에서 상태(64)까지의 경로로써 표현되는 16개의 코드워드 부분을 나타내고 있다. 이 부분들은 "END"의 헤딩 밑에 나타나 있으며 테이블에서 코드워드 부분을 검색하기 위하여 사용될 수 있는 어드레스 옆에 있게된다.
십진 672보다 작은 값에 대하여, 전체 값은 12비트의 입력 워드 중에서 최하위 10비트에 의하여 정의될 것이며, 각각 최하위로부터 최상위 비트까지 0에서 9의 비트들로 표시된다. 도 2에서의 상태(62)에서 상태(64)까지의 유효한 경로의 수를 감소시켜 사용하는 이점은 "TOP_END" 어드레싱 테이블에서 나타난다. 경로의 감축은 이 테이블에서 엔트리의 수를 16으로 제한하며, 이 수는 4비트 값에 의하여 적절히 어드레싱될 수 있다. 이것은 단순히 입력 값을 두 개의 분리된 이진값들로 분할함에 의하여 "TOP_END" 및 "START_TOP" 양 테이블을 어드레싱할 수 있도록 해준다. 특히, 입력 값의 비트들(0 내지 3)은 "TOP_END"를 어드레싱하기 위하여 사용되며, 입력 값의 비트들(4 내지 9)의 은 "START_TOP"을 어드레싱하기 위하여 사용된다.
입력 값들의 선택된 비트들이 상태(56)로부터 상태(62)까지를 나타내는 코드워드의 8비트 부분 및 상태(62)에서 상태(64)까지의 경로를 나타내는 7비트 코드워드 부분을 검색하는데 사용된 후, 본 발명의 부호화기는 8비트 값과 7비트 값을 연결하여 15비트의 코드워드를 만들어낸다.
672에서 1987까지(자신들의 값을 포함)의 입력 값의 범위는 도 2에서 트렐리스형 다이어그램의 상태(58)를 통과하는 경로에 의하여 표현되는 코드워드들에게 할당된다. 이 경로들은 상태(56)로부터 상태(58)까지의 상태(47) 및 상태(58)로부터 상태(64)까지의 28 경로로 구성된다. 상태(58)를 복호화함으로써 경로들을 표현하는 28개의 엔트리를 가지는 하나의 테이블을 생성하지 아니하고, 본 발명은 상태(58)로부터의 경로들을 각각 16, 8, 및 4개의 엔트리를 가지는 세 개의 테이블로 분할한다. 이 테이블들은 각각 "BOTTOM_END_16", "BOTTOM_END_8", 및 "BOTTOM_END_4"로 불리며, 표제 END하에 배열되고 테이블로부터 값을 검색하기 위하여 사용되는 어드레스를 가지고 배열되는 각 경로에 의하여 표현되는 코드워드 부분을 가지는 부록 A에 도시되어 있다. 상태(58)로부터 상태(64)까지의 28개 경로들을 각각 16, 8, 및 4개의 엔트리를 가지는 세 개의 테이블로 분할되는데, 이는 그 수가 각각 4비트, 3비트, 및 2비트의 디지털 값에 의하여 적절히 어드레싱될 수 있기 때문이다. 이하에서 보이는 바와 같이, 이것은 두 개의 테이블을 어드레싱하기 위한 단순한 방법을 제시한다.
상태(56)로부터 상태(58)까지의 47개의 경로들은 부록 A에 도시된 "START_BOTTOM"이라고 불리는 단일 테이블에 포함된다. "START_BOTTOM"의 코드워드 부분들은 START라는 표제의 아래에 있으며 각각은 코드워드 부분을 검색하기 위하여 사용되는 어드레스를 가지고 배열된다.
만일 입력 값이 672에서 1423 사이(자신들의 값을 포함)이면, 결정 박스(102)에서는 672가 입력 값에서 감산되어 수정된 값을 생성하는데, 이는 "START_BOTTOM" 및 "BOTTOM_END_16" 테이블들을 어드레싱하는데 사용하기가 쉬워진다. "TOP_END" 테이블에서와 같이, "BOTTOM_END_16"의 값의 수는 특별히 4비트 디지털 값에 의하여 적절히 어드레싱될 수 있도록 선택된다. 이것은 수정된 값의 최하위 4비트, 즉 비트들(0 내지 3)을 사용하여 "BOTTOM_END_16"을 어드레싱할 수 있도록 해준다. 수정된 값의 비트들(4 내지 9까지)은 "START_BOTTOM"으로부터 코드워드의 START 부분을 검색하기 위하여 사용될 수 있다. 상기 5개의 비트는 "START_BOTTOM"의 47개의 엔트리 각각을 어드레싱하기에 충분하다. 각 테이블에서 한 값을 검색한 후, 두 값들은 8개의 최상위 비트를 가지는 "START_BOTTOM"으로부터의 값인 START, 및 7개의 최하위 비트를 가지는 "BOTTOM_END_16"으로부터의 값 END를 가지는 15비트 코드워드를 형성하도록 연결된다.
입력 값이 1423보다 클 경우, 결정 박스(104)에서 십진값 1800과 비교된다. 1800보다 작으면, 입력 값은 1424를 감산함으로써 수정되어 0에서 376 범위 안에 드는 수정된 값을 생성한다. 테이블 "BOTTOM_END_8"은 정확하게 8개의 엔트리를 가지므로, 수정된 입력 값 중의 3개의 최하위 비트에 의하여 적절히 어드레싱될 수 있고, 이는 7비트의 END 값을 검색하기 위하여 도 3에서의 비트(비트 0)에서 비트(비트2)로 표시된다. 도 3에서 비트들(비트 3에서 8)로 표시된 수정된 값의 5개의 최상위 비트는 8비트의 START 값을 검색하기 위하여 사용될 수 있다. START 및 END 값들은 두 개의 테이블로부터 검색된 후에, 그 값들은 15비트 코드워드의 최상위 비트들을 점유하는 8비트의 START 값과 연결된다.
만약 입력 값이 1799보다 크면, 도3의 결정 박스(106)에서 십진값 1988과 비교된다. 결정 박스(106)에서 입력 값이 1988보다 작으면, 1800이 감산되도록 수정되어 0에서 187 범위 안에 드는 값을 생성하고, 이는 "START_BOTTOM" 및 "BOTTOM_END_4"를 어드레싱하기 위하여 사용될 수 있다. 전술과 같이, 테이블 "BOTTOM_END_4"은 정확하게 4개의 엔트리를 가지므로, 2비트 값에 의하여 적절히 어드레싱될 수 있다. 따라서, 비트 0 및 1의 수정된 입력 값 중의 두 개의 최하위 비트는 "BOTTOM_END_4"에서의 7비트 코드워드 부분 END 값을 검색하기 위하여 사용된다. 수정된 입력 값의 2에서 7비트들은 8비트 코드워드 부분인 START를 검색하기 위하여 "START_BOTTOM" 테이블을 어드레싱하기 위하여 사용된다. 15비트 코드워드를 생성하기 위하여 8비트 START 값은 7비트 END 값과 연결된다.
만약 결정 박스(106)에서 입력 값이 1987보다 크면, 결정 박스(108)에서 십진값 2048과 비교된다. 입력 값이 2048보다 작으면, 입력 값은 1988이 감산되도록 수정되어 부록 A에 도시된 15비트 코드워드를 포함하는 "FULL_CENTER" 테이블을 어드레싱하기 위하여 수정된 값을 생성한다. 수정된 입력 값은 0에서 59까지의 가능한 범위를 가지며 가능한 입력 값 각각은 수정된 값의 최하위 비트 6개를 사용하여 어드레싱되는 "FULL_CENTER" 테이블에서 그 자신의 엔트리를 가진다.
"FULL_CENTER" 테이블에 나열된 코드워드들 각각은 도2에서의 상태(60)로부터 상태(64)까지의 경로와 연관된 7비트 코드워드 부분("1101000")으로 끝을 맺는다. 따라서, "FULL_CENTER"의 모든 코드워드들은 비할당된 상태(60)로부터 상태(64)까지의 나머지 32개의 경로를 제외하고 도 2에서의 상태(60)에서 상태(64)까지의 한 경로를 사용한다.
입력 값이 결정 박스(108)에서 2047보다 크면, 상기 값은 테이블 "START_CNTR" 및 "CNTR_END"로부터 유효하지 않은 코드워드들을 검색하는 9개의 입력 값들에 대하여 비교된다. 이 유효하지 않은 코드워드들이 발생하는 것은 그들 스스로 유효한 2개의 코드워드들의 분리된 부분들의 연결 때문이다. 이들 유효하지 않은 코드워드들을 생성하는 9개의 입력들은 다음과 같은 이진 및 십진값을 가진다.
100000000000 2048;
100000000001 2049;
100000000010 2050;
100000100000 2080;
100000100001 2081;
100000100010 2082;
100001000000 3112;
100001000001 3113;
100001000010 3114;
이들 9개의 수들은 테이블 "STAR_CNTR" 및 "CNTR_END"를 사용하여 이하에서 설명되는 방법으로 사용되었다면 유효하지 않은 코드워드들을 검색할 것이기 때문에, 분리된 테이블이 유효인 코드워드의 대체를 위하여 주어진다. 대체 코드워드들 중의 3개는 "FULL_CENTER" 테이블의 각 코드워드의 끝에 있는 동일한 코드 부분으로 끝을 맺는 상태(60)를 통과하는 상태들에 의하여 표현된다. "FULL_CENTER" 테이블은 이 코드 부분으로 끝나는 64개의 가능한 코드워드들 중에서 오직 60개만을 사용하므로, 이 부분으로 끝나는 4개의 코드워드들은 "FULL_CENTER"에 의하여 비할당의 상태로 남아있게 된다.
나머지 6개의 대체 코드워드들은 상태(62)를 통과하는 경로에 의하여 표현되며, 이것은 0과 671 사이의 입력 값에 할당되지 아니한다. 이 코드워드들 각각은 "START_TOP"에 제외된 상태(56)로부터 상태(62)로의 경로에 의하여 표현되는 "00011111" 시작 코드 부분을 포함한다. 이 제외된 경로를 사용하여 재요구된 6개의 대체 코드워드들의 구성은 이 코드 부분을 유효하지 않은 코드워드들을 생성하지 않도록 주의하여 선택된 코드워드 부분들과 연결함으로써 이루어진다.
9개의 대체 코드워드들은 부록 A의 "REPLACE" 테이블에 나열되어 있고 또한 4비트의 값에 의하여 완전히 어드레싱된다. 4비트 값들은 최하위 비트 쪽으로 향하는 순서로 6, 5, 1, 및 0 입력 값들로 구성된다. 이러한 4개의 입력 값들은 "START_CNTR" 및 "CNTR_END" 테이블에 대하여 이하에서 설명되는 방법으로 사용되었다면 유효하지 않은 코드워드들을 생성할 9개의 입력 값 각각을 구별할 것이다. 일단 입력 값이 유효하지 않은 코드워드를 생성할 값들 중의 하나라는 것이 결정되면, 6, 5, 1, 및 0 비트들은 테이블 "REPLACE"로부터 코드워드들을 검색하기 위하여 사용된다.
만약 입력 값이 결정박스(110)에서 유효하지 않은 코드워드들을 생성하지 아니하는 값이라고 결정되면, 입력 값이 부록 A의 "START_CNTR" 및 "CNTR_END" 테이블로부터의 코드부분들을 검색하기 위하여 사용된다. 테이블 "START_CNTR"는 상태(56)로부터 상태(60)까지의 64개의 경로들에 의하여 표현되는 코드 부분들을 포함한다. 테이블 "CNTR_END"는 상태(60)로부터 상태(64)까지의 63개의 경로들 중의 32개를 포함한다. 32 및 64는 모두 2의 제곱에 해당하는 수이므로 각각은 디지털 값에 의하여 적절히 어드레싱될 수 있다. 특히, 테이블"CNTR_END"의 32개의 코드워드 각각은 5-비트 디지털 값으로 고유하게 어드레싱될 수 있고, 테이블 "START_CNTR"의 64개 코드워드 부분의 각각은 6-비트 디지털 값으로 어드레싱될 수 있다. 이것은 입력 값의 상이한 비트를 사용하여 코드워드를 검색하기 위한 단순한 구현을 제공한다. 특히, 입력 값의 5개의 최하위 유효 비트는 상태(60)로부터 상태(62)까지의 경로에 의해 표현된 END부분을 검색하기 위해 테이블 "CNTR_END"을 어드레싱하는 데에 사용될 수 있고, 상기 제 1의 5개 최하위 유효 비트 보다 상위의 6개 유효 비트는 상태(56)로부터 상태(60)까지의 경로에 의해 표현된 START부분을 검색하기 위해 테이블 "START_CNTR"을 어드레싱하는 데에 사용될 수 있다. 입력 값의 최상위 비트는 어드레싱 동안 필요치 않은데 이는 테이블 "START_CNTR" 및 "CNTR_END"을 어드레싱하는 모든 디지털 값이 자신들의 최상위 유효 비트에 대해 모두 "1"을 갖는 것을 의미하는, 2048 보다 크거나 같은 모든 값들이 설정되어 있기 때문이다. 테이블로부터 코드 부분(START및 END)이 검색된 후, 이 코드 부분은 15-비트 코드워드의 8개의 최상위 유효 비트를 점유하는 START부분과 연결된다.
상기 값들이 테이블에 저장되는 것으로 설명되었을 지라도, 상술한 부호화는 테이블을 사용하지 않고 직접 실행될 수 있다. 직접 실행에 있어서, 어드레싱 값은 검색됨에 따라 상술한 출력값을 제공하기 위해 하드-와이어링(hard-wired)된 로직에 직접 이용된다. 로직 회로의 부품은 반드시 부호화 이전에 적절히 설정되어야 하기 때문에, 출력값은 주어진 입력 값에 대해 자동으로 출력되기 때문에 미리 설정된 값으로 고려될 수 있다.
도 4a-4c는 도 3에 설명된 본 발명의 제 1 실시예와 함께 사용하기 위한 복호화 방법의 순서도이다. 이 복호화 방법은 부록 A에 도시된 6개 상이한 테이블로부터 여러 변수 값을 검색함으로써 시작된다. 이들 테이블은 행 및 열의 엘리먼트로 되어있을 지라도, 이 테이블은 통합된 간단한 로직 회로를 이용하여 직접 구현될 수 있다. 3개 테이블, DEC_TOP_START, DEC_MID_START및 DEC_BOT_START는 코드워드의 8개의 최상위 유효 비트에 의해 어드레싱된다. 테이블 DEC_TOP_END, DEC_MID_END및 DEC_BOT_END는 코드워드의 7개의 최하위 유효 비트에 의해 어드레싱된다. 상술한 각각의 테이블로부터 검색된 값은 복호화기에 의해 사용되는 것으로서 아래에서 설명된다.
값이 테이블로부터 검색된 후, 복호화기는 코드워드의 8-비트의 최상위 유효 부분 및 7-비트의 최하위 유효 부분이 각각 DEC_TOP_STAR와 DEC_TOP_END에서 발견되는 지의 여부를 판정한다. 코드워드 부분이 이들 테이블에서 발견되면, 변수 IN_TOP_START와 IN_TOP_END는 각각 결정블록(112)에서 값 1을 갖는다. IN_TOP_START와 IN_TOP_END의 값들이 1 이면, 복호화기는 코드워드가 유효하지 않은 코드워드에 대한 대체 코드워드인지의 여부를 판정한다. 이것은 테이블 DEC_TOP_START로부터 변수 TOP_REPLACE를 검사하는 결정블록(114)에서 판정된다. TOP_REPLACE는 코드워드의 부호화 동안 유효하지 않은 코드워드를 대체하였으면 값 1을 가지고, 코드워드가 대체 코드워드가 아니면 0 이다.
코드워드가 대체 코드워드가 아니면, 출력값은 INDEX_END_TOP의 4개의 최하위 유효 비트와 INDEX_START_TOP의 6개의 최하위 유효 비트 및 추가의 값 "00"을 연결함으로써 구성된다. INDEX_START_TOP과 INDEX_END_TOP은 각각 테이블 DEC_TOP_START와 DEC_TOP_END로부터 얻을 수 있고, 이것들은 도 3에 설명된 부호화 동안 사용된 입력 값 대 코드워드 맵핑에 대해 반전인 맵핑을 나타낸다. 상기 연결은 값 "00"을 출력값의 최상위 위치에 위치시키고 최하위 위치에 INDEX_END_TOP으로부터 값을 위치시킨다.
코드워드가 결정 블록(114)에서 대체 코드워드인 것으로 판정된다면, 6TH_BIT_REPL의 값이 대체 코드워드와 연관된 입력 값의 타입을 판정하기 위해 검사된다. 6TH_BIT_REPL는 테이블 DEC_TOP_END로부터 검색되고, INDEX_END_TOP의 두 비트가 출력값의 최하위 유효 비트 위치에서 발생하도록, 출력값이 INDEX_END_TOP의 2개의 최하위 유효 비트를 이진값 "1000001000"의 최하위 유효 비트에 연결함으로써 형성된다면 값 0을 갖는다. 6TH_BIT_REPL의 값이 1 이면, 출력값(OV)은 출력값의 최상위 유효 위치를 점유하는 이진 값을 사용한, INDEX_END_TOP의 두개의 최하위 유효 비트와 10-비트 이진 값 "1000010000"의 연결이다.
결정 박스(112)에서 코드워드 부분이 테이블 DEC_TOP_START과 DEC_TOP_END에 없다면, 복호화기는 도 4b의 결정블록(116)에서, 코드워드의 8개의 최상위 유효 비트와 7개의 최하위 유효 비트가 각각 테이블DEC_MID_START과 DEC_MID_END에 있는 지의 여부를 결정한다. 코드워드가 이들 테이블에 있는 지의 여부를 결정하기 위해, 복호화기는 코드워드 부분이 테이블 DEC_MID_START과 DEC_MID_END에서 발견되는 지의 여부를 결정하는, IN_MID_START과 IN_MID_END의 값을 지시한다.
코드워드 부분이 테이블 DEC_MID_START과 DEC_MID_END에서 발견되면, 복호화기는 테이블 DEC_MID_END로부터 취해진 변수 NOT_MID_2ND의 값을 검사함으로써 코드워드의 특정 그룹의 멤버인지의 여부를 판정한다. NOT_MID_2ND 의 0은 도 3의 부호화 방법을 포함하여, 코드워드가 2048과 4095 사이의 입력 값으로 구성된 코드워드 그룹의 일부인 것을 나타낸다. 이러한 그룹의 코드워드에 대해, 출력값(OV)은 DEC_MID_START로부터 검색된 INDEX_START_MID의 최하위 유효 6-비트와 함께, DEC_MID_END로부터 검색된 INDEX_END_MID의 최하위 유효 5비트를 연결함으로써 구성된다. 이 연결된 값은 이진 값 "1"과 추가로 연결되고, 따라서 이진 값 "1"은 출력값의 최상위 비트이고 INDEX_END_MID의 값은 출력값의 최하위 유효 비트를 점유한다. 값 INDEX_END_MID 및 INDEX_START_MID는 도 3의 부호화기의 코드워드를 구성하기 위해 사용된 부호화 맵에 대해 반전인 맵핑을 표현한다.
코드워드가 상기한 특정 그룹의 멤버가 아니면, NOT_MID_2ND는 값 1을 갖지 않으며 복호화기는 결정 박스(120)로 진행하고, 여기서 코드워드가 대체 코드워드인지의 여부를 판정한다. 코드워드가 대체 코드워드가 아니면, 테이블 DEC_MID_START로부터 검색된 MID_REPLACE의 값은 0 이다. 대체 코드워드가 아닌 코드워드에 대해, 출력값(OV)은 DEC_MID_START로부터 검색된 INDEX_START_MID의 이진 값에 가산된 십진 값 "1988"과 등가인 이진 값과 동일하다. 코드워드가, MID_REPLAE내에 1로 나타내어진 대체 코드워드이면 출력값(OV)은 이진 값 "1000000000"과 연결된 INDEX_START_MID의 두개의 최하위 유효 비트와 같고; 10-비트 이진 값은 출력값의 최상위 유효 비트를 점유한다.
결정박스(116)에서 코드워드 부분이 DEC_MID_START와 DEC_MID_END에서 발견되지 않으면, 복호화기는 도 4c의 결정 박스(122)에서, 코드워드의 8개의 최상위 유효 비트와 7개의 최하위 유효 비트가 테이블 DEC_BOT_START와 DEC_BOT_END에 있게 되는 지를 판정한다. 8개의 최상위 유효 비트가 테이블 DEC_BOT_START에서 발견되면, IN_BOT_START의 값은 1이고 코드워드의 7개의 최하위 유효 비트가 DEC_BOT_END에서 발견되면 IN_BOT_END의 값은 1 이다. 코드워드 부분이 이들 각각의 테이블에서 발견되지 않으면, 입력 코드워드는 유효하지 않은 것으로 판정되는 데, 이는 그 코드워드가 유효 코드워드 조합을 포함하는 임의의 테이블에서 발견되지 않기 때문이다.
각각의 코드워드 부분이 테이블 DEC_BOT_START와 DEC_BOT_END에서 발견되면, 복호화기는 코드워드가 속하는 3개의 코드워드 세트를 설정한다. 코드워드가 제 1 코드워드 세트에 속하면, 테이블 DEC_BOT_END로 부터의 변수 BOTOM_1ST는 1 이다. 제 1 코드워드 세트로부터의 코드워드에 대해, 출력값(OV)은 도 3의 부호화 맵핑에 대해 반전인 맵핑이고 각각 테이블 DEC_BOT_START와 DEC_BOT_END로부터 취해진, INDEX_END_BOT의 4개의 최하위 유효 비트와 INDEX_START_BOT의 6개의 최하위 유효 비트의 연결에 가산된 672에 대한 이진값과 같다.
코드워드가 제 1 코드워드 세트의 일부가 아니면, 복호화기는 코드워드가 테이블 DEC_BOT_END로부터 검색된 BOTTOM_2ND의 값을 검색함으로써 제 2 코드워드 세트의 일부인 지의 여부를 판정한다. 코드워드가 제 2 코드워드 세트의 일부이면, BOTTOM_2ND의 값은 1 이 되며, 출력값(OV)은 INDEX_START_BOT의 최하위 유효 비트와 INDEX_END_BOT의 최하위 유효 비트의 연결에 가산된 1424의 이진 값과 동일하다.
복호화기는 코드워드가 제 2 코드워드 세트의 일부가 아니면, 출력값(OV)은 INDEX_START_BOT의 6개의 최하위 유효 비트와 INDEX_END_BOT의 2개의 최하위 유효 비트의 연결에 추가된 1800의 이진 값과 같다.
도 4a 내지 도 4c를 참조하여 설명된 복호화 방법을 통해, 본 발명은 도 3에 설명된 방법으로 생성된 코드워드를 복호화할 수 있다.
도 5는 도 2의 트레리스형 도면에 대한 수정본이고, 본 발명의 제 2 실시예를 이해하는 데 유용하다. 도 5는 6개의 구획인 , 제1 구획(150), 제 2 구획(152), 제 3 구획(154), 제 4 구획(156), 제 5구획(158) 및 제 6구획(160)으로 분할된 트렐리스형 다이어그램을 도시한다. 상기 구획들은 구획 라인의 각 측에 트렐리스 부호화기 상태를 표현하는 박스와 함께 점선으로 분리된다. 특정 실행 디지털 합에서 구획 라인의 일측에 대한 박스는 동일 상태를 표현하고 본 발명의 설명을 용이하게 하기 위해 단순히 분리된다.
구획의 시작에서 상태들은 상태들의 실행 디지털 합에 의존하여 RDS 상태인 "B", "M" 또는 "T" 로 지정된다. 예를 들어, 부호화기가 제 3 구획(154)의 시작에서 실행 디지털 합으로 5를 가질 때, RDS 상태는 "T"라고 한다. 각각의 구획의 시작에서 부호화기의 RDS 상태는 부호화기의 상태에 대응하는 박스에 리스팅되어 있다. "T", "M", 및 "B" 인 RDS 상태는 각각 실행 디지털 합 5, 3, 및 1 에 대응한다.
각각의 구획의 최종 상태를 나타내는 박스는 트렐리스형 다이어그램의 끝에서 최종 상태로부터 상태(172)까지의 경로의 개수를 의미하는 수를 포함한다. 예를 들어, 시간 주기 2에서 상태(162)는, 유효 코드워드를 표현하는 상태(162)로부터 상태(172)까지의 614개의 경로가 있으므로, 숫자 614를 포함한다. 각각의 구획의 각각의 최종 상태에 리스팅된 경로의 수는 유효 코드워드를 생성하는 경로의 수이다. 6개의 연속한 동일한 부호 제약 조건을 위반하는 코드워드는 특히 배제된다. 도 5의 상태 박스에 리스팅된 경로의 수는 유효하지 않은 코드워드를 포함하지 않으므로, 도 5에 나타난 것보다 실질적으로 더 많은 몇몇 상태 박스로부터의 경로가 있다. 예를 들어, 상태(164)로부터 실질적으로 18개의 경로가 있지만, 단지 17개의 경로만이 6개의 연속한 동일한 부호 제약 조건을 위반하지 않는 유효 코드워드를 생성한다. 따라서, 상태(164) 박스는 상태(164)로부터 상태(172)로 단지 17개의 경로만이 있음을 지시한다.
도 5의 트렐리스형 다이어그램의 처음 5개의 구획들은 각각 코드워드의 2 비트를 각각 표현한다. 제 6 구획은 코드워드의 5 비트를 표현한다. 본 발명의 제 2 실시예에서, 코드워드는 2 비트 세그먼트를 순환적으로 선택하고 처음 10-비트 세그먼트를 형성하기 위해 2 비트 세그먼트를 서로 연결함으로써 구성된다. 이 10-비트 세그먼트는 부호화기가 제 6 구획(160)의 시작에 도달하는 시간에 부호화기의 RDS 상태에 의거하여 선택된 5-비트 세그먼트와 연결된다. 각각의 순환 구획 선택은 입력 값 또는 수정 값과 하나 이상의 임계값들 사이의 비교에 의거한 2-비트 값이다.
일부 구획에서, 상기 선택은 6개의 연속적인 동일 부호 제약 조건을 위반하는 코드워드를 제거하도록 형성된다. 대부분의 예에서, 이것은 무엇이 유효하지 않은 시퀀스의 시작이 될 수 있는지를 나타내는 트렐리스형 다이어그램 부분에 대한 액세스를 억제함으로써, 그리고 유효하지 않은 코드워드를 방지하는 코드 비트 시퀀스에 우선권을 줌으로써 달성된다. 예를 들면, 제 3 구획(154)은 RDS 상태로부터 "01"로 시작하는 69개의 가능한 경로가 있더라도 단지 RDS 상태 "T"로부터의 "01"을 나타내는 경로에 64개의 입력 값을 할당한다. 단지 64개의 할당이 형성되고, 정확히 RDS 상태로부터 64개의 유효 시퀀스가 있기 때문에, 유효하지 않은 시퀀스는 6개의 연속적인 동일한 부호 제약 조건을 위반하지 않는 경로에 우선권을 줌으로써 방지될 수 있다. 이런 우선권은 상기 경로가 상기 제약 조건을 위반하기 이전에 6개의 연속적인 동일한 부호 제약 조건을 위반하지 않는 경로가 할당되도록 할당을 위한 경로를 순서 지정함으로써 방지될 수 있다. 이것은 경로의 시작에 대한 억제된 액세스가 마찬가지로 유효하지 않은 코드워드에 할당되는 방향 지정된 입력 값을 가지기 때문에 할당되지 않은 체 남아있도록 한다.
각각의 구획에서의 순서 지정된 리스트를 형성함으로써 특정 코드워드에 우선권을 주는 2 실시예의 방법은 제 4 구획(156)에서 유효하지 않은 코드워드를 형성할 수 있는 2개의 경로가 상태(164)에서 교차한다는 사실에 의해 복잡해진다. 상기 2개의 경로가 교차하기 때문에, 교차시에는 2개의 서로 다른 우선권이 있다. 특히, 코드워드의 0을 나타내는 하향 대각선 화살표의 상태(164)에 진입하는 경로는 그것의 입력 값을 코드워드의 1을 나타내는 상향 대각선 화살표의 상태(164)에 존재하는 경로에 할당하는 것이 바람직할 것이다. 다른 한편, 코드워드의 1을 나타내는 상향 대각선 화살표의 상태(164)에 진입하는 경로는 보통 우선권이 코드워드의 0의 도입을 나타내는 하향 대각선 화살표의 상태(164)를 떠나는 경로에 주어진다면 최적으로 동작할 것이다. 이런 충돌을 극복하기 위하여, 본 발명은 가능한 입력의 어느 것도 5개의 연속적 1을 가진 후 상태(164)에 도달하지 못하도록 한다. 이것은 0을 구획(154와 156)의 코드워드에 도입하는 경로에 우선권을 준 이후에 모든 가능한 입력 값이 상태(168)로부터 상태(164)에 도달하기 이전에 할당될 것이라는 것을 보장하도록 상태(168)를 통해 구성될 수 있는 코드워드의 수를 제한함으로써 달성된다.
도 6a 내지 도 6j는 본 발명의 제 2 실시예에 따른 방법의 연속적 순서도이다. 상기 방법은 도 6a의 할당 박스(18)에서 시작하는데, 상기 입력 사용자 데이터는 변수 R에 할당되고, 3개의 임계값(t0, t1 및 t2)은 614, (614 + 1275) 및 (614 + 1275 + 1275)에 설정되고; RDS 상태 변수 STATE는 "M"에 설정된다. 상기 할당 박스(180)에서의 임계값 설정은 도 5의 상태(162)와 상태(170)를 통한 경로의 수에 대응되는 값으로부터 구성된다. 임계값(t0)은 제 1의 614개 사용자 값이 상태(162)에 할당되었다는 것을 표시하도록 614로 설정된다. 임계값(t1)은 다음 1275 값이 코드 비트 10을 포함하는 시작 상태(174)로부터의 경로를 통해 상태(170)에 할당된다는 것을 표시하도록 614 + 1275에 설정된다. 임계값(t2)은 다음 1275 값이 도 5의 트렐리스형 다이어그램상의 코드 비트 01을 나타내는 경로를 통해 상태(170)에 할당된다는 것을 나타내도록 임계값(t1) 이상의 부가적 1275이다.
이런 관계는 부호화가 일련의 결정 박스(182, 184 및 186)를 통해 수행되는 도 6a에 도시되어 있다. 결정 박스(182)에서, 입력 값이 t0(614) 보다 작다면, 제 1 구획은 변수 CODE에 균등하게 전체 코드워드를 포함할 "11"을 할당한다. 부가적으로 STATE는 부호화기가 1의 실행 디지털 합에 도달되었고 도 5의 트렐리스형 다이어그램의 상태(162)에 있다는 것을 나타내도록 "M"의 상태로부터 "T"의 상태로 변화된다.
상기 입력 값이 t0(614)과 같거나 그 이상이라면, 입력 값은 결정 박스(184)에서 t1(614 + 1275)에 대해 비교된다. 상기 입력 값이 t1 미만이라면, CODE는 "01"에 설정되고 STATE는 "M"에 설정된다. 또한 상기 입력 값은 t0(614)을 감산하여 변수 R에 새로운 값을 저장함으로써 변형된다. 이것은 부호화기의 STATE가 제 2 구획의 시작에서 "M"일 때 R 값이 0 내지 1275 사이에 있을 것이라는 것을 보장한다. 상기 입력 값이 t1과 같거나 그 이상일 때, 상기 입력 값은 결정 박스(186)에서 t2(614 + 1275 + 1275)에 대해 비교된다. 상기 입력 값이 t2보다 작을 경우, "10"은 코드에 할당되고 "M"은 STATE에 할당된다. 부가적으로, t1(614 + 1275)은 입력 값으로부터 감산되어 R에 할당된다. 이런 감산은 R 값이 STATE가 제2 구획의 시작에서 "M"과 같을 때 0 내지 1275 값의 범위를 가질 것이라는 것을 보장한다. 상기 입력 값이 t2(614 + 1275 + 1275)와 동일하거나 그 이상이라면, "00"은 CODE에 할당되고 "B"는 STATE에 할당된다. 부가적으로, t2는 상기 입력 값에서 감산되고 상기 결과는 상태가 상기 구획(152)의 시작에서 "B"와 같을 때, 가능한 R 값의 범위가 0에서 시작하도록 R에 할당된다.
제 2 구획(152)에 대한 순서도는 도 6b와 도 6c에 도시되어 있다. 제 2 구획에 사용된 부호화 방법은 부호화기의 현재 실행 디지털 합을 나타내는 STATE에 의존한다. STATE가 5의 실행 디지털 합을 나타내는 "T"에 설정된다면, 임계값(t0)은 375에 설정되고 상기 부호화기는 R값이 t0과 비교되는 결정 박스(188)로 진행한다. R에 저장된 값이 t0 미만이라면, STATE는 "M"으로 변화하고 변수 NEWBITS는 도 5의 트렐리스에 따른 경로가 2개의 하향 대각선 화살표를 수반한다는 것을 나타내는 "00"에 설정된다. 아래에 개시된 바와 같이, 상기 NEWBITS의 값은 처음 4개의 코드워드 비트를 형성하도록 CODE의 값과 연결된다.
R이 결정 박스(188)에서 t0(375)과 같거나 그 이상이면, STATE는 "T"에 머물고 "01"은 변수 NEWBITS에 저장된다. 부가적으로, t0(375)은 R에 저장된 값에서 감산되고 상기 결과는 R에 배치된다. R에 대한 조절은 STATE가 제 3 구획(154)의 시작에서 "T"일 때, R이 0 내지 239 사이의 값을 가진다는 것을 보장한다.
제 2 구획(152)의 시작에서 STATE가 "B"의 값을 가진다면, 임계값(t0)은 375에 설정되고 임계값(t1)은 (375 + 286)에 설정된다. 상기 R 값은 임계값(t0)에 대해 비교되고, R이 t0 미만이라면 STATE는 "M"으로 변화하여 "11"은 NEWBITS에 저장된다. 상기 R값이 t0(375)과 같거나 그 이상이라면, 그것은 결정 박스(190)에서 임계값 t1(375 + 286)과 비교된다. R이 t1 미만이라면, 상기 STATE 값은 "B"에 머무르고 "10"이 NEWBITS에 저장된다. 부가적으로 R은 구획의 시작에서 tO(375)를 뺀 R의 값으로 변화된다. 이것은 STATE가 제 3 구획(154)의 시작에서 "B"일 때, R값이 0 내지 286 사이의 범위에 있게 될 것이라는 것을 보장한다.
상기 R값이 결정 박스(190)에서 t1(375 + 286)과 같거나 그 이상이라면, R은 R- t1로 조절되고, STATE는 "B"에 머무르고 "01"의 값이 NEWBITS에 저장된다.
STATE가 제 2 구획(152)이 시작에서 "M"의 값을 가진다면, 도 6c에 도시된 바와 같이, 임계값(t0, t1 및 t2)은 375, (375 + 286), 및 (375 + 286 + 375)으로 각각 설정된다. 다음에 상기 R값은 변수 R, STATE, 및 NEWBITS로 설정될 값을 결정하는 비교의 결과로 제 3 임계값에 대해 비교된다. R이 t0(375) 미만이라면, R과 STATE는 이들이 값을 유지하고 NEWBITS는 "01" 값을 수신한다. R이 t0 이상이지만 t1(375 + 286) 미만이라면, STATE는 "B"로 변하고 NEWBITS는 "00"의 값을 수신하며, R은 R - t0(375)으로 수정된다. R에 대한 수정은 STATE가 제 3 구획(154)의 시작에서 "B"와 같다면, R이 0 내지 286 사이의 값을 가질 것이라는 것을 보장한다.
상기 R 값이 t1(375 + 286)과 같거나 그 이상이라면, 상기 값은 임계값 t2(375 + 286 + 375)와 비교된다. t2 미만이지만 t1 이상인 R의 값을 위하여, 부호화기의 RDS STATE는 상태 "M"에 머무르고 "10"이 NEWBITS에 저장된다. 부가적으로, 상기 R값은 R - t1로 수정된다. 상기 R값이 t2와 같거나 그 이상이라면, STATE는 "T"로 변화하고 "11"이 NEWBITS에 저장된다. t2와 같거나 그 이상인 R값을 위하여, R은 R - t2 값으로 수정된다.
제 2 구획의 끝에서, 부호화기가 제 2 구획의 끝에 있는 상태 또는 구획의 시작에 있는 어떤 상태에 무관하게, 상기 NEWBITS의 값은 CODE에 저장되는 코드워드 중 4-비트의 부분을 생성하도록 CODE 값과 연결된다.
도 6d와 도 6e는 본 발명의 제 2 실시예에 따른 제 3 구획의 순서도이다. STATE가 제 3 구획의 시작에서 "T"라면, 임계값(t0과 t1)은 각각 111과 (111 + 64)에 설정된다. 다음에 R에 저장된 값은 2개의 임계값과 비교된다. R이 t0(111) 미만이라면, "00"은 NEWBITS에 저장되고 "M"은 STATE에 저장된다. R값이 t0과 같거나 그 이상이지만 t1(111 + 64) 미만이라면, "01"은 NEWBITS에 저장되고 "T"는 STATE에 저장된다. 부가적으로, R값은 상기 구획의 시작에서 t0을 뺀 R값으로 수정된다. 상기 R에 저장된 값이 t1(111 + 64)과 같거나 그 이상이라면, NEWBITS는 "10"에 설정되고, STATE는 "T"에 설정되며, R값은 R - t1로 조절된다.
상기 부호화기가 구획(154)의 시작에서 "B"에 있다면, 임계값 t0은 89에 설정되고 임계값 t1은 할당 박스(192)에 도시된 바와 같이 (89 + 89)에 설정된다. R값이 t0 미만이라면, STATE는 "B"에 머무르고 "01"은 NEWBITS에 배치된다. R값이 t0 이상이지만 t1 미만이라면, STATE는 "B"에 머무르고 "10"은 변수 NEWBITS에 저장되며, R값은 R - t0으로 변형된다. R값이 t1(89 + 89) 이상이라면, 상기 부호화기는 STATE가 "M"과 같도록 상태를 변화하고, 11은 NEWBITS에 저장되며, R은 R - t1로 수정된다.
도 6e에 도시된 바와 같이, STATE가 제 3 구획(154)의 시작에서 "M"에 있다면 임계값(t0, t1 및 t2)은 각각 111, (111 + 64) 및 (111 + 64 + 111)에 설정된다. t0 미만의 R값을 위하여, STATE는 "M"에 머무르고 "01"은 NEWBITS에 저장된다. t0과 같거나 그 이상이지만 t1 미만인 R값을 위하여, STATE는 "T"로 변하고, "11"은 NEWBITS에 저장되며, R값은 제 3 구획의 시작에서 t0을 감산한 R의 값으로 변형된다. 제 3 구획의 시작에서 R의 값은 t1(111+64) 보다 크거나 동일하고, t2(111+64+111) 보다 작지만, 부호화기의 STATE는 "M"이고, NEWBITS는 "10"으로 설정되고, R의 값은 R-t1로 수정된다. 만약 제 3 구획 부분의 시작에서 R의 값이 t2보다 크면, 부호화기는 STATE를 "B"로 변화하고, NEWBITS는 "00"으로 설정되고, R은 R-t2로 수정된다.
제 3 구획의 끝 부분에서, NEWBITS의 두 개의 비트 값은 6-비트 값을 형성하기 위하여 CODE에서 4-비트 값과 연결된다. 상기 연결은 NEWBITS의 2-비트 값이 4-비트 값 CODE의 끝에 배치되도록 하는 것이다. 새로운 6-비트 값은 CODE에 다시 저장된다.
도 6F 및 도 6g는 제 4 구획(156)에 대한 순서도이고, 상기 도 6f는 "T" 또는 "B"와 동일한 STATE를 가진 제 4 구획으로 진입하는 부호화기에 대한 구획 부호화를 도시하고 도 6f는 "M"과 동일한 STATE를 가진 제 4 구획으로 진입하는 부호화기에 대한 구획 부호화를 도시한다.
만약 STATE가 제 4 구획 부분(156)의 시작에서 "T"이면, 임계 값(t0 및 t1)은 각각 17 및 (17+17)으로 설정된다. R에 저장된 값은 각각 결정 박스(193 및 194)의 임계값(t0 및 t1)에 대해 비교된다. 만약 R의 값이 t0(17)보다 작으면, 부호화기의 STATE는 "T"로 남고 "01"은 NEWBITS에 저장된다. 만약 R의 값이 t0보다 크거나 같지만 t1(17+17)보다 작으면, STATE는 "T"이고, "10"은 NEWBITS에 저장되고, R의 값은 R-t0(17)으로 수정된다. t1보다 큰 R의 값에 대하여, 부호화기는 STATE를 "M"으로 변화시키고, "00"은 NEWBITS에 저장되고, R의 값은 R-t1로 변형된다.
만약 부호화기가 "B"와 같은 STATE를 가진 제 4 구획(156)으로 진입하면, 임계값(t0 및 t1)은 각각 33 및 (33+28)으로 설정된다. t0(33)보다 작은 제 4 구획 부분(156)의 시작에서 R의 값에 대하여, 부호화기는 STATE를 "M"으로 변화시키고 NEWBITS는 "11"로 설정된다. 만약 R의 값이 t0보다 크거나 같지만, t1(33+28)보다 작으면, STATE는 "B"이고, NEWBITS는 "01"로 설정되고, R의 값은 R-t0으로 설정된다. t1보다 큰 R의 값에 대하여, 부호화기는 STATE "B"이고, NEWBITS는 "10"으로 설정되고, R의 값은 R-t1로 설정된다.
부호화기가 "M"과 같은 STATE를 가진 제 4 구획(156)으로 진입하면, 임계값(t0, t1 및 t2)은 33, (33+28) 및 (33+28+33)으로 각각 설정된다. t0(33)보다 작은 R의 값은 부호화기의 STATE가 "M"에 있게 하고, 이진값 "01"은 NEWBITS에 저장되게 한다. R의 값이 t0보다 크거나 같지만, t1(33+28)보다 작은 것에 대하여, STATE는 "B"로 변하고, NEWBITS는 "00"으로 설정되고, R의 값은 R-t0의 값으로 수정된다. 만약 R의 값이 t1보다 크거나 같지만, t2(33+28+33)보다 작으면, 부호화기의 STATE는 "M"이고, NEWBITS는 "10"으로 설정되고 R의 값은 R-t1의 값으로 수정된다. 만약 R의 값이 t2보다 크면, 부호화기의 STATE는 "T"로 변화하고, "11"은 NEWBITS에 배치되고, R의 값은 R-t2의 값으로 수정된다.
제 4 구획의 끝 부분에서, NEWBITS의 2 비트 값은 CODE에서 6 비트 값의 끝에 연결된다. 새로운 8-비트 연결은 CODE에 저장된다.
제 5 구획(158)에 있어서, 도 6h 및 6i에 도시된 바와 같이, 다른 2-비트 부분은 부호화기가 제 5 구획(158) 및 현재 R의 값으로 진입하는 상태에 따라 CODE의 끝에 연결된다. 만약 부호화기가 "T"와 같은 STATE를 가지는 제 5 구획(158)에 진입하면, R은 각각 4 및 (4+4)로 설정되는 t0 및 t1에 대해 비교된다. 만약 R이 t0보다 작으면, 부호화기의 STATE는 "T"이고 "01"은 NEWBITS에 저장된다. 만약 R의 값이 t0보다 크거나 같지만, t1(4+4)보다 작으면, 부호화기의 STATE는 "T"이지만, NEWBITS는 "10"으로 설정되고, R의 값은 R-t0의 값으로 수정된다. t1(4+4)보다 큰 R의 값에 대하여, 부호화기의 STATE는 "M"으로 변화하고, NEWBITS는 "00"을 수신하고 R의 값은 R-t1의 값으로 변화한다.
부호화기가 제 5 구획(158)으로 진입하고 STATE가 "B"와 같을 때, 임계값(t0 및 t1)은 각각 9, (9+9)으로 설정된다. t0보다 작은 R의 값에 대하여, STATE는 "B"이고 NEWBITS는 "01"을 수신한다. 만약 R의 값이 t0보다 크거나 같지만, t1(9+9)보다 작으면, STATE는 "B"이지만, NEWBITS는 "10"으로 설정되고 R은 R-t0으로 설정된다. t1보다 큰 R의 값에 대하여, 부호화기는 STATE를 "T"로 변화하고, NEWBITS는 "11"로 설정되고 R은 R-t1로 설정된다.
도 6i는 "M"과 같은 STATE를 가지는 제 5 구획(158)에 진입하는 부호화기에 대한 순서도이다. 이런 상태에서, t0은 4로 설정되고, t1은 (4+10)으로 설정되고 t2는 (4+10+10)으로 설정된다. 만약 R의 값이 제 5 구획(158)의 시작에서 t0보다 작으면, STATE는 "T"로 설정되고, NEWBITS는 "11"로 설정되고, R은 변하지 않는다. 만약 R이 t0보다 크거나 같지만, t1(4+10)보다 작으면, 부호화기의 STATE는 "M"이고, NEWBITS는 "01"을 수신하고, R의 값은 R-t0의 값으로 변화된다. t1보다 크거나 같지만, t2(4+10+10)보다 작은 R의 값에 대하여, 부호화기 STATE는 "M"이지만, NEWBITS는 "10"으로 설정되고 R의 값은 R-t1로 설정된다. 만약 R의 값이 제 5 구획(158)의 시작에서 t2보다 크면, 부호화기의 STATE는 "B"로 변화하고, NEWBITS는 "00"으로 설정되고, R의 값은 R-t2의 값으로 설정된다.
제 5 구획의 끝에서, CODE에 저장된 8 비트 값은 NEWBITS에 저장된 2 비트 값과 연결된다. 이것은 마지막 코드 워드 최상위 비트의 처음 10개 비트를 형성한다.
도 6j는 본 발명의 제 2 실시예의 제 6 구획의 테이블 룩업 순서도이다. 상기 테이블 룩업 부분에서, 상기 방법은 R의 값을 가지는 3개의 테이블 중 하나를 어드레싱한다. 어드레싱되는 테이블은 제 6 구획(160)의 시작에서 STATE의 값을 바탕으로 선택된다. 만약 부호화기가 "T"와 같은 STATE를 가지는 제 6 구획(160)에 진입하면, 상기 방법은 부록 A에 도시된 바와 같이 5 비트 엔트리를 가지는 테이블 TOP_5를 어드레스한다. 만약 부호화기가 "M"과 같은 STATE를 가지는 제 6 구획(160)에 진입하면, 테이블 MIDDLE_5는 10개의 5-비트 엔트리 중 하나를 선택하기 위하여 R의 값을 사용하여 어드레싱된다. 부호화기가 "B"와 같은 STATE를 가지는 제 6 구획(160)에 진입할 때, 테이블(BOTTOM_5)은 9개의 5-비트 값 중 하나를 검색하기 위하여 R의 값으로 어드레싱된다. 5-비트 값이 부록 A에 도시된 3개의 테이블 중 하나로부터 검색된 후, 5-비트 값은 코드워드를 형성하기 위하여 CODE에 저장된 10-비트 값의 끝에 연결된다.
테이블(MIDDLE_5 및 BOTTOM_5)에 저장된 5 비트 값은 유효하지 않은 코드워드를 제거하는 값에 우선권을 제공하도록 순서가 지정된다. 특히, 테이블 MIDDLE_FIVE는 리스트의 시작에서 5 비트 값을 배치하고 상기 값과 작은 값을 연관시킴으로써 1부터 시작하는 5 비트 값에 대한 우선권을 제공한다. 유사하게, 테이블(BOTTOM_5)은 1부터 시작하는 5 비트 값이 리스트의 시작시 발생하도록 그것의 리스트 순서를 정한다. 유효하지 않은 코드워드를 생성하는 경로의 시작부에 대한 액세스 제한과 관련하여 이런 순서 지정은 6개의 연속적인 동일 부호 제약 조건을 위반하는 코드워드를 제거한다.
게다가, 테이블(TOP_5, MIDDLE_5, 및 BOTTOM_5)은 간단한 논리 회로에서 직접적으로 통합함으로써 바람직하게 수행된다. 이런 실행에서, R의 값은 5 비트 부분을 형성하기 위하여 간단한 논리 회로에 직접적으로 적용된다.
도 7은 본 발명의 제 2 실시예에서 사용하기 위한 부호화기/복호화기의 블록도이다. 부호화 동안, 제어 유니트(200)는 12 비트 입력 라인상의 INPUT VALUE(40)를 수신한다. 부호화의 시작시, 제어기(200)는 12 비트 라인인 리메인더(202)에 대해 INPUT VALUE(40)를 반영한다. 리메인더(202)는 제 1 임계 가산기(204), 제 2 임계 가산기(206), 및 제 3 임계 가산기(208)에 대한 입력이다. 제어기(200)는 임계 디코드(214)에 대한 입력인 구획 버스(210) 및 상태 버스(212)상에 값을 배치시킨다. 구획 버스(210)상에서, 제어기(200)는 부호화기 및 온 상태 버스(212)의 현재 구획을 배치하고, 제어기(200)는 부호화기의 현재 상태(T, M 또는 B)를 배치한다.
임계 복호화기(214)는 구획 버스(210) 및 상태 버스(212)상 값을 사용하여 각각 제 1 임계 가산기(204), 제 2 임계 가산기(206) 및 제 3 임계 가산기(208)에 의해 수신된 3개의 임계 값(t0(216), t1(218) 및 t2(220))을 생성한다. t0(216), t1(218) 및 t2(220) 상의 값은 도 6a 내지 도 6j의 순서도를 참조하여 기술된 t0, t1 및 t2의 임계 값에 대응하고, 임계값은 구획 및 부호화기의 상태에 따라 변화한다. 부호화 동안, t0(216), t1(218) 및 t2(220) 각각은 도 6a 내지 도 6j에 기술된 임계 값에 관한 2의 보수 형태를 포함한다.
제 1 임계 가산기(204)는 리메인더(202)상 값에 t0 216상 값을 가산하여, 제 1 리메인더(222) 및 제 1 캐리(carry)(224)를 생성한다. 부호화 동안, 제 1 리메인더(222)는 리메인더(202)와, tO(216)을 형성하기 위하여 보수화된 임계값인 t0 사이 차를 포함한다. 캐리(224)는 제 1 가산기(204)에 의해 수행된 가산이 음수를 발생시키는지 가리키고, 리메인더(202)상 값을 가리키는 캐리(224)상의 "0"은 임계값(t0)보다 작고, 리메인더를 가리키는 캐리(224)상의 "1"은 t0보다 크거나 같다.
임계 가산기(206)는 리메인더(202) 및 t1(218) 사이에서 수행된 가산에 응답하여 제 2 리메인더(226) 및 제 2 캐리(228)를 형성한다. 부호화동안, 제 2 리메인더(226)는 리메인더(202) 및 t1(218)을 형성하기 위해 보수화된 임계값(t1) 사이의 차를 포함한다. 제 2 캐리(228)는 만약 리메인더(202)가 t1보다 크거나 같으면 "1"의 값을 가진다.
제 3 임계 가산기(208)는 제 3 리메인더(230) 및 제 3 캐리(232)를 형성하기 위하여 리메인더(202) 및 t2(220) 상의 값을 함께 합산한다. 부호화동안, 제 3 리메인더(230)는 리메인더(202) 및 t2(220)를 형성하기 위해 보수화된 임계값인 t2 사이의 차를 포함한다. 제 3 캐리(232)는 만약 제 3 캐리(232)가 1을 포함하면, t2보다 크거나 같다.
리메인더(202), 제 1 리메인더(222), 제 2 리메인더(226) 및 제 3 리메인더(230)는 멀티플렉서(234)로 입력되며, 상기 멀티플렉서는 선택 신호(238)를 선택 로직 회로(236)로부터 수신한다. 상기 선택 로직 회로(236)는 제 1 캐리(224), 제 2 캐리(228) 및 제 3 캐리(232)의 값에 응답하여 선택 신호(238)를 생성한다. 도 6a 내지 도 6j에서 도시된 바와 같이, 제 1 캐리(224) 상의 0으로 표시된 t0의 절대값보다 리메인더(202) 상의 값이 작을 경우, 선택 논리 회로(236)는 멀티플렉서(234)가 리메인더(202)를 선택하도록 한다. 리메인더(202) 상의 값이 t0과 같거나 크지만 제 1 캐리(224) 상의 1과 제 2 캐리 (228)상의 0으로 표시된 t1 보다 작을 경우, 선택 논리 회로(236)는 멀티플렉서(234)가 제 1 리메인더(222)를 선택하도록 한다. 제 3 리메인더(230)는, 상기 리메인더(202)가 t1과 같거나 크지만 제 1 캐리(224) 및 제 2 캐리(228)상의 1과 제 3 캐리(232) 상의 0에 으로 표시된 t2보다 작을 경우에 선택된다. 마지막으로, 제 3 리메인더(232)는, 리메인더(202)가 제 3 캐리(232) 상의 1로 표시된 t2와 같거나 클 경우, 멀티플렉서에 의해 선택된다.
멀티플렉서(234)는 선택된 리메인더를 12 비트 레지스터(240)로 출력한다. 상기 레지스터(240)는 리메인더(202)에 결합된 출력단에 상기 리메인더를 로딩한다.
선택 신호(238)를 생성하는 것 이외에, 선택 논리 회로(236)는 또한 NEWBITS(242)를 생성한다. 선택 논리 회로(236)는 제 1 캐리(224), 제 2 캐리(228) 및 제 3 캐리(232) 뿐만 아니라 상태 버스(212)로의 접속으로부터 선택 논리회로(236)가 수신한 부호화기의 상태에 응답하여 NEWBITS(242)를 생성한다. 도6a 내지 도 6j의 순서도에서 설명된 논리를 사용하여 선택 논리 회로(236)는 제 1 각 5개 구획들에 대해 NEWBITS(242)상에 2개의 비트를 생성한다. NEWBITS(242)는 10 비트 출력(246)을 갖는 시프트 레지스터(244)로 출력된다. 각각의 구획을 사용하여, 시프트 레지스터(244)내에 존재하는 값은 두 위치가 시프팅되고 NEWBITS(242)상의 2 비트는 비어있는 위치로 삽입된다. 5개의 구획 이후, 시프트 레지스터(244)는 10 비트의 값을 포함한다.
리메인더(202)의 최하위 4비트는 간단한 논리 블록(248,250 및 252)으로 입력되며, 상기 간단한 논리 블록들은 직접 각각 부록 A의 테이블(TOP_5, MIDDLE_5 및 BOTTOM_5)에 도시된 결과를 실행한다. 특히, 간단한 논리 블록(248)은 메모리 위치를 어드레싱하여 메모리로부터 값을 검색하는 대신에 논리 작용을 이용하여 TOP_5의 결과를 실행한다. 유사하게, 간단한 논리 블록(250, 252)은 테이블(MIDDLE_5 및 BOTTOM_5)의 결과를 실행한다. 각각의 간단한 논리 블록은 멀티플렉서(254)로 입력되는 5비트의 출력을 갖는다.
멀티플렉서(254)는 상태 버스(212)에 결합된 선택 입력을 가지며, 상태 버스(212)상의 값에 의존하여 자신의 출력을 통과시키기 위해 3개의 간단한 논리 블록 중에서 하나를 선택한다. 간단하게, 부호화기가 상태 "T"에서 제 5 구획을 종료하는 것을 상태 버스(212)가 지시할 때, 멀티플렉서(254)는 테이블(TOP_5)과 관련된 간단한 논리 블록(248)의 5비트 출력을 선택한다. 부호화기가 제 5 구획의 종료시 상태"M"에 있을 때, 멀티플렉서(254)는 테이블(MIDDLE_5)에 관련된 간단한 논리 블록(250)의 5 비트 출력을 선택한다. 그리고, 부호화기가 상태"B"에서 제 5 구획을 종료할 때, 멀티플렉서(254)는 테이블(BOTTOM_5)에 관련된 간단한 논리 블록(252)의 5비트 출력을 통과시킨다.
멀티플렉서(254)의 5비트 출력은, 결국 채널로 출력되는 15비트의 코드워드를 형성하기 위하여 10비트 출력(246)과 조합된다.
도 7에 도시된 많은 부호화 부품들은 코드워드를 복호화하기 위하여 사용될 수 있다. 복호화 기능을 수행하기 위하여, 15 비트의 코드워드는 분리되어 나머지 10 비트와 하위 5비트를 분리한다. 하위 5비트는 간단한 논리 블록(260)으로 입력되며, 상기 블록은 부록 A의 테이블(DECODE)을 직접 구현하기 위하여 간단한 논리 게이트를 사용한다. 간단한 논리 블록(260)은 단지 0과 같거나 큰 복호화된 값을 출력하며, 0 이하의 값은 최상위 위치에 1로 테이블(DECODE)내에 표시된다. 테이블(DECODE)의 부호 값의 하위 4 비트는 간단한 논리 블록(260)으로부터 출력되어 복호화 가산기(262)로 입력된다.
복호화 동안, 코드워드의 10비트의 최상위 비트는 시프트 레지스터(264)로 입력된다. 시프트 레지스터(264)는 10비트 부분 중 최상위 2 비트에서 시작하여 최하위 2 비트에서 종료하는 각각의 한 세트의 클럭 주기 동안에 10비트 부분내의 2개의 연속 비트를 출력한다.
복호화의 시작에서, 제어기(200)는 0의 값을 리메인더(202)에 위치시키고, 복호화기가 제 1 구획 내에 있으며 상태 버스(212)가 상태"M"에 있다는 것을 구획 버스(210)가 나타내도록 설정한다. 이것은 임계 부호화기(214)가 부호화 동안에 제 1 구획을 위한 것과 같은 동일한 임계 값을 출력하도록 한다. 따라서, t0(216), t1(218) 및 t2(220)는 제 1 구획의 부호화에 있어서 각각 614, (614 +1275) 및 614+1275+1275)에 대한 2의 보수이다. 이러한 값들은 제 1 임계 가산기(204), 제 2 임계 가산기(206) 및 제 3 임계 가산기(208)에 의해 각각 리메인더(202) 상에 0의 값으로 가산되며, 그들의 출력은 제 1 리메인더(222), 제 2 리메인더(226) 및 제 3 리메인더(230)에 의해 멀티플렉서(234)로 입력된다.
시프트 레지스터(264)로부터 선택 논리 회로(236)에 의해 수신된 2 비트의 값에 의존하여 선택 신호(238)는 멀티플렉서(234)가 결과의 합 중 하나를 선택하도록 하여 레지스터(240)로 전송한다. 이어 레지스터(240)는 이러한 값을 새로운 리메인더(202)를 생성하는 출력에 위치시키며, 이것은 다른 구획과 관련된 임계 값에 가산될 수 있다. 시프트 레지스터(264)내의 모든 10 비트가 부호화기의 반전된 맵핑을 수행하기 위하여 사용될 때까지 이러한 과정은 5 사이클을 통해 계속된다. 5 사이클의 종료시, 5 구획을 통한 임계 값의 합에 해당하는 멀티플렉서(234)의 출력은 양의 순환 합으로 2의 보수 합을 변환시키기 위한 상호 회로(268)로 입력된다.
복호화 가산기(262)는 상보 회로(268)로부터의 순환 합과 간단한 논리 블록(260)으로부터의 값을 가산하여 OUTPUT VALUES(50)를 생성한다.
기술 분야의 당업자들은 본 발명에 관한 제 2 실시예의 순환 특성이 도 6a 내지 도 6j에서 기술된 부호화 방법을 실행하기 위하여 요구되는 부품의 수를 감소시키는 데 도움이 된다는 것을 이해할 수 있을 것이다.
본 발명은 바람직한 실시예를 참조하여 도시되고 기술되고, 다양한 형태의 변화 및 변형이 첨부된 청구범위에 의해 한정된 바와 같은 본 발명의 정신 및 범위로부터 벗어나지 않고 이루어진다는 것이 당업자에게 이해된다.
부 록 A

Claims (10)

  1. 입력 값에서 유도된 적어도 두 개의 값들을 적어도 두 개의 액세스 수단들에 개별적으로 적용함으로써 적어도 두 개의 미리 설정된 값들을 액세스하는 단계를 포함하는데, 미리 설정된 값의 개별적인 세트에서 각각의 액세스된 미리 설정된 값이 액세스되고, 상기 각 세트의 미리 결정된 값들은 트렐리스 코드의 일부를 나타내며, 상기 트렐리스 코드는 부호화된 값이 각 이진수 1을 사용하여 1씩 증가하고 부호화된 값의 각 이진수 0을 사용하여 1씩 감소하는 실행 디지털 합에 대해 허용된 상태에 의해 한정되며, 상기 트렐리스 코드가 생성할 수 있는 가능한 부호화 값의 개수는 가능한 입력 값의 개수보다 많으며, 미리 결정된 값의 적어도 하나의 다른 개별적인 세트로부터 적어도 하나의 미리 결정된 값과의 연결이 코딩 제약 조건을 위반하는 부호화된 값을 생성하기 때문에 적어도 하나의 가능한 미리 설정된 값은 미리 결정된 값의 세트로부터 배제되며, 상기 부호화된 값을 형성하기 위하여 상기 액세스된 미리 결정된 값들을 연결하는 단계를 포함하는, 상기 입력 값을 부호화된 값으로 부호화하기 위한 방법에 있어서,
    상기 미리 결정된 값들이 액세스되는 상기 미리 결정된 값들의 세트를 상기 전체 입력 값에 기초하여 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 미리 결정된 값의 두 세트중 적어도 하나의 세트내의 미리 결정된 값들의 개수는 2의 거듭제곱이 되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 코딩 제약 조건은 부호화된 값들이 6개의 연속된 동일한 이진 값을 가지지 않도록 요구하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 12-비트의 입력 값은 15-비트의 부호화된 값으로 부호화되고, 7 비트의 미리 결정된 값은 상기 부호화된 값을 생성하기 위해 8 비트의 미리 결정된 값과 연결되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 전체 트렐리스 코드는 개별적 부호화 비트 시간(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 및 15)에 합((3), (4,2), (5,3,1), (4,2,0), (5,3,1), (6,4,2,0), (5,3,1), (6,4,2,0), (5,3,1), (6,4,2,0), (5,3,1),(4,2,0), (5,3,1), (4,2,0), (3,1) 및 (2))의 세트들로부터의 실행 디지털 합을 허용하는 것을 특징으로 하는 방법.
  6. 입력 값을 부호화된 값으로 부호화하기 위한 방법에 있어서,
    상기 입력 값을 제 1 임계 값과 비교하는 단계;
    상기 비교에 기초하여 상태, 리메인더 및 부호화된 값의 적어도 2개의 이진 디지트를 결정하는 단계; 및
    부호화된 값의 적어도 두 개의 다른 이진 디지트를 형성하기 위해 상기 리메인더와 상기 상태를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 리메인더와 상기 상태를 순환 과정에 적용하여 상기 리메인더와 상기 상태는 상기 부호화된 값의 부가적인 이진 디지트를 생성하기 위해 사용되며, 상기 순환 과정은 반복 회수에 의해 한정된 복수회의 반복을 가지고,
    상기 과정은,
    상기 반복 회수와 상기 상태에 의존하는 임계 값의 선택된 세트와 상기 리메인더를 비교하는 단계;
    상기 비교에 기초하여 새로운 상태와 새로운 리메인더를 결정하는 단계를 포함하는데, 상기 새로운 상태와 상기 새로운 리메인더는 다음 반복에서 상기 상태와 상기 리메인더로서 각각 사용되며; 및
    상기 비교에 기초하여 상기 부호화된 값의 적어도 2개의 이진 디지트를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서, 임계값의 각 세트는 코딩 제약 조건을 실행하도록 설계되며, 임계값의 세트들은 상기 부호화된 값들이 상기 제약 조건을 위반하지 않는다는 것을 보증하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서, 12-비트의 입력 값은 15-비트의 부호화된 값으로 부호화되며, 상기 부호화된 값의 처음 10비트는 2-비트의 값에 연결되고 부호화된 값의 마지막 5 비트는 5-비트의 값에 연결되는 것을 특징으로 하는 방법.
  10. 제 7항에 있어서, 상기 상태와 임계 값은 트렐리스에 의존하며, 상기 트렐리스는 코드화된 값의 코드워드에 대한 실행 디지털 합에 제약 조건을 강요하며, 상기 실행 디지털 합은 상기 부호화된 값의 각 1에 대해 1 씩 증가하고 상기 부호화된 값의 각0에 대해 1 씩 감소하며, 상기 트렐리스는 주어진 초기의 실행 디지털 합에 대해 모든 코드워드가 동일한 실행 디지털 합에서 종료하는 것임을 특징으로 하는 방법.
KR10-1998-0700764A 1995-08-03 1996-08-02 매칭스펙트럼널부호화기/복호화기 KR100406330B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US198695P 1995-08-03 1995-08-03
US60/001986 1995-08-03

Publications (2)

Publication Number Publication Date
KR19990036097A KR19990036097A (ko) 1999-05-25
KR100406330B1 true KR100406330B1 (ko) 2005-05-09

Family

ID=21698714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0700764A KR100406330B1 (ko) 1995-08-03 1996-08-02 매칭스펙트럼널부호화기/복호화기

Country Status (6)

Country Link
US (1) US5801649A (ko)
EP (1) EP0842577B1 (ko)
JP (1) JPH11511283A (ko)
KR (1) KR100406330B1 (ko)
DE (1) DE69628172T2 (ko)
WO (1) WO1997006624A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032284A (en) * 1997-03-12 2000-02-29 Cirrus Logic, Inc. Trellis coding system for disc storage systems
US6185173B1 (en) 1998-07-31 2001-02-06 Cirrus Logic, Inc. Sampled amplitude read channel employing a trellis sequence detector matched to a channel code constraint and a post processor for correcting errors in the detected binary sequence using the signal samples and an error syndrome
WO2000057559A1 (de) * 1999-03-18 2000-09-28 Siemens Aktiengesellschaft Verfahren und prozessoreinheit zur abbildung von informationen mit variablem wertebereich auf codewörter
JP4239314B2 (ja) * 1999-09-06 2009-03-18 ソニー株式会社 符号化装置および方法、復号装置および方法、および記録媒体
US6570509B2 (en) * 2000-03-03 2003-05-27 Motorola, Inc. Method and system for encoding to mitigate decoding errors in a receiver
WO2003007300A1 (en) * 2001-07-09 2003-01-23 Seagate Technology Llc Method and apparatus for suppressing low frequency content in digital data
US6538586B1 (en) * 2002-01-30 2003-03-25 Intel Corporation Data encoding strategy to reduce selected frequency components in a serial bit stream
US6989776B2 (en) * 2003-11-17 2006-01-24 Seagate Technology Llc Generation of interleaved parity code words having limited running digital sum values
US7084789B2 (en) * 2003-11-17 2006-08-01 Seagate Technology Llc DC-free code having limited error propagation and limited complexity
US7002492B2 (en) * 2004-07-07 2006-02-21 Seagate Technology Llc High rate running digital sum-restricted code
US7460032B2 (en) * 2005-10-27 2008-12-02 Evault, Inc. Methods and apparatus for performing adaptive compression
US9031241B2 (en) * 2009-02-05 2015-05-12 D.E. Shaw Research, Llc Link and physical coding sub-layer protocols
KR20100136890A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486739A (en) * 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
NL8402445A (nl) * 1984-01-20 1985-08-16 Philips Nv Werkwijze voor het coderen van n-bits informatiewoorden naar m-bits codewoorden, inrichting voor het uitvoeren van die werkwijze, werkwijze voor het decoderen van m-bits codewoorden naar n-bits informatiewoorden en inrichting voor het uitvoeren van die werkwijze.
US4888779A (en) * 1988-03-18 1989-12-19 International Business Machines Corporation Matched spectral null trellis codes for partial response channels
JPH0362621A (ja) * 1989-07-31 1991-03-18 Ricoh Co Ltd データ変調方式
US5208834A (en) * 1991-03-15 1993-05-04 International Business Machines Corporation Lexicographical encoding and decoding of state-dependent codes
US5497384A (en) * 1993-12-29 1996-03-05 International Business Machines Corporation Permuted trellis codes for input restricted partial response channels
US5537424A (en) * 1994-08-12 1996-07-16 International Business Machines Corporation Matched spectral null codes with partitioned systolic trellis structures
US5608397A (en) * 1995-08-15 1997-03-04 Lucent Technologies Inc. Method and apparatus for generating DC-free sequences
US5731768A (en) * 1996-01-31 1998-03-24 Seagate Technology, Inc. Method and apparatus for implementing codes with maximum transition run length

Also Published As

Publication number Publication date
KR19990036097A (ko) 1999-05-25
DE69628172T2 (de) 2004-04-01
EP0842577A1 (en) 1998-05-20
JPH11511283A (ja) 1999-09-28
WO1997006624A1 (en) 1997-02-20
US5801649A (en) 1998-09-01
EP0842577B1 (en) 2003-05-14
DE69628172D1 (de) 2003-06-18

Similar Documents

Publication Publication Date Title
KR100406330B1 (ko) 매칭스펙트럼널부호화기/복호화기
KR100352353B1 (ko) 신호변조방법,신호변조장치,신호복조방법및신호복조장치
US5300930A (en) Binary encoding method with substantially uniform rate of changing of the binary elements and corresponding method of incrementation and decrementation
JP3772264B2 (ja) 連続した入力ブロックを符号化する方法
KR20060061261A (ko) 주기적으로 변화하는 심볼 매핑들을 이용하여 데이터에변조 제약들을 적용하기 위한 기술들
JPS60163535A (ja) 情報記録方法および装置
JP3363432B2 (ja) データ符号化システム
KR20060088060A (ko) 쇼트 블록 인코더를 이용하여 데이터를 변조하는 방법
EP1058432B1 (en) A low disparity coding method for digital data
JP3306271B2 (ja) 符号化方法、符号化回路、及び復号回路
US5870037A (en) Method and apparatus, demodulating method and signal demodulating apparatus
US5208834A (en) Lexicographical encoding and decoding of state-dependent codes
JPH09252253A (ja) ディジタル変調方法と復調方法及びディジタル変調回路と復調回路
US6765511B2 (en) Method and apparatus for encoding digital data
US5969651A (en) Signal modulating method, signal modulating apparatus, signal demodulating method and signal demodulating apparatus
EP1292079A2 (en) Partial response encoder and decoder
JP3429623B2 (ja) 高速可変長符号復号化装置
JPH08316847A (ja) 可変長符号の復号装置
JP3234525B2 (ja) ディジタル変調方法と復調方法及びディジタル変調回路と復調回路
JP4059212B2 (ja) 変調方法、および変調装置
JPH10187664A (ja) 読み出し専用メモリ及び演算装置
TH22672B (th) วิธีการมอดูเลตสัญญาณเครื่องเพื่อการมอดูเลตสัญญาณ วิธีการดีมอดูเลตสัญญาณ และเครื่องเพื่อการดีมอดูเลตสัญญาณ
JPH03286622A (ja) 可変長符号の復号回路

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee