
- •Пояснювальна записка
- •Кодування інформації шляхом штрихового коду
- •Г ейко Сергій Олегович
- •Анотація
- •1. Теоретичні відомості
- •1.1. Cпособи побудови штрихових кодів та методи класифікації
- •1.2 Деякі поняття теорії інформації
- •1.2.1 Мiра iнформацiї
- •Iнформацiйна ентропія
- •1.2.3 Умовна ентропія. Iнформацiя, що мiститься в одному дослiдi вiдносно iншого
- •1.2.4 Надлишковість
- •1.2.5 Цiннiсть iнформацiї
- •1.2.6 Експоненціальний закон збiльшення числа повiдомленнь
- •Коди з виявленням та виправленням помилок
- •Кодування інформації
- •1.3.2 Коди з виявленням I виправленням помилок
- •2. Огляд найбільш вживаних Лінійних штрихових кодів
- •2.1 Загальний огляд
- •Модуль: 10
- •Широкий
- •Вузький
- •3. Двомірні штриховІ кодИ
- •3.1 Загальний огляд
- •4. Створення самокорегуючого штрихового коду
- •4.1 Постановка задачі
- •4.2 Хід роботи
- •5. Охорона праці Аналіз небезпечних та шкідливих виробничих факторів
- •Заходи для забезпечення нормальних умов праці та розрахунок природної освітленості
- •Забезпечення безпеки експлуатації еом
- •Література
- •Проект MoonBug
Коди з виявленням та виправленням помилок
Кодування інформації
Кодуванням називається процес встановлення певної вiдповiдностi мiж повiдомленнями i тiєю системою символiв, за допомогою яких цi повiдомлення передаються. Сама система символiв називається кодом.
Основнi цiлi кодування наступнi.
1. Надання повiдомленням максимально короткої (стислої) форми з метою збiльшення пропускної спроможностi каналу, зоокрема для кращого використання пам'ятi в математичних машинах.
2. Надання повiдомленням форми, зручної для подання їх за допомогою електричних або механiчних сигналiв.
3. Максимальне спрощення логiчних i обчислювальних операцiй над повiдомленнями. Наприклад, якщо кiлькiснi повiдомлення представленi десятковим кодом (десяткова система числення), то для виконання операцiї множення необхiдно було б реалiзувати фiзично в пам'ятi машини таблицю множення. Якщо ж цi повiдомлення кодувати двiйковим кодом (двiйкова система числення), то оскiльки всi символи коду - одиницi або нулi, то потреба в таблицi множення пропадає; множення на нуль дасть нуль, а множення на одиницю зводиться до повторення числа.
4. Максимальна помiхостійкiсть лiнiї зв'язку i приладiв передачi i обробки iнформацiї.
Звичайно, створити код, що задовольняв би всiм перерахованим умовам, практичнi неможливо. Тому в залежностi вiд головних вимог, що накладаються системою або частиною системи, вибирають код, що краще всього задовольняє якiйсь з цих умов. При цьому нерiдко для однiєї частини системи використовують одну систему кодування, а для iншої - iншу. Стикуючи їх за допомогою приладiв, що переводять один код в iнший.
Так, наприклад, для лiнiї передачi iнформацiї, де важлива максимальна швидкiсть передачi повiдомлень, тобто максимальне використання пропускної спроможностi каналу, код слiд вибирати по першiй умовi. В цьому випадку може виявитися найбiльш зручним метод кодування Фано. Однак такий код являє собою код змiнної довжини, внаслiдок чого вiн незручний для виконання логічних i обчислювальних операцiй. Тому для обчислювальних приладiв системи бажаний код, що задовольняє третiй умовi, i т. д.
Найбiльш часто ми зустрiчаємось з проблемою кодування, коли маємо дiло з кiлькiсними повiдомленнями. Всяка система числення в принципi є певним кодом. Наприклад, в десятковiй системi число 123 представляється в виглядi: 1·102+ 2·101+ 3·100, тобто в виглядi суми мiр десятки. При цьому кодом числа є коефiцiенти при цих мiрах, тобто в даному випадку 123. Алфавiт такого коду складається з 10 символiв 0, 1, 2, 3, ..., 9, тобто L=10. Аналогiчно в двiйковiй системi числення, числа представляються в виглядi суми мiр двiйки. Наприклад, число 14 представляється в виглядi 1·23 + 1·22 + 1·21 + 0·20 або 1110. Тут кодом є коефiцiенти при вiдповiдних мiрах двiйки, i, отже алфавiт коду мiстить два символи - 0 i 1, тобто L= 2.
Декодування - процес, зворотний кодуванню. Вiн полягає в переходi вiд системи символiв до повiдомлень на звичайнiй мовi. Отже, процес декодування використовує ту ж систему вiдповiдностi, але в зворотньому напрямку. В принципi, код - це мова даної iнформацiйної системи. Тому кодування i декодування - це перехiд з однiєї мови на iншу.
Якщо в якостi сигналу, що передає iнформацiю, використовується безперервний сигнал, та вiдповiднiсть мiж повiдомленням i сигналом звичайно представляється за допомогою масштабного множника
х(t) =me (t). (1.86)
Тут x(t) - деяка кiлькiсна величина (повiдомлення), e(t) - безперервний фiзичний сигнал (наприклад, електрична напруга), m -масштабний множник. Безперервнi сигнали використовуються головним чином для передачi кiлькiсної iнформацiї, наприклад математичних змiнних в обчислювальних машинах безперервної дiї.
Навпаки, при дискретних сигналах навiть при передачi кiлькiсної iнформацiї використовуються коди, i в принципi окремi сигнали передають символи кодiв. Оскiльки кiлькiсть рiзноманiтних символiв обмежена (алфавiт коду), то достатньо мати всього декiлька дискретнiх рiвнiв сигналу для передачi будь-якого повiдомлення. Останнє дозволяє iстотно збiльшити точнiсть i помiхостiйкiсть систем передачi i обробки iнформацiї, бо тiльки дуже сильнi перешкоди можуть викривити сигнал, що передаеться, настiльки, що на приймальному кiнцi даний рiвень сигналу, котрий представляє даний символ, може бути прийнятий за iнший рiвень сигналу котрий представляє iнший символ. Саме тому цифрова електронна математична машина, де iнформацiя представлена дискретним кодом (тому вона i називається цифровою), значно точнiша, нiж математична машина безперервної дiї (аналогова).
Вибiр того або iншого коду визначається головною метою, яку ми переслiдуємо при кодуваннi. Однак незалежно вiд цього будь-який код повинен задовольняти наступнiй основнiй умовi: даний код може служити мовою деякої iнформацiйної системи в тому i тiльки в тому випадку, якщо свобода вибору в кодi (його ентропiя) рiвна або бiльша свободи вибору в iнформацiї (в системi повiдомлень). Справдi, очевидно, необхiдна умова вибору коду полягає в тому, щоб число допустимих комбiнацiй коду Nk було бiльше або рiвне числу рiзноманiтних повiдомлень Nc, тобто
Nk Nc. (1.87)
Виберемо код постiйної довжини, алфавiт якого складається з L символiв i число позицiй (довжина кодового слова) рiвно n. За допомогою такого коду можна утворити Ln рiзноманiтних комбiнацiй (за вiдсутностi в кодi обмежень)
Nk = Ln. (1.88)
Пiдставляючи (1.88) в нерiвнiсть (1.87), отримаємо
Ln Nc
або
nlogL logNc (1.89)
звiдки
n log Nc/log L (1.90)
Умова (1.90) - це умова вибору мiнiмального коду постiйної довжини для даної системи повiдомлень. Тут n - найближче бiльше цiле число, причому якщо має мiсце знак >, то код буде надлишковим.
Так як всi Ln комбiнацiї рiвноможливi, свобода вибору коду рiвна
Hk = logNk = n logL. (1.91)
З iншого боку, максимальна свобода вибору iнформацiї буде при рiвноможливих повiдомленнях, i в цьому випадку вона рiвна
Hc= logNc. (1.92)
Порiвнюючи (1.91), (1.92) з (1.89), отримаємо, що умова (1. 89) рівносильна
Hk Hс (1. 93)
Таким чином, свобода вибору в кодi повинна бути бiльша або рiвна свободi вибору в системi повiдомлень. Якщо ж iмовiрностi рiзноманiтних повiдомлень неоднаковi, то необхiдна рiвнiсть в (1. 87) або (1. 89) призведе до нерiвностi в (1.93) (так як log Nс>Hc), тобто в цих випадках код постiйної довжини надлишковий. При нерiвноможливих повiдомленнях отримати рiвнiсть водночас в (1. 87) i (1. 93), тобто отримати код, оптимальний в сенсi мiнiмуму довжини повiдомлень, можна тiльки за допомогою коду змiнної довжини.