Pull to refresh

Коды, исправляющие ошибки. Варианты программной реализации

Reading time2 min
Views7.9K
Сразу прошу не «прогонять пинками», я старался, и это может быть полезно для таких же школьников как я.

Коды, исправляющие ошибки.


Существует множество кодов, исправляющих ошибки в двоичном коде. Это очень полезно, потому что множество информации портиться при хранении или передачи информации. Одним из примеров данных кодов можно привести «код Хемминга»(Подробно о нём уже написал другой автор http://habrahabr.ru/post/140611/). Они добавляют к бинарному тексту дополнительные, кодовые биты, при помощи которых мы сможем исправить полученные ошибки.

Каждый такой код имеет две характеристики – k и n. Такой код называется (n,k)-кодом. Здесь “n” обозначает общее количество символов в блоке закодированного текста, а “k” – число значимых символов.
Например, простейшим кодом является код с повторениями. В этом коде к каждому символу двоичного кода добавляется по n-1 кодовых битов, которые дублируют, значимый символ и в последствие мы сможем исправить ошибку. Например (3,1)-код дописывает к каждому символу в двоичной системе два таких же и при зашумлении, если меняется один символ из блока, то остаётся 2 одинаковых и по ним мы возвращаем исходный символ.

Описание проекта


В моей программе мы использовали 2 вида таких кодов, это (3,1)-код с повторением и (7,4)-код, который является одним из так называемых «кодов Хэмминга». Однако моя программа написана так, что в неё без особых усилий и затрат времени можно добавить любой другой код типа (n,k).

Для того чтобы осуществить свою цель, мне потребовалось переводить обычный текст в бинарный вид, затем добавлять кодовые биты, помогающие мне восстановить текст. И для того, чтобы с эмитировать ошибки в бинарном коде, я написал процедуру, зашумляющую текст (совершающую ошибки в бинарном коде).

Затем я переводил в обычный текст зашумлённый код, чтобы продемонстрировать пользователю действенность зашумления. Следующим действием я исправлял оставшийся у мой зашумленный код и переводили его в обычный текст.

Для создания своей программы я использовал справку программы Pascal, мои собственные знания и «великий» Google.com.

Выводы и перспективы.


Я создал программу, реализующую два кода исправляющих ошибки в тексте, полученные при переносе или длительном хранении файла с информацией. А так же улучшил свои навыки в языке программирования Pascal.

Исходные коды


Прошу прощения за «еврейский код» и за турбо паскаль тоже(нормальный компьютер сломался, писал на пеньтиуме втором). Код может помочь школьникам на уроках информатике и олимпиадникам.
Tags:
Hubs:
Total votes 25: ↑13 and ↓12+1
Comments13

Articles