|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex B. Solomatin 2:467/126.9 08 Aug 2003 01:16:21 To : All Subject : поиск локальных max и min в массиве --------------------------------------------------------------------------------
Видимо, я недостаточно четко сформулировал задачу - я анализирую Wav-файл,
использующисй для хранения переменного сигнала (не звукового, но это не важно).
Частота сигнала может быть около 100Гц, а я взял частоту дискретизации звука
44100Гц, соответственно то, что на ленте выглядит пиком, при рассмотрении на
экране - довольно плавная волна :)
Юзер на экране выделяет кусочек файла (как в звуковых редакторах), я этот
кусочек переписываю в массив чисел и его анализирую
Сигнал может иметь примерно такую форму
v-это нужный мне максимум
/\
/\/\/ \
| \
/ \ _
/ \ /
------------|----/-------
| /
\_/
^-а это соответственно минимум
И в общем, просто максимум, наверное, тоже не годится, так как при этом первые
на рисунке два зубца, тоже попадут в максимумы (а это не есть правильно:)
Полагаю, надо сначала определять переход через ноль,например:
if WaveArray[i]>=0 and Wavearray[i]<0
и затем, скопировав полученный фрагмент в еще один массив (?), сделать MaxValue
\MinValue.
Затем, найдя амплитуду, скопировать ее в еще один массив (?!) для дальнейшего
анализа (средние амплитуды и т.д.)
Да уж больно топорно получается... Как-то оптимизировать можно?
Всего хорошего, All!
Alex B. Solomatin AKA Magister Lex
---
* Origin: Единство и борьба флюороза и кариеса. (2:467/126.9)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/28393f32d3bb.html, оценка из 5, голосов 10
|