У меня есть скрипт (http://paste.ubuntu.com/24497460/), который использует sox для генерации формы волны из серии "импульсов" и "пробелов", генерируемых lirc с пульта дистанционного управления. Скрипт создает синусоидальную волну 19 кГц для импульсов и "тишину" для пробелов.

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

Мой вопрос - что я могу использовать с sox для генерации периодов "большого объема"? Как и опция "pad", но вывести максимальную громкость вместо 0?

1 ответ1

2

Мне удалось это выяснить. Я использовал квадрат вместо синуса, как предложил @dirkt, но мне пришлось снизить частоту прямоугольной волны настолько, чтобы период "квадрата" был больше, чем моя самая длинная длина в битах. Я попробовал прямоугольную волну 10 Гц, и вот разница:

<       SOX_OPT="${SOX_OPT} synth ${LEN}s square 10 0 0" # square wave 10Hz
---
>       SOX_OPT="${SOX_OPT} synth ${LEN}s sine 19k 0 0 sine 19k 0 50" # sine wave 19kHz 2ch phase shift

Результаты выглядят так:

  • модулированная синусоида:

    Модулированная синусоида

  • квадратный сигнал:

    квадратный сигнал

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .