В настоящее время я работаю над некоторым кодом для передачи сообщений / файлов / и других данных через лазеры с использованием преобразования звука. Мой текущий код использует функцию hexlify из модуля binascii в python для преобразования данных в двоичный файл, а затем издает тон для 1 и другой тон для 0. Это в теории работает, хотя и не самый быстрый способ кодировать / декодировать , но в тестировании оказывается несколько ошибок.
генерируемые тоны не являются точными, то есть: излучение 150 Гц может оказаться равным 145-155 Гц на приемной стороне, это не является большой проблемой, так как я могу просто установить границы на приемной стороне ниже или выше.
реальная проблема заключается в том, что, если я издаю тональный сигнал и он воспроизводится, компьютер на принимающей стороне может прочитать его несколько раз или не прочитать вообще, основываясь на частоте дискретизации входящего звука. Я пытался воспроизводить тоны с той же скоростью, что и сэмплы, но это очень сомнительно.
В целом, у меня было несколько успешных прогонов с использованием коротких сообщений, но это очень ненадежно и неточно из-за вышеупомянутых проблем.
Я рассмотрел это дальше, и решение этого вопроса может заключаться в том, что оно может включать BPSK или двоичную фазовую манипуляцию, хотя я не уверен, как это реализовать. Любые предложения или примеры кода будут оценены!
Мой код для проекта можно найти здесь , но основные файлы, над которыми я работаю, предназначены для двоичного декодирования и кодирования, которые здесь и здесь, Я не специалист по питону, поэтому прошу прощения, если что-то, что я сказал, неверно, мой код не самый лучший, или если я пропустил что-то простое.
Спасибо! : -)