위에서 언급한 기본 개념은 메시지 인코딩에 대한 Shannon의 정리입니다. 일반형의 근원에 대한 섀넌의 직접정리

평균 숫자의 달성된 친밀도 케이메시지의 문자당 이진 문자 시간더 긴 블록과 더 긴 블록을 코딩하는 방식으로 이동하여 원하는 대로 더 늘릴 수 있습니다. 이는 기본 인코딩 정리라고 불리는 다음의 일반적인 설명에서 따릅니다.

정리:다음과 같이 나누어진 메시지를 인코딩할 때 N-문자 블록을 선택할 수 있습니다 N평균 숫자를 보장할 수 있을 만큼 충분히 큽니다. 케이원본 메시지의 문자당 기본 이진 신호는 임의로 가깝습니다. 시간. 참고: 님이 보낸 메시지가 매우 깁니다. 문자를 인코딩할 수 있습니다

임의로 가까운 숫자를 사용 M.H.(그러나 더 큰) 수의 기본 신호(이 메시지만 먼저 충분히 긴 블록으로 분할된 경우) N문자를 입력하고 개별 코드를 전체 블록과 한 번에 비교할 수 있습니다. 블록 인코딩 방법은 매우 다를 수 있습니다(예: Shannon-Fano, Huffman 방법을 사용할 수 있음)

m진 코드

이전 단락의 내용을 사례로 쉽게 전달할 수 있습니다. -ary 코드를 사용하여 기본 신호. 예를 들어, 빌드하려면 -ary Shannon-Fano 코드, 기호 그룹을 2개가 아닌 2개로 분할하면 됩니다. 부품은 전체 확률에 최대한 가깝게 구성하고 구성합니다. -ary 허프만 코드, 두 개가 병합될 때마다 알파벳 압축 연산을 사용해야 하지만, 확률이 가장 낮은 원래 알파벳의 문자입니다.

허프만 코드의 중요성으로 인해 이 문제에 대해 더 자세히 설명하겠습니다. 알파벳 압축, 글자가 1개로 대체되면 글자 수가 감소합니다. m - 1.그래서 건축에 관해서는 - 압축 순서에 따라 알파벳으로 연결되도록 ary 코드가 분명히 필요합니다. 문자(일치 코드 신호), 숫자가 필요합니다 N원래 알파벳의 문자는 다음과 같은 형식으로 표현될 수 있습니다. N=+에스(m - 1), 여기서 에스-정수 압축 횟수.

이는 필요한 경우 원래 알파벳에 확률이 0으로 간주되는 몇 가지 "가상 문자"를 추가하여 항상 달성할 수 있습니다. -ary 허프만 코드는 바이너리 코드의 경우와 똑같은 방식으로 생성됩니다.

예:확률이 0인 6자리 알파벳의 경우 : 4; 0: 2; 0: 2; 0: 1; 0: 05; 0: 05.건축용 세 개 한 벌허프만 코드를 사용하려면 알파벳에 확률이 0인 또 다른 가상 문자를 추가하고 표에 표시된 대로 진행해야 합니다.

문자 번호 확률과 코드
원래 알파벳 압축된 알파벳 1 압축된 알파벳 2
0: 4 - 0 0: 4 - 0 0: 4 - 0
0: 2 - 2 0: 2 - 2 0: 4 - 1
0: 2 - 10 0: 2 - 10 0: 2 - 2
0: 1 - 11 0: 2 - 11
0: 05 - 120
0: 05 - 121
0 - ---
정리: 모두 N숫자 케이 1 ; 케이 2 ; : : : ; 케이엔, 부등식을 만족시키다 + + : : : +
케이 케이
6 1 ():
케이엔숫자는 일부 메시지 길이입니다. -ichnogo
mkn

코드 매칭 N알파벳 글자 N기본 신호 수신 시퀀스 가능한 값.

이 진술( )는 1949년 미국 과학자 L. Craft에 의해 처음 입증되었고 나중에 B. Macmillan에 의해 일반화되었으므로 불평등( )는 종종 Kraft-MacMillan 불평등이라고 불립니다. 부등식을 사용하여 ( ) 다음과 같은 결과를 얻을 수 있습니다.

정리:주요 코딩 정리 -ary 코드를 사용하는 모든 코딩 방법의 경우 -최소 코드 평균 수 케이메시지 문자당 기본 신호는 비율 로그보다 작을 수 없습니다. , 어디 시간- 하나의 메시지 편지의 엔트로피. 그러나 충분히 긴 블록을 인코딩하면 항상 이 값에 임의로 가깝게 만들 수 있습니다. N편지

결과:통신회선이 단위시간 내에 전송이 가능한 경우 기본 신호 수신 값이 다르면 속도가 달라집니다. 메시지 전송에 의해

속도에 최대한 가깝게 V(하지만 덜 V) 가능합니다. 크기 =통나무 분모는 통신선 자체의 특성에만 의존합니다. 시간전송된 메시지의 특징을 나타냅니다. 크기 단위 시간당 통신 회선을 통해 전송할 수 있는 정보 단위의 최대 수를 나타냅니다. 이를 링크 용량이라고 합니다.

작품이 사이트 홈페이지에 추가되었습니다: 2016-03-30

;color:#000000" xml:lang="ko-KO" lang="ko-KO">5. 정보 코딩

;color:#000000" xml:lang="ko-KO" lang="ko-KO">5.1. 기본 개념

메시지 인코딩에 대한 Shannon의 정리는 위에서 언급되었습니다. 인코딩은 정보를 후속 처리(통신 채널을 통한 전송, 컴퓨터 시스템 메모리에 저장, 의사 결정에 사용 등)에 필요한 형식으로 변환하는 작업이라는 것이 직관적으로 분명합니다. 또한 정보 시스템을 구축할 때 코딩 없이는 불가능하다는 것도 분명합니다. 정보의 표현은 일종의 코드 사용을 의미합니다. 따라서 다음에는 정보코딩의 이론적 기초를 자세히 분석해 보겠습니다.

하자 A 어떤 알파벳이든. 알파벳 요소문자(또는 기호)라고 하며, 문자로 구성된 유한 시퀀스를 단어라고 합니다.. 모든 알파벳에는 글자가 포함되지 않은 빈 단어가 있다고 믿어집니다.

워드 α 1 단어의 시작(접두사)이라고 합니다.α , 해당 단어가 존재하는 경우α = α 1 α 2 가 되는 α 2 ; 이 경우 단어 α 1 단어의 적절한 시작이라고 함α인 경우 α 2 빈 말이 아니다. 단어 길이는 단어의 문자 수입니다(빈 단어의 길이는 0입니다). 기록α 1 α 2 단어의 연결(연결)을 나타냅니다.α 1 및 α 2. 워드 α 2 단어의 어미(접미사)라고 합니다.α , 해당 단어가 존재하는 경우α 1(α = α 1 α 2); 이 경우 단어 α 2 단어의 적절한 어미라고 함α인 경우 α 1 빈 말이 아니다. 빈 단어는 정의에 따라 모든 단어의 시작과 끝으로 간주됩니다.α .

알파벳을 고려해보세요 B = (0, 1, …, D 1), 여기서 D ≥ 2 및 임의 세트. 세트의 임의 표시알파벳의 여러 단어로 B는 D라고 불린다 -ary 세트 인코딩 C(D에서 = 2 인코딩은 바이너리가 됩니다). 역 매핑을 디코딩이라고 합니다. 인코딩의 예를 들어보겠습니다.

1. 숫자가 다음과 같은 자연수 집합을 코딩합니다. N = 0은 단어와 일치합니다. e(0) = 0, 숫자 n ≥ 1개의 이진 단어

e (n) = b 1 b 2 … b l (n)

조건을 만족하는 가장 짧은 길이

b 1 = 1, 2 l (n) 1 ≤ n임이 분명합니다.< 2 l (n ) 따라서

l(n) = + 1 = ]log(n + 1)[,

여기서 [ x ] 및 ] x [는 각각 다음을 초과하지 않는 가장 큰 정수를 나타냅니다.엑스 , 그리고 다음보다 큰 가장 작은 정수엑스. 단어 e(n )을 숫자의 이진 표기법이라고 합니다. N , 이 코딩은 이진수 시스템의 숫자를 표현한 것입니다. 이 인코딩은 일대일이기 때문에 n 1 ≠ n 2 단어 e(n 1 ) 및 e(n 2 ) 다르다. 표 5.1은 이진수 체계의 처음 16개 자연수의 표현을 보여줍니다.

" xml:lang="ko-KO" lang="ko-KO">표 5.1

" xml:lang="ko-KO" lang="ko-KO"> 코딩" xml:lang="en-US" lang="en-US">e" xml:lang="ko-KO" lang="ko-KO">(" xml:lang="en-US" lang="en-US">n" xml:lang="ko-KO" lang="ko-KO">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">0

" xml:lang="en-US" lang="en-US">0

" xml:lang="en-US" lang="en-US">4

" xml:lang="en-US" lang="en-US">100

" xml:lang="en-US" lang="en-US">8

" xml:lang="en-US" lang="en-US">1000

" xml:lang="en-US" lang="en-US">12

" xml:lang="en-US" lang="en-US">1100

" xml:lang="en-US" lang="en-US">1

" xml:lang="en-US" lang="en-US">1

" xml:lang="en-US" lang="en-US">5

" xml:lang="en-US" lang="en-US">101

" xml:lang="en-US" lang="en-US">9

" xml:lang="en-US" lang="en-US">1001

" xml:lang="en-US" lang="en-US">13

" xml:lang="en-US" lang="en-US">1101

" xml:lang="en-US" lang="en-US">2

" xml:lang="en-US" lang="en-US">10

" xml:lang="en-US" lang="en-US">6

" xml:lang="en-US" lang="en-US">110

" xml:lang="en-US" lang="en-US">10

" xml:lang="en-US" lang="en-US">1010

" xml:lang="en-US" lang="en-US">14

" xml:lang="en-US" lang="en-US">1110

" xml:lang="en-US" lang="en-US">3

" xml:lang="en-US" lang="en-US">11

" xml:lang="en-US" lang="en-US">7

" xml:lang="en-US" lang="en-US">111

" xml:lang="en-US" lang="en-US">11

" xml:lang="en-US" lang="en-US">1011

" xml:lang="en-US" lang="en-US">15

" xml:lang="en-US" lang="en-US">1111

2. 처음 2개를 인코딩케이 각 숫자에 대해 자연수 n(0 ≤ n< 2 k )는 단어와 일치합니다

e k (n) = 0 k l (n) e (n),

여기서 항목은 0 k l (n)입니다. 으로 구성된 단어를 의미합니다. k l (n) 0, e (n ) 숫자 표현 N 위에서 논의한 이진수 시스템에서. 이 인코딩은 처음 16개의 자연수(케이 = 4)는 표 5.2에 나와 있습니다.

" xml:lang="ko-KO" lang="ko-KO">표 5." xml:lang="en-US" lang="en-US">2

" xml:lang="ko-KO" lang="ko-KO"> 코딩" xml:lang="en-US" lang="en-US">e;vertical-align:sub" xml:lang="en-US" lang="en-US">k" xml:lang="ko-KO" lang="ko-KO">(" xml:lang="en-US" lang="en-US">n" xml:lang="ko-KO" lang="ko-KO">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e;vertical-align:sub" xml:lang="en-US" lang="en-US">k" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e;vertical-align:sub" xml:lang="en-US" lang="en-US">k" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e;vertical-align:sub" xml:lang="en-US" lang="en-US">k" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">n

" xml:lang="en-US" lang="en-US">e;vertical-align:sub" xml:lang="en-US" lang="en-US">k" xml:lang="en-US" lang="en-US">(" xml:lang="en-US" lang="en-US">n" xml:lang="en-US" lang="en-US">)

" xml:lang="en-US" lang="en-US">0

" xml:lang="en-US" lang="en-US">0000

" xml:lang="en-US" lang="en-US">4

" xml:lang="en-US" lang="en-US">0100

" xml:lang="en-US" lang="en-US">8

" xml:lang="en-US" lang="en-US">1000

" xml:lang="en-US" lang="en-US">12

" xml:lang="en-US" lang="en-US">1100

" xml:lang="en-US" lang="en-US">1

" xml:lang="en-US" lang="en-US">0001

" xml:lang="en-US" lang="en-US">5

" xml:lang="en-US" lang="en-US">0101

" xml:lang="en-US" lang="en-US">9

" xml:lang="en-US" lang="en-US">1001

" xml:lang="en-US" lang="en-US">13

" xml:lang="en-US" lang="en-US">1101

" xml:lang="en-US" lang="en-US">2

" xml:lang="en-US" lang="en-US">0010

" xml:lang="en-US" lang="en-US">6

" xml:lang="en-US" lang="en-US">0110

" xml:lang="en-US" lang="en-US">10

" xml:lang="en-US" lang="en-US">1010

" xml:lang="en-US" lang="en-US">14

" xml:lang="en-US" lang="en-US">1110

" xml:lang="en-US" lang="en-US">3

" xml:lang="en-US" lang="en-US">0011

" xml:lang="en-US" lang="en-US">7

" xml:lang="en-US" lang="en-US">0111

" xml:lang="en-US" lang="en-US">11

" xml:lang="en-US" lang="en-US">1011

" xml:lang="en-US" lang="en-US">15

" xml:lang="en-US" lang="en-US">1111

A = ( a i , i 라고 하자 = 1, 2, ...) 유한하거나 셀 수 있는 알파벳으로, 문자는 자연수로 번호가 매겨집니다. 이 경우 알파벳 문자의 인코딩은순서대로 지정할 수 있음 D-ary 단어 V = (vi, i = 1, 2, …), 여기서 v i 편지 이미지가 있어요나는 . 이러한 단어 시퀀스(세트에서 V )를 코드(알파벳)라고 합니다.ㅏ ). 알파벳 A의 코드 V가 주어지면 , 각 단어가 포함된 단어 코딩나는 1 나는 2 … 나는 ik 단어와 일치합니다 v 나는 1 v 나는 2 … v ik , 문자별 코딩이라고 합니다.

알파벳 문자의 일대일 코딩에서 알파벳 단어의 문자별 코딩으로 이동할 때 일대일 문자의 속성이 유지되지 않을 수 있습니다. 예를 들어, 코딩이자형(엔 )는 이 속성을 유지하지 않지만 인코딩에케이(n ) 저장합니다. 일대일 속성은 분리 가능한 코드로 유지됩니다. 암호 V = ( v 나는 , 나는 = 1, 2, ...)은 다음 형식의 각 동등성에서 분리 가능하다고 합니다.

v 나는 1 v 나는 2 … v ik = v j 1 v j 2 … v jl

l = k 및 v i 1 = v j 1 , v i 2 = v j 2 , … , v ik = v jl이 됩니다. . 분리 가능한 코드는 고유하게 디코딩 가능한 코드라고도 합니다.

접두사 코드는 분리 가능한 코드 클래스에 속합니다. 암호 V = ( v 나는 , 나는 = 1, 2, ...) 단어가 없으면 접두어라고 합니다. vk 어떤 단어의 시작(접두사)도 아닙니다. v l , l ≠ k . 접두사 코드의 각 단어가 다른 코드 단어의 시작이 아닌 가장 작은 시작으로 대체되면 결과 코드도 접두사가 됩니다. 이 작업을 접두사 코드 잘림이라고 합니다.

임의 코드의 경우 V 다양한 단어로 구성된 코드 트리를 구축할 수 있습니다. 이것은 순환을 포함하지 않는 유향 그래프입니다. 정점은 다음과 같습니다.β 1 위쪽으로 연결됨β 2 가장자리가 반대 방향으로 향함β 1 에서 β 2 , 만약에 그리고 만약에β 2 = β 1 b, 여기서 b  B = (0, 1, …, D 1), D ≥ 2. 접두사 코드(및 해당 코드에만 해당)의 경우 코드워드 집합은 코드 트리의 터미널 정점(가장자리가 발생하지 않는 정점) 집합과 일치합니다.

5.2. 기본 코딩 정리

실제 적용에 유용한 코드의 속성은 기본 코딩 정리에 의해 결정됩니다.

정리 5.1. 크래프트 부등식.다음을 포함하는 고유하게 디코딩 가능한(분리 가능한) 코드가 존재하는 경우 N 집합의 코드 단어(0, 1, D 1) 길이 n 1, n 2, …, n N , 불평등이 유지되기 위해서는 필요하고 충분합니다.

증거. 접두사 코드에 대한 코드 트리가 있다고 가정해 보겠습니다. 코드 트리의 루트는 레벨 0을 형성하고, 루트와 연관된 정점은 레벨 1을 형성합니다. 당 가능한 정점 수케이 -우리가 표시하는 수준 Dk. 각 정점 k 레벨이 정확히 생성됩니다. n번째 레벨의 D n k 꼭지점.

n 1 ≤ n 2 ≤… ≤ n N = n .

분명히 길이의 코드워드는케이 정확히 금지하다 D n k 가능한 끝 정점(마지막 레벨의 정점). 그런 다음 접두사 코드의 모든 코드 워드는 끝 정점을 금지합니다. 끝 꼭지점의 총 개수는 다음과 같으므로 DN , 그러면 부등식은 참입니다

그로부터

따라서 Kraft의 부등식이 입증되었습니다.

정리 5.1의 증명 결과, 코드워드 길이를 갖는 고유하게 디코딩 가능한 코드인 접두부 코드가 적어도 적어도 존재한다는 결론을 얻었다. n 1, n 2, …, n N , Kraft의 부등식을 만족시킵니다. McMillan의 진술이라고 불리는 다음 정리는 이 파생을 모든 고유하게 디코딩 가능한 코드로 일반화합니다.

정리 5.2. 맥밀란의 부등식.고유하게 디코딩 가능한 모든 코드는 Kraft의 부등식을 충족합니다.

증거. 합을 거듭제곱해 봅시다엘:

. (5.1)

Ak 하자 다음을 포함하는 조합의 수전체 길이가 있는 코드워드케이 . 그러면 식 (6.1)은 다음과 같이 표현될 수 있다.

여기서 Lmax 다음을 포함하는 메시지의 최대 길이코드 단어. 코드가 고유하게 디코딩 가능한 경우 다음의 모든 시퀀스는전체 길이의 코드워드케이 다르다. 밖에 없기 때문에 DK 가능한 시퀀스 A k ≤ D k 그리고 나서

L 이후 이는 다음을 초과하지 않는 길이의 모든 가능한 시퀀스를 구성하는 데 사용되는 독립적인 코드워드의 수입니다. Lmax. 따라서 L ≤ L max 그리고. 그리고 이것으로부터 다음과 같은 결론이 나옵니다.

위의 추론은 접두사 코드뿐만 아니라 고유하게 디코딩 가능한 모든 코드에 유효하므로 McMillan의 진술이 입증되었습니다.

다음 정리는 메시지 소스의 엔트로피와 코드워드의 평균 길이와 관련됩니다.

정리 5.3. 소스 코딩 정리나. 메모리가 없는 개별 소스의 경우엑스 유한한 알파벳과 엔트로피를 가진 H(X)가 존재함 D -평균 코드워드 길이가 부등식을 만족하는 ary 접두사 코드

. (5.2)

증거. 우선, 메모리가 없는 개별 소스가 메시지 기호 간의 연결을 고려하지 않는 모델로 설명된다는 점을 설명하겠습니다. 이제 우리는 불평등의 좌변(6.2)을 증명합니다:

이를 위해 엔트로피 정의와 Kraft 부등식을 사용합니다.

우변(6.2)을 증명하기 위해 Kraft의 부등식을 다음 형식으로 다시 작성합니다.

그런 다음 각 항에 대해 가장 작은 정수를 선택합니다. n 나는 , 어느 곳에서

Kraft의 부등식은 이 선택에서도 동일하게 유지되므로 해당 접두사 코드를 구성할 수 있습니다. 왜냐하면아니 나는 는 가장 작은 정수이고,아니 난 1 사실이야

그 다음에

따라서 소스 코딩 정리는나 입증되었습니다. 코드 단어의 평균 길이가 메시지 소스의 엔트로피보다 작을 수 없음을 결정합니다. 정리의 증명에서는 Kraft 부등식을 고려할 때와 동일한 표기법을 사용했습니다.

정리 5.4. 소스 코딩 정리 II. 길이가 L인 블록에는 D가 있습니다. - 문자당 코드워드의 평균 길이가 부등식을 만족하는 ary 접두사 코드

어디.

증거. 여기에는 문자 블록과 H(X 1, X 2, …, X L )는 블록당 메시지 소스의 엔트로피입니다.문자. 정리를 증명하기 위해 소스 코딩 정리를 사용할 수 있습니다.나:

소스 코딩 정리 II 충분히 긴 메시지에 대해 코드 워드의 평균 길이를 임의로 값에 가깝게 만들 수 있는 코딩 방법이 있음을 알 수 있습니다. 실제로 언제 L  , H L (X )  H , 여기서 H 문자당 메시지 소스의 엔트로피는 다음과 같습니다.

, (5.3)

어디. 이는 다음과 같이 해석될 수도 있습니다. 임의의 작은 숫자에 대해ε , 기호당 평균 코드워드 길이에 대해 부등식(5.3)이 유지되는 기호를 포함하는 블록을 인코딩하는 방법이 있습니다.

또한, 심볼당 코드워드의 달성 가능한 최소 길이가 값이므로,디 = 2 코드 중복성은 공식에 의해 결정될 수 있습니다.

;color:#000000" xml:lang="ko-KO" lang="ko-KO">5.3. 최적의 인코딩

최적의 코드를 구성하는 문제는 양의 정수를 찾는 것입니다. n 1, n 2, …, n N , Kraft 부등식에 따라 코드 단어의 평균 길이를 최소화합니다.

알파벳의 경우 코드를 구성할 때 A = ( a i , i = 1, 2, …, N ) 알려진 확률 분포 P = (파이, i = 1, 2, …, N ) 일반성을 잃지 않고 알파벳 문자가 다음과 같다고 가정할 수 있습니다.확률의 내림차순으로 번호가 매겨져 있습니다. p 1 ≥ p 2 ≥ … ≥ p N . 또한 바이너리 코드만 고려하겠습니다.

최적에 가까운 코드를 구성하는 방법에는 두 가지 알려진 방법(Fano 및 Shannon)이 있습니다. Fano의 방법은 다음과 같습니다. 확률의 내림차순으로 정렬된 문자 목록은 포함된 문자의 확률의 합이 최대한 차이가 나지 않도록 두 개의 연속된 부분으로 나뉩니다. 첫 번째 부분의 문자에는 기호 0이 할당되고 두 번째 부분의 문자에는 기호 1이 할당됩니다. 그런 다음 결과 부분에 최소 두 개의 문자가 포함되어 있으면 각 결과 부분에 대해 동일한 작업이 수행됩니다. 전체 목록이 각각 하나의 문자를 포함하는 부분으로 나누어질 때까지 프로세스가 계속됩니다. 각 문자는 이 프로세스의 결과로 해당 문자에 할당된 일련의 기호와 연관됩니다. 결과 코드가 접두사 코드임을 쉽게 알 수 있습니다.

Shannon의 방법은 모든 확률이 양수인 경우에만 적용 가능합니다. 그것은 편지로 구성되어 있습니다나는 , 이는 확률이피 나는 > 0, 시퀀스 n i = ] 로그(1/pi )[ 숫자를 무한 분수로 분해한 소수점 뒤의 첫 번째 숫자(예: a 1 우리는 q 1이라고 가정합니다. = 0). 언제부터엘 > 케이 (사실 때문에 p l ≤ p k ) n l ≥ n k 이런 식으로 얻은 코드는 접두사입니다. 획득된 접두사 코드를 기반으로 Shannon 방식으로 코딩한 결과인 잘린 접두사 코드가 생성된다.

예를 들어, 일련의 문자가 있다고 가정해 보겠습니다. A = (1, 2, 3, 4, 5, 6, 7 ) 확률 분포= (0.2, 0.2, 0.19, 0.12, 0.11, 0.09, 0.09). Fano 방식을 사용하여 문자를 인코딩해 보겠습니다.

1. 목록을 두 부분으로 나누어 목록에 포함된 문자의 확률 합계가 서로 최대한 다르지 않도록 합시다.

A1 = (a1, a2, a3), P1 = (0.2, 0.2, 0.19);

A 2 = (a 4, a 5, a 6, a 7), P 2 = (0.12, 0.11, 0.09, 0.09).

2. 첫 번째 부분의 문자에 기호 0을 할당하고 두 번째 부분의 문자에 기호 1을 할당하겠습니다.

A 1 = (a 1 /0, a 2 /0, a 3 /0) ;

A 2 = (4/1, 5/1, 6/1, 7/1).

3. 각 부분에 대해 개별적으로 표시된 단계를 순차적으로 반복해 보겠습니다. 안에결과적으로 우리는 다음을 얻습니다:

A 1 1 = ( a 1 /00);

A 121 = ( a 2 /010);

A 122 = (a 3 /011);

A 211 = (a 4 /100);

A 212 = (a 5 /101);

A 221 = (a 6 /110);

A 222 = (a 7 /111).

인코딩 결과 얻은 코드 단어는 슬래시 오른쪽의 각 문자에 대해 제공됩니다. 이 경우 결과 단일 문자 목록의 인덱스 순서는 원래 그룹 목록을 여러 부분으로 분할하는 순서를 보여줍니다.

Fano 방식을 이용한 코딩 과정을 표 형태로 편리하게 제시하였습니다. 고려중인 예는 표 5.3에 나와 있습니다.

" xml:lang="ko-KO" lang="ko-KO">표 5.3

" xml:lang="ko-KO" lang="ko-KO"> Fano 방식을 이용한 코딩

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">0.20

" xml:lang="ko-KO" lang="ko-KO">0

" xml:lang="ko-KO" lang="ko-KO"> 0

" xml:lang="ko-KO" lang="ko-KO"> 00

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">2

" xml:lang="ko-KO" lang="ko-KO">0.20

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">0

" xml:lang="ko-KO" lang="ko-KO">010

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">3

" xml:lang="ko-KO" lang="ko-KO">0.19

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">011

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">4

" xml:lang="ko-KO" lang="ko-KO">0.12

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">0

" xml:lang="ko-KO" lang="ko-KO">0

" xml:lang="ko-KO" lang="ko-KO">100

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">5

" xml:lang="ko-KO" lang="ko-KO">0.11

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">101

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">6

" xml:lang="ko-KO" lang="ko-KO">0.09

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">0

" xml:lang="ko-KO" lang="ko-KO">110

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">7

" xml:lang="ko-KO" lang="ko-KO">0.09

" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="ko-KO" lang="ko-KO">111

평균 코드워드 길이를 결정해 보겠습니다.

이제 Shannon의 방법을 사용하여 코딩을 해보겠습니다. 코딩 과정은 표 5.4에 나와 있습니다.

" xml:lang="ko-KO" lang="ko-KO">표 5.4

" xml:lang="ko-KO" lang="ko-KO"> Shannon 방법을 사용한 코딩

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="en-US" lang="en-US">i

" xml:lang="en-US" lang="en-US">n;vertical-align:sub" xml:lang="en-US" lang="en-US">i

" xml:lang="en-US" lang="en-US">q;vertical-align:sub" xml:lang="en-US" lang="en-US">i

" xml:lang="ko-KO" lang="ko-KO">코드" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="en-US" lang="en-US">i

" xml:lang="ko-KO" lang="ko-KO">잘린 코드" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="en-US" lang="en-US">i

" xml:lang="en-US" lang="en-US">a;vertical-align:sub" xml:lang="ko-KO" lang="ko-KO">1

" xml:lang="en-US" lang="en-US">]2.321…[ = 3

" xml:lang="en-US" lang="en-US">0

000

000

a2

]2.321…[ = 3

0.2

001

001

a3

]2.395…[ = 3

0.4

011

01

a4

]3.058…[ = 4

0.59

1001

100

a5

]3.183…[ = 4

0.71

1011

101

a6

]3.472…[ = 4

0.82

1101

110

a7

]3.472…[ = 4

0.91

1110

111

이전 사례와 마찬가지로 코드워드의 평균 길이를 찾습니다.

.

보시다시피, 평균 코드 길이를 최소화하는 측면에서 Fano와 Shannon 방법을 사용한 코딩 결과는 거의 일치했습니다. 따라서 이러한 방법은 종종 하나의 방법(Fano의 공식화)으로 간주되며 Shannon-Fano 방법이라고 합니다.

1952년 David Huffman은 Shannon 및 Fano 방법과 달리 실제로 여전히 사용되는 이산 소스에 대한 최적의 접두어 코딩 방법을 제안했습니다. D. Huffman은 자신의 방법을 사용하여 얻은 코드 워드의 평균 길이가 최소화됨을 증명했습니다. 허프만 코딩은 세 단계로 이루어집니다.

1. 순서: 확률이 높은 순서대로 글자를 배열합니다.

2. 감소: 확률이 가장 낮은 두 글자를 하나로 합쳐서 전체 확률로 만듭니다. 문자 목록은 1단계에 따라 재정렬됩니다. 모든 문자가 하나로 결합될 때까지 이 과정은 계속됩니다. 이 경우 다음 전략을 사용하여 코드 단어 길이를 균등화하는 것이 가능합니다. 여러 문자가 동일한 확률을 갖는 경우 이전에 가장 적은 수의 조합을 가졌던 두 문자를 결합합니다(이는 결과에 영향을 미치지 않지만). 평균 코드 길이).

3. 코딩: 마지막 조합부터 시작하여 복합 문자의 한 구성 요소에 기호 0을 순차적으로 할당하고 두 번째 구성 요소에 기호 1을 할당합니다. 모든 원본 문자가 인코딩될 때까지 프로세스가 계속됩니다.

Fano와 Shannon 방법을 사용한 예제에서 고려한 집합에 대해 Huffman 방법을 사용하여 코딩을 수행해 보겠습니다.

1. 초기 편지 목록 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 )는 이미 주문되었으므로 = {0.2, 0.2, 0.19, 0.12, 0.11, 0.09, 0.09}.

2. 글자를 조합해보자6 그리고7 한 글자로1 확률적으로0.18 그리고재 주문목록:

1 = {0.2, 0.2, 0.19, 0.18, 0.12, 0.11}, 1 = { 1 , 2 , 3 , 1 , 4 , 5 }.

3. 목록에 한 글자가 남을 때까지 2단계를 반복합니다.

2 = {0.23, 0.2, 0.2, 0.19, 0.18}, 2 = { 2 , 1 , 2 , 3 , 1 };

3 = {0.37, 0.23, 0.2, 0.2}, 3 = { 3 , 2 , 1 , 2 };

4 = {0.4, 0.37, 0.23}, 4 = { 4 , 3 , 2 };

5 = {0.6, 0.4}, 5 = { 5 , 4 };

6 = {1}, 6 = { 6 }.

4. 적절하게 하자바이너리코드기호:

6 : 5 = 0, 4 = 1;

5 : 3 = 00, 2 = 01;

4 : 1 = 10, 2 = 11;

3 : 3 = 000, 1 = 001;

2 : 4 = 010, 5 = 011;

1 : 6 = 0010, 7 = 0011.

따라서 다음 이진 코드가 초기 문자에 할당됩니다.1 = 10, 2 = 11, 3 = 000, 4 = 010, 5 = 011, 6 = 0010, 7 = 0011, 이는 Fano 및 Shannon 코딩의 경우보다 짧은 평균 코드 길이를 제공합니다.

수신된 코드의 중복성을 결정해 보겠습니다. 이를 위해 메시지 소스의 엔트로피를 찾아보겠습니다.

.

그러면 코드에는 다음과 같은 중복성이 있습니다.

파노 코드: ;

섀넌 코드: ;

허프만 코드: .

따라서 허프만 코드의 중복성은 최소화됩니다.

중복성을 줄이기 위해, 즉 코드워드의 평균 길이를 하나의 기호로 줄이려면 블록 코딩을 사용할 수 있으며 그 근거는 소스 코딩 정리에 나와 있습니다.II. 이 경우, 주어진 길이의 가능한 모든 문자 그룹을 구하고, 그 그룹의 문자가 동시에 출현할 확률로서 그룹의 확률을 구하고, 그룹을 고려하여 코딩을 수행해야 한다. 새로운 알파벳의 상징으로.

43페이지

인코딩 정보

기본 개념

메시지 인코딩에 대한 Shannon의 정리는 위에서 언급되었습니다. 코딩은 정보를 후속 처리(통신 채널을 통한 전송, 컴퓨터 시스템 메모리에 저장, 의사 결정에 사용 등)에 필요한 형식으로 변환하는 작업이라는 것이 직관적으로 분명합니다. 또한 정보 시스템을 구축할 때 코딩 없이는 불가능하다는 것도 분명합니다. 정보의 표현은 일종의 코드 사용을 의미합니다. 따라서 다음에는 정보코딩의 이론적 기초를 자세히 분석해 보겠습니다.

허락하다 – 임의의 알파벳. 알파벳 요소 문자(또는 기호)라고 하며, 문자로 구성된 유한 시퀀스를 단어라고 합니다. . 모든 알파벳에는 글자가 포함되지 않은 빈 단어가 있다고 믿어집니다.

단어 α 1은 단어의 시작(접두사)이라고 합니다. α , 해당 단어가 존재하는 경우 α 2, 이렇게 α = α 1 α 2 ; 동시에 그 단어 α 1은 단어의 적절한 시작이라고 합니다. α , 만약에 α 2는 빈 단어가 아닙니다. 단어 길이는 단어의 문자 수입니다(빈 단어의 길이는 0입니다). 기록 α 1 α 2는 단어의 연결(연결)을 나타냅니다. α 1과 α 2. 단어 α 2는 단어의 어미(접미사)라고 합니다. α , 해당 단어가 존재하는 경우 α 1, 이렇게 α = α 1 α 2 ; 동시에 그 단어 α 2를 단어의 적절한 어미라고 합니다. α , 만약에 α 1은 빈 단어가 아닙니다. 빈 단어는 정의에 따라 모든 단어의 시작과 끝으로 간주됩니다. α .

알파벳을 고려해보세요 = {0, 1, …, – 1), 여기서 ≥ 2 및 임의 세트 . 세트의 임의 표시 알파벳의 여러 단어로 ~라고 불리는 -ary 세트 인코딩 (에 = 2 인코딩은 바이너리가 됩니다). 역 매핑을 디코딩이라고 합니다. 인코딩의 예를 들어보겠습니다.

1. 숫자가 다음과 같은 자연수 집합을 코딩합니다. N= 0은 단어와 일치합니다. 이자형(0) = 0이고 숫자 N≥ 1개의 이진 단어

이자형(N) = 1 2 … b l (N)

조건을 만족하는 가장 짧은 길이

그것은 분명하다 1 = 1, 2 (N) – 1 ≤ N < 2 (N) 따라서

(N) = + 1 = ]로그( N + 1)[,

어디 [ 엑스] 그리고 ] 엑스[는 각각 다음을 초과하지 않는 가장 큰 정수를 나타냅니다. 엑스, 그리고 다음보다 큰 가장 작은 정수 엑스. 단어 이자형(N)을 숫자의 이진 표기법이라고 합니다. N, 이 인코딩은 이진수 시스템의 숫자를 표현합니다. 이 인코딩은 일대일이기 때문에 N 1 ≠ N 2 단어 이자형(N 1) 그리고 이자형(N 2) 다릅니다. 표 5.1은 이진수 체계의 처음 16개 자연수의 표현을 보여줍니다.

표 5.1

코딩 이자형(N)

N 이자형(N) N 이자형(N) N 이자형(N) N 이자형(N)

2. 처음 2개를 인코딩 케이각 숫자에 대해 자연수 N (0 ≤ N < 2케이)는 단어와 일치합니다

에케이(N) = 0케이 (N) 이자형(N),

여기서 항목 0 케이 (N)는 다음으로 구성된 단어를 나타냅니다. 케이(N) 0, 이자형(N) – 숫자 표현 N위에서 논의한 이진수 시스템에서. 이 인코딩은 처음 16개의 자연수( 케이= 4)는 표 5.2에 나와 있습니다.

표 5.2

코딩 에케이(N)

N 에케이(N) N 에케이(N) N 에케이(N) N 에케이(N)

허락하다 = {나는, = 1, 2, ...)은 유한하거나 셀 수 있는 알파벳으로, 문자는 자연수로 번호가 매겨져 있습니다. 이 경우 알파벳 문자의 인코딩은 순서대로 지정할 수 있음 -문자 그대로의 단어 V = {v 나는, = 1, 2, ...), 여기서 v 나는편지 이미지가 있어요 나는. 이러한 단어 시퀀스(세트에서 V)를 코드(알파벳)라고 합니다. ). 코드가 주어지면 V알파벳 , 각 단어가 포함된 단어 코딩 나는 1 나는 2 …아이크단어와 일치합니다 v 나는 1 v 나는 2 …v ik, 문자별 코딩이라고 합니다.

알파벳 문자의 일대일 코딩에서 알파벳 단어의 문자별 코딩으로 이동할 때 일대일 문자의 속성이 유지되지 않을 수 있습니다. 예를 들어, 코딩 이자형(N)는 이 속성을 유지하지 않지만 인코딩 에케이(N) 저장합니다. 일대일 속성은 분리 가능한 코드로 유지됩니다. 암호 V = {v 나는, = 1, 2, ...)은 다음 형식의 각 동등성에서 분리 가능하다고 합니다.

v 나는 1 v 나는 2 …v ik = vj 1 vj 2 …vjl

그 뒤를 따른다 = 케이그리고 v 나는 1 = vj 1 , v 나는 2 = vj 2 , … , v ik = vjl. 분리 가능한 코드는 고유하게 디코딩 가능한 코드라고도 합니다.

접두사 코드는 분리 가능한 코드 클래스에 속합니다. 암호 V = {v 나는, = 1, 2, ...) 단어가 없으면 접두어라고 합니다. vk어떤 단어의 시작(접두사)도 아닙니다. v l, 케이. 접두사 코드의 각 단어가 다른 코드 단어의 시작이 아닌 가장 작은 시작으로 대체되면 결과 코드도 접두사가 됩니다. 이 작업을 접두사 코드 잘림이라고 합니다.

임의 코드의 경우 V다양한 단어로 구성된 코드 트리를 구축할 수 있습니다. 이것은 순환을 포함하지 않는 유향 그래프입니다. 정점은 다음과 같습니다. β 1개는 위쪽에 연결됨 β 2개의 모서리가 다음 방향으로 향함 β 1 ~ β 2 만약에 그리고 만약에 β 2 = β 1 , 어디 Î = {0, 1, …, – 1}, ≥ 2. 접두사 코드(및 해당 코드에만 해당)의 경우 코드워드 집합은 코드 트리의 터미널 정점(가장자리가 발생하지 않는 정점) 집합과 일치합니다.

기본 코딩 정리

실제 적용에 유용한 코드의 속성은 기본 코딩 정리에 의해 결정됩니다.

정리 5.1. 크래프트 부등식.다음을 포함하는 고유하게 디코딩 가능한(분리 가능한) 코드가 존재하는 경우 N집합의 코드 단어(0, 1, – 1) 길이 포함 N 1 , N 2 , …, n N, 불평등이 유지되기 위해서는 필요하고 충분합니다.

증거.접두사 코드에 대한 코드 트리가 있다고 가정해 보겠습니다. 코드 트리의 루트는 레벨 0을 형성하고, 루트와 연관된 정점은 레벨 1을 형성합니다. 당 가능한 정점 수 케이-우리가 표시하는 수준 DK. 모든 피크 케이레벨이 정확히 생성됩니다. DN케이봉우리 N-레벨.

N 1 ≤ N 2 ≤…≤ n N = N.

분명히 길이의 코드워드는 케이정확히 금지하다 DN케이가능한 끝 정점(마지막 레벨의 정점). 그런 다음 접두사 코드의 모든 코드 워드는 끝 정점을 금지합니다. 끝 꼭지점의 총 개수는 다음과 같으므로 DN, 그러면 부등식은 참입니다

,

그로부터

따라서 Kraft의 부등식이 입증되었습니다.

정리 5.1의 증명 결과, 코드워드 길이를 갖는 고유하게 디코딩 가능한 코드인 접두부 코드가 적어도 적어도 존재한다는 결론을 얻었다. N 1 , N 2 , …, n N, Kraft의 부등식을 만족시킵니다. McMillan의 진술이라고 불리는 다음 정리는 이 파생을 모든 고유하게 디코딩 가능한 코드로 일반화합니다.

정리 5.2. 맥밀란의 부등식.고유하게 디코딩 가능한 모든 코드는 Kraft의 부등식을 충족합니다.

증거.합을 거듭제곱해 봅시다 :

. (5.1)

허락하다 에이케이– 다음을 포함하는 조합의 수 전체 길이가 있는 코드워드 케이. 그러면 식 (6.1)은 다음과 같이 표현될 수 있다.

,

어디 max - 다음을 포함하는 메시지의 최대 길이 코드 단어. 코드가 고유하게 디코딩 가능한 경우 다음의 모든 시퀀스는 전체 길이의 코드워드 케이다르다. 밖에 없기 때문에 DK가능한 시퀀스 에이케이DK그런 다음

왜냐하면 다음을 초과하지 않는 길이의 모든 가능한 시퀀스를 구성하는 데 사용되는 독립적인 코드워드의 수입니다. 최대. 그렇기 때문에 최대 및 . 그리고 이것으로부터 다음과 같은 결론이 나옵니다.

위의 추론은 접두사 코드뿐만 아니라 고유하게 디코딩 가능한 모든 코드에 유효하므로 McMillan의 진술이 입증되었습니다.

다음 정리는 메시지 소스의 엔트로피와 코드워드의 평균 길이와 관련됩니다.

정리 5.3. 소스 코딩 정리 I.메모리가 없는 개별 소스의 경우 엑스유한한 알파벳과 엔트로피를 가진 시간(엑스)이 존재한다 -평균 코드워드 길이가 부등식을 만족하는 ary 접두사 코드

. (5.2)

증거.우선, 메모리가 없는 개별 소스가 메시지 기호 간의 연결을 고려하지 않는 모델로 설명된다는 점을 설명하겠습니다. 이제 우리는 불평등의 좌변(6.2)을 증명합니다:

이를 위해 엔트로피 정의와 Kraft 부등식을 사용합니다.

우변(6.2)을 증명하기 위해 Kraft의 부등식을 다음 형식으로 다시 작성합니다.

.

그런 다음 각 항에 대해 가장 작은 정수를 선택합니다. 아니 나는, 어느 곳에서

Kraft의 부등식은 이 선택에서도 동일하게 유지되므로 해당 접두사 코드를 구성할 수 있습니다. 왜냐하면 아니 나는는 가장 작은 정수이고, 아니 나는– 1은 공정하다

이로써 소스코딩 정리 I이 증명되었다. 코드 단어의 평균 길이가 메시지 소스의 엔트로피보다 작을 수 없음을 결정합니다. 정리의 증명에서는 Kraft 부등식을 고려할 때와 동일한 표기법을 사용했습니다.

정리 5.4. 소스 코딩 정리 II.블록 길이의 경우 존재한다 - 문자당 코드워드의 평균 길이가 부등식을 만족하는 ary 접두사 코드

,

어디 .

증거.여기에는 문자 블록과 시간(엑스 1 , 엑스 2 , …, 엑스 L)은 블록당 메시지 소스의 엔트로피입니다. 문자. 정리를 증명하기 위해 소스 코딩 정리 I을 사용할 수 있습니다.

또한, 기호당 코드워드의 달성 가능한 최소 길이는 의 값이므로, = 2 코드 중복은 공식에 의해 결정될 수 있습니다 .


1 | |

코스 프로그램

"정보 및 코딩 이론"

강의는 4학년 7학기에 진행되며,

51시간, 강사 부교수

정보의 개념, 엔트로피. 통신 시스템. 개별 소스. 무작위 프로세스를 사용한 소스에 대한 설명입니다. 통계적 독립성. 마르코프 소스. 에르고딕성. 베르누이 소스의 에르고딕성.

Fadeev에 따른 엔트로피 공식 유도. 상호 정보 및 그 속성. 엔트로피의 속성. 엔트로피의 최대값에 관한 정리. 메시지 소스의 단위 시간당 엔트로피입니다.

동일한 길이의 코드로 개별 소스를 인코딩하는 문제. 인코딩 속도. 높은 확률 세트. 동일한 길이의 코드로 이산 소스를 코딩하기 위한 직접 및 역정리.

길이가 다른 코드로 소스를 인코딩하는 문제입니다. 코딩 비용. 명확하게 해독 가능한 코드입니다. 접두사 코드. 문자별 코딩. 코드의 고유한 해독성을 위한 필요충분조건입니다. 전체 코드. 길이가 다른 코드를 사용하여 개별 소스를 코딩하는 정리. 최적의 코드를 구성하기 위한 알고리즘(Fano, Shannon, Huffman) 입력 확률의 동일한 확률 분포를 갖는 이진 최적 코드의 구축. 정보 이론을 적용하면 일부 제어 시스템 클래스에서 부울 함수 구현의 복잡성에 대한 하한 및 상한이 입증됩니다. 소스 문자의 확률 분포를 알 수 없는 조건에서 최적의 코드를 구성하는 방법. 코드의 고유한 해독 가능성에 관한 마르코프의 정리. 정보 압축을 위한 적응형 알고리즘.

메모리가 없는 개별 채널. 바이너리 대칭 채널. 채널의 정보 전송 속도. 채널 용량. 확장된 채널 및 용량. 관찰의 결정적인 패턴 및 그룹화. 정보가 잘못 전송될 가능성이 있습니다. 파인슈타인의 불평등. 메모리가 없는 채널 코딩에 대한 직접 정리. 파노의 불평등. 정보처리정리. 코딩 정리의 역전.

노이즈 방지 코딩 이론. 최대 우도 기준. 코드 거리. 패리티 코드. 생성기 및 검사 행렬. 증후군. 패리티 검사 코드의 디코딩 알고리즘입니다. 선형 코드 및 해당 디코딩 알고리즘. 해밍 바운드. 해밍 코드. 순환 코드. 순환 코드의 인코딩 및 디코딩.

문학

1. Gallagher R. 정보 이론 및 안정적인 통신., M., Sov. 라디오, 1979.

2. Krichevsky E. 이론 및 정보 강의, 노보시비르스크, NSU, 1966.

3. Kolesnik V., Poltyrev G. 정보 이론 과정, Nauka, 1982.

4. Fainstein A. 정보 이론의 기초, M., IL, 1960.

5. Peterson V., Weldon F. 오류 수정 코드, M., Mir, 1976.

6. Berlekamp 대수 코딩 이론, M., Mir, 1971.

개별(4.4) 채널의 정보 용량과 연속(4.7) 채널의 용량은 정보 전송 수단으로서의 최대 기능을 특징으로 합니다. 이는 Shannon 코딩의 기본 정리로 알려진 정보 이론의 기본 정리에서 드러납니다. 개별 채널과 관련하여 다음과 같이 표시됩니다.

정리 4.4.1. (DKBP에 대한 직접 코딩 정리)코드 속도에서 메모리가 없는 개별 채널의 경우 아르 자형, 정보 용량이 적기 때문에 코드 워드의 길이가 증가함에 따라 평균 오류 확률이 0이 되는 경향이 항상 있는 코드가 있습니다.

연속 채널의 경우 다음과 같이 공식화됩니다.

정리 4.4.2. (AWGN 채널에 대한 직접 코딩 정리)무제한 대역폭을 갖춘 AWGN 채널을 통해 전송 속도가 처리량보다 낮을 경우 임의로 낮은 오류 확률로 정보를 전송할 수 있습니다.

역 정리는 다음과 같이 말합니다.

정리 4.4.3.전송 속도에서
, 더 높은 통신 채널 용량 , 어떤 코드도 임의로 작은 디코딩 오류 확률을 제공하지 않습니다. 절대적으로 안정적인 메시지 전송.

통신 채널의 임의 모델에 대해 역정리가 입증된 경우 직접 정리는 특정 유형의 채널에 대해서만 입증된다는 점에 유의해야 합니다.

잡음이 있는 채널에 대한 코딩 정리의 결과는 다소 예상치 못한 것입니다. 실제로, 언뜻 보기에 메시지 전송에서 오류 확률을 줄이려면 그에 상응하는 전송 속도의 감소가 필요하며 후자는 오류 확률과 함께 0이 되는 경향이 있는 것처럼 보입니다. 특히 이 결론은 메시지 전송 시 오류 가능성을 줄이는 방법으로 채널을 통한 다중 기호 재전송을 고려한 결과입니다. 이 경우 통신 채널에 간섭이 있는 경우 전송 속도가 0이 되는 경우에만 메시지 전송의 오류 확률이 0이 되는 것을 보장할 수 있습니다.

그러나 코딩 정리는 원칙적으로 임의의 속도에 가까운 속도로 전송이 가능하다는 것을 보여줍니다. , 임의로 작은 오류 확률을 달성합니다. 불행하게도 정리는 오류 방지 코드의 기본 존재를 나타내지만 이를 찾는 방법을 제공하지는 않습니다. 이를 위해서는 긴 코드를 사용해야 한다는 점만 주목할 수 있습니다. 또한, 전송 속도가 처리량에 가까워지고 오류 확률이 감소할수록 블록 길이의 증가로 인해 코드가 복잡해지며 이로 인해 인코딩 및 디코딩 장치가 급격히 복잡해지고 지연이 발생합니다. 디코딩 중 정보 출력에서. 나중에 논의될 현재 사용되는 코딩 방법은 통신 시스템의 잠재적인 기능을 실현하지 못합니다. 유일한 예외는 최근에 공개된 터보 코드입니다.

1이 결과는 모든 대칭 채널에 유효합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: