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