Я сделал некоторую работу в выходные дни на моем звуковом кодеке Java. (
http://jdigi.net)
Теперь она может преобразовать текст ASCII к звуку и обратно.
Вот звуковой файл и скриншот текста "XB: 1KAcxZPRc495U8ZQxnY1ZnhRE46HvA6nUc а = 4,025&л = Биткойн Booksy1234z" передаются и принимаются с несущей частотой 1000 Гц. (Я объясню текст в данный момент).
Звуковой файл:
http://multibit.org/jdigi/sample.auСкриншот:
http://multibit.org/jdigi/screenShot1.pngВремя, необходимое для передачи текста: 5.75 секунд.
Формат передаваемого текстаТекст, он основан на Bitcoin URI, но я сокращенно обычный «Bitcoin:», "количество", "метка" сократить длину.
Я думаю:
1) Запустить текст с ASCII 0x02 STX - начало текста - показано, как буква "Икс" выше.
2) Отделить конец основного текста URI из контрольной суммы с ASCII 0x03 - конец текста - показано, как буквы «у».
3) Добавьте 4 символа контрольной суммы для обнаружения ошибок (или что-то более сложным, чтобы дать некоторую коррекцию ошибок) - показано, как текст «1234»
4) Завершить сообщение с ASCII 0x04 - конец передачи - показаны в виде буквы «Z»
Пропускная способностьЕсли вы посмотрите на скриншоте в спектре на день (так называемого водопад, потому что она прокручивается вниз) вы можете увидеть, что сигнал с использованием около 500 Гц полосы пропускания. Это PSK125.
Глядя на месте Android рынка я вижу есть существующий PSK кодек доступен как
https://market.android.com/details?id=com.wolphi.psk31&гл = еп. Верхняя частота на его водопаду 2000 Гц, так давайте ограничимся этим.
С полосой пропускания 100 Гц - 2000 Гц вы можете:
1) Частота мультиплексировать передачи сигнала в два раза, чтобы половину времени передачи - 2 х 500 Гц = 1000 Гц. Передача времени < 3 секунды.
2) иметь «обратный канал» (возможно, PSK63 = полоса пропускания 200 Гц)
Задний канал будет использоваться для подтверждения того, как сообщение было получено ок.
ПрименениеЯ имею в виду, было бы целесообразно, чтобы:
1) Иметь автономный бумажник, "бумажник", Который имеет микрофон и динамик и соединение USB.
2) Вы можете использовать его в буквальном смысле говорить с сетевым устройством, "гостья", следующим образом:
2.1) Хост Bitcoin URI коды ответчика в бумажнике, чтобы попросить немного Bitcoin.
2.2) Wallet признает Bitcoin URI, запрашивает у пользователя, если они хотели бы платить
2.3) Пользователь обязуется оплатить, бумажник подписывает сделку и коды ответчика к хосту
2,4) Хост признает сделку и направляет его к сети Bitcoin (она всегда будет делать это, как он хочет, чтобы деньги!).
2.5) Wallet отслеживает сделки и, возможно, вы синхронизировать его дома через USB, так что он проверяет blockchain для сделок и так, что вы можете поместить больше наличные деньги на него.
Небольшой автономный бумажник с микрофоном, маленьким динамиком, маленькой клавиатурой и дисплеем не будет стоить очень много. Вы также можете иметь его как приложение для Android.
постскриптум Я также хотел бы добавить, что код jdigi основан на znuradio код:
Copyright (с) 2004 Leigh L. Klotz, Jr. <
leigh@wa5nzu.org>
Это лицензия MIT.