DrCrWa писал(а):
Беда майлса в том что любые 14 импульсов после заголовка считаются правильными.
и если по стечению обстоятельств мы получили сигнал похожий на правильный - то поподание....
Когда Вы анализировали кодирование аналогичное Майлс - то несомненно не могли не заметить, что если на приемной стороне анализировать длительности и импульсов и пауз, то внести помеху в такой сигнал невозможно. Если сторонняя засветка "удлиняет" импульс - то соответственно уменьшится и пауза после него - зафиксируем ошибку приема. Если сторонняя преграда каким-то образом "укоротит" длину импульса - то опять же увеличится длина паузы - зафиксируем ошибку.
Вы возьмите банально нарисуйте в тетрадке сигнал, и попробуйте внести в него помеху
.
И для майлса здесь есть единственное слабое место - это последний бит. Так как после него импульсов нет, то возникает неопределенность, и никогда точно не известно - действительно ли приняли бит "1", или на передаваемый "0" наложилась помеха; действительно ли приняли "0", или передаваемая "1" была урезана до 0 препятствием.
Вот для решения этой неопределенности я полностью с вами согласен и считаю что было бы неплохо ввести
стоповый бит. И больше никаких проверок в виде CRC не надо будет - само кодирование достаточно помехозащищенное.
То что предлагаете вы - восстановление передачи за счет введения избыточности - тоже на мой взгляд лишняя функция. Я бы еще понял если б вы передавали в доп.битах какую-то служебную информацию (тот же номер пули к примеру). А восстанавливать битый пакет смысла нет - для этого случая есть замечательный звук "пролетающая пуля"