Как исправить ошибки и стирания при передаче данных?
Я пытаюсь построить модем, используя JavaScript. Текст, который я хочу отправить, преобразуется в ASCII (шестнадцатеричный) и кодируется в звук с использованием FSK, поэтому я использую 16 различных частот для шестнадцатеричных чисел.
Иногда это работает довольно хорошо, но иногда не получается. Когда это терпит неудачу, это из-за нескольких номеров. Допустим, я передаю 50 номеров, тогда, может быть, 2 или 3 максимальных ошибки выдачи: они не получены или, возможно, они получены, когда они не были переданы.
В тех случаях, когда некоторые числа принимаются как другие (например, 3 вместо 2), проблем не возникает, поскольку я использую реализацию кода Рида-Соломона на JavaScript.
Пример:
Transmitted: 0123456789
Received: 0193456789
Обратите внимание, что все номера были получены, но есть ошибка в 3-м номере. Нет проблем. Рид-Соломон может решить это.
Transmitted: 0123456789
Received: 05123456789
Обратите внимание, что есть дополнительный номер, который не был передан. Ошибка.
Transmitted: 0123456789
Received: 023456789
Обратите внимание, что отсутствует номер. Ошибка.
Итак, как я могу исправить случаи, когда отсутствует номер или номер, который не должен быть там? (Очевидно, не зная позиции ошибки).
Спасибо