![]() |
|
|
![]()
|
|
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
Вряд ли мне кто поможет, но вдруг
в общем ситуация такая с некоего абстрактного прибора(к примеру через USB) я постоянно получаю цифровой сигнал изменяющийся во времени (допустим по гармоническому закону) и у этого сигнала есть постоянная состовляющая (которая слегка плавает во времени)... собственно вопрос в следующем... как вычеслить значение постоянной состовляющей принимаемого цифрового сигнала? Буду благодарен за любую ссылку по данному вопросу, заранее СПАСИБО -------------------- SCJP 6 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Если она плавает - она НЕ постоянная. А вообще вариантов масса - от построения уравнения регрессии с константой до тупого взятия за постоянку минимального значения. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
надеюсь Вы понимаете что в реальных приборах ничего постоянного нету... не будут же в таком случае постоянную состовляющую называть "почти постоянная состовляющая"
взятия минимального значения за ПС вроде как не правильно (ессесно могу ошибаться давно с матиматикой не имел дело)... в моем понимании скорее среднего значения (там проинтегрировать да разделить на длинну, но этот вариант не учитывает что уровень ПС может изменится).... постоения уравнения регрессии с константой - это я пока не знаю (а возможно просто не помню) Это сообщение отредактировал(а) goodday1941 - 15.9.2008, 14:13 -------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
появилась мысль... перегнать все через преобразование фурье в частотную область, потом отфильтровать, и перегнать снова во временную область... бр... кто что может сказать по этому поводу... помоему слишком трудоемко (комп будет прозревать
-------------------- SCJP 6 |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Насколько вообще важна точность определения ПС? Если основной сигнал гармонический и точность должна быть не супер-пупер, то я бы брал среднее значение за последние пару-тройку периодов (так будет учитываться изменение ПС)
Добавлено через 1 минуту и 25 секунд Да в принципе и не обязательно если гармонический, для любого периодического подойдёт -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну если плавает, значит не постоянная, а низкочастотная
и выделять её действительно, стоит фильтром, ослабляющим высокие частоты только в Фурье я бы фильтровать не советовал: операции, которые там кажутся простыми и хорошими (например, обнуление спектра на частотах выше какого-то порога) могут приводить к очень некрасивым последствиям во временной области Добавлено через 1 минуту и 39 секунд
можно брать последние n секунд и вычислять среднее по ним - получится скользящее среднее -------------------- qqq |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
вообще что б отойти от абстрактного сигнала, скажу так сигнал - кардиограмма человека
Добавлено @ 17:50 точность важна Добавлено @ 18:00 предлагаем другой вариант... это было первое что пришло в голову Это сообщение отредактировал(а) goodday1941 - 15.9.2008, 18:09 -------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
это вариант... но думаю что он может и не пройти.. но так как он самый простой наверное начну с него Это сообщение отредактировал(а) goodday1941 - 15.9.2008, 18:16 -------------------- SCJP 6 |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
а размер интервала, на котором интегрируется, необязательно должен быть равен периоду достаточно, чтобы он был достаточно длиным это, конечно, приведёт к некоторым колебаниям, но их амплитуда будет обратно пропорциональна размеру интервала, так что увеличивая его можно будет уменьшать погрешность однако, тогда будет возрастать запаздывание реакции на изменения этой составляющей здесь есть некоторое подобие принципа неопределённости - точность измерения по времени и по значению конфликтуют между собой более точный вариант - использовать особенности сигнала например, действительно, выделить периоды и обозначить в них какие-то характерные точки (всплески, например) и усредняя значения сигнала в них отслеживать изменения сдвига -------------------- qqq |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Я так понимаю, раз это кардиограмма, то возможны такие варианты:
1) у человека сердце не может биться медленее какого-то порога. У врачей спросите какого именно. Ставьте фильтр низких частот с соответствующей пороговой частотой. Можно это сделать на самих датчиках (аналоговые фильтры) или уже программно в компе (цифровой фильтр). Но тогда у вашей системы надо будет указать в характеристиках, что мол ниже такой-то частоты сердцебиение она не определяет. 2) возможно спектр вам и так понадобится в дальнейшем (я например имел дело с энцефалограммами и там вроде выявление некоторых заболеваний делалось на основе знания о спектре или наличия каких-то частот). Тогда в вычисленном спектре самая младшая гармоника и будет этой "почти постоянной составляющей" -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
спектр понадобится 100% собсно в задумке как раз и определят всякие болезни по кардиограмме человека думаю да пару тройка нижних гармоник и я избавлюсь от постоянной состовляющей... тут просто интерестно как это повлияет в конечном итоге на кардиограмму... ну и собсно раз так пришли к тому что нужен производительный алгоритм преобразования Фурье -------------------- SCJP 6 |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
вот нашел... буду пробвать
-------------------- SCJP 6 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Могу предложить два варианта.
1. АКФ. 2. Метод главных компонент. С помощью этого метода можно выделить компоненты, вносящие наибольший вклад в дисперсию исходного сигнала. После чего восстановить сигнал только на этих компонентах и вычесть его из исходного. Такой метод применяется мной для выделения региональной составляющей геомагнитного и гравитационного полей, т.о. оставляя только локальную составляющую. Это сообщение отредактировал(а) W4FhLF - 17.9.2008, 11:26 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| DRUID3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 20.6.2005 Где: Kyyiv Репутация: 2 Всего: 9 |
2W4FhLF
ну Вы, блин, даете. вообще все верно, но... но это же простой кардиограф, а не численные методы в актуальных вопросах квантовой теории гравитации))). правило простое - резкий перепад во времннОй области даст sinc(x)-подобные осциляции в частотной и наоборот. Это стоит учитывать в очень многих ситуациях, но все-таки данный случай как теормех при строительстве собачьей конурки. 2goodday1941 Это Вам по учебе или рабочее задание дали? Так вот далее по-делу: Вы вполне правильно мыслите - обнуление FFT коэффициентов это ни что иное как блочный метод FIR фильтрации(есть еще собственно FIFO метод - т.е. на основе кольцевого буфера). Просто дабы избежать всяких там эффектов Гибса высоколобые ученные мужи рекомендуют не полностью обнулять, а в соответствии с FFT нужной Вам импульсной характеристики. Но не заморачивайтесь. это не тот случай. И это, я так понимаю, Вы хотите так убрать дыхание оставив только пульс(работу сердечной системы). Ну вполне логично, так и делают. Еще совет - который я в свое время воплотить не успел - попробуйте сделать быстрое вейвлет-преобразование (оно отнимает очень мало ресурсов и тривиально само по себе, только вейвлет надо подобрать). Там и Гибса не будет и если систему думают автоматизировать - намного точнее будет диагностика. Но это так, мысли в слух. еще вопрос по технологиям - ну USB понятно, сейчас редкий ноут имеет COM, а почему java-программисту дали такое задание? Нет, все конечно работать будет, но забавная система. А датчик у Вас какой? А контроллер? И что делает контроллер, просто буферизирует? -------------------- Every time if you use Linux, you are joined to the communism... практика - критерий истины ... отделенной от нас пропастью субъективного восприятия... |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |