|
Сравнение сигнала с эталонами |
|
|
|
 |
Ответов
|
Dec 18 2017, 17:12
|
Участник

Группа: Свой
Сообщений: 58
Регистрация: 6-07-12
Из: г.Нижний Новгород
Пользователь №: 72 651

|
Цитата(Sergey Krivonosov @ Dec 18 2017, 19:22)  Подозреваю, что данная проблема решается с помощью преобразований Фурье, но как приступить я не знаю. Может кто то подскажет метод решения. Cуществуют конечно научный способы вычисления корреляции, но можно попробовать по типу разложения по квадратурам. Сдвинуть тестовый сигнал на 90гр. и сделать перемножение сигнала на две квадратуры тестового сигнала, а потом посчитать что то типа модуля. Ну либо если нужен научный метод, то искать алгоритмы вычисления корреляции.
|
|
|
|
|
Dec 19 2017, 09:42
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 10-07-08
Из: Днепропетровск
Пользователь №: 38 859

|
Цитата(seniorandre @ Dec 18 2017, 19:12)  Cуществуют конечно научный способы вычисления корреляции, но можно попробовать по типу разложения по квадратурам. Сдвинуть тестовый сигнал на 90гр. и сделать перемножение сигнала на две квадратуры тестового сигнала, а потом посчитать что то типа модуля. Ну либо если нужен научный метод, то искать алгоритмы вычисления корреляции. Спасибо за подсказку, я не мог понять, где взять мнимую часть сигнала. Действительно сдвинув сигнал на 90 градусов я получаю мнимую часть сигнала. Для одной свертки я должен получить 4 массива: M1, M2, M3, M4, где M1 cos сигнала, M2 sin сигнала, M3 cos эталона, M4 sin эталона. Отдельно суммирую от n=0..127: M1(n)*M3(n) - M2(n)*M4(n) и M1(n)*M4(n)+M3(n)*M2(n). Затем эти суммы возвожу в квадрат и суммирую и извлекаю корень квадратный. Что мне даст эта свертка? Я так понимаю, что если сигналы совпадают я получу максимальное значение амплитуды? Цитата(el.d @ Dec 19 2017, 08:37)  Это называется преобразование Гильберта.
Только зачем оно здесь? Разве в описанном методе есть какое-то сравнение сигнала с эталоном?
Что касается вопроса ТС. Да, можно применить преобразование Фурье.
Для сравнения сигналов используют понятие корреляции. Вычисление корреляции двух сигналов = вычисление свёртки этих двух сигналов.
БПФ можно использовать для вычисления так называемой быстрой свёртки. В спектральной области свёртка заменяется на простое умножение.
То есть, схема примерно такая: есть принятый сигнал s(t) и набор эталонов Ai(t). Вычисляем БПФ[s(t)] и БПФ[Ai(t)]. Вычисляем x = БПФ[s(t)]*БПФ[Ai(t)]. В конце вычисляем ОБПФ[x]. Предположим я вычислил БПФ и получил амплитуды разных частот. На какое количество частот разбить сигнал? Для каждой частоты нужно произвести свертку. Если частот много - это слишком затратно по вычислениям, даже если применить БПФ. Не пройдет ли одна свертка с эталоном сигнала, как я написал выше?
--------------------
|
|
|
|
|
Dec 19 2017, 10:37
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600

|
Цитата(Sergey Krivonosov @ Dec 19 2017, 10:42)  Спасибо за подсказку, я не мог понять, где взять мнимую часть сигнала. Действительно сдвинув сигнал на 90 градусов я получаю мнимую часть сигнала. Для одной свертки я должен получить 4 массива: M1, M2, M3, M4, где M1 cos сигнала, M2 sin сигнала, M3 cos эталона, M4 sin эталона. Отдельно суммирую от n=0..127: M1(n)*M3(n) - M2(n)*M4(n) и M1(n)*M4(n)+M3(n)*M2(n). Затем эти суммы возвожу в квадрат и суммирую и извлекаю корень квадратный. Что мне даст эта свертка? Я так понимаю, что если сигналы совпадают я получу максимальное значение амплитуды?
Предположим я вычислил БПФ и получил амплитуды разных частот. На какое количество частот разбить сигнал? Для каждой частоты нужно произвести свертку. Если частот много - это слишком затратно по вычислениям, даже если применить БПФ. Не пройдет ли одна свертка с эталоном сигнала, как я написал выше? Ну вы писали, что у вас сигнал из 128 отсчетов. Следовательно, БПФ тоже должен быть на 128 точек - получается, для сравнения сигнала с одним из эталонов надо 2 БПФ, 128 умножений и ОБПФ.
Сообщение отредактировал el.d - Dec 19 2017, 10:40
|
|
|
|
|
Dec 19 2017, 11:12
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 10-07-08
Из: Днепропетровск
Пользователь №: 38 859

|
Цитата(el.d @ Dec 19 2017, 12:37)  Ну вы писали, что у вас сигнал из 128 отсчетов. Следовательно, БПФ тоже должен быть на 128 точек - получается, для сравнения сигнала с одним из эталонов надо 2 БПФ, 128 умножений и ОБПФ. Не так, для построения БПФ на 128 частот потребуется применить 127 "бабочек". Каждая бабочка это 4 умножения и 4 суммирования. Следовательно, умножений нужно сделать 127*4=508. Для эталонов БПФ выполнять не нужно, его можно выполнить 1 раз и забить в память. После БПФ нам нужно рассчитать амплитуду сигнала для каждой из 128 частот. Т.е. возвести в квадрат действительную и мнимую часть, сложить и найти корень квадратный. И можно сравнивать с амплитудами эталонов забитыми в память. Зачем мне делать обратное преобразование Фурье?
--------------------
|
|
|
|
|
Dec 19 2017, 11:24
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600

|
Цитата(Sergey Krivonosov @ Dec 19 2017, 12:12)  Не так, для построения БПФ на 128 частот потребуется применить 127 "бабочек". Каждая бабочка это 4 умножения и 4 суммирования. Следовательно, умножений нужно сделать 127*4=508. Для эталонов БПФ выполнять не нужно, его можно выполнить 1 раз и забить в память. После БПФ нам нужно рассчитать амплитуду сигнала для каждой из 128 частот. Т.е. возвести в квадрат действительную и мнимую часть, сложить и найти корень квадратный. И можно сравнивать с амплитудами эталонов забитыми в память. Зачем мне делать обратное преобразование Фурье? Потому что корреляционная функция (результат свёртки принятого сигнала с эталоном) - это функция от времени. После применения БПФ к принятому сигналу или к эталону получается функция от частоты. Не надо никакие амплитуды считать. Тем более, что амплитуда у принятого сигнала очень вряд ли будет для всех наблюдений постоянной. Или в вашей системе если у принятого сигнала амплитуда меньше чем у эталона, но временная диаграмма один в один - то это уже не совпадение? Вам тут уже правильно подсказали почитать про согласованный фильтр.
Сообщение отредактировал el.d - Dec 19 2017, 11:27
|
|
|
|
|
Dec 19 2017, 11:36
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 10-07-08
Из: Днепропетровск
Пользователь №: 38 859

|
Цитата(el.d @ Dec 19 2017, 13:24)  Потому что корреляционная функция (результат свёртки принятого сигнала с эталоном) - это функция от времени. После применения БПФ к принятому сигналу или к эталону получается функция от частоты.
Не надо никакие амплитуды считать. Тем более, что амплитуда у принятого сигнала очень вряд ли будет для всех наблюдений постоянной. Или в вашей системе если у принятого сигнала амплитуда меньше чем у эталона, но временная диаграмма один в один - то это уже не совпадение? Вам тут уже правильно подсказали почитать про согласованный фильтр. Вы правильно написали, что амплитуды будут разные. Но амплитуды можно нормировать. Амплитуда, как раз и отвечает за отклик на ту или иную частоту и сравнивать я могу только амплитуды (как иначе, что с чем я должен сравнивать. Только мне нужно не теоретически, а что с чем я должен сравнить?). После БПФ мы можем построить амплитудно-частотную характеристику, которую можно сравнить с эталоном.
--------------------
|
|
|
|
|
Dec 19 2017, 11:40
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 2-08-17
Пользователь №: 98 600

|
Цитата(Sergey Krivonosov @ Dec 19 2017, 12:36)  Вы правильно написали, что амплитуды будут разные. Но амплитуды можно нормировать. Амплитуда, как раз и отвечает за отклик на ту или иную частоту и сравнивать я могу только амплитуды (как иначе, что с чем я должен сравнивать. Только мне нужно не теоретически, а что с чем я должен сравнить?). После БПФ мы можем построить амплитудно-частотную характеристику, которую можно сравнить с эталоном. Например, пик корреляционной функции сравнивать с неким порогом. Или сравнивать отклики корреляторов между собой и выбирать наибольший. Как выбрать порог - зависит от задачи. Вообще, то, что вам надо - это самая обычная задача различения сигналов. В любом учебнике по статистической радиотехнике написано, как это делать оптимально в том или ином смысле.
Сообщение отредактировал el.d - Dec 19 2017, 11:45
|
|
|
|
|
Dec 19 2017, 12:53
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 10-07-08
Из: Днепропетровск
Пользователь №: 38 859

|
Цитата(el.d @ Dec 19 2017, 13:40)  Например, пик корреляционной функции сравнивать с неким порогом. Или сравнивать отклики корреляторов между собой и выбирать наибольший. Как выбрать порог - зависит от задачи. Вообще, то, что вам надо - это самая обычная задача различения сигналов. В любом учебнике по статистической радиотехнике написано, как это делать оптимально в том или ином смысле. Хотелось бы конкретную привязку. На вход БПФ я подаю сигнал, который представляет 128 выборок. Если бы я делал в аналоговом виде, то мне нужно было бы поставить 128 фильтров, каждый из которых пропускает только свою частоту (настроены на разные частоты). На выходе каждого фильтра я получаю синусоиду одной данной частоты. Поэтому мне надо поставить после каждого фильтра выпрямитель и мерить амплитуду после каждого фильтра. В цифровом виде в качестве выпрямителя и будет вычисление амплитуды. Цитата Вычисляем БПФ[s(t)] и БПФ[Ai(t)]. Вычисляем x = БПФ[s(t)]*БПФ[Ai(t)]. В конце вычисляем ОБПФ[x]. Зачем делать обратное преобразование Фурье (ОБПФ) и что с чем сравнивать я так и не понял? По поводу БПФ, я его рассматриваю, как запасной вариант. Прежде всего я хотел бы понять, можно ли делать сравнение по свертке входного сигнала с эталоном. Особенно, когда входной сигнал сдвинут по фазу относительно эталона. Т.к. это более простой быстрый метод.
--------------------
|
|
|
|
Сообщений в этой теме
Sergey Krivonosov Сравнение сигнала с эталонами Dec 18 2017, 16:22 el.d Цитата(seniorandre @ Dec 18 2017, 18:12) ... Dec 19 2017, 06:37   _pv Цитата(el.d @ Dec 19 2017, 16:37) получае... Dec 19 2017, 10:49    el.d Цитата(_pv @ Dec 19 2017, 11:49) с учётом... Dec 19 2017, 10:53        el.d Цитата(Sergey Krivonosov @ Dec 19 2017, 13... Dec 19 2017, 13:58 _pv 128*128*100 == 1.6E6 умножений, на калькуляторе сч... Dec 18 2017, 17:38 maugli Почитайте про согласованный фильтр. Dec 19 2017, 09:44 Alex11 Очень я сомневаюсь, что Фурье в этом случае будет ... Dec 19 2017, 15:17 Sergey Krivonosov Цитата(Alex11 @ Dec 19 2017, 17:17) Очень... Dec 19 2017, 15:35 Alex11 ЦитатаЗатем он повторяется без разрывов.
А частота... Dec 19 2017, 16:33 Sergey Krivonosov Цитата(Alex11 @ Dec 19 2017, 18:33) А час... Dec 19 2017, 17:10 krux сравнение БПФ сигнала по всему диапазону выборок с... Dec 19 2017, 17:28 _pv Цитата(krux @ Dec 20 2017, 00:28) сравнен... Dec 20 2017, 15:11  krux Цитата(_pv @ Dec 20 2017, 18:11) а это за... Dec 20 2017, 15:26   _pv Цитата(krux @ Dec 20 2017, 22:26) для нач... Dec 20 2017, 15:59 Alex11 ЦитатаЧастота оцифровки строго кратна периоду сигн... Dec 20 2017, 09:21 Sergey Krivonosov Большое спасибо всем за оперативные ответы! Да... Dec 20 2017, 11:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|