Аудио в PWM

Тема в разделе "Arduino & Shields", создана пользователем Pi-Tone, 12 ноя 2014.

  1. Pi-Tone

    Pi-Tone Нерд

    Привет всем!
    Подскажите, как можно перевести аудио сигнал в шим, хочу передавать аудио через nRF24L01 модуль
    спасибо
     
  2. geher

    geher Гуру

    Передать ШИМ через nRF24L01? А это возможно?
    Насколько я себе представляю, через nRF24L01 можно только потоки байт передавать небольшими пакетами.
    Проще передавать 10-битные отсчеты, считанные при помощи analogRead, как двухбайтовые посылки (или набор двухбайтовых посылок. составляющий пакет для передачи).
     
  3. Pi-Tone

    Pi-Tone Нерд

    ой, извините, ошибся, я имел ввиду 433Mhz RF [​IMG]
     
  4. ANV

    ANV Гуру

    В аналоговой схематике не силен, но кажется что PWM получится если тупо на один вход компаратора подавать входной сигнал через ФНЧ, а на другой пилу.
    Вопрос качества звука упирается в то, какую частоту можно пропихнуть в радиомодуль.
     
    balsoft нравится это.
  5. Unixon

    Unixon Оракул Модератор

    Зачем вам ШИМ вообще? Передавайте сам аналоговый сигнал.
     
  6. Pi-Tone

    Pi-Tone Нерд

    В основном это КПД и дальность передачи а так же размер антен, да и аналог как то просто, хочу че посложнее :)
     
  7. Unixon

    Unixon Оракул Модератор

    Вы что-нибудь про спектр сигнала и полосу пропускания почитайте что ли...
     
  8. Pi-Tone

    Pi-Tone Нерд

    хммм, да вроде в курсе, мне ведь не музыку передавать, голос, чтобы более менее было разборчиво и не более :))
     
  9. geher

    geher Гуру

    Для передачи более-менее разборчивого голоса требуется не менее 4 бит на отсчет с частотой не менее 8000 отсчетов в секунду (это АДМ, более медленные способы кодирования ардуина, полагаю, не потянет, разве что шилд специальный найдется с соответствующим кодером).
    Можно, в принципе, работать и одним битом (на заре компьютеризации воспроизводили речь компьютерной пищалкой, подавая на нее один бит за отсчет: 1, если отсчет линейной ИКМ положительный, 0, если отрицательный), но тогда разборчивость будет крайне низкой, т.е. разобрать что-то иногда можно, но далеко не всегда.
    В теории минимальное время переключения ШИМ позволяет передать что-то, с такой скоростью ("сеанс" ШИМа с заданным уровнем от 0 до 255 кодирует 8 бит на отсчет).
    Но есть несколько проблем.
    1. Принимающая сторона должна уметь "расшифровывать" ШИМ буквально по нескольким импульсам.
    2. Чтобы добиться достаточных скоростей, придется перейти с digitalWrite/analogWrite на прямую работу с портами.
    3. ШИМ нужно "разогнать", уменьшив время между импульсами относительно стандартного (я мог ошибиться, но вроде то, что я видел на осциллографе с ШИМового пина, явно недостаточно для передачи со скоростями в несколько тысяч отсчетов в секунду).
    4. На задачи кроме управления ШИМом времени у микроконтроллера просто не останется.
     
    Последнее редактирование: 16 ноя 2014
  10. Unixon

    Unixon Оракул Модератор

    Ну тогда ответьте на простой вопрос: какой спектр у ШИМ сигнала?
     
  11. geher

    geher Гуру

    Итак, теоретически в ШИМ вполне можно уложить разборчивую речь и даже передать ее по проводам.
    Теперь про радиопередачу.
    Теоретически в идеальных условиях (отсутствие шумов на частоте радиопередачи) без использования хитрых видов модуляции и помехоустойчивого кодирования (применение которых делает передачу ШИМ не бессмысленной, а абсолютно бессмысленной) можно пропихнуть до мегабита (в теории и до 200 мегабит, но это совсем уж теория). А мегабит - это всего 4 тысячи отсчетов ШИМ в секунду (грубо говоря, при минимальном ненулевом ШИМ 1 единичный бит на 255 нулевых). Учитывая, что ШИМ еще надо распознать, что между разными значениями ШИМ наверняка будет переходный процесс, то максимум таким образом получится протолкнуть около тысячи 8 битных отсчетов в секунду. Для видов кодирования, доступных непосредственно на ардуино без модулей (которые еще найти надо. если они вообще есть), явно маловато будет.
    В реальных же условиях скорость радиоканала будет измеряться килобитами, что кардинально ухудшит ситуацию.
    Так что аудио через ШИМ через радио - это утопия.
     
  12. Unixon

    Unixon Оракул Модератор

    Не, это не утопия, это идиотизм и экстремально нерациональное использование пропускной способности радиоканала. Максимальная частота сигнала ограничена шириной полосы. Фронты от переходов "0"-"1" в несколько наносекунд либо просто размажутся полосовым фильтром и всей АЧХ радиотракта до соответствующих 150kHz~1MHz (полоса пропускания модулей 315/433MHz), либо еще нагадят в эфир за пределами разрешенного диапазона, если по факту полоса окажется шире. В итоге, учитывая частоту самого ШИМ сигнала, на тот конец вместо красивых цифровых прямоугольников приедет вагон звенящих синусоид. Передавать таким способом данные через UART на небольших скоростях это еще нормально, там деваться некуда (сигнал, конечно же, нужно отфильтровать по частоте, хотя с этим и сам модуль справится м\б). Но вот искусственно увеличивать потребную полосу перед передачей это совсем уже какая-то ересь. Сигнал всегда наоборот пытаются ужать и закодировать так, чтобы он как можно меньшую полосу отъедал при сохранении качества.
     
    Последнее редактирование: 17 ноя 2014
  13. Pi-Tone

    Pi-Tone Нерд

    ардуина нормально генерирует шим из аудио сигнала, для особо не верующих вот пример

     
  14. ANV

    ANV Гуру

    И где тут ШИМ в NRF24L01?
     
    Pi-Tone нравится это.
  15. Pi-Tone

    Pi-Tone Нерд

    ну конкретно здесь не знаю где шим, а вот видео про шим

     
  16. ANV

    ANV Гуру

    Да, звук можно передать ШИМом.
    Да, через этот модуль даже что-то пролезет.

    Но, скажите, зачем Вы хотите передавать звук, занимая монофоническим сигналом посредственного качества полосу как у телевизионного сигнала? Да еще передавать это безобразие на 2 км?

    Эфир это не чудесная субстанция, которая волшебным образом передает данные, а сильно загруженное, зашумленное и тесное пространство.

    Начните с теории, в то потом в подъезде появляются вот такие таблички:
    [​IMG]
     
    Pi-Tone нравится это.
  17. Pi-Tone

    Pi-Tone Нерд

    не не, может я не так выразился, но я не хочу перебивать телевизоры и тд, я просто хотел сделать 2 радиостанции (рации) и все :)). почему не хочу делать на аналоге - не интересно, вот хочу цифровую по возможности шифрованую передачу и все :))))
    да и растояния не большие, надо то 100 - 150 метров уверенного приема
     
  18. есть уже готовое, называется мобильный телефон.
     
  19. Pi-Tone

    Pi-Tone Нерд

    ага, я прям дурак не догадался :)))))
     
  20. geher

    geher Гуру

    ШИМ-то зачем? Он существенно увеличивает потребности к ширине канала и отсутствию помех. Да еще усложняет обработку сигнала (тем более, если потребуется шифрование).
     
    Pi-Tone нравится это.