iit (03.11.2007 13:19, просмотров: 180) ответил Argon на Есть задача: на вход некоего алгоритма поступает последовательность символов, принимающих значение +1 и -1 с периодом 50 мсек. Есть 20 сигнатур, совпадение последовательности с одной из которых необходимо определить.
Не очень силен в понятиях цифровой обработки, но насколько я понял необходимо при поступлении каждого символа посчитать корреляцию с заданными последовательностями.
У меня на LPC21xx рассчитывается корреляция входного сигнала с заданным образом при поступлении данныхс АЦП с частотой 650 Гц и длинной последовательности в 4096 значения... и ничего успевает.
Фишка в том, чтобы не считать полностью свертку при каждом входном значении, а считать дельту. Т.е. когда образ с которым сравниваем имеет значения +1 -1, то можно для него вывести алгоритм нахождения дельты. И тогда процесс вычисления корреляции будет сводиться не к полному вычислению свертки, а только к вычислению дельты.
КоррТ = Корр Пред + ДельтаКорр(х)
КоррТ - корреляция текущая
КоррП - корреляция полученная при поступлении предыдущего значения.
ДельтаКорр(х) - та самая функция нахождения дельты между КоррТ и КоррП.
х - входной символ(значение).
Вооружитесь карандашом и бумагой и попробуйте расписать формулу вычисления свертки для хi, потом для xi+1, потом для xi+2 и увидите что для каждого входного значения при вычислении свертки выполняются те-же операции за небольшими отличиями. Вот эти отличия и можно оформить в виде функции ДельтаКорр. Только не берите большие последовательности. Возьмите по 8 символов.