Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник задач по дисциплине «Информатика» для ВУЗов. Методические указания к проведению практических занятий по дисциплине «Информатика», для студенто

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
В процесс передачи по каналу связи (или записи в память цифрового
устройства) сформированный код БЧХ v(x) может быть искажён и на приём поступит код
соответствии со следующим алгоритмом:
1) выполняется деление принятой последовательности
рождающий полином
2) вычисляется вес остатка
3) если
то производится циклический сдвиг влево на один разряд принятой после­довательности сдвига влево эквивалентна операции умножения полинома на х. Если полу-
чается фиктивная переменная х в степени 15, то в младшем разряде поли­нома нужно записать 1;
4) если
вательности с остатком;
5) производится циклический сдвиг полученной последовательности
вправо на количество разрядов, равное числу сдвигов влево, выполненное в
Решение.
Запишем принятое двоичное число в виде полинома:
Выполним декодирование. Результаты расчётов на каждой итерации
поместим в таблицу. Так как данный код позволяет исправлять две ошибки
. Декодирование полученных данных
)(xf
;
)(xg
w
(количество единиц в остатке);
sw
, где s – число ошибок, исправляемых данным кодом,
)(xf и вновь выполняется шаг 1. Математически операция
, то производится суммирование полученной последо-
sw
процессе декодирования принятой последова­тельности (в процессе деления).
При описании алгоритма декодирова-
ния использован термин
сдвиг».
в машинном слове на одну и ту же величину. Следующий рисунок иллюстрирует порядок перемещения битов при циклических сдвигах влево и вправо.
– младший значащий разряд (МЗР); MSB – старший значащий разряд (СЗР).
примере кода, сформированного ранее.
изошло искажение разрядов 13 и 11. В ре­зультате на приём поступило двоичное число
111001101101101.
Сдвиг – это изменение позиций битов
На рисунке приняты обозначения: LSB
Рассмотрим процесс декодирования на
Пример 1.
Предположим, что в данных (6) про-
происходит в
)( xf
«циклический
235689121314
.
1)(
xxxxxxxxxxf
на по-
)(xf
51
52
(s = 2), расчёты следует вести до тех пор, пока не будет выполнено условие w 2.
Ит. Полиномы Вес
w
1
2
3
4
5
1
)(
xf
1
)(
xC
1
)(
xP 1
2
)(
xf
2
)(
xC
2
)(
xP xxxx
3
)(
xf
3
)(
xC
3
)(
xP 1
4
)(
xf
4
)(
xC
4
)(
xP xxxxx
5
)(
xf
5
)(
xC
5
)(
xP 12x
26
xx
56
24
35
1
xx
356
xxx
346
1
xxx
467
xxx
1
xxx
2456
3567
xxxx
235689121314
1
xxxxxxxxx
4
34679101314
xxxxxxxxx
1
4
24578101114
xxxxxxxxx
1
5
2356891112
xxxxxxxxx
1
5
234679101213
xxxxxxxxxx
2
В таблице использованы такие обозначения:
i
- частное от деления
)(xC
i – той итерации;
i
- остаток от деления
)( xP
i
на порождающий полином
)(xf
i
на порождающий поли-
)(xf
)(xg
на
ном g(x) на i – той итерации.
На пятой итерации вес остатка достиг значения, при котором следует
прекратить дальнейшие расчёты (w = 2). За пять проведённых итераций было выполнено четыре циклических сдвига влево.
Выполненные операции позволяют наглядно понять, почему этот код называю циклическим. При выполнении сдвига влево крайний левый разряд считался соседним с крайним правым разр итерациях 2, 3, 4 последними слагаемыми полиномов
ядом. По этой причине на
i
являются еди-
)(xf

xxxxxxxxx
53
ницы. Это объясняется тем, что в этих случаях
и единица переходит
114x
в младший разряд последовательности. На пятой итерации полином
не содержит слагаемого, равного 1. Это происходит потому, что на
)(5xf
предыдущей итерации
.
014x
В соответствии с алгоритмом декодирования теперь следует перейти к шагу 4 и найти сумму полинома и остатка на последней итерации:
55
)()()(
xPxfxR
2234679101213
(7)
1
xxxxxxxxxxx
34679101213
.1
Полученный полином (7) преобразуем в двоичное число:
R(x) = 011011011011011. (8)
В соответствии с шагом 5 алгоритма декодированную последова­тельность (8) нужно циклически сдвинуть вправо на четыре разряда. Этапы сдвига показаны в таблице.
Номера сдвигов Числа
R(x) 011011011011011
1 сдвиг 101101101101101 2 сдвиг 110110110110110 3 сдвиг 011011011011011 4 сдвиг 101101101101101
Первые семь битов двоичного числа, полученного после четвёртого циклического сдвига вправо, являются информационными битами, в кото­рых были исправлены две ошибки.
Таким образом, в результате декодирования получено число 1011011, которое точно совпадает с переданным числом.
Этот пример наглядно демонстрирует возможность автоматического исправления возникших ошибок.
Заметим, что операцию циклического сдвига вправо можно осуще­ствить с помощ
ью полиномов путём деления на х.
54
4. Задания для выполнения практической работы «Помехоустойчивый код БЧХ»
4.1. Сформировать помехоустойчивый циклический код БЧХ, у ко-
торого число информационных разрядов k = 7, число контрольных разря­дов r = 8, а порождающий полином
Задача Данные Задача Данные
1 1100001 9 1101001 2 1100010 10 1101010 3 1100011 11 1101011 4 1100100 12 1101100 5 1100101 13 1101101 6 1100110 14 1101110 7 1100111 15 1101111 8 1101000 16 1110100
Домашнее задание
Перевести две последние цифры зачётки в двоично-десятичный код и отбросить младший бит. К полученному числу поразрядно прибавить (по правилу дизъюнкции) двоичное число 1001010. С помощью получившихся семи бит сформировать циклический код БЧХ.
4678
.1)(
xxxxxg
Таблица 8.1
55
Практическая работа 9
«QR-код»
1. Цель работы
Получить представление о новых приложениях, использующих по­мехоустойчивое кодирование информации.
2. Связь с другими темами практических работ
Данная практическая работа опирается на практические работы «Системы счисления», «Логические основы работы ЭВМ» и позволяет по-
лучить представление о помехоустойчивом кодировании информации с помощью графических матриц.
3. Теоретические сведения и расчётные формулы
Информация в QR-матрице кодируется при помощи черных и белых квадратов (модулей, пикселей), которые после сканирования превращают­ся в логические единицы и нули.
Формирование изображений матриц ведётся таким образом, чтобы обеспечить наиболее благоприятные условия для работы сканирующей аппаратуры. Для этого в процессе кодирования создаётся несколько графи­ческих матриц и выбирается лучшая из них. Появляющиеся в процессе эксплуатации искажения рисунк ния помехоустойчивого кода Рида-Соломона.
QR-код (англ. quick response — быстрый отклик) — матричный код, разработанный японской компанией «Denso-Wave» в 1994 году.
Максимальное количество символов, которые можно поместить в одну матрицу, зависит от вида кодируемой информации (цифры, буквы, двоичный код, иероглифы), уровня коррекции ошибок и версии используе­мого QR-код коррекции ошибок можно разместить 7089 десятичных цифр, либо 4296 букв и цифр, либо 2953 двоичных данных, либо 1817 иероглифов.
абонентов мобильной связи. Пользователь может моментально занести в свой мобильный телефон (ноутбук) текстовую информацию, контакты в адресную книгу, перейти по Web-ссылке, от
вировка металлической поверхности позволяет наносить код на детали, подвергающиеся воздействиям высоких температур, давлений или агрес-
а. Для версии 40 в одной матрице при минимальном уровне
Наибольшее распространение рассматриваемый код получил среди
QR-коды используются для маркировки ответственных деталей. Гра-
а матрицы устраняются путём использова-
править SMS-сообщение и т. д.
56
сивных химических веществ. Данный код имеет высокую помехоустойчи­вость. Даже при наличии повреждений (искажений) изображения на пло­щади 30% всё ещё есть возможность безошибочно считать информацию.
Три квадрата в углах изображения QR-матрицы позволяют устрой­ству правильно определять его пространственную ориентацию по отноше­нию к матрице. Черные и белые точки изображения преобразуются считы­вающим устройством в
двоичные числа. Затем производится обработка цифровой информации. На матрице размещается системная информация, информационные биты, корректирующие биты.
QR-матрицы можно создавать с различной степенью помехозащи­щённости. Чем выше помехозащищённость, тем больше избыточной ин­формации содержит матрица и тем меньше остаётся места для информаци­онных битов.
Матрицу можно создать с одним из четырёх ур
овней коррекции ошибок. Эти уровни определяют долю информации, подлежащую восста­новлению за счёт использования корректирующего кода.
Уровень коррекции
ошибок
Код Допустимые
искажения
L 01 7%
M 00 15%
Q 11 25% H 10 30%
Уровни L и M рекомендуется использовать для печати кодов на при­гласительных билетах, объявлениях, визитках, плакатах, рекламных щитах и т.д. Уровни Q и H применяют для маркировки промышленных деталей, когда существует высокая вероятность повреждения изображения.
Следующая таблица показывает, как выглядит код слова «Проба» при различных уровнях коррекции ошибок. Визуально можно заметить, что с увеличением уровня помехо
устойчивости число элементов в матрице
растёт.
Высокая степень помехоустойчивости QR-кодов подтверждается экспериментально. Даже на матрицах, перечёркнутых широкой кистью, есть возможность правильно декодировать информацию. Следует обратить внимание, что считывание информации прекращается в случаях, когда су­щественно искажён один из трёх квадратов, отвечающих за определение ориентации матрицы.
Информационные биты, контрольные биты и системная информаци располагаются в определённых местах матрицы. Порядок размещения всех элементов матрицы определены правилами, которые описаны в специфи­кации [12].
я
57
7%
15%
25%
30%
На каждой матрице имеется три указателя ориентации 1 (УО). Меж­ду тремя УО проходят две линии синхронизации 2, которые состоят из че-
редующихся белых и черных моду­лей (пикселей). Вблизи левого ниж­него указателя ориентации размеща­ется чёрный пиксель 3.
В настоящее время создано 40 версий QR-кодов. На матрицах QR­кодов, начиная с версии 2, имеются метки центровки 4. В версии 1 такой метки нет, но в старших ве
рсиях QR­кода можно насчитать 46 таких ме­ток.
В областях 5 для версий стар­ше шестой размещается информация о версии кода. В четырёх модулях 6 содержится код, которые определяет, какой вид данных содержится в мат­рице. Системная информация разме­щается в областях 7 и 8.
Информация об уровне кор­рекции ошибок и виде испо
льзован­ной маски располагается в системной строке (см. рисунок слева). Разряды 14 и 13 содержат сведения об исполь­зуемом уровне коррекции ошибок. Разряды 12, 11 и 10 показывают, ка­кая маска использована для наложе­ния на информационные и корректи-
58
рующие биты. Три бита позволяют сформировать коды для восьми разных масок.
Системная информация дублируется. Один раз 15 системных битов размещают в столбце 8 (счёт элементов ведётся, начиная с 0 из левого верх­него угла матрицы). Второй раз системную информацию размещают в строке 8.
Наиболее просто операция декодирования выполняется с помощью мобильного телефона или планшета со встроенной фотокамерой и установ-
й программой считывания.
ленно
Существует 40 версий QR-кода. С увеличением номера версии кода объем помещаемых в матрицу данных увеличивается. Определить, к какой версии относится данная матрица, можно тремя способами:
подсчитать, какое число пикселей содержит матрица;
определить координаты меток центровки;
для версий старше шестой существуют области на матрице,
где содержится информация об используемой версии.
В таблице приведена информация о числе модулей (пикселей) для различных версий QR-кодов.
Версия Число модулей
1 21х21 2 25х25 3 29х29
… … 40 177х177
Анализируя, приведённую таблицу, легко заметить линейную зако­номерность: очередная версия QR-кода отличается от предыдущей версии тем, что сторона матрицы увеличена на 4 модуля. Подсчитав число моду­лей, можно определить версию QR-кода для данной матрицы.
В таблице приведены сведения о координатах меток центровки для версий 2…13
Версия Строки Версия Строки
2 6 18 8 6 24 42 3 6 22 9 6 26 46 4 6 26 10 6 28 50 5 6 30 11 6 30 54 6 6 34 12 6 32 58 7 6 22 38 13 6 34 62
На следующем рисунке для примера показано изображение матрицы QR-кода версии 7.
59
Из рисунка видно, что шесть меток центровки расположены на пересечении строк и столбцов, указанных в предыду­щей таблице. Координаты определяются по чёрному модулю (пикселю), располо-
женному внутри белого квадрата. Метки центровки не ставятся в местах, где распо-
ложены указатели ориентации (три угла).
На матрицах, начиная с версии 7, имеются две области, где содержится зако­дированная и
нформация об использован-
ной версии. Эти области отмечены на ри­сунке цифрами 1 и 2. В таблице приведены коды некоторых версий QR­кода.
Версия Код
7 001010010011111000 8 000111101101000100 9 100110010101100100 10 011001011001010100 11 011011111101110100 12 001000110111001100 13 111000100001101100
Следующие две таблицы показывают, в каком порядке размещаются биты восемнадцатиразрядного кода, который определяет версию програм­мы.
0 3 6 9 12 15 1 4 7 10 13 16 2 5 8 11 14 17
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
Рассмотрим, как определить уровень коррекции ошибок. Так как системная информация дублируется, то сведения о имеющейся корректи­рующей способности кода можно отыскать в двух местах матрицы. Один раз 15 бит системной информации помещаются в строке 1 (отсчёт слева направо), а втор
ой раз - в столбце 2 (отсчёт снизу-вверх). Естественно, что
эти два значения в штатных ситуациях одинаковые. Сведения об уровне
60
коррекции ошибок содержатся в первых двух битах системной информа­ции. Эти два бита расположены в 14 и 13 разрядах системной строки.
На следующем рисунке первые два бита в системной строке равны 1.
Напомним, что логические единицы изображе­ны в виде черных пикселей (модулей), а логи­ческие нули – в виде белых. Чтобы определить уровень коррекции нужно эти два бита сло­жить по правилу
Исключающее ИЛИ с двоич­ной маской 10. В результате сложения полу­чим:
.
011011
Код 01 соответствует уровню коррекции
ошибок L (7%).
На следующем рисунке показана матри-
ца, в которой использован иной уровень кор-
рекции ошибок. Первые два бита во втором случае равны 10. Суммирова­ние с маской 10 даёт результат 00. Это говорит о том, что в этой матрице использован код с уровнем коррекции ошибок М (15%).
Аналогично производятся вычисления для матриц с уровнями кор-
ошибок Q и H. На этих матрицах системная информация начинает-
рекции
ся битами 01 и 00 соответственно. Суммиро­вание с маской 10 даст двоичные коды 11 и 10 соответственно.
Для повышения надёжности сканиро­вания матрицы подвергают дополнительной обработке. Целью этой обработки является формирование такого рисунка (конфигура­ции) графической матрицы, на котором было бы как можно меньше смежных модулей оди­накового цвета. Простыми словами это тр
ебо­вание можно сформулировать так: «Матрица должна быть пёстрой и на ней должно быть
минимум однотонных сплошных протяжённых участков». Этим облегчает­ся работа сканирующей аппаратуры, например, мобильных телефонов.
Цель достигается следующим образом: формируют 8 матриц с оди-
наковым информационным содержанием, но разного вида (разной фо
рмы). Для этого используют 8 заранее подготовленных масок, которые суммиру­ют с исходной матрицей по правилу Исключающее ИЛИ. Полученные мат­рицы поочерёдно подвергают математической обработке, в результате ко­торой выбирают одну матрицу. Отбор матриц осуществляют путём вычис­ления штрафных баллов. Для оптимальной (наиболее «пёстрой») матрицы число штрафных баллов будет минимальным сред
и восьми чисел.
Восемь масок кодируются трёхразрядными числами от 000 до 111.
Математически маски описываются формулами, приведёнными в таблице.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]