Jump to content

    
Sign in to follow this  
Who_are_you?

Спектральный анализ Фурье

Recommended Posts

1 час назад, IhorU сказал:

Сигнал читается микроконтролером и может храниться в чисельном виде в массиве какое-то время(масив может быть и 256*10). В библиотеке для данного контролера есть библиотека быстрого Фурье анализа. Необходимо проанализировать масив данных, отфильтровать помехи от наводки и передать их на дисплей в виде кривой для анализа. Необходимо первое - очистить данные от частот выше 5 Гц (мы снимаем данные сопротивления кожи,ЕКГ, ЕЕГ). И вторая задача для ЕЕГ - выделить из общего сигнала альфа, бета, гама ритмы мозга. Каждый в своем частотном диапазоне и тоже передать на дисплей. Пока что у меня куча мусора не дающего правильно анализировать кривые.

Можно также рассматривать и другую схему - передача данных с сенсора на компьютер, программная фильтрация и вывод на экран. Все это должно быть в реальном времени.

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

Сопротивление кожи, ЭКГ (электрокардиограмма) , ЭМГ (электромиограмма) ,  ЭОГ (окулография) - это еще цветочки, т.к. разделение сигнала по частотам там обычно не практикуется, а исследуется вид кривой. Но ЭЭГ (электроэнцефалограмма) - это очень и очень сложно. Знаю не по наслышке - когда-то ради любопытства сама строила любительский электроэнцефалограф на малое число отведений (в духе http://openeeg.sourceforge.net/doc/ + https://docs.openbci.com/docs/06Software/02-CompatibleThirdPartySoftware/BrainBay).

 

Порог в 5Гц слишком мал для ЭЭГ, т.к. даже альфа ритм и то его превышает. А кроме того, важно иметь достаточное число точек на период, чтобы его можно было уверенно опознать (обычно не менее 7-ми), а потому даже любительский ЭЭГраф должен иметь частоту сэплирования не ниже 1200-2400 Гц. А при такой частоте массив длиной 256*10 слишком мал. Чаще всего железо ЭЭГрафа (в том числе и промышленного) обработкой данных не занимается (разве что сетевую помеху 50 Гц сам подавляет), а передает данные в настольный компьютер, где обработка производится со всей возможной визуализацией этого процесса и настройкой параметров.

 

Когда-то на этот форум приходил мужик :), желающий, чтобы ему помогли построить ЭЭГраф по прототипу демонстрационной платы  ADS1298ECGFE-PDK  http://www.ti.com/lit/ug/sbau171d/sbau171d.pdf [integrated analog front-end (AFE) designs for patient monitoring and portable and high-end electrocardiogram (ECG) and electroencephalogram (EEG) applications] и просил сделать ему таких много (ему 128 отведений было нужно, а эта плата обеспечивает только 8). Были большие проблемы, т.к. ни на какой МК, кроме DSP, он не соглашался, хотя по нынешним временам МК на той плате старенький и по своим характеристикам слабее чем большинство тех, кто не зовется DSP. Однако, несмотря на то, что он был профаном в электронике, в области ЭЭГ он был серьезным специалистом - не один десяток лет этим делом занимался, какие-то свои алгоритмы для обработки ЭЭГ изобрел, а после перехода в частную клинику решил построить ЭЭГраф сам. Это я на то намекаю, что если вы и в области ЭЭГ профан :), то ваше дело скорее всего безнадежно - это слишком сложная задача для начинающих, а тем более несведущих в области цифровой обработки сигналов. Конечно, опыт дело наживное, то станете ли вы 5-10 лет этим упорно заниматься? Хватит ли интереса к этой области мед-диагностики, которая сложна и весьма специфична?

 

Share this post


Link to post
Share on other sites
59 minutes ago, IhorU said:

мы снимаем данные сопротивления кожи,ЕКГ, ЕЕГ

ЭАК, ЭКГ, ЭЭГ. В такой комбинации похоже на полиграф. Это я к тому, что контроллер (или законченное устройство) обрабатывает не один канал.

1 hour ago, IhorU said:

В библиотеке для данного контролера есть библиотека быстрого Фурье анализа.

Вы хотите применить все доступные в библиотеке функции или только те, что Вам нужны?

1 hour ago, IhorU said:

Необходимо первое - очистить данные от частот выше 5 Гц

Альфа, бета и гамма ритмы находятся выше 5 герц. Что от чего Вы хотите очистить? Может быть Вам нужен свой полосовой фильтр для каждого ритма?

 

Опишите задачу и применяемое устройство.

Share this post


Link to post
Share on other sites
16 минут назад, Xenia сказал:

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

Порог в 5Гц слишком мал для ЭЭГ, т.к. даже альфа ритм и то его превышает. 

Согласен с первым утверждением. Будет решена первая задача в независимом коде, вторая будет сделана на следующий день, ну примерно. Принципиально уже никакой сложности нет

А порог в 5 Гц нужен для датчика сопротивления кожи. Контакт гуляет на теле и наводки на провода

Share this post


Link to post
Share on other sites

Милостивый государь, для достижения реального результата в ЛЮБОМ ремесле необходимо освоить некий фундаментальный минимум этого ремесла. Хаотичным, без всякого понимания манипулированием некими программными кубиками Вы никогда не решите задачу цифрового анализа сигналов. Может Вам стоит привлечь специалиста? А то у меня возникло ощущение какой то безысходности при Ваших ответах...

Share this post


Link to post
Share on other sites
24 минуты назад, andrey_p сказал:

ЭАК, ЭКГ, ЭЭГ. В такой комбинации похоже на полиграф. Это я к тому, что контроллер (или законченное устройство) обрабатывает не один канал.

Вы хотите применить все доступные в библиотеке функции или только те, что Вам нужны?

Альфа, бета и гамма ритмы находятся выше 5 герц. Что от чего Вы хотите очистить? Может быть Вам нужен свой полосовой фильтр для каждого ритма?

 

Опишите задачу и применяемое устройство.

Это не совсем полиграф, хотя таковым тоже может быть при желании. Это нейроинтерфейс с обратной связью для обучения и терапии. Эта тема сейчас очень активна и очень много открытых проектов как для обучения так и лечения психосоматики итд.

Пока я пытаюсь подешевле все сделать на базе ардуины, а дальше будет видно. Вот библиотека.https://github.com/kosme/arduinoFFT. Я хоть и физик, но с этой частью математики на практике не сталкивался. Поэтому не знаю даже как пока подступиться, правда это будет продолжаться не долго. Конечно желательно иметь черный ящик в который я буду сбрасывать пакет данных от сенсоров а на выходе получать отфильтрованые данные по критерию. И что то мне подсказывает что такие задачи уже решены.

4 минуты назад, my504 сказал:

Милостивый государь, для достижения реального результата в ЛЮБОМ ремесле необходимо освоить некий фундаментальный минимум этого ремесла. Хаотичным, без всякого понимания манипулированием некими программными кубиками Вы никогда не решите задачу цифрового анализа сигналов. Может Вам стоит привлечь специалиста? А то у меня возникло ощущение какой то безысходности при Ваших ответах...

О каком ремесле идет речь. Программирование, физика, математика. Это проблема коммуникации и все го то.

Share this post


Link to post
Share on other sites
4 minutes ago, IhorU said:

О каком ремесле идет речь. Программирование, физика, математика. Это проблема коммуникации и все го то.

Коммуникации чего/кого с чем/кем?

Вы пришли с вопросом цифрового анализа сигналов, при этом не владеете не то что азами ЦОС, но даже теми разделами математики, которые входят в общенаучные программы подготовки студентов 1...2 курсов технических ВУЗов.

"Сигнал .... может храниться в чисельном виде" - что такое "чисельный" вид? Как может физик по образованию не знать что такое гармонический анализ?

Share this post


Link to post
Share on other sites
2 минуты назад, my504 сказал:

Коммуникации чего/кого с чем/кем?

Вы пришли с вопросом цифрового анализа сигналов, при этом не владеете не то что азами ЦОС, но даже теми разделами математики, которые входят в общенаучные программы подготовки студентов 1...2 курсов технических ВУЗов.

"Сигнал .... может храниться в чисельном виде" - что такое "чисельный" вид? Как может физик по образованию не знать что такое гармонический анализ?

Не буду вам объяснять разделы физики в которых это вообще не применяется, там другой мат апарат. Тем более я уже многое позабыл из начальных курсов. И вообще я еще неграмотно пишу. Так что теперь? 

6 минут назад, Xenia сказал:

Его еще за слово "Arduino" не ругали, видимо всё еще впереди :).

Ничего со мной не случится. Завтра пойду к спецам пить пиво и меня мягко введут в тему. Мир не без добрых людей. Пока есть пиво и гугль мы непобедимы.

Share this post


Link to post
Share on other sites
6 minutes ago, IhorU said:

Тем более я уже многое позабыл из начальных курсов. И вообще я еще неграмотно пишу. Так что теперь? 

А то, что я Вам сказал чуть ранее - я нахожу бессмысленными Ваши "усилия" решить непростую задачу житейскими рассуждениями о незнакомых Вам сущностях. Форум не тот формат, где десятком сообщений можно образовать человека в пропущенных когда то знаниях.

Формулируйте специалисту задачу, если сможете, конечно, и он ее решит.  Других советов у меня (сильно полагаю, что и у других) для Вас нет, извините.

Share this post


Link to post
Share on other sites
10 минут назад, IhorU сказал:

Пока есть пиво и гугль мы непобедимы.

Только забудьте, пожалуйста, о медицине. Не хотелось бы, чтобы кому-нибудь при лечении или обучении досталось подобное поделие, создаваемое с таким подходом. Обалдеть, терапия будет работать на устройстве с Arduino...

17 минут назад, Xenia сказал:

Его еще за слово "Arduino" не ругали, видимо всё еще впереди :).

Уже :) Ну, правда, стремно же, когда вместо прибора, прошедшего все сертификации, используют что-то купленное на Али и без знания предметной области.

Share this post


Link to post
Share on other sites
Just now, Grizzly said:

терапия будет работать на ...

В данном конкретном случае не будет.

Ставлю свои потные носки против 1000 золотых пиастров. )))))

Share this post


Link to post
Share on other sites
14 минут назад, Grizzly сказал:

Обалдеть, терапия будет работать на устройстве с Arduino...

Вообще-то это не терапия, а диагностика.

 

Кстати, на Arduino обычно работает большинство 3D-принтеров (блок СЧПУ), которые нынче применяются не только при изготовлении 3D-моделей, но и как манипуляторы общего назначения. Скажем, мочу по пробиркам разливают, лекарства больным дозируют :).

 

Под Arduino здесь понимается не плата для конструктора, а вполне специализированная плата с драйверами для шаговых двигателей, однако программа у нее написана в стиле Arduino - в форме скетчей, и загрузчик соответствующий. Сама в прошлом году курочила 3D-принтер, стараясь сделать из него автосамплер - вот и дезассеблировала то, чем МК был прошит на заводе.

 

Share this post


Link to post
Share on other sites
3 минуты назад, Xenia сказал:

Вообще-то это не терапия, а диагностика.

Пускай ремесленники хоть погуглят нейроинтерфейс на ардуино. Нам ли творцам сетовать. Хоть по прикалуюсь, если не получу поддержку

Share this post


Link to post
Share on other sites
Just now, IhorU said:

Нам ли творцам сетовать

Я не интересуюсь "нейроинтерфейсами". Но одно знаю точно: Вам в Ваших нынешних кондициях заявленный сигнал не обработать.Тут и к гадалке ходить не надо.

Share this post


Link to post
Share on other sites
Только что, my504 сказал:

Я не интересуюсь "нейроинтерфейсами". Но одно знаю точно: Вам в Ваших нынешних кондициях заявленный сигнал не обработать.Тут и к гадалке ходить не надо.

Я уже говорил что пишу с ошибками. Так я еще не говорил что в детстве часто дрался и особенно любил бить снобов. Главное я от вас понял что возможно в принципе отфильитровать данные по критерию частоты программным путем. А больше мне и не надо было, разберусь.

Ремесленникам привет

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this