You are on page 1of 70

Кодирование

Кодтау
Кодирование

Кодирование – преобразование дискретного


сообщения в дискретный сигнал,
осуществляемое по определенному
правилу.
Декодирование – восстановление
дискретного сообщения по сигналу на
выходе дискретного канала,
осуществляемое с учетом правила
кодирования.
Код – совокупность условных сигналов,
обозначающих дискретные сообщения.
Кодтау

Кодтау – дискретті хабарламаны белгілі бір


ереже бойынша жүзеге асырылатын
дискретті сигналға түрлендіру.
Декодтау - кодтау ережесін ескере отырып,
дискретті арнаның шығысындағы сигнал
арқылы дискретті хабарламаны қалпына
келтіру.
Код – дискретті хабарламаларды білдіретін
шартты сигналдар жиынтығы.
Десятичные и двоичные коды

Десятичные коды: U(t) 83


8
0, 1, …, 10, 11, …, 99
6
4
2
t
0

Двоичные коды: U(t) 1010011


1
0, 1, 10, 11, 100, 101, …, 1100011

t
0
Оңдық және екілік кодтар

Оңдық кодтар: U(t) 83


8
0, 1, …, 10, 11, …, 99
6
4
2
t
0

Екілік кодтар: U(t) 1010011


1
0, 1, 10, 11, 100, 101, …, 1100011

t
0
Равномерные и неравномерные коды

Равномерные коды – коды, при


использовании которых, длина всех
кодовых комбинаций (кодовых слов)
одинакова.

001, 010, 011, 100 – равномерные коды.

1, 10, 11, 100 – неравномерные коды.


Біркелкі және біркелкі емес кодтар

Біркелкі кодтар – барлық кодтық


комбинациялардың (кодтық сөздердің)
ұзындығы бірдей болатын кодтар.

001, 010, 011, 100 – біркелкі кодтар.

1, 10, 11, 100 – біркелкі емес кодтар.


Системы счисления
Шестнадцате-
Десятичная Восьмеричная Двоичная
ричная
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
A 10 12 1010
B 11 13 1011
C 12 14 1100
D 13 15 1101
E 14 16 1110
F 15 17 1111
Сандық жүйелер
Оналтылық Оңдық Сегіздік Екілік
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 8 10 1000
9 9 11 1001
A 10 12 1010
B 11 13 1011
C 12 14 1100
D 13 15 1101
E 14 16 1110
F 15 17 1111
Непомехозащищенные коды

Непомехозащищенные коды – коды,


содержащие кодовые комбинации,
отличающиеся друг от друга в одном разряде.

0010 и 0011 отличаются в первом разряде;


1110 и 0110 – в четвертом разряде;
1110 и 0100 – во втором и четвертом разрядах.
Непомехозащищенные коды
Қауіпсіз кодтар

Қорғалмаған кодтар (непомехозащищенные


коды) - бір разрядта бір-бірінен
ерекшеленетін код комбинацияларын
қамтитын кодтар.

0010 и 0011 бірінші разрядта ерекшеленеді;


1110 и 0110 – төртінші разрядта ерекшеленеді;
1110 и 0100 – екінші және төртінші разрядтарда.
Двоичный код на все комбинации

Кодтық комбинациялар екілік сандар


жүйесіндегі сандардың натурал қатарының
жазбаларына сәйкес келеді.

Мысалы: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,


1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

Кодтық комбинациялар саны: N  2n


Барлық комбинацияларға екілік код

Кодовые комбинации соответствуют записи


натурального ряда чисел в двоичной системе
счисления.

Пример: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,


1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

n
Количество кодовых комбинаций: N  2
Единично-десятичный код

Каждый разряд десятичного числа


записывается в виде соответствующего
числа единиц; разряды при передаче по
каналу связи разделяются интервалами.

Неравномерный единично-десятичный код


352: 111 11111 11
149: 1 1111 111111111

Равномерный единично-десятичный код


352: 000000111 000011111 000000011
149: 000000001 000001111 111111111
Бірлік-ондық код

Ондық санның әрбір разряды тиісті бірлік


саны түрінде жазылады; байланыс арнасы
бойынша беру кезіндегі разрядтар
аралықтармен бөлінеді.

Біркелкі емес бірлік-ондық код


352: 111 11111 11
149: 1 1111 111111111

Біркелкі бірлік-ондық код


352: 000000111 000011111 000000011
149: 000000001 000001111 111111111
Двоично-десятичный код

Каждый разряд десятичного числа


записывается в виде комбинации двоичного
кода.

Пример
352: 0011 0101 0011
149: 0001 0100 1001
Екілік-оңдық код

Ондық санның әр разряды екілік кодтың


тіркесімі ретінде жазылады.

Мысалы
352: 0011 0101 0011
149: 0001 0100 1001
Код Морзе

Неравномерный код, в котором сигналы


передаются в виде точек и тире.
1 1 1 0 1 0 1
– . .

А ·– A И ·· I С ··· S Щ ––·– Q
Б –··· B К –·– K Т – T Ы –·–– Y
В ·–– W Л ·–·· L У ··– U Ю ··–– U
Г ––· G М –– M Ф ··–· F Я ·–·–
Д –·· D Н –· N Х ···· H Й ·––– J
Е · E О ––– O Ц –·–· C ЬЪ –··– X
Ж ···– V П ·––· P Ч –––· Э ··–··
З ––·· Z Р ·–· R Ш ––––
Морзе коды

Сигналдар нүктелер мен сызықшалар түрінде


берілетін біркелкі емес код.

1 1 1 0 1 0 1
– . .

А ·– A И ·· I С ··· S Щ ––·– Q
Б –··· B К –·– K Т – T Ы –·–– Y
В ·–– W Л ·–·· L У ··– U Ю ··–– U
Г ––· G М –– M Ф ··–· F Я ·–·–
Д –·· D Н –· N Х ···· H Й ·––– J
Е · E О ––– O Ц –·–· C ЬЪ –··– X
Ж ···– V П ·––· P Ч –––· Э ··–··
З ––·· Z Р ·–· R Ш ––––
Помехозащищенные коды

Помехозащищенные коды (корректирующие


коды) – коды, позволяющие обнаружить
ошибки в кодовых комбинациях.

Помехозащищенные коды разделяются на


две группы:
коды с обнаружением ошибок;
коды с обнаружением и исправлением
ошибок.
Кедергіден қорғайтын кодтар

Шуылға қарсы кодтар (түзетуші кодтар) –


кодтық комбинациялардағы қателерді
анықтауға мүмкіндік беретін кодтар.

Шуылға қарсы кодтар екі топқа бөлінеді:


 қателерді анықтайтын кодтар;
 қателерді анықтау және түзету кодтары.
Кодовое расстояние

Кодовое расстояние – минимальное число


элементов, в которых могут отличаться друг от друга
две кодовые комбинации в используемом коде.

n = 1: 0 1 0

1
1
d=1

n = 2: 00 01 00  00  00  01  01  10

01 10 11 11 10 11
10 11 01 10 11 10 11 01
d=1 d=1 d=2 d=1 d=2 d=1
Кодтық қашықтық

Кодтық қашықтық - пайдаланылатын кодтағы екі


кодтық комбинациясы бір-бірінен ерекшеленуі мүмкін
болатын элементтердің ең аз саны.

n = 1: 0 1 0

1
1
d=1

n = 2: 00 01 00  00  00  01  01  10

01 10 11 11 10 11
10 11 01 10 11 10 11 01
d=1 d=1 d=2 d=1 d=2 d=1
Кодовые расстояния при n = 3

100 110 000 100 001 010


   
111 011 110 101
000 010 111 111 111 111
d=3 d=3 d=3 d=3

101 111 
000 
000 
000 
011
011 101 110 110
001 011 011 101 110 101
d=2 d=2 d=2 d=2

000 001 010 011 


000 
001 
100 
111
100 101 110 111 100 101 110 110
100 100 010 001
d=1 d=1 d=1 d=1
n = 3 болғандағы кодтық қашықтық

100 110 000 100 001 010


   
111 011 110 101
000 010 111 111 111 111
d=3 d=3 d=3 d=3

101 111 
000 
000 
000 
011
011 101 110 110
001 011 011 101 110 101
d=2 d=2 d=2 d=2

000 001 010 011 


000 
001 
100 
111
100 101 110 111 100 101 110 110
100 100 010 001
d=1 d=1 d=1 d=1
Корректирующая способность кода

dmin  r  s  1

dmin – минимальное кодовое расстояние;


r – количество обнаруживаемых ошибок;
s – количество исправляемых ошибок;
r  s.
Кодты түзету мүмкіндігі

dmin  r  s  1

dmin – минималды кодтық қашықтық;


r – анықталған қателер саны;
s – түзетілетін қателер саны;
r  s.
Коды с обнаружением ошибок

dmin  2

коды, построенные путем уменьшения


количества используемых кодовых
комбинаций;

коды, в которых используются все


возможные кодовые комбинации, но к
каждой комбинации добавляются
контрольные символы.
Қателерді анықтайтын кодтар

dmin  2

пайдаланылған код комбинацияларының


санын азайту арқылы құрылған кодтар;

барлық мүмкін болатын код


комбинацияларын қолданылатын кодтар,
бірақ әр комбинацияға бақылау таңбалары
қосылады.
Код с постоянным числом единиц и нулей в
комбинациях
Общее число кодовых комбинаций:
n!
N  C nl 
l !n  l !
l – число единиц в слове длиной n.

C52 : N = 10
11000 01010 01100 00101 00110
10010 00011 01001 10001 10100

C73 : N = 35
1010100 0101010 1110000 0000111 1001001
0010101 1101000 1011000 0110100 0101100

Комбинациялардағы бірліктер мен
нөлдердің тұрақты саны бар код
Кодтық комбинациялардың жалпы саны:
n!
N  C nl 
l !n  l !
l – n ұзындығы бар сөздегі бірліктер саны.

C52 : N = 10
11000 01010 01100 00101 00110
10010 00011 01001 10001 10100

C73 : N = 35
1010100 0101010 1110000 0000111 1001001
0010101 1101000 1011000 0110100 0101100

Распределительный код

Код с постоянным весом, равным единице


N  C n1  n.

C 51 : 00001 00010 00100 01000 10000

dmin  2
Тарату коды

Бірлікке тең тұрақты салмағы бар код


N  C n1  n.

C 51 : 00001 00010 00100 01000 10000

dmin  2
Код с проверкой на четность

n  k  1,
k – количество информационных символов
(разрядов) в кодовой комбинации.
Информационные Контрольные Кодовая
символы символы комбинация
11011 0 110110
10101 1 101011
00010 1 000101
11000 0 110000
11110 0 111100
11111 1 111111

N  2k  2n 1 d min  2
Жұптыққа тексеру коды

n  k  1,
k – код комбинациясындағы ақпараттық
символдардың (разрядтардың) саны.
Ақпараттық Бақылау Кодтық
символдар символдары комбинация
11011 0 110110
10101 1 101011
00010 1 000101
11000 0 110000
11110 0 111100
11111 1 111111

N  2k  2n 1 d min  2
Код с числом единиц, кратным трем

n  k  2,
k – количество информационных символов
(разрядов) в кодовой комбинации.
Информационные Контрольные Кодовая
символы символы комбинация
11011 11 1101111
10101 00 1010100
00010 11 0001011
11000 01 1100001
11110 11 1111011
11111 01 1111101

N  2k  2n  2 d min  2
Үшке еселі бірліктер саны бар код
n  k  2,
k – код комбинациясындағы ақпараттық
символдардың (разрядтардың) саны.
Ақпараттық Бақылау Кодтық
символдар символдары комбинация
11011 11 1101111
10101 00 1010100
00010 11 0001011
11000 01 1100001
11110 11 1111011
11111 01 1111101

N  2k  2n  2 d min  2
Код с удвоением элементов
(корреляционный код)
Каждый элемент двоичного кода на все
сочетания передается двумя символами:
1 преобразуется в 10, а 0 – в 01.
Двоичный код на все Корреляционный код
сочетания
11011 1010011010
10101 1001100110
00010 0101011001
11000 1010010101
11110 1010101001
11111 1010101010

N  2n / 2 d min  2
Элементтердің екі еселенуімен код
(корреляциялық код)
Екілік кодтың әр элементі барлық
комбинацияларға екі таңбамен беріледі:
1 – 10-ға, ал 0 – 01-ге айналады.
Барлық комбинацияларға Корреляциялық код
екілік код
11011 1010011010
10101 1001100110
00010 0101011001
11000 1010010101
11110 1010101001
11111 1010101010

N  2n / 2 d min  2
Инверсный код
n  k  2,
k – количество информационных символов
(разрядов) в кодовой комбинации.
Информационные Контрольные Кодовая
символы символы комбинация
11011 11011 1101111011
10101 01010 1010101010
00010 11101 0001011101
11000 11000 1100011000
11110 11110 1111011110
11111 00000 1111100000

N  2k  2n / 2 k 2 3 ≥4
dmin 2 3 4
Инверсиялық код
n  k  2,
k – код комбинациясындағы ақпараттық
символдардың (разрядтардың) саны
Ақпараттық Бақылау Кодтық
символдар символдары комбинация
11011 11011 1101111011
10101 01010 1010101010
00010 11101 0001011101
11000 11000 1100011000
11110 11110 1111011110
11111 00000 1111100000

N  2k  2n / 2 k 2 3 ≥4
dmin 2 3 4
Коды с обнаружением и исправлением
ошибок

dmin  3

Образуются путем добавления к кодовой


комбинации контрольных символов

коды Хэмминга;
циклические коды;
итеративные коды.
Қателерді анықтау және түзету кодтары

dmin  3

Басқару символдарының кодтық комбинациясына


қосу арқылы қалыптасады

Хэмминг кодтары;
циклдық кодтары;
итеративті кодтар.
Коды Хэмминга

В качестве исходного используется k-разрядный


двоичный код на все сочетания. К нему добавляются
m контрольных символов.
nkm
При передаче кодовой комбинации может быть
искажен любой из n символов, т.е. число вариантов
искажения равно n+1 (включая передачу без
искажений).
2m  n  1  2m  k  m  1

k 1 2,3,4 5…11 12…26


m 2 3 4 5
Хэмминг кодтары

Бастапқы ретінде барлық комбинациялар үшін K-


разрядты екілік код қолданылады. Оған m бақылау
символдары қосылады
nkm
Код комбинациясын беру кезінде n символдардың
кез келгені бұрмалануы мүмкін, яғни бұрмалау
нұсқаларының саны n+1 (бұрмалаусыз беруді қоса
алғанда).

2m  n  1  2m  k  m  1

k 1 2,3,4 5…11 12…26


m 2 3 4 5
Коды Хэмминга: кодирование и
декодирование

k 4 k 3 k2 k1 k4 k3 k2 m3 k1 m2 m1
Разряды двоичных m1 k1 k2 k4
чисел Сим-
волы m2 k1 k3 k4
3 2 1 кода
m3 k2 k3 k4
0 0 1 m1 Кодиро- m1 = k1 ^ k2 ^ k4
вание: m2 = k1 ^ k3 ^ k4
0 1 0 m2 m3 = k2 ^ k3 ^ k4
0 1 1 k1 Декоди- l1 = m1 ^ k1 ^ k2 ^ k4
рование: l = m ^ k ^ k ^ k
1 0 0 m3 2 2 1 3 4
l 3 = m 3 ^ k2 ^ k3 ^ k4
1 0 1 k2 l3 l2 l1 – бұрмаланған
бит номері
1 1 0 k3
Хэмминг кодтары: кодтау және декодтау

k 4 k 3 k2 k1 k4 k3 k2 m3 k1 m2 m1
Екілік сандардың m1 k1 k2 k4
разрядтары Код
симво m2 k1 k3 k4
3 2 1 лдары
m3 k2 k3 k4
0 0 1 m1 Кодтау: m1 = k1 ^ k2 ^ k4
m2 = k1 ^ k3 ^ k4
0 1 0 m2 m3 = k2 ^ k3 ^ k4
0 1 1 k1 Декодтау l1 = m1 ^ k1 ^ k2 ^ k4
: l 2 = m 2 ^ k1 ^ k3 ^ k4
1 0 0 m3
l 3 = m 3 ^ k2 ^ k3 ^ k4
1 0 1 k2 l3 l2 l1 – номер
искаженного бита
1 1 0 k3
Контрольная сумма блока данных

123 47 170
0111 1011 0010 1111 1010 1010

125 45 170
0111 1101 0010 1101 1010 1010

31535 / 271 = 116 + 99 / 271


0111 1011 0010 1111 / 100001111 = 0111 0100 (0110 0011)

32045 / 271 = 118 + 67 / 271


0111 1101 0010 1101 / 100001111 = 0111 0110 (0100 0011)
Деректер блогының бақылау сомасы

123 47 170
0111 1011 0010 1111 1010 1010

125 45 170
0111 1101 0010 1101 1010 1010

31535 / 271 = 116 + 99 / 271


0111 1011 0010 1111 / 100001111 = 0111 0100 (0110 0011)

32045 / 271 = 118 + 67 / 271


0111 1101 0010 1101 / 100001111 = 0111 0110 (0100 0011)
Циклические коды

101101 = X5 + X3 + X2 + 1, X=2
Приводимый полином – полином, который можно
представить в виде произведения многочленов
низших степеней
Неприводимый полином – полином, который нельзя
представить в виде произведения многочленов
низших степеней

P ( X1 ) X+1 11 3
P ( X2 ) X2 + X + 1 111 7
P ( X3 ) X3 + X + 1 1011 11
P ( X3 ) X3 + X2 + 1 1101 13
P ( X4 ) X4 + X + 1 10011 19
Циклдық кодтар

101101 = X5 + X3 + X2 + 1, X=2
Келтірілетін полином – төменгі дәрежелі көпмүшелер
көбейтіндісі ретінде ұсынылатын көпмүшелік

Келтірілмейтін полином – төменгі дәрежелі


көпмүшелер туындысы ретінде ұсынуға болмайтын
көпмүшелік

P ( X1 ) X+1 11 3
P ( X2 ) X2 + X + 1 111 7
P ( X3 ) X3 + X + 1 1011 11
P ( X3 ) X3 + X2 + 1 1101 13
P ( X4 ) X4 + X + 1 10011 19
Сложение полиномов

При операциях с полиномами применяется сложение


двоичных чисел по модулю 2, эквивалентное
операции «исключающее ИЛИ» с каждым разрядом.

0^0=0 0^1=1 1^0=1 1^1=0

1·X7 + 0·X6 + 1·X5 + 0·X4 + 0·X3 + 1·X2 + 1·X1 + 0·X0


^
0·X7 + 1·X6 + 0·X5 + 0·X4 + 1·X3 + 1·X2 + 1·X1 + 1·X0
1·X7 + 1·X6 + 1·X5 + 0·X4 + 1·X3 + 0·X2 + 0·X1 + 1·X0

1010 0110
^
0100 1111
1110 1001
Полиномдарды қосу

Полиномдарды қосу операциясы кезінде екілік


сандарды 2 модулі бойынша қолданылады, ол әрбір
разрядпен «НЕМЕСЕ алып тастау» операциясына
эквивалентті.
0^0=0 0^1=1 1^0=1 1^1=0

1·X7 + 0·X6 + 1·X5 + 0·X4 + 0·X3 + 1·X2 + 1·X1 + 0·X0


^
0·X7 + 1·X6 + 0·X5 + 0·X4 + 1·X3 + 1·X2 + 1·X1 + 1·X0

1·X7 + 1·X6 + 1·X5 + 0·X4 + 1·X3 + 0·X2 + 0·X1 + 1·X0


1010 0110
^
0100 1111
1110 1001
Деление полиномов

Деление двоичных полиномов аналогично делению


целых чисел. При этом операция вычитания
эквивалентна операции «исключающее ИЛИ».

11100110 1010
1010 11010
1000
1010
01011
1010
0010
Полиномдарды бөлу

Екілік көпмүшелерді бөлу бүтін сандарды бөлуге


ұқсас. Бұл жағдайда алу операциясы «НЕМЕСЕ алып
тастау» операциясына эквивалентті.

11100110 1010
1010 11010
1000
1010
01011
1010
0010
Метод построения циклического кода

G(X) – исходная кодовая комбинация


P(X) – образующий полином
G( X ) X m R X 
 QX  
P X  P X 
Xm – одночлен той же степени, что и P(X)
Q(X) – частное от деления
R(X) – остаток от деления
F  X   G  X X m  R  X 
F(X) – закодированное сообщение
Циклдық кодты құру әдісі

G(X) – бастапқы кодтық операция


P(X) – түзуші полином
G( X ) X m R X 
 QX  
P X  P X 
Xm –P(X) сияқты бірдей дәрежелі бірмүшелік
Q(X) – бөлудің бөліндісі
R(X) – бөлінуден қалған қалдық
F  X   G  X X m  R  X 
F(X) – кодталған хабарлама
Пример построения циклического кода

P(X) = X + 1 → 11
G(X) = X2 + X → 0110 G(X) = X3 + X + 1 → 1011
G(X)·X1 → 01100 G(X)·X1 → 10110
01100 11 10110 11
11 0100 11 1101
0000 11
11
010
11
1

F(X) → 01100 F(X) → 10111


Циклдық кодты құру мысалы

P(X) = X + 1 → 11
G(X) = X2 + X → 0110 G(X) = X3 + X + 1 → 1011
G(X)·X1 → 01100 G(X)·X1 → 10110
01100 11 10110 11
11 0100 11 1101
0000 11
11
010
11
1

F(X) → 01100 F(X) → 10111


Пример циклического кода

P(X) = X + 1 → 11

0→00000

1→00011 2→00101 7→01111


3→00110 5→01010 F→11110
6→01100 A→10100 E→11101
C→11000 4→01001 D→11011
8→10001 9→10010 B→10111
Циклдық код мысалы

P(X) = X + 1 → 11

0→00000

1→00011 2→00101 7→01111


3→00110 5→01010 F→11110
6→01100 A→10100 E→11101
C→11000 4→01001 D→11011
8→10001 9→10010 B→10111
Алгоритм построения циклического кода

3 2 1 0 № бита
Выдвигаемый Выровненное
бит сообщение
1 0 1 1 1 = обр. полином

1. R = 0
2. В хвостовую часть сообщения добавляется m
нулевых битов
3. Сдвиг влево на 1 бит
4. Если выдвинут бит со значением 1, R=R^P(X)
5. Если обработаны не все биты, переход к п.3
Циклдық кодты құру алгоритмі

3 2 1 0 № бита
Ұсынылған Тураланған
бит хабарлама
түзуші
1 0 1 1 1 =
полином
1. R = 0
2. Хабарламаның аяқ жағына m нөлдік бит
қосылады
3. 1 битке солға жылжу
4. Егер 1 мәні бар бит ұсынылса, R=R^P(X)
5. Егер барлық биттер өңделмесе, 3-тармаққа өтіңіз
Алгоритм построения циклического кода

P(X) = X4+X+1 → 10011 0 0101


1010 0110
0000
0001
0010 1010
010
10
0 0110
0110
0110
0110
0000
0000
0000
0000
0000
G(X) → 1010 0110 1 0100 110 0000
0111 110 0000
1010 0110 0000 10011 0 1111 10 0000
1001 1 1 1111 0 0000
011 1 11 1 0111010
1100 0 0000
10 011
1 1000 0000
1 1000
1 0011 1011 0000
1011 0 1 0110 000
1001 1 0101 000
010 100 0 1010 00
10 011
1 0100 0
0 1110
0111 0
F(X) → 1010 0110 1110
???? 0 1110
Циклдық кодты құру алгоритмі

P(X) = X4+X+1 → 10011 0 0101


1010 0110
0000
0001
0010 1010
010
10
0 0110
0110
0110
0110
0000
0000
0000
0000
0000
G(X) → 1010 0110 1 0100 110 0000
0111 110 0000
1010 0110 0000 10011 0 1111 10 0000
1001 1 1 1111 0 0000
011 1 11 1 0111010
1100 0 0000
10 011
1 1000 0000
1 1000
1 0011 1011 0000
1011 0 1 0110 000
1001 1 0101 000
010 100 0 1010 00
10 011
1 0100 0
0 1110
0111 0
F(X) → 1010 0110 1110
???? 0 1110
Выявление ошибок в блоке данных при
помощи избыточного циклического кода (CRC)

Контрольные символы добавляются в начало или


конец блока данных. Комбинация контрольных
символов называется контрольной суммой (CRC).

CRC-12 X12+X11+X3+X2+X+1 1 80F


CRC-161 X16+X15+X2+1 1 8005
CRC-162 X16+X15+ X13+1 1 A001
CRC-CCITT X16+X12+X5+1 1 1021
CRC-321 1 04c11db7
CRC-322 1 edb88320
Артық циклдік кодты пайдаланып деректер
блогындағы қателерді анықтау (CRC)

Бақылау символдары деректер блогының басына


немесе соңына қосылады. Бақылау символдарының
тіркесімі бақылау сомасы деп аталады (CRC).

CRC-12 X12+X11+X3+X2+X+1 1 80F


CRC-161 X16+X15+X2+1 1 8005
CRC-162 X16+X15+ X13+1 1 A001
CRC-CCITT X16+X12+X5+1 1 1021
CRC-321 1 04c11db7
CRC-322 1 edb88320
Алгоритм вычисления 16-битного избыточного
циклического кода

1. CRC = FFFF
2. С использованием значения X очередного байта
выполняется операция CRC=CRC^X
3. Сохраняется значение младшего бита CRC:
L=CRC&1
4. CRC сдвигается вправо на 1 бит
5. Если L=1, выполняется операция CRC=CRC^A001
6. Если выполнено меньше 8 сдвигов CRC,
происходит переход к п.3
7. Если обработаны не все байты блока данных,
происходит переход к п.2
16 биттік артық циклдік кодты есептеу
алгоритмі
1. CRC = FFFF
2. Кезекті байттың X мәнін қолдана отырып,
CRC=CRC^X операция орындалады
3. Кіші биттің мәні сақталады CRC: L=CRC&1
4. CRC 1 бит оңға жылжиды
5. егер L=1, онда CRC=CRC^A001 орындалады
6. Егер CRC жылжудан 8ден кем орындалса, онда
п.3 өтіңіз
7. Егер деректер блогының барлық байттар
өңделмесе, 2-тармаққа өтіңіз

You might also like