Argon (03.11.2007 16:26, просмотров: 229) ответил iit на Это естественно, что входящая последовательность может не быть точной копией сигнатур для этого и вычисляется коэффициент..
Ну например: Сигнатура 1:
++++++++++++++++++++
Сигнатура 2:
+++++-----+++++-----
Принимаемая последовательность содержит в себе сигнатуру 2 с затянутой первой подпоследовательностью:
+++++++-----+++++-----
А остальные подпоследовательности - без искажений.
Вычисляя корреляцию последовательно, нахождением дельты, имеем 2 проблемы:
1. после поступления 6-го символа ошибочно начинаем считать, что принимаемая последовательность содержит сигнатуру 1. Ну ладно, этого можно избежать, используя сравнение корреляционных сумм между собой с порогом. Т.е. "побеждает" та, которая на некий порог выше другой.
2. из-за того, что 1-я подпоследовательность оказалась на 2 символа длиннее, а все остальные имеют свою "родную" длину, образуется смещение в 2 символа и как следствие, ошибка в вычислении корреляционной суммы.
Вот против 2-го пункта и поможет вычисление полной свертки с поиском ее пика, величина к-рого инвариантна к тому смещению на 2 символа.
И еще сложность-то в том, что обнаруживать приход последовательности надо как можно раньше, даже если она фактически еще не пришла до конца, но уже вычислено, что все остальные - маловероятны. И сигнатуры-то не ортогональны.