Передача данных с помощью ультразвука - PullRequest
11 голосов
/ 04 июня 2011

Yamaha InfoSound и Приложение ShopKick использует технологии, позволяющие передавать данные с помощью ультразвука . То есть воспроизводится неслышимый сигнал (> 18 кГц), который может восприниматься современными мобильными телефонами (iOS, Android).

Какой подход используется в таких технологиях? Какую модуляцию они используют?

Ответы [ 5 ]

3 голосов
/ 06 июня 2011

Я вижу несколько проблем с этим подходом. Во-первых, 18 кГц не слышно , а . Многие люди не могут слышать это, особенно с возрастом, но я знаю, что, конечно, могу (я делаю регулярные проверки слуха, связанные с работой). Кроме того, большинство телефонов имеют различные фильтры нижних частот на своих аналого-цифровых преобразователях , а многие устройства, особенно старые Android (я лично это видел), фильтруют все ниже 16 кГц или около того. Поэтому ваше приложение не может работать на любом оборудовании. IPhone, вероятно, должен быть в состоянии сделать это.

С точки зрения модуляции, это может быть что угодно, но я бы определенно исключил AM. Звук имеет почти нулевую надежность, когда речь заходит о громкости. Если бы я реализовал что-то подобное, я бы пошел с FSK . Я думаю, что PSK потерпит неудачу из-за акустических отражений и тому подобного. Сложность в том, что вы работаете с ненадежной передачей энергии в очень узкой полосе пропускания. Я, конечно, не сомневаюсь, что это может быть достигнуто, но я не вижу, чтобы что-то подобное оказалось надежным. Просто ИМХО то есть.

Обновление : Теперь, когда я об этом думаю, обычное включение-выключение будет работать с одним тоном, если вы не передаете никаких данных, только некоторые короткие сигналы.

3 голосов
/ 10 октября 2013

Не могу сказать о Yamaha InfoSound и ShopKick, но в нашем проекте мы использовали вариацию частотной модуляции: частота несущей модулируется цифровым двоичным сигналом, где 0 и 1 соответствуют 17 кГц и 18кГц соответственно.Что касается демодулятора, то мы попробовали гетеродин.Более подробную информацию вы можете найти здесь: http://rnd.azoft.com/mobile-app-transering-data-using-ultrasound/

2 голосов
/ 06 июня 2011

Нет ничего особенного в том, что ультразвук, принцип тот же, что и передача данных через модем, поэтому любая цифровая модуляция в принципе возможна.У вас есть только определенная полоса частот (выше 18 кГц) и некоторые практические реквизиты (я думаю, среда очень ненадежная), которые предлагают использовать простую надежную схему с низкой скоростью передачи битов.

0 голосов
/ 18 сентября 2016

Я не знаю, как они это делают, но вот как я это делаю:

Если это строка, то убедитесь, что она не длинная (чем длиннее, тем выше вероятность ошибки).Предположим, что мы работаем с важной частью кода ASCII, а именно с номером символа 127, тогда все, что вам нужно, это 7 бит на символ.Преобразуйте этот символ в биты и смодулируйте эти биты, используя QFSK (есть несколько вариантов на выбор, основанные на сдвиге частоты оказались самыми надежными из всех, что я пробовал из обычных ... Я создал свою собственную модуляциюсхема для этого варианта использования).Выберите несущие частоты как 18,5,19,19,5 и 20 кГц (если вы хотите быть математически строгим в своем дизайне, выберите значения частоты, которые гарантируют вам как ортогональность, так и непрерывность фазы при переходах символов, если вы не можете, хороший обходной путьчтобы избежать резких переходов символов, нужно умножить ваши символы на окно одинакового размера, например гауссовский или бартлет).По моему опыту, вы можете перемещать эти значения в диапазоне от 17,5 до 20,5 кГц (если вы снизитесь, это начнет беспокоить людей, использующих ваше приложение, если вы поднимитесь выше, частотная характеристика микрофона среднего типа ослабит вашу передачу и вызовет нежелательные ошибки).

На стороне приемника реализуйте приемник с корреляцией или согласованным фильтром (приемник FFT также работает, особенно с нулевым, но он может быть немного медленнее, я бы не рекомендовал Goertzel, потому что из-за сдвига частотычтобы эффект Доплера или нелинейность динамика-микрофона могли повлиять на ваш прием).Как только вы получите поток битов, сделайте из них символы, и вы восстановите свое сообщение

. Если вы сталкиваетесь с слишком большим количеством ошибок вещания, попробуйте выбрать большее количество выборок на символ или полосовую фильтрацию каждого значения частоты, прежде чем даватьих к демодулятору, используя код с исправлением ошибок, такой как BCH или Reed Solomon, иногда единственный способ обеспечить безошибочную связь.

Одна тема, о которой все всегда забывают говорить, это синхронизация (узнать на приемникесторона, когда передача началась), вы должны проявить творческий подход и провести множество тестов с большим количеством телефонов, прежде чем сможете получить фактический порог обнаружения, который работает на всех, обратите внимание, что это также может зависеть от расстояния

Если вы не знакомы с этими предметами, я бы порекомендовал пару замечательных книг:

Техники цифровой модуляции от Fuqin Xiong

ЦИФРОВЫЕ СВЯЗИ Основы и приложения от BERNARD SKLAR

Цифровая связь от Джона Г. Проакиса

0 голосов
/ 14 июня 2016

Возможно, вам повезет с библиотекой, которую я создал для звуковых модемов, libquiet .Он дает вам несколько профилей для работы, в том числе медленный профиль «Ультразвуковой шепот» со спектральным содержанием выше 19 кГц.Библиотека написана на C, но потребует некоторой работы для взаимодействия с iOS.

...