Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2012, 00:38   #1
Serj777
Новичок
Джуниор
 
Регистрация: 17.12.2012
Сообщений: 2
Радость написать программку генерации прямоугольного импульса в звуковом диапазоне через звуковую карту

Добрый день.
Я радиолюбитель и уже не в первый раз понадобилось иметь возможность снять со звуковой карты прямоугольный импульс в звуковом диапазоне. Проблема в том, что импульс нужен либо один, либо определенное количество и при этом длительность импульса должна задавать определенной длинны. Я уверен, что многим радиолюбителям пригодится данная программа.
Так примерно должна выглядеть программа:

Картинка импульса

Плиз, помогите ее написать? Сам я не очень понимаю как это сделать и на каком языке это лучше написать.
Serj777 вне форума Ответить с цитированием
Старый 17.12.2012, 10:49   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

например так (только там синусоида)...
http://www.programmersforum.ru/showthread.php?t=200291
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 22.12.2012, 12:26   #3
leoparrd
Заблокирован
 
Регистрация: 27.08.2010
Сообщений: 37
По умолчанию

Писать можно на любом языке. Это не суть важно. Пора бы понять, что работает алгоритм. а не язык программирования. А что до этой программы, то самое простое - реализовать всё это дерект соунд или библиотеке бас или, попросту синтезировать звуковой поток и прокручиваь его заданное число раз через плеер, котрый можно встроить в саму программу. Что такое звуковой файл? Это просто поток уровней. В данном случае. лучше взять формат с 8 битовым семплом. тогда 127 - это ноль 255 - это еденица.
Теперь, задём так называемый битрейт. А через него вычисляем, сколько семлов нужно для реализации импульса.
Ну скажем если битрейт 50 000, (макс частота 25 кгц), то вычисляем минимальную длительность импульса. 1/50 000 сек. Ну, потом задаём длительнось нужного импульса. делим его на эту величину и получам, сколько байт занимает импульс.
Ну если взять длину звукового блока по величине битрейта, , И только самый первый заменить на 255. а остальные оставить 127, при циклическом воспроизведении будет воспроизводится импульс длительнестью 1/50 000 с частотой в 1 гц. Если длину буфера разделим на 2, то частоа будет уже 2 гц.
Вот так частоту можно менять длиной буфера, а время импульса, количеством байт со значением 255.
Но тут нужно учитывать характеристики звуковой платы. не все они поддерживают нестандартные битрейты

Последний раз редактировалось leoparrd; 22.12.2012 в 12:28.
leoparrd вне форума Ответить с цитированием
Старый 22.12.2012, 21:28   #4
xoodoo
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 212
По умолчанию

Цитата:
снять со звуковой карты прямоугольный импульс
С аналоговых выходов ты его вообще не получишь.
xoodoo вне форума Ответить с цитированием
Старый 22.12.2012, 21:36   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...а ему и не надо, там в гаджете компаратор будет.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.12.2012, 22:32   #6
xoodoo
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 212
По умолчанию

Проще уж подпаяться к выходу каналу таймера, выведенного на сист.спикер, и управлять каналом через любой подходящий готовый драйвер режима ядра.
xoodoo вне форума Ответить с цитированием
Старый 23.12.2012, 12:12   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Вы хотите написать сами или взять уже готовое?
Если второе, то наберите в Гугле "программный генератор сигналов",
если сами - считаю полезным заметить, что Вы очень сильно сужаете как задачу, так и, следовательно, возможности программы, т.к. если добавить к реализации, минимум:
1. Управление амплитудой сигнала.
2. Выбор формы сигнала.
3. Модуляцию одного сигнала другим.
4. Коль скоро у звуковой карты стереовыход, хорошо бы формировать одновременно два сигнала, которыми можно управлять независимо.
И при этом сложность программы практически не изменится.

По поводу совета leoparrd: если ориентироваться исключительно на прямоугольный сигнал, то его выбор 8-разрядного представления можно считать приемлемым, но при расширении возможностей это окажется препятствием. Поэтому разрядность сигнала лучше сразу принять равной 16.
s-andriano вне форума Ответить с цитированием
Старый 23.12.2012, 13:01   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
1. Управление амплитудой сигнала.
2. Выбор формы сигнала.
3. Модуляцию одного сигнала другим.
4. Коль скоро у звуковой карты стереовыход, хорошо бы формировать одновременно два сигнала, которыми можно управлять независимо.
ему для гауссовой пушки а-ля пневмовинтовки. К слову, тут TC многого не упомянул, но вы можете почитать аналогичную его тему чуть погуглив.

Замечу, что при наличии компаратора после аудиокарты и перед MOSFET/IGBT в ключевом режиме, лучше как раз синусоидальный сигнал
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите все возможные целые значения длин сторон прямоугольного треугольника в диапазоне от 1 до N (Delphi Fon Помощь студентам 5 25.10.2012 11:50
Вывод на звуковую карту. юрий петрович Win Api 0 19.09.2011 20:55
Как настроить звуковую карту? Hardander Компьютерное железо 3 30.04.2010 20:50
New Audio Component и аудио поток идущий на звуковую карту Timoffei Мультимедиа в Delphi 2 20.04.2009 17:39
через какую сетевую карту входить в инет, а через какую в лан шКОЛЯР Свободное общение 2 27.06.2008 17:55