|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 10 Aug 2003 08:49:48 To : Alex B. Solomatin Subject : поиск локальных max и min в массиве -------------------------------------------------------------------------------- Sat Aug 09 2003 23:10, Alex B. Solomatin wrote to Evgenij Masherov: 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у, если уж начали погружаться в детали - вопрос, зачем? ABS> Исследуется биопотенциал, снимаемый с мышц (так называемая ABS> электромиограмма) EM>> От этого будет зависеть ответ на вопрос "как". EM>> Возможно, нужны именно максимумы, даже мелкие. ABS> Hет. То, что я намалевал, снимается с частотой дискретизации 44100 Гц. ABS> Поэтому то, что на ленте миографа при скорости 50мм\сек выглядит как ABS> зубец, на графике и в массиве данных - довольно плавная кривая, в ABS> которой надо найти максимум (соответствующй вершине зубца), потом то же, ABS> для части графика ниже изолинии (там соответственно минимум) EM>> А возможно, следует прогнать через фильтр HЧ (или полосовой), с ABS> Так частота 100 Гц, что фильтром обрезать? Все, что не попадает в интересующий диапазон, вестимо. Скажем, взять полосовой фильтр от 50 до 150 Гц - мелкие максимумы и уйдут. Впрочем, насколько я помню электромиографию - границы должны быть пошире несколько, в зависимости от исследуемой задачи. Евгений Машеров АКА СанитарЖеня --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3300cd73bb1f.html, оценка из 5, голосов 10
|