реклама на сайте
подробности

 
 
> Нахождение самого похожего участка в сигнале, БПФ, БПХ и другие методы
getch
сообщение Sep 2 2011, 10:58
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335



Приветствую всех!

Я от ЦОС далек, но задача, по-моему, найдет здесь понимание.

Постановка задачи:
1. Есть ВР (временной ряд (вещественный), LEN точек), который с определенной частотой дополняется новым членом.
2. Есть Шаблон - N точек.
3. Надо найти в ВР участок, который наиболее сильно "похож" на Шаблон. Соответственно, в этом участке тоже N точек.

Критерием похожести я выбрал КК (коэффициент корреляции). Т.е. задача сводится к нахождению максимума абсолютного значения КК.

Нашел два оптимизированных алгоритма расчета быстрой корреляции: через БПФ (вещественное) и БПХ (Хартли).

Честно говоря, математическую часть алгоритмов слабо понимаю. И у меня возникло несколько вопросов:
1. Имеет ли смысл для моей задачи (с точки зрения скорости выполнения) использовать алгоритм БПФ для длин векторов, не являющихся степенями двойки? Это работы Бейли, Просекова и другие.
2. БПФ Винограда?
3. Возможно, есть другой эффективный критерий похожести, отличный от КК.
4. Задача, очевидно, стандартная и максимально эффективный велосипед уже давно изобретен. Подскажите, как официально она называется?
5. Какие могут быть оптимизации, чтобы не проделывать полностью вычисления БПФ? Поясню ниже на примере двух случаев:

1. Шаблон - это крайние N точек исходного ВР из Len точек. Пришло новое значение ВР, т.е. его длина стала (Len + 1) точек. Шаблон, соответсвенно "сместился" вправо (изменился) тоже на одно значение. БПФ заново пересчитывать?
2. Шаблон - это какой-то участок из N точек исходного ВР. Если я сдвигаю шаблон на одну точку в какую-то сторону, БПФ надо будет полностью пересчитывать?

И еще один вопрос, если надо найти похожий участок не только на шаблон, но и на "перевернутый шаблон" - точки в обратном направлениии (Было {1, 2, 5, 7}, стало {7, 5, 2, 1}), то можно ли из "нормального" БПФ перейти эффективно к "перевернутому" БПФ?

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

P.S. Если возможно, разъясните на более понятном языке, что имелось в виду в этом посте (Сообщение #28)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
eugen_pcad_ru
сообщение Sep 19 2011, 09:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Кхм, может я глупый вопрос задам, но:
метод наименьших квадратов не подходит? Корень из суммы квадратов разностей реального фрагмента и идеального фрагмента?
Минимальная сумма соответствует наибольшей "похожести". При полном соответсвии получите нуль.

P.S.: Хотя может я чего и не понялsm.gif


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
getch
сообщение Sep 22 2011, 10:55
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335



Цитата(eugen_pcad_ru @ Sep 19 2011, 13:55) *
метод наименьших квадратов не подходит?

Алгоритмическая сложность такого метода "лобовая" - O(N^2).
Быстрая корреляция через БПФ значительно эффективнее - O(N * log(N)).
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 22 2011, 11:41
Сообщение #4



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(getch @ Sep 22 2011, 14:55) *
Алгоритмическая сложность такого метода "лобовая" - O(N^2).

Ещё хуже, т.к. один из сравниваемых фрагментов придётся перед МНК отнормировать каким-то образом (каким?) под другой фрагмент.
Go to the top of the page
 
+Quote Post
getch
сообщение Sep 22 2011, 11:51
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335



Цитата(xemul @ Sep 22 2011, 15:41) *
Ещё хуже, т.к. какой-то из фрагментов придётся перед МНК отнормировать каким-то образом (каким?) под другой фрагмент.

Существует итерационный алгоритм расчета СКО сдвинутого окна через СКО окна до сдвига.
Нормировка делается через деление фрагмента на его почти бесплатно полученное СКО.

При этом Среднее каждого фрагмента обнулять не требуется при сравнении. Надо лишь один раз отнормировать сам шаблон (что ищется) к СКО = 1 и Ср. = 0.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- getch   Нахождение самого похожего участка в сигнале   Sep 2 2011, 10:58
- - Porty   RE: Нахождение самого похожего участка в сигнале   Sep 2 2011, 11:32
|- - getch   Цитата(Porty @ Sep 2 2011, 14:32) подобно...   Sep 2 2011, 12:49
|- - Porty   Цитата(getch @ Sep 2 2011, 16:49) Могли б...   Sep 2 2011, 13:09
|- - getch   Цитата(Porty @ Sep 2 2011, 16:09) 5. Выч...   Sep 2 2011, 13:34
|- - Porty   Цитата(getch @ Sep 2 2011, 17:34) Похоже,...   Sep 2 2011, 13:49
- - Alexey Lukin   Цитата(getch @ Sep 2 2011, 14:58) Критери...   Sep 2 2011, 13:52
|- - getch   Цитата(Alexey Lukin @ Sep 2 2011, 16:52) ...   Sep 2 2011, 14:01
- - ivan219   Так мне же и надо иметь (Len - N) значений КК, что...   Sep 2 2011, 19:11
|- - getch   Написал алгоритм быстрой корреляции через БПФ. Как...   Sep 8 2011, 21:09
|- - getch   Врубился, как сделать. Надо лишь перед БПФ привест...   Sep 9 2011, 06:19
|- - getch   Подскажите, есть ли возможность из RealFFT(Signal,...   Sep 9 2011, 17:09
- - Alexey Lukin   Обычно это делается не по одному отсчёту, а по бло...   Sep 9 2011, 17:15
|- - getch   Герцеля смотрел ранее, но перед тем, как его приме...   Sep 9 2011, 18:55
- - Alexey Lukin   Если сигнал поступает по 1 отсчёту, то ни Герцель,...   Sep 9 2011, 21:54
|- - getch   Цитата(Alexey Lukin @ Sep 10 2011, 00:54)...   Sep 9 2011, 22:55
- - Alexey Lukin   Если на каждом новом отсчёте меняется и шаблон, то...   Sep 9 2011, 23:32
|- - getch   Да, с каждым новом шаблоном нужно считать корреляц...   Sep 10 2011, 01:14
|- - getch   На другом форуме есть очень схожая по задаче тема:...   Sep 10 2011, 04:46
|- - getch   Поискал в интернете схожие задачи. Выкладываю ссыл...   Sep 10 2011, 08:10


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 11:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016