Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.012 c
4-73945
Dmk
2002-08-07 00:09
2002.09.23
Как избавиться от сообщения?


8-73766
MJH
2002-05-25 19:54
2002.09.23
Эквалайзер версия 0.2 / Исходники НайтроАмпа за 2001год


1-73726
Starkom
2002-09-11 09:05
2002.09.23
Про цветной Caption TabSheet a


14-73869
Alibaba
2002-08-29 11:18
2002.09.23
Excel


3-73534
serg1977
2002-09-02 16:52
2002.09.23
подключение БД без BDE