|
Сравнение сигнала с эталонами |
|
|
|
 |
Ответов
|
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 частот. Т.е. возвести в квадрат действительную и мнимую часть, сложить и найти корень квадратный. И можно сравнивать с амплитудами эталонов забитыми в память. Зачем мне делать обратное преобразование Фурье?
--------------------
|
|
|
|
Сообщений в этой теме
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, 12... Dec 19 2017, 11:24     Sergey Krivonosov Цитата(el.d @ Dec 19 2017, 13:24) Потому ... Dec 19 2017, 11:36      el.d Цитата(Sergey Krivonosov @ Dec 19 2017, 12... Dec 19 2017, 11:40       Sergey Krivonosov Цитата(el.d @ Dec 19 2017, 13:40) Наприме... Dec 19 2017, 12: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
|
|
|