KR19980032286A - 밸런스드 코드의 부호화와 검출 - Google Patents
밸런스드 코드의 부호화와 검출 Download PDFInfo
- Publication number
- KR19980032286A KR19980032286A KR1019970038796A KR19970038796A KR19980032286A KR 19980032286 A KR19980032286 A KR 19980032286A KR 1019970038796 A KR1019970038796 A KR 1019970038796A KR 19970038796 A KR19970038796 A KR 19970038796A KR 19980032286 A KR19980032286 A KR 19980032286A
- Authority
- KR
- South Korea
- Prior art keywords
- state
- codeword
- code
- trellis
- codewords
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
본 발명은 아날로그 신호의 강도를 나타내는 일련의 샘플들의 시퀀스를 포함하는 데이타 스트림에서 코드워드를 검출하는 방법 및 장치에 관한 것이다. 상기 데이타 스트림은 예를 들면 홀로그래픽 저장 장치로부터 출력될 수 있다. 또 상기 테이타 스트림은 트렐리스로 표현할 수 있는 코드를 사용하여 부호화된다. 본 발명의 한 실시예는 블럭 부호화된 밸런스드 코드를 사용하고, 또다른 실시예는 유한상태 부호화된 DC프리 코드를 사용한다. 각 코드는 그 코드의 제약을 따르는 코드워드의 세트를 정의한다. 샘플들의 시퀀스와 가장 큰 상관관계를 갖는 코드워드를 선택함으로써 샘플들의 시퀀스들로부터 코드워드가 검출된다. 본 발명의 한 실시예에서는 비터비 프로세스를 사용하여 상관관계 검출 프로세스가 구현되는데, 상기 비터비 프로세스에서는 트렐리스의 각 레벨 상의 각 상태에 대해, 트렐리스의 이전 레벨에 기초하여 상관관계와 코드워드를 반복적으로 판정한다.
Description
본 발명은 샘플과 코드의 코드워드 간의 상관관계에 의해, 밸런스드 코드(balanced code) 혹은 DC 프리 코드(DC free code)를 검출하는 것에 관한 것이다.
많은 통신 시스템과 저장 시스템에서 신호의 강도에 있어서 변이가 존재하므로 검출 시 문제가 생긴다. 이러한 예의 하나로서 홀로그래픽 저장 시스템을 들 수 있다.
도 1a는 기록 장치(102)의 블럭도이다. 엔코더(112)는 입력으로서 디지탈 데이타를 데이타워드(110)와 같은 단위의 형태로 받는다. 입력 데이타는 기록에 적합한 형태로 부호화되어 엔코더(112)에서 코드워드(114)와 같은 단위의 형태로 출력된다. 코드워드들은 데이타의 실제 기록을 통제하는 신호를 출력하는 다른 기록 장치 회로(116)에 입력될 수 있다.
도 1b는 판독 장치(108)의 블럭도이다. 판독 채널로부터의 아날로그 신호는 판독 장치(108)의 아날로그/디지탈 변환기(ADC)(122)에 입력된다. ADC(122)는 샘플(124)과 같은 단위로 이루어진 디지탈 신호를 출력한다. 각각의 샘플은 한 지점에서의 아날로그 신호 강도를 나타낸다. 이와 같은 일련의 샘플들이 (124)에 도시되어 있다. 다수의 샘플들(124)이 함께 그룹화되어 샘플 시퀀스(125)를 형성한다. 시퀀스 (125)는 검출기(126)에 입력되고, 검출기(126)는 샘플들(124)에 기초하여 기록을 위해 입력된 원래 데이타를 재구성한다. 재구성된 코드워드(128)는 검출기(126)로부터 출력된다. 재구성된 데이타워드(132)는 복호화기(130)에서 출력된다. 실제로는 검출기와 복호화기가 조합될 수도 있다.
도 1c는 도 1b의 판독 장치(108)와 기록 장치(102)를 홀로그래픽 저장 장치에 적용한 것을 도시한 것이다. 홀로그래픽 저장 장치는 도 1a의 기록장치(102)로부터 입력으로서 기록될 데이타를 받고, 그 데이타를 부호화하여 공간 광 조절기(spatial light modulator;SLM)(104)를 통제하는 신호로 변환한다. 레이저 광 소스(source)(103)에 의해 조명되는 SLM(104)는 레이저 빛을 입력 데이타를 나타내는 시각 신호(105)로 변환한다. 신호(105)와 기준 빔 소스(101)에서 나오는 기준 빔 간의 간섭 패턴이 홀로그래픽 매체(106)에 저장된다. CCD(charge coupled device) 어레이(109)는 홀로그래픽 매체(106)에서 출력되는 광 신호(107)를 입력으로 받아서, CCD내의 각 픽셀의 조명 강도를 나타내는 아날로그 전자 신호를 출력한다. 이 신호는 홀로그래픽 저장 장치에서 도 1b의 판독 장치(108)로 출력되며, 판독 장치(108)는 아날로그 신호를 디지탈 신호로 변환하고 디지탈 신호를 복호화하여 기록된 데이타를 얻는다.
전형적인 홀로그래픽 저장 장치에서 코드워드 비트값 1은 온(on)되거나 조명된 픽셀을 사용하여 기록하고, 코드워드 비트값 0은 오프(off)되거나 조명되지 않은 픽셀을 사용하여 기록한다. 물론, 이와 반대로 구성하는 것도 가능하다. 코드워드는 SLM상에 각각 같은 단위를 갖는 어레이로서 기록된다. 예를 들어 길이가 12인 코드워드는 3x4의 어레이로서 기록할 수 있다. 코드워드의 시퀀스는 SLM을 가로질러 래스터(raster)된다. 예를 들어, 각 코드워드가 3x4의 어레이로서 기록되면 SLM의 맨처음 세 행은 3x4 어레이의 시퀀스로 채워지고, 그리고 그 다음 세 행이 채워지고 하는 식으로 SLM 전체가 채워진다.
기록이 끝나면, 각 픽셀을 완전히 온상태 혹은 완전히 오프 상태의 광 빛 소스가 조명한다. 홀로그래픽 메모리에서 하나의 코드워드를 판독할 때, CCD 카메라(109)가 수신하는 빛에 굴절이 전혀 없는 것은 아니다. 일반적으로, CCD의 픽셀들은 완전히 온상태 혹은 오프상태의 조명을 받지 않고 부분적으로 온상태 혹은 오프상태의 조명을 받는다. ADC(122)에서 출력되는 샘플들은 이 부분적인 조명을 반영한다. 검출기(126)는 ADC(122)로부터 수신한 샘플들의 시퀀스에 기초하여, 실제의 출력 코드워드를 예측(estimate)해야만 한다.
잘 알려진 검출 시스템으로 임계값 검출이 있다. 임계값 검출은 샘플들에 대해 임계값을 설정함을 의미한다. 임계값 보다 큰 값을 갖는 샘플들은 모두 1로 간주되고, 임계값 보다 작은 값을 갖는 샘플들은 모두 0으로 간주된다. 이와 같은 임계값 검출은 두 가지 문제가 있다. 첫째, 임계값을 계산해야만 한다. 일반적으로 임계값을 계산하기 위해 많은 수의 샘플들의 평균값을 구해야 한다. 이로 인해 계산량이 많아지고, 그 결과 검출 시스템의 기능이 저하되며 가격이 상승하게 된다. 둘째로, 광 신호 혹은 전기적 신호에 있는 노이즈가 검출 시스템의 에러율을 상당히 증가시킨다. 에러율이 상승하면 더 복잡한 에러 정정 방안이 필요하게 되고, 그 결과 검출 시스템의 기능이 저하되며 가격이 상승하게 된다. 에러율이 너무 높아지면, 모든 에러를 정정하는 것이 불가능해질 수도 있다. 그 결과 데이타의 손실이 발생하며, 이는 치명적이다. 따라서 계산량이 적고 노이즈에도 강한 검출 시스템이 필요하다.
임계값 검출에 존재하는 문제들에 대한 한가지 해결책은 밸런스드 코드(balanced code)를 사용하는 것이다. 밸런스드 코드는 각 코드워드가 밸런스화된 것을 말한다. 즉 한 코드워드에 들어있는 1과 0의 갯수가 꼭 같다는 것이다. 밸런스드 코드를 쓸 경우에는 임계값을 계산할 필요가 없다. 1과 0의 갯수가 같으므로 샘플들 중 밝은 50%는 1로 간주되고, 어두운 50%는 0으로 간주된다. 또한, 두 개의 서로 상이한 코드워드 간의 최소 거리, 차이가 나는 최소 수는 2이다. 밸런스드 코드의 경우 한 비트라도 변경되면 그 결과는 언밸런스(unbalance)하게 되므로 무효한 코드워드가 되어버린다. 밸런스 상태로 유지하기 위해서는 적어도 두 비트가 변경되어야만 한다. 최소 거리가 클수록, 서로 상이한 코드워드들 간의 식별이 쉬워진다. 밸런스드 코드의 최소 거리는 원할 경우 크게 만들 수 있다.
밸런스드 코드는 일반적으로 DC프리 코드로 알려진 종류의 코드에 속한다. DC프리 코드의 각 코드워드는 모두 밸런스드 코드는 아니지만, 임의의 길이의 코드의 시퀀스 내에서의 불균형은 제한하고 있다. DC프리 코드는 밸런스드 코드와 유사한 장점들을 갖고 있다.
밸런스드 코드 혹은 DC프리 코드의 사용에도 문제는 있다. 종래의 검출 방법은 완전하지 못하다. 검출된 워드가 유효한(valid) 코드가 아닐 때, 현재의 검출 방법들은 그 오류를 스스로 해결하지 못한다. 이는 매우 깨끗한 출력 신호를 갖는 저장 장치에서는 별 문제가 되지 않지만, 홀로그래픽 저장 장치와 같이 상대적으로 노이즈가 많고 왜곡된 출력 신호를 갖는 다른 저장 장치에서는 문제가 된다. 또한, 현재의 밸런스드 코드 검출 방법들에서는 상당한 소팅이 필요하므로 이는 검출기의 비용을 증가시키고 성능을 저하시키므로 개선이 필요하다.
본 발명은 아날로그 신호의 세기를 나타내는 샘플들의 시퀀스들의 열로 구성된 데이타 스트림에서 코드워드를 검출하는 장치와 방법에 관한 것이다. 데이타 스트림은 트렐리스(trellis)로 나타낼 수 있는 코드를 사용하여 부호화된다. 본 발명의 한 실시예는 블럭 부호화된 밸런스드 코드를 사용하고, 또다른 실시예는 유한 상태 부호화된 밸런스드 코드를 사용한다. 그리고 또다른 실시예는 유한상태 부호화된 DC프리 코드를 사용한다. 각 코드는 해당 코드의 제약조건을 충족시키는 코드워드의 세트를 정의한다. 샘플의 시퀀스와 가장 상관이 높은 코드워드를 선택함으로써 샘플의 시퀀스에서 코드워드가 검출된다. 특히, 0과 1에 대응하는 이상적인 세기 값을 알아야 할 필요가 없다. 바람직한 실시예에서는 상관관계 검출을 비터비 프로세스를 사용하여 구현하며, 각 상태에 대한 상관관계와 코드워드를 트렐리스의 각 레벨에서 연속적으로 판정하는데, 이 때 트렐리스의 이전 레벨의 상관관계에 근거하여 판정한다.
밸런스드 코드나 DC프리 코드를 사용하므로 임계값 검출이 필요없다. 비터비 프로세스를 사용하여 코드워드를 연속적으로 검출하는 것이 이전의 밸런스드 코드나 DC프리 코드 검출 방법 보다 훨씬 효율적이다.
도 1a는 기록 장치(102)의 블럭도.
도 1b는 판독 장치(108)의 블럭도.
도 1c는 도 1a의 기록 장치(102)와 도 1b의 판독 장치(108)를 포함하는 홀로그래픽 저장 장치(100)의 예시적인 블럭도.
도 2는 블럭 코드를 사용하여 데이타워드의 스트림을 부호화하는 블럭 엔코더(200)의 블럭도.
도 3은 유한상태 코드를 사용하여 데이타워드의 스트림을 부호화하는 유한상태 엔코더(210)의 블럭도.
도 4는 길이 8의 밸런스드 2진 코드워드의 세트를 위한 본 발명에 따른 트렐리스(400)의 블럭도.
도 5는 길이 8의 밸런스드 2진 코드워드의 또다른 세트를 위한 본 발명의 한 실시예에 따른 트렐리스(500)의 블럭도.
도 6은 검출기(600)의 블럭도로, 검출기(600)는 비터비 프로세스를 사용하여 샘플들의 시퀀스를 그것과 가장 상관관계가 높은, 도 5의 트렐리스에 의해 정의된 코드로 이루어진 코드워드로 변환하는 것을 나타내는 도면.
도 7은 도 6의 검출기(600)에 의해 구현된 본 발명에 따른 프로세스(700)의 흐름도.
도 8a는 본 발명의 또다른 실시예에 따른 8:10의 비를 갖는 DC프리 유한상태 코드의 트렐리스(800)를 나타내는 도면.
도 8b는 도 8a의 트렐리스(800)을 간략하게 나타낸 도면.
도 9는 본 발명에 따른 검출기(900)의 블럭도로, 검출기(900)은 비터비 프로세스를 사용하여 샘플들의 시퀀스를 그것과 가장 상관관계가 높은, 도 8의 트렐리스에 의해 정의된 코드로 이루어진 코드워드로 변환하는 도면.
도 10은 도 9의 검출기(900)에 구현된 본 발명에 따른 프로세스(700)의 흐름도.
도 11은 본 발명의 또다른 실시예에 따른 8:12의 비를 갖는 밸런스드 유한상태 코드의 트렐리스(1100)를 나타내는 도면
도면의 주요부분에 대한 부호의 설명
102 : 기록 장치 110 : 데이터워드
112 : 엔코더 114 : 코드워드
116 : 다른 기록 장치 회로 108 : 판독장치
122 : 아날로그/디지털 변환기 124 : 샘플
125 : 샘플 시퀀스 126 : 검출기
128 : 코드워드 130 : 디코더
132 : 데이터워드 101 : 기준 빔 소스
103 : 광 소스 104 : 공간 광 조절기
200 : 블럭 엔코더 210 : 유한 상태 엔코더
600 : 검출기 602 : 트렐리스
604 : 코드워드 표 606 : 검출 프로세스 제어부
610 : 프로세서
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
도 2는 데이타워드의 스트림을 부호화하는 블럭 엔코더(210)의 블럭도이다. 블럭 엔코더는 데이타워드를 입력으로 받아 대응하는 코드워드를 출력한다. 출력되는 코드워드는 현재 입력된 데이타워드에만 의존한다.
도 3은 데이타워드의 스트림을 부호화하는 유한상태 엔코더(210)의 블럭도이다. 유한상태 엔코더는 데이타워드를 입력으로 받아 대응하는 코드워드를 출력한다. 그러나, 출력되는 코드워드가 입력된 데이타워드에 의존할 뿐만 아니라, 엔코더의 현재 상태에도 의존하는데, 엔코더의 현재 상태는 이전에 입력된 데이타워드에 의해 판정된다. 유한상태 엔코더는 코드워드 뿐 아니라 상태 정보(216)도 출력하며 이는 자기 자신에 다시 피드백된다.
본 발명의 한 측면은 강도 값을 나타내는 디지탈 샘플의 스트림에서 데이타를 검출하는 것이다. 블럭 부호화된 밸런스드 코드의 경우 검출 프로세스가 개념적으로 꽤 단순하다. 예측된 이진 코드워드 b=b0bI...bl-1은 대응하는 샘플의 시퀀스 y=(y0yI...yl-1)과의 상관관계 b,y를 최대화하는 코드워드로써 선택된다. 이때 상관관계는 널리 알려진 도트연산(dot product)이다.
다시 말하면, 샘플 시퀀스 y의 가능한 모든 코드워드 b에 대해 상관관계를 구한다. 가장 큰 상관관계를 갖는 코드워드를 검출기가 출력할 코드워드로 선택한다. 매우 많은 수 N의 코드워드가 존재할 때, N개의 코드워드 각각에 대한 상관관계 b,y를 차례로 구하는 것은 비효율적이다. 본 발명의 한 실시예에서는 비터비 프로세스의 한 예를 사용하여 이와 같은 시간낭비적인 계산을 피하고 있다.
비터비 프로세스는 코드의 트렐리스 기술(trellis description)에 기초한다. 블럭 코드의 트렐리스는 최상위(top)에 하나의 상태, 최하위(bottom)에 하나의 상태 그리고 중간 레벨에서는 여러 개의 상태를 갖는 것으로 정의된다. 레벨 d의 각 상태는 레벨 d+1에서 하나 이상의 상태로 이르게 한다. 관례상, 왼쪽 아래로 가는 전이(transition)는 0으로 표기되고, 오른쪽 아래로 가는 전이는 1로 표기된다. 코드의 코드워드는 최상위 상태에서 최하위 상태로 트렐리스를 가로지르는 경로의 레이블이다. 트렐리스의 최상위 상태에서 다른 상태로 가는 각 경로는 코드워드의 프리픽스(prefix)를 생성하는 것으로 간주된다. 이에 따라, 어떤 상태 s가 주어졌을 때, 최상위 상태에서 상태 s로 가는 경로가 한 세트 있고, 이에 대응하는 코드워드의 프리픽스로 이루어진 워드의 세트 P(s)가 있다. 레벨 d의 상태 s에 대해, c(s)는 입력된 워드의 레벨 d 프리픽스와 P(s) 내의 워드들 간의 상관관계 중 최대의 것으로 정의되고, p(s)는 이 최대값을 내는 레벨 d 프리픽스로 정의된다.
예를 들어, 도 4는 길이 8인 2진 밸런스드 코드워드의 세트에 대한 트렐리스(400)인데, 이 세트는 디지탈 합 편차(digital sum variance, DSV), 혹은 프리픽스의 불균형은 3보다 크지 않다. 이는 각각의 8비트 코드워드가 밸런스되었음-4개의 0과 4개의 0을 가짐-을 의미한다. 모든 위치에 대해서 그 위치에서의 프리픽스는 0 보다 1이 3개 이상 많지 않고, 1 보다 0이 3개 이상 많지 않다. 트렐리스의 레벨은 점선으로 구분되고, 레벨(401)에서 (409)로 지정된다. 트렐리스(401)의 최상위 레벨(401)은 d=0인 레벨이다. 다음 레벨(402)은 레벨 d+1=1이고, 그 다음 레벨들에 대해서도 마찬가지다.
트렐리스의 최상위 레벨(401)에는 하나의 상태만이 존재한다. 트렐리스의 최하위 레벨(409)에는 하나의 상태만이 존재한다. 각 상태 위에 있는 정수 s는 트렐리스에서 최상위 상태에서부터 상태 s까지의 경로의 갯수 N(s)이다. 관례상, 0 전이는 왼쪽 아래로 내려가도록 그리고, 1 전이는 오른쪽 아래로 내려가도록 그린다.
트렐리스(400)의 각 레벨(401 내지 409)은 각 레벨에서 생기는 코드워드 내의 하나의 비트 위치에 대응된다. 트렐리스(400)를 사용하여 코드워드를 생성하려면, 최상위 레벨(401)에서 시작한다. 이 레벨은 코드워드의 첫번째 비트 이전의 위치에 해당하므로, 아직까지 정의된 코드워드의 비트가 하나도 없다. 코드워드의 첫번째 비트에 대응하는 전이가 선택된다. 예를 들어, 첫번째 전이가 1이라고 가정하자. 이 전이는 트렐리스(400) 상에서 오른쪽 아래 방향이다. 현 상태는 레벨 (402)에서 가장 오른쪽에 있는 상태이다. 현재 정의되는 프리픽스는 1이다. 두 개의 1 전이를 더 가정하자. 현 상태는 레벨(404)의 가장 오른쪽 상태이다. 현재 정의된 프리픽스는 111이다. 이 코드의 DSV는 3이므로, 프리픽스는 0 보다 1이 3개 보다 많을 수는 없다. 따라서, 이 상태에서는 이제 더 이상 1 전이가 허용되지 않는다. 다음 전이는 0이어야 하고, 이는 레벨(405)의 맨 오른쪽 상태에 이르게 한다. 이제 현재 정의된 프리픽스는 1110이 된다. 다음 전이가 1이라고 가정하자. 현재 상태는 레벨(406)의 가장 오른쪽 상태가 된다. 현재 정의된 프리픽스는 1(1101)이다. 전체 코드워드가 밸런스드되어 있으므로, 각 코드워드에는 4개의 1이 있다. 현재의 프리픽스는 이미 1이 4개이다. 따라서, 이제 남은 세 개의 전이는 0일 수 밖에 없다. 그 결과 레벨(409)의 최하위 상태에 이르게 된다. 현재 정의된 프리픽스가 전체 코드워드이고, 이는 11101000이다. 레벨(409)에서는 68개의 가능한 상태가 있고, 따라서, 이 코드는 68개의 상이한 코드워드가 있다.
실제로, 일련의 데이타워드들은 부호화되어 일련의 코드워드를 이룬다. 따라서, 이 트렐리스가 계속해서 사용되어 최하위 레벨 상태에서 최상위 레벨 상태로 다시 돌아간다. 사실은, 최하위 레벨 상태는, 하나의 시간블럭 단위가 지난 시점에서의 최상위 레벨 상태와 동일하다. 현재의 코드워드의 모든 비트가 정의되면 최하위 레벨 상태로 들어간다. 이 상태는 다음 코드워드의 비트가 하나도 정의되지 않는 상태, 즉 최상위 레벨 상태와 동일한 상태이다.
도 5는 6비트의 데이타워드를 8비트의 코드워드로 부호화하는 블럭코드에 대한 트렐리스이다. 이 트렐리스는 111로 끝나는 4개의 코드워드가 빠졌다는 점만 제외하면 도 4의 트렐리스와 유사하다. 도 4의 트렐리스를 도 5의 트렐리스로 만들기 위해서는 레벨(406)의 가장 왼쪽 상태를 없애는 수정을 가해야 한다. 도 4를 보면 레벨(406)의 가장 왼쪽 상태는 (4가지 경로를 통해) 1인 비트가 세 개인 코드워드를 내는 상태로서는 유일한 것이다. 6비트의 데이타워드를 부호화하기 위해서는, 64개의 코드워드가 필요하고, 따라서 4개의 코드워드는 생략하였다.
도 6은 검출기(600)의 블럭도로, 검출기(600)는 비터비 프로세스를 사용하여 샘플들의 시퀀스를 그것과 가장 상관관계가 높은, 도 5의 트렐리스에 의해 정의된 코드로 이루어진 코드워드로 변환한다. 검출기(600)는 아날로그/디지탈 변환기로부터 입력(601)상에서 샘플들의 시퀀스 스트림을 받는다. 검출기(600)는 출력(603)상에서 코드워드 스트림을 출력한다. 검출기(600)는 현재 검출되고 있는 코드를 정의하는 트렐리스를 담고 있는 트렐리스 컨테이너(602)를 포함한다. 코드워드 표(604)는 검출되는 코드 내의 모든 코드워드들을 담고 있다. 입력(601), 출력(603), 컨테이너(602) 및 코드워드 표(604)에 접속된 프로세서(610)가 검출 프로세스 제어부(606)의 제어에 따라 검출 프로세스를 수행한다.
검출기(600)는 범용의 프로그램가능한 컴퓨터로 구현될 수 있는데, 이 때에는 트렐리스 컨테이너(602)와 코드워드 표(604)는 메모리에 저장되고 프로세서(610)는 컴퓨터의 CPU이다. 이와 같은 컴퓨터의 메모리는 통상 RAM(random access memory)이지만, 몇몇 응용에서는 ROM(read only memory), P-ROM(programmable read only memory), EEPROM(electrically erasable programmable memory) 등이 사용되기도 한다. 트렐리스 컨테이너(602)와 코드워드 표(604)는 또한 하드 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 광학적 드라이브, 자기-광학적 드라이브 혹은 홀로그래픽 저장 장치와 같은 대용량 저장 장치에 저장될 수도 있다.
검출기(600)는 전용 회로로 구현될 수도 있다. 트렐리스 컨테이너(602)와 코드워드 표(604)는 RAM 칩, ROM 칩, PROM 칩, 전기적으로 소거가능한 ROM 칩, 프로그램가능 어레이 로직 칩, 게이트 어레이 칩, 프로그램가능 게이트 어레이 칩, 커스텀 IC 또는 이들 칩들의 일부 등의 다양한 저장 장치로 구현할 수 있다. 마찬가지로 프로세서(610)는 이산 논리(discrete logic), 프로그램가능 어레이 로직 칩, 게이트 어레이 칩, 프로그램가능 게이트 어레이 칩, 커스텀 IC 또는 이들 칩들의 일부 등으로 구현이 가능하다. 실제로 어떻게 구현하는가는 비용이나 만들어질 시스템의 크기, 원하는 성능 수준 등의 외부 요인들에 의해 판정된다. 위에서 나열한 다양한 칩들로 검출 프로세스를 구현할 수 있고, 그렇게 구현한 시스템들은 본 발명의 목적 하에서만 보면 모두 동일하다고 볼 수 있다.
도 7은 도 6의 검출기(600)로 구현된 입력 샘플-코드워드 프로세스(700)의 흐름도이다. 프로세스(700)는 입력 샘플 시퀀스 y에 따라 어떤 코드워드 b를 출력할 것인가를 검출하기 위해 도 5와 같은 트렐리스를 사용한다. 비터비 프로세스는 트렐리스의 각 레벨에서 각 상태 s에 대한 상관관계와 코드워드를 이전 레벨에서의 상관관계에 기초하여 단계적으로 판정한다.
이 프로세스는 샘플들의 시퀀스를 수신하는 단계(701)에서 시작된다. 단계(702)에서는 c(top state)로 표시된 최상위 상태에 대한 상관관계가 0으로 세트된다. 지금 처리되고 있는 현재 상태 s는 레벨 1의 첫번째 상태로 선택된다. 현재 레벨은 d로 표시되므로, d는 1로 세트된다. 단계(704)에서는, 상태 s로 이르는 이전 레벨 상의 상태 각각에 대한, 상태 s에서의 상관관계가 다음 식에 따라 얻어진다.
위의 식에서 s는 현재 상태, s'은 이전 레벨에서의 상태, c(s)는 현재 상태에서의 상관관계, c(s')은 상태 s'에서의 상관관계, a(s',s)는 상태 s'에서 상태 s로 이르는 전이의 레이블(0 혹은 1)이고, yd-1은 샘플 d-1의 값이다. 단계(706)에서는, 단계(704)에서 구한 상관관계 중 최대 상관관계가 선택된다. 상태 s의 상관관계 c(s)는 이 최대값과 같게 세트된다. 이 최대값을 내는 이전 상태 s'는 s'max로 표시된다. p(s)로 표시되는 상태 s에서의 코드워드는, 상태 s'max에서 상태 s까지의 전이 레이블의 값 a(s'max,s)을 상태 s'max에서의 코드워드 p(s'max)의 끝에 연결함으로써 판정될 수 있다.
단계(708)에서는 현재 레벨에서 처리되지 않은 상태가 더 있는지를 판정한다. 만약 있다면 단계(710)로 가고, 단계(710)에서는 현재 레벨에서 다음 상태가 선택된다. 그 다음에는 단계(704)로 다시 돌아간다. 단계(704) 내지 (710)는 레벨 d의 모든 상태 s에 대해서 병렬적으로 구현되는 것이 바람직하지만, 순차적으로 구현될 수도 있다. 현재 레벨에서 더 이상의 상태가 없으면, 단계(712)로 간다. 단계(712)에서는 프로세스가 최하위 레벨에 이르렀는가가 판정된다. 만약 최하위 레벨에 이르지 않았다면 프로세스는 단계(714)로 가서 레벨이 증분된다. 다음에는 단계(704)로 다시 돌아간다. 프로세스가 최하위 레벨에 이르면 단계(716)로 가서 완전히 검출된 코드워드 p(bottom state(최하위 상태))가 출력된다.
도 8a는 8:10의 비를 갖는 DC프리 유한상태 코드의 트렐리스(800)이다. 밸런스드 코드에서는 모든 코드워드가 같은 수의 0과 1을 갖는 반면, DC프리 코드의 경우에는 그렇지 않다. DC프리 코드에서는 0보다 1이 더 많은 코드워드도 있고, 1보다 0이 더 많은 코드워드도 있다. 그러나, DC프리 코드의 경우, 다수 개의 코드워드들이 이루는 임의 길이의 시퀀스의 불균형은 제한된다.
유한 상태 코드의 트렐리스 기술(trellis description)은 하나보다 많은 최상위 상태와 하나보다 많은 최하위 상태가 있다는 점을 제외하면 블럭 코드의 트렐리스와 유사하다. 하나의 시간블럭 단위 이후에는, 최하위 상태의 세트는 항상 최상위 상태의 세트와 같다. 트렐리스 내에서의 접속은 주어진 길이를 갖는 몇 개의 서로 다른 워드에 의해 표기될 수 있다(모든 접속에 대해서 길이가 같다). 코드워드는 트렐리스를 최상위 상태에서 최하위 상태로 가로질렀을 때 얻어지는 시퀀스이다. 예를 들어, 도 8a에서 트렐리스(800)는 두 개의 최상위 레벨 상태인 상태 a(801)와 상태 b(802)를 갖는다. 마찬가지로, 트렐리스(800)는 두 개의 최하위 레벨 상태인 상태 a(801)과 상태 b(802)를 갖는데 이들은 최상위 레벨 상태와 동일한 상태이다.
트렐리스(800)의 일부 상태들은 두 개보다 많은 출구 경로(exit path)를 갖고 있음을 주목해야 한다. 예를 들어서 상태 a(801)는 하나의 1 전이 출구 경로(1 transition exit path)를 갖고 두 개의 0 전이 출구 경로(0 transition exit paths)를 갖는다.
DC프리 코드에서는 각 상태 s는 하나의 정수 i(s)와 연관되어 있어서 어떤 한 쌍의 상태 s와 t가 있을 때, 트렐리스 내에서 s에서 t로의 경로에 의해 생성되는 모든 워드들은 0 보다 i(s)-i(t) 개 많은 수의 1을 갖는다. 결과적으로, 원하는 정도의 불균형 제한을 얻는다. 도 8a의 트렐리스에서는 a에서 a까지의 불균형 i(a)는 0이고, a에서 b까지의 불균형 i(b)는 8이다.
도 8a의 트렐리스(800)와 같은 트렐리스에 기초한 유한상태 코드에 대한 검출 프로세스에서도, 대응하는 강도 샘플 시퀀스로부터 2진 코드워드를 예측하기 위해 상관관계 척도를 사용한다. 상태 a(801) 또는 b(802)와 같은 최상위 상태 s와, 상태 a(801) 또는 b(800)와 같은 최하위 상태가 주어질 경우, 검출 프로세스의 일부는 상태 s로부터 상태 t까지 부호화기가 택한 경로를 찾는데, 이 경로에서 생성된 코드워드 b는 대응하는 강도 샘플 시퀀스 y와의 상관관계 b,y를 최대로 만드는 것이다. 따라서, 블럭 엔코더의 경우와 꼭 같이, 비터비 프로세스에서는 선택한 최하위 상태 t 각각에 대해, 최상위 상태 s와 코드워드의 조합을 판정하는데, 이 때의 코드워드는 수신된 워드와 s에서 t까지의 코드워드를 표기하는 경로와의 상관관계를 최대화하는 것이다. 이는 각각의 최하위 상태 t에 대해 하나의 코드워드를 선택가능하게 한다. 일반적으로, 실제로 검출된 코드워드는 이와 같은 프로세스가 반복되는 횟수 m으로 판정되는데, 이때 m은 경로 메모리 길이(path memory length)라고 불린다. 이에 관해서는 다음에 더 자세하게 설명한다.
도 8b는 도 8a의 트렐리스(800)를 간략하게 나타낸 것이다. 도 8b에서 도시된 것처럼 트렐리스(800)를 거치는 상태 a(801)에서 a(801)로의 경로는 252개 있다. 마찬가지로, 상태 b(802)로부터 상태 b(802)까지는 252 개의 경로가 있다. 이들 252개의 경로는 각각 길이 10의 밸런스드 코드워드를 생성한다. 또 트렐리스(800)를 거쳐 상태 a(801)로부터 b(802)까지의 경로는 4개 있고, 각각은 8의 불균형을 갖는 코드워드를 생성한다. 트렐리스(800)를 거쳐 상태 b(802)로부터 상태 a(801)까지의 경로는 4개 있고, 각각은 -8의 불균형을 갖는 코드워드를 생성한다. 상태 a(801)에서 시작하여 상태 a(801)에서 끝나는 부호화 시퀀스 혹은 상태 b(802)에서 시작하여 상태 b(802)에서 끝나는 부호화 시퀀스는, 시퀀스의 길이나 상태 a(801)에서 상태 b(802)로의(혹은 상태 b(802)에서 상태 a(801)로의) 전이의 갯수에 상관없이 밸런스드되어 있다.
8비트 데이타워드는, 상태 a로부터 a로의 전이와 상태 b로부터 b로의 전이가 같은 밸런스드 코드워드를 생성할 경우에는 두 전이에 같은 8비트의 데이타워드가 할당되는 방식으로 할당되어야만 한다. 그렇게 하면 에러 전파가 방지된다.
도 9는 본 발명에 따른 검출기(900)의 블럭도로, 검출기(900)는 비터비 프로세스를 사용하여 샘플들의 시퀀스를 그것과 가장 상관관계가 높은, 도 8의 트렐리스에 의해 정의된 코드로 이루어진 코드워드로 변환한다. 검출기(900)는 (후술되는) 경로 메모리 처리 제어부(908)가 추가된 점을 제외하면 도 6의 검출기(600)와 상당히 유사하다.
검출기(900)는 아날로그/디지탈 변환기로부터 입력(901)상으로 샘플들의 시퀀스 스트림을 받는다. 검출기(900)는 출력부(903) 상으로 코드워드 스트림을 출력한다. 검출기(900)은 현재 검출되고 있는 코드를 정의하는 트렐리스를 담고 있는 트렐리스 컨테이너(902)를 포함한다. 코드워드 표(904)는 검출 중에 있는 코드 내의 모든 코드워드들을 담고 있다. 입력(901), 출력(903), 트렐리스 컨테이너(902) 및 코드워드 표(904)에 접속된 프로세서(910)가 검출 프로세스 제어부(906) 및 경로 메모리 프로세스 제어부(908)의 제어에 따라 검출 프로세스를 수행한다.
검출기(900)는 범용의 프로그램가능한 컴퓨터로 구현될 수 있는데, 이 때에는 트렐리스 컨테이너(902)와 코드워드 표(904)는 메모리에 저장되고 프로세서(910)는 컴퓨터의 CPU이다. 이와 같은 컴퓨터의 메모리는 통상 RAM(random access memory)이지만, 몇몇 응용에서는 ROM(read only memory), P-ROM(programmable read only memory), EEPROM(electrically erasable programmable memory) 등이 사용되기도 한다. 트렐리스 컨테이너(902)와 코드워드 표(604)는 또한 하드 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 광학적 드라이브, 자기-광학적 드라이브 혹은 홀로그래픽 저장 장치와 같은 대용량 저장 장치에 저장될 수도 있다.
검출기(900)는 전용 회로로 구현될 수도 있다. 트렐리스 컨테이너(902)와 코드워드 표(904)는 RAM 칩, ROM 칩, PROM 칩, 전기적으로 소거가능한 ROM 칩, 프로그램가능 어레이 로직 칩, 게이트 어레이 칩, 프로그램가능 게이트 어레이 칩, 커스텀 IC 또는 이들 칩들의 일부 등의 다양한 저장 장치에 의해 저장될 수 있다. 마찬가지로 프로세서(610)는 이산 논리(discrete logic), 프로그램가능 어레이 로직 칩, 게이트 어레이 칩, 프로그램가능 게이트 어레이 칩, 커스텀 IC 또는 이들 칩들의 일부 등으로 구현이 가능하다. 실제로 어떻게 구현하는가는 비용이나 만들어질 시스템의 크기, 원하는 성능 수준 등의 외부 요인들에 의해 판정된다. 위에서 나열한 다양한 칩들로 검출 프로세스를 구현할 수 있고, 그렇게 구현한 시스템들은 본 발명의 목적 하에서만 보면 모두 동일하다고 볼 수 있다.
도 10은 도 9의 검출기(900)로 구현된 프로세스(1000)의 흐름도이다. 프로세스(1000)는 도 8과 같은 트렐리스를 사용하여 입력 샘플 시퀀스 y에 따라 어떤 코드워드 b를 출력할 것인가를 검출한다. 이 프로세스는 샘플들의 단계(1002)에서 개시하며, 여기에서 샘플 시퀀스가 수신된다. 단계(1004)에서는 이전의 시간블럭 단위 k-1로부터의 상관관계 ck-1(s)이 입력된다. k=1일 때에는 임의의 초기 상태 s0에서의 상관관계가 0으로, 그리고 다른 상관관계들은 -∞로 세트된다. 단계(1006)에서는, 선택된 최하위 상태 t 각각에 대해 기본 상관 단위(correlation unit)가, 수신된 wordky와 최상위 상태에서 t로 가면서 얻은 모든 코드워드 간의 최대 상관관계 ck(t)를 계산한다. 이 단계에 내재된 프로세스는 도 7의 프로세스(700)와 유사하다. 최대의 상관관계 ck(t)를 내는 코드워드는 pk(t)로 표시된다. pk(t)가 생성된 최상위 상태는 sk(t)로 표시된다. 각 최하위 상태 t에 대해 구해진 상관관계 ck(t)들은 단계(1004)에서 피드백되어 다음 시간블럭 단위에서 다시 사용되고, pk(t)와 sk(t)는 단계(1008)에 공급된다. 단계(1008)에서는 각각의 최하위 상태 t에 대응하는 코드워드 pk(t) 각각에 대해 경로 메모리가 다시 트레이스하여, 시간슬롯(time slot) k에서 상태 t에 이르게 하는 시간블럭 단위 k-m+1에서의 대응하는 코드워드 wk-m+1(t)을 찾는다. 단계(1010)에서는 코드워드 wk-m+1(t)가 일치되는가가 판정된다. 모든 상태 t에 대해서 코드워드 wk-m+1(t)가 일치하면, 그 일치하는 코드워드가 출력이 된다. 그렇지 않으면, 출력은 t가 바이어스 조절된(bias-adjusted) 상관관계 ck(t)-e(t)μ를 최대로 할 때의 코드워드 wk-m+1(t)이다. 이 때 e(t)는 s0에서 t까지 횡단하는 모든 워드들 중 0보다 많은 1의 갯수(e(t)=i(t)-i(s0))이고, μ는 샘플 시퀀스 내의 샘플들의 예측된 평균 강도(estimated mean intensity)이다. 도 8a의 트렐리스(800)의 8:10 코드에서는 경로 메모리 길이 m이 2로 선택된다.
도 11은 본 발명의 또다른 실시예에 따른 8:12의 비를 갖는 밸런스드 유한상태 코드의 트렐리스(1100)이다. 트렐리스(1100)는 네 개의 최상위 레벨 상태인 상태 a (1101), 상태 b (1102), 상태 c(1103)와 상태 d(1104)를 가진다. 이와 마찬가지로 트렐리스(1100)는 네 개의 최하위 레벨 상태인 상태 a(1101), 상태 b(1102), 상태 c(1103)과 상태 d(1104)라는, 최상위 레벨 상태와 같은 상태들을 가진다. 트렐리스(1100)의 각 전이는 64개의 길이 12인 밸런스드 워드의 세트를 나타낸다. 전이에 할당된 그와 같은 세트는 표 1에 보는 바와 같이 8개가 있다.
최상위 상태 | 최하위 상태 | |||
a | b | c | d | |
a | S1 | S2 | S3 | S4 |
b | S5 | S6 | S7 | S8 |
c | S2 | S1 | S4 | S3 |
d | S6 | S5 | S8 | S7 |
i=1...8일 때 각 세트 Si는 길이 12의 b0b1b2...b11을 갖는 64개의 밸런스드 2진 워드로 된 임의의 세트이어서 b1+2b2+3b3...+11b11- i 는 12의 배수이다.
이 코드는 최소거리가 4이고, 노이즈가 있을 경우의 검출 능력을 증진시킨다. 경로 메모리 m은 3으로 선택된다. 이 코드는 밸런스드이므로 각 e(t)=0이고, 따라서 예측된 평균 강도 μ를 구할 필요가 없다.
기술한 모든 코드의 경우 복호화기는 부호화기를 뒤집은, 코드워드로부터 데이타워드로의 맵핑이다. 그러나, 복호화된 데이타워드는 앞으로의 다수의 코드워드뿐 아니라, 현재의 코드워드의 함수가 될 수 있다.
본 명세서에는 본 발명의 일부 실시예와 연관하여 기술하였지만, 이하에 첨부된 청구항에 따른 발명의 정신과 범위를 벗어나지 않는 다른 수정이 가능하다. 따라서, 본 발명은 설명된 특정의 실시예에 한정되지 않으며, 첨부된 특허 청구 범위에 의해서만 제한됨에 유의하여야 한다.
본 발명에 따르면, 아날로그 신호의 세기를 나타내는 샘플들의 시퀀스들의 열로 구성된 데이타 스트림에서 코드워드를 검출하는 장치와 방법이 제공된다. 데이타 스트림은 트렐리스(trellis)로 나타낼 수 있는 코드를 사용하여 부호화된다. 본 발명의 한 실시예는 블럭 부호화된 밸런스드 코드를 사용하고, 또다른 실시예는 유한 상태 부호화된 밸런스드 코드를 사용한다. 그리고 또다른 실시예는 유한상태 부호화된 DC프리 코드를 사용한다. 각 코드는 해당 코드의 제약조건을 충족시키는 코드워드의 세트를 정의한다. 샘플의 시퀀스와 가장 상관이 높은 코드워드를 선택함으로써 샘플의 시퀀스에서 코드워드가 검출된다. 특히, 0과 1에 대응하는 이상적인 세기 값을 알아야 할 필요가 없다. 바람직한 실시예에서는 상관관계 검출을 비터비 프로세스를 사용하여 구현하며, 각 상태에 대한 상관관계와 코드워드를 트렐리스의 각 레벨에서 연속적으로 판정하는데, 이 때 트렐리스의 이전 레벨의 상관관계에 근거하여 판정한다.
또한, 본 발명에 따르면, 밸런스드 코드나 DC프리 코드를 사용하므로 임계값 검출이 필요없다. 비터비 프로세스를 사용하여 코드워드를 연속적으로 검출하는 것이 이전의 밸런스드 코드나 DC프리 코드 검출 방법 보다 훨씬 효율적이다.
Claims (32)
- 아날로그 신호의 강도를 나타내는 일련의 샘플들의 시퀀스를 포함하는 데이타 스트림에서 코드워드를 검출하는 방법에 있어서,상기 코드워드는 한정된 불균형을 갖는 코드워드 세트에 속하며, 상기 방법은,① 샘플들의 시퀀스를 수신하는 단계와,② 샘플들의 시퀀스와 가장 큰 상관관계를 갖는 코드워드를 선택하는 단계를 포함하는 방법.
- 제 1 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 방법.
- 제 1 항에 있어서,상기 코드워드는 상태와 레벨들을 갖는 트렐리스로 표현되는 코드에 속하고 상기 선택 단계는,상기 트렐리스의 이전 레벨에서의 상관관계에 기초하여, 트렐리스의 각 레벨에서 각 상태에 대해 상관관계와 코드워드를 반복적으로 판정하는 단계를 포함하는 코드워드 검출 방법.
- 제 3 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 방법.
- 제 1 항에 있어서,상기 코드는 블럭 부호화된 밸런스드 코드(block encoded balanced code)인 코드워드 검출 방법.
- 제 1 항에 있어서,상기 코드는 블럭 부호화된 DC프리 코드(block encoded DC free code)인 코드워드 검출 방법.
- 제 1 항에 있어서,상기 코드는 유한상태 부호화된 밸런스드 코드(finite-state encoded balanced code)인 코드워드 검출 방법.
- 제 1 항에 있어서,상기 코드는 유한 상태 부호화된 DC프리 코드(finite-state encoded DC free code)인 코드워드 검출 방법.
- 아날로그 신호의 강도를 나타내는 일련의 샘플들의 시퀀스로 구성된 테이타 스트림에서 코드워드를 검출하는 방법에 있어서,상기 코드워드는 트렐리스에 의해 표현된 블럭 부호화된 코드를 포함하는 코드워드의 세트중 하나이며, 상기 트렐리스는 최상위 상태, 최하위 상태 및 다수의 중간 상태를 가지고, 각 상태는 코드워드의 프리픽스와 연관되어 있으며, 각 상태는 상기 프리픽스의 길이와 연관된 레벨에 속하며, 상기 최상위 상태는 적어도 하나의 중간 상태에 이르는 전이를 가지며, 상기 최하위 상태는 적어도 하나의 중간 상태로부터의 전이를 가지며, 상기 중간 상태는 적어도 하나의 다른 상태로부터 적어도 하나의 다른 상태로 전이하며, 상기 방법은,A) 샘플들의 시퀀스를 입력받는 단계,B) 초기 현재 레벨을 선택하는 단계,C) 현재 레벨의 모든 상태들 중의 한 상태를 선택하는 단계―상기 상태는 상기 상태로 이르는 각 상태와 연관된 프리픽스의 최대의 상관관계를 가짐―와,D) 현재 레벨에 더 이상의 상태가 없고 더 처리해야 할 레벨이 남아있다면, 현재 레벨을 증분시키고 단계 C-D를 반복하는 단계와,E) 더 이상 남아있는 레벨이 없다면, 검출된 코드워드를 출력하는 단계를 포함하는 방법.
- 제 9 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 방법.
- 제 9 항에 있어서,상기 코드는 밸런스드 코드인 코드워드 검출 방법.
- 제 9 항에 있어서,상기 코드는 DC프리 코드인 코드워드 검출 방법.
- 제 9 항에 있어서,상기 상태를 선택하는 단계는,A) 현재의 레벨에서 초기 현재 상태를 선택하는 단계,B) 현재 상태로 이르는 각 상태에 대하여, 현재 상태로 이르는 각 상태와 연관된 프리픽스와 샘플들의 시퀀스 간의 상관관계를 구하는 단계,C) 생성된 상관관계들 중 최대의 상관관계를 구하는 단계,D) 현재 레벨에서 더 처리해야 할 상태가 남아있다면, 현재 레벨에서 또다른 상태를 선택하여 현재 상태로 하고 단계 B-D를 반복하는 단계를 포함하는 코드워드 검출 방법.
- 제 13 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 방법.
- 아날로그 신호의 강도를 나타내는 샘플들의 시퀀스를 포함하는 데이타 스트림으로부터 코드워드를 검출하는 방법에 있어서,상기 코드워드는 트렐리스에 의해 표현된 유한상태 부호화된 코드를 포함하는 코드워드의 세트중 하나이며, 상기 코드는 경로 메모리 길이를 가지고, 상기 트렐리스는 다수의 최상위 상태, 다수의 최하위 상태, 다수의 중간 상태를 가지고, 상기 각 상태는 코드워드의 프리픽스와 연관되며, 각 상태는 상기 프리픽스의 길이와 연관된 레벨에 속하며, 각각의 최상위 상태는 적어도 하나의 중간 상태에 이르는 전이를 가지며, 각각의 최하위 상태는 적어도 하나의 중간 상태로부터의 전이를 가지며, 각 중간 상태는 적어도 하나의 다른 상태로부터의 전이 및 적어도 하나의 다른 상태로의 전이를 가지며, 상기 방법은,A) 샘플들의 시퀀스를 입력받는 단계,B) 각각의 최하위 상태에 대해서, 샘플들의 시퀀스와 최대의 상관관계를 갖는 다수의 코드워드를 생성하는 단계,C) 각각의 최상위 상태와 연관된 코드워드에 대한 경로 메모리를 다시 추적하고 코드워드들이 일치하는가를 판정하는 단계,D) 상기 코드워드들이 일치하면, 공통의 코드워드를 출력하는 단계,E) 상기 코드워드들이 일치하지 않으면, 코드워드를 생성하여 출력하는 단계를 포함하는 코드워드 검출 방법.
- 제 15 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 방법.
- 제 15 항에 있어서,상기 코드는 밸런스드 코드인 코드워드 검출 방법.
- 제 15 항에 있어서,상기 코드는 DC프리 코드인 코드워드 검출 방법.
- 제 15 항에 있어서,상기 다수의 코드워드를 생성하는 단계는,A) 각각의 최상위 상태에 대해서 이전 반복으로부터 입력 상관관계를 받아들이는 단계,B) 각각의 최하위 상태와 모든 최상위 상태에 대해서, 샘플들의 시퀀스와 가장 상관관계가 높은 코드워드를 생성하는 단계를 포함하는 코드워드 검출 방법.
- 제 19 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치로부터 출력되는 코드워드 검출 방법.
- 아날로그 신호의 강도를 나타내는 일련의 샘플들의 시퀀스로 구성된 데이타 스트림에서 코드워드를 검출하는 장치에 있어서,① 트렐리스에 의해 표현된 블럭 부호화된 밸런스드 코드를 포함하는 코드워드의 세트에 대한 표현(representation)을 저장하는 코드워드 표 컨테이너와,② 상기 트렐리스의 표현을 포함하는 트렐리스 컨테이너―상기 트렐리스는 최상위 상태, 최하위 상태 및 다수의 중간 상태를 가지고, 각 상태는 코드워드의 프리픽스와 연관되어 있으며, 각 상태는 상기 프리픽스의 길이와 연관된 레벨에 속하며, 상기 최상위 상태는 적어도 하나의 중간 상태에 이르는 전이를 가지며, 각각의 최하위 상태는 적어도 하나의 중간 상태로부터의 전이를 가지며, 각각의 중간 상태는 적어도 하나의 다른 상태로부터의 전이와 적어도 하나의 다른 상태로의 전이를 가짐―와,③ 샘플들의 시퀀스를 수신하고, 샘플들의 시퀀스와 상관관계가 가장 높은 코드워드를 선택하는 처리 장치를 포함하는 코드워드 검출 장치.
- 제 21 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치에서 출력되는 코드워드 검출 장치.
- 제 21 항에 있어서,상기 처리 장치는 이전 레벨에서의 상관관계에 기초하여, 상기 트렐리스의 각 레벨에서 상기 트렐리스의 각 상태에 대한 상관관계와 코드워드를 반복적으로 판정함으로써 코드워드를 선택하는 장치.
- 제 23 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치로부터 출력되는 코드워드 검출 장치.
- 제 21 항에 있어서,상기 코드는 블럭 부호화된 밸런스드 코드인 코드워드 검출 장치.
- 제 21 항에 있어서,상기 코드는 블럭 부호화된 DC프리 코드인 코드워드 검출 장치.
- 트렐리스에 의해 표현되는 유한상태 부호화된 코드를 포함하는 테이타 스트림으로부터 코드워드를 검출하는 장치에 있어서,상기 코드는 경로 메모리 길이를 갖고, 상기 트렐리스는 다수의 최상위 상태, 다수의 최하위 상태, 다수의 중간 상태를 가지고, 상기 각 상태는 코드워드의 프리픽스와 연관되며, 각 상태는 상기 프리픽스의 길이와 연관된 레벨에 속하며, 각각의 최상위 상태는 적어도 하나의 중간 상태에 이르는 전이를 가지며, 각각의 최하위 상태는 적어도 하나의 중간 상태로부터의 전이를 가지며, 각 중간 상태는 적어도 하나의 다른 상태로부터의 전이 및 적어도 하나의 다른 상태로의 전이를 가지며, 상기 장치는,① 상기 트렐리스에 대한 표현을 담고있는 트렐리스 컨테이너,② 상기 코드의 허가된 코드워드에 대한 표현을 담고있는 코드워드 컨테이너,③ 상기 트렐리스 컨테이너와 상기 코드워드 컨테이너에 접속된 처리 회로,④ 상기 처리 회로에 접속된 검출 프로세스 제어 장치와 경로 메모리 처리 제어 장치로서, 이들 제어 장치는A) 샘플들의 시퀀스를 입력받는 단계,B) 각각의 최하위 상태에 대해서, 샘플들의 시퀀스와 최대의 상관관계를 갖는 다수의 코드워드를 생성하는 단계,C) 각각의 최상위 상태와 연관된 코드워드를 다시 추적하고 코드워드들이 일치하는가를 판정하는 단계,D) 상기 코드워드들이 일치하면, 공통의 코드워드를 출력하는 단계,E) 상기 코드워드들이 일치하지 않으면, 코드워드를 생성하여 출력하는 단계들을 수행하도록 처리 회로를 통제하는 코드워드 검출 장치.
- 제 27 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치로부터 출력되는 코드워드 검출 장치.
- 제 27 항에 있어서,상기 코드는 유한상태 부호화된 밸런스드 코드인 코드워드 검출 장치.
- 제 27 항에 있어서,상기 코드는 유한상태 부호화된 DC프리 코드인 코드워드 검출 장치.
- 제 27 항에 있어서,상기 다수의 코드워드를 생성하는 단계는,A) 각각의 최상위 상태에 대해서 이전 반복으로부터 입력 상관관계를 받아들이는 단계,B) 각각의 최하위 상태와 모든 최상위 상태에 대해서, 샘플들의 시퀀스와 가장 상관관계가 높은 코드워드를 생성하는 단계를 포함하는 코드워드 검출 장치.
- 제 31 항에 있어서,상기 데이타 스트림은 홀로그래픽 저장 장치로부터 출력되는 코드워드 검출 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/733,409 | 1996-10-18 | ||
US08/733,409 US6016330A (en) | 1996-10-18 | 1996-10-18 | Encoding and detection of balanced codes |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980032286A true KR19980032286A (ko) | 1998-07-25 |
KR100288665B1 KR100288665B1 (ko) | 2001-05-02 |
Family
ID=24947477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970038796A KR100288665B1 (ko) | 1996-10-18 | 1997-08-14 | 밸런스드코드의부호화와검출 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6016330A (ko) |
KR (1) | KR100288665B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100676871B1 (ko) * | 2005-12-22 | 2007-02-02 | 주식회사 대우일렉트로닉스 | 광정보 검출장치, 이를 이용한 광정보 검출방법 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212664B1 (en) * | 1998-04-15 | 2001-04-03 | Texas Instruments Incorporated | Method and system for estimating an input data sequence based on an output data sequence and hard disk drive incorporating same |
US6426978B1 (en) * | 1998-10-01 | 2002-07-30 | Ericsson Inc. | Digital communication systems and methods for differential and/or amplitude encoding and decoding secondary symbols |
US6430713B1 (en) * | 1999-06-30 | 2002-08-06 | International Business Machines Corporation | System and method for constructing low complexity block coders |
US6735188B1 (en) * | 1999-08-27 | 2004-05-11 | Tachyon, Inc. | Channel encoding and decoding method and apparatus |
US7017104B1 (en) * | 2001-08-24 | 2006-03-21 | Mediatek Inc. | Method and system for decoding block codes by calculating a path metric according to a decision feedback sequence estimation algorithm |
US7245686B2 (en) * | 2001-12-17 | 2007-07-17 | Mysticom Ltd. | Fast skew detector |
US7257169B2 (en) * | 2001-12-17 | 2007-08-14 | Mysticom Ltd. | Deserializer |
US7443781B2 (en) | 2004-07-29 | 2008-10-28 | Hewlett-Packard Development Company, L.P. | Reducing variations in density of perturbations on a storage medium |
US20060156171A1 (en) * | 2004-12-15 | 2006-07-13 | Seagate Technology Llc | Combining spectral shaping with turbo coding in a channel coding system |
US7064683B1 (en) | 2005-01-19 | 2006-06-20 | Seagate Technology Llc | Speed optimized encoder with running disparity constraint |
KR100728818B1 (ko) * | 2006-03-03 | 2007-06-19 | 주식회사 대우일렉트로닉스 | 광 정보 검출 방법, 광 정보 검출기 및 데이터 샘플링 방법 |
US7542974B2 (en) | 2006-09-15 | 2009-06-02 | International Business Machines Corporation | Apparatus and method to store, retrieve, and search both analog and digital data |
KR20080070454A (ko) * | 2007-01-26 | 2008-07-30 | 삼성전자주식회사 | 홀로그래픽 저장매체에 데이터를 기록/재생하는 방법 및 그장치 |
US20090021814A1 (en) * | 2007-07-18 | 2009-01-22 | Mediatek Inc. | Hologram apparatus and method thereof |
CN101359973B (zh) * | 2007-08-01 | 2011-09-21 | 建兴电子科技股份有限公司 | 平衡码与固定权重码的编码方法与编码器 |
JP4961386B2 (ja) * | 2008-05-20 | 2012-06-27 | 株式会社日立製作所 | 光情報記録装置、光情報記録方法、光情報記録再生装置および光情報記録再生方法 |
US20240106568A1 (en) * | 2022-09-15 | 2024-03-28 | Qualcomm Incorporated | Balanced coding scheme |
Family Cites Families (10)
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 |
US4837843A (en) * | 1987-06-19 | 1989-06-06 | Hughes Aircraft Company | Hybrid optical and electronic associative memory |
US4869574A (en) * | 1988-05-13 | 1989-09-26 | The United States Of America As Represented By The Secretary Of The Army | Hybrid optical correlator |
US4932741A (en) * | 1988-07-20 | 1990-06-12 | Grumman Aerospace Corporation | Optical correlator system |
KR930006750B1 (ko) * | 1989-06-29 | 1993-07-23 | 삼성전자 주식회사 | 화상데이터 부호화장치 |
US5095194A (en) * | 1989-10-12 | 1992-03-10 | Joseph Barbanell | Holographic credit card with automatical authentication and verification |
GB2238639B (en) * | 1989-11-28 | 1993-12-22 | Stc Plc | Data base searching |
US5257272A (en) * | 1992-04-15 | 1993-10-26 | International Business Machines Corporation | Time-varying modulo N trellis codes for input restricted partial response channels |
US5280489A (en) * | 1992-04-15 | 1994-01-18 | International Business Machines Corporation | Time-varying Viterbi detector for control of error event length |
US5740184A (en) * | 1996-04-01 | 1998-04-14 | The Board Of Trustees Of The Leland Stanford Junior University | Decision feedback viterbi detector for page-access optical memories |
-
1996
- 1996-10-18 US US08/733,409 patent/US6016330A/en not_active Expired - Lifetime
-
1997
- 1997-08-14 KR KR1019970038796A patent/KR100288665B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100676871B1 (ko) * | 2005-12-22 | 2007-02-02 | 주식회사 대우일렉트로닉스 | 광정보 검출장치, 이를 이용한 광정보 검출방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100288665B1 (ko) | 2001-05-02 |
US6016330A (en) | 2000-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100288665B1 (ko) | 밸런스드코드의부호화와검출 | |
US5475388A (en) | Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding | |
US4677421A (en) | Digital information signal encoding method with reduced run length and improved self-clocking | |
KR0165441B1 (ko) | 디지털 데이터 채널 부호화 및 복호화방법과 그 장치 | |
KR100227094B1 (ko) | 큰 제약조건 길이를 갖는 소프트 결정 비터비 디코딩의 방법 및 회로 | |
US6725418B2 (en) | Decoding circuit using path sequence including feed-back type path sequence storing blocks | |
US20030189502A1 (en) | Modulation system | |
KR100778885B1 (ko) | 이진 정보신호의 데이터 비트의 스트림을 제약을 받는 이진 채널신호의 데이터 비트의 스트림으로 변환하는 방법, 인코딩 장치, 기록매체와, 디코딩장치 | |
US6888479B2 (en) | Data processing method, circuit, and apparatus with increased accuracy | |
KR20010041154A (ko) | 엔-비트 소스어를 대응하는 엠-비트 채널어로 인코딩하고, 엠-비트 채널어를 대응하는 엔-비트 소스어로 디코딩하는 장치 | |
RU2002113295A (ru) | Высокоскоростной модуль сложения /сравнения/ выбора для декодера витерби | |
US6486804B2 (en) | Method of converting a stream of databits of a binary information signal into a stream of databits of a constrained binary channel signal, device for encoding, signal comprising a stream of databits of a constrained binary channel signal, record carrier, method for decoding, device for decoding | |
KR930003259B1 (ko) | 광기록과 광판독을 위한 코드변환장치와 복호장치 | |
US7426681B2 (en) | Viterbi detector | |
JP2811651B2 (ja) | 符号化/復号する方法と装置 | |
US4968985A (en) | Data demodulation system | |
US5960041A (en) | Method and apparatus for generating high rate codes for recording information on a magnetic medium | |
US6480983B2 (en) | Code state determining method and encoding apparatus | |
US5126991A (en) | Track addressing method and apparatus | |
EP0903864B1 (en) | Demodulating device and demodulating method | |
KR100518474B1 (ko) | 변조디바이스및방법과전송매체 | |
JPH08256182A (ja) | 部分応答チャンネルのためのマッチングしたスペクトルゼロコード | |
EP0772303A2 (en) | Viterbi detector with path-memory of reduced size | |
KR100945183B1 (ko) | 정보어의 신호로의 변환 시스템 | |
JPH02119434A (ja) | 符合化回路及び復合化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |