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

 
 
> Нахождение самого похожего участка в сигнале, БПФ, БПХ и другие методы
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
Ответов
Alexey Lukin
сообщение Sep 2 2011, 13:52
Сообщение #2


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

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Цитата(getch @ Sep 2 2011, 14:58) *
Критерием похожести я выбрал КК (коэффициент корреляции). Т.е. задача сводится к нахождению максимума абсолютного значения КК.
1. Имеет ли смысл для моей задачи (с точки зрения скорости выполнения) использовать алгоритм БПФ для длин векторов, не являющихся степенями двойки? Это работы Бейли, Просекова и другие.

Вам нужны только БПФ со степенями двойки, независимо от длин сигнала. Сигналы дополняются нулями до степеней двойки.


Цитата(getch @ Sep 2 2011, 14:58) *
2. БПФ Винограда?

Не нужно. Используйте те стандартные программы, которые у вас имеются. Наиболее быстрые БПФ работают по стандратным алгоритмам Кули-Тьюки либо со смешанным основанием.


Цитата(getch @ Sep 2 2011, 14:58) *
3. Возможно, есть другой эффективный критерий похожести, отличный от КК.

Есть, но КК вычисляется наиболее быстро и в целом неплоха.


Цитата(getch @ Sep 2 2011, 14:58) *
4. Задача, очевидно, стандартная и максимально эффективный велосипед уже давно изобретен. Подскажите, как официально она называется?

КК.


Цитата(getch @ Sep 2 2011, 14:58) *
5. Какие могут быть оптимизации, чтобы не проделывать полностью вычисления БПФ?

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


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

Достаточно взять комплексное сопряжение спектра, это соответствует развороту во времени.
Go to the top of the page
 
+Quote Post
getch
сообщение Sep 2 2011, 14:01
Сообщение #3


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

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



Цитата(Alexey Lukin @ Sep 2 2011, 16:52) *
Пара БПФ вычисляет значения КК не для одной позиции шаблона, а для целого ряда позиций. Для вычисления одной позиции вам никакого БПФ не нужно, т.к. КК вырождается в одно скалярное произведение.

Так мне же и надо иметь (Len - N) значений КК, чтобы среди них выбрать максимальное абсолютное значение. Т.е. если делать в лоб, то надо вычислить (Len - N) скалярных произведений векторов длины N. Поэтому и интересуюсь быстрой корреляцией через БПФ, БПХ и другие методы.


Цитата
Достаточно взять комплексное сопряжение спектра, это соответствует развороту во времени.

Можете пояснить более подробно для слабо-разбирающегося в ЦОС?
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
- - 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
- - eugen_pcad_ru   Кхм, может я глупый вопрос задам, но: метод наимен...   Sep 19 2011, 09:55
- - getch   Цитата(eugen_pcad_ru @ Sep 19 2011, 13:55...   Sep 22 2011, 10:55
- - xemul   Цитата(getch @ Sep 22 2011, 14:55) Алгори...   Sep 22 2011, 11:41
- - getch   Цитата(xemul @ Sep 22 2011, 15:41) Ещё ху...   Sep 22 2011, 11:51


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 01:23
Рейтинг@Mail.ru


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