Искажение звука Android на прямоугольной волне

Я обнаружил, что мой смартфон (Android 4.2.2) не может генерировать прямоугольные сигналы (он нужен мне, чтобы использовать аудиовыход в качестве последовательной линии для передачи данных). Сначала я предполагал, что это мое приложение, но потом я сделал много важных тестов. Это последние тесты. Надеюсь, вы найдете объяснение этому явлению.

Я сгенерировал wav-файл с прямоугольным сигналом на частоте 500 Гц внутри него. Я играю файл wav на телефоне Android и на Apple iPhone. Я записал и проанализировал сигнал с помощью моего ноутбука (аудиокабель, подключенный к аудиовходу ноутбука).

Затем я повторил тесты с аудиокабелем, подключенным между приемопередатчиком Bluetooth и аудиовходом ноутбука. И смартфоны, подключенные через bluetooth (по одному) к устройству приемопередатчика bluetooth.

ПРИМЕЧАНИЕ: приемопередатчик bluetooth — это устройство, которое получает аудиоданные через bluetooth и выдает звук через стандартный аудиоразъем.

Это сигнал, генерируемый iphone, напрямую подключенным к аудиоразъему: iphone, подключенным напрямую к аудиоразъему

Это сигнал, генерируемый устройством Bluetooth, получающим данные от iphone: сигнал, генерируемый устройством Bluetooth, получающим данные от iphone.

Это сигнал, генерируемый устройством Android, напрямую подключенным к аудиоразъему: устройство Android, напрямую подключенным к аудиоразъему

Это сигнал, генерируемый Bluetooth-устройством, получающим данные от Android-смартфона:

устройство Bluetooth, получающее данные со смартфона Android

Анализы:

-Bluetooth устройство вносит урезание полосы пропускания сигнала (мне кажется приемлемым).

- У iphone действительно хорошая аналоговая часть (он выдает очень хорошую прямоугольную форму сигнала)

- Android-устройство имеет очень плохую аналоговую часть (даже если оно идеально подходит для воспроизведения музыки)

- данные, отправленные телефоном Android на устройство Bluetooth, неверны, фактически полученный сигнал отличается от сигнала, полученного с данными, поступающими от iphone.

Я восстановил смартфон до заводских настроек, но проблема не решилась. Я также пытался установить кастомную прошивку kitkat, но проблема осталась. Я также пробовал с Nexus 5 (Android 5) и Samsung S4 mini (Android 4.2.2, как у меня), и они действуют как iphone.

Я подозреваю, что проблема связана со студийным звуком DTS (я пытался отключить его и настроить по-разному, но безуспешно). DTS, кажется, единственная разница в программном обеспечении между моим телефоном и Samsung S4 Mini.

ВОПРОС: Я могу понять, что аналоговая часть моего Android-устройства не так хороша, как iphone, я также могу предположить, что аналоговая часть моего Android-устройства сломана... но я не понимаю, почему я не получаю тот же результат, когда я вставляю приемопередатчик Bluetooth.


person Gaucho    schedule 21.04.2015    source источник
comment
В последовательных конденсаторах определенно есть фильтрация как нижних частот, так и довольно часто верхних частот, если больше нигде. Также вполне возможно, что происходят всевозможные уродливые обработки, такие как преобразование частоты дискретизации. Но также могут быть проблемы с вашей программой, такие как опустошение буфера на некоторых устройствах. Чтобы действительно поставить диагноз, пожалуйста, покажите изображения искаженного выходного сигнала на разных частотах и ​​охватывающие несколько периодов прямоугольной волны. Насколько велик размер вашего буфера? Что возвращает запрос минимального размера буфера на неисправном устройстве? Включение кода генерации и воспроизведения также было бы полезно.   -  person Chris Stratton    schedule 21.04.2015
comment
Вы также можете попробовать создать свой сигнал в виде файла .wav на ПК с помощью чего-то вроде Audacity или порта вашей программы, которая записывает сэмплы в файл, проверяет, как он там воспроизводится, а затем пытается воспроизвести его на Android. устройство. Это поможет определить, связана ли проблема с аппаратным обеспечением устройства или заводским программным обеспечением или с вашей программой.   -  person Chris Stratton    schedule 21.04.2015
comment
привет @Cris Stratton, мое приложение не важно, потому что проблема возникает и при воспроизведении wav-файла из аудиоприложения по умолчанию (которое поставляется с Android). Я постараюсь предоставить снимок   -  person Gaucho    schedule 21.04.2015
comment
@ChrisStratton прочитайте еще раз мой вопрос, я сделал то, что вы предложили с вашим вторым сообщением. вот почему я схожу с ума. я отредактировал свой вопрос..   -  person Gaucho    schedule 21.04.2015
comment
и спасибо за вашу помощь   -  person Gaucho    schedule 21.04.2015
comment
@ChrisStratton: я добавил скриншот к своему вопросу.   -  person Gaucho    schedule 21.04.2015
comment
Это больше похоже на непреднамеренное соединение, чем на фактическое электрическое соединение с сигналом с искажениями. Вы уверены, что разъем для гарнитуры исправен, подключен и на этом канале по сравнению с другим ухом? Каковы соответствующие входные и выходные амплитуды? Попробуйте более высокую частоту. Ваш прицел исправен? Вы подключали землю?   -  person Chris Stratton    schedule 21.04.2015
comment
@ChrisStratton Я восстановил заводские настройки смартфона, и проблема все еще присутствует. Насчет кабеля, разъёмов, осциллографа уверен на 100%, т.к. при смене смартфона всё выглядит идеально. Невероятно, что при генерации синуса форма выходного сигнала идеальна, а при генерации прямоугольного сигнала выходной сигнал искажается. Загруженный снимок не очень хорош, потому что он был сделан с помощью моего приложения, а не с помощью файла wav. С файлом wav вывод отличается, даже если он всегда искажен. Я загружу его.   -  person Gaucho    schedule 22.04.2015
comment
Последнее сомнение: после восстановления заводских настроек смартфона я обнаружил, что смартфон все еще рутирован, и это навело меня на мысль, что восстановленная операционная система не является исходной. Хочу попробовать удалить рут. может быть, что восстановление заводских настроек не перезаписывает операционную систему на девственную.   -  person Gaucho    schedule 22.04.2015
comment
@ChrisStratton я обновил вопрос новыми проведенными тестами. Это более понятно, я полагаю, будет легко найти решение.   -  person Gaucho    schedule 22.04.2015
comment
Похоже, что аудиовход, который вы записываете, имеет автоматическую регулировку усиления - в частности, на первом графике вы можете сначала выйти за пределы, затем занизить, а затем сходиться.   -  person marko    schedule 23.04.2015
comment
@marko да, но этот эффект действительно незначительный. Поскольку блокнот никогда не меняется, этот эффект является обычным явлением. Проблема, на которой я сосредоточен, - это проблема устройства Android. И я предполагаю, что это программная проблема, потому что она присутствует и через блютуз. Согласен ли ты со мной?   -  person Gaucho    schedule 23.04.2015
comment
Хорошо, теперь я понимаю. Вы создали файл WAV прямоугольной волны 500 Гц. Какая частота дискретизации использовалась? (А @ChrisStratton уже спрашивал об этом?). Можешь скинуть ссылку на исходный wav файл?   -  person Michael Levy    schedule 26.04.2015
comment
это файл 44100 Гц. я пробовал также с приложением под названием генератор сигналов, установленным на обоих телефонах, результат не меняется. Я думаю, что на моем Android 4.2.2 есть библиотека обработки звука, и, возможно, мне просто нужно найти способ ее отключить.   -  person Gaucho    schedule 26.04.2015
comment
Я сгенерировал его на этом веб-сайте: audiocheck.net/audiofrequencysignalgenerator_squaretone.php   -  person Gaucho    schedule 26.04.2015


Ответы (1)


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

Существует множество методов сигнализации и модуляции, используемых для отправки данных по аналоговым или звуковым каналам. Вы смотрели на что-нибудь из следующего?

Как вы могли передавать данные по аудиолинии?

Аудиомодем: передача данных через звук

Передача данных с использованием аудиосигнала в Android

Третья ссылка описывает использование частотной манипуляции в Android. Это выглядит как очень хорошее решение. Страница википедии для FSK включает следующие комментарии к Audio FSK.

Аудиочастотная манипуляция (AFSK) — это метод модуляции, с помощью которого цифровые данные представляются изменениями частоты (высоты тона) звукового тона, в результате чего получается закодированный сигнал, пригодный для передачи по радио или телефону. Обычно передаваемый звук чередуется между двумя тонами: один, «метка», представляет собой двоичный тон; другой, «пробел», представляет собой двоичный ноль. ... Преимущество AFSK заключается в том, что закодированные сигналы будут проходить по каналам связи по переменному току, включая большинство оборудования, изначально предназначенного для передачи музыки или речи.

person Michael Levy    schedule 26.04.2015
comment
Михаил, большое спасибо, я не знал, что есть такие возможности, даже если теперь, когда вы мне сказали, очевидно, что это возможно. В любом случае необходимо использовать прямоугольную форму волны, и ваш ответ не соответствует моему запросу. Чтобы узнать, что я пытаюсь сделать, прочитайте это: stackoverflow.com/ вопросы/29715866/android-ppm-аудио-библиотека - person Gaucho; 26.04.2015
comment
в любом случае, не думаете ли вы, что проблема возникает из-за какого-то программного компонента? почему данные, отправленные через Bluetooth, не имеют исходной прямоугольной формы? проблемы нет на яблочных устройствах и на нексус5. этим вечером я попробую также на телефоне samsung моей подруги. - person Gaucho; 26.04.2015
comment
Имейте в виду, что человеческий слух ограничен частотами около 20 кГц. Аудиосистемы обычно не предназначены для воспроизведения сигналов намного выше этого диапазона (в этом нет необходимости, потому что люди все равно их не слышат). Прямоугольные волны имеют гармоники (или высокочастотные компоненты), которые выходят далеко за пределы 20 кГц. Прямоугольная волна включает в себя частотные компоненты, которые выходят далеко за пределы человеческого слуха и возможностей аудиосистем. См. mathworld.wolfram.com/FourierSeriesSquareWave.html. Аудиосистема просто не предназначена для воссоздания этих сигналов, и этого не следует ожидать. - person Michael Levy; 26.04.2015
comment
Это школьное задание? Прочтите статью о ППМ. В нем говорится, что это в первую очередь полезно для оптических систем связи. Оптическая связь, оптические системы часто являются цифровыми/двоичными, поэтому они хорошо подходят для оптических систем. - person Michael Levy; 26.04.2015
comment
Я до сих пор не понимаю, почему это должна быть прямоугольная волна. Реализуйте PPM, используя звук, но отправьте сигнальный бит в виде слышимого человеком тона. PPM, кажется, касается положения сигнала в кадре синхронизации. Почему сигнал не может быть звуковым сигналом вместо прямоугольной волны? - person Michael Levy; 26.04.2015
comment
Я не согласен с вами. Возьмите прямоугольный сигнал с частотой 500 Гц, пропустите его через фильтр полосы пропускания, отсекая все частоты ниже 50/100 Гц и все частоты выше 10/20 кГц. затем посмотрите на результат во временной области. Вы снова увидите квадратную форму волны, но с немного закругленными углами. То, о чем вы говорите, в данном случае действительно мало. На самом деле, посмотрите, насколько хорош аудиовыход iphone, показанный в моем вопросе (а также большинство телефонов, попробуйте и свой). - person Gaucho; 26.04.2015
comment
PPM используется в радиоуправлении для самолетов и вездеходов. он также используется для управления двигателями (с декодером PPM). Ему нужна прямоугольная волна. посмотрите на связанное изображение, потому что PPM использует длину импульсов, поэтому он не может использовать модулированные сигналы, как вы предлагаете: aerodesign.de/peter/2000/PCM/frame_ppm.gif - person Gaucho; 26.04.2015
comment
ух ты. большое спасибо. Я проголосовал за тебя, больше не могу. напишу на том форуме. Во всяком случае, с недели я понял, что мой код Android, вероятно, правильный. Просто мой телефон не работает нормально. Моя идея лучше, потому что вам не нужен компьютер, а только смартфон для управления вашим дроном (кроме передатчика). - person Gaucho; 26.04.2015
comment
Это интересно. Это может быть полезно, но не уверен - andrewhazelden.com /blog/2011/08/analyzing-rc-radio-ppm-signals - person Michael Levy; 26.04.2015
comment
Я написал на этом форуме свою просьбу о помощи. спасибо также за последнюю ссылку: я знаю, как работает PPM, потому что я также проанализировал его с помощью осциллографа, как показано по ссылке. - person Gaucho; 26.04.2015
comment
Еще одна ссылка, которая кажется довольно интересной. Похоже, вы все это уже знаете, но другие могут не знать - epanorama.net/newepa/2014/09/15/ - person Michael Levy; 26.04.2015
comment
Этот пост не является ни ответом, ни правильным утверждением о том, как аудиосистема будет обрабатывать прямоугольную волну с частотой 500 Гц. - person Chris Stratton; 27.04.2015