Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Вниз

Звуковая...   Найти похожие ветки 

 
Sergo   (2002-04-15 10:47) [0]

Не подскажете, как при снятии сигнала со входа звукахи, брать только амплитудное (положительное) значение сигнала, не принимая на счет текущее изменение амплитуды?
У меня есть мысль, но я в ней не уверен, может чем нибудь поможете?


 
VictorT   (2002-04-15 11:41) [1]

Проинтегрируй сигнал.


 
Sergo   (2002-04-15 11:48) [2]

>VictorT ©
Мысль, спасибо!


 
VictorT   (2002-04-15 11:57) [3]

Честно говоря, не совсем понял вопрос, и ответил по принцыпу: какой вопрос - такой ответ :) Но я рад, что тебе это помогло.


 
Sergo   (2002-04-15 12:05) [4]

Смысл такой: я подаю на звукаху сигнал определенной амплитуды, к примеру 20db, и эта амплитуда будет изменяться очень редко. Если сразу выводить значение сигнала например в Label, то будет показываться изменение амплитуды от 20db до -20db (синусоида) и обратно, мне же нужно всегда выводить только самое максимальное положительное значение амплитуды.


 
VictorT   (2002-04-15 12:27) [5]


> У меня есть мысль, но я в ней не уверен, может чем нибудь
> поможете?

А какя мысль?


 
MBo   (2002-04-15 13:01) [6]

Abs


 
Sergo   (2002-04-15 13:50) [7]

>VictorT ©
Мысль такая: загонять в массив и брать максимальное (но я в этом пока не уверен)
>MBo
Abs просто из отрицательных сделает положительные, а выводится все равно будет изменение амплитуды во времени (например 20,15,10,5,0,5,10,15,20: т.е будет выводится значение уровня сигнала в момент выборки), а мне нужно только амплитудное значение например идет в данный момент сигнал с амплитудой 20db, а через час сменится на 19 вот только и изменение амплитуды мне и нужно выводить. Уф...объяснил как мог, езвиняйте ежели что.


 
MBo   (2002-04-15 13:53) [8]

не все понял. делаешь переменную MaxAmp, относительно нее считаешь, при превышении обновляешь ее


 
Sergo   (2002-04-15 13:59) [9]

>MBo ©
Ты имеешь в Waveform?
А если амплитуда наоборот уменьшится MaxAmp отследит это?


 
VictorT   (2002-04-15 13:59) [10]

Я предлагаю так: во-первых, как сказал MBo, приводишь значение сигнала к абсолютному значению, во-вторых, при каждой выборке значения сигнала запоминаешь предыдущее значение, в-третьих, сравниваешь предыдущее значение сигнала с текущим, и если оно больше, то выводишь его в Label. Если непонятно, то напишу в виде программы.


 
Sergo   (2002-04-15 14:02) [11]

>VictorT ©
В принципе понятно, но если не трудно напиши пожалуйста.


 
VictorT   (2002-04-15 14:11) [12]

int value;
int value1 = 0;
while(условие продолжения цикла) {
value = abs(GetSignal());
if (value1 > value)
Label1->Caption = FloatToStr(value1);
value1 = value;
}


З.Ы. Извиняюсь, что Си, но думаю ты поймёшь.


 
Sergo   (2002-04-15 14:53) [13]

Спасибо!!!



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-73123
Arhangel
2002-05-08 13:38
2002.05.23
Как перевести короткий путь к файлу в длинный?


1-73272
Makss
2002-05-11 03:24
2002.05.23
Ресурсы сжатых исполняемых файлов


3-73070
Beer
2002-04-28 11:15
2002.05.23
Передача параметров в хранимую процедуру.


4-73445
Keymaster
2002-03-21 23:35
2002.05.23
Журнал программ


1-73240
Garry
2002-05-10 10:35
2002.05.23
Как отобразить сообщение при наведении мыши на объект?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский