• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

BLE SoC PHY6202

nikolz

Well-known member
Я его уже видел. Матом ругаться не хочу.
--------
На всякий пожарный случай - тестовый кривой исходник WebBluetooth (HTML + js) от теста:
Самое смешное в том, что такие алгоритмы во всех браслетах, вне зависимости от цены.
Разводят любителей фитнес клубов и здорового образа жизни офисного планктона.
 

pvvx

Активный участник сообщества
Самое смешное в том, что такие алгоритмы во всех браслетах, вне зависимости от цены.
Разводят любителей фитнес клубов и здорового образа жизни офисного планктона.
Причину 'развода' изучили?
Все они делают как тут:
Вместо математической фильтрации окном (типа преобразования БПФ) на sin/cos от базиса 'пилы', они там что-то фильтруют и дифференцируют :)
 

pvvx

Активный участник сообщества
Задача элементарная - найти несущую в диапазоне от 50 до 200 'пульсов' и вести с известной уходом. Будет измерять и когда человек не понимает что на графике. По видео рожи в ютубе :p
Методика давно проработана на определение по камере чуваков со стрессом.
 

nikolz

Well-known member
Задача элементарная - найти несущую в диапазоне от 50 до 200 'пульсов' и вести с известной уходом. Будет измерять и когда человек не понимает что на графике. По видео рожи в ютубе :p
Методика давно проработана на определение по камере чуваков со стрессом.
Экспериментировал с MAX30105. У него три диода и датчик температуры.
пытаюсь получить стабильные показания параметров пульсовой волны.
применение БПФ не решает проблему фильтрации скачков и медленных дыхательных волн.
Задача более сложная, чем кажется изначально.
 

pvvx

Активный участник сообщества
Экспериментировал с MAX30105. У него три диода и датчик температуры.
пытаюсь получить стабильные показания параметров пульсовой волны.
применение БПФ не решает проблему фильтрации скачков и медленных дыхательных волн.
Задача более сложная, чем кажется изначально.
Полностью халявый замер c дерганием/дерганием и пофиг всё:
upload_2019-12-17_14-15-8.png
upload_2019-12-17_14-16-30.png
Итого: F(1)=0.0223502 * 66.8 smps * 60 sec = 89.579602 пулсиков в минуту.
 

pvvx

Активный участник сообщества
применение БПФ не решает проблему фильтрации скачков и медленных дыхательных волн.
Кто вам сказал что нужно классическое разложение на примитивы sin/cos, да ещё с дурным дискретным шагом (БПФ/ДПФ)?
У вас вычислительные мощности на Гегафлопсы простаивают в мелком MCU? :confused: :)
 

pvvx

Активный участник сообщества
Вырежем более качественный кусок и измерим:
upload_2019-12-17_14-49-40.png
Всё совпадает до граммов, хотя замер сделан в сантиметре - двух от датчика c накалом диода до пары мА :)
А далее, учитывая Вейвлет, сделайте правильный базис разложения... Точность вырастет на порядок.
 

pvvx

Активный участник сообщества
Прикидычно функция на пару страниц asm для типового DSP. На Cortex ещё как-то перенесется, но возможно будет тормозить если нужна особая точность (старт показаний после 3-х секунд замера и удержание фазы с вычислением частоты на каждый smps). На ESP лучше и не думать реализовывать...
 

nikolz

Well-known member
Прикидычно функция на пару страниц asm для типового DSP. На Cortex ещё как-то перенесется, но возможно будет тормозить если нужна особая точность (старт показаний после 3-х секунд замера и удержание фазы с вычислением частоты на каждый smps). На ESP лучше и не думать реализовывать...
Все это знаю не только по книжкам, и не только преподавал это, но и делал реальные системы обработки испытаний того что летает.
А то что период первой гармоники будет совпадать с периодом пульсовой волны - это вообще-то азы спектрального анализа.
Но в целом, красивые у вас картинки.
-----------------------------
Относительно применения вейвлет, тут я с вами не соглашусь.
Вообще-то для таких задач используют
метод Карунена-Лоэва, который нашел применение в диагностике заболеваний и прогнозирования послеоперационных осложнений еще в прошлом веке.
--------------------------
Потом его стали использовать в социал. исследованиях поведения и классификации толпы ну и т д
А указанный вами метод можно рассматривать как его упрощение, но с таким же успехом упрощением является и ДПФ.
---------------
Но вопрос в том, что Вы дальше будете делать с полученными коэффициентами.
-----------------------------
Любой математический метод - подобен мясорубки
на входе мясо - на выходе фарш
на входе г-но - на выходе оно же.
 

pvvx

Активный участник сообщества
Вообще-то для таких задач используютметод Карунена-Лоэва

Да-да фамилии с миллионников городского кладбища. А отличаются в реализации парой бит.
Видимо практики переноса на CPU никакой...
Но вопрос в том, что Вы дальше будете делать с полученными коэффициентами.
Непрерывно показывать частоту пульса с точностью кварца :)
Вроде микросхема датчика так и зовется - пульсометр, если её использовать по назначению...
 

pvvx

Активный участник сообщества
И графики для анализа методов получены элементарно. Нажатием кнопочки в Html "Save data.csv" и чтением в программу Power Spectrum Estimate Laboratory (PSE Lab) .
Другое ПО или платное, или не едят text-овые данные. А дописывать в HTML вывод *.wav лень :)
 

pvvx

Активный участник сообщества
И уточнение по:
Но вопрос в том, что Вы дальше будете делать с полученными коэффициентами.
Коэф. никому не нужны. Вообще данные датчики получили распространение по другой причине. Одна из них - исследования пульсаций сердца и связанных с этим явлений в западной системе (США) началось только с 1990 года. Им нужна инфа и проще её собрать с толпы папуасов напяливаюх модные украшения...
 

pvvx

Активный участник сообщества
метод Карунена-Лоэва
Единственное что имеет совпадение из сказанного в методе Карунева-Лоэва-...-...-...-...-...-...-...-...-...-...-...-...-...-...-...-... ...
т.е. всего пару слов:
Одним из наиболее перспективных методов решения этой, очень непростой проблемы является поиск двумерного ортогонального базиса для интегрального преобразования растрового изображения, адекватного задаче распознавания сцены, и такого (что важно), который обеспечивает сосредоточение искомой информации в минимальном числе коэффициентов разложения. Эти - "старшие гармоники" спектра разложения несут, как правило, искомую информацию об интегральных перепадах яркости, в то время как высокочастотные составляющие спектра отражают лишь избыточную информацию, - например, в задаче поиска контуров областей изображения.
Всё остальное - не годится. Частный случай и совершенно другая практическая тема.
 

nikolz

Well-known member
Единственное что имеет совпадение из сказанного в методе Карунева-Лоэва-...-...-...-...-...-...-...-...-...-...-...-...-...-...-...-... ...
т.е. всего пару слов:
Одним из наиболее перспективных методов решения этой, очень непростой проблемы является поиск двумерного ортогонального базиса для интегрального преобразования растрового изображения, адекватного задаче распознавания сцены, и такого (что важно), который обеспечивает сосредоточение искомой информации в минимальном числе коэффициентов разложения. Эти - "старшие гармоники" спектра разложения несут, как правило, искомую информацию об интегральных перепадах яркости, в то время как высокочастотные составляющие спектра отражают лишь избыточную информацию, - например, в задаче поиска контуров областей изображения.
Всё остальное - не годится. Частный случай и совершенно другая практическая тема.
Изображение вообще здесь не причем.
Математически все перечисленные методы предназначены для представления произвольной функции в виде суммы взвешенных базисных ортогональных функций.
Наиболее универсальным является метод Карунена-Лоэва
Этот метод позволяет найти оптимальный базис.
Два других т е фурье и вейфлет - это разложения, которые дают оптимальный базис для функций со специальными свойствами т е не универсальные.
Вейфлет предназначен для функции, у которой в разложении фурье значимы низкочастотные компоненты и высокочастотные и есть нули в середине ряда.
Фурье - для разложение стационарных и периодических функций
----------------------------
Но как я понимаю Вы знаете эти методы лишь в применении к сжатию сигнала или изображения.
Поэтому знаете Вейфлет , поверхностно знаете фурье и совсем не знаете Карунена-Лоэва.
 

pvvx

Активный участник сообщества
Математически все перечисленные методы предназначены для представления произвольной функции в виде суммы взвешенных базисных ортогональных функций.
Забыли от пары циклических буферов с хитрой выборкой и жирными много-битными сумматорами?
Нормальный DSP выполняет команду сложения перемножаемого числа из входного буфера с переходом к следующему адресу выборки на коэф. из буфера с хитрой выборкой, задаются и +- шаг выборок. Буфера ещё и циклические... И всё за одну команду в один или пару тактов...
И чем ваша реализация отличается? :confused: Битами? :)
Но как я понимаю Вы знаете эти методы лишь в применении к сжатию сигнала или изображения.
Поэтому знаете Вейфлет , поверхностно знаете фурье и совсем не знаете Карунена-Лоэва.
Почти не занимался этим. Опять не угадали.
Какие могут быть измерения с сжатием? :eek:
Чем больше raw инфы - тем лучше. Дома или год спустя разгребете на новые составляющие. А во время съемок и/или замеров, например в проф.геофизике ничего выкидывать или сжимать нельзя - испортите данные.
В пром.реализации входные данные преобразуются находу и там вообще нечего сжимать...
 

pvvx

Активный участник сообщества
Изображение вообще здесь не причем.
Там трехмерное преобразование в базисном операторе команды и таких микрух для бытовухи пока нет.
А у нас двумерка. Входная функция по точкам перемножается на зацикленную эталонную - это и есть базовая команда для двумерного DSP.
И не пугайте детей хитрыми 'словесами'...
 

pvvx

Активный участник сообщества
Сверху Снизу