Как измерить соответствие между кривыми?

11

У меня есть значения (приведенные ниже) ожидаемых значений RSSI с течением времени, которые я хотел бы сравнить с моими измеренными значениями RSSI. То, что я искал, было способом количественно оценить его, чтобы я мог изменять параметры и иметь возможность сравнивать / сопоставлять различные подходы.

На мой взгляд, это сложная проблема, потому что я не знаю, как сравнивать сигналы, и все же учитываю крупномасштабные (общая форма) и мелкомасштабные (отдельные колебания) сигнала.

Например, вот график одного набора сигналов: RSSI против времени

На рисунке я вижу, что красный сигнал измерения примерно соответствует модели, но он также хорошо выполняет моделирование некоторых синусоидальных качеств модели (в некоторых местах). Какие-нибудь мысли?

<> В ответ на комментарии пикенетов (которые кажутся разумными) я взял diff из двух значений и нарисовал abs (fft (diff)) и получил это: FFT

Хотя я не уверен, что с этим делать. Поскольку у нас нет реальных частот, я не уверен, как масштабировать ось, а затем, если бы я сделал, какую метрику вы бы использовали?

toozie21
источник
2
Как насчет вычисления чего-то вроде квадратной погрешности в разных частотных диапазонах (или разбивки разного на разные частотные полосы)? В более низком частотном диапазоне он будет измерять общие возможности отслеживания - независимо от быстрых ударов. На более высокой частоте он будет измерять способность отслеживать резкие изменения независимо от больших ошибок постоянного тока.
pichenettes
Хорошо, я добавил новый сюжет к исходному сообщению (как редактирование), чтобы показать fft (real (diff)), но я не совсем уверен, что с ним делать.
toozie21
2
Я бы сначала сгладил их обоих; тогда вы получите очень хорошее согласие (при условии, что это результат, который вы хотите). PS Я всегда рекомендую делиться данными, которые вы использовали для составления своих графиков, чтобы мы могли легче помочь.
Эмре
Насколько вы заботитесь о согласовании фазы на более высоких частотах? Смысл, который я получаю, заключается в том, что вы, возможно, захотите сравнить сигнал во временной области напрямую (после фильтра нижних частот), а затем сравнить частотную область для более высоких частот, возможно, глядя только на величину и игнорируя фазу.
Дэн Брайант
@ toozie21 вы уже знаете, где меняются свойства сигнала? например, 8 мс, 17 мс .. и так далее.
user13107

Ответы:

1

Если сигналы не выровнены, но у вас есть подсказка, что они более или менее «означают» одно и то же или ссылаются на аналогичные данные, вы можете использовать алгоритм динамического перекоса времени (DTW) для получения лучшего соответствия (а затем просто взять значение в том же месте). Вы можете измерить RMS, MSE или что угодно, используя эти соответствия. Для DTW вы можете проверить: http://en.wikipedia.org/wiki/Dynamic_time_warping

Хороший способ развить эту идею используется в Earth Mover Distance (EMD), который вычисляет минимальное усилие, чтобы привести сигналы к выравниванию, в качестве меры расстояния. EMD представлена ​​здесь: http://ai.stanford.edu/~rubner/emd/default.htm

EMD дает вам прямое расстояние, которое вы можете использовать для дальнейшего анализа.

Толга Бердал
источник
0

Я использую RMS вектора ошибки в качестве меры. Поскольку я имею дело со сложными схемами модуляции, я также использую EVM в качестве меры.

Euripedes Rocha Filho
источник
0

Я бы, наверное, объединил несколько подходов. Сначала я бы сгладил обе формы волны или сделал сплайн-интерполяцию, чтобы убрать большие вариации. Возможно, вы захотите объединить еще один шаг после перекрестной корреляции, чтобы выстроить их в ряд, предположив, что временное смещение не имеет значения для вас. Получив пик взаимной корреляции, вы можете даже интерполировать этот пик по форме параболы, а затем повторно сэмплировать один сигнал, чтобы он соответствовал другому. Я бы вычислил RMSE между двумя сигналами в этой точке и вывел бы одну метрику, указывающую на медленно меняющуюся дельту.

После этого я вычел бы интерполированное значение из оригинала, чтобы отклонения на небольших временных шкалах были нормализованы. Оттуда вы можете попытаться RMSE их друг против друга или даже просто вычислить дисперсию каждого, чтобы получить представление о том, сколько «шума» у вас есть о медленно меняющейся форме волны, в зависимости от того, что вам нужно и что вы на самом деле пытаетесь измерять.

Эрик С.
источник