
- •Пояснювальна записка
- •Кодування інформації шляхом штрихового коду
- •Г ейко Сергій Олегович
- •Анотація
- •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
Модуль: 10
ВАГИ: 131313131313
СУМА: Добутків
Пояснимо це детальніше, розбивши весь процес знаходження контрольного числа на кроки.
КРОК 1: Починаючи з крайнього праворуч розряду, виключаючи контрольний розряд, скласти величини парних розрядів;
КРОК 2: Результат КРОКУ 1 помножити на 3;
КРОК 3: Скласти величини розрядів, що залишалися;
КРОК 4: Скласти результати КРОКІВ 2 і 3;
КРОК 5: Значення контрольного розряду є найменшим числом, що в сумі з величиною, отриманої в КРОЦІ 4, дасть число, кратне 10.
Приклад розрахунку контрольного розряду в коді EAN-13 =467622135746С
4 6 7 6 2 2 1 3 5 7 4 6 C
Крок 1: 6+6+2+3+7+6=30
Крок 2: 303=90
Крок 3: 4+7+2+1+5+4 =23
Крок 4: крок 2+ крок 3=113
Крок 5: С=120-113=7
Роз'яснення: наступне за 113 найближче кратне 10 число рівне 120. Тому контрольний розряд в коді EAN-13 буде рівний: 120 - 113=7, а повний номер EAN-13 буде наступним: 4676221357467.
Розглянемо особливості графічної побудови кодів типу EAN-13. Штрихові коди цього типу повинні мати так-звані “тихі зони” з обох боків штрихкоду. “Тихі зони” – незаповнені області, вільні від будь-якого друку, звичайно їх ширина не повинна бути меншою десятикратної ширини найменшого бруска штрихового коду.
Якщо уважно роздивитися штриховий код EAN-13, то можна побачити, що на початку та в кінці, а також посередині штрихкоду є бруски довжина яких більша ніж у інших. Ці бруски є контрольними і використовуються для “регулювання” сканера. Перше число з 13-ти значного коду розташоване зовні цих брусків, решта 12 поділена на дві групи й записані в середині коду. Кожне число закодоване через сім брусків: чорний=1 та білий=0.
Штриховий код використовує три набори бітових рядів для представлення чисел 0-9.
Таблиця 4.
№ Набір А Набір В Набір С
0 |
0001101 |
13 |
0100111 |
39 |
1110010 |
114 |
1 |
0011001 |
25 |
0110011 |
51 |
1100110 |
102 |
2 |
0010011 |
19 |
0011011 |
27 |
1101100 |
108 |
3 |
0111101 |
61 |
0100001 |
33 |
1000010 |
66 |
4 |
0100011 |
35 |
0011101 |
29 |
1011100 |
92 |
5 |
0110001 |
49 |
0111001 |
57 |
1001110 |
78 |
6 |
0101111 |
47 |
0000101 |
05 |
1010000 |
80 |
7 |
0111011 |
59 |
0010001 |
17 |
1000100 |
68 |
8 |
0110111 |
55 |
0001001 |
09 |
1001000 |
72 |
9 |
0001011 |
11 |
0010111 |
23 |
1110100 |
116 |
Границі: 101
Центр: 01010
Для використання цієї таблиці необовязково знати її всю. Набори В та С можна утворити з набору А слідуючим чином. Набір С рівний запереченню набору А (тобто С=notA), а набір В є записом набору С в зворотньому порядку.
Розділимо умовно наш 13-ти значний код на три групи
N YYYYYY GGGGGG.
Числа позначені в нашій схемі буквою G будуть кодуватися бітовими рядами з набору С. Числа позначені Y кодуються бітовими рядами з групи А або В. Група YYYYYY може приймати такі значення (Таблиця 5):
Таблиця 5.
№ набору |
№1 |
№2 |
№3 |
№4 |
№5 |
№6 |
0 |
A |
A |
A |
A |
A |
A |
1 |
A |
A |
B |
A |
B |
B |
2 |
A |
A |
B |
B |
A |
B |
3 |
A |
A |
B |
B |
B |
A |
4 |
A |
B |
A |
A |
B |
B |
5 |
A |
B |
B |
A |
A |
B |
6 |
A |
B |
B |
B |
A |
A |
7 |
A |
B |
A |
B |
A |
B |
8 |
A |
B |
A |
B |
B |
A |
9 |
A |
B |
B |
A |
B |
A |
Номер набору вибирається в залежності від значення числа N в нашій схемі.
Як бачимо перше число, те що винесено за межі штрихкоду, кодується не брусками штрихкоду, як інші числа, а комбінацією наборів наступних шести чисел. Розглянемо приклад:
ШТРИХОВИЙ КОД: 8 000570 004257
1.Перший символ 8, тому група буде мати вигляд АВАВВА
2.Для чисел 000570 вибираємо бітові ряди зі слідуючих наборів: ABABBA, а для чисел 004257 з набору C
3.Схемою нашого числа буде: 8 ABABBA CCCCCC
Штриховой код EAN8 формується подібно коду EAN13, з тією лише різницєю, що замість пятизначных номерів для ідентифікації компанії і товару використовуються, відповідно, трьохзначні і двозначні номери. Перші дві цифри - номер країни, наступні три цифри - номер компанії, після цього іде унікальний номер товару і остання цифра - контрольна.
Для знаходження контрольного числа в EAN8 використовується той же механізм. Параметри тут будуть наступні:
МОДУЛЬ: 10
ВАГИ: 3131313
СУМА: Добутків.
Штрихові коди типів UPC є різновидами кодів EAN які використовуються виключно на території Сполучених Штатів (аналогічно в Японії використовують аналог цих кодів - JAN).
Рис: UPC-A Рис: UPC-E
9 червня 1997 року американська організація Uniform Code Council прийняла рішення про розширення з 1січня 2005 року кодів UPC-A та UPC-E на один сивол, тим самим привівши їх до стандартів EAN13 та EAN8.
Code39 та CODABAR
С
ode39
- алфавітно-цифровий штриховий код. Він
був розроблений в 1974 році, і був призначений
щоб кодувати 43 символи: 26 букв латинської
абетки верхнього регістру, 10 цифр і 7
спеціальних символів(знаків). Він може
бути розширений на всі 128 ASCII символи(знаки),
використовуючи два символи, що задають
схему кодування.
Кожний знак даних, кодований в Code39 складений з 5 чорних брусків (барів) і 4 пробілів для загальної кількості 9 елементів. Кожний брусок (бар) або пробіл є або 'широким' або 'вузьким', і 3 з 9 елементів завжди широкі. Саме тому цей код і отримав свою назву.
Штриховий код включає тиху зону (10x-барів або 0.10 дюймів, що є більшим), символ початку '*', кодовані дані, символ зупинки '*', і знову тиха зона. Символ ‘*’ зірочки використовується тільки як код зупинки і початку. X-бар - ширина самого маленького елементу в символі штрихового коду. Висота брусків(барів) повинна бути принаймні 15-ти кратною довжиною символу або 0,25 дюймів. Повна довжина символу дасться рівнянням:
L=(C+2) (3N+6) X (+C+1)I
Де
L=довжина символу включаючи «тихі зони»
C=число знаків даних
X=X-бар (ширина самого маленького елементу)
N=Відношення широкого бруска до вузького
I=Ширина проміжку між знаками
Таблиця 6.
Character |
B1 |
S1 |
B2 |
S2 |
B3 |
S3 |
B4 |
S4 |
B5 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
3 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
4 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
5 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
6 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
8 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
9 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
To |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
B |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
C |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
D |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
And |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
F |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
G |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
H |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
I |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
J |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
K |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
L |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
M |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
N |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
Or |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
P |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Q |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
R |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
S |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
T |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
U |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
V |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
W |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
X |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
Y |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Z |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
- |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
. |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
space |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
* |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
$ |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
/ |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
+ |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
% |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
B1-B5 бруски
S1-S4 пробіли