Обработка данных с сильно шумящего сенсора

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

SLKH пишет:

в магазах всякой звукотехники или электрики искать надо.  "кабель микрофонный" или "кабель экранированный"

В ЧиД  КММ 2х0.35 2 жилы + экран 20р/метр. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ИгорьУ пишет:

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

Да, но только при условии, что изделие продается миллионными тиражами. При малых тиражах (в сотни-тысячи экземпляров) софт уже оказывается дороже. А для единственного экземпляра, как правило, неразумно дорого.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ИгорьУ пишет:

Кто пользовался, подскажите как выделить данные которые соответствуют частотам ниже 5Гц, пжст.

Аппаратным фильтром.

Например, MAX261 или UAF42.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Если сам программируешь то нет. Тем более что там нефиг программировать, если знаешь сам принцип выделения частот Фурье анализом. Готовые библиотеки везде, вот на самой ардуине https://github.com/kosme/arduinoFFT/tree/master/Examples. Пока изучаю использования функций на примерах. Мне все равно никуда не деться. В задачах ЕЕГ надо будет выделять разные ритмы - альфа, бета, гамма для анализа их дохторами.  

nik182
Offline
Зарегистрирован: 04.05.2015

Теория Фурье преобразования очень большая тема. Преобразовать мало. Нужно знать, что получилось в результате преобразования и как интерпретировать результат. Все библиотеки используют БПФ. Это упрощённый вариант. Он дает спектр, в котором есть набор из фейковых частот, не имеющих ничего общего, с реальностью, а описывает, общими словами, энергетическую корреляцию между заданными для расчёта частотами и колебаниями, из которых состоит сигнал. Может повезти и фейковая частота совпадает с частотой имеющейся в исходном сигнале и тогда можно получить чистый пик и посчитать энергию. Но чаще получаються "заборчики" из кучи частот БПФ для каждой имеющейся в сигнале частоты и результат преобразования это сумма всех. Не имея опыта работы очень трудно разобраться с результатом. Особенно при наличии помех. В Вашем случае ситуация усугубляется низкой частотой. Для качественного анализа исследуемые частоты должны находится как можно ближе к первой трети набора фейковый частот БПФ. Для 5 ГЦ и количества точек преобразования 256 (лучше больше, но для начала этого достаточно) нужно снимать равномерную(!) оцифровку около 5 секунд в условиях неизменности набора частот в исходном сигнале. И это будет одна точка результата. Ну а дальше... на этом диссеры годами пишут.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Речь идет о каком-то приближении. Может этого будет и достаточно. Точность тут особо и не нужна. Посмотрим что получится. Надо только по возможности отсеять данные с частотами выше пороговой, ну и в случае с ЕЕГ наоборот выбрать сигнал в указанном диапазоне частот. Ну как то же народ уже это делает и без всяких диссертаций. Гугль большой, а мир не без добрых людей

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так в вики Вам всё описали. Даже частоты оцифровки. Дьявол как всегда в деталях. Тут было много тех, кто хотел на ардуине по быстрому многоденежные приборы удешевить. Попробуйте. Может быть получится.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

На ардуине свет клином не сошелся. Не хватит ресурсов у ардуины, так есть куча другого дешевого железа и по мощнее. Это вопрос программирования а не железа вообще. Как выудить необходимый сигнал. Один путь ставить фильтры - путь железа. Другой мягкий путь софта. Смотря что оптимальнее в конкретной ситуации

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

ИгорьУ пишет:

На ардуине свет клином не сошелся. Не хватит ресурсов у ардуины, так есть куча другого дешевого железа и по мощнее. Это вопрос программирования а не железа вообще. Как выудить необходимый сигнал. Один путь ставить фильтры - путь железа. Другой мягкий путь софта. Смотря что оптимальнее в конкретной ситуации

Так если есть возможность поменять железо, так лучше взять / сделать нормальный датчик?.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Возможно вы правы и идею железа никто не отбрасывает, буду искать. Но делаю все что возможно уже сейчас.

А какие у вас предубеждения относительно софта. Я вот тут потусил на форумах радиотехников и математиков и везде мне сказали что вполне возможно отфильтровать сигнал программным способом. Почему не попробовать.

Ну и не спроста же появилась на ардуине ИДЕ официальная библиотека с фурье анализом, ну что еще с ней можно делать как не выделять частоты из сигнала?

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ИгорьУ пишет:

А какие у вас предубеждения относительно софта. Я вот тут потусил на форумах радиотехников и математиков и везде мне сказали что вполне возможно отфильтровать сигнал программным способом. Почему не попробовать.

Похоже, Вы либо неправильно задавали вопросы, либо не поняли ответов.

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

Еще: Да, при указанных ограничениях фильтровать сигнал можно (например, срезать частоты выше 1/10 частоты дискретизации). Но ведь перед тем, как что-то делать программным способом, аналоговый сигнал нужно оцифровать. А адекватно оцифровать сигнал можно лишь при одном непременном условии: в аналоговом сигнале должны отсутствовать частоты выше половины частоты дискретизации. Если же такие частоты в спектре исходного сигнала имеются, оцифровка сама по себе привнесет в сигнал существенные искажения, подавить которые в дальнейшем цифровыми методами (не важно аппаратными или программными) уже совершенно невозможно.

Поэтому прежде, чем оцифровывать сигнал, его в обязательном порядке пропускают через фильтр высокого порядка. Кратко я об этом писал здесь: http://arduino.ru/forum/proekty/konstruktsiya-vykhodnogo-dnya-prostoi-spektranalizator-480-polos-60-db-na-stm32f103-i-#comment-400683 но лучше бы почитать какой-нибудь учебник.

rkit
Offline
Зарегистрирован: 23.11.2016

Дискретное преобразование фурье нельзя использовать для фильтрации сигналов. Нужно проектировать настоящие фильтры, хоть програмно, хоть аппаратно. Программно на дешевых ардуино не рекомендую.

rkit
Offline
Зарегистрирован: 23.11.2016

andriano пишет:

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

Если их нет, то и подавлять незачем. Очень удобно, мне кажется. Жаль, что это опять ситуация "где-то что-то прочитал, нифига не понял, но буду учить других".

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

ИгорьУ пишет:

Возможно вы правы и идею железа никто не отбрасывает, буду искать. Но делаю все что возможно уже сейчас.

А какие у вас предубеждения относительно софта. Я вот тут потусил на форумах радиотехников и математиков и везде мне сказали что вполне возможно отфильтровать сигнал программным способом. Почему не попробовать.

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

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

rkit пишет:

Дискретное преобразование фурье нельзя использовать для фильтрации сигналов. Нужно проектировать настоящие фильтры, хоть програмно, хоть аппаратно. Программно на дешевых ардуино не рекомендую.

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

rkit
Offline
Зарегистрирован: 23.11.2016

ИгорьУ пишет:

А что есть другие способы программной фильтрации кроме Фурье анализа?

Фурье это совсем не фильтр, о чем я и написал, и если не придумывать какое-то "кроме", то никакого противоречия нет. Что тут указывать, я не знаю. Фильтры это поле математики, которое нужно изучать, и подробно. Нагуглить одно слово и получить результат не получится.

Ну пожалуйста, пример тупейшего ФНЧ на свете, который на первой странице в любом учебнике.

Y[n] = X[n] + X[n-1]

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

rkit пишет:

Фурье это совсем не фильтр, о чем я и написал, и если не придумывать какое-то "кроме", то никакого противоречия нет. Что тут указывать, я не знаю. Фильтры это поле математики, которое нужно изучать, и подробно. Нагуглить одно слово и получить результат не получится.

Ну пожалуйста, пример тупейшего ФНЧ на свете, который на первой странице в любом учебнике.

Y[n] = X[n] + X[n-1]

С математикой у меня было все в порядке. Не боюсь и быстро могу разобраться. Чтоб не штудировать в лоб учебник тусил на форуме математиков. Так те говорят можно фильтровать сигнал по частотам и даже вытягивать данные в частотном диапазоне. Вы говорите что нельзя. Мне бы знать точно чтоб не тратить время на разбирательства.

А вот по поводу приведенной формули объясните пожалуйста. как она может фильтровать что либо. Вот если бы там стоял знак минус то это был бы градиент или первая производная. Чисельными методами решений дифур как раз приходилось заниматься в доматлабовскую эпоху.

nik182
Offline
Зарегистрирован: 04.05.2015

rkit пишет:

Дискретное преобразование фурье нельзя использовать для фильтрации сигналов. Нужно проектировать настоящие фильтры, хоть програмно, хоть аппаратно. Программно на дешевых ардуино не рекомендую.


Что бы не быть голословным http://www.jsu.edu/depart/psychology/sebac/low-pass/ просто пример из сети.
У меня отлично работают фильтры на основе БПФ. Приходится постоянно их использовать при обработке сигналов. Опыт есть и он говорит, что чем меньше в сигнале посторонних шумов, тем лучше конечный результат. Под шумами в данном случае я имею в виду не шумы системы измерений, а внешние, случайные , превнесённые плохой конструкцией датчиков и усилителей. Обрабатываем на больших компьютерах, это не спасает от много часовых расчётов. Для текущей диагностики это неприемлемый путь.

rkit
Offline
Зарегистрирован: 23.11.2016

nik182 пишет:
Что бы не быть голословным http://www.jsu.edu/depart/psychology/sebac/low-pass/

Быстро нагуглил, не читая, умный текст с кучей математики, в котором содержатся ключевые слова. Молодец. Правда текст совсем совсем о другом. Об использовании RC-фильтра в ОТЛАДКЕ математических систем анализа поведения (в ПСИХОЛОГИИ). Это написано буквально в первом абазце основного текста, но ты даже его не осилил прочитать. Молодец. Большой. Не голословный. Очень умный. Пора давать советы.

rkit
Offline
Зарегистрирован: 23.11.2016

ИгорьУ пишет:

Вот если бы там стоял знак минус то это был бы градиент или первая производная.

Он там стоит, если подать на вход нормализованные данные.

 

ИгорьУ пишет:

вытягивать данные в частотном диапазоне

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

nik182
Offline
Зарегистрирован: 04.05.2015

Ты опять на личности переходишь? При чём здесь тема статьи? Там внутри показано, что если сделать преобразаовние фурье, над полученным результатом произвести наложение цифрового фильтра и сделать обратную свёртку, то получим отфильтрованный сигнал.
Есть математический пакет numerical recipies. Вот одна из его тем: 13.3 Optimal (Wiener) Filtering with the FFT. 539. World Wide Web sample page from NUMERICAL RECIPES .
Пакет бесплатный. Все программы в наличии с описанием и теорией. Т.е. люди применяют преобразование Фурье для фильтрации. В #62 ты сказал что нельзя. Мне тоже не нравится, когда ты вводишь в заблуждение форумчан. Предлагаю ознакомится с темой. Больше ничего. Задеть лично тебя у меня намерений нет.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

rkit пишет:

ИгорьУ пишет:

Вот если бы там стоял знак минус то это был бы градиент или первая производная.

Он там стоит, если подать на вход нормализованные данные.

ИгорьУ пишет:

вытягивать данные в частотном диапазоне

ОТКУДА СПРАШИВАЕТСЯ  ВОЗЬМЕТСЯ МИНУС - ВСЕ ДАННЫЕ ПОСЛЕ ОЦИФРОВКИ СИГНАЛА С СЕНСОРА ПОЛОЖИТЕЛЬНЫЕ

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

ЧЕМ ВАМ НЕ ДИАПАЗОН ОТ 0 И ДО 5Гц И ЧЕМ ЭТО НЕ НИЗКОЧАСТОТНЫЙ ФИЛЬТР?

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Сато Ю. Без паники! Цифровая обработка сигналов. 

Вот вам классная книга популярно на нашу тему

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

Дискретное преобразование фурье нельзя использовать для фильтрации сигналов. Нужно проектировать настоящие фильтры, хоть програмно, хоть аппаратно. Программно на дешевых ардуино не рекомендую.

"Погодите, я конспектирую!"  ;)))

Уточни, очень прошу, начиная с какой цены Ардуино ты рекомендуешь начинать применять цифровые фильтры?

Приблизительно с $7 или $10 за плату, или $11.50, к примеру?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ИгорьУ пишет:

Сато Ю. Без паники! Цифровая обработка сигналов. 

Вот вам классная книга популярно на нашу тему

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

Это правда хорошая книжка, если ты в ней разберешься. Я надеюсь. Она очень простая и дает основы для понимания. В сети есть и в очень приличном качестве. Можно учить детей... ну тех, что не пугаются от знаков суммы и интеграла. ;)) Или Взрослых с любой технической вышкой. Прочтя книжку пусть бегло, поймешь иронию нескольких постов выше. Удачи.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Здравствуйте, Вдракула

Ирония понятна. А на каком МК это уже можно делать?

Ну и потом в Ардуино IDE есть аж несколько стандартных библиотек по Фурье анализу. На какое железо они рассчитаны, и как они туда вообще попали если не для анализа сигнала

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

1. Ирония относится к РКИТ. Это он тут любит поучать.

2. Книжку читай - она правда ОЧЕНЬ хорошая, без иронии. Надеюсь вышка у тебя есть?

3. Поняв немного суть вопроса (после книжки) - прочти что-то про цифровые фильтры. Это не про БПФ,  если что. ;))))

========================

Ну и под конец - карманный полиграф стрёмное дело. ;)) Обсуждение на программистском как-то странно. ;))

nik182
Offline
Зарегистрирован: 04.05.2015

Фурье анализ в библиотеках это просто стандартный простейший математический алгоритм БПФ, который дает на выходе массив коэффициентов гармоник. К слову анализ отношение очень опосредованное. Точнее было бы говорить не фурье анализ, а фурье преобразование. Анализ начинается потом, когда на основе полученных коэффициентов делаются выводы о спектре и прочих характеристиках исходного сигнала. Этого не делает ни одна библиотека. Это надо делать самому. И иметь понятие, что ты делаешь. Это несколько курсов института. Так что за фурье анализом это точно не к ардуине.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

wdrakula пишет:

Ну и под конец - карманный полиграф стрёмное дело. ;)) Обсуждение на программистском как-то странно. ;))

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

А что такого стремного в карманном полиграфе, его уже давно используют психоаналитики вместо того чтоб годами мурыжить клиентов. Но в целом стоит задача сделать нейроинтерфейс и тоже для психологов. Тема очень обширная. Людей учат корректировать поведение и владеть эмоциями а так же альцгеймер с паркинсоном. Там даже не перечесть применения, до управления протезами и роботами. По ходу можна упреждать некоторые кризисы. Я смотрел железо на котором уже созданы коммерческие образцы, ну так ничего особенного и даже на ардуине несколько проектов в интернете есть. И софта много разного есть открытого на эту тему. Даже игрушки делают, народ силой воли управляет дроном.

nik182
Offline
Зарегистрирован: 04.05.2015

Это как с кардиографом. Сначала были схемы на лист. Сейчас выпустили м.с. в которой всё в одном чипе. Только провода подключай к человеку и на выходе уже кривые для анализа. Так и тут, в мозговой активности. Есть ли м.с. уже готовые со всеми блоками внутри не знаю, но запрос есть, значит появятся. И сигнал будут выдавать чистый, с учётом всех компенсаций. На выходе всё равно будет кривая, которую анализировать будет человек, со всеми своими знаниями. На ардуине можно сделать костыль для получения кривых. Вот анализ я бы ей не доверил.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:
. На выходе всё равно будет кривая, которую анализировать будет человек, со всеми своими знаниями. На ардуине можно сделать костыль для получения кривых. Вот анализ я бы ей не доверил.

Это смотря с каких точек и что снимать...есть приборы в которых человек со своим человеческим фактором убран...тема одного из Александров (на этом сайте) )))

nik182
Offline
Зарегистрирован: 04.05.2015

ua6em пишет:

Это смотря с каких точек и что снимать...есть приборы в которых человек со своим человеческим фактором убран...тема одного из Александров (на этом сайте) )))


Наша центура в галлактике... Пример конкретный можно, где человека убрали, машину поставили? Или этот пост был только что бы что то ввернуть? Одного из Александров не знаю. Тему не знаю. Ссылки нет. Что делать?

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

Уже есть все с блютусом. Цена от 40уе до 600 в зависимости от количества каналов. Ну и железо там ничего такого. Уверен можно сделать дешевле

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:
ua6em пишет:

Это смотря с каких точек и что снимать...есть приборы в которых человек со своим человеческим фактором убран...тема одного из Александров (на этом сайте) )))

Наша центура в галлактике... Пример конкретный можно, где человека убрали, машину поставили? Или этот пост был только что бы что то ввернуть? Одного из Александров не знаю. Тему не знаю. Ссылки нет. Что делать?

если тема интересна, могу помочь с его электронкой, их есть у меня

b707
Offline
Зарегистрирован: 26.05.2017

ИгорьУ пишет:

Я не переходил на личности.

перейдете, это только вопрос времени. Вы взялись за дело, в котором мало понимаете, при этом имеете апломб отвергать советы более знающих. Пока вы это делаете относительно вежливо., но напряэенность уже нарастает. Я на этом сайте 2 года и много раз видел, как это начинается - и нетрудно предсказать. чем это закончится.

А по делу - почитайте все-таки любую популярную книжку по БПФ, вы в своих планах не учитываете ограничений метода. 

rkit
Offline
Зарегистрирован: 23.11.2016

ИгорьУ] </p> <p>[quote=rkit пишет:

ЧЕМ ВАМ НЕ ДИАПАЗОН ОТ 0 И ДО 5Гц И ЧЕМ ЭТО НЕ НИЗКОЧАСТОТНЫЙ ФИЛЬТР?


Не знаю, как мне это понимать. Ещё раз, если взять fft, обнулить лишние бины, и восстановить, то результат будет непредсказуемо искажен. Fft не кладет результат точно в свой бин. Более того, на входе fft не бывает идеальной синусоиды, чтобы она попала в свой бин. Там бывает только отрезок синусоиды, в то время как настоящая синусоида бесконечна.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

rkit][quote=ИгорьУ пишет:

Не знаю, как мне это понимать. Ещё раз, если взять fft, обнулить лишние бины, и восстановить, то результат будет непредсказуемо искажен. Fft не кладет результат точно в свой бин. Более того, на входе fft не бывает идеальной синусоиды, чтобы она попала в свой бин. Там бывает только отрезок синусоиды, в то время как настоящая синусоида бесконечна.

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

negavoid
Offline
Зарегистрирован: 09.07.2016

Лучше расскажите нам, почему зажали стольник на готовый съёмник ЭЭГ с блютусом, или всего полтинник в версии с алиэкспресса, с проводами.

ИгорьУ
Offline
Зарегистрирован: 24.04.2016

negavoid пишет:

Лучше расскажите нам, почему зажали стольник на готовый съёмник ЭЭГ с блютусом, или всего полтинник в версии с алиэкспресса, с проводами.

Не зажал. Уже есть за 45. Я хочу сделать 8 канальный и под софт от ЕПОК.

rkit
Offline
Зарегистрирован: 23.11.2016

Нашел дико удобную штуку для серьезного проектирования фильтров. Вбил параметры, получил код. Красота.

https://www.micromodeler.com/dsp/

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

rkit пишет:

Нашел дико удобную штуку для серьезного проектирования фильтров. Вбил параметры, получил код. Красота.

https://www.micromodeler.com/dsp/

Ссылка открывается пустой страницей, но вот это не оно?

rkit
Offline
Зарегистрирован: 23.11.2016

Нет, не оно. Посерьезнее.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ЕвгенийП пишет:

Ссылка открывается пустой страницей

Надо подождать полминуты, потом оно открываеца. Само. 

ВН
Offline
Зарегистрирован: 25.02.2016

так и не понял, использует ТС сенсор со специализированным усилителем на входе или просто какой-то там с али.