Использование sox для генерации прямоугольного сигнала

592
user39049

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

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

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

0
Использовать `квадрат` вместо` синус`? Смотри "man sox". Это должна быть максимальная громкость, используйте эффект усиления для изменения громкости. dirkt 6 лет назад 0

1 ответ на вопрос

2
user39049

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

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

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

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

    Modulated sine wave

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

    square signal

Похожие вопросы