Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema_koduvannya.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
265.59 Кб
Скачать

5. Кoд з сталою вагою (код на одну сполуку).

Це код з сталою W = Const одиниць у кодових словах. Кількість дозволених кодових слів у коді довжиною n дорівнює     

Такий код утворюється з простого двійкового шляхом відбору кодових слів, що мають однакову кількість одиниць. На приймальному боці підраховується кількість одиниць у кодовому слові, і якщо вона відрізняється від W, - це свідчить про помилку. Код виявляє всі помилки непарної кратності і такі помилки парної кратності, що порушують умову W ' = Const.

Кодова відстань dmin = 2,  надлишковість  .

6. Код Хеммінга.

Це один з найпоширеніших коректуючих кодів. Він виправляє всі однократні помилки за dmin= 3, а за dmin = 4 (розширений код Хеммінга), крім того, виявляє всі двократні помилки.

За заданої кількості інформаційних символів k , ( ) кількість перевірочних символів (n-k) і довжина коду n визначаються нижньою межею Хеммінга (26) для S = 1

 

і для k = 1, 2...,10

наведено в таблиці

k

1

2

3

4

5

6

7

8

9

10

n

3

5

6

7

9

10

11

12

13

14

 

Перевірочні символи b1, b2, ...  , розташовуються на позиціях 1, 2, 4, 8,...,  , номери яких є цілими степенями двійки, таким чином, простому двійковому слову al,a2,...,ak відповідає у коді Хеммінга слово (вектор) (B) = (b1, b2a1, b4a2a3a4b8,... ,ak) з шуканими перевірочними

символами.

 

Утворюється матриця (A) з (n-k) рядків і п стовпчиків, у якій кожний і-ий стовпчик (i = 1, 2,... ,n) є двійковим зображенням свого номера. Наприклад за k = 4, п = 7 зазначена (перевірочна) матриця має вигляд

 

Записується система рівнянь для визначення перевірочних символів

де множення і додавання відбувається за модулем 2.

 

Для наведеного прикладу (B) = (b1, b2a1, b4a2a3a4) і система перевірочних рівнянь має вигляд

 

 

За зазначених умов у кожному перевірочному рівнянні є один і тільки один з перевірочних символів b1,b2, b4,..., які легко знаходяться.

На приймальному боці перевіряється виконання наведених рівнянь для прийнятих символів аi' та bj'. Невиконання будь-якого з перевірочних рівнянь визначає помилку, а запис отриманих перевірочних значень (синдром перевірочних рівнянь) дорівнює двійковому зображенню номера спотвореного розряду, і цей розряд треба інвертувати.

 

Для наведеного прикладу двійковому слову 0101 відповідають перевірочні рівняння

 і слово у коді Хеммінга 0100101.

 

Припустимо, внаслідок спотворень у каналі зв'язку замість цього слова було прийнято 0100111. Для виявлення помилки виконуються перевірочні співвідношення

Номер помилкової позиції у двійковому записі 110, у десятковому записі 6 (=1·22 +1·21 + 0·20), отже помилка у шостому розряді. Таким чином, у прийнятому слові 0100111 слід змінити шостий символ, і отримуємо слово 010010, яке було передано.

 

7. Циклічні коди. Це різновид систематичних кодів (перевірочні (n-k) символів розташовані після kінформаційних).

 

Циклічний код - це бінарний код, у якому кожне дозволене слово є циклічною перестановкою іншого дозволеного (перша цифра переставляється у кінець). Наприклад, якщо 0111001 - дозволене слово, то 1110010 - також дозволене.

Кодові слова циклічного коду F(l,0) = al,a2,...,an, зручно зображати у вигляді поліномів від формальної змінної х

При цьому циклічний зсув формально відповідає символічному множенню ® полінома (кодового слова) F(x) на х

                      

Таке уявлення кодових слів дозволяє звести дії над словами до дій над поліномами (за модулем 2).

 

Можна довести, що кожне кодове слово F(x) циклічного коду довжиною п ділиться без остачі на поліном Tn-k(x) степені (n-k), який є дільником двочлена хn +1. Для таких поліномів (твірних) складені таблиці, фрагмент яких має вигляд

n-k

1

2

3

4

4

5

5

5

Tn-k(x)

x2+x+1

x3+x+1

x4+x2+1

x4+x3+1

x5+x2+1

x5+x3+1

x5+x3+

+x2+x+1

 

 

(Приклад отримання твірних поліномів:

  )

 

З зазначеної умови випливає формула утворення кодового слова F(x) циклічного коду довжиною п з простого двійкового числа Q(l,0) довжиною k, якому відповідає поліном Q(x) степені k

де   - остача від ділення добутку   на твірний поліном 

На цьому ґрунтується перевірка прийнятого слова F'(x) на наявність помилки  , свідчить про наявність помилки, а номер розряду i (справа), де є помилка визначається умовою

 

Один з алгоритмів циклічного кодування такий:

1. З нижньої межі Хеммінга   знаходиться довжина коду n і кількість (n-k) контрольних символів.

2. Знаходиться твірний поліном 

3. Задане просте двійкове кодове слово Q(l,0) записується у вигляді поліному Q(x)

4. Утворюється кодове слово у вигляді поліному F(x) і у вигляді бінарного циклічного коду F(l,0)

 

Приклад:

 

 

 

          

 

 

 

 

                                                         

 

 

                                                    

 

Нехай на приймальному боці замість цього слова отримано

          

 

        

 

 

 

 

 

 

                                                          помилка є

 

 

 

 

 

 

 

 

і = 4:

^iJW

       

              

                      

 

 

       

       

               

                            

 

 

       

       

              

              

            

 

 

       

       

               

 

 

 

 

і=1:                                                                         і=2:

 

 

 

 

 

 

 

 

 

і=3:                                                                          і=4:

 

 

 

 

 

 

 

Таким чином помилка у четвертому розряді, який треба інвертувати: 0110010 => 0111010 = F(l,0)

Додаток 1.

Фрагмент таблиці значень війкових логарифмічних цілих чисел

 

x

log2x

x

log2x

x

log2x

x

log2x

1

 

0,000

 

36

 

5,170

 

71

 

6,150

 

106

 

6,728

 

2

 

1,000

 

37

 

5,209

 

72

 

6,170

 

107

 

6,741

 

3

 

1,585

 

38

 

5,248

 

73

 

6,190

 

108

 

6,755

 

4

 

2,000

 

39

 

5,285

 

74

 

6,209

 

109

 

6,768

 

5

 

2,322

 

40

 

5,322

 

75

 

6,229

 

110

 

6,781

 

6

 

2, 5л 5

 

41

 

5,358

 

76

 

6,248

 

111

 

6,794

 

7

 

2,807

 

42

 

5,392

 

77

 

6,207

 

112

 

6,807

 

8

 

3,000

 

43

 

5 426

 

78

 

6,285

 

113

 

6,820

 

9

 

3,170

 

44

 

5,159

 

79

 

6,304

 

114

 

6,833

 

10

 

3,332

 

45

 

5,192

 

80

 

6,322

 

115

 

6,845

 

11

 

3,459

 

46

 

5,524

 

81

 

6,340

 

116

 

6,858

 

12

 

3,585

 

47

 

5,555

 

82

 

6,358

 

117

 

6,870

 

13

 

3,700

 

48

 

5,585

 

83

 

6,375

 

118

 

6,883

 

14

 

3,807

 

49

 

5,615

 

84

 

6,392

 

119

 

6,895

 

15

 

3,907

 

50

 

5,644

 

85

 

6,409

 

120

 

6,907

 

16

 

4,000

 

51

 

5,672

 

86

 

6,426

 

121

 

6,919

 

17

 

4,087

 

52

 

5,700

 

87

 

6,443

 

122

 

6,931

 

18

 

4,170

 

53

 

5,728

 

88

 

6,459

 

123

 

6,943

 

19

 

4,248

 

54

 

5,755

 

89

 

6,476

 

124

 

6,954

 

20

 

4,322

 

55

 

5,781

 

90

 

6,492

 

125

 

6,966

 

21

 

4,392

 

56

 

5,807

 

91

 

6,508

 

126

 

6,977

 

22

4,459

 

57

 

5,833

 

92

 

6,524

 

127

 

6,989

 

23

 

4,524

 

58

 

5,858

 

93

 

6,539

 

128

 

7,000

 

24

 

4,585

 

59

 

5,883

 

94

 

6,555

 

200

 

7,644

 

25

 

4,644

 

60

 

5,907

 

95

 

6,570

 

256

 

8,000

 

26

 

4,700

 

61

 

5,931

 

96

 

6,585

 

300

 

8,229

 

27

 

4,755

 

62

 

5,951

 

97

 

6,600

 

400

 

8,644

 

28

 

4,807

 

63

 

5,977

 

98

 

6,615

 

500

 

8,966

 

29

 

4,858

 

64

 

6,000

 

99

 

6,629

 

512

 

9,000

 

30

 

4,907

 

65

 

6,022

 

100

 

6,614

 

600

 

9,229

 

31

 

4,954

 

66

 

6,044

 

101

 

6,658

 

700

 

9,451

 

32

 

5,000

 

67

 

6,066

 

102

 

6,672

 

800

 

9,644

 

33

 

5,044

 

68

 

6,087

 

103

 

6,687

 

900

 

9,814

 

34

 

5,087

 

69

 

6,109

 

104

 

6,700

 

1000

 

9,965

 

35

 

5,129

 

70

 

6,129

 

105

 

6,714

 

10000

 

13,288

 

 

Додаток 2.

Фрагмент таблиці значень функції -plog2p

 

p

-plog2p

p

-plog2p

p

-plog2p

p

-plog2p

0,001

0,0099

0,027

 

0,1407

 

0,150

 

0,4105

 

0,600

 

0,4432

 

0,002

0,0179

0,028

 

0,1444

 

0,160

 

0,4230

 

0,610

 

0,4350

 

0,003

0,0251

0,029

 

0,1481

 

0,175

 

0,4400

 

0,625

 

0,4238

 

0,004

0,0319

0,030

 

0,1518

 

0,180

 

0,4453

 

0,650

 

0,4040

 

0,005

0,0382

0,032

 

0,1589

 

0,190

 

0,4552

 

0,675

 

0,3828

 

0,006

0,0443

0,035

 

0,1693

 

0,200

 

0,4644

 

0,700

 

0,3602

 

0,007

0,0501

0,037

 

0,1760

 

0,210

 

0,4728

 

0,710

 

0,3508

 

0,008

0,0557

 

0,040

 

0,1858

 

0,225

 

0,4842

 

0,725

 

0,3364

 

0,009

0,0612

 

0,042

 

0,1941

 

0,250

 

0,5000

 

0,750

 

0,3113

 

0,010

0,0664

 

0,045

 

0,2013

 

0,275

 

0,5122

 

0,775

 

0,2850

 

0,011

0,0716

 

0,047

 

0,2073

 

0,300

 

0,5211

 

0,800

 

0,2575

 

0,012

0,0766

 

0,050

 

0,2161

 

0,310

 

0,5238

 

0,810

 

0,2462

 

0,013

0,0814

 

0,055

 

0,2301

 

0,325

 

0,5270

 

0,825

 

0,2290

 

0,014

0,0862

 

0,060

 

0,2435

 

0,350

 

0,5301

 

0,850

 

0,1993

 

0,015

0,0909

 

0,065

 

0,2563

 

0,375

 

0,5306

 

0,875

 

0,1810

 

0,016

0,0954

 

0,070

 

0,2686

 

0,400

 

0,5288

 

0,900

 

0,1368

 

0,017

0,0999

 

0,075

 

0,2803

 

0,410

 

0,5274

 

0,910

 

0,1238

 

0,018

0,1043

 

0,080

 

0,2915

 

0,425

 

0,5246

 

0,925

 

0,1040

 

0,019

0,1086

 

0,085

 

0,3023

 

0,450

 

0,5184

 

0,950

 

0,0703

 

0,020

0,1129

 

0,090

 

0,3127

 

0,475

 

0,5102

 

0,975

 

0,0356

 

0,021

0,1 170

 

0,095

 

0,3226

 

0,500

 

0,5000

 

0,930

 

0,0286

 

0,022

0,1211

 

0,100

 

0,3322

 

0,510

 

0,4954

 

0,990

 

0,0143

 

0,023

0,1252

 

0,110

 

0,3503

 

0,525

 

0,4880

 

0,095

 

0,0072

 

0,024

0,1291

 

0,125

 

0,3750

 

0,550

 

0,4744

 

0,097

 

0,0043

 

0,025

0,1330

 

0,130

 

0,3826

 

0,575

 

0,4591

 

0,999

 

0,0014

 

0,026

0,1369

 

0,140

 

0,3971

 

 

 

 

 

 

 

 

 

 

Список літератури

1. В. І. Федорук. Теорія інформації та кодування. - Чернівці, „Рута", 2001.

2. Ю. П. Жураковський, В. М. Полторак. Теорія інформації та кодування. - Київ, „Вища школа", 2001.

3. В. П. Цимбал. Теория информации и кодирование. - Киев, „Вища школа", 1992.

4. В. П. Цимбал. Задачник по теории информации и кодирования. - Киев, „Вища школа", 1976.

5. И. В. Кузьмин, В. А. Кедрус. Основы теории информации и кодирования. - Киев, „Вища школа", 1986.

6. В. А. Орлов, Л. И. Филиппов. Теория информации в упражнениях и задачах. -Москва, „Высшая школа", 1976.

7. А. М. Яглом, И. М. Яглом. Вероятность и информация. - Москва, „Наука", 1973.

8. Ф. П. Тарасенко. Введение в курс теории информации. - Томск, изд.тгу, 1963.

9. В. М. Дмитриев. Теория информации и кодирования. - Москва, Изд. МЭИ, 1997.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]