- Кодирование, внесение ошибки, декодирование
- Работа с любым типом файлов, директориями, архивами
- CLI с модулем docopt
- Выбор между самописным интерфейсом матрицы и интерфейсом numpy
- Поддержка мультипроцессинга
- Легко расширяемая структура
- git clone https://github.com/o-l-e-z-a/hamming_project.git && cd hamming_project && pip install -r requirements.txt
- python main.py run -h -> для получения документации по запуска консольного приложения
- построение проверочной матрица размерами (n, n-k), где n - общее число символов, k - количество информационных бит
- построение порождающей матрицы размерами (n, k)
- кодирование осуществляется путем уноможения вектора i, состоящего из информационных бит на порождающую матрицу
- в результат кодирования вносится 1 ошибка в случайный бит (его инвертирование)
- синдром вычисляется путём умножения проверочной матрицы на вектор с внесённой ошибкой
- значение синдрома переводится из 2 системы в 10 -> индекс ошибки в векторе
- исправляем ошибку путём инвертирования бита в найденной позиции и отбрасываем проверочные биты -> результат декодирования