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

 
 
> Сравнение двух дискретных сигналов, pattern recognition
cyberrevenger
сообщение Jul 18 2013, 15:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 21-11-07
Пользователь №: 32 540



Доброго времени суток господа,
Есть у меня вопрос к гуру по ЦОС, т.к. сам далек от этой тематики. Появилась задача сравнение эталонного сигнала(предварительно полученного с ацп, выборка конечнаб частота не высокая, до 100 кГц) с сигналом поступающим в реальном времени с ацп. При достижении определенного уровня схожести, необходимо достаточно быстро принять решение(выставить 1 на одном из портов контроллера). Начало отсчета входного сигнала известно, но сигнал может быть задержен во времени(небольшой джиттер) или же начинаться может без задержки, но в определенный момент, временной джиттер может внести небольшой сдвиг. Читал о кросс корреляции, но в приложении реального времени это не подходит, т.к. необходимо знать априори выборку. Есть вариант в лоб вычитать значения амплитуд сигнала 1 из сигнала 2, они положительны от 0 до 5 В. Но как быть в случае временного сдвига в начале или в середине выборки, который может быть а может и не быть. Природа сигнала, значение потребляемого напряжения смарт картой при обработки различных команд посылаемых ей теминалом. В связи с этим известен момент начала обработки команды(плюс минус джиттер в начали и/или середине выборки).

Очень бы хотелось выслушать различные методы нахождения степени похожести сигналов.
С уважением.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
diwil
сообщение Jul 18 2013, 17:21
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Цитата(cyberrevenger @ Jul 18 2013, 19:57) *
Доброго времени суток господа,
Есть у меня вопрос к гуру по ЦОС, т.к. сам далек от этой тематики. Появилась задача сравнение эталонного сигнала(предварительно полученного с ацп, выборка конечнаб частота не высокая, до 100 кГц) с сигналом поступающим в реальном времени с ацп. При достижении определенного уровня схожести, необходимо достаточно быстро принять решение(выставить 1 на одном из портов контроллера). Начало отсчета входного сигнала известно, но сигнал может быть задержен во времени(небольшой джиттер) или же начинаться может без задержки, но в определенный момент, временной джиттер может внести небольшой сдвиг. Читал о кросс корреляции, но в приложении реального времени это не подходит, т.к. необходимо знать априори выборку. Есть вариант в лоб вычитать значения амплитуд сигнала 1 из сигнала 2, они положительны от 0 до 5 В. Но как быть в случае временного сдвига в начале или в середине выборки, который может быть а может и не быть. Природа сигнала, значение потребляемого напряжения смарт картой при обработки различных команд посылаемых ей теминалом. В связи с этим известен момент начала обработки команды(плюс минус джиттер в начали и/или середине выборки).

Очень бы хотелось выслушать различные методы нахождения степени похожести сигналов.
С уважением.


Если требуется сравнить эталонный с получаемым, о коррелятор это лучшее решение.
Допустим, длины эталонного сигнала N. Тогда корреляцию надо считать каждые N/2 отсчетов входного сигнала.
Причем если N есть степень 2, то тогда можно использовать БПФ. Т.е. вычислить ПФ от эталонного, накопить N отсчетов входного, вычислить пф от него, пермножить эти коэффициенты (правда комплексно сопряженные) и взять обратное фурье. Поскольку сигналы вещественны, то этот результат будет вещественен. Найти его максимум и отнести к сумме квадратов сигнала. Получившееся значение будет степенью похожести сигналов. Причем, если сигналы совершенно точно совпадают, то это значение будет единица.

Ну и там всякие разные полезные тонкости еще...
Go to the top of the page
 
+Quote Post



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

 


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


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