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

Очень бы хотелось выслушать различные методы нахождения степени похожести сигналов.
С уважением.
serg1333
Цитата
Читал о кросс корреляции, но в приложении реального времени это не подходит, т.к. необходимо знать априори выборку


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

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


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

Ну и там всякие разные полезные тонкости еще...
mdmitry
Для обнаружения известного сигнала на фоне белого шума оптимальным решением является согласованный фильтр. На выходе пороговае устройство для принятия решения о наличии сигнала.
Nixon
Посмотрите эту статью Нажмите для просмотра прикрепленного файла
cyberrevenger
Спасибо всем кто отвечал, очень интересные решения, но хочу подчеркнуть,
1) что вычислительные ресурсы ограничены микроконтроллером STM32F407.
2) в связи со спецификой данной задачи(смарт карты), решение необходимо принять достаточно быстро. По сути время ограничивается временем обработки комманды,
посылаемой терминалом смарткарте. Или даже временем выполнения определенного алгоритма на карте(например RSA или DES шифрование ключей). Если промедлить
с решением схожести сигнала, карта может безвозвратно умереть(полное удаление данных).
3) по этому сигнал надо не накапливать для последующей обработкм, а обрабатывать по мере поступления отсчетов в сравнении с эталоном

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

eugen_pcad_ru
Теория гласит, что чем больше времени Вы анализируете сигнал, тем выше точность проводимой Вами оценки.
Хотите быстро? Можно, но точность будет невеликаsm.gif

P.S.: Метод наименьших квадратов и т.п. не рассматривали? Может лучше сравнивать не сигналы, а их основные параметры? Амплитуду, частоту и т.п.?
diwil
Цитата(cyberrevenger @ Jul 19 2013, 02:51) *
Спасибо всем кто отвечал, очень интересные решения, но хочу подчеркнуть,
1) что вычислительные ресурсы ограничены микроконтроллером STM32F407.
2) в связи со спецификой данной задачи(смарт карты), решение необходимо принять достаточно быстро. По сути время ограничивается временем обработки комманды,
посылаемой терминалом смарткарте. Или даже временем выполнения определенного алгоритма на карте(например RSA или DES шифрование ключей). Если промедлить
с решением схожести сигнала, карта может безвозвратно умереть(полное удаление данных).
3) по этому сигнал надо не накапливать для последующей обработкм, а обрабатывать по мере поступления отсчетов в сравнении с эталоном

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


1. у этого проца ресурсов хватит _на_все_!!!. Для справки - комплексное БПФ в плавающей точке 128 отсчетов - 600мкс (168МГц). И это без ассемблера, только С код.
2. Делать короче выборку и, если сигнал уникальный, то решение будет принято еще раньше.
3. ммм... ну... тогда ничего не сделать sm.gif
mdmitry
Цитата(cyberrevenger @ Jul 19 2013, 02:51) *
3) по этому сигнал надо не накапливать для последующей обработкм, а обрабатывать по мере поступления отсчетов в сравнении с эталоном

А что делает согласованный фильтр как не обрабатывает входную смесь? Выход фильтра - автокорреляционная функция сигнала с которым этот фильтр согласован. Пиковое значение будет в момент окончания сигнала. Фильтр может быть построен по нерекурсивной схеме. Длина импульсной характеристики определяет задержку отклика на выходе. Импульсная характеристика - инвертированный во времени и сдвинутый образцовый сигнал.
Посмотрите как определяют начало пакетов при передачи информации по радиоканалам.(преамбула).
cyberrevenger
Цитата(mdmitry @ Jul 19 2013, 15:05) *
А что делает согласованный фильтр как не обрабатывает входную смесь? Выход фильтра - автокорреляционная функция сигнала с которым этот фильтр согласован. Пиковое значение будет в момент окончания сигнала. Фильтр может быть построен по нерекурсивной схеме. Длина импульсной характеристики определяет задержку отклика на выходе. Импульсная характеристика - инвертированный во времени и сдвинутый образцовый сигнал.
Посмотрите как определяют начало пакетов при передачи информации по радиоканалам.(преамбула).

Хым, истина гдето рядом, буду копать в данном направлении, надо мат часть освежить... спасибо вам за совет
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.