Текущий архив: 2002.09.23;
Скачать: CL | DM;
Вниз
Помощь Найти похожие ветки
← →
Mambo © (2002-05-14 21:25) [0]Братаны програмеры, помогите! Нуно переобразовать цифровой прямоугольный импульс на синусоидальный и вывести его на звукаш. Любые идеи прийму. Плиз!!!!
← →
KilkennyCat © (2002-05-17 06:26) [1]Элементарно! повесить на импульс конденсатор. : )
А если серъезно, то тоже елементарно, если цифровой импульс прямоугольный, то берем любую синусоиду, ее амплитуду приравниваем к амплитуде импульса, а потом просто синхронизируем ее переходы с переходами импульса.
← →
Mambo © (2002-05-17 15:54) [2]KilkennyCat © (17.05.02 06:26)
Сам процес я знаю, но как это реализовать програмно на Delphi? Если не лень кинь функцию или ссылочку для наччитки, плиззззззз....
← →
KilkennyCat © (2002-05-17 16:30) [3]ну... мне лень делать глобально... но к примеру:
Пусть прямоугольный импульс изменяется от -1 к 1 и т.д....
ловим начало перехода от -1 к 1 (фронт импульса)
и запускаем:
x := -1;
10
repeat
у := sin(x);
x := x + nnn;
until x <> 1; (или x = 1, все забываю условие выполнения цикла :)
repeat
у := sin(x);
x := x - nnn;
until x <> -1;
гоуту 10
вся проблема в определении nnn - оно должно равнятся период импулса деленный на количество желаемых выборок.
← →
KilkennyCat © (2002-05-17 16:33) [4]Да, еще: поскольку период цифрового импульса может меняться, лучше формирровать синусоиду на один период позже. Таким образом можно без проблем вычислить период импульса.
← →
Mambo © (2002-05-17 22:27) [5]>>KilkennyCat Большое спасибо что откликнулся, но тут то и проблем, у меня импульс меняется в разных пределах и я точно незнаю каке его максимальное значение должно быть.
P.S. этот импульс надо ловить на лету или с файла?
← →
Anatoly Podgoretsky © (2002-05-17 22:38) [6]Mambo © (14.05.02 21:25)
У меня на сайте есть Sweep Generator, наверно тебе подойдет
← →
KilkennyCat © (2002-05-18 03:05) [7]импуль можно ловить как угодно, наверное. Это же Ваша задача, я не знаю, что и как она должна делать. А вот из-за того, что амплитуда или период импульса могут изменяться я предложил делать синусоиду с задержкой, хотя бы в полпериода импульса.
тогда будут известны: разница амплитуды, длительность. Под них надо подстроить синусоиду, но это уже сплошная математика...
← →
Digitman © (2002-05-18 13:22) [8]В реальном времени задача неосуществима. Потому что неизвестны ни значения длительности импульса.
← →
Digitman © (2002-05-18 13:23) [9]В реальном времени задача неосуществима. Потому что заранее неизвестно значение длительности импульса, от которого, вконечном итоге, должен зависеть период результ.сигнала
← →
Mambo © (2002-05-18 19:59) [10]>Anatoly Podgoretsky Большое спасибо за прожку, но это генератор синусоидальных колебаний, я мне нужно принять звуковой поток прямоугольных импульсов на звукаш, поймать максимумы и минимумы, а уж потом по ним накладывать синусоиду.
Я согласен с "Digitman © (18.05.02 13:23)" и поэтому зашол в тупик....
← →
KilkennyCat © (2002-05-20 02:16) [11]Не согласен. Задача решаема в реальном времени.
← →
Digitman © (2002-05-20 08:18) [12]>KilkennyCat
Нет, нерешаема. Даже в случае, близком к идеальному (период следования импульсов и скважность вх.сигнала - постоянны с минимально возможной погрешностью преобразования), задержка результирующего вых.сигнала будет не менее одного периода вх.сигнала.
← →
KilkennyCat © (2002-05-20 17:17) [13]Ха, разумеется! но, во-первых, одним периодом можно пожертвовать,
во-вторых, в таком случае никакая обработка сигналов не может происходить в реальном времени, а в-третьих вот алгоритм синусоиды в реальном времени (правда синусоида несколько кривая будет):
в момент, когда уровень сигнала максимальный начинается рисоваться фронт синусоиды, при спаде сигнала синусоида "закругляется", при минимальном уровне рисуется фронт синусоиды и при фронте импульса она закругляется снова... и т.д.
Разумеется, дикость, будет нехило плясать по амплитуде, но тем не менее она даже информативнее будет :)...
А вообще, я бы решил это аппаратно.
← →
Digitman © (2002-05-21 13:56) [14]>KilkennyCat
1. Задержка хотя бы в период - уже не real-time processing. И в ряде случаев может серьезно влиять на результирующие характеристики сквозного тракта обработки.
2. Реально задержка будет составлять гораздо более ощутимое время, т.к. напрямую зависит от прецизионности амплитудно-временной характеристики вх.сигнала, при "плавании" которой (пусть даже в незначительных пределах !), придется применять адаптивные методы определения средне-вычисленных значений периода следования фронтов и скважности исходной "дискретной" последовательности. Для любых же адаптивных методов характерны ощутимые погрешности из-за динамически расчитываемых размеров фреймов предвыборки.
3. Отказ от адаптивных методов не позволит (
ни аппаратно ни программно) получить на выходе синусоиду; максимум, что можно получить : близкая к экспоненте "пила", характерная для аппаратно реализованных интегрирующих цепей ФНЧ, использующих в своей основе вышеупомянутые конденсаторы.
4. По поводу "фронтов" и "спадов" синусоиды. Еще раз следует подчеркнуть, что значение синуса как тригонометрической ф-ции углового аргумента зависит как минимум от этого самого углового аргумента (область определения - 0...2П), который в дан.случае может быть определен только если известен период дискретизации и период следования фронтов вх.импульсов (скважностью можно, imho, пренебречь). Период дискретизации определяется простым чтением тек.установок WaveIn-канала (GetDeviceCaps), а вот точный период следования фронтов - особенно, если вх.сигнал заметно "шумит" и "плавает" - только интегрированием вх.ф-ции и, возможно, последующим "пропусканием" через каскад, реализующий гистерезис (иначе "шумы" превратят вых.ф-цию из синусоиды черт те во что)
← →
KilkennyCat © (2002-05-21 16:51) [15]Убедил. Но все-равно апельсин! :)
← →
KilkennyCat © (2002-05-21 16:55) [16]А вот еще вариант: сделать по методу АЦП.
← →
Mambo © (2002-05-23 14:26) [17]>>KilkennyCat © (20.05.02 17:17) ....А вообще, я бы решил это аппаратно.
В том то и прикол, что наши препады платить не хотят! Им холяву подавай...... :-)
← →
KilkennyCat © (2002-05-24 17:44) [18]А если посмотреть из области радиовещания: амплитудная модуляция? там ведь приглаживают несущую частоту амплитудой звукового сигнала.... тогда задача решается... а если меняется период имульса, то тогда из той же опреы, но частотной модуляцией... а вообще, меня дико заинтриговала проблема. Я подумаю серъезно над этой фигней.
Страницы: 1 вся ветка
Текущий архив: 2002.09.23;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.016 c