Как вывести прямоугольную волну на мою звуковую карту - PullRequest
1 голос
/ 15 ноября 2010

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

Вот что делает верхняя передача звуковых карт с моей прямоугольной волной: http://www.electronics -tutorials.ws / фильтр / fil39.gif

Какова математическая функция сигнала, который при прохождении через верхний проход станет квадратным?

В идеале решение демонстрируется в gnuplot.

Ответы [ 5 ]

1 голос
/ 18 октября 2014

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

Нет никакого способа полностью побить этот фильтр из программного обеспечения, или его не будет, не так ли? Если вы можете жить с прямоугольными волнами с более низкой амплитудой на более низких частотах, вы можете приблизить их, отправив что-то вроде треугольной волны . С точки зрения анализа переходных процессов, теория работы здесь заключается в том, что, когда конденсатор связи разряжается (блокирует постоянный ток), вы увеличиваете его напряжение смещения, чтобы нейтрализовать этот разряд, таким образом поддерживая плато прямоугольной волны некоторое время. Конечно, вы в конечном итоге исчерпаете запас PCM (вы не можете продолжать увеличивать напряжение бесконечно), поэтому 24-разрядная карта в этом отношении лучше, чем 16-разрядная, поскольку она даст вам большее разрешение. Другой, более абстрактный способ думать об этом состоит в том, что RC-фильтр работает как дифференциатор , поэтому, чтобы получить плоские пики прямоугольной волны, необходимо задать ей плоские наклоны треугольной волны в вход. Но это идеализированное поведение.

В качестве быстрого доказательства концепции, вот что представляет собой треугольный сигнал 60 Гц ± 1 В при прохождении через соединительную крышку 1 мкФ при нагрузке 1 кОм; он приближается к прямоугольной волне ± 200 мВ enter image description here

Обратите внимание, что сопротивление / сопротивление нагрузки здесь имеет большое значение; если вы уменьшите его, скажем, до 100 Ом, выходная амплитуда резко уменьшится. Вот так соединительные колпачки блокируют постоянный ток на колонках / наушниках, потому что у этих устройств импеданс намного ниже, чем 1 кОм.

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

Что ж, если вам повезет, вы можете получить одну из тех USB-звуковых карт за 0,99 долл., Где производитель так сильно срезал углы, что не установил соединительные колпачки. https://www.youtube.com/watch?v=4GNRzwfP7RE

1 голос
/ 15 ноября 2010

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

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

Чтобы разобратьсяДля того, чтобы усилить каждый низкочастотный компонент, вам сначала нужно измерить отклик фильтра верхних частот в вашей звуковой карте, выводя синусоидальные волны различных частот, но постоянной амплитуды, и измеряя для каждой частоты отношение r(f)амплитуда выхода на амплитуду входа.Затем можно сгенерировать аппроксимацию выходного сигнала прямоугольной формы путем умножения амплитуды каждого частотного компонента f в серии Фурье на прямоугольные волны на 1/r(f) («обратный фильтр»).

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

0 голосов
/ 15 марта 2012

Я нашел приложение, которое строю на нем.

http://www.blogger.com/blogger.g?blogID=999906212197085612#editor/target=post;postID=7722571737880350755

вы можете создать нужный формат и даже нужный вам шаблон.

Код использует SLIMDX .

0 голосов
/ 15 ноября 2010

Вы не можете создать настоящую прямоугольную волну, потому что она имеет бесконечную полосу пропускания.Вы можете получить разумную аппроксимацию прямоугольной волны, хотя на частотах, скажем, от 10 Гц до 1 кГц (ниже 10 Гц у вас могут возникнуть проблемы с аналоговой частью вашей звуковой карты и т. Д., А при частотах выше 1 кГц приближение будет становиться все более неточным, поскольку вы можете воспроизводить только относительно небольшое количество гармоник).

Tp генерирует форму сигнала, значения выборки будут просто чередоваться между +/- некоторым значением, например, полной шкалой, которая будет равна -32767 и +32767 для16-битный поток PCM.Частота будет определяться периодом этих образцов.Например, для частоты дискретизации 44,1 кГц, если у вас есть, скажем, 100 выборок -32767, а затем 100 выборок +32767, то есть период = 200 выборок, тогда основная частота вашей прямоугольной волны будет 44,1 кГц / 200 = 220 Гц.

0 голосов
/ 15 ноября 2010

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

Вы можете аппроксимировать сильно деформированную прямоугольную волну, чередуя код PCM с высокой и низкой частотой (+ max, -max) каждые N выборок.

...